X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=kernel%2Fsrc%2FbbtkWxBlackBox.h;h=d074414dea09017946f65e00c0a89d94e0d3cc37;hb=555854b9edeeb49fdd03fad2b1274e6d6db6d9f7;hp=5ff5d6644b4d350503e8d448b48d1ff2b014fce3;hpb=a26195c366a89795288009cf7e20f11afa494970;p=bbtk.git diff --git a/kernel/src/bbtkWxBlackBox.h b/kernel/src/bbtkWxBlackBox.h index 5ff5d66..d074414 100644 --- a/kernel/src/bbtkWxBlackBox.h +++ b/kernel/src/bbtkWxBlackBox.h @@ -3,8 +3,8 @@ Program: bbtk Module: $RCSfile: bbtkWxBlackBox.h,v $ Language: C++ - Date: $Date: 2008/01/22 15:02:00 $ - Version: $Revision: 1.1 $ + Date: $Date: 2008/01/22 15:41:34 $ + Version: $Revision: 1.2 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -70,7 +70,6 @@ namespace bbtk BBTK_DECLARE_INPUT(WinDialog,bool); BBTK_DECLARE_INPUT(WinHide,Void); BBTK_DECLARE_OUTPUT(Widget, wxWindow*);//WxBlackBoxWidget*); - BBTK_PROCESS(Process); public: typedef WxBlackBoxWindow Window; @@ -116,42 +115,32 @@ namespace bbtk virtual void bbUserDestructor(); //================================================================== - /* - - //================================================================== - /// User callback for creating the window associated to the box - /// Can be overloaded in order to impose your own window to show, - /// Typically if your widget is already a dialog that cannot - /// be inserted into a parent. - /// WARNING : If you use it then your widget will not be inserted - /// in the parent window, if any - /// (i.e. even if the Parent-Child connection is set) - virtual Window* bbUserCreateWindow() - { - return 0; - } - //================================================================== - //================================================================== /// User callback for creating the widget associated to the box - /// Must be defined if bbUserCreateWindow is not - virtual Widget* bbUserCreateWidget(wxWindow *parent) + /// ** Must be defined ** + virtual void bbUserCreateWidget() { - bbtkError(bbGetTypeName()<<" is a WxBlackBox whose bbUserCreateWindow and bbUserCreateWidget methods are both undefined : cannot work !!"); - return 0; + bbtkError(bbGetTypeName()<<" is a WxBlackBox whose bbUserCreateWidget methods is undefined : cannot work !!"); } //================================================================== - */ + + //================================================================== + /// Calls the user defined widget creation method + /// and the user processing method and then displays the window + virtual void bbProcess() + { + if (bbGetOutputWidget()==0) this->bbUserCreateWidget(); + this->bbUserProcess(); + bbShowWindow(); + } + //================================================================== //================================================================== /// Specific methods for windows creation during pipeline execution - //void bbCreateWindow(); - void bbShowWindow(Connection* caller); + void bbShowWindow(); void bbHideWindow(); //================================================================== - void Process() { } - private: /// friendship friend class WxBlackBoxWindow; @@ -181,6 +170,21 @@ namespace bbtk //================================================================= + //====================================================================== + /// Defines the bbUserCreateWidget method +#define BBTK_CREATE_WIDGET(CALLBACK) \ + public: \ + inline void bbUserCreateWidget() \ + { \ + bbtkDebugMessageInc("Process",1,"=> "<