00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #ifndef INC_MGUI_FRAMESTYLEDLG_H
00014 #define INC_MGUI_FRAMESTYLEDLG_H
00015
00016 #ifndef INC_MGUI_DLGSHELL_H
00017 #include <mgui/dlgshell.h>
00018 #endif
00019
00020 #ifndef INC_MGUI_COMBOBOX_H
00021 #include <mgui/combobox.h>
00022 #endif
00023
00024 #ifndef INC_RVC_FORMEDST_H
00025 #include <rvc/formedst.h>
00026 #endif
00027
00028 #ifndef INC_MI32_LABLSTYL_H
00029 #include <mi32/lablstyl.h>
00030 #endif
00031
00032
00033 namespace MGUI {
00034
00035 class FRAMESTYLEDLG : public MGUI::DLGSHELL {
00036 public:
00037 FRAMESTYLEDLG(
00038 LABELFRAMEPARMS& parms,
00039 const RVC::OBJITEM& StyleObjItem,
00040 double CurrentScale
00041 );
00042
00043 ~FRAMESTYLEDLG();
00044
00045 const RVC::OBJITEM& GetStyleObjItem (
00046 ) const {
00047 return m_StyleObjItem;
00048 }
00049
00050 LABELFRAMEPARMS& GetFrameParms (
00051 ) {
00052 return (m_parms);
00053 }
00054
00055
00056 void Update();
00057
00058 private:
00059
00060 class PAGE_FRAME : public MGUI::LAYOUT_PAGE {
00061 public:
00062 PAGE_FRAME (
00063 FRAMESTYLEDLG* dlg,
00064 double CurrentMapScale
00065 ) :
00066 m_dlg(dlg),
00067 m_CurrentMapScale(CurrentMapScale),
00068 m_CtrlTMargin(this),
00069 m_CtrlBMargin(this),
00070 m_CtrlLMargin(this),
00071 m_CtrlRMargin(this)
00072 {}
00073
00074 ~PAGE_FRAME() {}
00075 void Update();
00076
00077 virtual void OnInitPage();
00078 virtual void OnSetActive() { UpdateUI(); }
00079 private:
00080 MGUI::CTRL_LABEL m_CtrlLabelPct1;
00081 MGUI::CTRL_LABEL m_CtrlLabelPct2;
00082 MGUI::CTRL_LABEL m_CtrlLabelPct3;
00083 MGUI::CTRL_LABEL m_CtrlLabelPct4;
00084 MGUI::FORM_COMBOBOX_T<PAGE_FRAME> m_CtrlFrameShape;
00085 MGUI::CTRL_TOGGLEBUTTON_T<PAGE_FRAME> m_CtrlMarginToggle;
00086 MGUI::FORM_EDIT_NUMBER_T<PAGE_FRAME> m_CtrlTMargin;
00087 MGUI::FORM_EDIT_NUMBER_T<PAGE_FRAME> m_CtrlBMargin;
00088 MGUI::FORM_EDIT_NUMBER_T<PAGE_FRAME> m_CtrlLMargin;
00089 MGUI::FORM_EDIT_NUMBER_T<PAGE_FRAME> m_CtrlRMargin;
00090 MGUI::FORM_EDITSTYLE m_StyleForm;
00091 FRAMESTYLEDLG* m_dlg;
00092 double m_CurrentMapScale;
00093
00094 void SetAllMargins(double val) {
00095 m_CtrlTMargin.SetValue(val);
00096 m_CtrlBMargin.SetValue(val);
00097 m_CtrlLMargin.SetValue(val);
00098 m_CtrlRMargin.SetValue(val);
00099 }
00100
00101 void OnChangeTMargin(
00102 ) {
00103 if (m_CtrlMarginToggle.GetValue()) SetAllMargins(m_CtrlTMargin.GetValue());
00104 }
00105
00106 void OnChangeBMargin (
00107 ) {
00108 if (m_CtrlMarginToggle.GetValue()) SetAllMargins(m_CtrlBMargin.GetValue());
00109 }
00110
00111 void OnChangeLMargin (
00112 ) {
00113 if (m_CtrlMarginToggle.GetValue()) SetAllMargins(m_CtrlLMargin.GetValue());
00114 }
00115
00116 void OnChangeRMargin (
00117 ) {
00118 if (m_CtrlMarginToggle.GetValue()) SetAllMargins(m_CtrlRMargin.GetValue());
00119 }
00120
00121 void OnToggleMarginLock (
00122 ) {
00123 if (m_CtrlMarginToggle.GetValue()) {
00124 double sum = 0.0;
00125 sum += m_CtrlTMargin.GetValue();
00126 sum += m_CtrlBMargin.GetValue();
00127 sum += m_CtrlLMargin.GetValue();
00128 sum += m_CtrlRMargin.GetValue();
00129 SetAllMargins(sum / 4.0);
00130 }
00131 }
00132
00133
00134 void OnShapeChange();
00135 void UpdateUI();
00136 };
00137
00138 class PAGE_LEADER : public MGUI::LAYOUT_PAGE {
00139 public:
00140 PAGE_LEADER (
00141 FRAMESTYLEDLG* dlg,
00142 double CurrentMapScale
00143 ) :
00144 m_dlg(dlg),
00145 m_CurrentMapScale(CurrentMapScale)
00146 {}
00147
00148 ~PAGE_LEADER() {}
00149 virtual void OnInitPage();
00150 virtual void OnSetActive() { UpdateUI(); }
00151 void Update();
00152 private:
00153 MGUI::CTRL_TOGGLEBUTTON_T<PAGE_LEADER> m_CtrlBalloonLeader;
00154 MGUI::FORM_EDITSTYLE m_StyleForm;
00155 FRAMESTYLEDLG* m_dlg;
00156 double m_CurrentMapScale;
00157
00158 void OnBalloonLeaders();
00159 void UpdateUI();
00160 };
00161
00162 class PAGE_SAMPLE : public MGUI::LAYOUT_PAGE {
00163 public:
00164 PAGE_SAMPLE (
00165 FRAMESTYLEDLG* dlg,
00166 double CurrentMapScale
00167 ) :
00168 m_dlg(dlg),
00169 m_CurrentMapScale(CurrentMapScale)
00170 {}
00171
00172 ~PAGE_SAMPLE() {}
00173
00174 virtual void OnInitPage();
00175 virtual void OnSetActive();
00176
00177 private:
00178 FRAMESTYLEDLG* m_dlg;
00179 double m_CurrentMapScale;
00180
00181 };
00182
00183 const RVC::OBJITEM& m_StyleObjItem;
00184 LABELFRAMEPARMS m_parms;
00185 LABELFRAMEPARMS& m_original;
00186 MGUI::LAYOUT_BOOK m_Book;
00187 PAGE_FRAME m_PageFrame;
00188 PAGE_LEADER m_PageLeader;
00189 PAGE_SAMPLE m_PageSample;
00190
00191 virtual ERRVALUE v_CreateContent();
00192 virtual void v_OnApply();
00193 };
00194
00195 }
00196
00197
00198 #endif // INC_MGUI_FRAMESTYLEDLG_H