framestyledlg.h

Go to the documentation of this file.
00001 /**
00002  *  \file mgui/framestyledlg.h
00003  *  \brief Dialog to fill in LABELFRAMEPARMS 
00004  *
00005  *  \if NODOC
00006  *  $Log: framestyledlg.h_v $
00007  *  Revision 1.1  2004/06/14 15:51:24  dwilliss
00008  *  Initial revision
00009  *
00010  *  \endif
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          // Used by pages to make sure they have current style
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

Generated on Tue Dec 14 13:18:17 2004 for TNTsdk by  doxygen 1.3.8-20040913