1 /*=========================================================================
4 Module: $RCSfile: bbwxColourSelectorButton.cxx,v $
6 Date: $Date: 2008/03/10 06:24:13 $
7 Version: $Revision: 1.2 $
9 Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
10 l'Image). All rights reserved. See Doc/License.txt or
11 http://www.creatis.insa-lyon.fr/Public/bbtk/License.html for details.
13 This software is distributed WITHOUT ANY WARRANTY; without even
14 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15 PURPOSE. See the above copyright notices for more information.
17 =========================================================================*/
20 * \brief Short description in one line
27 #ifdef _USE_WXWIDGETS_
29 #include "bbwxColourSelectorButton.h"
30 #include "bbwxPackage.h"
37 //-------------------------------------------------------------------------
38 wxColourPickerCtrlWidget::wxColourPickerCtrlWidget( ColourSelectorButton* box,
44 : wxPanel( parent, -1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL),
47 bbtkDebugMessage("Process",9,"=> wxColourPickerCtrlWidget::wxColourPickerCtrlWidget"<<std::endl);
49 wxPanel * panel = this;
50 picker = new wxColourPickerCtrl(panel,-1,
56 picker->SetPickerCtrlGrowable(false);
57 picker->SetTextCtrlGrowable(false);
59 Connect ( picker->GetId(),
60 wxEVT_COMMAND_COLOURPICKER_CHANGED,
61 wxColourPickerEventHandler( wxColourPickerCtrlWidget::OnColorChange ) );
63 bbtkDebugMessage("Process",9,"<= wxColourPickerCtrlWidget::wxColourPickerCtrlWidget"<<std::endl);
64 wxFlexGridSizer *sizer = new wxFlexGridSizer(10);
65 sizer -> AddGrowableRow(0);
66 sizer -> Add( picker, 1, wxEXPAND, 0 );
67 panel -> SetSizer(sizer);
70 wxColourPickerCtrlWidget::~wxColourPickerCtrlWidget()
75 //---------------------------------------------------------------------
76 void wxColourPickerCtrlWidget::OnColorChange(wxColourPickerEvent& e)
82 //---------------------------------------------------------------------
83 void wxColourPickerCtrlWidget::UpdateBox()
86 wxColour c = picker->GetColour();
87 sprintf(col,"%f %f %f",c.Red()/255.,c.Green()/255.,c.Blue()/255.);
89 // std::cout << col << std::endl;
91 ColourSelectorButton* b = (ColourSelectorButton*)mBox;
92 b->bbSetOutputOut( col );
93 b->bbSignalOutputModification("Out");
96 //--------------------------------------------------------------------------
97 //-------------------------------------------------------------------------
98 // WxBlackBox implementation
99 //--------------------------------------------------------------------------
100 //--------------------------------------------------------------------------
102 //--------------------------------------------------------------------------
104 BBTK_USER_BLACK_BOX_IMPLEMENTATION(ColourSelectorButton,bbtk::WxBlackBox);
105 BBTK_ADD_BLACK_BOX_TO_PACKAGE(wx,ColourSelectorButton);
107 void ColourSelectorButton::bbUserConstructor()
109 bbSetInputIn("1 1 1");
113 void ColourSelectorButton::Process()
115 bbtkDebugMessageInc("Process",9,"ColourSelectorButton::Process()"<<std::endl);
116 pickerWidget->UpdateBox();
117 bbtkDebugDecTab("Process",9);
122 * \brief Create wxWidget .
126 void ColourSelectorButton::CreateWidget()
128 bbtkDebugMessage("Process",9,"=> ColourSelectorButton::CreateWidget()"<<std::endl);
131 sscanf( bbGetInputIn().c_str(), "%f %f %f", &r, &g ,&b);
132 unsigned char cr,cg,cb;
133 cr = (unsigned char)(255.*r);
134 cg = (unsigned char)(255.*g);
135 cb = (unsigned char)(255.*b);
137 pickerWidget = new wxColourPickerCtrlWidget(this, bbGetWxParent() , cr , cg , cb );
139 bbtkDebugMessage("Process",9,"<= ColourSelectorButton::CreateWidget()"<<std::endl);
141 bbSetOutputWidget( pickerWidget );
147 #endif // _USE_WXWIDGETS_