home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / wxos2240.zip / wxWindows-2.4.0 / contrib / samples / ogl / studio / dialogs.h < prev    next >
C/C++ Source or Header  |  2002-09-07  |  5KB  |  249 lines

  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: dialogs.h,v 1.2 2002/09/07 12:12:22 GD Exp $
  8. // Copyright:   (c) Julian Smart
  9. // Licence:
  10. /////////////////////////////////////////////////////////////////////////////
  11.  
  12. #ifndef _STUDIO_DIALOGS_H_
  13. #define _STUDIO_DIALOGS_H_
  14.  
  15. #if defined(__GNUG__) && !defined(__APPLE__)
  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_
  249.