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