]> Creatis software - bbtk.git/blobdiff - kernel/src/bbtkWx.h
*** empty log message ***
[bbtk.git] / kernel / src / bbtkWx.h
index 2969edb205a9853cea914b4d575b3fef0b9cd4ff..30c86f8ab7335c3a02ea5fcc1efa72217e322edb 100644 (file)
 
 #include "bbtkSystem.h"
 
+// SIGNAL/SLOT MECHANISM 
+// FOR bbtk WINDOWS CREATION/DESTRUCTION OBSERVATION 
+// BBTKWXSIG
+#include <boost/signal.hpp>
+#include <boost/bind.hpp>
+// \BBTKWXSIG
+
 namespace bbtk
 {
   //==================================================================
   /// Global wx handlers (cursor...)
   
+// BBTKWXSIG
+#define bbtkAddWxSignalObserver(METHOD)                \
+  Wx::AddSignalObserver(boost::bind(&METHOD, this))
+// \BBTKWXSIG
+
   struct BBTK_EXPORT Wx
   {    
   public:
+    // BBTKWXSIG
+    typedef boost::signals::trackable SignalObserver;
+    typedef boost::signal<void ()>  Signal_type;
+    typedef Signal_type::slot_function_type Slot_function_type;
+    // \BBTKWXSIG
+
     static void ResetCursor();
     static void BeginBusyCursor(); 
     static void EndBusyCursor();
-    static int mBeginBusyCallsCount;
 
-    static void CreateInvisibleTopWindow(wxWindow* parent=0);
-    /// Returns the global parent of all bbtk windows
+    static void CreateTopWindow(wxWindow* parent=0, bool autodestroy=true);
+    /// Returns the creation time parent of all bbtk windows 
+    /// (window can be reparented after creation)
     static wxWindow* GetTopWindow();
-    /// Sets the global parent of all bbtk windows
-    static void SetTopWindow(wxWindow*);
+    static bool TopWindowExists();
+
+    static void AutoDestroyTopWindow(bool);
     
     static void IncNbWindowsAlive();
     static void DecNbWindowsAlive();
@@ -59,13 +78,13 @@ namespace bbtk
     static void DecNbWindowsShown();
     static int  GetNbWindowsShown();
     static bool IsSomeWindowShown();
-    
-/*EED
+
+    // BBTKWXSIG
+    static void AddSignalObserver(Slot_function_type);
+    // \BBTKWXSIG
   private:
-    static wxWindow* mgTopWindow;
-    static int mgNbWindowsAlive;
-    static int mgNbWindowsShown;
-*/
+    /// Sets the creation time parent of all bbtk windows
+    static void SetTopWindow(wxWindow*);
   }; // struct Wx
   //==================================================================