1 /////////////////////////////////////////////////////////////////////////////
2 // Name: samples/propgrid/propgrid.h
3 // Purpose: wxPropertyGrid sample
4 // Author: Jaakko Salli
8 // Copyright: (c) Jaakko Salli
9 // Licence: wxWindows license
10 /////////////////////////////////////////////////////////////////////////////
12 #ifndef _WX_SAMPLES_PROPGRID_PROPGRID_H_
13 #define _WX_SAMPLES_PROPGRID_PROPGRID_H_
15 // -----------------------------------------------------------------------
17 class wxAdvImageFileProperty
: public wxFileProperty
19 WX_PG_DECLARE_PROPERTY_CLASS(wxAdvImageFileProperty
)
22 wxAdvImageFileProperty( const wxString
& label
= wxPG_LABEL
,
23 const wxString
& name
= wxPG_LABEL
,
24 const wxString
& value
= wxEmptyString
);
25 virtual ~wxAdvImageFileProperty ();
27 virtual void OnSetValue(); // Override to allow image loading.
29 WX_PG_DECLARE_CHOICE_METHODS()
30 WX_PG_DECLARE_EVENT_METHODS()
31 WX_PG_DECLARE_CUSTOM_PAINT_METHODS()
33 void LoadThumbnails( size_t n
);
36 wxImage
* m_pImage
; // Temporary thumbnail data.
38 static wxPGChoices ms_choices
;
40 int m_index
; // Index required for choice behaviour.
43 // -----------------------------------------------------------------------
52 wxVector3f( double x
, double y
, double z
)
60 inline bool operator == (const wxVector3f
& a
, const wxVector3f
& b
)
62 return (a
.x
== b
.x
&& a
.y
== b
.y
&& a
.z
== b
.z
);
65 WX_PG_DECLARE_VARIANT_DATA(wxVector3fVariantData
, wxVector3f
, wxEMPTY_PARAMETER_VALUE
)
67 class wxVectorProperty
: public wxPGProperty
69 WX_PG_DECLARE_PROPERTY_CLASS(wxVectorProperty
)
72 wxVectorProperty( const wxString
& label
= wxPG_LABEL
,
73 const wxString
& name
= wxPG_LABEL
,
74 const wxVector3f
& value
= wxVector3f() );
75 virtual ~wxVectorProperty();
77 WX_PG_DECLARE_PARENTAL_METHODS()
82 // -----------------------------------------------------------------------
90 inline bool operator == (const wxTriangle
& a
, const wxTriangle
& b
)
92 return (a
.a
== b
.a
&& a
.b
== b
.b
&& a
.c
== b
.c
);
95 WX_PG_DECLARE_VARIANT_DATA(wxTriangleVariantData
, wxTriangle
, wxEMPTY_PARAMETER_VALUE
)
97 class wxTriangleProperty
: public wxPGProperty
99 WX_PG_DECLARE_PROPERTY_CLASS(wxTriangleProperty
)
102 wxTriangleProperty( const wxString
& label
= wxPG_LABEL
,
103 const wxString
& name
= wxPG_LABEL
,
104 const wxTriangle
& value
= wxTriangle() );
105 virtual ~wxTriangleProperty();
107 WX_PG_DECLARE_PARENTAL_METHODS()
112 // -----------------------------------------------------------------------
116 ID_COLOURSCHEME4
= 100
119 // -----------------------------------------------------------------------
121 class FormMain
: public wxFrame
124 FormMain(const wxString
& title
, const wxPoint
& pos
, const wxSize
& size
);
127 wxPropertyGridManager
* m_pPropGridManager
;
128 wxPropertyGrid
* m_propGrid
;
130 wxTextCtrl
* m_tcPropLabel
;
132 wxBoxSizer
* m_topSizer
;
134 wxPGChoices m_combinedFlags
;
136 wxMenuItem
* m_itemCatColours
;
137 wxMenuItem
* m_itemFreeze
;
138 wxMenuItem
* m_itemEnable
;
140 wxVariant m_storedValues
;
142 wxString m_savedState
;
145 void CreateGrid( int style
, int extraStyle
);
147 // These are used in CreateGrid(), and in tests to compose
148 // grids for testing purposes.
151 void FinalizePanel( bool wasCreated
= true );
153 void PopulateWithStandardItems();
154 void PopulateWithExamples();
155 void PopulateWithLibraryConfig();
157 void OnCloseClick( wxCommandEvent
& event
);
158 void OnLabelTextChange( wxCommandEvent
& event
);
160 void OnColourScheme( wxCommandEvent
& event
);
162 void OnInsertPropClick( wxCommandEvent
& event
);
163 void OnAppendPropClick( wxCommandEvent
& event
);
164 void OnClearClick( wxCommandEvent
& event
);
165 void OnAppendCatClick( wxCommandEvent
& event
);
166 void OnInsertCatClick( wxCommandEvent
& event
);
167 void OnDelPropClick( wxCommandEvent
& event
);
168 void OnDelPropRClick( wxCommandEvent
& event
);
170 void OnContextMenu( wxContextMenuEvent
& event
);
172 void OnEnableDisable( wxCommandEvent
& event
);
173 void OnHideShow( wxCommandEvent
& event
);
174 void OnClearModifyStatusClick( wxCommandEvent
& event
);
175 void OnFreezeClick( wxCommandEvent
& event
);
176 void OnDumpList( wxCommandEvent
& event
);
177 void OnCatColours( wxCommandEvent
& event
);
178 void OnSetColumns( wxCommandEvent
& event
);
179 void OnMisc( wxCommandEvent
& event
);
180 void OnPopulateClick( wxCommandEvent
& event
);
181 void OnSetSpinCtrlEditorClick( wxCommandEvent
& event
);
182 void OnTestReplaceClick( wxCommandEvent
& event
);
183 void OnTestXRC( wxCommandEvent
& event
);
184 void OnEnableCommonValues( wxCommandEvent
& event
);
185 void OnSelectStyle( wxCommandEvent
& event
);
187 void OnFitColumnsClick( wxCommandEvent
& event
);
189 void OnChangeFlagsPropItemsClick( wxCommandEvent
& event
);
191 void OnSaveToFileClick( wxCommandEvent
& event
);
192 void OnLoadFromFileClick( wxCommandEvent
& event
);
194 void OnSetPropertyValue( wxCommandEvent
& event
);
195 void OnInsertChoice( wxCommandEvent
& event
);
196 void OnDeleteChoice( wxCommandEvent
& event
);
197 void OnInsertPage( wxCommandEvent
& event
);
198 void OnRemovePage( wxCommandEvent
& event
);
200 void OnSaveState( wxCommandEvent
& event
);
201 void OnRestoreState( wxCommandEvent
& event
);
203 void OnRunMinimalClick( wxCommandEvent
& event
);
205 void OnIterate1Click( wxCommandEvent
& event
);
206 void OnIterate2Click( wxCommandEvent
& event
);
207 void OnIterate3Click( wxCommandEvent
& event
);
208 void OnIterate4Click( wxCommandEvent
& event
);
210 void OnPropertyGridChange( wxPropertyGridEvent
& event
);
211 void OnPropertyGridChanging( wxPropertyGridEvent
& event
);
212 void OnPropertyGridSelect( wxPropertyGridEvent
& event
);
213 void OnPropertyGridHighlight( wxPropertyGridEvent
& event
);
214 void OnPropertyGridItemRightClick( wxPropertyGridEvent
& event
);
215 void OnPropertyGridItemDoubleClick( wxPropertyGridEvent
& event
);
216 void OnPropertyGridPageChange( wxPropertyGridEvent
& event
);
217 void OnPropertyGridButtonClick( wxCommandEvent
& event
);
218 void OnPropertyGridTextUpdate( wxCommandEvent
& event
);
219 void OnPropertyGridKeyEvent( wxKeyEvent
& event
);
220 void OnPropertyGridItemCollapse( wxPropertyGridEvent
& event
);
221 void OnPropertyGridItemExpand( wxPropertyGridEvent
& event
);
223 void OnAbout( wxCommandEvent
& event
);
225 void OnMove( wxMoveEvent
& event
);
226 void OnResize( wxSizeEvent
& event
);
227 void OnPaint( wxPaintEvent
& event
);
228 void OnCloseEvent( wxCloseEvent
& event
);
230 void OnIdle( wxIdleEvent
& event
);
232 void AddTestProperties( wxPropertyGridPage
* pg
);
234 bool RunTests( bool fullTest
, bool interactive
= false );
237 DECLARE_EVENT_TABLE()
240 // -----------------------------------------------------------------------
242 class cxApplication
: public wxApp
246 virtual bool OnInit();
252 DECLARE_APP(cxApplication
)
254 // -----------------------------------------------------------------------
256 #endif // _WX_SAMPLES_PROPGRID_PROPGRID_H_