0023830: BRepExtrema_DistShapeShape does not find intersection of face with edge
[occt.git] / src / Xw / Xw_set_background_index.cxx
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
18
19 #include <Xw_Extension.h>
20
21 /* ifdef then trace on */
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
40 XW_STATUS Xw_set_background_index (void *awindow,int index)
41 #else
42 XW_STATUS Xw_set_background_index (awindow,index)
43 void *awindow;
44 int index ;
45 #endif /*XW_PROTOTYPE*/
46 {
47 XW_EXT_WINDOW *pwindow = (XW_EXT_WINDOW*)awindow ;
48 unsigned long backpixel,highpixel ;
49 int 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
88 if( Xw_get_trace() ) {
89     printf(" Xw_set_background_index(%lx,%d)\n",(long ) pwindow,index) ;
90 }
91 #endif
92         return (XW_SUCCESS);
93 }