00001
00021 #ifndef INC_RVC_UIDLGDBRECORD_H
00022 #define INC_RVC_UIDLGDBRECORD_H
00023
00024 #ifndef INC_RVC_UIDLGDBBASE_H
00025 #include <rvc/uidlgdbbase.h>
00026 #endif
00027
00028 #ifndef INC_RVC_UIFORMDBRECORD_H
00029 #include <rvc/uiformdbrecord.h>
00030 #endif
00031
00032 #ifndef INC_MGUI_MENUEDIT_H
00033 #include <mgui/menuedit.h>
00034 #endif
00035
00036 #ifndef INC_MGUI_TOOLBAR_H
00037 #include <mgui/toolbar.h>
00038 #endif
00039
00040 #ifndef INC_MGUI_CANVAS_H
00041 #include <mgui/canvas.h>
00042 #endif
00043
00044 #ifndef INC_MGUI_SASH_H
00045 #include <mgui/sash.h>
00046 #endif
00047
00048 #ifndef INC_MGUI_STATUSBAR_H
00049 #include <mgui/statusbar.h>
00050 #endif
00051
00052 #ifndef GENERATING_DOXYGEN_OUTPUT
00053 class DBEDIT_TINSTANCE;
00054 class DBEDIT_FACTORY_DLG;
00055 namespace MGUI {
00056 class FORM_SPATMOD_IMAGE_VIEW;
00057 }
00058 #endif
00059
00060 namespace RVC {
00061 namespace UI {
00062
00063
00064 class DLG_DB_RECORD : public RVC::UI::DLG_DB_BASE {
00065 public:
00066
00068 enum DLGSTYLE {
00069 DLGSTYLE_Grid = RVC::UI::FORM_DB_RECORD::FORMSTYLE_Grid,
00070 DLGSTYLE_UserDefined = RVC::UI::FORM_DB_RECORD::FORMSTYLE_UserDefined
00071 };
00072
00074 static void SML_Install (
00075 SML::CONTEXT *context
00076 );
00077
00079 DLG_DB_RECORD (
00080 DBEDIT_TINSTANCE *idata,
00081 DLGSTYLE DlgStyle
00082 );
00083
00085 virtual ~DLG_DB_RECORD ();
00086
00088 void GetRecordRef (
00089 DBTABLE::RECORDREFTYPE& RefType,
00090 INT32& RefNum
00091 ) const { m_FormRecord.GetRecordRef(RefType,RefNum); }
00092
00094 INT32 GetRecordRefNum (
00095 ) const { return (m_FormRecord.GetRecordRefNum()); }
00096
00098 DBTABLE::RECORDREFTYPE GetRecordRefType (
00099 ) const { return (m_FormRecord.GetRecordRefType()); }
00100
00102 ERRVALUE GetValues (
00103 RVC::DBTABLE::RECORD& record
00104 ) { return (m_FormRecord.GetValues(record)); }
00105
00108 INT32 SaveRecord (
00109 bool AskUser = true
00110 );
00111
00113 ERRVALUE SetRecordRef (
00114 DBTABLE::RECORDREFTYPE RefType,
00115 INT32 RefNum
00116 ) { return (SetRecordRefLow(RefType,RefNum,true)); }
00117
00119 ERRVALUE SetValues (
00120 const RVC::DBTABLE::RECORD& record,
00121 bool IsChanged
00122 );
00123
00124 private:
00125 #ifndef GENERATING_DOXYGEN_OUTPUT
00126 typedef DLG_DB_RECORD THISCLASS;
00127 class SETTINGS;
00128
00129 DBEDIT_TINSTANCE *m_idata;
00130 const DLGSTYLE m_dlgstyle;
00131 SETTINGS *m_pSettings;
00132 RVC::UI::FORM_DB_RECORD m_FormRecord;
00133 MGUI::CTRL_GROUPBOX m_GbxStyleSampleTop;
00134 MGUI::CTRL_GROUPBOX m_GbxStyleSampleBottom;
00135 MGUI::CANVAS m_CanvasStyleSampleTop;
00136 MGUI::CANVAS m_CanvasStyleSampleBottom;
00137 MGUI::CTRL_SASH m_SashImageView;
00138 MGUI::FORM_SPATMOD_IMAGE_VIEW *m_pFormImageView;
00139 MGUI::MENU m_MenuStyleSample;
00140 MGUI::MENU m_MenuTable;
00141 MGUI::MENU_EDIT m_MenuEdit;
00142 MGUI::MENU m_MenuRecord;
00143 MGUI::CTRL_TOOLBAR m_ToolBar;
00144 MGUI::CTRL_STATUSBAR m_StatusBar;
00145 bool m_AskBeforeSave;
00146 bool m_IsRelatedOnly;
00147 bool m_CanToggleAttached;
00148 bool m_AllowAttachMulti;
00149 bool m_DidWarnToggleAttach;
00150 INT32 m_Index;
00151 INT32 m_FieldNumImage;
00152
00153 void ComputeIndex ();
00154 void LoadSettings ();
00155 void OnChangedFieldValue (INT32 FieldNum);
00156 void OnCmdEdit (MGUI::ID cmdid, bool ToggleOn);
00157 void OnCmdRecord (MGUI::ID cmdid, bool ToggleOn);
00158 void OnCmdRecordToggleAttached (MGUI::ID cmdid, bool ToggleOn);
00159 void OnCmdStyleSample (MGUI::ID cmdid, bool ToggleOn);
00160 void OnCmdTable (MGUI::ID cmdid, bool ToggleOn);
00161 void OnSizeCanvasStyleSample (int, int);
00162 ERRVALUE SetRecordRefLow (const DBTABLE::RECORDREFTYPE RefType, const INT32 RefNum, const bool CalcIndex);
00163 void UpdateImage ();
00164 void UpdateStatus ();
00165 void UpdateStyleSample ();
00166 void UpdateTitle ();
00167
00168
00169 virtual ERRVALUE v_CreateContent ();
00170 virtual void v_OnApply ();
00171 virtual void v_OnClose ();
00172 virtual void v_OnCloseRequest ();
00173 virtual void v_OnOpen ();
00174
00175
00176 virtual void v_OnChangeActiveList ();
00177 virtual void v_OnChangeACL ();
00178 virtual void v_OnChangeDescriptor ();
00179 virtual ERRVALUE v_OnChangeStyle ();
00180 virtual ERRVALUE v_Read ();
00181 virtual ERRVALUE v_SaveSettings ();
00182 virtual ERRVALUE v_Update (const DBEDIT::EVENT& event);
00183 virtual ERRVALUE v_Write ();
00184
00185
00186 DLG_DB_RECORD (const DLG_DB_RECORD&);
00187 DLG_DB_RECORD& operator= (const DLG_DB_RECORD&);
00188 #endif
00189 };
00190
00191
00192 }
00193 }
00194
00195
00196 #endif // INC_RVC_UIDLGDBRECORD_H