0023830: BRepExtrema_DistShapeShape does not find intersection of face with edge
[occt.git] / src / Xw / Xw_set_background_index.cxx
CommitLineData
b311480e 1// Copyright (c) 1999-2012 OPEN CASCADE SAS
2//
3// The content of this file is subject to the Open CASCADE Technology Public
4// License Version 6.5 (the "License"). You may not use the content of this file
5// except in compliance with the License. Please obtain a copy of the License
6// at http://www.opencascade.org and read it completely before using this file.
7//
8// The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
9// main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
10//
11// The Original Code and all software distributed under the License is
12// distributed on an "AS IS" basis, without warranty of any kind, and the
13// Initial Developer hereby disclaims all such warranties, including without
14// limitation, any warranties of merchantability, fitness for a particular
15// purpose or non-infringement. Please see the License for the specific terms
16// and conditions governing the rights and limitations under the License.
17
7fd59977 18
19#include <Xw_Extension.h>
20
b311480e 21/* ifdef then trace on */
7fd59977 22#ifdef TRACE
23#define TRACE_SET_BACKGROUND_INDEX
24#endif
25
26/*
27 XW_STATUS Xw_set_background_index(awindow,index):
28 XW_EXT_WINDOW *awindow
29 int index Background Index in the colormap
30
31 Update Background Color index .
32
33 Returns XW_ERROR if Extended Window or Colormap is wrong
34 or Index is not defined .
35 Returns XW_SUCCESS if Successful
36
37*/
38
39#ifdef XW_PROTOTYPE
40XW_STATUS Xw_set_background_index (void *awindow,int index)
41#else
42XW_STATUS Xw_set_background_index (awindow,index)
43void *awindow;
44int index ;
45#endif /*XW_PROTOTYPE*/
46{
47XW_EXT_WINDOW *pwindow = (XW_EXT_WINDOW*)awindow ;
48unsigned long backpixel,highpixel ;
49int i ;
50
51 if ( !Xw_isdefine_window(pwindow) ) {
52 /*ERROR*Bad EXT_WINDOW Address*/
53 Xw_set_error(24,"Xw_set_background_index",pwindow) ;
54 return (XW_ERROR) ;
55 }
56
57 if( index >= 0 ) {
58 if ( !Xw_isdefine_colorindex(_COLORMAP,index) ) {
59 /*ERROR*Bad Defined Color Index*/
60 Xw_set_error(41,"Xw_set_background_index",&index) ;
61 return (XW_ERROR) ;
62 }
63 backpixel = _COLORMAP->pixels[index] ;
64 _COLORMAP->define[index] = BACKCOLOR ;
65 } else {
66 backpixel = _COLORMAP->backpixel ;
67 }
68 highpixel = _COLORMAP->highpixel ;
69 XSetForeground(_DISPLAY, pwindow->qgwind.gccopy, highpixel) ;
70 highpixel ^= backpixel ;
71
72 XSetWindowBackground (_DISPLAY, _WINDOW, backpixel) ;
73 XSetBackground(_DISPLAY, pwindow->qgwind.gc, backpixel) ;
74 XSetBackground(_DISPLAY, pwindow->qgwind.gccopy, backpixel) ;
75 XSetBackground(_DISPLAY, pwindow->qgwind.gcclear, backpixel) ;
76 XSetBackground(_DISPLAY, pwindow->qgwind.gchigh, backpixel) ;
77 XSetForeground(_DISPLAY, pwindow->qgwind.gcclear, backpixel) ;
78 XSetForeground(_DISPLAY, pwindow->qgwind.gchigh, highpixel) ;
79 for( i=0 ; i<MAXQG ; i++ ) {
80 XSetBackground(_DISPLAY, pwindow->qgline[i].gc, backpixel);
81 XSetBackground(_DISPLAY, pwindow->qgpoly[i].gc, backpixel);
82 XSetBackground(_DISPLAY, pwindow->qgtext[i].gc, backpixel);
83 XSetBackground(_DISPLAY, pwindow->qgmark[i].gc, backpixel);
84 }
85 pwindow->backindex = index ;
86
87#ifdef TRACE_SET_BACKGROUND_INDEX
88if( Xw_get_trace() ) {
89 printf(" Xw_set_background_index(%lx,%d)\n",(long ) pwindow,index) ;
90}
91#endif
92 return (XW_SUCCESS);
93}