]> Creatis software - bbtk.git/blob - packages/wx/src/bbwxColourSelectorButton.h
New widget pipeline : progressing ...
[bbtk.git] / packages / wx / src / bbwxColourSelectorButton.h
1 /*=========================================================================                                                                               
2   Program:   bbtk
3   Module:    $RCSfile: bbwxColourSelectorButton.h,v $
4   Language:  C++
5   Date:      $Date: 2008/11/25 11:17:25 $
6   Version:   $Revision: 1.9 $
7 =========================================================================*/
8
9 /* ---------------------------------------------------------------------
10
11 * Copyright (c) CREATIS-LRMN (Centre de Recherche en Imagerie Medicale)
12 * Authors : Eduardo Davila, Laurent Guigues, Jean-Pierre Roux
13 *
14 *  This software is governed by the CeCILL-B license under French law and 
15 *  abiding by the rules of distribution of free software. You can  use, 
16 *  modify and/ or redistribute the software under the terms of the CeCILL-B 
17 *  license as circulated by CEA, CNRS and INRIA at the following URL 
18 *  http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html 
19 *  or in the file LICENSE.txt.
20 *
21 *  As a counterpart to the access to the source code and  rights to copy,
22 *  modify and redistribute granted by the license, users are provided only
23 *  with a limited warranty  and the software's author,  the holder of the
24 *  economic rights,  and the successive licensors  have only  limited
25 *  liability. 
26 *
27 *  The fact that you are presently reading this means that you have had
28 *  knowledge of the CeCILL-B license and that you accept its terms.
29 * ------------------------------------------------------------------------ */                                                                         
30
31
32 /**
33  * \file 
34  * \brief Short description in one line
35  * 
36  * Long description which 
37  * can span multiple lines
38 */
39
40 /**
41  * \class bbwx::ColourSelectorButton
42  * \brief 
43
44  * \class bbwx::wxColourPickerCtrlWidget
45  * \brief 
46  */
47
48 #ifdef _USE_WXWIDGETS_
49
50 // Prevents multiple inclusions : use symbols of the form
51 // __FILENAME_INCLUDED__ 
52 // where FILENAME must be replaced by the actual file name
53 #ifndef __bbwxColourSelectorButton_h_INCLUDED_H__
54 #define __bbwxColourSelectorButton_h_INCLUDED_H__
55
56 // Include wxBlackBox definition
57 #include "bbtkWxBlackBox.h"
58
59 #include <wx/clrpicker.h>
60
61 // Namespace of the package "wx" is "bbwx" 
62 // Namespace associated to packages should be of the form :
63 // bbPACKAGENAME
64 namespace bbwx
65 {
66
67   //=================================================================
68 class ColourSelectorButton;
69
70 class wxColourPickerCtrlWidget :public wxPanel
71 {
72
73 public:
74    wxColourPickerCtrlWidget( ColourSelectorButton* box,
75                              wxWindow *parent,
76                              unsigned char  cr,
77                              unsigned char  cg,
78                              unsigned char  cb  );
79
80    ~wxColourPickerCtrlWidget();
81    void OnColorChange(wxColourPickerEvent& e);
82    void UpdateBox();
83 private:
84    wxColourPickerCtrl *picker;
85    ColourSelectorButton *mBox;
86 };
87
88 //------------------------------------------------------------------------
89 // The black box
90   class /*BBTK_EXPORT*/ ColourSelectorButton : public bbtk::WxBlackBox
91   {
92     BBTK_BLACK_BOX_INTERFACE(ColourSelectorButton,bbtk::WxBlackBox);
93     BBTK_DECLARE_INPUT(In,std::string);
94     BBTK_DECLARE_OUTPUT(Out,std::string);
95     BBTK_PROCESS(Process);
96     BBTK_CREATE_WIDGET(CreateWidget);
97     void Process();
98     void CreateWidget(wxWindow*);
99
100   protected:
101     virtual void bbUserConstructor();
102     /*
103   private:
104      wxColourPickerCtrlWidget* pickerWidget;
105     */
106   };
107
108   //=================================================================
109   // UserBlackBox description
110   BBTK_BEGIN_DESCRIBE_BLACK_BOX(ColourSelectorButton,bbtk::WxBlackBox);
111   // Already inserted for any WxBlackBox  BBTK_CATEGORY("widget");
112   BBTK_NAME("ColourSelectorButton");
113   BBTK_AUTHOR("laurent.guigues@creatis.insa-lyon.fr");
114   BBTK_DESCRIPTION("A button which displays a colour picker dialog when clicked");
115   BBTK_INPUT(ColourSelectorButton,In,"Initial colour",std::string,"colour");
116   BBTK_OUTPUT(ColourSelectorButton,Out,"Colour choosen in format '[0,1] [0,1] [0,1]'",std::string,"colour");
117   BBTK_END_DESCRIBE_BLACK_BOX(ColourSelectorButton);
118   //=================================================================
119
120 }//namespace bbtk
121 #endif  // __bbtkWxColourSelector_h__
122
123 #endif //_USE_WXWIDGETS_