]> git.saurik.com Git - wxWidgets.git/blob - contrib/samples/ogl/studio/dialogs.h
added status bar to the sample because it uses wxLogStatus()
[wxWidgets.git] / contrib / samples / ogl / studio / dialogs.h
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: dialogs.h
3 // Purpose: Miscellaneous dialogs
4 // Author: Julian Smart
5 // Modified by:
6 // Created: 12/07/98
7 // RCS-ID: $Id$
8 // Copyright: (c) Julian Smart
9 // Licence:
10 /////////////////////////////////////////////////////////////////////////////
11
12 #ifndef _STUDIO_DIALOGS_H_
13 #define _STUDIO_DIALOGS_H_
14
15 #ifdef __GNUG__
16 // #pragma interface
17 #endif
18
19 #include <wx/wx.h>
20 #include <wx/notebook.h>
21
22 /*
23 * Label editing dialog (about to become obsolete)
24 */
25
26 class csLabelEditingDialog: public wxDialog
27 {
28 DECLARE_CLASS(csLabelEditingDialog)
29 public:
30 csLabelEditingDialog(wxWindow* parent);
31
32 void SetShapeLabel(const wxString& label);
33 inline wxString GetShapeLabel() const { return m_label; }
34
35 void OnOK(wxCommandEvent& event);
36
37 protected:
38 wxString m_label;
39
40 DECLARE_EVENT_TABLE()
41 };
42
43 /*
44 * Settings dialog (tabbed)
45 */
46
47 class csSettingsDialog: public wxDialog
48 {
49 DECLARE_CLASS(csSettingsDialog)
50 public:
51 csSettingsDialog(wxWindow* parent);
52
53 void OnOK(wxCommandEvent& event);
54
55 virtual bool TransferDataToWindow();
56 virtual bool TransferDataFromWindow();
57
58 protected:
59
60 wxPanel* m_generalSettings;
61 wxPanel* m_diagramSettings;
62 wxNotebook* m_notebook;
63
64 DECLARE_EVENT_TABLE()
65 };
66
67 #define ID_PROPERTY_NOTEBOOK 1000
68 #define ID_GENERAL_SETTINGS 1002
69 #define ID_DIAGRAM_SETTINGS 1003
70
71 /*
72 * csGeneralShapePropertiesDialog
73 * Name, description etc.
74 */
75
76 class csGeneralShapePropertiesDialog: public wxPanel
77 {
78 DECLARE_CLASS(csGeneralShapePropertiesDialog)
79 public:
80 csGeneralShapePropertiesDialog();
81
82 void SetShapeLabel(const wxString& label);
83 inline wxString GetShapeLabel() const { return m_label; }
84
85 protected:
86 wxString m_label;
87
88 DECLARE_EVENT_TABLE()
89 };
90
91 /*
92 * Shape properties dialog (tabbed)
93 */
94
95 class csShapePropertiesDialog: public wxDialog
96 {
97 DECLARE_CLASS(csShapePropertiesDialog)
98 public:
99 csShapePropertiesDialog(wxWindow* parent, const wxString& title, wxPanel* attributeDialog, const wxString& attributeDialogName);
100
101 void OnOK(wxCommandEvent& event);
102
103 // Set some suitable defaults in the attribute dialogs (in the first instance,
104 // just set all wxChoices to the first element)
105 void SetDefaults();
106
107 // Accessors
108 csGeneralShapePropertiesDialog* GetGeneralPropertiesDialog() const { return m_generalPropertiesDialog; }
109
110
111 protected:
112
113 // Attributes, specific to each shape
114 wxPanel* m_attributeDialog;
115 wxPanel* m_alternativeAttributeDialog;
116
117 // General properties, same for each shape, e.g. name/description
118 csGeneralShapePropertiesDialog* m_generalPropertiesDialog;
119
120 wxNotebook* m_notebook;
121
122 DECLARE_EVENT_TABLE()
123 };
124
125 #define ID_SHAPE_PROPERTY_NOTEBOOK 1000
126
127 //// Specific attribute-editing panel classes below here
128
129 /*
130 * csThinRectangleDialog
131 */
132
133 class csThinRectangleDialog: public wxPanel
134 {
135 DECLARE_CLASS(csThinRectangleDialog)
136 public:
137 csThinRectangleDialog();
138
139 DECLARE_EVENT_TABLE()
140 };
141
142 /*
143 * csWideRectangleDialog
144 */
145
146 class csWideRectangleDialog: public wxPanel
147 {
148 DECLARE_CLASS(csWideRectangleDialog)
149 public:
150 csWideRectangleDialog();
151
152 DECLARE_EVENT_TABLE()
153 };
154
155 /*
156 * csTriangleDialog
157 */
158
159 class csTriangleDialog: public wxPanel
160 {
161 DECLARE_CLASS(csTriangleDialog)
162 public:
163 csTriangleDialog();
164
165 DECLARE_EVENT_TABLE()
166 };
167
168 /*
169 * csSemiCircleDialog
170 */
171
172 class csSemiCircleDialog: public wxPanel
173 {
174 DECLARE_CLASS(csSemiCircleDialog)
175 public:
176 csSemiCircleDialog();
177
178 DECLARE_EVENT_TABLE()
179 };
180
181 /*
182 * csCircleDialog
183 */
184
185 class csCircleDialog: public wxPanel
186 {
187 DECLARE_CLASS(csCircleDialog)
188 public:
189 csCircleDialog();
190
191 DECLARE_EVENT_TABLE()
192 };
193
194 /*
195 * csCircleShadowDialog
196 */
197
198 class csCircleShadowDialog: public wxPanel
199 {
200 DECLARE_CLASS(csCircleShadowDialog)
201 public:
202 csCircleShadowDialog();
203
204 DECLARE_EVENT_TABLE()
205 };
206
207 /*
208 * csOctagonDialog
209 */
210
211 class csOctagonDialog: public wxPanel
212 {
213 DECLARE_CLASS(csOctagonDialog)
214 public:
215 csOctagonDialog();
216
217 DECLARE_EVENT_TABLE()
218 };
219
220 /*
221 * csGroupDialog
222 */
223
224 class csGroupDialog: public wxPanel
225 {
226 DECLARE_CLASS(csGroupDialog)
227 public:
228 csGroupDialog();
229
230 DECLARE_EVENT_TABLE()
231 };
232
233 /*
234 * csTextBoxDialog
235 */
236
237 class csTextBoxDialog: public wxPanel
238 {
239 DECLARE_CLASS(csTextBoxDialog)
240 public:
241 csTextBoxDialog();
242
243 DECLARE_EVENT_TABLE()
244 };
245
246
247 #endif
248 // _STUDIO_DIALOGS_H_