3 // Originally part of QCad Community Edition by Andrew Mustun
4 // Extensively rewritten and refactored by James L. Hammons
5 // (C) 2010 Underground Software
7 // JLH = James L. Hammons <jlhamm@acm.org>
10 // --- ---------- -----------------------------------------------------------
11 // JLH 05/10/2010 Created this file. :-)
14 #include "cadtoolbar.h"
16 #include "cadtoolbararcs.h"
17 #include "cadtoolbarcircles.h"
18 #include "cadtoolbardim.h"
19 #include "cadtoolbarellipses.h"
20 #include "cadtoolbarinfo.h"
21 #include "cadtoolbarlines.h"
22 #include "cadtoolbarmain.h"
23 #include "cadtoolbarmodify.h"
24 #include "cadtoolbarpoints.h"
25 #include "cadtoolbarpolylines.h"
26 #include "cadtoolbarselect.h"
27 #include "cadtoolbarsnap.h"
28 #include "cadtoolbarsplines.h"
31 CadToolBar::CadToolBar(QWidget * parent/*= 0*/, Qt::WindowFlags flags/*= 0*/):
32 QWidget(parent, flags), actionHandler(NULL), currentTb(NULL), tbSplines(NULL),
33 tbInfo(NULL),tbMain(NULL), tbDim(NULL), tbLines(NULL), tbPoints(NULL),
34 tbEllipses(NULL), tbArcs(NULL), tbModify(NULL), tbCircles(NULL), tbSnap(NULL),
35 tbSelect(NULL), tbPolylines(NULL)
40 CadToolBar::~CadToolBar()
45 * @return Pointer to action handler or NULL.
47 QG_ActionHandler * CadToolBar::getActionHandler()
53 * Called from the sub toolbar
55 void CadToolBar::back()
61 * Called from the application.
63 void CadToolBar::forceNext()
65 if (currentTb != NULL && currentTb == tbSelect)
66 tbSelect->runNextAction();
69 void CadToolBar::mouseReleaseEvent(QMouseEvent * e)
71 if (e->button() == Qt::RightButton)
78 void CadToolBar::contextMenuEvent(QContextMenuEvent * e)
84 * Creates all tool bars and shows the main toolbar.
86 * @param ah Pointer to action handler which will deal with the actions in this tool bar.
88 void CadToolBar::createSubToolBars(QG_ActionHandler * ah)
91 tbMain = new CadToolBarMain(this);
92 tbMain->setCadToolBar(this);
94 tbPoints = new CadToolBarPoints(this);
95 tbPoints->setCadToolBar(this);
98 tbLines = new CadToolBarLines(this);
99 tbLines->setCadToolBar(this);
102 tbArcs = new CadToolBarArcs(this);
103 tbArcs->setCadToolBar(this);
106 tbCircles = new CadToolBarCircles(this);
107 tbCircles->setCadToolBar(this);
110 tbEllipses = new CadToolBarEllipses(this);
111 tbEllipses->setCadToolBar(this);
114 tbSplines = new CadToolBarSplines(this);
115 tbSplines->setCadToolBar(this);
119 tbPolylines = new CadToolBarPolylines(this);
120 tbPolylines->setCadToolBar(this);
124 tbDim = new CadToolBarDim(this);
125 tbDim->setCadToolBar(this);
128 tbInfo = new CadToolBarInfo(this);
129 tbInfo->setCadToolBar(this);
132 tbModify = new CadToolBarModify(this);
133 tbModify->setCadToolBar(this);
136 tbSnap = new CadToolBarSnap(this);
137 tbSnap->setCadToolBar(this);
140 tbSelect = new CadToolBarSelect(this);
141 tbSelect->setCadToolBar(this);
147 void CadToolBar::showToolBar(int id)
149 QWidget * newTb = NULL;
154 case RS2::ToolBarMain:
157 case RS2::ToolBarPoints:
160 case RS2::ToolBarLines:
163 case RS2::ToolBarArcs:
166 case RS2::ToolBarEllipses:
169 case RS2::ToolBarSplines:
173 case RS2::ToolBarPolylines:
177 case RS2::ToolBarCircles:
180 case RS2::ToolBarInfo:
183 case RS2::ToolBarModify:
186 case RS2::ToolBarDim:
189 case RS2::ToolBarSnap:
192 case RS2::ToolBarSelect:
197 if (currentTb == newTb)
200 if (currentTb != NULL)
205 if (currentTb != NULL)
209 void CadToolBar::showToolBarMain()
211 showToolBar(RS2::ToolBarMain);
214 void CadToolBar::showToolBarPoints()
216 showToolBar(RS2::ToolBarPoints);
219 void CadToolBar::showToolBarLines()
221 showToolBar(RS2::ToolBarLines);
224 void CadToolBar::showToolBarArcs()
226 showToolBar(RS2::ToolBarArcs);
229 void CadToolBar::showToolBarEllipses()
231 showToolBar(RS2::ToolBarEllipses);
234 void CadToolBar::showToolBarSplines()
236 showToolBar(RS2::ToolBarSplines);
239 void CadToolBar::showToolBarPolylines()
242 showToolBar(RS2::ToolBarPolylines);
246 void CadToolBar::showToolBarCircles()
248 showToolBar(RS2::ToolBarCircles);
251 void CadToolBar::showToolBarInfo()
253 showToolBar(RS2::ToolBarInfo);
256 void CadToolBar::showToolBarModify()
258 showToolBar(RS2::ToolBarModify);
261 void CadToolBar::showToolBarSnap()
263 showToolBar(RS2::ToolBarSnap);
266 void CadToolBar::showToolBarDim()
268 showToolBar(RS2::ToolBarDim);
271 void CadToolBar::showToolBarSelect()
273 showToolBarSelect(NULL, -1);
276 void CadToolBar::showToolBarSelect(RS_ActionInterface * selectAction, int nextAction)
278 tbSelect->setNextAction(nextAction);
279 tbSelect->setSelectAction(selectAction);
280 showToolBar(RS2::ToolBarSelect);