00001
00037 #ifndef INC_MGUI_DLGQUESTION_H
00038 #define INC_MGUI_DLGQUESTION_H
00039
00040 #ifndef INC_MI32_MDLG_H
00041 #include <mi32/mdlg.h>
00042 #endif
00043
00044 #ifndef INC_MGUI_DLGSHELL_H
00045 #include <mgui/dlgshell.h>
00046 #endif
00047
00048 #ifndef INC_MGUI_LISTITEM_H
00049 #include <mgui/listitem.h>
00050 #endif
00051
00052
00053 namespace MGUI {
00054
00058 class DLG_QUESTION : public MGUI::DLGSHELL {
00059 public:
00060
00061 enum TOGGLETYPE {
00062 TOGGLETYPE_NeverAsk,
00063 TOGGLETYPE_AlwaysAsk
00064 };
00065
00067 DLG_QUESTION (
00068 const MISTRING& dlgtitle,
00069 const MISTRING& text,
00070 DLGQ_STYLE style,
00071 INT32 dftresponse,
00072 HELPID helpid = HELPID__None
00073 );
00074
00076 ~DLG_QUESTION (
00077 );
00078
00081 void AddButton (
00082 const MISTRING& text,
00083 INT32 response
00084 );
00085
00088 bool CheckNoShow (
00089 ) const;
00090
00092 INT32 GetResponse (
00093 ) const { return (m_response); }
00094
00097 bool SetupToggle (
00098 const char *IniGroup,
00099 const char *IniName,
00100 const MISTRING& ToggleText,
00101 TOGGLETYPE ToggleType
00102 );
00103
00104 private:
00105
00106 #ifndef GENERATING_DOXYGEN_OUTPUT
00107 class BUTTON : public MGUI::CTRL_PUSHBUTTON {
00108 public:
00109 BUTTON (
00110 DLG_QUESTION *pDlg,
00111 INT32 response
00112 );
00113 BUTTON (
00114 const BUTTON& rhs
00115 );
00116 void Create (
00117 MGUI::LAYOUT_PANE_BASE& ParentPane,
00118 const MISTRING& label
00119 ) { CTRL_PUSHBUTTON::Create(ParentPane,label,MGUI::CTRL_PUSHBUTTON::STYLE_WideMargins); }
00120 private:
00121 DLG_QUESTION *m_pDlg;
00122 INT32 m_response;
00123 virtual void OnPressed ();
00124 };
00125
00126 INT32 m_response;
00127 MISTRING m_text;
00128 DLGQ_STYLE m_style;
00129 MILIST<LISTITEM> m_ExtraButtonItems;
00130 char *m_ToggleIniGroup;
00131 char *m_ToggleIniName;
00132 MISTRING m_ToggleText;
00133 TOGGLETYPE m_ToggleType;
00134 CTRL_LABEL m_TextLabel;
00135 CTRL_TOGGLEBUTTON m_Toggle;
00136 MILIST<BUTTON> m_Buttons;
00137
00138 BUTTON& CreateButtonLow (
00139 TEXTID textid,
00140 DLGRESPONSE response
00141 );
00142
00143 void OnToggle ();
00144
00145 void SetResponse (
00146 INT32 response
00147 ) { m_response = response; }
00148
00150 virtual ERRVALUE v_CreateContent ();
00151 virtual void v_OnCancel ();
00152 virtual void v_OnOK ();
00153
00154 friend class DLG_QUESTION::BUTTON;
00155 #endif // GENERATING_DOXYGEN_OUTPUT
00156 };
00157
00158
00159 }
00160
00161
00162 #endif // INC_MGUI_DLGQUESTION_H