0023426: Tool to compare two runs of tests on the same station
[occt.git] / src / Xw / Xw_erase_window.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_ERASE_WINDOW
24 #endif
25
26 /*
27    STATUS Xw_erase_window (awindow)
28    XW_EXT_WINDOW *awindow
29
30         Erase the entire drawable.
31
32         returns SUCCESS always
33
34 */
35
36 #ifdef XW_PROTOTYPE
37 XW_STATUS Xw_erase_window (void* awindow)
38 #else
39 XW_STATUS Xw_erase_window (awindow)
40 void *awindow;
41 #endif /*XW_PROTOTYPE*/
42 {
43 XW_EXT_WINDOW *pwindow = (XW_EXT_WINDOW*)awindow ;
44 int i ;
45
46         if( !Xw_isdefine_window(pwindow) ) {
47             /*ERROR*Bad EXT_WINDOW Address*/
48             Xw_set_error(24,"Xw_erase_window",pwindow) ;
49             return (XW_ERROR) ;
50         }
51
52         if( _BPIXMAP ) {
53             XCopyArea(_DISPLAY,_BPIXMAP,_DRAWABLE,pwindow->qgwind.gccopy,
54                                                 0,0,_WIDTH,_HEIGHT,0,0) ;
55         } else {
56             if( _DRAWABLE == _WINDOW ) { 
57                 XClearWindow(_DISPLAY,_WINDOW) ;
58             } else {
59                 XFillRectangle(_DISPLAY,_DRAWABLE,pwindow->qgwind.gcclear,
60                                                 0,0,_WIDTH,_HEIGHT) ;
61             }
62         }
63
64         for( i=0 ; i<MAXBUFFERS ; i++ ) {
65           _BUFFER(i).isdrawn = False ;
66         }
67
68         XFlush(_DISPLAY) ;
69
70 #ifdef  TRACE_ERASE_WINDOW
71 if( Xw_get_trace() > 1 ) {
72     printf(" Xw_erase_window(%lx)\n",(long ) pwindow) ;
73 }
74 #endif
75
76         return (XW_SUCCESS);
77 }