3 // Part of the Architektonas Project
4 // Originally part of QCad Community Edition by Andrew Mustun
5 // Extensively rewritten and refactored by James L. Hammons
6 // (C) 2010 Underground Software
8 // JLH = James L. Hammons <jlhamm@acm.org>
11 // --- ---------- -----------------------------------------------------------
12 // JLH 05/10/2010 Created this file. :-)
15 #include "cadtoolbar.h"
17 #include "cadtoolbararcs.h"
18 #include "cadtoolbarcircles.h"
19 #include "cadtoolbardim.h"
20 #include "cadtoolbarellipses.h"
21 #include "cadtoolbarinfo.h"
22 #include "cadtoolbarlines.h"
23 #include "cadtoolbarmain.h"
24 #include "cadtoolbarmodify.h"
25 #include "cadtoolbarpoints.h"
26 #include "cadtoolbarpolylines.h"
27 #include "cadtoolbarselect.h"
28 #include "cadtoolbarsnap.h"
29 #include "cadtoolbarsplines.h"
32 CadToolBar::CadToolBar(QWidget * parent/*= 0*/, Qt::WindowFlags flags/*= 0*/):
33 QWidget(parent, flags), actionHandler(NULL), currentTb(NULL), tbSplines(NULL),
34 tbInfo(NULL),tbMain(NULL), tbDim(NULL), tbLines(NULL), tbPoints(NULL),
35 tbEllipses(NULL), tbArcs(NULL), tbModify(NULL), tbCircles(NULL), tbSnap(NULL),
36 tbSelect(NULL), tbPolylines(NULL)
41 ((QToolBar *)parent)->addWidget(this);
44 CadToolBar::~CadToolBar()
49 * @return Pointer to action handler or NULL.
51 QG_ActionHandler * CadToolBar::getActionHandler()
57 * Called from the sub toolbar
59 void CadToolBar::back()
65 * Called from the application.
67 void CadToolBar::forceNext()
69 if (currentTb != NULL && currentTb == tbSelect)
70 tbSelect->runNextAction();
73 void CadToolBar::mouseReleaseEvent(QMouseEvent * e)
75 if (e->button() == Qt::RightButton)
82 void CadToolBar::contextMenuEvent(QContextMenuEvent * e)
88 * Creates all tool bars and shows the main toolbar.
90 * @param ah Pointer to action handler which will deal with the actions in this tool bar.
92 void CadToolBar::createSubToolBars(QG_ActionHandler * ah)
95 tbMain = new CadToolBarMain(this);
96 tbMain->setCadToolBar(this);
98 tbPoints = new CadToolBarPoints(this);
99 tbPoints->setCadToolBar(this);
102 tbLines = new CadToolBarLines(this);
103 tbLines->setCadToolBar(this);
106 tbArcs = new CadToolBarArcs(this);
107 tbArcs->setCadToolBar(this);
110 tbCircles = new CadToolBarCircles(this);
111 tbCircles->setCadToolBar(this);
114 tbEllipses = new CadToolBarEllipses(this);
115 tbEllipses->setCadToolBar(this);
118 tbSplines = new CadToolBarSplines(this);
119 tbSplines->setCadToolBar(this);
123 tbPolylines = new CadToolBarPolylines(this);
124 tbPolylines->setCadToolBar(this);
128 tbDim = new CadToolBarDim(this);
129 tbDim->setCadToolBar(this);
132 tbInfo = new CadToolBarInfo(this);
133 tbInfo->setCadToolBar(this);
136 tbModify = new CadToolBarModify(this);
137 tbModify->setCadToolBar(this);
140 tbSnap = new CadToolBarSnap(this);
141 tbSnap->setCadToolBar(this);
144 tbSelect = new CadToolBarSelect(this);
145 tbSelect->setCadToolBar(this);
151 void CadToolBar::showToolBar(int id)
153 QWidget * newTb = NULL;
158 case RS2::ToolBarMain:
161 case RS2::ToolBarPoints:
164 case RS2::ToolBarLines:
167 case RS2::ToolBarArcs:
170 case RS2::ToolBarEllipses:
173 case RS2::ToolBarSplines:
177 case RS2::ToolBarPolylines:
181 case RS2::ToolBarCircles:
184 case RS2::ToolBarInfo:
187 case RS2::ToolBarModify:
190 case RS2::ToolBarDim:
193 case RS2::ToolBarSnap:
196 case RS2::ToolBarSelect:
201 if (currentTb == newTb)
204 if (currentTb != NULL)
209 if (currentTb != NULL)
213 void CadToolBar::showToolBarMain()
215 showToolBar(RS2::ToolBarMain);
218 void CadToolBar::showToolBarPoints()
220 showToolBar(RS2::ToolBarPoints);
223 void CadToolBar::showToolBarLines()
225 showToolBar(RS2::ToolBarLines);
228 void CadToolBar::showToolBarArcs()
230 showToolBar(RS2::ToolBarArcs);
233 void CadToolBar::showToolBarEllipses()
235 showToolBar(RS2::ToolBarEllipses);
238 void CadToolBar::showToolBarSplines()
240 showToolBar(RS2::ToolBarSplines);
243 void CadToolBar::showToolBarPolylines()
246 showToolBar(RS2::ToolBarPolylines);
250 void CadToolBar::showToolBarCircles()
252 showToolBar(RS2::ToolBarCircles);
255 void CadToolBar::showToolBarInfo()
257 showToolBar(RS2::ToolBarInfo);
260 void CadToolBar::showToolBarModify()
262 showToolBar(RS2::ToolBarModify);
265 void CadToolBar::showToolBarSnap()
267 showToolBar(RS2::ToolBarSnap);
270 void CadToolBar::showToolBarDim()
272 showToolBar(RS2::ToolBarDim);
275 void CadToolBar::showToolBarSelect()
277 showToolBarSelect(NULL, -1);
280 void CadToolBar::showToolBarSelect(RS_ActionInterface * selectAction, int nextAction)
282 tbSelect->setNextAction(nextAction);
283 tbSelect->setSelectAction(selectAction);
284 showToolBar(RS2::ToolBarSelect);