00001
00027 #ifndef INC_MGUI_FORMSNAPPARMS_H
00028 #define INC_MGUI_FORMSNAPPARMS_H
00029
00030 #ifndef INC_MGUI_CTRL_H
00031 #include <mgui/ctrl.h>
00032 #endif
00033
00034 #ifndef INC_MGUI_EDIT_H
00035 #include <mgui/edit.h>
00036 #endif
00037
00038 #ifndef INC_MGUI_COMBOBOX_H
00039 #include <mgui/combobox.h>
00040 #endif
00041
00042 #ifndef INC_RVC_VECTTOOL_H
00043 #include <rvc/vecttool.h>
00044 #endif
00045
00046
00047 class RVC::VECTORTOOLKIT::SNAPPARMS::PANEL : public MGUI::FORM_COMPOSITE {
00048 public:
00049 enum PROMPT {
00050 PROMPT_SnapElement = 0x0001,
00051 PROMPT_SnapType = 0x0002,
00052 PROMPT_SnapEnd = 0x0004,
00053 PROMPT_SnapDistance = 0x0008,
00054 PROMPT_SnapBackAngle = 0x0010,
00055 PROMPT_RemoveOvershoots = 0x0020,
00056 PROMPT_CrossLines = 0x0040,
00057 PROMPT_VectorSnapDist = 0x0080,
00058 PROMPT_PixelSnapDist = 0x0100
00059 };
00060
00062 PANEL (
00063 );
00064
00066 virtual ~PANEL (
00067 );
00068
00070 ERRVALUE Create (
00071 MGUI::LAYOUT_PANE_BASE& ParentPane,
00072 PROMPT PromptSet,
00073 MGUI::LAYOUT_SIZEALIGN sizealign = MGUI::LAYOUT_SIZEALIGN_FixedWidth
00074 );
00075
00076 int GetAngleUnits (
00077 ) const;
00078
00079 int GetDistanceUnits (
00080 ) const;
00081
00082 const RVC::VECTORTOOLKIT::SNAPPARMS& GetSnapParms (
00083 ) const;
00084
00085 void SetAngleUnits (
00086 int AngleUnit
00087 );
00088
00089 void SetDelegateGetPixelScale (
00090 DELEGATE_DOUBLE_NOPARMS delegate
00091 ) { m_DelegateGetPixelScale = delegate; }
00092
00093 void SetDelegateOnChanged (
00094 DELEGATE_VOID_NOPARMS delegate
00095 ) { m_DelegateOnChanged = delegate; }
00096
00097 void SetDistanceUnits (
00098 int DistUnit
00099 );
00100
00101 void SetScaleToMeters (
00102 double ScaleToMeters
00103 );
00104
00105 void SetSnapParms (
00106 const RVC::VECTORTOOLKIT::SNAPPARMS& SnapParms
00107 );
00108
00109 protected:
00110
00114 virtual double v_GetPixelScale ();
00115
00119 virtual void v_OnChanged ();
00120
00121 private:
00122 #ifndef GENERATING_DOXYGEN_OUTPUT
00123
00124 enum SPECIALUNITS {
00125 SPECIALUNIT_Pixels = 254,
00126 SPECIALUNIT_ObjectUnits
00127 };
00128
00129 RVC::VECTORTOOLKIT::SNAPPARMS m_SnapParms;
00130 double m_ScaleToMeters;
00131 int m_AngleViewUnit;
00132 int m_DistViewUnit;
00133
00134 DELEGATE_DOUBLE_NOPARMS m_DelegateGetPixelScale;
00135 DELEGATE_VOID_NOPARMS m_DelegateOnChanged;
00136
00137 MGUI::FORM_COMBOBOX m_SnapElement;
00138 MGUI::FORM_COMBOBOX m_SnapEnd;
00139 MGUI::FORM_COMBOBOX m_SnapType;
00140 MGUI::CTRL_TOGGLEBUTTON m_RemoveOvershoots;
00141 MGUI::CTRL_TOGGLEBUTTON m_CrossLines;
00142 MGUI::FORM_EDIT_NUMBER m_SnapDist;
00143 MGUI::CTRL_COMBOBOX m_SnapDistUnits;
00144 MGUI::FORM_EDIT_NUMBER m_SnapBackAngle;
00145 MGUI::CTRL_COMBOBOX m_SnapBackUnits;
00146
00147 void OnCrossLines ();
00148 void OnRemoveOvershoots ();
00149 void OnSnapBackAngle ();
00150 void OnSnapBackUnits ();
00151 void OnSnapDist ();
00152 void OnSnapDistUnits ();
00153 void OnSnapElement ();
00154 void OnSnapEnd ();
00155 void OnSnapType ();
00156
00157 void SetSnapCtrls ();
00158 void SetSnapState ();
00159 #endif // GENERATING_DOXYGEN_OUTPUT
00160
00161 };
00162
00163 #ifndef GENERATING_DOXYGEN_OUTPUT
00164 DEFINE_ENUM_OP_BITWISE(RVC::VECTORTOOLKIT::SNAPPARMS::PANEL::PROMPT)
00165 #endif
00166
00167 #endif // INC_MGUI_FORMSNAPPARMS_H