]> Creatis software - bbtk.git/blobdiff - kernel/src/bbtkWx.cxx
*** empty log message ***
[bbtk.git] / kernel / src / bbtkWx.cxx
index 0c6b568845000dac95201c57b6bde2aa1cbef2bd..abccb5e630f0d8daf2028f4faff3bd30ba1c17d8 100644 (file)
@@ -5,22 +5,70 @@
 
 namespace bbtk
 {
-  void wx::ResetCursor() 
+  void Wx::ResetCursor() 
   {
+    if (!GetTopWindow()) return;
     bbtkDebugMessage("Wx",9,"wx::ResetCursor()"<<std::endl);
     while (wxIsBusy()) ::wxEndBusyCursor();
   }
-  void wx::BeginBusyCursor() 
+  void Wx::BeginBusyCursor() 
   {
+    if (!GetTopWindow()) return;
     bbtkDebugMessage("Wx",9,"wx::BeginBusyCursor()"<<std::endl);
     ::wxBeginBusyCursor();
   }
-  void wx::EndBusyCursor()
+  void Wx::EndBusyCursor()
   {
+    if (!GetTopWindow()) return;
     bbtkDebugMessage("Wx",9,"wx::EndBusyCursor()"<<std::endl);
     ::wxEndBusyCursor();
   }
   
+  //=========================================================================
+  void Wx::SetTopWindow(wxWindow* w) 
+  {
+    if ( mgTopWindow ) 
+      {
+       bbtkGlobalError("wx::SetTopWindow : top window already set !");
+      } 
+    mgTopWindow = w;
+  }
+  //=========================================================================
+  //=========================================================================
+  void Wx::DecNbWindowsAlive()
+  { 
+    mgNbWindowsAlive--; 
+    /*
+    if ( (bbmgNbWindowsAlive==0) && 
+        bbmgTopWindow && (!bbmgTopWindow->IsShown()))
+      {
+       bbmgTopWindow->Close();
+      }
+    */
+  }
+  //=========================================================================
+
+  //=========================================================================
+  void Wx::DecNbWindowsShown()
+  { 
+    mgNbWindowsShown--; 
+    if ( (mgNbWindowsShown==0) && 
+        mgTopWindow && (!mgTopWindow->IsShown()))
+      {
+       mgTopWindow->Close();
+      }
+  }
+  //=========================================================================
+
+  //=========================================================================
+  // Static members 
+  wxWindow* Wx::mgTopWindow = 0;
+  int Wx::mgNbWindowsAlive  = 0;
+  int Wx::mgNbWindowsShown  = 0;
+  //=========================================================================
+
+
+
 
 }