00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00030
00031
00032
00033 #ifndef SYMPROPPANEL_H
00034 #define SYMPROPPANEL_H
00035
00036
00037 #include <wx/notebook.h>
00038
00039
00040 #ifdef __GNUG__
00041 #pragma interface "SymbolDlg.h"
00042 #endif
00043
00044
00045
00046 #define IDC_SYMPROP_ADD SYMPROP_BASEID+1
00047 #define IDC_SYMPROP_SET SYMPROP_BASEID+2
00048
00051 #define SYMCONSTPROP_MAX_VALUE_LENGHT 20
00052
00053
00054
00055
00058 class mgSymPropPanel : public wxPanel
00059 {
00060 protected:
00061
00062 mgMathBox *m_pNameBox;
00063 mcSymbolProperties *m_pSymbol;
00064
00065 mcFilter *mdata_pFilter;
00066 wxListCtrl *m_pList;
00067
00068 protected:
00069
00070 virtual void BuildCtrls();
00071 virtual void AddSpecificCtrlsSizer(wxSizer *p) = 0;
00072
00073
00074 void OnAddSymbolBtn(wxCommandEvent &event);
00075 void OnSetSymbolBtn(wxCommandEvent &event);
00076
00077 virtual void OnSetSymbol() = 0;
00078 virtual void OnAddSymbol() = 0;
00079
00080 public:
00081
00082 mgSymPropPanel(wxWindow *parent,
00083 wxWindowID id = -1,
00084 const wxString &title = wxT("Properties"),
00085 const wxPoint& pos = wxDefaultPosition,
00086 const wxSize& size = wxDefaultSize,
00087 long style = 0);
00088 virtual ~mgSymPropPanel();
00089
00090 virtual void LinkWithSymbol(mcSymbolProperties *s);
00091 virtual void LinkWithList(wxListCtrl *p);
00092 virtual void BuildAll();
00093
00094 virtual void Update();
00095
00096 wxString GetName();
00097
00098 private:
00099
00100 DECLARE_CLASS(mgSymPropPanel)
00101 DECLARE_EVENT_TABLE()
00102 };
00103
00104
00105
00108 class mgSymVarPropPanel : public mgSymPropPanel
00109 {
00110 protected:
00111
00112 mgMathBox *m_pRangeBox;
00113
00114 protected:
00115
00116 void AddSpecificCtrlsSizer(wxSizer *p);
00117
00118 void OnSetSymbol();
00119 void OnAddSymbol();
00120
00121 public:
00122
00123 mgSymVarPropPanel(wxWindow *parent,
00124 wxWindowID id = -1,
00125 const wxString &title = wxT("Properties"),
00126 const wxPoint& pos = wxDefaultPosition,
00127 const wxSize& size = wxDefaultSize,
00128 long style = 0) : mgSymPropPanel(parent, id, title, pos, size, style) {}
00129 virtual ~mgSymVarPropPanel() {}
00130
00131
00132 private:
00133
00134 DECLARE_CLASS(mgSymVarPropPanel)
00135 DECLARE_EVENT_TABLE()
00136 };
00137
00138
00139
00142 class mgSymConstPropPanel : public mgSymPropPanel
00143 {
00144 protected:
00145
00146
00147 wxTextCtrl *m_pValue;
00148 wxString m_strValue;
00149
00150 protected:
00151
00152 void AddSpecificCtrlsSizer(wxSizer *p);
00153
00154
00155 void OnSetSymbol();
00156 void OnAddSymbol();
00157
00158
00159 public:
00160
00161 mgSymConstPropPanel(wxWindow *parent,
00162 wxWindowID id = -1,
00163 const wxString &title = wxT("Properties"),
00164 const wxPoint& pos = wxDefaultPosition,
00165 const wxSize& size = wxDefaultSize,
00166 long style = 0) : mgSymPropPanel(parent, id, title, pos, size, style) {}
00167 virtual ~mgSymConstPropPanel() {}
00168
00169
00170
00171 void Update();
00172
00173 private:
00174
00175 DECLARE_CLASS(mgSymConstPropPanel)
00176 DECLARE_EVENT_TABLE()
00177 };
00178
00179
00180 #endif // SYMPROPPANEL_H