X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=kernel%2Fsrc%2FbbtkWx.h;h=30c86f8ab7335c3a02ea5fcc1efa72217e322edb;hb=dad2f344cba135eec67eba321b29ffd61975e9c9;hp=7d64a023a94f22119dd08b7ad41ba1dac1bdeacf;hpb=6c8a2137ff5c30872ea69ba70284818d288892a7;p=bbtk.git diff --git a/kernel/src/bbtkWx.h b/kernel/src/bbtkWx.h index 7d64a02..30c86f8 100644 --- a/kernel/src/bbtkWx.h +++ b/kernel/src/bbtkWx.h @@ -31,23 +31,43 @@ #include "bbtkSystem.h" +// SIGNAL/SLOT MECHANISM +// FOR bbtk WINDOWS CREATION/DESTRUCTION OBSERVATION +// BBTKWXSIG +#include +#include +// \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 Signal_type; + typedef Signal_type::slot_function_type Slot_function_type; + // \BBTKWXSIG + static void ResetCursor(); static void BeginBusyCursor(); static void EndBusyCursor(); - static int mBeginBusyCallsCount; - /// 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(); @@ -58,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 //================================================================== @@ -117,6 +137,7 @@ namespace bbtk static void ResetCursor() {} static void BeginBusyCursor() {} static void EndBusyCursor() {} + static void CreateInvisibleTopWindow() {} static wxWindow* GetTopWindow() { return 0; } static void SetTopWindow(wxWindow*) {} static void IncNbWindowsAlive() {}