X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=kernel%2Fsrc%2FbbtkWxBlackBox.h;h=e2857e0d47c57d0f87ce4d0b548272b77bbb138a;hb=1e2df7fb6ae571ce1cf72e6af1715f0e34675cbf;hp=f369b8b427b7826203495a1d42d6614a8d9f13bd;hpb=174ea6d71477e40679f4fd71952e3f2a03416098;p=bbtk.git diff --git a/kernel/src/bbtkWxBlackBox.h b/kernel/src/bbtkWxBlackBox.h index f369b8b..e2857e0 100644 --- a/kernel/src/bbtkWxBlackBox.h +++ b/kernel/src/bbtkWxBlackBox.h @@ -1,20 +1,34 @@ -/*========================================================================= - +/*========================================================================= Program: bbtk Module: $RCSfile: bbtkWxBlackBox.h,v $ Language: C++ - Date: $Date: 2008/04/24 10:11:28 $ - Version: $Revision: 1.14 $ - - Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de - l'Image). All rights reserved. See Doc/License.txt or - http://www.creatis.insa-lyon.fr/Public/bbtk/License.html for details. - - This software is distributed WITHOUT ANY WARRANTY; without even - the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR - PURPOSE. See the above copyright notices for more information. - -=========================================================================*//** + Date: $Date: 2008/11/25 11:17:13 $ + Version: $Revision: 1.21 $ +========================================================================*/ + + +/* --------------------------------------------------------------------- + +* Copyright (c) CREATIS-LRMN (Centre de Recherche en Imagerie Medicale) +* Authors : Eduardo Davila, Laurent Guigues, Jean-Pierre Roux +* +* This software is governed by the CeCILL-B license under French law and +* abiding by the rules of distribution of free software. You can use, +* modify and/ or redistribute the software under the terms of the CeCILL-B +* license as circulated by CEA, CNRS and INRIA at the following URL +* http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html +* or in the file LICENSE.txt. +* +* As a counterpart to the access to the source code and rights to copy, +* modify and redistribute granted by the license, users are provided only +* with a limited warranty and the software's author, the holder of the +* economic rights, and the successive licensors have only limited +* liability. +* +* The fact that you are presently reading this means that you have had +* knowledge of the CeCILL-B license and that you accept its terms. +* ------------------------------------------------------------------------ */ +/** * \brief Short description in one line * * Long description which @@ -63,15 +77,19 @@ namespace bbtk class BBTK_EXPORT WxBlackBox : public bbtk::AtomicBlackBox { BBTK_BLACK_BOX_INTERFACE(WxBlackBox,bbtk::AtomicBlackBox); - // BBTK_DECLARE_INPUT(WinParent,WxParentToChildData*); BBTK_DECLARE_INPUT(WinTitle,std::string); BBTK_DECLARE_INPUT(WinWidth,int); BBTK_DECLARE_INPUT(WinHeight,int); BBTK_DECLARE_INPUT(WinDialog,bool); BBTK_DECLARE_INPUT(WinHide,Void); - BBTK_DECLARE_OUTPUT(Widget, wxWindow*);//WxBlackBoxWidget*); + BBTK_DECLARE_INPUT(WinClose,Void); + BBTK_DECLARE_OUTPUT(Widget, wxWindow*); 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 WxBlackBoxWindow Window; /// Returns the **OWN** window associated to the box @@ -89,7 +107,9 @@ namespace bbtk Window* bbGetContainingWindow(); /// Returns the parent wxWindow that must be used to create the widget - wxWindow* bbGetWxParent(); + // + // LG 24/11/08 : New widget pipeline + // wxWindow* bbGetWxParent(); /// Returns true iff the 'containing window' exists and is shown /// (see bbGetContainingWindow). @@ -105,6 +125,10 @@ namespace bbtk virtual void bbUserOnHide() {} //================================================================== + // LG 24/11/08 : New widget pipeline + void bbCreateWidgetAndEventHandler(wxWindow* parent); + + protected: @@ -112,7 +136,7 @@ namespace bbtk /// User callback called in the box contructor virtual void bbUserConstructor(); /// User callback called in the box copy constructor - virtual void bbUserCopyConstructor(); + virtual void bbUserCopyConstructor(bbtk::BlackBox::Pointer); /// User callback called in the box destructor virtual void bbUserDestructor(); //================================================================== @@ -120,14 +144,16 @@ namespace bbtk //================================================================== /// User callback for creating the widget associated to the box /// ** Must be defined ** - virtual void bbUserCreateWidget() + // LG 24/11/08 : New widget pipeline + virtual void bbUserCreateWidget(wxWindow* parent) { bbtkError(bbGetTypeName()<<" is a WxBlackBox whose bbUserCreateWidget methods is not overloaded : is it a feature or a bug ?!?"); } //================================================================== - + wxWindow* bbCreateWidgetOfInput(const std::string& in, wxWindow* parent); + //================================================================== /// Main processing method of the box. @@ -154,6 +180,8 @@ namespace bbtk void bbShowWindow(); /// Hides the WxBlackBoxWindow associated to the box (if exists) void bbHideWindow(); + /// Closes (destroys) the WxBlackBoxWindow associated to the box (if exists) + void bbCloseWindow(); //================================================================== private: @@ -181,10 +209,10 @@ namespace bbtk void bbInitAttributes(); protected : - /// 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 (the container window must be created and displayed - this box will be also executed by the normal pipeline recursion mechanism) - virtual void bbExecute(bool force = false); + /// 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; @@ -201,12 +229,27 @@ namespace bbtk /// Defines the bbUserCreateWidget method #define BBTK_CREATE_WIDGET(CALLBACK) \ public: \ - inline void bbUserCreateWidget() \ + inline void bbUserCreateWidget(wxWindow* parent) \ + { \ + bbtkDebugMessageInc("wx",1,"**> Creating widget for [" \ + < Creating widget for [" \ + bbtkDebugMessageInc("wx",1,"**> Showing [" \ <