1 /****************************************************************************
2 ** $Id: rs_actiondimlinear.h 1062 2004-01-16 21:51:20Z andrew $
4 ** Copyright (C) 2001-2003 RibbonSoft. All rights reserved.
6 ** This file is part of the qcadlib Library project.
8 ** This file may be distributed and/or modified under the terms of the
9 ** GNU General Public License version 2 as published by the Free Software
10 ** Foundation and appearing in the file LICENSE.GPL included in the
11 ** packaging of this file.
13 ** Licensees holding valid qcadlib Professional Edition licenses may use
14 ** this file in accordance with the qcadlib Commercial License
15 ** Agreement provided with the Software.
17 ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
18 ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
20 ** See http://www.ribbonsoft.com for further details.
22 ** Contact info@ribbonsoft.com if any conditions of this licensing are
25 **********************************************************************/
27 #ifndef RS_ACTIONDIMLINEAR_H
28 #define RS_ACTIONDIMLINEAR_H
30 #include "rs_actiondimension.h"
31 #include "rs_dimlinear.h"
34 * This action class can handle user events to draw
37 * @author Andrew Mustun
39 class RS_ActionDimLinear : public RS_ActionDimension {
43 * Varitions of this action.
55 SetExtPoint1, /**< Setting the 1st ext point. */
56 SetExtPoint2, /**< Setting the 2nd ext point. */
57 SetDefPoint, /**< Setting the common def point. */
58 SetText, /**< Setting the text label in the command line. */
59 SetAngle /**< Setting the angle in the command line. */
63 RS_ActionDimLinear(RS_EntityContainer& container,
64 RS_GraphicView& graphicView,
65 double angle=0.0, bool fixedAngle=false);
66 ~RS_ActionDimLinear();
68 static QAction* createGUIAction(RS2::ActionType type, QObject* /*parent*/);
70 virtual RS2::ActionType rtti() {
71 return RS2::ActionDimLinear;
76 virtual void trigger();
77 void preparePreview();
79 virtual void mouseMoveEvent(QMouseEvent* e);
80 virtual void mouseReleaseEvent(QMouseEvent* e);
82 virtual void coordinateEvent(RS_CoordinateEvent* e);
83 virtual void commandEvent(RS_CommandEvent* e);
84 virtual QStringList getAvailableCommands();
86 virtual void hideOptions();
87 virtual void showOptions();
89 virtual void updateMouseButtonHints();
95 void setAngle(double a) {
99 bool hasFixedAngle() {
105 * Aligned dimension data.
107 RS_DimLinearData edata;
109 * Is the angle fixed?
113 /** Last status before entering text or angle. */