--- /dev/null
+description "Simple test of wx::ButtonExecBlackBox widget"
+author "eduardo.davila@creatis.insa-lyon.fr"
+category "test;widget"
+
+load wx
+new Slider slider
+new ButtonExecBlackBox button
+ set button.In "slider"
+ set button.Label "Run"
+
+exec button
+
--- /dev/null
+/*=========================================================================
+
+ Program: bbtk
+ Module: $RCSfile: bbwxButtonExecBlackBox.cxx,v $
+ Language: C++
+ Date: $Date: 2008/02/12 10:31:58 $
+ Version: $Revision: 1.1 $
+
+ 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.
+
+=========================================================================*/
+/**
+ * \file
+ * \brief
+ */
+
+
+#ifdef _USE_WXWIDGETS_
+
+
+#include "bbwxButtonExecBlackBox.h"
+#include "bbwxPackage.h"
+#include "bbtkInterpreter.h"
+
+
+
+namespace bbwx
+{
+ BBTK_ADD_BLACK_BOX_TO_PACKAGE(wx,ButtonExecBlackBox);
+
+ ButtonExecBlackBoxWidget::ButtonExecBlackBoxWidget(ButtonExecBlackBox* box,
+ wxWindow *parent,
+ wxString title)
+ :wxPanel( parent, -1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL),
+ mBox(box)
+ {
+
+ wxPanel *panel = this;
+
+ mwxButton = new wxButton( panel, -1, title);
+ Connect( mwxButton->GetId(),
+ wxEVT_COMMAND_BUTTON_CLICKED ,
+ (wxObjectEventFunction)
+ (void (wxPanel::*)(wxEvent&))
+ &ButtonExecBlackBoxWidget::OnButton );
+
+ wxFlexGridSizer *sizer = new wxFlexGridSizer(1);
+ sizer->Add( mwxButton,1,wxGROW );
+ sizer->AddGrowableCol(0);
+
+ panel->SetSizer(sizer);
+ panel->SetAutoLayout(true);
+ panel->Layout();
+
+ }
+
+
+ ButtonExecBlackBoxWidget::~ButtonExecBlackBoxWidget()
+ {
+ }
+
+
+ void ButtonExecBlackBoxWidget::OnButton( wxEvent& )
+ {
+ std::string
+ commandstr("exec "
+ +mBox->bbGetInputIn());
+ bool insideComment = false; // for multiline comment
+ bbtk::Interpreter::mGlobalInterpreter->InterpretLine( commandstr,
+ insideComment );
+ mBox->bbSignalOutputModification();
+ }
+
+
+
+
+ void ButtonExecBlackBoxWidget::SetLabel(wxString title)
+ {
+ mwxButton->SetLabel(title);
+ }
+
+
+
+ void ButtonExecBlackBoxWidget::SetColour(wxColour color)
+ {
+ mwxButton->SetBackgroundColour(color);
+ }
+
+
+
+ //--------------------------------------------------------------------------
+ //-------------------------------------------------------------------------
+ // WxBlackBox implementation
+ //--------------------------------------------------------------------------
+ //--------------------------------------------------------------------------
+
+ BBTK_USER_BLACK_BOX_IMPLEMENTATION(ButtonExecBlackBox,bbtk::WxBlackBox);
+
+ void ButtonExecBlackBox::bbUserConstructor()
+ {
+ bbSetInputIn("CURRENT");
+ bbSetInputLabel("");
+ std::vector<double> lstColour;
+ lstColour.push_back(-1);
+ lstColour.push_back(-1);
+ lstColour.push_back(-1);
+ }
+
+
+ void ButtonExecBlackBox::Process()
+ {
+ mWidget->SetLabel( wxString( bbGetInputLabel().c_str() , wxConvUTF8 ) );
+
+
+ /*
+ if ( (bbGetInputColour()[0]==-1) && (bbGetInputColour()[1]==-1) &&(bbGetInputColour()[1]==-1) )
+ {
+ wxwidget->SetColour( wxwidget->GetParent()->GetBeckgroundColor() );
+ } else {
+ int r=(int) (255*bbGetInputColour()[0]);
+ int g=(int) (255*bbGetInputColour()[1]);
+ int b=(int) (255*bbGetInputColour()[2]);
+ wxwidget->SetColour( wxColour(r,g,b) );
+ }
+*/
+// wxwidget->Update();
+// bbSetOutput###( 0 );
+ }
+
+
+ /**
+ * \brief Create wxWidget .
+ *
+ *
+ */
+ void ButtonExecBlackBox::CreateWidget()
+ {
+ bbtkDebugMessageInc("Core",9,"ButtonExecBlackBox::bbCreateWxWindow("<<parent<<")"<<std::endl);
+ mWidget = new ButtonExecBlackBoxWidget(this,
+ bbGetWxParent(),
+ wxString( bbGetInputLabel().c_str() , wxConvUTF8 )
+ );
+ bbtkDebugDecTab("Core",9);
+ bbSetOutputWidget( mWidget );
+ }
+
+
+
+} //namespace bbwx
+
+#endif // _USE_WXWIDGETS_
+
--- /dev/null
+/*=========================================================================
+
+ Program: bbtk
+ Module: $RCSfile: bbwxButtonExecBlackBox.h,v $
+ Language: C++
+ Date: $Date: 2008/02/12 10:31:58 $
+ Version: $Revision: 1.1 $
+
+ 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.
+
+=========================================================================*//**
+/**
+ * \file
+ * \brief Short description in one line
+ *
+ * Long description which
+ * can span multiple lines
+*/
+
+/**
+ * \class bbwx::Slider
+ * \brief
+
+ * \class bbwx::SliderWidget
+ * \brief
+ */
+
+
+#ifdef _USE_WXWIDGETS_
+
+// Prevents multiple inclusions : use symbols of the form
+// __FILENAME_INCLUDED__
+// where FILENAME must be replaced by the actual file name
+#ifndef __bbwxButtonExecBlackBox_h_INCLUDED_H__
+#define __bbwxButtonExecBlackBox_h_INCLUDED_H__
+
+
+// Include wxBlackBox definition
+#include "bbtkWxBlackBox.h"
+
+
+
+// Namespace of the package "wx" is "bbwx"
+// Namespace associated to packages should be of the form :
+// bbPACKAGENAME
+namespace bbwx
+{
+//--------------------------------------------------------------------------
+// Forward declaration of the box
+ class ButtonExecBlackBox;
+
+ //--------------------------------------------------------------------------
+ // The widget created by the box
+ class ButtonExecBlackBoxWidget : public wxPanel
+ {
+ public:
+ /// Ctor with the two first params the parent window and the creator box
+ /// which must be passed to the WxBlackBoxWidget constructor.
+ /// The other params initialize the widget
+ ButtonExecBlackBoxWidget(ButtonExecBlackBox* box,
+ wxWindow *parent,
+ wxString title);
+ ~ButtonExecBlackBoxWidget();
+ /// Events callbacks
+ void OnButton( wxEvent& );
+
+ // Accessors
+ void SetLabel(wxString title);
+ void SetColour(wxColour color);
+
+ private:
+ ButtonExecBlackBox *mBox;
+ wxButton *mwxButton;
+ };
+
+ //--------------------------------------------------------------------------
+ //--------------------------------------------------------------------------
+ //--------------------------------------------------------------------------
+
+ class /*BBTK_EXPORT*/ ButtonExecBlackBox : public bbtk::WxBlackBox
+ {
+ BBTK_USER_BLACK_BOX_INTERFACE(ButtonExecBlackBox,bbtk::WxBlackBox);
+ BBTK_DECLARE_INPUT(In, std::string );
+ BBTK_DECLARE_INPUT(Label, std::string );
+ BBTK_DECLARE_INPUT(Colour, std::vector<double> );
+ // BBTK_DECLARE_OUTPUT(Out,int);
+ BBTK_CREATE_WIDGET(CreateWidget);
+ BBTK_PROCESS(Process);
+ void Process();
+ void CreateWidget();
+
+ protected:
+ virtual void bbUserConstructor();
+
+ private:
+ ButtonExecBlackBoxWidget *mWidget;
+ };
+
+ //=================================================================
+ // UserBlackBox description
+ BBTK_BEGIN_DESCRIBE_BLACK_BOX(ButtonExecBlackBox,bbtk::WxBlackBox);
+ BBTK_NAME("ButtonExecBlackBox");
+ BBTK_AUTHOR("eduardo.davila@creatis.insa-lyon.fr");
+ // Already inserted for any WxBlackBox BBTK_CATEGORY("widget");
+ BBTK_DESCRIPTION("Button widget (Execute a BlackBox)");
+
+ typedef std::vector<double> vectorcolour;
+
+ BBTK_INPUT(ButtonExecBlackBox,In,"Name of the Black Box to be executed",std::string);
+ BBTK_INPUT(ButtonExecBlackBox,Label,"Label of the button",std::string);
+ BBTK_INPUT(ButtonExecBlackBox,Colour,"Colour of the button (-1 -1 -1 Background)",vectorcolour);
+ // BBTK_OUTPUT(ButtonExecBlackBox,Out,"..Out..",int);
+ BBTK_END_DESCRIBE_BLACK_BOX(ButtonExecBlackBox);
+ //=================================================================
+
+
+}//namespace bbwx
+
+#endif // __bbwxButtonExecBlackBox_h_INCLUDED_H__
+
+#endif //_USE_WXWIDGETS_
Program: bbtk
Module: $RCSfile: bbwxSlider.cxx,v $
Language: C++
- Date: $Date: 2008/02/08 14:58:31 $
- Version: $Revision: 1.5 $
+ Date: $Date: 2008/02/12 10:31:58 $
+ Version: $Revision: 1.6 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
//--------------------------------------------------------------------------
BBTK_USER_BLACK_BOX_IMPLEMENTATION(Slider,bbtk::WxBlackBox);
BBTK_ADD_BLACK_BOX_TO_PACKAGE(wx,Slider);
- //--------------------------------------------------------------------------
-
+
//--------------------------------------------------------------------------
void Slider::bbUserConstructor()
{
- // bbSetInputWinTitle("Slider");
bbSetInputIn(0);
bbSetInputMin(0);
bbSetInputMax(500);
bbSetInputLabel(true);
bbSetInputReactiveOnTrack(0);
}
- //--------------------------------------------------------------------------
-
+
//--------------------------------------------------------------------------
void Slider::Process()
{
bbSetOutputWidget( w );
}
- //--------------------------------------------------------------------------
- /*
- //--------------------------------------------------------------------------
- bbtk::WxBlackBoxWidget* Slider::bbUserCreateWidget(wxWindow *parent)
- {
-
-
- }
- //--------------------------------------------------------------------------
- */
-
} //namespace bbwx
Program: bbtk
Module: $RCSfile: bbwxSlider.h,v $
Language: C++
- Date: $Date: 2008/02/08 14:58:31 $
- Version: $Revision: 1.7 $
+ Date: $Date: 2008/02/12 10:31:58 $
+ Version: $Revision: 1.8 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
namespace bbwx
{
-
-
-
-
-
//--------------------------------------------------------------------------
// Forward declaration of the box
class Slider;
- //--------------------------------------------------------------------------
-
-
-
//--------------------------------------------------------------------------
// The widget created by the box
BBTK_INPUT(Slider,Min,"Minimum value of the slider (default 0)",int);
BBTK_INPUT(Slider,Max,"Maximum value of the slider (default 500)",int);
BBTK_INPUT(Slider,Label,"Show slider labels ? (default FALSE) ",bool);
- BBTK_INPUT(Slider,Title,"Title shown above the slider (default '') ",
- std::string);
- BBTK_INPUT(Slider,Orientation,
- "Orientation : (default H) 0=H=HORIZONTAL, 1=V=VERTICAL ",std::string);
- BBTK_INPUT(Slider,ChangeResolution,
- "Can the user change the resolution of the slider ? (default FALSE) ",bool);
- BBTK_INPUT(Slider,ReactiveOnTrack,
- "Slider sends info when track moves (default 0 = no)",int);
+ BBTK_INPUT(Slider,Title,"Title shown above the slider (default '') ", std::string);
+ BBTK_INPUT(Slider,Orientation, "Orientation : (default H) 0=H=HORIZONTAL, 1=V=VERTICAL ",std::string);
+ BBTK_INPUT(Slider,ChangeResolution, "Can the user change the resolution of the slider ? (default FALSE) ",bool);
+ BBTK_INPUT(Slider,ReactiveOnTrack, "Slider sends info when track moves (default 0 = no)",int);
BBTK_OUTPUT(Slider,Out,"Current position of the slider",int);
BBTK_END_DESCRIBE_BLACK_BOX(Slider);
//=================================================================