00001
00002
00003
00004
00005
00006
00007
00008
00010
00011
#ifndef PROP_DLG_H
00012
#define PROP_DLG_H
00013
00014
#include <wx/wx.h>
00015
#include <wx/grid.h>
00016
#include <wx/dynarray.h>
00017
00018
#ifndef wxFD_OPEN
00019
#define wxFD_OPEN wxOPEN
00020
#define wxFD_DEFAULT_STYLE 0
00021
#endif
00022
00027 class wxPropDlg:
public wxDialog
00028 {
00029
public:
00030
wxPropDlg(wxWindow *parent);
00031
virtual ~
wxPropDlg();
00032
00033
protected:
00034 wxArrayInt m_types;
00035 wxArrayPtrVoid m_controls;
00036 wxArrayInt m_groupIds;
00037
int m_updateIndex;
00038 int m_currGroupId;
00039
void* m_currGroupChecker;
00040
00041
void Create(
bool resetButton =
false);
00046
virtual void CreatePropPanel(wxSizer* sizer) = 0;
00050
virtual void CreateButtonPane(wxSizer* sizer,
bool resetButton =
false);
00051
00052
virtual void Reset();
00053
00057
virtual bool SetValues() = 0;
00058
00059
00060 wxWindow* propWindow;
00061
00062
void AddText(wxSizer* sizer, wxString text);
00063
00064
void AddTextProp(wxSizer* sizer, wxString text, wxString defValue,
00065
bool readonly =
false);
00066
void AddStaticTextProp(wxSizer* sizer, wxString text, wxString defValue);
00067
void AddSpinProp(wxSizer* sizer, wxString text,
int defValue,
00068
int min = 0,
int max = 100);
00069
void AddCheckProp(wxSizer* sizer, wxString text,
bool defValue,
00070
bool readonly =
false,
int id = -1);
00071
void AddRadioProp(wxSizer* sizer, wxString text,
bool defValue,
00072
long style = wxRB_SINGLE,
bool readonly =
false,
int id = -1);
00073
void AddRadioGroupProp(wxSizer* sizer,
const wxArrayString& text,
00074
int defValue,
bool readonly =
false);
00075
void AddComboProp(wxSizer* sizer,
const wxString& text,
00076
const wxString& defValue,
const wxArrayString& choices,
long style = 0);
00077
void SetComboData(wxComboBox* ctrl,
00078
const wxString& defValue,
const wxArrayString& choices);
00079
void AddChoiceProp(wxSizer* sizer,
const wxString& text,
00080
const wxString& defValue,
const wxArrayString& choices,
int id = -1);
00081
void SetChoiceData(wxChoice* ctrl,
00082
const wxString& defValue,
const wxArrayString& choices);
00083
void AddGridProp(wxSizer* sizer,
const wxArrayPtrVoid& data,
00084
const wxString& rowTitle,
bool editable);
00085
void SetGridData(wxGrid* grid,
const wxArrayPtrVoid& data,
00086
const wxString& rowTitle,
bool editable);
00087
void AddFontProp(wxSizer* sizer, wxString text,
00088 wxFont font, wxString caption = _T(
"..."));
00089
void AddFontProp(wxSizer* sizer, wxString text,
00090 wxFontData font, wxString caption = _T(
"..."));
00091
void AddColourProp(wxSizer* sizer, wxString text,
00092 wxColour colour, wxString caption = _T(
"..."));
00093
void AddFileProp(wxSizer* sizer, wxString text,
const wxString& defValue,
00094
int dlgStyle = wxFD_OPEN, wxString caption = _T(
"..."));
00095
void AddDirectoryProp(wxSizer* sizer, wxString text,
00096
const wxString& defValue, wxString caption = _T(
"..."));
00097
00098 wxSizer* BeginGroup(wxSizer* sizer, wxString title = wxEmptyString,
00099 wxString checkTitle = wxEmptyString,
bool defValue =
false,
00100
bool readonly =
false);
00101
void EndGroup();
00102
00103
00104 wxString GetString(
int index);
00105
int GetInt(
int index);
00106
bool GetBool(
int index);
00107
void* GetClientData(
int index);
00108 wxArrayPtrVoid GetGrid(
int index);
00109 wxFontData GetFont(
int index);
00110 wxColour GetColour(
int index);
00111
00112
void* m_currObject;
00113
int m_currObjectItem;
00114
virtual void OnCancel(wxCommandEvent& event);
00115
virtual void OnOk(wxCommandEvent& event);
00116
virtual void OnReset(wxCommandEvent& event);
00117
virtual void OnSelectFont(wxCommandEvent& event);
00118
virtual void OnSelectColour(wxCommandEvent& event);
00119
virtual void OnSelectFile(wxCommandEvent& event);
00120
virtual void OnSelectDir(wxCommandEvent& event);
00121
virtual void OnGroupCheck(wxCommandEvent& event);
00122
virtual void OnCellLeftClick(wxGridEvent& event);
00123
virtual void OnCellRightClick(wxGridEvent& event);
00124
virtual void OnCellChange(wxGridEvent& event);
00125
virtual void OnRowDelete(wxCommandEvent& event);
00126
00127
private:
00128 DECLARE_EVENT_TABLE()
00129 };
00130
00131
#endif // PROP_DLG_H