/*========================================================================= Program: bbtk Module: $RCSfile: bbwxColourSelectorButton.h,v $ Language: C++ Date: $Date: 2008/11/25 11:17:25 $ Version: $Revision: 1.9 $ =========================================================================*/ /* --------------------------------------------------------------------- * 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. * ------------------------------------------------------------------------ */ /** * \file * \brief Short description in one line * * Long description which * can span multiple lines */ /** * \class bbwx::ColourSelectorButton * \brief * \class bbwx::wxColourPickerCtrlWidget * \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 __bbwxColourSelectorButton_h_INCLUDED_H__ #define __bbwxColourSelectorButton_h_INCLUDED_H__ // Include wxBlackBox definition #include "bbtkWxBlackBox.h" #include // Namespace of the package "wx" is "bbwx" // Namespace associated to packages should be of the form : // bbPACKAGENAME namespace bbwx { //================================================================= class ColourSelectorButton; class wxColourPickerCtrlWidget :public wxPanel { public: wxColourPickerCtrlWidget( ColourSelectorButton* box, wxWindow *parent, unsigned char cr, unsigned char cg, unsigned char cb ); ~wxColourPickerCtrlWidget(); void OnColorChange(wxColourPickerEvent& e); void UpdateBox(); private: wxColourPickerCtrl *picker; ColourSelectorButton *mBox; }; //------------------------------------------------------------------------ // The black box class /*BBTK_EXPORT*/ ColourSelectorButton : public bbtk::WxBlackBox { BBTK_BLACK_BOX_INTERFACE(ColourSelectorButton,bbtk::WxBlackBox); BBTK_DECLARE_INPUT(In,std::string); BBTK_DECLARE_OUTPUT(Out,std::string); BBTK_PROCESS(Process); BBTK_CREATE_WIDGET(CreateWidget); void Process(); void CreateWidget(wxWindow*); protected: virtual void bbUserConstructor(); /* private: wxColourPickerCtrlWidget* pickerWidget; */ }; //================================================================= // UserBlackBox description BBTK_BEGIN_DESCRIBE_BLACK_BOX(ColourSelectorButton,bbtk::WxBlackBox); // Already inserted for any WxBlackBox BBTK_CATEGORY("widget"); BBTK_NAME("ColourSelectorButton"); BBTK_AUTHOR("laurent.guigues@creatis.insa-lyon.fr"); BBTK_DESCRIPTION("A button which displays a colour picker dialog when clicked"); BBTK_INPUT(ColourSelectorButton,In,"Initial colour",std::string,"colour"); BBTK_OUTPUT(ColourSelectorButton,Out,"Colour choosen in format '[0,1] [0,1] [0,1]'",std::string,"colour"); BBTK_END_DESCRIBE_BLACK_BOX(ColourSelectorButton); //================================================================= }//namespace bbtk #endif // __bbtkWxColourSelector_h__ #endif //_USE_WXWIDGETS_