00001
00054 #ifndef INC_MGUI_FORM_H
00055 #define INC_MGUI_FORM_H
00056
00057 #ifndef INC_MGUI_LAYOUT_H
00058 #include <mgui/layout.h>
00059 #endif
00060
00061
00062 #ifndef GENERATING_DOXYGEN_OUTPUT
00063 class SML_GUI_INTERFACE_BASE;
00064 #endif
00065
00066
00067 namespace MGUI {
00068
00069
00071
00072 class FORM {
00073 public:
00074
00076 virtual ~FORM (
00077 ) = 0;
00078
00081 virtual bool IsCreated (
00082 ) const = 0;
00083
00085 virtual void SetEnabled (
00086 bool enabled = true
00087 ) = 0;
00088
00092 void SetFocus (
00093 ) const { v_SetFocus(); }
00094
00096 virtual void SetVisible (
00097 bool visible = true
00098 ) = 0;
00099
00100 #ifndef GENERATING_DOXYGEN_OUTPUT
00103 virtual SML_GUI_INTERFACE_BASE* GetSMLInterface (
00104 );
00105 #endif // GENERATING_DOXYGEN_OUTPUT
00106
00107 private:
00108
00111 virtual void v_SetFocus (
00112 ) const;
00113
00114 };
00115
00116
00118 class FORM_COMPOSITE : public MGUI::FORM {
00119 public:
00120
00122 FORM_COMPOSITE (
00123 );
00124
00126 virtual ~FORM_COMPOSITE (
00127 ) = 0;
00128
00130 MDLGPARENT GetDlgParent (
00131 ) const { return (m_pane.GetDlgParent()); }
00132
00135 virtual bool IsCreated (
00136 ) const;
00137
00141 bool IsVisible (
00142 ) const { return (m_pane.IsVisible()); }
00143
00145 virtual void SetEnabled (
00146 bool enabled = true
00147 );
00148
00150 virtual void SetVisible (
00151 bool visible = true
00152 );
00153
00154 protected:
00155
00158 void CreatePane (
00159 MGUI::LAYOUT_PANE_BASE& ParentPane,
00160 MGUI::LAYOUT_ORIENTATION orientation,
00161 MGUI::LAYOUT_SIZEALIGN sizealign,
00162 int ChildSpacing = 4,
00163 int ExtraBorder = 0
00164 ) { m_pane.Create(ParentPane,orientation,sizealign,ChildSpacing,ExtraBorder); }
00165
00167 MGUI::LAYOUT_PANE& GetPane (
00168 ) { return (m_pane); }
00169
00170 private:
00171 #ifndef GENERATING_DOXYGEN_OUTPUT
00172 LAYOUT_PANE m_pane;
00173
00174 FORM_COMPOSITE (const FORM_COMPOSITE&);
00175 FORM_COMPOSITE& operator= (const FORM_COMPOSITE&);
00176 #endif // GENERATING_DOXYGEN_OUTPUT
00177 };
00178
00179
00180 }
00181
00182 #endif // INC_MGUI_FORM_H