00001
00054 #ifndef INC_MI32_MXTOOLS_H
00055 #define INC_MI32_MXTOOLS_H
00056
00057 #ifndef INC_MI32_XDEFNS_H
00058 #include <mi32/xdefns.h>
00059 #endif
00060
00061 #ifndef INC_MI32_UNITCONV_H
00062 #include <mi32/unitconv.h>
00063 #endif
00064
00065 #ifndef INC_MI32_TRANS2DC_H
00066 #include <mi32/trans2dc.h>
00067 #endif
00068
00069 #ifndef INC_MI32_REGION2D_H
00070 #include <mi32/region2d.h>
00071 #endif
00072
00073 #ifndef INC_MI32_ELEMSTYL_H
00074 #include <mi32/elemstyl.h>
00075 #endif
00076
00077 #ifndef INC_MI32_MCB_H
00078 #include <mi32/mcb.h>
00079 #endif
00080
00081
00082 #ifndef GENERATING_DOXYGEN_OUTPUT
00083 namespace SPATREF {
00084 class COORDREFSYS;
00085 }
00086 class TRANS2D_AFFINE;
00087 #endif // GENERATING_DOXYGEN_OUTPUT
00088
00089 typedef void *MXTHANDLE;
00090
00091
00092
00093
00094
00095
00096 #define MxtADJUST_Relative 0x0000
00097 #define MxtADJUST_Absolute 0x0001
00098 #define MxtADJUST_ToolCoords 0x0000
00099 #define MxtADJUST_ScreenCoords 0x0002
00100 #define MxtADJUST_Notify 0x8000
00101
00102
00103
00104
00105 #define MxtCR_ReasonMask 0xFF000000
00106 #define MxtCR_IsBegin 0x10000000
00107 #define MxtCR_IsContinue 0x20000000
00108 #define MxtCR_IsEnd 0x40000000
00109 #define MxtCR_IsOther 0x80000000
00110 #define MxtCR_IsActivate 0x01000000
00111 #define MxtCR_IsDestroy 0x02000000
00112
00113 #define MxtCR_NoReason (0|MxtCR_IsOther)
00114 #define MxtCR_Activate (1|MxtCR_IsOther|MxtCR_IsActivate)
00115 #define MxtCR_SetValues (2|MxtCR_IsOther)
00116 #define MxtCR_NewLimits (3|MxtCR_IsOther)
00117 #define MxtCR_SelectPosition (4|MxtCR_IsOther)
00118 #define MxtCR_Manage (5|MxtCR_IsOther)
00119 #define MxtCR_Unmanage (6|MxtCR_IsOther)
00120 #define MxtCR_ClearPosition (7|MxtCR_IsOther)
00121 #define MxtCR_Cancel (8|MxtCR_IsOther)
00122 #define MxtCR_Destroy (10|MxtCR_IsDestroy)
00123 #define MxtCR_ChangeCurrentElem (11|MxtCR_IsOther)
00124
00125 #define MxtCR_MoveBegin (30|MxtCR_IsBegin)
00126 #define MxtCR_MoveContinue (30|MxtCR_IsContinue)
00127 #define MxtCR_MoveEnd (30|MxtCR_IsEnd)
00128 #define MxtCR_ResizeBegin (31|MxtCR_IsBegin)
00129 #define MxtCR_ResizeContinue (31|MxtCR_IsContinue)
00130 #define MxtCR_ResizeEnd (31|MxtCR_IsEnd)
00131 #define MxtCR_RotateBegin (32|MxtCR_IsBegin)
00132 #define MxtCR_RotateContinue (32|MxtCR_IsContinue)
00133 #define MxtCR_RotateEnd (32|MxtCR_IsEnd)
00134 #define MxtCR_ShearBegin (33|MxtCR_IsBegin)
00135 #define MxtCR_ShearContinue (33|MxtCR_IsContinue)
00136 #define MxtCR_ShearEnd (33|MxtCR_IsEnd)
00137 #define MxtCR_EditBegin (34|MxtCR_IsBegin)
00138 #define MxtCR_EditContinue (34|MxtCR_IsContinue)
00139 #define MxtCR_EditEnd (34|MxtCR_IsEnd)
00140 #define MxtCR_CreateBegin (35|MxtCR_IsBegin)
00141 #define MxtCR_CreateContinue (35|MxtCR_IsContinue)
00142 #define MxtCR_CreateEnd (35|MxtCR_IsEnd)
00143 #define MxtCR_Trace (36|MxtCR_IsOther)
00144 #define MxtCR_WheelForward (37|MxtCR_IsOther)
00145 #define MxtCR_WheelBackward (38|MxtCR_IsOther)
00146
00147 #define MxtCR_CreateTool MxtCR_CreateBegin
00148
00149 struct SNAPGRIDPARMS {
00150 DPOINT3D BasePt;
00151 double xsize;
00152 double ysize;
00153 double zsize;
00154 double rotate;
00155 MAT3X3 OtoS, StoO;
00156 };
00157
00158 struct MANUALTOOLPARMS {
00159 TRANS2D_MAPGEN *m_pTransViewToTool;
00160 UNITCONV units;
00161 double xscaletou;
00162 double yscaletou;
00163 double zscaletou;
00164 unsigned scalevaluesset:1,
00165 unitconvset:1,
00166 mapparmset:1,
00167 unused:29;
00168 MANUALTOOLPARMS ()
00169 : m_pTransViewToTool(0) {}
00170 };
00171
00172
00173 struct MxtAnyCallbackStruct {
00174 UINT32 reason;
00175 MXTHANDLE mxt;
00176 XAnyEvent *event;
00177 void *toolinfo;
00178 unsigned IsGPS:1,
00179 IsXYDig:1,
00180 unused:30;
00181 };
00182
00183
00184
00185
00186 #define MxtFLAG_DialogManipMask 0xF8000200
00187 #define MxtFLAG_EnableXYDig 0x10000000
00188 #define MxtFLAG_EnableManual 0x20000000
00189 #define MxtFLAG_EnableDialog 0x40000000
00190 #define MxtFLAG_EnableSnapGrid 0x80000000
00191
00192 #define MxtFLAG_EnableGPS 0x08000000
00193 #define MxtFLAG_NoManualProj 0x04000000
00194
00195 #define MxtFLAG_NoResize 0x00100000
00196 #define MxtFLAG_NoCreate 0x00200000
00197 #define MxtFLAG_CanMoveOff 0x00400000
00198 #define MxtFLAG_NoRotate 0x00800000
00199
00200 #define MxtFLAG_NotifyMotion 0x00010000
00201 #define MxtFLAG_NoResetDialog 0x00020000
00202 #define MxtFLAG_NoExposeResize 0x00040000
00203 #define MxtFLAG_NoSaveB 0x00080000
00204
00205 #define MxtFLAG_HalfStepDeltas 0x00001000
00206 #define MxtFLAG_ForceActivate 0x00002000
00207 #define MxtFLAG_AllowCancelBtn 0x00004000
00208 #define MxtFLAG_NoDialog 0x00008000
00209
00210 #define MxtFLAG_ForceManual 0x00000800
00211 #define MxtFLAG_NoMove 0x00000400
00212 #define MxtFLAG_NoElemHeight 0x00000200
00213
00214
00215 #define MxtBOUND_Xmin 0x01000000
00216 #define MxtBOUND_Ymin 0x02000000
00217 #define MxtBOUND_Xmax 0x04000000
00218 #define MxtBOUND_Ymax 0x08000000
00219 #define MxtBOUND_FullRect 0x0F000000
00220
00221
00222
00223
00224
00225
00226 #define MxtMARKER_X 0
00227 #define MxtMARKER_Plus 1
00228 #define MxtMARKER_ArrowIn 2
00229 #define MxtMARKER_ArrowOut 3
00230 #define MxtMARKER_None 4
00231 #define MxtMARKER_Circle 5
00232 #define MxtMARKER_Flat 6
00233 #define MxtMARKER_Square 7
00234
00235
00236
00237
00238
00239
00240 struct ELINEINFO {
00241 DPOINT2D start, end;
00242 UINT16 smarker, emarker;
00243 UINT16 smarksize, emarksize;
00244 };
00245
00246
00247
00248
00249
00250
00251 struct EBOXINFO {
00252 double xinit, yinit, xlast, ylast;
00253 DPOINT2D corner[4];
00254 double wmin, hmin, wmax, hmax;
00255 double xsize, ysize;
00256 double rotangle;
00257 double xproport, yproport;
00258 };
00259
00260 #define MxEBOX_Range 0x00000001
00261 #define MxEBOX_AllCorners 0x00000002
00262 #define MxEBOX_Proport 0x00000004
00263
00264 #define MxEBOX_Corner0 0x00000010
00265 #define MxEBOX_Corner1 0x00000020
00266 #define MxEBOX_Corner2 0x00000040
00267 #define MxEBOX_Corner3 0x00000080
00268
00269 #define MxEBOX_CanFlipHorz 0x00000100
00270 #define MxEBOX_CanFlipVert 0x00000200
00271 #define MxEBOX_CanFlipBoth (MxEBOX_CanFlipHorz|MxEBOX_CanFlipVert)
00272
00273
00274
00275
00276
00277
00278
00279 struct EPOLYLINEINFO {
00280 DPOLYGON poly;
00281 double zvalue;
00282 unsigned Is3D:1,
00283 IsPoly:1,
00284 LockStartPt:1,
00285 LockEndPt:1,
00286 KeepModIndex:1,
00287 EnableTraceBtn:1,
00288 InTraceMode:1,
00289 unused:25;
00290 UINT32 CurveType;
00291 UINT16 smarker, emarker;
00292 UINT16 smarksize, emarksize;
00293 UINT16 smarkcolor, emarkcolor;
00294 INT32 *ModIndex;
00295 };
00296
00297 #define MxEPOLYLINE_EditPoly 0x00000001
00298 #define MxEPOLYLINE_EnableProfile 0x00000004
00299 #define MxEPOLYLINE_EnableTrace 0x00000008
00300
00301 #define MxEPOLYLINE_EnableResetB 0x00000010
00302 #define MxEPOLYLINE_NoClearB 0x00000020
00303 #define MxEPOLYLINE_NoClosePolyB 0x00000040
00304 #define MxEPOLYLINE_UseCurveFit 0x00000080
00305
00306 #define MxEPOLYLINE_CanChgLinePolyMode 0x00000100
00307 #define MxEPOLYLINE_NoEditZValue 0x00000200
00308
00309
00310
00311
00312
00313 struct EMULTILINEINFO {
00314 DPOLYGON *Lines;
00315 UINT32 NumLines;
00316 INT32 ActiveLine;
00317 double zvalue;
00318 unsigned Is3D:1,
00319 IsPoly:1,
00320 LockStartPt:1,
00321 LockEndPt:1,
00322 SingleLine:1,
00323 unused:27;
00324 UINT32 CurveType;
00325 UINT16 smarker, emarker;
00326 UINT16 smarksize, emarksize;
00327 UINT16 smarkcolor, emarkcolor;
00328 };
00329
00330 #define MxEMULTILINE_EditPoly 0x00000001
00331 #define MxEMULTILINE_LineIs3D 0x00000002
00332 #define MxEMULTILINE_EnableResetB 0x00000004
00333 #define MxEMULTILINE_NoClearB 0x00000008
00334
00335 #define MxEMULTILINE_NoClosePolyB 0x00000010
00336 #define MxEMULTILINE_UseCurveFit 0x00000020
00337 #define MxEMULTILINE_CanChgLinePolyMode 0x00000040
00338 #define MxEMULTILINE_NoEditZValue 0x00000080
00339
00340 #define MxEMULTILINE_SingleLineOnly 0x00000100
00341
00342
00343
00344
00345
00346 struct EPOINTINFO {
00347 DPOINT3D pt;
00348 UINT16 marker;
00349 UINT16 markersize;
00350 };
00351
00352 #define MxEPOINT_NoEditZValue 0x00000001
00353
00354
00355
00356
00357
00358
00359 struct EMULTIPOINTINFO {
00360 DPOINT3D *pt;
00361 INT32 NumPoints;
00362 INT32 ActivePoint;
00363 UINT16 marker;
00364 UINT16 markersize;
00365 };
00366
00367 #define MxEMULTIPOINT_NoEditZValue 0x00000001
00368 #define MxEMULTIPOINT_SinglePointOnly 0x00000002
00369
00370
00371
00372
00373
00374 struct ECIRCLEINFO {
00375 DPOINT2D center;
00376 double radius;
00377 double rmin, rmax;
00378 UINT16 cmarker;
00379 UINT16 cmarkersize;
00380 double rotangle;
00381 };
00382
00383 #define MxECIRCLE_Rmin 0x00000001
00384 #define MxECIRCLE_Rmax 0x00000002
00385 #define MxECIRCLE_RotationBar 0x00000004
00386
00387
00388
00389
00390
00391
00392 struct EREGPOLYINFO {
00393 DPOINT2D center;
00394 double radius;
00395 double rmin, rmax;
00396 double rotangle;
00397 UINT32 NumSegments;
00398 UINT16 cmarker;
00399 UINT16 cmarkersize;
00400 };
00401
00402 #define MxEREGPOLY_Rmin 0x00000001
00403 #define MxEREGPOLY_Rmax 0x00000002
00404
00405
00406
00407
00408
00409
00410 struct EARCINFO {
00411 DPOINT2D center;
00412 double radius;
00413 int startang;
00414 int sweepang;
00415 double rmin, rmax;
00416 UINT16 cmarker;
00417 UINT16 cmarkersize;
00418 unsigned IsChord:1,
00419 IsWedge:1,
00420 unused:30;
00421 };
00422
00423 #define MxEARC_Rmin 0x00000001
00424 #define MxEARC_Rmax 0x00000002
00425 #define MxEARC_EditWedge 0x00000004
00426 #define MxEARC_EditChord 0x00000008
00427
00428
00429
00430
00431
00432
00433 struct CROSSHAIRINFO {
00434 DPOINT2D center;
00435 double angle;
00436 double hlen, vlen;
00437 DPOINT2D endpt0, endpt180;
00438 DPOINT2D endpt90, endpt270;
00439 };
00440
00441 #define MxCROSSHAIR_NoBar0 0x00000001
00442 #define MxCROSSHAIR_NoBar90 0x00000002
00443 #define MxCROSSHAIR_NoBar180 0x00000004
00444 #define MxCROSSHAIR_NoBar270 0x00000008
00445 #define MxCROSSHAIR_SnapInside 0x00000010
00446
00447
00448
00449
00450
00451
00452 struct EELLIPSEINFO {
00453 DPOINT2D center;
00454 double angle;
00455 double xradius;
00456 double yradius;
00457 double xrmin, xrmax;
00458 double yrmin, yrmax;
00459 UINT16 cmarker;
00460 UINT16 cmarkersize;
00461 };
00462
00463 #define MxEELLIPSE_Rmin 0x00000001
00464 #define MxEELLIPSE_Rmax 0x00000002
00465
00466
00467
00468
00469
00470
00471 class ETEXTLABELINFO {
00472 public:
00473
00474 enum BASECURVE {
00475 BASECURVE_Straight,
00476 BASECURVE_Exact,
00477 BASECURVE_Spline
00478 };
00479
00480 struct LEADERINFO {
00481 POLYLINE m_Line;
00482 DPOINT3D m_TiePoint;
00483 INT32 m_ElemNum;
00484 ELEMTYPE m_ElemType;
00485
00486 LEADERINFO () : m_ElemNum(0), m_ElemType(ELEMTYPE_Empty) {}
00487 };
00488
00489 POLYLINE m_Baseline;
00490 BASECURVE m_BaseCurve;
00491 MISTRING m_String;
00492 double m_Height;
00493 TEXTSTYLE m_Style;
00494 double m_MapScale;
00495 MILIST<LEADERINFO> m_LeaderLines;
00496 POLYLINE m_SourceLine;
00497
00498 ETEXTLABELINFO (
00499 ) :
00500 m_BaseCurve(BASECURVE_Straight),
00501 m_Height(1.0),
00502 m_MapScale(1.0)
00503 {}
00504
00505 ETEXTLABELINFO (
00506 const ETEXTLABELINFO& rhs
00507 ) :
00508 m_Baseline(rhs.m_Baseline),
00509 m_BaseCurve(rhs.m_BaseCurve),
00510 m_String(rhs.m_String),
00511 m_Height(rhs.m_Height),
00512 m_Style(rhs.m_Style),
00513 m_MapScale(rhs.m_MapScale),
00514 m_LeaderLines(rhs.m_LeaderLines),
00515 m_SourceLine(rhs.m_SourceLine)
00516 {}
00517
00518 ETEXTLABELINFO& operator= (
00519 const ETEXTLABELINFO& rhs
00520 ) {
00521 if (this != &rhs) {
00522 m_Baseline = rhs.m_Baseline;
00523 m_BaseCurve = rhs.m_BaseCurve;
00524 m_String = rhs.m_String;
00525 m_Height = rhs.m_Height;
00526 m_Style = rhs.m_Style;
00527 m_MapScale = rhs.m_MapScale;
00528 m_LeaderLines = rhs.m_LeaderLines;
00529 m_SourceLine = rhs.m_SourceLine;
00530 }
00531 return (*this);
00532 }
00533
00534 void Clear (
00535 ) {
00536 m_String.Clear();
00537 m_LeaderLines.Clear();
00538 m_Baseline.Clear();
00539 return;
00540 }
00541
00542 };
00543
00544 #define MxETEXTLABEL_NoLeaderLines 0x00000001
00545 #define MxETEXTLABEL_NoAdvanced 0x00000002
00546 #define MxETEXTLABEL_NoBaselineEdit 0x00000004
00547 #define MxETEXTLABEL_NoStylePanel 0x00000008
00548
00549 PREVENT_MEMFUNC(ETEXTLABELINFO);
00550
00551
00552
00553
00554
00555 struct EREGIONINFO {
00556 REGION2D region;
00557 };
00558 PREVENT_MEMFUNC(EREGIONINFO);
00559
00560 #define MxEREGION_NoMove 0x00000001
00561
00562
00564
00565 #define MXT_ADD(_clsname) inline void MxtCallbackAdd (MXTHANDLE vmxt, void (*f)(MxtAnyCallbackStruct*,_clsname*), UINT32 flags) const { MxtAddCallback(vmxt,reinterpret_cast<McbCallbackFunc>(f),const_cast<_clsname*>(this),(flags)); }
00566 #define MXT_REMOVE(_clsname) inline void MxtCallbackRemove (MXTHANDLE vmxt, void (*f)(MxtAnyCallbackStruct*,_clsname*), UINT32 flags) const { MxtRemoveCallback(vmxt,reinterpret_cast<McbCallbackFunc>(f),const_cast<_clsname*>(this),(flags)); }
00567
00568
00573
00574
00575
00576
00577 extern "C" {
00578
00580 MXTHANDLE mxtCrossHair (
00581 UINT32 flags,
00582 void *pwidget
00583 );
00584
00588 MXTHANDLE mxtEArc (
00589 UINT32 flags,
00590 void *pwidget
00591 );
00592
00594 MXTHANDLE mxtEBox (
00595 UINT32 flags,
00596 void *pwidget
00597 );
00598
00602 MXTHANDLE mxtECircle (
00603 UINT32 flags,
00604 void *pwidget
00605 );
00606
00608 MXTHANDLE mxtEEllipse (
00609 UINT32 flags,
00610 void *pwidget
00611 );
00612
00614 MXTHANDLE mxtELine (
00615 UINT32 flags,
00616 void *pwidget
00617 );
00618
00620 MXTHANDLE mxtEMultiPoint (
00621 UINT32 flags,
00622 void *pwidget
00623 );
00624
00626 MXTHANDLE mxtEMultiPolyLine (
00627 UINT32 flags,
00628 void *pwidget
00629 );
00630
00632 MXTHANDLE mxtEPoint (
00633 UINT32 flags,
00634 void *pwidget
00635 );
00636
00638 MXTHANDLE mxtEPolyLine (
00639 UINT32 flags,
00640 void *pwidget
00641 );
00642
00644 MXTHANDLE mxtERegion (
00645 UINT32 flags,
00646 void *pwidget
00647 );
00648
00650 MXTHANDLE mxtERegPoly (
00651 UINT32 flags,
00652 void *pwidget
00653 );
00654
00656 MXTHANDLE mxtETextLabel (
00657 UINT32 flags,
00658 void *pwidget
00659 );
00660
00662 MXTHANDLE mxtSelectPoint (
00663 UINT32 flags,
00664 void *pwidget
00665 );
00666
00724 int MxtAddCallback (
00725 MXTHANDLE vmxt,
00726 McbCallbackFunc func,
00727 void *udata,
00728 UINT32 reason
00729 );
00730
00732 int MxtCallbackAddExt (
00733 MXTHANDLE vmxt,
00734 McbCallbackFunc func,
00735 void *udata,
00736 UINT32 reason,
00737 INT8 priority
00738 );
00739
00741 void MxtCallActivateCallback (
00742 MXTHANDLE mxt
00743 );
00744
00746 void MxtCallChangeCallback (
00747 MXTHANDLE mxt,
00748 UINT32 reason
00749 );
00750
00755 void MxtClearPosition (
00756 MXTHANDLE mxt
00757 );
00758
00775 MXTHANDLE MxtCreate (
00776 Widget pwidget,
00777 MXTHANDLE (*CreateFunc)(UINT32, void*),
00778 UINT32 flags
00779 );
00780
00786 void MxtDestroy (
00787 MXTHANDLE mxt
00788 );
00789
00791 void MxtDrawGraphic (
00792 MXTHANDLE vmxt,
00793 const LRECT2D *rect
00794 );
00795
00803 int MxtEditGlobalOptions (
00804 Widget pwidget
00805 );
00806
00808 void MxtEnableGps (
00809 Widget pwidget,
00810 int enabled
00811 );
00812
00818 void MxtFreeValues (
00819 MXTHANDLE mxt,
00820 void *toolvalues
00821 );
00822
00828 Widget MxtGenerateManualForm (
00829 MXTHANDLE vmxt,
00830 Widget parent
00831 );
00832
00838 int MxtGenerateRegion (
00839 MXTHANDLE vmxt,
00840 REGION2D& region,
00841 UINT32 flags
00842 );
00843
00849 Widget MxtGenerateSpatialForm (
00850 MXTHANDLE vmxt,
00851 Widget parent
00852 );
00853
00859 Widget MxtGenerateToolForm (
00860 MXTHANDLE vmxt,
00861 Widget parent
00862 );
00863
00868 void MxtGetArrowKeyDeltas (
00869 MXTHANDLE mxt,
00870 double *delta_x,
00871 double *delta_y
00872 );
00873
00879 int MxtGetBounds (
00880 MXTHANDLE mxt,
00881 DRECT2D *rect
00882 );
00883
00887 MXTHANDLE MxtGetCurrentTool (
00888 MXTHANDLE mxt
00889 );
00890
00896 UINT32 MxtGetFlags (
00897 MXTHANDLE mxt
00898 );
00899
00901 void MxtGetGlobalColor (
00902 int *UseTool,
00903 COLOR *color,
00904 COLOR *seccolor,
00905 int *LineWidth
00906 );
00907
00913 int MxtGetManualMode (
00914 MXTHANDLE mxt
00915 );
00916
00920 void MxtGetManualParms (
00921 MXTHANDLE mxt,
00922 MANUALTOOLPARMS *mtparms
00923 );
00924
00928 void MxtGetSnapGrid (
00929 MXTHANDLE mxt,
00930 SNAPGRIDPARMS *snapgrid
00931 );
00932
00938 int MxtGetSnapGridMode (
00939 MXTHANDLE mxt
00940 );
00941
00943 GC MxtGetToolGC (
00944 MXTHANDLE mxt
00945 );
00946
00950 int MxtGetToolSize (
00951 MXTHANDLE mxt
00952 );
00953
00955 void MxtGetTrans2D (
00956 MXTHANDLE mxt,
00957 TRANS2D_AFFINE& TtoW
00958 );
00959
00963 void *MxtGetUserData (
00964 MXTHANDLE mxt
00965 );
00966
00975 int MxtGetValues (
00976 MXTHANDLE mxt,
00977 void *toolvalues
00978 );
00979
00983 int MxtGetXYDigitizerMode (
00984 MXTHANDLE mxt
00985 );
00986
00990 int MxtHasPosition (
00991 MXTHANDLE mxt
00992 );
00993
00995 int MxtInBgUpdateCall (
00996 MXTHANDLE mxt
00997 );
00998
01002 int MxtIsManaged (
01003 MXTHANDLE mxt
01004 );
01005
01009 int MxtIsSuspended (
01010 MXTHANDLE mxt
01011 );
01012
01014 int MxtIsTrackingGps (
01015 MXTHANDLE mxt
01016 );
01017
01026 void MxtManage (
01027 MXTHANDLE mxt
01028 );
01029
01031 int MxtManualViewCoordRefSysSet (
01032 MXTHANDLE vmxt,
01033 const SPATREF::COORDREFSYS& ViewCoordRefSys,
01034 bool ForceProj
01035 );
01036
01047 void MxtMove (
01048 MXTHANDLE mxt,
01049 double dx,
01050 double dy,
01051 XAnyEvent *event,
01052 UINT32 flags
01053 );
01054
01056 void MxtRaiseWindow (
01057 MXTHANDLE vmxt
01058 );
01059
01061 void MxtRemoveCallback (
01062 MXTHANDLE vmxt,
01063 McbCallbackFunc func,
01064 void *udata,
01065 UINT32 reason
01066 );
01067
01078 void MxtResize (
01079 MXTHANDLE mxt,
01080 double dx,
01081 double dy,
01082 XAnyEvent *event,
01083 UINT32 flags
01084 );
01085
01089 void MxtResume (
01090 MXTHANDLE mxt
01091 );
01092
01104 void MxtRotate (
01105 MXTHANDLE mxt,
01106 double drot,
01107 XAnyEvent *event,
01108 UINT32 flags
01109 );
01110
01112 void MxtSaveGlobalColor (
01113 char *group
01114 );
01115
01128 void MxtSetActivateCallback (
01129 MXTHANDLE mxt,
01130 void (*CBFunc)(MxtAnyCallbackStruct*, void*),
01131 void *udata
01132 );
01133
01138 void MxtSetArrowKeyDeltas (
01139 MXTHANDLE mxt,
01140 double delta_x,
01141 double delta_y
01142 );
01143
01145 void MxtSetBgUpdateFunc (
01146 Widget pwidget,
01147 void (*UpdBg)(Widget, DRECT2D*, void*),
01148 void *udata
01149 );
01150
01163 void MxtSetBounds (
01164 MXTHANDLE mxt,
01165 DRECT2D *rect,
01166 UINT32 flags
01167 );
01168
01202 void MxtSetChangeCallback (
01203 MXTHANDLE mxt,
01204 void (*CBFunc)(MxtAnyCallbackStruct*, void*),
01205 void *udata
01206 );
01207
01209 int MxtSetDialogPosition (
01210 MXTHANDLE vmxt,
01211 int NewPosn
01212 );
01213
01223 void MxtSetFlags (
01224 MXTHANDLE mxt,
01225 UINT32 flags
01226 );
01227
01229 void MxtSetGlobalColor (
01230 Widget parent,
01231 int UseTool,
01232 const COLOR& color,
01233 const COLOR& seccolor,
01234 int LineWidth
01235 );
01236
01238 void MxtSetGpsSource (
01239 MXTHANDLE vmxt,
01240 void *vNewSource
01241 );
01242
01250 void MxtSetHelpString (
01251 MXTHANDLE mxt,
01252 char *helpstr
01253 );
01254
01264 void MxtSetManualMode (
01265 MXTHANDLE mxt,
01266 int setflag
01267 );
01268
01274 int MxtSetManualParms (
01275 MXTHANDLE mxt,
01276 MANUALTOOLPARMS *mtparms
01277 );
01278
01283 int MxtSetOutputTrans (
01284 MXTHANDLE vmxt,
01285 const TRANS2D_MAPGEN& trans
01286 );
01287
01293 int MxtSetSnapGrid (
01294 MXTHANDLE mxt,
01295 SNAPGRIDPARMS *snapgrid
01296 );
01297
01304 void MxtSetSnapGridMode (
01305 MXTHANDLE mxt,
01306 int setflag
01307 );
01308
01310 void MxtSetToolColor (
01311 MXTHANDLE vmxt,
01312 COLOR *color,
01313 COLOR *seccolor,
01314 int LineWidth
01315 );
01316
01317 }
01321 void MxtSetTrans2D (
01322 MXTHANDLE mxt,
01323 const TRANS2D_AFFINE& TtoW
01324 );
01325
01326 extern "C" {
01327
01332 void MxtSetTrans2D (
01333 MXTHANDLE mxt,
01334 const MAT3X3 OtoD,
01335 const MAT3X3 DtoO
01336 );
01337
01339 void MxtSetUserData (
01340 MXTHANDLE mxt,
01341 void *udata
01342 );
01343
01354 int MxtSetValues (
01355 MXTHANDLE mxt,
01356 void *toolvalues,
01357 int notify
01358 );
01359
01364 void MxtSetWindowButtonRow (
01365 MXTHANDLE mxt,
01366 BUTTONITEM *buttonrow,
01367 void *udata
01368 );
01369
01373 void MxtSetWindowFormCallback (
01374 MXTHANDLE mxt,
01375 int (*AddToForm)(Widget, void*),
01376 void *udata
01377 );
01378
01383 void MxtSetWindowSaveButton (
01384 MXTHANDLE mxt,
01385 const char *savebutton
01386 );
01387
01388
01389 }
01390
01395 void MxtSetWindowTitle (
01396 MXTHANDLE mxt,
01397 TEXTID textid
01398 );
01399
01400 extern "C" {
01401
01407 void MxtSetXORPixel (
01408 MXTHANDLE mxt,
01409 Pixel pixel
01410 );
01411
01418 void MxtSetXYDigitizerMode (
01419 MXTHANDLE mxt,
01420 int setflag
01421 );
01422
01428 void MxtSetXYDtoObjectTrans (
01429 MXTHANDLE mxt,
01430 TRANSFUNC tfunc,
01431 void *udata
01432 );
01433
01445 void MxtShear (
01446 MXTHANDLE mxt,
01447 double dshear,
01448 XAnyEvent *event,
01449 UINT32 flags
01450 );
01451
01457 void MxtSuspend (
01458 MXTHANDLE mxt
01459 );
01460
01462 void MxtTrackGps (
01463 MXTHANDLE vmxt,
01464 int track
01465 );
01466
01474 void MxtUnmanage (
01475 MXTHANDLE mxt
01476 );
01477
01478 }
01479
01492 inline MXTHANDLE MxtCreateCrossHair (
01493 Widget dawidget,
01494 UINT32 flags = 0
01495 ) {
01496 return (MxtCreate(dawidget,mxtCrossHair,flags));
01497 }
01498
01511 inline MXTHANDLE MxtCreateEArc (
01512 Widget dawidget,
01513 UINT32 flags = 0
01514 ) {
01515 return (MxtCreate(dawidget,mxtEArc,flags));
01516 }
01517
01540 inline MXTHANDLE MxtCreateEBox (
01541 Widget dawidget,
01542 UINT32 flags = 0
01543 ) {
01544 return (MxtCreate(dawidget,mxtEBox,flags));
01545 }
01546
01559 inline MXTHANDLE MxtCreateECircle (
01560 Widget dawidget,
01561 UINT32 flags = 0
01562 ) {
01563 return (MxtCreate(dawidget,mxtECircle,flags));
01564 }
01565
01578 inline MXTHANDLE MxtCreateEEllipse (
01579 Widget dawidget,
01580 UINT32 flags = 0
01581 ) {
01582 return (MxtCreate(dawidget,mxtEEllipse,flags));
01583 }
01584
01593 inline MXTHANDLE MxtCreateELine (
01594 Widget dawidget,
01595 UINT32 flags = 0
01596 ) {
01597 return (MxtCreate(dawidget,mxtELine,flags));
01598 }
01599
01607 inline MXTHANDLE MxtCreateEMultiPoint (
01608 Widget dawidget,
01609 UINT32 flags = 0
01610 ) {
01611 return (MxtCreate(dawidget,mxtEMultiPoint,flags));
01612 }
01613
01627 inline MXTHANDLE MxtCreateEMultiPolyLine (
01628 Widget dawidget,
01629 UINT32 flags = 0
01630 ) {
01631 return (MxtCreate(dawidget,mxtEMultiPolyLine,flags));
01632 }
01633
01637 inline MXTHANDLE MxtCreateEPoint (
01638 Widget dawidget,
01639 UINT32 flags = 0
01640 ) {
01641 return (MxtCreate(dawidget,mxtEPoint,flags));
01642 }
01643
01659 inline MXTHANDLE MxtCreateEPolyLine (
01660 Widget dawidget,
01661 UINT32 flags = 0
01662 ) {
01663 return (MxtCreate(dawidget,mxtEPolyLine,flags));
01664 }
01665
01672 inline MXTHANDLE MxtCreateERegion (
01673 Widget dawidget,
01674 UINT32 flags = 0
01675 ) {
01676 return (MxtCreate(dawidget,mxtERegion,flags));
01677 }
01678
01686 inline MXTHANDLE MxtCreateERegPoly (
01687 Widget dawidget,
01688 UINT32 flags = 0
01689 ) {
01690 return (MxtCreate(dawidget,mxtERegPoly,flags));
01691 }
01692
01705 inline MXTHANDLE MxtCreateETextLabel (
01706 Widget dawidget,
01707 UINT32 flags = 0
01708 ) {
01709 return (MxtCreate(dawidget,mxtETextLabel,flags));
01710 }
01711
01715 inline MXTHANDLE MxtCreateSelectPoint (
01716 Widget dawidget,
01717 UINT32 flags = 0
01718 ) {
01719 return (MxtCreate(dawidget,mxtSelectPoint,flags));
01720 }
01721
01734 inline UINT32 MxtGetReasonClass (
01735 UINT32 reason
01736 ) {
01737 return (reason & MxtCR_ReasonMask);
01738 }
01739
01741
01742 #endif