--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: dialogs.h
+// Purpose: Miscellaneous dialogs
+// Author: Julian Smart
+// Modified by:
+// Created: 12/07/98
+// RCS-ID: $Id$
+// Copyright: (c) Julian Smart
+// Licence:
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _STUDIO_DIALOGS_H_
+#define _STUDIO_DIALOGS_H_
+
+#ifdef __GNUG__
+// #pragma interface
+#endif
+
+#include <wx/wx.h>
+#include <wx/notebook.h>
+
+/*
+ * Label editing dialog (about to become obsolete)
+ */
+
+class csLabelEditingDialog: public wxDialog
+{
+DECLARE_CLASS(csLabelEditingDialog)
+public:
+ csLabelEditingDialog(wxWindow* parent);
+
+ void SetShapeLabel(const wxString& label);
+ inline wxString GetShapeLabel() const { return m_label; }
+
+ void OnOK(wxCommandEvent& event);
+
+protected:
+ wxString m_label;
+
+DECLARE_EVENT_TABLE()
+};
+
+/*
+ * Settings dialog (tabbed)
+ */
+
+class csSettingsDialog: public wxDialog
+{
+DECLARE_CLASS(csSettingsDialog)
+public:
+ csSettingsDialog(wxWindow* parent);
+
+ void OnOK(wxCommandEvent& event);
+
+ virtual bool TransferDataToWindow();
+ virtual bool TransferDataFromWindow();
+
+protected:
+
+ wxPanel* m_generalSettings;
+ wxPanel* m_diagramSettings;
+ wxNotebook* m_notebook;
+
+DECLARE_EVENT_TABLE()
+};
+
+#define ID_PROPERTY_NOTEBOOK 1000
+#define ID_GENERAL_SETTINGS 1002
+#define ID_DIAGRAM_SETTINGS 1003
+
+/*
+ * csGeneralShapePropertiesDialog
+ * Name, description etc.
+ */
+
+class csGeneralShapePropertiesDialog: public wxPanel
+{
+DECLARE_CLASS(csGeneralShapePropertiesDialog)
+public:
+ csGeneralShapePropertiesDialog();
+
+ void SetShapeLabel(const wxString& label);
+ inline wxString GetShapeLabel() const { return m_label; }
+
+protected:
+ wxString m_label;
+
+DECLARE_EVENT_TABLE()
+};
+
+/*
+ * Shape properties dialog (tabbed)
+ */
+
+class csShapePropertiesDialog: public wxDialog
+{
+DECLARE_CLASS(csShapePropertiesDialog)
+public:
+ csShapePropertiesDialog(wxWindow* parent, const wxString& title, wxPanel* attributeDialog, const wxString& attributeDialogName);
+
+ void OnOK(wxCommandEvent& event);
+
+ // Set some suitable defaults in the attribute dialogs (in the first instance,
+ // just set all wxChoices to the first element)
+ void SetDefaults();
+
+// Accessors
+ csGeneralShapePropertiesDialog* GetGeneralPropertiesDialog() const { return m_generalPropertiesDialog; }
+
+
+protected:
+
+ // Attributes, specific to each shape
+ wxPanel* m_attributeDialog;
+ wxPanel* m_alternativeAttributeDialog;
+
+ // General properties, same for each shape, e.g. name/description
+ csGeneralShapePropertiesDialog* m_generalPropertiesDialog;
+
+ wxNotebook* m_notebook;
+
+DECLARE_EVENT_TABLE()
+};
+
+#define ID_SHAPE_PROPERTY_NOTEBOOK 1000
+
+//// Specific attribute-editing panel classes below here
+
+/*
+ * csThinRectangleDialog
+ */
+
+class csThinRectangleDialog: public wxPanel
+{
+DECLARE_CLASS(csThinRectangleDialog)
+public:
+ csThinRectangleDialog();
+
+DECLARE_EVENT_TABLE()
+};
+
+/*
+ * csWideRectangleDialog
+ */
+
+class csWideRectangleDialog: public wxPanel
+{
+DECLARE_CLASS(csWideRectangleDialog)
+public:
+ csWideRectangleDialog();
+
+DECLARE_EVENT_TABLE()
+};
+
+/*
+ * csTriangleDialog
+ */
+
+class csTriangleDialog: public wxPanel
+{
+DECLARE_CLASS(csTriangleDialog)
+public:
+ csTriangleDialog();
+
+DECLARE_EVENT_TABLE()
+};
+
+/*
+ * csSemiCircleDialog
+ */
+
+class csSemiCircleDialog: public wxPanel
+{
+DECLARE_CLASS(csSemiCircleDialog)
+public:
+ csSemiCircleDialog();
+
+DECLARE_EVENT_TABLE()
+};
+
+/*
+ * csCircleDialog
+ */
+
+class csCircleDialog: public wxPanel
+{
+DECLARE_CLASS(csCircleDialog)
+public:
+ csCircleDialog();
+
+DECLARE_EVENT_TABLE()
+};
+
+/*
+ * csCircleShadowDialog
+ */
+
+class csCircleShadowDialog: public wxPanel
+{
+DECLARE_CLASS(csCircleShadowDialog)
+public:
+ csCircleShadowDialog();
+
+DECLARE_EVENT_TABLE()
+};
+
+/*
+ * csOctagonDialog
+ */
+
+class csOctagonDialog: public wxPanel
+{
+DECLARE_CLASS(csOctagonDialog)
+public:
+ csOctagonDialog();
+
+DECLARE_EVENT_TABLE()
+};
+
+/*
+ * csGroupDialog
+ */
+
+class csGroupDialog: public wxPanel
+{
+DECLARE_CLASS(csGroupDialog)
+public:
+ csGroupDialog();
+
+DECLARE_EVENT_TABLE()
+};
+
+/*
+ * csTextBoxDialog
+ */
+
+class csTextBoxDialog: public wxPanel
+{
+DECLARE_CLASS(csTextBoxDialog)
+public:
+ csTextBoxDialog();
+
+DECLARE_EVENT_TABLE()
+};
+
+
+#endif
+ // _STUDIO_DIALOGS_H_