X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;ds=sidebyside;f=kernel%2Fsrc%2FbbtkKWBlackBox.h;h=6a2eb35f1a5767f7f564c645449d2ebcff422398;hb=6d0969aa445cb7678a95eafe551cfa70f09af95d;hp=dec705f1c0f887c832d1ff2f9e3739a792e410da;hpb=26a8c332dda10ace9e3e088b2ca8544d188c9743;p=bbtk.git diff --git a/kernel/src/bbtkKWBlackBox.h b/kernel/src/bbtkKWBlackBox.h index dec705f..6a2eb35 100644 --- a/kernel/src/bbtkKWBlackBox.h +++ b/kernel/src/bbtkKWBlackBox.h @@ -2,8 +2,8 @@ Program: bbtk Module: $RCSfile: bbtkKWBlackBox.h,v $ Language: C++ - Date: $Date: 2008/11/29 21:41:34 $ - Version: $Revision: 1.1 $ + Date: $Date: 2008/12/11 09:50:35 $ + Version: $Revision: 1.5 $ ========================================================================*/ @@ -52,26 +52,21 @@ #include "bbtkKW.h" -#include "vtkKWWidget.h" -#include "vtkKWWindowBase.h" -#include "vtkKWFrame.h" -#include "vtkKWDialog.h" -namespace bbtk -{ +//================================================================== +// Forward declaration of the class of window associated to a KWBlackBox +class vtkKWBlackBoxWindow; +class vtkKWBlackBoxDialog; +class vtkKWFrame; +//================================================================== +namespace bbtk +{ + - //================================================================== - // Forward declaration of the class of window associated to a KWBlackBox - class vtkKWBlackBoxWindow; - //================================================================== - //================================================================== - // Forward declaration of the widget event handler class - // class KWBlackBoxWidgetEventHandler; - //================================================================== //================================================================== @@ -88,11 +83,8 @@ namespace bbtk BBTK_DECLARE_OUTPUT(Widget, vtkKWWidget*); public: - /// Main processing method of the box. Overloaded to handle windows inclusion : if the output Widget is connected then the execution is transfered to the box to which it is connected (as the container window must be created and displayed - this box will be executed by the normal pipeline recursion mechanism) - virtual void bbExecute(bool force = false); - - - typedef vtkKWBlackBoxWindow Window; + + typedef vtkKWBlackBoxDialog Window; /// Returns the **OWN** window associated to the box /// If 0 returned = no window @@ -108,10 +100,6 @@ namespace bbtk /// Else returns 0; Window* bbGetContainingWindow(); - /// Returns the parent wxWindow that must be used to create the widget - // - // LG 24/11/08 : New widget pipeline - // wxWindow* bbGetKWParent(); /// Returns true iff the 'containing window' exists and is shown /// (see bbGetContainingWindow). @@ -127,8 +115,8 @@ namespace bbtk virtual void bbUserOnHide() {} //================================================================== - // LG 24/11/08 : New widget pipeline - // void bbCreateWidgetAndEventHandler(vtkKWWidget* parent); + /// Sets the window + inline void bbSetWindow(Window* w) { bbmWindow=w; } protected: @@ -147,24 +135,19 @@ namespace bbtk /// User callback for creating the widget associated to the box /// ** Must be defined ** // LG 24/11/08 : New widget pipeline - virtual void bbUserCreateWidget(vtkKWWidget* parent) + virtual void bbUserCreateWidget(vtkKWFrame* parent) { bbtkError(bbGetTypeName()<<" is a KWBlackBox whose bbUserCreateWidget methods is not overloaded : is it a feature or a bug ?!?"); } //================================================================== - vtkKWWidget* bbCreateWidgetOfInput(const std::string& in, - vtkKWWidget* parent); - - //================================================================== - /// Main processing method of the box. - virtual IOStatus bbBackwardUpdate( Connection::Pointer caller ); + vtkKWWidget* bbCreateWidgetOfInput(const std::string& in, + vtkKWFrame* parent); //================================================================== - //================================================================== /// Overloaded processing method for KWBlackBoxes virtual void bbProcess(); @@ -188,39 +171,12 @@ namespace bbtk friend class vtkKWBlackBoxWindow; // friend class KWBlackBoxWidgetEventHandler; - /// Sets the window - inline void bbSetWindow(Window* w) { bbmWindow=w; } - - /* - /// Sets the Widget Event Handler - inline void bbSetWidgetEventHandler(KWBlackBoxWidgetEventHandler* w) - { bbmWidgetEventHandler = w; } - /// Gets the Widget Event Handler - inline KWBlackBoxWidgetEventHandler* bbGetWidgetEventHandler() - { return bbmWidgetEventHandler; } - */ - /// The KWBlackBoxWindow associated to the box Window* bbmWindow; - /// The KWBlackBoxWidgetEventHandler associated to the box - // KWBlackBoxWidgetEventHandler* bbmWidgetEventHandler; void bbInitAttributes(); - protected : - - - /// For Forward update mechanism when execution is called - /// on a contained window - /// Is set to true before transfering update to parent - /// in order to not re-transfer a second time... - bool bbmUpdateTransferedToParent; - - bool bbGetUpdateTransferedToParent() const { return bbmUpdateTransferedToParent; } - void bbSetUpdateTransferedToParent(bool b) - { bbmUpdateTransferedToParent = b; } - }; //================================================================= @@ -229,7 +185,7 @@ namespace bbtk /// Defines the bbUserCreateWidget method #define BBTK_CREATE_KWWIDGET(CALLBACK) \ public: \ - inline void bbUserCreateWidget(vtkKWWidget* parent) \ + inline void bbUserCreateWidget(vtkKWFrame* parent) \ { \ bbtkDebugMessageInc("kw",1,"**> Creating widget for [" \ <bbSetWindow(this); - } - virtual KWBlackBox::Pointer bbGetBlackBox() { return mBox.lock(); } - private: - KWBlackBox::WeakPointer mBox; - bool mShown; - }; - //================================================================== - - - //================================================================== - // Dialog window which is modal - // Name of window must not begin with uppercase letter - class BBTK_EXPORT vtkKWBlackBoxDialog : public vtkKWDialog, - public vtkKWBlackBoxWindow - { - public: - static vtkKWBlackBoxDialog* New(); - vtkTypeRevisionMacro(vtkKWBlackBoxDialog,vtkKWDialog); - void bbShow(); - void bbHide(); - void bbClose(); - void Cancel(); - protected: - vtkKWBlackBoxDialog(); - ~vtkKWBlackBoxDialog(); - private: - vtkKWBlackBoxDialog(const vtkKWBlackBoxDialog&); // Not implemented. - void operator=(const vtkKWBlackBoxDialog&); // Not implemented. - }; - //================================================================== - - //================================================================== - // Frame window which is not modal - class BBTK_EXPORT vtkKWBlackBoxFrame : public vtkKWWindowBase, - public vtkKWBlackBoxWindow - { - public: - static vtkKWBlackBoxFrame* New(); - vtkTypeRevisionMacro(vtkKWBlackBoxFrame,vtkKWWindowBase); - void bbShow(); - void bbHide(); - void bbClose(); - protected: - vtkKWBlackBoxFrame(); - ~vtkKWBlackBoxFrame(); - private: - vtkKWBlackBoxFrame(const vtkKWBlackBoxFrame&); // Not implemented. - void operator=(const vtkKWBlackBoxFrame&); // Not implemented. - }; - //================================================================== - - /* //================================================================= // Handles the destroy events of a widget associated to a KWBlackBox