]> Shamusworld >> Repos - architektonas/blob - src/actions/rs_actionlibraryinsert.h
Changed RS_Graphic to Drawing; this is less confusing as a drawing is
[architektonas] / src / actions / rs_actionlibraryinsert.h
1 /****************************************************************************
2 ** $Id: rs_actionlibraryinsert.h 1062 2004-01-16 21:51:20Z andrew $
3 **
4 ** Copyright (C) 2001-2003 RibbonSoft. All rights reserved.
5 **
6 ** This file is part of the qcadlib Library project.
7 **
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.
12 **
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.
16 **
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.
19 **
20 ** See http://www.ribbonsoft.com for further details.
21 **
22 ** Contact info@ribbonsoft.com if any conditions of this licensing are
23 ** not clear to you.
24 **
25 **********************************************************************/
26
27 #ifndef RS_ACTIONLIBRARYINSERT_H
28 #define RS_ACTIONLIBRARYINSERT_H
29
30 #include "rs_previewactioninterface.h"
31
32 #include "rs_creation.h"
33 #include "rs_insert.h"
34
35 /**
36  * This action class can handle user events for inserting library items 
37  * (or any other DXF files) into the current drawing (as block/insert).
38  *
39  * @author Andrew Mustun
40  */
41 class RS_ActionLibraryInsert : public RS_PreviewActionInterface {
42         //Q_OBJECT
43 public:
44     /**
45      * Action States.
46      */
47     enum Status {
48         SetTargetPoint,    /**< Setting the reference point. */
49                 SetAngle,          /**< Setting angle in the command line. */
50                 SetFactor          /**< Setting factor in the command line. */
51                 //SetColumns,        /**< Setting columns in the command line. */
52                 //SetRows,           /**< Setting rows in the command line. */
53                 //SetColumnSpacing,  /**< Setting column spacing in the command line. */
54                 //SetRowSpacing      /**< Setting row spacing in the command line. */
55     };
56
57 public:
58     RS_ActionLibraryInsert(RS_EntityContainer& container,
59                         RS_GraphicView& graphicView);
60     virtual ~RS_ActionLibraryInsert();
61
62         static QAction* createGUIAction(RS2::ActionType /*type*/, QObject* /*parent*/);
63         
64         virtual RS2::ActionType rtti() {
65                 return RS2::ActionLibraryInsert;
66         }
67
68     virtual void init(int status=0);
69
70         void reset();
71
72     virtual void trigger();
73
74     virtual void mouseMoveEvent(QMouseEvent* e);
75     virtual void mouseReleaseEvent(QMouseEvent* e);
76
77     virtual void coordinateEvent(RS_CoordinateEvent* e);
78     virtual void commandEvent(RS_CommandEvent* e);
79         virtual QStringList getAvailableCommands();
80
81         virtual void showOptions();
82         virtual void hideOptions();
83
84     virtual void updateMouseButtonHints();
85     virtual void updateMouseCursor();
86     virtual void updateToolBar();
87
88         void setFile(const QString& file);
89
90         double getAngle() {
91                 return data.angle;
92         }
93
94         void setAngle(double a) {
95                 data.angle = a;
96         }
97
98         double getFactor() {
99                 return data.factor;
100         }
101
102         void setFactor(double f) {
103                 data.factor = f;
104         }
105
106         /*int getColumns() {
107                 return data.cols;
108         }
109
110         void setColumns(int c) {
111                 data.cols = c;
112         }
113         
114         int getRows() {
115                 return data.rows;
116         }
117
118         void setRows(int r) {
119                 data.rows = r;
120         }
121
122         double getColumnSpacing() {
123                 return data.spacing.x;
124         }
125
126         void setColumnSpacing(double cs) {
127                 data.spacing.x = cs;
128         }
129         
130         double getRowSpacing() {
131                 return data.spacing.y;
132         }
133
134         void setRowSpacing(double rs) {
135                 data.spacing.y = rs;
136         }*/
137
138 protected:
139         //RS_Block* block;
140         //RS_InsertData data;
141         Drawing prev;
142         RS_LibraryInsertData data;
143         
144         /** Last status before entering option. */
145         Status lastStatus;
146 };
147
148 #endif