00001 00024 #ifndef INC_RVC_UIDLGDBFIELDVALUE_H 00025 #define INC_RVC_UIDLGDBFIELDVALUE_H 00026 00027 #ifndef INC_MGUI_DLGSHELL_H 00028 #include <mgui/dlgshell.h> 00029 #endif 00030 00031 #ifndef INC_RVC_DBTABLE_H 00032 #include <rvc/dbtable.h> 00033 #endif 00034 00035 namespace RVC { 00036 namespace UI { 00037 //===================================================================================================================== 00038 00040 class DLG_DB_FIELD_VALUE : public MGUI::DLGSHELL { 00041 public: 00042 00044 class SETTINGS { 00045 public: 00047 bool IsChanged ( 00048 ) const { return (m_IsChanged); } 00052 int Load ( 00053 const RVC::DBTABLE& TableFor, 00054 INT32 FieldNumFor 00055 ); 00057 void ResetChanged ( 00058 ) { m_IsChanged = false; } 00061 ERRVALUE Save ( 00062 const RVC::DBTABLE& TableFor, 00063 INT32 FieldNumFor 00064 ); 00065 protected: 00067 SETTINGS ( 00068 ): m_IsChanged(false) { } 00069 virtual ~SETTINGS () = 0; 00070 void SetChanged ( 00071 ) { m_IsChanged = true; } 00072 private: 00073 #ifndef GENERATING_DOXYGEN_OUTPUT 00074 bool m_IsChanged; 00075 #endif 00077 virtual const char* v_GetObjNameBase () const = 0; 00078 virtual const SERIALIZERITEM* v_SerialGetItemDef () const = 0; 00079 }; 00080 00082 DLG_DB_FIELD_VALUE ( 00083 const MISTRING& title, 00084 SETTINGS& settings, 00085 HELPID helpid = HELPID__None, 00086 DLGSHELL::STYLE dlgstyle = STYLE_Default 00087 ); 00088 00090 virtual ~DLG_DB_FIELD_VALUE (); 00091 00093 bool GetAllowEdit ( 00094 ) const { return (m_AllowEdit); } 00095 00097 INT32 GetFieldNumFor ( 00098 ) const { return (m_FieldNumFor); } 00099 00101 const RVC::DBTABLE& GetTableFor ( 00102 ) const { return (m_TableFor); } 00103 00105 ERRVALUE GetValue ( 00106 RVC::DBTABLE::RECORD& record 00107 ) { return (v_GetValue(record)); } 00108 00110 void SetDelegateOnUserClose ( 00111 DELEGATE_VOID_NOPARMS delegate 00112 ) { m_DelegateOnUserClose = delegate; } 00113 00116 void SetDelegateOnValueChanged ( 00117 DELEGATE_VOID_INT32 delegate 00118 ) { m_DelegateOnValueChanged = delegate; } 00119 00122 ERRVALUE Setup ( 00123 const RVC::DBTABLE& ObjTable, 00124 INT32 FieldNum, 00125 bool AllowEdit 00126 ); 00127 00129 ERRVALUE SetValue ( 00130 const RVC::DBTABLE::RECORD& record 00131 ) { return (v_SetValue(record)); } 00132 00133 protected: 00134 00136 void NotifyValueChanged (); 00137 00138 private: 00139 #ifndef GENERATING_DOXYGEN_OUTPUT 00140 DELEGATE_VOID_NOPARMS m_DelegateOnUserClose; 00141 DELEGATE_VOID_INT32 m_DelegateOnValueChanged; 00142 00143 RVC::DBTABLE m_TableFor; 00144 INT32 m_FieldNumFor; 00145 bool m_AllowEdit; 00146 SETTINGS *m_pSettings; 00147 00148 void SaveSettings (); 00149 00150 // SHELL/DLGSHELL overrides. 00151 virtual void v_OnClose (); 00152 virtual void v_OnCloseRequest (); 00153 00154 #endif // doxygen 00155 00156 // Overridables. 00157 00159 virtual ERRVALUE v_GetValue ( 00160 RVC::DBTABLE::RECORD& record 00161 ) = 0; 00162 00164 virtual ERRVALUE v_Setup ( 00165 const RVC::DBTABLE& ObjTable 00166 ) = 0; 00167 00169 virtual ERRVALUE v_SetValue ( 00170 const RVC::DBTABLE::RECORD& record 00171 ) = 0; 00172 00174 virtual void v_UpdateSettings ( 00175 ) = 0; 00176 00177 }; 00178 00179 //===================================================================================================================== 00180 } // End namespace UI 00181 } // End namespace RVC 00182 00183 #endif // INC_RVC_UIDLGDBFIELDVALUE_H 00184
1.6.1