]> git.saurik.com Git - wxWidgets.git/blobdiff - utils/ogl/samples/studio/dialogs.h
Removed small OGL glitches; added new sample
[wxWidgets.git] / utils / ogl / samples / studio / dialogs.h
diff --git a/utils/ogl/samples/studio/dialogs.h b/utils/ogl/samples/studio/dialogs.h
new file mode 100644 (file)
index 0000000..4a97f8f
--- /dev/null
@@ -0,0 +1,248 @@
+/////////////////////////////////////////////////////////////////////////////
+// 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_