1 /////////////////////////////////////////////////////////////////////////////
3 // Purpose: Miscellaneous dialogs
4 // Author: Julian Smart
8 // Copyright: (c) Julian Smart
10 /////////////////////////////////////////////////////////////////////////////
12 #ifndef _STUDIO_DIALOGS_H_
13 #define _STUDIO_DIALOGS_H_
15 #if defined(__GNUG__) && !defined(__APPLE__)
20 #include <wx/notebook.h>
23 * Label editing dialog (about to become obsolete)
26 class csLabelEditingDialog
: public wxDialog
28 DECLARE_CLASS(csLabelEditingDialog
)
30 csLabelEditingDialog(wxWindow
* parent
);
32 void SetShapeLabel(const wxString
& label
);
33 inline wxString
GetShapeLabel() const { return m_label
; }
35 void OnOK(wxCommandEvent
& event
);
44 * Settings dialog (tabbed)
47 class csSettingsDialog
: public wxDialog
49 DECLARE_CLASS(csSettingsDialog
)
51 csSettingsDialog(wxWindow
* parent
);
53 void OnOK(wxCommandEvent
& event
);
55 virtual bool TransferDataToWindow();
56 virtual bool TransferDataFromWindow();
60 wxPanel
* m_generalSettings
;
61 wxPanel
* m_diagramSettings
;
62 wxNotebook
* m_notebook
;
67 #define ID_PROPERTY_NOTEBOOK 1000
68 #define ID_GENERAL_SETTINGS 1002
69 #define ID_DIAGRAM_SETTINGS 1003
72 * csGeneralShapePropertiesDialog
73 * Name, description etc.
76 class csGeneralShapePropertiesDialog
: public wxPanel
78 DECLARE_CLASS(csGeneralShapePropertiesDialog
)
80 csGeneralShapePropertiesDialog();
82 void SetShapeLabel(const wxString
& label
);
83 inline wxString
GetShapeLabel() const { return m_label
; }
92 * Shape properties dialog (tabbed)
95 class csShapePropertiesDialog
: public wxDialog
97 DECLARE_CLASS(csShapePropertiesDialog
)
99 csShapePropertiesDialog(wxWindow
* parent
, const wxString
& title
, wxPanel
* attributeDialog
, const wxString
& attributeDialogName
);
101 void OnOK(wxCommandEvent
& event
);
103 // Set some suitable defaults in the attribute dialogs (in the first instance,
104 // just set all wxChoices to the first element)
108 csGeneralShapePropertiesDialog
* GetGeneralPropertiesDialog() const { return m_generalPropertiesDialog
; }
113 // Attributes, specific to each shape
114 wxPanel
* m_attributeDialog
;
115 wxPanel
* m_alternativeAttributeDialog
;
117 // General properties, same for each shape, e.g. name/description
118 csGeneralShapePropertiesDialog
* m_generalPropertiesDialog
;
120 wxNotebook
* m_notebook
;
122 DECLARE_EVENT_TABLE()
125 #define ID_SHAPE_PROPERTY_NOTEBOOK 1000
127 //// Specific attribute-editing panel classes below here
130 * csThinRectangleDialog
133 class csThinRectangleDialog
: public wxPanel
135 DECLARE_CLASS(csThinRectangleDialog
)
137 csThinRectangleDialog();
139 DECLARE_EVENT_TABLE()
143 * csWideRectangleDialog
146 class csWideRectangleDialog
: public wxPanel
148 DECLARE_CLASS(csWideRectangleDialog
)
150 csWideRectangleDialog();
152 DECLARE_EVENT_TABLE()
159 class csTriangleDialog
: public wxPanel
161 DECLARE_CLASS(csTriangleDialog
)
165 DECLARE_EVENT_TABLE()
172 class csSemiCircleDialog
: public wxPanel
174 DECLARE_CLASS(csSemiCircleDialog
)
176 csSemiCircleDialog();
178 DECLARE_EVENT_TABLE()
185 class csCircleDialog
: public wxPanel
187 DECLARE_CLASS(csCircleDialog
)
191 DECLARE_EVENT_TABLE()
195 * csCircleShadowDialog
198 class csCircleShadowDialog
: public wxPanel
200 DECLARE_CLASS(csCircleShadowDialog
)
202 csCircleShadowDialog();
204 DECLARE_EVENT_TABLE()
211 class csOctagonDialog
: public wxPanel
213 DECLARE_CLASS(csOctagonDialog
)
217 DECLARE_EVENT_TABLE()
224 class csGroupDialog
: public wxPanel
226 DECLARE_CLASS(csGroupDialog
)
230 DECLARE_EVENT_TABLE()
237 class csTextBoxDialog
: public wxPanel
239 DECLARE_CLASS(csTextBoxDialog
)
243 DECLARE_EVENT_TABLE()
248 // _STUDIO_DIALOGS_H_