X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=kernel%2Fsrc%2FbbtkWx.h;h=30c86f8ab7335c3a02ea5fcc1efa72217e322edb;hb=dad2f344cba135eec67eba321b29ffd61975e9c9;hp=e160c3ae7b1eecbc994674bb8c27be450bbb8230;hpb=05e7ead34117d7cd9946e02dfc6a4f1079630f4f;p=bbtk.git diff --git a/kernel/src/bbtkWx.h b/kernel/src/bbtkWx.h index e160c3a..30c86f8 100644 --- a/kernel/src/bbtkWx.h +++ b/kernel/src/bbtkWx.h @@ -31,24 +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; - static void CreateInvisibleTopWindow(); - /// 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 //==================================================================