00001
00057 #ifndef INC_MGUI_EDITSML_H
00058 #define INC_MGUI_EDITSML_H
00059
00060 #ifndef INC_MGUI_EDIT_H
00061 #include <mgui/edit.h>
00062 #endif
00063
00064 #ifndef INC_MGUI_DLGSHELL_H
00065 #include <mgui/dlgshell.h>
00066 #endif
00067
00068 #ifndef INC_MI32_SMLBASE_H
00069 #include <mi32/smlbase.h>
00070 #endif
00071
00072 #ifndef GENERATING_DOXYGEN_OUTPUT
00073
00074 namespace RVC {
00075 class OBJITEM;
00076 }
00077 namespace MGUI {
00078 class CTRL_EDIT_TEXT;
00079 }
00080 #endif
00081
00082
00083 namespace MGUI {
00084
00085
00087 class FORM_EDIT_SML : public MGUI::FORM_COMPOSITE {
00088 public:
00089
00090 enum FLAGS {
00091 FLAG_Default = 0,
00092 FLAG_AllowSaveEncrypted = 0x0001,
00093 FLAG_EditParameters = 0x0002,
00094 FLAG_AllowLoadEncrypted = 0x0004
00095 };
00096
00098 FORM_EDIT_SML ();
00099
00101 virtual ~FORM_EDIT_SML ();
00102
00104 void AttachStatusBar (
00105 CTRL_STATUSBAR& StatusBar
00106 );
00107
00110 bool CheckSyntax (
00111 bool bShowError = true
00112 );
00113
00115 void Run ();
00116
00118 void Create (
00119 MGUI::LAYOUT_PANE_BASE& ParentPane,
00120 SML::USAGE usage,
00121 int width = 30,
00122 int height = 10,
00123 FLAGS flags = FLAG_Default,
00124 MGUI::LAYOUT_SIZEALIGN sizealign= MGUI::LAYOUT_SIZEALIGN_Expand
00125 );
00126
00128 MGUI::CTRL_EDIT_TEXT& GetEditText (
00129 );
00130
00132 const MISTRING GetScript (
00133 );
00134
00135 const MISTRING& GetDisplayString (
00136 );
00137
00143 const RVC::OBJITEM& GetScriptObjItem (
00144 ) const;
00145
00147 MGUI::LAYOUT_PANE& GetToolBarPane (
00148 );
00149
00151 bool HasChanged (
00152 ) const;
00153
00155 bool IsEncrypted (
00156 ) const;
00157
00159 ERRVALUE LoadScript (
00160 const RVC::OBJITEM& ObjItem
00161 );
00162
00164 ERRVALUE LoadScript (
00165 const FILEPATH& filepath,
00166 CHAR_ENCODING Encoding = CHAR_ENCODING_UTF8
00167 );
00168
00170 ERRVALUE SaveScript (
00171 const RVC::OBJITEM& ObjItem
00172 );
00173
00175 ERRVALUE SaveScript (
00176 const FILEPATH& filepath,
00177 CHAR_ENCODING Encoding = CHAR_ENCODING_UTF8
00178 );
00179
00183 void SetContext (
00184 SML::CONTEXT* context,
00185 int segment = 0,
00186 UINT32 flags = 0
00187 );
00188
00190 void SetScript (
00191 const MISTRING& script
00192 );
00193
00195 void SetUsage (
00196 SML::USAGE usage
00197 );
00198
00201 void SetSyntaxHighlighting (
00202 bool bValue
00203 );
00204
00206 void SetDelegateOnChange (
00207 DELEGATE_VOID_NOPARMS OnChange
00208 ) { m_DelegateOnChange = OnChange; }
00209
00211 void SetDelegateOnFileChanged (
00212 DELEGATE_VOID_NOPARMS OnFileChange
00213 ) { m_DelegateOnFileChange = OnFileChange; }
00214
00216 void SetDelegateOnStatus (
00217 DELEGATE_VOID_MISTRING OnStatus
00218 ) { m_DelegateOnStatus = OnStatus; }
00219
00220 private:
00221 #ifndef GENERATING_DOXYGEN_OUTPUT
00222 class PRIV;
00223 PRIV *m_Priv;
00224 friend class PRIV;
00225
00226 DELEGATE_VOID_NOPARMS m_DelegateOnChange;
00227 DELEGATE_VOID_NOPARMS m_DelegateOnFileChange;
00228 DELEGATE_VOID_MISTRING m_DelegateOnStatus;
00229 #endif // GENERATING_DOXYGEN_OUTPUT
00230 };
00231
00232 #ifndef GENERATING_DOXYGEN_OUTPUT
00233 DEFINE_ENUM_OP_BITWISE(FORM_EDIT_SML::FLAGS)
00234 #endif
00235
00236
00238 class DLG_EDIT_SML : public MGUI::DLGSHELL {
00239 public:
00240
00243 DLG_EDIT_SML (
00244 const MISTRING& title,
00245 SML::CONTEXT* context,
00246 SML::USAGE usage,
00247 INT32 segment = 0,
00248 FORM_EDIT_SML::FLAGS flags = FORM_EDIT_SML::FLAG_Default
00249 );
00250
00253 DLG_EDIT_SML (
00254 const MISTRING& title,
00255 SML::CONTEXT* context,
00256 INT32 segment = 0,
00257 FORM_EDIT_SML::FLAGS flags = FORM_EDIT_SML::FLAG_Default
00258 );
00259
00260 virtual ~DLG_EDIT_SML ();
00261
00262 const MISTRING& GetScript (
00263 ) const;
00264
00265 const MISTRING& GetDisplayString (
00266 );
00267
00268 const RVC::OBJITEM& GetScriptObjItem (
00269 ) const;
00270
00271 bool IsEncrypted (
00272 ) const;
00273
00274 void SetScript (
00275 const MISTRING& script
00276 );
00277
00278 private:
00279 #ifndef GENERATING_DOXYGEN_OUTPUT
00280 class PRIV;
00281 PRIV *m_priv;
00282
00283 virtual ERRVALUE v_CreateContent ();
00284 virtual void v_OnOK ();
00285 #endif
00286 };
00287
00288
00289
00290 }
00291
00292
00293 #endif // INC_MGUI_EDITSML_H
00294