?? rs.h
字號:
/****************************************************************************** $Id: rs.h 1933 2004-12-02 03:26:42Z andrew $**** Copyright (C) 2001-2003 RibbonSoft. All rights reserved.**** This file is part of the qcadlib Library project.**** This file may be distributed and/or modified under the terms of the** GNU General Public License version 2 as published by the Free Software** Foundation and appearing in the file LICENSE.GPL included in the** packaging of this file.**** Licensees holding valid qcadlib Professional Edition licenses may use ** this file in accordance with the qcadlib Commercial License** Agreement provided with the Software.**** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.**** See http://www.ribbonsoft.com for further details.**** Contact info@ribbonsoft.com if any conditions of this licensing are** not clear to you.************************************************************************/#ifndef RS_H#define RS_H#include <qnamespace.h>#include <qprinter.h>#define RS_TEST#ifdef RS_TEST#include <assert.h>#endif// Windoze XP can't handle the original MAX/MINDOUBLE's#define RS_MAXDOUBLE 1.0E+10#define RS_MINDOUBLE -1.0E+10/** * Class namespace for various enums along with some simple * wrapper methods for converting the enums to the Qt * counterparts. * * @author Andrew Mustun */class RS2 {public: /** * Flags. */ enum Flags { /** Flag for Undoables. */ FlagUndone = 1<<0, /** Entity Visibility. */ FlagVisible = 1<<1, /** Entity attribute (e.g. color) is defined by layer. */ FlagByLayer = 1<<2, /** Entity attribute (e.g. color) defined by block. */ FlagByBlock = 1<<3, /** Layer frozen. */ FlagFrozen = 1<<4, /** Layer frozen by default. */ FlagDefFrozen = 1<<5, /** Layer locked. */ FlagLocked = 1<<6, /** Used for invalid pens. */ FlagInvalid = 1<<7, /** Entity in current selection. */ FlagSelected = 1<<8, /** Polyline closed? */ FlagClosed = 1<<9, /** Flag for temporary entities (e.g. hatch) */ FlagTemp = 1<<10, /** Flag for processed entities (optcontour) */ FlagProcessed = 1<<11, /** Startpoint selected */ FlagSelected1 = 1<<12, /** Endpoint selected */ FlagSelected2 = 1<<13, /** Entity is highlighted temporarily (as a user action feedback) */ FlagHighlighted = 1<<14 }; /** * Variable types used by RS_VariableDict and RS_Variable. */ enum VariableType { VariableString, VariableInt, VariableDouble, VariableVector, VariableVoid }; /** * File types. Used by file dialogs. Note: the extension might not * be enough to distinguish file types. */ enum FormatType { FormatUnknown, /**< Unknown / unsupported format. */ FormatDXF1, /**< QCad 1 compatibility DXF format. */ FormatDXF, /**< DXF format. 2000. */ FormatDXF12, /**< DXF format. R12. */ FormatCXF, /**< CAM Expert Font format. */ FormatCAM /**< CAM Expert CAM format (NC, CNC, D, ..) */ }; /** * Entity types returned by the rtti() method */ enum EntityType { EntityUnknown, /**< Unknown */ EntityContainer, /**< Container */ EntityBlock, /**< Block (Group definition) */ EntityFontChar, /**< Font character */ EntityInsert, /**< Insert (Group instance) */ EntityGraphic, /**< Graphic with layers */ EntityPoint, /**< Point */ EntityLine, /**< Line */ EntityPolyline, /**< Polyline */ EntityVertex, /**< Vertex (part of a polyline) */ EntityArc, /**< Arc */ EntityCircle, /**< Circle */ EntityEllipse, /**< Ellipse */ EntitySolid, /**< Ellipse */ EntityConstructionLine, /**< Construction line */ EntityDimAligned, /**< Aligned Dimension */ EntityDimLinear, /**< Linear Dimension */ EntityDimRadial, /**< Radial Dimension */ EntityDimDiametric, /**< Diametric Dimension */ EntityDimAngular, /**< Angular Dimension */ EntityDimLeader, /**< Leader Dimension */ EntityHatch, /**< Hatch */ EntityImage, /**< Image */ EntitySpline /**< Spline */ }; /** * Action types used by action factories. */ enum ActionType { ActionNone, /**< Invalid action id. */ ActionDefault, ActionFileNew, ActionFileOpen, ActionFileSave, ActionFileSaveAs, ActionFileExport, ActionFileClose, ActionFilePrint, ActionFilePrintPreview, ActionFileQuit, ActionPrintPreview, ActionEditUndo, ActionEditRedo, ActionEditCut, ActionEditCutNoSelect, ActionEditCopy, ActionEditCopyNoSelect, ActionEditPaste, ActionViewStatusBar, ActionViewLayerList, ActionViewBlockList, ActionViewCommandLine, ActionViewOptionToolbar, ActionViewGrid, ActionViewDraft, ActionZoomIn, ActionZoomOut, ActionZoomAuto, ActionZoomWindow, ActionZoomPan, ActionZoomRedraw, ActionZoomPrevious, ActionSelectSingle, ActionSelectContour, ActionSelectWindow, ActionDeselectWindow, ActionSelectAll, ActionDeselectAll, ActionSelectIntersected, ActionDeselectIntersected, ActionSelectInvert, ActionSelectLayer, ActionSelectDouble, ActionDrawArc, ActionDrawArc3P, ActionDrawArcParallel, ActionDrawArcTangential, ActionDrawCircle, ActionDrawCircle2P, ActionDrawCircle3P, ActionDrawCircleCR, ActionDrawCircleParallel, ActionDrawEllipseArcAxis, ActionDrawEllipseAxis, ActionDrawHatch, ActionDrawHatchNoSelect, ActionDrawImage, ActionDrawLine, ActionDrawLineAngle, ActionDrawLineBisector, ActionDrawLineFree, ActionDrawLineHorVert, ActionDrawLineHorizontal, ActionDrawLineOrthogonal, ActionDrawLineParallel, ActionDrawLineParallelThrough, ActionDrawLinePolygon, ActionDrawLinePolygon2, ActionDrawLineRectangle, ActionDrawLineRelAngle, ActionDrawLineTangent1, ActionDrawLineTangent2, ActionDrawLineVertical, ActionDrawPoint, ActionDrawSpline, ActionDrawPolyline, ActionDrawText, ActionPolylineAdd, ActionPolylineAppend, ActionPolylineDel, ActionPolylineDelBetween, ActionPolylineTrim, ActionDimAligned, ActionDimLinear, ActionDimLinearVer, ActionDimLinearHor, ActionDimRadial, ActionDimDiametric, ActionDimAngular, ActionDimLeader, ActionModifyAttributes, ActionModifyAttributesNoSelect, ActionModifyDelete, ActionModifyDeleteNoSelect, ActionModifyDeleteQuick, ActionModifyDeleteFree, ActionModifyMove, ActionModifyMoveNoSelect, ActionModifyRotate, ActionModifyRotateNoSelect, ActionModifyScale, ActionModifyScaleNoSelect, ActionModifyMirror, ActionModifyMirrorNoSelect, ActionModifyMoveRotate, ActionModifyMoveRotateNoSelect, ActionModifyRotate2, ActionModifyRotate2NoSelect, ActionModifyEntity, ActionModifyTrim, ActionModifyTrim2, ActionModifyTrimAmount, ActionModifyCut, ActionModifyStretch, ActionModifyBevel, ActionModifyRound, ActionSnapFree, ActionSnapGrid, ActionSnapEndpoint, ActionSnapOnEntity, ActionSnapCenter, ActionSnapMiddle, ActionSnapDist, ActionSnapIntersection, ActionSnapIntersectionManual, ActionRestrictNothing, ActionRestrictOrthogonal, ActionRestrictHorizontal, ActionRestrictVertical, ActionSetRelativeZero, ActionLockRelativeZero, ActionUnlockRelativeZero, ActionInfoInside, ActionInfoDist, ActionInfoDist2, ActionInfoAngle, ActionInfoTotalLength, ActionInfoTotalLengthNoSelect, ActionInfoArea, ActionLayersDefreezeAll, ActionLayersFreezeAll, ActionLayersAdd, ActionLayersRemove, ActionLayersEdit, ActionLayersToggleView, ActionLayersToggleLock, ActionBlocksDefreezeAll, ActionBlocksFreezeAll, ActionBlocksAdd, ActionBlocksRemove, ActionBlocksAttributes, ActionBlocksEdit, ActionBlocksInsert, ActionBlocksToggleView, ActionBlocksCreate, ActionBlocksCreateNoSelect, ActionBlocksExplode, ActionBlocksExplodeNoSelect, ActionModifyExplodeText, ActionModifyExplodeTextNoSelect, ActionLibraryInsert, ActionOptionsGeneral, ActionOptionsDrawing, ActionToolRegenerateDimensions, ActionScriptOpenIDE, ActionScriptRun,#ifndef RS_NO_COMPLEX_ENTITIES ActionPARISDebugCreateContainer,#endif#ifdef RS_CAM ActionCamExportAuto, ActionCamReorder,#endif /** Needed to loop through all actions */ ActionLast }; /** * Entity ending. Used for returning which end of an entity is ment. */ enum Ending { EndingStart, /**< Start point. */ EndingEnd, /**< End point. */ EndingNone /**< Neither. */ }; /** * Update mode for non-atomic entities that need to be updated when * they change. e.g. texts, inserts, ... */ enum UpdateMode { NoUpdate, /**< No automatic updates. */ Update, /**< Always update automatically when modified. */ PreviewUpdate /**< Update automatically but only for previews (quick update) */ }; /** * Drawing mode. */ enum DrawingMode { ModeFull, /**< Draw everything always detailed (default) */ ModeAuto, /**< Draw details when reasonable */ ModePreview, /**< Draw only in black/white without styles */ ModeXOR, /**< XOR mode for moving previews */ ModeBW /**< Black/white. Can be used for printing. */ }; /** * Undoable rtti. */ enum UndoableType { UndoableUnknown, /**< Unknown undoable */ UndoableEntity, /**< Entity */ UndoableLayer /**< Layer */ }; /** * Toolbar ID's. */ enum ToolBarId { ToolBarMain, /**< Main (menu). */ ToolBarPoints, /**< Points. */ ToolBarLines, /**< Lines. */ ToolBarArcs, /**< Arcs. */ ToolBarCircles, /**< Circles. */ ToolBarEllipses, /**< Ellipses. */ ToolBarSplines, /**< Splines. */ ToolBarPolylines, /**< Polylines. */ ToolBarText, /**< Text. */ ToolBarDim, /**< Dimensions. */ ToolBarSnap, /**< Snap. */ ToolBarModify, /**< Modify. */ ToolBarSelect, /**< Select. */ ToolBarInfo /**< Information */ }; /** * Units. */ enum Unit { None = 0, /**< No unit (unit from parent) */ Inch = 1, /**< Inch */ Foot = 2, /**< Foot: 12 Inches */ Mile = 3, /**< Mile: 1760 Yards = 1609 m */ Millimeter = 4, /**< Millimeter: 0.001m */ Centimeter = 5, /**< Centimeter: 0.01m */ Meter = 6, /**< Meter */ Kilometer = 7, /**< Kilometer: 1000m */ Microinch = 8, /**< Microinch: 0.000001 */ Mil = 9, /**< Mil = 0.001 Inch*/ Yard = 10, /**< Yard: 3 Feet */ Angstrom = 11, /**< Angstrom: 10^-10m */ Nanometer = 12, /**< Nanometer: 10^-9m */ Micron = 13, /**< Micron: 10^-6m */ Decimeter = 14, /**< Decimeter: 0.1m */ Decameter = 15, /**< Decameter: 10m */ Hectometer = 16, /**< Hectometer: 100m */ Gigameter = 17, /**< Gigameter: 1000000m */ Astro = 18, /**< Astro: 149.6 x 10^9m */ Lightyear = 19, /**< Lightyear: 9460731798 x 10^6m */ Parsec = 20, /**< Parsec: 30857 x 10^12 */ LastUnit = 21 /**< Used to iterate through units */ }; /** * Format for length values. */ enum LinearFormat { /** Scientific (e.g. 2.5E+05) */ Scientific, /** Decimal (e.g. 9.5)*/ Decimal, /** Engineering (e.g. 7' 11.5")*/ Engineering, /** Architectural (e.g. 7'-9 1/8")*/ Architectural, /** Fractional (e.g. 7 9 1/8) */ Fractional }; /** * Angle Units. */ enum AngleUnit { Deg, /**< Degrees */ Rad, /**< Radians */ Gra /**< Gradians */ }; /** * Display formats for angles. */ enum AngleFormat { /** Degrees with decimal point (e.g. 24.5
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -