00001
00043 #ifndef INC_RVC_UIEDITOBJECTNAME_H
00044 #define INC_RVC_UIEDITOBJECTNAME_H
00045
00046 #ifndef INC_MGUI_EDIT_H
00047 #include <mgui/edit.h>
00048 #endif
00049
00050 #ifndef INC_RVC_OBJECTNAME_H
00051 #include <rvc/objectname.h>
00052 #endif
00053
00054 namespace RVC {
00055 namespace UI {
00056
00057
00059 class CTRL_EDIT_OBJECTNAME : public MGUI::CTRL_EDIT_BASE {
00060 public:
00061
00063 CTRL_EDIT_OBJECTNAME (
00064 );
00065
00067 virtual ~CTRL_EDIT_OBJECTNAME (
00068 );
00069
00071 void ClearValue (
00072 bool notify = true
00073 );
00074
00076 void Create (
00077 MGUI::LAYOUT_PANE_BASE& ParentPane,
00078 MGUI::LAYOUT_SIZEALIGN sizealign = MGUI::LAYOUT_SIZEALIGN_FixedSize
00079 );
00080
00082 const RVC::OBJECTNAME& GetValue (
00083 ) const { return (m_value); }
00084
00087 void IniRead (
00088 INIHANDLE IniHandle,
00089 const char *IniGroup,
00090 const char *IniField,
00091 bool notify = true
00092 );
00093
00095 void IniWrite (
00096 INIHANDLE IniHandle,
00097 const char *IniGroup,
00098 const char *IniField
00099 ) const { ::IniWrite(IniHandle,IniGroup,IniField,m_value); }
00100
00102 void SetDelegateOnValidate (
00103 FastDelegate<bool(MISTRING&)> delegate
00104 ) { m_DelegateOnValidate = delegate; }
00105
00109 void SetValue (
00110 const RVC::OBJECTNAME& name,
00111 bool notify = true
00112 );
00113
00114 private:
00115 #ifndef GENERATING_DOXYGEN_OUTPUT
00116
00117 FastDelegate<bool(MISTRING&)> m_DelegateOnValidate;
00118 RVC::OBJECTNAME m_value;
00119
00120 bool OnValidate (MISTRING& string) const;
00121
00122 virtual void v_OnUserEdit ();
00123 virtual void v_UpdateValue (MISTRING& string);
00124
00125 CTRL_EDIT_OBJECTNAME (const CTRL_EDIT_OBJECTNAME&);
00126 CTRL_EDIT_OBJECTNAME& operator= (const CTRL_EDIT_OBJECTNAME&);
00127 #endif // GENERATING_DOXYGEN_OUTPUT
00128 };
00129
00130
00131
00133 class FORM_EDIT_OBJECTNAME : public MGUI::FORM_COMPOSITE {
00134 public:
00136 FORM_EDIT_OBJECTNAME (
00137 );
00138
00140 virtual ~FORM_EDIT_OBJECTNAME (
00141 );
00142
00144 void Create (
00145 MGUI::LAYOUT_PANE_BASE& ParentPane,
00146 const MISTRING& label,
00147 MGUI::LAYOUT_SIZEALIGN sizealign = MGUI::LAYOUT_SIZEALIGN_FixedSize,
00148 MGUI::CTRL_LABEL::STYLE labelstyle = MGUI::CTRL_LABEL::STYLE_LeftNoWrap
00149 );
00150
00153 CTRL_EDIT_OBJECTNAME& GetEditCtrl (
00154 ) { return (m_editctrl); }
00155
00158 MGUI::CTRL_LABEL& GetLabel (
00159 ) { return (m_label); }
00160
00163 const RVC::OBJECTNAME& GetValue (
00164 ) const { return (m_editctrl.GetValue()); }
00165
00168 void SetValue (
00169 const RVC::OBJECTNAME& name,
00170 bool notify = true
00171 ) { m_editctrl.SetValue(name, notify); }
00172
00173 private:
00174 #ifndef GENERATING_DOXYGEN_OUTPUT
00175 MGUI::CTRL_LABEL m_label;
00176 CTRL_EDIT_OBJECTNAME m_editctrl;
00177 #endif // GENERATING_DOXYGEN_OUTPUT
00178 };
00179
00180
00181
00182 }
00183 }
00184
00185 #endif // INC_RVC_UIEDITOBJECTNAME_H
00186