1 /****************************************************************************
2 **
3 ** This file is part of the LibreCAD project, a 2D CAD program
4 **
5 ** Copyright (C) 2010 R. van Twisk (librecad@rvt.dds.nl)
6 ** Copyright (C) 2001-2003 RibbonSoft. All rights reserved.
7 **
8 **
9 ** This file may be distributed and/or modified under the terms of the
10 ** GNU General Public License version 2 as published by the Free Software
11 ** Foundation and appearing in the file gpl-2.0.txt included in the
12 ** packaging of this file.
13 **
14 ** This program is distributed in the hope that it will be useful,
15 ** but WITHOUT ANY WARRANTY; without even the implied warranty of
16 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17 ** GNU General Public License for more details.
18 **
19 ** You should have received a copy of the GNU General Public License
20 ** along with this program; if not, write to the Free Software
21 ** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
22 **
23 ** This copyright notice MUST APPEAR in all copies of the script!
24 **
25 **********************************************************************/
26 #ifndef QG_SNAPTOOLBAR_H
27 #define QG_SNAPTOOLBAR_H
28 
29 class QG_CadToolBar;
30 class QG_ActionHandler;
31 class LC_ActionGroupManager;
32 
33 #include <QToolBar>
34 
35 #include "rs_snapper.h"
36 
37 #include "ui_qg_snaptoolbar.h"
38 
39 class QG_SnapToolBar : public QToolBar
40 {
41     Q_OBJECT
42 
43 public:
44     QG_SnapToolBar(QWidget* parent
45                  , QG_ActionHandler* ah
46                  , LC_ActionGroupManager* agm);
47 	~QG_SnapToolBar() = default;
48 
49 	RS_SnapMode getSnaps ( void ) const;
50     void saveSnapMode(void );
51     virtual void setActionHandler(QG_ActionHandler* ah);
52 	bool lockedRelativeZero() const;
53     void setLockedRelativeZero(bool on);
54 
55 public slots:
56 	void setSnaps(RS_SnapMode const & s);
57 
58 private slots:
59     void actionTriggered(void);
60     void slotRestrictOrthogonal(bool checked);
61     void slotRestrictNothing(bool checked);
62 
63 private:
64 
65 	QG_ActionHandler* actionHandler;
66 
67     QAction *snapFree;
68     QAction *snapGrid;
69     QAction *snapEnd;
70     QAction *snapOnEntity;
71     QAction *snapCenter;
72     QAction *snapMiddle;
73     QAction *snapDistance;
74     QAction *snapIntersection;
75 
76 
77     QAction *restrictHorizontal;
78     QAction *restrictVertical;
79     QAction *restrictOrthogonal;
80     QAction *restrictNothing;
81     QAction *bRelZero;
82     QAction *bLockRelZero;
83 	RS_SnapMode snapMode;
84 
85 };
86 
87 #endif // QG_SNAPTOOLBAR_H
88