1 /*=========================================================================
4 Module: $RCSfile: bbwxColourSelectorButton.cxx,v $
6 Date: $Date: 2008/09/10 12:01:47 $
7 Version: $Revision: 1.4 $
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"
36 //-------------------------------------------------------------------------
37 wxColourPickerCtrlWidget::wxColourPickerCtrlWidget( ColourSelectorButton* box,
43 : wxPanel( parent, -1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL),
46 bbtkDebugMessage("Process",9,"=> wxColourPickerCtrlWidget::wxColourPickerCtrlWidget"<<std::endl);
48 wxPanel * panel = this;
49 picker = new wxColourPickerCtrl(panel,-1,
55 picker->SetPickerCtrlGrowable(false);
56 picker->SetTextCtrlGrowable(false);
58 Connect ( picker->GetId(),
59 wxEVT_COMMAND_COLOURPICKER_CHANGED,
60 wxColourPickerEventHandler( wxColourPickerCtrlWidget::OnColorChange ) );
62 bbtkDebugMessage("Process",9,"<= wxColourPickerCtrlWidget::wxColourPickerCtrlWidget"<<std::endl);
63 wxFlexGridSizer *sizer = new wxFlexGridSizer(10);
64 sizer -> AddGrowableRow(0);
65 sizer -> Add( picker, 1, wxEXPAND, 0 );
66 panel -> SetSizer(sizer);
69 wxColourPickerCtrlWidget::~wxColourPickerCtrlWidget()
74 //---------------------------------------------------------------------
75 void wxColourPickerCtrlWidget::OnColorChange(wxColourPickerEvent& e)
81 //---------------------------------------------------------------------
82 void wxColourPickerCtrlWidget::UpdateBox()
85 wxColour c = picker->GetColour();
86 sprintf(col,"%f %f %f",c.Red()/255.,c.Green()/255.,c.Blue()/255.);
88 // std::cout << col << std::endl;
90 ColourSelectorButton* b = (ColourSelectorButton*)mBox;
91 b->bbSetOutputOut( col );
92 b->bbSignalOutputModification("Out");
95 //--------------------------------------------------------------------------
96 //-------------------------------------------------------------------------
97 // WxBlackBox implementation
98 //--------------------------------------------------------------------------
99 //--------------------------------------------------------------------------
101 //--------------------------------------------------------------------------
103 BBTK_BLACK_BOX_IMPLEMENTATION(ColourSelectorButton,bbtk::WxBlackBox);
104 BBTK_ADD_BLACK_BOX_TO_PACKAGE(wx,ColourSelectorButton);
106 void ColourSelectorButton::bbUserConstructor()
108 bbSetInputIn("1 1 1");
112 void ColourSelectorButton::Process()
114 bbtkDebugMessageInc("Process",9,"ColourSelectorButton::Process()"<<std::endl);
115 pickerWidget->UpdateBox();
116 bbtkDebugDecTab("Process",9);
121 * \brief Create wxWidget .
125 void ColourSelectorButton::CreateWidget()
127 bbtkDebugMessage("Process",9,"=> ColourSelectorButton::CreateWidget()"<<std::endl);
130 sscanf( bbGetInputIn().c_str(), "%f %f %f", &r, &g ,&b);
131 unsigned char cr,cg,cb;
132 cr = (unsigned char)(255.*r);
133 cg = (unsigned char)(255.*g);
134 cb = (unsigned char)(255.*b);
136 pickerWidget = new wxColourPickerCtrlWidget(this, bbGetWxParent() , cr , cg , cb );
138 bbtkDebugMessage("Process",9,"<= ColourSelectorButton::CreateWidget()"<<std::endl);
140 bbSetOutputWidget( pickerWidget );
146 #endif // _USE_WXWIDGETS_