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