X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;ds=sidebyside;f=kernel%2Fsrc%2FbbtkWxBlackBox.h;h=f2c91ccbe37af023f27d143f6bacd84ad3d2b446;hb=664e5cdbbcaf3dafa5fc9f206a7094248c289d5a;hp=7c9db44300ea4d3e09786e367db368c8625c3c43;hpb=b8fe96fbebd153e92de1f1bfcad48ad009365df5;p=bbtk.git diff --git a/kernel/src/bbtkWxBlackBox.h b/kernel/src/bbtkWxBlackBox.h index 7c9db44..f2c91cc 100644 --- a/kernel/src/bbtkWxBlackBox.h +++ b/kernel/src/bbtkWxBlackBox.h @@ -2,8 +2,8 @@ Program: bbtk Module: $RCSfile: bbtkWxBlackBox.h,v $ Language: C++ - Date: $Date: 2009/05/14 14:43:34 $ - Version: $Revision: 1.27 $ + Date: $Date: 2009/05/28 08:24:23 $ + Version: $Revision: 1.30 $ ========================================================================*/ @@ -51,22 +51,15 @@ #define __bbtkWxBlackBox_h__ -#include "bbtkWx.h" + #include "bbtkWidgetBlackBox.h" +#include "bbtkWx.h" namespace bbtk { - - - - - //================================================================== - // Forward declaration of the widget event handler class - class WxBlackBoxWidgetEventHandler; - //================================================================== - + //================================================================== /// Widget black boxes @@ -92,47 +85,32 @@ namespace bbtk virtual void bbCreateFrameWindow(); //================================================================== - - - //================================================================== - // virtual void InitWindowManagerIfNeeded(); - virtual void IncNbWindowsAlive(); - virtual void DecNbWindowsAlive(); - virtual int GetNbWindowsAlive(); - virtual bool IsSomeWindowAlive(); - - virtual void IncNbWindowsShown(); - virtual void DecNbWindowsShown(); - virtual int GetNbWindowsShown(); - virtual bool IsSomeWindowShown(); - //================================================================== + + //================================================================== + wxWindow* bbGetWindow() { return bbmWindow; } + void bbSetWindow(wxWindow*) ; + bool bbWindowIsCreated() { return (bbGetWindow() != 0); } + //================================================================== - //================================================================== - void bbCreateWidgetAndEventHandler(wxWindow* parent); + virtual void bbShowWindow(); + //================================================================== + //================================================================== - + virtual void bbDestroyWindow(); //================================================================== private: - /// friendship - friend class WxBlackBoxWidgetEventHandler; - /// Sets the Widget Event Handler - inline void bbSetWidgetEventHandler(WxBlackBoxWidgetEventHandler* w) - { bbmWidgetEventHandler = w; } - /// Gets the Widget Event Handler - inline WxBlackBoxWidgetEventHandler* bbGetWidgetEventHandler() - { return bbmWidgetEventHandler; } - /// The WxBlackBoxWidgetEventHandler associated to the box - WxBlackBoxWidgetEventHandler* bbmWidgetEventHandler; + + wxWindow* bbmWindow; + }; //================================================================= //================================================================= // WxBlackBoxDescriptor declaration - // class WxBlackBoxDescriptor : public WidgetBlackBoxDescriptor BBTK_BEGIN_DESCRIBE_BLACK_BOX_BODY(WxBlackBox); BBTK_NAME("WxBlackBox"); @@ -140,81 +118,6 @@ namespace bbtk //================================================================= - - - - - - - - - //================================================================== - // Dialog window which is modal - class BBTK_EXPORT WxBlackBoxDialog : public wxDialog, - public WidgetBlackBoxWindow - { - public: - typedef WidgetBlackBoxWindow Parent; - WxBlackBoxDialog(WxBlackBox::Pointer box, - wxWindow *parent, wxString title, wxSize size); - ~WxBlackBoxDialog(); - void bbShow(); - void bbHide(); - void bbClose(); - bool IsDialog() { return true; } - bool IsFrame() { return false; } - wxDialog* bbGetDialog() { return this; } - }; - //================================================================== - - //================================================================== - // Frame window which is not modal - class BBTK_EXPORT WxBlackBoxFrame : public wxFrame, - public WidgetBlackBoxWindow - { - public: - typedef WidgetBlackBoxWindow Parent; - WxBlackBoxFrame(WxBlackBox::Pointer box, - wxWindow *parent, wxString title, wxSize size); - ~WxBlackBoxFrame(); - void bbShow(); - void bbHide(); - void bbClose(); - bool IsDialog() { return false; } - bool IsFrame() { return true; } - wxFrame* bbGetFrame() { return this; } - }; - //================================================================== - - - - //================================================================= - // Handles the destroy events of a widget associated to a WxBlackBox - // in order to signal the widget death to its associated box - class BBTK_EXPORT WxBlackBoxWidgetEventHandler : public wxEvtHandler - { - public: - /// Ctor with the box and widget - WxBlackBoxWidgetEventHandler( WxBlackBox::Pointer box, wxWindow *widget ); - /// Dtor - ~WxBlackBoxWidgetEventHandler(); - /// Returns true iff is the handler for that window - bool IsHandlerOf( wxWindow* w ) { return mWindow == w; } - // wxWindow* GetWxWindow() { return mWindow; } - /// Method processing the destroy event of the widget - void OnWindowDestroy(wxWindowDestroyEvent&); - // - //bool IsDead() { return mDead; } - - private: - WxBlackBox::WeakPointer mBox; - wxWindow* mWindow; - //bool mDead; - }; - //================================================================= - - - } //namespace bbtk #endif //__bbtkWxBlackBox_h__