00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096
00097
00098
00099
00100
00101
00102
00103
00104
00105
00106
00107
00108
00109
00110
00111
00112
00113
00114
00115
00116
00117
00118
00119
00120
00121
00122
00123
00124
00125
00126
00127
00128
00129
00130
00131
00132
00133
00134
00135
00136
00137
00138
00139
00140
00141
00142
00143
00144
00145
00146
00147
00148
00149
00150
00151
00152
00153
00154
00155
00156
00157
00158
00159
00160
00161
00162
00163
00164
00165
00166
00167
00168
00169
00170
00171
00172
00173
00174
00175
00176
00177
00178
00179
00180
00181
00182
00183
00184
00185
00186
00187
00188
00189
00190
00191
00192
00193
00194
00195
00196
00197
00198
00199
00200
00201
00202
00203
00204
00205
00206
00207
00208
00209
00210
00211
00212
00213
00214
00215
00216 #ifndef INC_GRE_VIEW_H
00217 #define INC_GRE_VIEW_H
00218
00219 #if !defined(INC_MI32_STDAFX_H) && defined(WIN32_MFC)
00220 #include <mi32/stdafx.h>
00221 #endif
00222
00223 #if !defined(_OXTOOLTIPCTRL_H__) && defined(WIN32_MFC)
00224 #include <mgui/oxttctrl.h>
00225 #endif
00226
00227 #if !defined(INC_MI32_GRTOOL_H) && defined(WIN32_MFC)
00228 #include <mi32/grtool.h>
00229 #endif
00230
00231 #ifndef INC_GRE_OBJECTBASE_H
00232 #include <gre/viewable.h>
00233 #endif
00234
00235 #ifndef INC_GRE_VIEWSCRIPT_H
00236 #include <gre/viewscript.h>
00237 #endif
00238
00239 #ifndef INC_GRE_GEOLOCK_H
00240 #include <gre/geolock.h>
00241 #endif
00242
00243 #ifndef INC_GRE_3DSCENE_H
00244 #include <gre/3dscene.h>
00245 #endif
00246
00247 #ifndef INC_GRE_LAYERVIEW_H
00248 #include <gre/layerview.h>
00249 #endif
00250
00251 #if !defined(INC_MI32_XDEFNS_H) && defined(X_NATIVE)
00252 #include <mi32/xdefns.h>
00253 #endif
00254
00255 #ifndef INC_MI32_SERIALIZ_H
00256 #include <mi32/serializ.h>
00257 #endif
00258
00259 #ifndef INC_MI32_TRANS2DC_H
00260 #include <mi32/trans2dc.h>
00261 #endif
00262
00263 #ifndef INC_MI32_UNITCONV_H
00264 #include <mi32/unitconv.h>
00265 #endif
00266
00267 #ifndef INC_MI32_MXSTEREO_H
00268 #include <mi32/mxstereo.h>
00269 #endif
00270
00271 #if !defined(INC_MI32_GRTREE_H) && defined(X_NATIVE)
00272 #include <mi32/grtree.h>
00273 #endif
00274
00275 #ifndef INC_MI32_LATLONFM_H
00276 #include <mi32/latlonfm.h>
00277 #endif
00278
00279 #include <map>
00280
00281
00282 #ifndef GENERATING_DOXYGEN_OUTPUT
00283
00284 namespace RVC {
00285 class ELEMENT;
00286 }
00287
00288 namespace GRE {
00289 class DLG_VIEWZOOM;
00290 }
00291
00292 namespace MGD {
00293 class DEVICE;
00294 class DEVICE_X;
00295 class DEVICE_X32;
00296 class DEVICE_MEM32;
00297 class DEVICE_MEM32RGBA;
00298 class CONTEXT;
00299 }
00300
00301 namespace MGUI {
00302 class CTRL_TOOLTIP;
00303 }
00304
00305 union SMLARG;
00306
00307 #endif
00308
00309
00310 enum GRE_PROJACCUR {
00311 GRE_PROJACCUR_Affine = 1,
00312 GRE_PROJACCUR_Exact = 2,
00313 GRE_PROJACCUR_Auto = 3,
00314 };
00315
00316 enum VIEWFLAGS {
00317 VIEWFLAG_None = 0,
00318 VIEWFLAG_Locator = 0x00000001,
00319 VIEWFLAG_3D = 0x00000002,
00320 VIEWFLAG_ForceOneToOne = 0x00000004,
00321 VIEWFLAG_ScaleOneToOne = 0x00000008,
00322 VIEWFLAG_AllowDiffZoom = 0x00000010,
00323 VIEWFLAG_Hardcopy = 0x00000020,
00324 VIEWFLAG_DisableHotKeys = 0x00000040,
00325 VIEWFLAG_NoDrawLayers = 0x00000080,
00326 VIEWFLAG_NoDestroyShell = 0x00000100,
00327 VIEWFLAG_DidAttach = 0x00000200,
00328 VIEWFLAG_DialogModal = 0x00000400,
00329 VIEWFLAG_AllowGeoLock = 0x00000800,
00330 VIEWFLAG_NoCloseOption = 0x00001000,
00331 VIEWFLAG_DestroyOnClose = 0x00002000,
00332 VIEWFLAG_NoSetPixmapBG = 0x00004000,
00333 VIEWFLAG_NoSetPrevViewPos = 0x00008000,
00334 VIEWFLAG_DisableDataTips = 0x00010000,
00335 VIEWFLAG_NoRenderSeparate = 0x00020000,
00336 VIEWFLAG_AutoPanGPS = 0x00040000,
00337 VIEWFLAG_NoBlankScreen = 0x00080000,
00338 VIEWFLAG_NoEditColorHighlight = 0x00100000,
00339 VIEWFLAG_NoFillBackground = 0x00200000,
00340 VIEWFLAG_AllowPanOffEdge = 0x00400000,
00341 VIEWFLAG_NoShowTrackingCursor = 0x00800000,
00342 VIEWFLAG_NoLegendView = 0x01000000,
00343 VIEWFLAG_AlwaysTestCancel = 0x02000000,
00344 VIEWFLAG_NoDrawOtherViews = 0x04000000,
00345 VIEWFLAG_NoShowInLocator = 0x08000000,
00346
00347 VIEWFLAG_SaveMask = (VIEWFLAG_AllowDiffZoom)
00348 };
00349 DEFINE_ENUM_OP_BITWISE(VIEWFLAGS);
00350
00351 #define GRE_MaxPrevViews 10
00352
00353
00354 #define MDISPICONVIEW_ViewFull 0x00000001
00355 #define MDISPICONVIEW_ViewPrevious 0x00000002
00356 #define MDISPICONVIEW_ViewPrevZoom 0x00000004
00357 #define MDISPICONVIEW_ViewZoomIn 0x00000008
00358 #define MDISPICONVIEW_ViewZoomOut 0x00000010
00359 #define MDISPICONVIEW_ViewZoom1X 0x00000020
00360 #define MDISPICONVIEW_ViewZoomToGroup 0x00000040
00361 #define MDISPICONVIEW_ViewZoomToLayer 0x00000080
00362 #define MDISPICONVIEW_ViewLocator 0x00000100
00363 #define MDISPICONVIEW_ViewSnapshot 0x00000200
00364 #define MDISPICONVIEW_ViewZoom2X 0x00000400
00365 #define MDISPICONVIEW_ViewZoom3X 0x00000800
00366 #define MDISPICONVIEW_ViewGeoLock 0x00001000
00367 #define MDISPICONVIEW_ViewZoomToLoc 0x00002000
00368 #define MDISPICONVIEW_ViewDefault 0x000030FF
00369
00370 #define LEGENDVIEW_SHOW_NotSet 0
00371 #define LEGENDVIEW_SHOW_None 1
00372 #define LEGENDVIEW_SHOW_Left 2
00373 #define LEGENDVIEW_SHOW_Right 3
00374
00375
00376
00377
00378 class GRE_TOOL {
00379 public:
00380
00381
00382 GRE_TOOL (
00383 GRE_VIEW *view,
00384 #ifdef WIN32_NATIVE
00385 const char *toolname
00386 #else
00387 const char *toolname,
00388 const char *iconname,
00389 const char *icongroup=NULL,
00390 const char *helpcode=NULL
00391 #endif
00392 );
00393
00394
00395 GRE_TOOL (
00396 GRE_VIEW *view,
00397 ICID icidmenu,
00398 ICID icidicon,
00399 #ifdef WIN32_NATIVE
00400 const char *toolname
00401 #else
00402 const char *toolname,
00403 const char *iconname,
00404 const char *icongroup=NULL,
00405 const char *helpcode=NULL
00406 #endif
00407 );
00408
00409 virtual ~GRE_TOOL ();
00410
00411
00412 void Activate (
00413 );
00414
00415
00416 void Deactivate (
00417 );
00418
00419 #ifdef X_NATIVE
00420
00421 const char* GetHelpCode (
00422 ) const { return (m_HelpCode); }
00423
00424
00425 const char* GetIconGroup (
00426 ) const { return (m_IconGroup); }
00427
00428
00429 const char* GetIconName (
00430 ) const { return (m_IconName); }
00431 #endif
00432
00433
00434 const char* GetName (
00435 ) const { return (m_ToolName); }
00436
00437
00438 GRE_VIEW* GetView (
00439 ) const { return (m_view); }
00440
00441 #ifdef X_NATIVE
00442
00443 Widget GetMenuWidget (
00444 ) const { return (m_MenuWidget); }
00445
00446
00447 Widget GetToolbarWidget (
00448 ) const { return (m_ToolbarWidget); }
00449 #endif
00450
00451
00452 bool IsDisabled (
00453 ) const { return (m_IsDisabled); }
00454
00455
00456
00457 virtual bool IsScript (
00458 ) const;
00459
00460 #ifdef X_NATIVE
00461
00462 void SetupButtonItem (
00463 BUTTONITEM& item
00464 );
00465
00466
00467 void SetupMenuItem (
00468 MENUITEM& item
00469 );
00470
00471
00472 void SetSensitive (
00473 bool sensitive = true
00474 );
00475 #endif
00476
00477
00478
00479 bool Suspend (
00480 );
00481
00482
00483 void Resume (
00484 );
00485
00486 protected:
00487
00488 enum TOOLSTATE {
00489 STATE_NotInitialized = 0,
00490 STATE_Inactive,
00491 STATE_Active,
00492 STATE_NoLayers,
00493 STATE_Suspended
00494 };
00495
00496 GRE_VIEW* m_view;
00497
00498
00499 TOOLSTATE GetState (
00500 ) const { return (m_state); }
00501
00502 void SetName (
00503 const MISTRING& name
00504 ) { m_ToolNameStr = name; }
00505
00506 private:
00507 #ifndef GENERATING_DOXYGEN_OUTPUT
00508
00509 char *m_ToolName;
00510 #ifdef X_NATIVE
00511 char *m_IconName;
00512 char *m_IconGroup;
00513 char *m_HelpCode;
00514 #endif
00515 TOOLSTATE m_state;
00516 bool m_IsDisabled;
00517 ICID m_icidmenu;
00518 ICID m_icidicon;
00519 #ifdef X_NATIVE
00520 Widget m_MenuWidget;
00521 Widget m_ToolbarWidget;
00522 #endif
00523 MISTRING m_ToolNameStr;
00524
00525 #endif // GENERATING_DOXYGEN_OUTPUT
00526
00527
00528
00529 virtual bool DoActivate () = 0;
00530 virtual void DoDeactivate () = 0;
00531 virtual bool DoInitialize ();
00532 virtual void DoSuspend ();
00533 virtual void DoResume ();
00534 };
00535
00536 #ifndef GENERATING_DOXYGEN_OUTPUT
00537
00538 class _MDISPTOOL : public GRE_TOOL {
00539 public:
00540
00541 void *privptr;
00542 GRE_VIEW *view;
00543
00544 _MDISPTOOL (
00545 GRE_VIEW *view,
00546 const char *toolname,
00547 const char *iconname,
00548 const char *icongroup,
00549 const char *helpcode,
00550 int (*Init)(_MDISPTOOL*),
00551 int (*Stop)(_MDISPTOOL*),
00552 int (*Activate)(_MDISPTOOL*),
00553 int (*Deactivate)(_MDISPTOOL*),
00554 int (*Suspend)(_MDISPTOOL*),
00555 int (*Resume)(_MDISPTOOL*)
00556 );
00557
00558 _MDISPTOOL (
00559 GRE_VIEW *view,
00560 const char *toolname,
00561 const char *iconname,
00562 const char *icongroup,
00563 const char *helpcode,
00564 ICID icidmenu,
00565 ICID icidicon,
00566 int (*Init)(_MDISPTOOL*),
00567 int (*Stop)(_MDISPTOOL*),
00568 int (*Activate)(_MDISPTOOL*),
00569 int (*Deactivate)(_MDISPTOOL*),
00570 int (*Suspend)(_MDISPTOOL*),
00571 int (*Resume)(_MDISPTOOL*)
00572 );
00573
00574 virtual ~_MDISPTOOL ();
00575
00576 private:
00577
00578 virtual bool DoActivate ();
00579 virtual void DoDeactivate ();
00580 virtual bool DoInitialize ();
00581 virtual void DoSuspend ();
00582 virtual void DoResume ();
00583
00584 int (*OldInit)(_MDISPTOOL*);
00585 int (*OldStop)(_MDISPTOOL*);
00586 int (*OldActivate)(_MDISPTOOL*);
00587 int (*OldDeactivate)(_MDISPTOOL*);
00588 int (*OldSuspend)(_MDISPTOOL*);
00589 int (*OldResume)(_MDISPTOOL*);
00590 };
00591 typedef _MDISPTOOL *MDISPTOOL;
00592 #endif // GENERATING_DOXYGEN_OUTPUT
00593
00594
00595
00596 class GRE_VIEW : public GRE_OBJECT {
00597
00598 private:
00599 #ifndef GENERATING_DOXYGEN_OUTPUT
00600 class STATUSINFO;
00601 #endif // GENERATING_DOXYGEN_OUTPUT
00602
00603 public:
00604
00605
00606 enum CREATEFLAGS {
00607 CREATEFLAG_None = 0x00000000,
00608 CREATEFLAG_NoRenderSeparate = 0x00000001,
00609 CREATEFLAG_NoCallCreateCB = 0x00000004,
00610 CREATEFLAG_Temporary = 0x00000008,
00611 CREATEFLAG_NoCloseOption = 0x00000100,
00612 CREATEFLAG_DestroyOnClose = 0x00000200,
00613 CREATEFLAG_NoSelectTool = 0x00000400,
00614 CREATEFLAG_NoLegendView = 0x00000800,
00615 CREATEFLAG_NoStdTools = 0x00001000,
00616 CREATEFLAG_NoDftAddIcons = 0x00002000,
00617 CREATEFLAG_NoCancelButton = 0x00004000,
00618 CREATEFLAG_NoSkipButton = 0x00008000,
00619 CREATEFLAG_NoRedrawButton = 0x00010000,
00620 CREATEFLAG_NoToolBoxTool = 0x00020000,
00621 CREATEFLAG_NoStatusLine = 0x00040000,
00622 CREATEFLAG_NoIconBar = 0x00080000,
00623 CREATEFLAG_NoDftDrawIcons = 0x00100000,
00624 CREATEFLAG_NoDftViewIcons = 0x00200000,
00625 CREATEFLAG_NoScalePosLine = 0x00400000,
00626 CREATEFLAG_NoScrollbars = 0x00800000,
00627 CREATEFLAG_Locator = 0x01000000,
00628 CREATEFLAG_3D = 0x02000000,
00629 CREATEFLAG_Hardcopy = 0x04000000,
00630 CREATEFLAG_StereoLeft = 0x08000000,
00631 CREATEFLAG_StereoRight = 0x10000000,
00632 CREATEFLAG_DialogModal = 0x20000000,
00633 CREATEFLAG_AllowGeoLock = 0x40000000
00634 };
00635
00636 enum COORDSOURCE {
00637 COORDSOURCE_None,
00638 COORDSOURCE_Mouse,
00639 COORDSOURCE_ViewCenter,
00640 COORDSOURCE_Entered,
00641 COORDSOURCE_GPS,
00642 COORDSOURCE_COUNT
00643 };
00644
00645 enum COLORUSE {
00646 COLORUSE_Background,
00647 COLORUSE_HighlightElem,
00648 COLORUSE_ActiveElem,
00649 COLORUSE_DataTipElem,
00650 COLORUSE_COUNT
00651 };
00652
00653 enum DATATIPSELECTION {
00654 DATATIPSELECTION_FromView = 0,
00655 DATATIPSELECTION_None = 1,
00656 DATATIPSELECTION_ActiveLayer = 2,
00657 DATATIPSELECTION_AllLayers = 3,
00658 DATATIPSELECTION_AllVisible = 4,
00659 DATATIPSELECTION_AutoScale = 5
00660 };
00661
00662
00663
00664 class GLOBALOPTIONS {
00665 public:
00666
00667 class FORM;
00668
00669 GLOBALOPTIONS (
00670 );
00671
00672 ~GLOBALOPTIONS () {}
00673
00674 #ifdef X_NATIVE
00675 Widget CreateEditForm (
00676 Widget parent,
00677 const Arg *arglist,
00678 int argcount
00679 );
00680 #endif
00681
00682 bool GetAutoOpen3dViewCtrl () const { return (m_AutoOpen3dViewCtrl); }
00683 int GetAutoRedrawDelay () const { return (m_AutoRedrawDelay); }
00684 bool GetDefaultGeoLocked () const { return (m_DefaultGeoLocked); }
00685 bool GetDrawLayerOnUnhide () const { return (m_DrawLayerOnUnhide); }
00686 bool GetRedrawOnAnyChange () const { return (m_RedrawOnAnyChange); }
00687 bool GetUseAntialiasing() const {return (m_UseAntialiasing); }
00688 bool GetThinLineWidthHinting() const {return (m_ThinLineWidthHinting); }
00689 UINT16 GetRefreshInterval () const { return (m_RefreshInterval); }
00690 bool GetTrackCursor () const { return (m_TrackCursor); }
00691 const COLOR& GetTrackCursorColor () const { return (m_TrackCursorColor); }
00692 bool GetUpdateAfterDrawLayer () const { return (m_UpdateAfterDrawLayer); }
00693 bool GetZoomPanWaitForRMB () const { return (m_ZoomPanWaitForRMB); }
00694
00695 void IniRead (
00696 const char *inigroup = 0
00697 );
00698
00699 void IniWrite (
00700 const char *inigroup = 0
00701 ) const;
00702
00703 void SetAutoOpen3dViewCtrl (bool AutoOpen3dViewCtrl) { m_AutoOpen3dViewCtrl = AutoOpen3dViewCtrl; }
00704 void SetAutoRedrawDelay (int AutoRedrawDelay) { m_AutoRedrawDelay = AutoRedrawDelay; }
00705 void SetUseAntialiasing (bool Antialias) { m_UseAntialiasing = Antialias; }
00706 void SetThinLineWidthHinting (bool hint) { m_ThinLineWidthHinting = hint; }
00707 void SetDefaultGeoLocked (bool DefaultGeoLocked) { m_DefaultGeoLocked = DefaultGeoLocked; }
00708 void SetDrawLayerOnUnhide (bool DrawLayerOnUnhide) { m_DrawLayerOnUnhide = DrawLayerOnUnhide; }
00709 void SetRedrawOnAnyChange (bool RedrawOnAnyChange) { m_RedrawOnAnyChange = RedrawOnAnyChange; }
00710 void SetRefreshInterval (UINT16 RefreshInterval) { m_RefreshInterval = RefreshInterval; }
00711 void SetTrackCursor (bool TrackCursor) { m_TrackCursor = TrackCursor; }
00712 void SetTrackCursorColor (const COLOR& TrackCursorColor) { m_TrackCursorColor = TrackCursorColor; }
00713 void SetUpdateAfterDrawLayer (bool UpdateAfterDrawLayer) { m_UpdateAfterDrawLayer = UpdateAfterDrawLayer; }
00714 void SetZoomPanWaitForRMB (bool ZoomPanWaitForRMB) { m_ZoomPanWaitForRMB = ZoomPanWaitForRMB; }
00715
00716 private:
00717 #ifndef GENERATING_DOXYGEN_OUTPUT
00718 bool m_RedrawOnAnyChange;
00719 bool m_DrawLayerOnUnhide;
00720 bool m_UseAntialiasing;
00721 bool m_ThinLineWidthHinting;
00722 bool m_UpdateAfterDrawLayer;
00723 bool m_EnableTransparency;
00724 bool m_TrackCursor;
00725 bool m_ZoomPanWaitForRMB;
00726 bool m_AutoOpen3dViewCtrl;
00727 bool m_DefaultGeoLocked;
00728 UINT16 m_RefreshInterval;
00729 COLOR m_TrackCursorColor;
00730 int m_AutoRedrawDelay;
00731
00732 friend class GRE_VIEW;
00733 #endif // GENERATING_DOXYGEN_OUTPUT
00734 };
00735
00736 class SAVESETTINGS : public SERIALIZABLE {
00737 public:
00738
00739 SAVESETTINGS ();
00740 virtual ~SAVESETTINGS ();
00741
00742 void IniRead (INIHANDLE handle, const char *inigroup);
00743 void IniWrite (INIHANDLE handle, const char *inigroup);
00744
00745 private:
00746 #ifndef GENERATING_DOXYGEN_OUTPUT
00747
00748 struct STATUSPOS {
00749 bool m_Show;
00750 UINT8 m_UnitCode;
00751 SPATREF::COORDREFSYS m_CoordRefSys;
00752 DEGTOSTRFLAGS m_LatLonFormat;
00753 static const SERIALIZER::ITEMDEF* SerialGetItemDef ();
00754 STATUSPOS ();
00755 };
00756
00757 STATUSPOS m_StatusPos1;
00758 STATUSPOS m_StatusPos2;
00759
00760 static const SERIALIZER::ITEMDEF* SerialGetItemDef ();
00761
00762
00763 virtual ERRVALUE SerialRead (SERIALIZER& serializer);
00764 virtual ERRVALUE SerialWrite (SERIALIZER& serializer, const char *tagname = 0) const;
00765
00766 friend class GRE_VIEW;
00767 friend class STATUSINFO;
00768 friend struct STATUSPOS;
00769 #endif // GENERATING_DOXYGEN_OUTPUT
00770 };
00771
00772
00773
00774 class VIEWPOSN {
00775 public:
00776 MAT3X3 ViewToDisp, DispToView;
00777 DPOINT2D centerpoint;
00778 DPOINT2D zoom;
00779 DPOINT2D usedzoom;
00780 double MapScale;
00781
00782 VIEWPOSN ();
00783 };
00784
00785
00786
00787 static bool EditGlobalSettings (
00788 MDLGPARENT dlgparent
00789 );
00790
00791
00792 static GRE_VIEW* FindNextOfGroup (
00793 const GRE_GROUP *group,
00794 GRE_VIEW *view = 0
00795 );
00796
00797
00798 static GRE_VIEW* FindNextOfLayer (
00799 const GRE_LAYER *layer,
00800 GRE_VIEW *view = 0
00801 );
00802
00803
00804 static bool GetDrawLayerOnUnhide (
00805 ) { return (s_GlobalOptions.m_DrawLayerOnUnhide); }
00806
00807
00808 static int GetGlobalAutoRedrawDelay (
00809 ) { return (s_GlobalOptions.m_AutoRedrawDelay); };
00810
00811
00812 static const GLOBALOPTIONS& GetGlobalOptions (
00813 ) { InitStatic(); return (s_GlobalOptions); }
00814
00815
00816 static bool GetRedrawOnAnyChange (
00817 ) { return (s_GlobalOptions.m_RedrawOnAnyChange); }
00818
00819
00820 static const STEREOPARM& GetStereoParm (
00821 ) { return (s_StereoParm); }
00822
00823
00824 static UINT8 GetStereoMode (
00825 ) { return (s_StereoParm.StereoMode); }
00826
00827
00828 static double GetStereoOpticalSeparation (
00829 ) { return (s_StereoParm.OpticalSeparation); }
00830
00831
00832 static double GetStereoMonitorSeparation (
00833 ) { return (s_StereoParm.MonitorSeparation); }
00834
00835
00836 static bool GetUpdateAfterDrawLayer (
00837 ) { return (s_GlobalOptions.m_UpdateAfterDrawLayer); }
00838
00839
00840 static bool GetZoomPanWaitForRMB (
00841 ) { return (s_GlobalOptions.m_ZoomPanWaitForRMB); }
00842
00843
00844 static void SetEnableTransparency (
00845 bool EnableTransparency
00846 ) { s_GlobalOptions.m_EnableTransparency = EnableTransparency; }
00847
00848
00849 static void SetGlobalAutoRedrawDelay (
00850 int AutoRedrawDelay
00851 ) { s_GlobalOptions.m_AutoRedrawDelay = AutoRedrawDelay; }
00852
00853
00854 static void SetGlobalOptions (
00855 const GLOBALOPTIONS& options
00856 );
00857
00858
00859 static void SetGlobalZoomPanWaitForRMB (
00860 bool ZoomPanWaitForRMB
00861 ) { s_GlobalOptions.m_ZoomPanWaitForRMB = ZoomPanWaitForRMB; }
00862
00863
00864 static void SetRedrawOnAnyChange (
00865 bool RedrawOnAnyChange
00866 ) { s_GlobalOptions.m_RedrawOnAnyChange = RedrawOnAnyChange; }
00867
00868
00869 static void SetTrackCursor (
00870 bool TrackCursor
00871 ) { s_GlobalOptions.m_TrackCursor = TrackCursor; }
00872
00873
00874 static void SetUpdateAfterDrawLayer (
00875 bool UpdateAfterDrawLayer
00876 ) { s_GlobalOptions.m_UpdateAfterDrawLayer = UpdateAfterDrawLayer; }
00877
00878
00879 static void SMLClassInstall (
00880 SMLCONTEXT *context
00881 );
00882
00883 #if defined(X_NATIVE) && !defined(GENERATING_DOXYGEN_OUTPUT)
00884
00885 static GRE_VIEW* SML_CreateX (
00886 int numargs,
00887 SMLARG *args,
00888 SMLCONTEXT *context,
00889 CREATEFLAGS createflags = CREATEFLAG_None
00890 );
00891 #endif
00892
00893
00894
00895
00896 GRE_VIEW ();
00897
00898
00899 virtual ~GRE_VIEW ();
00900
00901 #ifdef X_NATIVE
00902
00903 void AddDftViewIcons (
00904 UINT32 flags = 0
00905 );
00906
00907
00908 void AddDrawIcons (
00909 );
00910
00911
00912 Widget AddIconRowItems (
00913 const BUTTONITEM *items,
00914 const char *icongroup = 0,
00915 void *cbdata = 0,
00916 void *userdata = 0
00917 );
00918
00919
00920 void AddMacroScriptIcons (
00921 );
00922
00923
00924 void AddMacroScriptMenuItems (
00925 );
00926
00927
00928 ERRVALUE AddMenuItemsOptions (
00929 const MENUITEM *newitems
00930 );
00931
00932
00933 void AddToolIcons (
00934 bool addscripts = true
00935 );
00936
00937 #endif
00938
00939
00940 void AttachGroupView (
00941 GRE::GROUPVIEW *groupview
00942 );
00943
00944
00945 void AttachLayerView (
00946 GRE::LAYERVIEW *layerview
00947 );
00948
00949
00950 void CancelDrawing (
00951 int err = EUserCancel
00952 ) { m_CancelDraw = err; }
00953
00954
00955 void ClearMessage (
00956 ) const;
00957
00958
00959 void ClearPreviousViewList (
00960 ) { m_PrevViewIndex = 0; return; }
00961
00962
00963 bool ContainsLayer (
00964 const GRE_LAYER *layer
00965 ) const;
00966
00967
00968
00969 double ConvertScreenUnits (
00970 GRE_LAYER *layer,
00971 double value,
00972 int iunits,
00973 int ounits
00974 );
00975
00976
00977 ERRVALUE Create (
00978 GRE_VIEWABLE *viewable,
00979 int iwidth,
00980 int iheight,
00981 CREATEFLAGS createflags = CREATEFLAG_None
00982 );
00983
00984 #ifdef X_NATIVE
00985
00986
00987 Widget CreateMenuBar (
00988 Widget form,
00989 MENUBARITEM *menubar
00990 );
00991 #endif
00992
00993 #ifdef X_NATIVE
00994
00995
00996 Widget CreateMenuBar (
00997 Widget form
00998 );
00999 #endif
01000
01001 #ifdef X_NATIVE
01002 ERRVALUE CreateX (
01003 GRE_VIEWABLE *viewable,
01004 Widget pwidget,
01005 Arg *arglist,
01006 int argcount,
01007 int iwidth,
01008 int iheight,
01009 const char *sizefield = 0,
01010 CREATEFLAGS createflags = CREATEFLAG_None,
01011 const SAVESETTINGS *pSettings = 0
01012 );
01013 #endif
01014
01015
01016 DATATIPSELECTION DataTipGetSelection (
01017 ) const { return (m_DataTipSelection); }
01018
01019
01020 ERRVALUE DataTipGetString (
01021 const DPOINT2D& point,
01022 MISTRING& string,
01023 GRE_FIND_FLAGS findflags,
01024 int maxlines = 0,
01025 DATATIPSELECTION selection = DATATIPSELECTION_FromView
01026 );
01027
01028
01029 void DataTipSetDelay (
01030 INT32 delay
01031 );
01032
01033
01034 void DataTipSetPixelDelta (
01035 int PixelDelta
01036 );
01037
01038
01039
01040 void DataTipSetSelection (
01041 DATATIPSELECTION selection
01042 ) { m_DataTipSelection = selection; }
01043
01044
01045 void DestroyGroupView (
01046 GRE_GROUP *group
01047 );
01048
01049
01050 void DestroyLayerView (
01051 GRE_LAYER *layer
01052 );
01053
01054
01055
01056 void Detach (
01057 ) { m_viewable = 0; }
01058
01059
01060 void DetachGroupView (
01061 GRE::GROUPVIEW *groupview
01062 );
01063
01064
01065 void DetachLayerView (
01066 GRE::LAYERVIEW *layerview
01067 );
01068
01069
01070 void DisableHotKeys (
01071 ) { m_viewflags |= VIEWFLAG_DisableHotKeys; }
01072
01073
01074 void DisableRedraw (
01075 ) { ++m_DisableRedraw; }
01076
01077
01078 ERRVALUE Draw (
01079 );
01080
01081
01082 ERRVALUE DrawDirect (
01083 GRE::DRAWFLAGS drawflags = GRE::DRAWFLAG_None
01084 );
01085
01086
01087 ERRVALUE DrawGroup (
01088 GRE_GROUP *group,
01089 GRE::DRAWFLAGS drawflags = GRE::DRAWFLAG_None
01090 );
01091
01092
01093
01094 int DrawIfNeeded (
01095 );
01096
01097
01098 ERRVALUE DrawIfAutoUpdate (
01099 ) { if (s_GlobalOptions.m_RedrawOnAnyChange) return (Draw()); return (0); }
01100
01101
01102 ERRVALUE DrawLayer (
01103 GRE_LAYER *layer,
01104 GRE::DRAWFLAGS drawflags = GRE::DRAWFLAG_None
01105 );
01106
01107
01108 ERRVALUE DrawLayerElement (
01109 GRE_LAYER *layer,
01110 ELEMTYPE ElemType,
01111 INT32 ElemNum,
01112 GRE::RENDERTARGET Target,
01113 GRE::DRAWFLAGS drawflags = GRE::DRAWFLAG_None
01114 );
01115
01116
01117 ERRVALUE DrawLayerElements (
01118 GRE_LAYER *layer,
01119 ELEMTYPE ElemType,
01120 const UINT8 *ElemSet,
01121 GRE::RENDERTARGET Target,
01122 GRE::DRAWFLAGS drawflags = GRE::DRAWFLAG_None
01123 );
01124
01125
01126 ERRVALUE DrawLayerHighlighted (
01127 GRE_LAYER *layer,
01128 GRE::DRAWFLAGS drawflags = GRE::DRAWFLAG_None
01129 );
01130
01131
01132
01133 void DrawMargins (
01134 MGD::CONTEXT* gc
01135 );
01136
01137
01138
01139 int EditColors (
01140 );
01141
01142
01143 void EditCustomization (
01144 );
01145
01146
01147 void EnableHotKeys (
01148 ) { m_viewflags -= VIEWFLAG_DisableHotKeys; }
01149
01150
01151 void EnableRedraw (
01152 ) { if (m_DisableRedraw > 0) --m_DisableRedraw; }
01153
01154
01155
01156 INT32 FindClosestLayerElement (
01157 GRE_LAYER *layer,
01158 int component,
01159 const DPOINT2D& point,
01160 double *distret,
01161 GRE_FIND_FLAGS findflags
01162 );
01163
01164
01165
01166 GRE_GROUP* FindPointGroup (
01167 const DPOINT2D& point,
01168 GRE_FIND_FLAGS findflags,
01169 const SPATREF::COORDREFSYS *pPointCRS = NULL
01170 ) const;
01171
01172
01173
01174 DEPRECATED const COLOR& GetActiveColor (
01175 ) const { return (GetColor(COLORUSE_ActiveElem)); }
01176
01177
01178 GRE_TOOL* GetActiveTool (
01179 ) const { return (m_ActiveTool); }
01180
01181 bool GetAutoRedrawSolid (
01182 ) const { return (m_AutoRedrawSolid); }
01183
01184
01185
01186 DEPRECATED const COLOR& GetBackgroundColor (
01187 ) const { return (GetColor(COLORUSE_Background)); }
01188
01189
01190 const char* GetBackgroundColorIniName (
01191 ) const;
01192
01193
01194 void GetCanvasExtentsUsed (
01195 LRECT2D& extents,
01196 bool UseNext = false
01197 ) const;
01198
01199
01200
01201 bool GetClipRegion (
01202 GRE_GROUP *group,
01203 REGION2D& ClipRegion
01204 );
01205
01206
01207 const COLOR& GetColor (
01208 COLORUSE coloruse
01209 ) const { return (m_Colors[coloruse]); }
01210
01211
01212 MDLGPARENT GetDlgParent (
01213 ) const {
01214 #ifdef X_NATIVE
01215 return (m_form);
01216 #else
01217 return (NULL);
01218 #endif
01219 }
01220
01221 #ifdef X_NATIVE
01222
01223 Widget GetDrawingArea (
01224 ) const { return (m_da); }
01225
01226
01227 Widget GetDrawingAreaForm (
01228 ) const { return (m_lvswform); }
01229 #endif
01230
01231
01232
01233 UINT32 GetDrawingAreaHeight (
01234 ) const { return (m_height); }
01235
01236
01237
01238 UINT32 GetDrawingAreaWidth (
01239 ) const { return (m_width); }
01240
01241 #if !defined(NO_DEPRECATED) && defined(X_NATIVE)
01242
01243
01244 DEPRECATED MGD::CONTEXT* GetDrawingContextScreen (
01245 ) const { return (m_sgc); }
01246 #endif
01247
01248
01249
01250
01251 MGD::DEVICE* GetDrawingDevice (
01252 ) const { return (m_gdisp); }
01253
01254
01255 MGD::DEVICE* GetDrawingDeviceMemory (
01256 ) const;
01257
01258 #ifdef X_NATIVE
01259
01260 MGD::DEVICE_X* GetDrawingDeviceScreen (
01261 ) const { return (m_sdisp); }
01262 #endif
01263
01264 #ifdef X_NATIVE
01265
01266 MGD::DEVICE_X32* GetDrawingDeviceViewInView (
01267 ) const { return (m_pDeviceViewInView); }
01268 #endif
01269
01270 #ifdef X_NATIVE
01271
01272
01273 Pixmap GetDrawingPixmap (
01274 ) const { return (m_pixmap); }
01275 #endif
01276
01277
01278 bool GetDrawWireframe3D (
01279 ) const { return (m_DrawWireframe); }
01280
01281
01282