00001
00051 #ifndef INC_GRE_UIFORMVIEWSETTINGS_H
00052 #define INC_GRE_UIFORMVIEWSETTINGS_H
00053
00054 #ifndef INC_GRE_UIFORMVIEW_H
00055 #include <gre/uiformview.h>
00056 #endif
00057
00058 #ifndef INC_MI32_SPATREF_H
00059 #include <mi32/spatref.h>
00060 #endif
00061
00062 #ifndef INC_MI32_SERIALIZABLE_H
00063 #include <mi32/serializable.h>
00064 #endif
00065
00066 namespace GRE {
00067 namespace UI {
00068
00069
00070
00072 class FORM_VIEW::SETTINGS : public SERIALIZABLE {
00073 public:
00074
00076 class STATUSPOS {
00077 public:
00078 static const SERIALIZERITEM* SerialGetItemDef ();
00079 STATUSPOS ();
00080 ~STATUSPOS ();
00081 const SPATREF::COORDREFSYS& GetCRS () const { return (m_CoordRefSys); }
00082 DMSTYPE GetLatLonFormat () const { return (m_LatLonFormat); }
00083 bool GetShow () const { return (m_Show); }
00084 void IniRead (INIHANDLE handle, const char *inigroup, const char *inikeybase);
00085 void IniWrite (INIHANDLE handle, const char *inigroup, const char *inikeybase) const;
00086 void SetCRS (const SPATREF::COORDREFSYS& CoordRefSys) { m_CoordRefSys = CoordRefSys; }
00087 void SetLatLonFormat (DMSTYPE LatLonFormat) { m_LatLonFormat = LatLonFormat; }
00088 void SetShow (bool Show) { m_Show = Show; }
00089 private:
00090 #ifndef GENERATING_DOXYGEN_OUTPUT
00091 SPATREF::COORDREFSYS m_CoordRefSys;
00092 DMSTYPE m_LatLonFormat;
00093 bool m_Show;
00094 #endif
00095 };
00096
00098 static const SERIALIZERITEM* SerialGetItemDef ();
00099
00101 SETTINGS ();
00102
00104 SETTINGS (
00105 const SETTINGS& rhs
00106 );
00107
00109 virtual ~SETTINGS ();
00110
00112 SETTINGS& operator= (
00113 const SETTINGS& rhs
00114 );
00115
00118 INT32 GetCanvasHeight (
00119 ) const { return (m_CanvasHeight); }
00120
00123 INT32 GetCanvasWidth (
00124 ) const { return (m_CanvasWidth); }
00125
00128 INT16 GetZoomHeight (
00129 ) const { return (m_ZoomHeight); }
00130
00133 INT16 GetPlacesHeight (
00134 ) const { return (m_PlacesHeight); }
00135
00138 INT16 GetLocatorHeight (
00139 ) const { return (m_LocatorHeight); }
00140
00143 INT16 GetMagnifierHeight (
00144 ) const { return (m_MagnifierHeight); }
00145
00147 INT16 GetMagnifierZoom (
00148 ) const { return (m_MagnifierZoom); }
00149
00151 bool GetShowLegend (
00152 ) const { return (m_ShowLegend); }
00153
00155 bool GetShowLocator (
00156 ) const { return (m_ShowLocator); }
00157
00159 bool GetShowMagnifier (
00160 ) const { return (m_ShowMagnifier); }
00161
00163 bool GetShowZoom (
00164 ) const { return (m_ShowZoom); }
00165
00167 bool GetShowPlaces (
00168 ) const { return (m_ShowPlaces); }
00169
00171 bool GetShowSidebar (
00172 ) const { return (m_ShowSidebar); }
00173
00176 INT16 GetSidebarWidth (
00177 ) const { return (m_SidebarWidth); }
00178
00180 const STATUSPOS& GetStatusPos (
00181 unsigned idx
00182 ) const { return (m_StatusPos[idx]); }
00183
00185 bool GetStatusPosShowAny (
00186 ) const { return (m_StatusPos[0].GetShow() || m_StatusPos[1].GetShow()); }
00187
00189 void IniRead (
00190 INIHANDLE handle,
00191 const char *inigroup,
00192 const char *ViewTypeName = 0
00193 );
00194
00196 void IniWrite (
00197 INIHANDLE handle = 0,
00198 const char *inigroup = 0
00199 ) const;
00200
00202 void IniWriteLayout (
00203 INIHANDLE handle = 0,
00204 const char *inigroup = 0
00205 ) const;
00206
00208 void SetCanvasDimensions (
00209 INT32 width,
00210 INT32 height
00211 ) { if (width > 10 && height > 10) { m_CanvasWidth = width; m_CanvasHeight = height; } }
00212
00214 void SetCanvasHeight (
00215 INT32 height
00216 ) { if (height > 10) m_CanvasHeight = height; }
00217
00219 void SetCanvasWidth (
00220 INT32 width
00221 ) { if (width > 10) m_CanvasWidth = width; }
00222
00224 void SetZoomHeight (
00225 INT16 height
00226 ) { if (height > 10) m_ZoomHeight = height; }
00227
00229 void SetPlacesHeight (
00230 INT16 height
00231 ) { if (height > 10) m_PlacesHeight = height; }
00232
00234 void SetLocatorHeight (
00235 INT16 height
00236 ) { if (height > 10) m_LocatorHeight = height; }
00237
00239 void SetMagnifierHeight (
00240 INT16 height
00241 ) { if (height > 10) m_MagnifierHeight = height; }
00242
00244 void SetMagnifierZoom (
00245 INT16 zoom
00246 ) { m_MagnifierZoom = zoom; }
00247
00249 void SetShowLegend (
00250 bool show
00251 ) { m_ShowLegend = show; }
00252
00254 void SetShowZoom (
00255 bool show
00256 ) { m_ShowZoom = show; }
00257
00259 void SetShowPlaces (
00260 bool show
00261 ) { m_ShowPlaces = show; }
00262
00264 void SetShowLocator (
00265 bool show
00266 ) { m_ShowLocator = show; }
00267
00269 void SetShowMagnifier (
00270 bool show
00271 ) { m_ShowMagnifier = show; }
00272
00274 void SetShowSidebar (
00275 bool show
00276 ) { m_ShowSidebar = show; }
00277
00279 void SetSidebarWidth (
00280 INT16 width
00281 ) { if (width > 10) m_SidebarWidth = width; }
00282
00284 void SetStatusPos (
00285 unsigned idx,
00286 const STATUSPOS& StatusPos
00287 ) { m_StatusPos[idx] = StatusPos; }
00288
00290 void SetStatusPosCRS (
00291 unsigned idx,
00292 const SPATREF::COORDREFSYS& CoordRefSys
00293 ) { m_StatusPos[idx].SetCRS(CoordRefSys); }
00294
00296 void SetStatusPosLatLonFormat (
00297 unsigned idx,
00298 DMSTYPE LatLonFormat
00299 ) { m_StatusPos[idx].SetLatLonFormat(LatLonFormat); }
00300
00302 void SetStatusPosShow (
00303 unsigned idx,
00304 bool Show
00305 ) { m_StatusPos[idx].SetShow(Show); }
00306
00309 void UpdateFromForm (
00310 UI::FORM_VIEW& form
00311 );
00312
00313 private:
00314 #ifndef GENERATING_DOXYGEN_OUTPUT
00315
00316 char *m_IniGroupRead;
00317 char *m_ViewTypeName;
00318 STATUSPOS m_StatusPos[2];
00319 INT32 m_CanvasWidth;
00320 INT32 m_CanvasHeight;
00321 INT16 m_SidebarWidth;
00322 INT16 m_ZoomHeight;
00323 INT16 m_PlacesHeight;
00324 INT16 m_LocatorHeight;
00325 INT16 m_MagnifierHeight;
00326 INT16 m_MagnifierZoom;
00327 bool m_ShowSidebar;
00328 bool m_ShowLegend;
00329 bool m_ShowZoom;
00330 bool m_ShowPlaces;
00331 bool m_ShowLocator;
00332 bool m_ShowMagnifier;
00333
00335 virtual ERRVALUE SerialRead (SERIALIZER& serializer);
00336 virtual ERRVALUE SerialWrite (SERIALIZER& serializer, const char *tagname = 0) const;
00337
00338 #endif // GENERATING_DOXYGEN_OUTPUT
00339 };
00340
00341
00342
00343 }
00344 }
00345
00346 #endif // INC_GRE_UIFORMVIEWSETTINGS_H