]> Creatis software - bbtk.git/blob - kernel/src/bbtkWxGUICommand.h
277cbbc820edc9ad6e27094880c9a4fd51e7d400
[bbtk.git] / kernel / src / bbtkWxGUICommand.h
1 /*=========================================================================                                                                               
2   Program:   bbtk
3   Module:    $RCSfile: bbtkWxGUICommand.h,v $
4   Language:  C++
5   Date:      $Date: 2008/10/17 08:18:15 $
6   Version:   $Revision: 1.5 $
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  * \brief Short description in one line
34  * 
35  * Long description which 
36  * can span multiple lines
37  */
38 /**
39  * \file 
40  * \brief 
41  */
42 /**
43  * \class bbtk::
44  * \brief 
45  */
46
47
48 #ifdef _USE_WXWIDGETS_
49
50         
51 #ifndef __bbtkWxGUICommand_h__
52 #define __bbtkWxGUICommand_h__
53
54 #include "bbtkWx.h"
55  
56
57 namespace bbtk
58 {
59    /// Abstract class which defines the callbacks invoked by WxGUICommand
60   class BBTK_EXPORT WxGUICommandUser
61   {
62   public:
63     WxGUICommandUser() {}
64     virtual ~WxGUICommandUser() {}
65     /// Callback invoked when a command is entered in the WxGUICommand
66     virtual void WxGUICommandEnter(const std::string& command) {}
67   };
68
69   /// GUI Component which provides a command input zone 
70   class BBTK_EXPORT WxGUICommand : public wxPanel
71   {
72   public:
73     WxGUICommand(wxWindow *parent, WxGUICommandUser* user = 0);
74     ~WxGUICommand();
75     
76     void OnBtnGo(wxCommandEvent& event);
77     void OnCommandEnter(wxCommandEvent& event);
78     void OnCommandChar(wxCommandEvent& event);
79     
80     void OnBtnInclude(wxCommandEvent& event);
81     void OnBtnReset(wxCommandEvent& event);
82     void OnBtnConfig(wxCommandEvent& event);
83     void OnBtnGraphS(wxCommandEvent& event);
84     void OnBtnGraphD(wxCommandEvent& event);
85     void OnBtnHelp(wxCommandEvent& event);
86     void OnBtnPackageBrowser(wxCommandEvent& event);
87     
88     void SendCommand(const std::string& command);
89   private :
90     WxGUICommandUser* mUser;
91     wxComboBox* mwxTextCommand;
92     //    wxTextAttr* mwxTextCommandAttr;
93     
94   public:
95     enum
96       {
97         ID_Text_Command,
98         ID_Btn_Go,
99         ID_Btn_Include,
100         ID_Btn_Reset,
101         ID_Btn_Config,
102         ID_Btn_GraphS,
103         ID_Btn_GraphD,
104         ID_Btn_Help,
105         ID_Btn_PackageBrowser
106       };
107     
108     DECLARE_EVENT_TABLE()
109       
110       };
111   
112   
113 } // namespace bbtk
114
115
116 #endif // __bbtkWxGUICommand_h__
117
118 #endif //_USE_WXWIDGETS_