]> Creatis software - bbtk.git/blob - kernel/src/bbtkWx.cxx
*** empty log message ***
[bbtk.git] / kernel / src / bbtkWx.cxx
1 #ifdef _USE_WXWIDGETS_
2
3 #include "bbtkWx.h"
4 #include "bbtkMessageManager.h"
5
6 namespace bbtk
7 {
8
9 //EED
10   static wxWindow* mgTopWindow = 0;
11   static int mgNbWindowsAlive  = 0;
12   static int mgNbWindowsShown  = 0;
13
14   void Wx::CreateInvisibleTopWindow()
15   {
16     wxWindow* top = new wxFrame(0,-1,_T("TOP (YOU SHOULD NOT SEE ME !!)"));
17     top->Hide();
18     Wx::SetTopWindow(top);
19   }
20  
21   void Wx::ResetCursor() 
22   {
23     if (!GetTopWindow()) return;
24     bbtkDebugMessage("wx",9,"wx::ResetCursor()"<<std::endl);
25     while (wxIsBusy()) ::wxEndBusyCursor();
26   }
27   void Wx::BeginBusyCursor() 
28   {
29     if (!GetTopWindow()) return;
30     bbtkDebugMessage("wx",9,"wx::BeginBusyCursor()"<<std::endl);
31     ::wxBeginBusyCursor();
32   }
33   void Wx::EndBusyCursor()
34   {
35     if (!GetTopWindow()) return;
36     bbtkDebugMessage("wx",9,"wx::EndBusyCursor()"<<std::endl);
37     ::wxEndBusyCursor();
38   }
39   
40   //=========================================================================
41   void Wx::SetTopWindow(wxWindow* w) 
42   {
43     if ( mgTopWindow ) 
44       {
45         bbtkGlobalError("wx::SetTopWindow : top window already set !");
46       } 
47     mgTopWindow = w;
48   }
49   //=========================================================================
50   //=========================================================================
51   void Wx::DecNbWindowsAlive()
52   { 
53     mgNbWindowsAlive--; 
54     /*
55     if ( (bbmgNbWindowsAlive==0) && 
56          bbmgTopWindow && (!bbmgTopWindow->IsShown()))
57       {
58         bbmgTopWindow->Close();
59       }
60     */
61   }
62   //=========================================================================
63
64   //=========================================================================
65   void Wx::DecNbWindowsShown()
66   { 
67     mgNbWindowsShown--; 
68     if ( (mgNbWindowsShown==0) && 
69          mgTopWindow && (!mgTopWindow->IsShown()))
70       {
71         mgTopWindow->Close();
72       }
73   }
74   //=========================================================================
75
76   //=========================================================================
77 /*EED
78   // Static members 
79   wxWindow* Wx::mgTopWindow = 0;
80   int Wx::mgNbWindowsAlive  = 0;
81   int Wx::mgNbWindowsShown  = 0;
82 */
83   //=========================================================================
84
85
86 //EED
87     wxWindow* Wx::GetTopWindow() 
88         { 
89                 return mgTopWindow; 
90         }
91
92     void Wx::IncNbWindowsAlive() 
93         { 
94                 mgNbWindowsAlive++; 
95         }
96
97     int  Wx::GetNbWindowsAlive() 
98         { 
99                 return mgNbWindowsAlive; 
100         }
101
102     bool Wx::IsSomeWindowAlive() 
103         { 
104                 return (mgNbWindowsAlive>0);
105         }
106
107     void Wx::IncNbWindowsShown() 
108         { 
109                 mgNbWindowsShown++; 
110         }
111
112     int  Wx::GetNbWindowsShown() 
113         { 
114                 return mgNbWindowsShown; 
115         }
116
117     bool Wx::IsSomeWindowShown() 
118         { 
119                 return (mgNbWindowsShown>0);
120         }
121
122 }
123
124 #endif