Canorus  0.0
menutoolbutton.h
Go to the documentation of this file.
1 
8 #ifndef MENUTOOLBUTTON_H_
9 #define MENUTOOLBUTTON_H_
10 
11 #include "widgets/toolbutton.h"
12 #include <QButtonGroup>
13 #include <QGroupBox>
14 #include <QGridLayout>
15 #include <QHash>
16 
17 class CAMainWin;
18 
20 Q_OBJECT
21 public:
22  CAGroupBoxToolButton(QWidget *w) : QToolButton(w) {}
23 protected:
24  void paintEvent( QPaintEvent* );
25 };
26 
28  Q_OBJECT
29 public:
30  CAMenuToolButton( QString title, int numIconsRow = 4, QWidget * parent = 0 );
32 
33  void addButton( const QIcon icon, int buttonId, const QString toolTip="" );
34  inline QAbstractButton *getButton( int buttonId ) { return _buttonGroup->button( buttonId ); }
35 
36  inline const QList<QToolButton*>& buttonList() const { return _buttonList; }
37 
38  inline int spacing() { return _spacing; }
39  inline int layoutMargin() { return _layoutMargin; }
40  inline int margin() { return _margin;}
41  inline int numIconsPerRow() { return _numIconsRow; }
42 
43  inline void setSpacing(int spacing) { _spacing = spacing; }
44  inline void setLayoutMargin(int margin) { _layoutMargin = margin; }
45  inline void setMargin(int margin) { _margin = margin; }
46  inline void setNumIconsPerRow( int numIconsRow ) { _numIconsRow = numIconsRow; }
47  void setCurrentId(int id, bool triggerSignal=false);
48  void showButtons();
49 
50 public slots:
51  void onButtonPressed( int );
52 
53 private:
54  void wheelEvent(QWheelEvent*);
55 
56  QButtonGroup *_buttonGroup; // Abstract group for the button actions
57  QGroupBox *_groupBox; // Group box containing title and buttons
58  QGridLayout *_boxLayout; // Layout for the group box
59  QGridLayout *_menuLayout; // Layout for the button menu
60  QList<QToolButton*> _buttonList; // List of created buttons in button box
61  QHash<QString, int> _buttonIds; // hash of IDs of buttons
62  int _buttonXPos; // X position of next button
63  int _buttonYPos; // Y position of next button
64  int _numIconsRow; // Number of icons per row
65  int _spacing; // Space between buttons
66  int _margin; // Margin around the buttons
67  int _layoutMargin; // Margin of layout
68 };
69 #endif /* MENUTOOLBUTTON_H_ */
CAMenuToolButton::_layoutMargin
int _layoutMargin
Definition: menutoolbutton.h:67
CAMenuToolButton::_buttonList
QList< QToolButton * > _buttonList
Definition: menutoolbutton.h:60
CAGroupBoxToolButton::CAGroupBoxToolButton
CAGroupBoxToolButton(QWidget *w)
Definition: menutoolbutton.h:22
CAMenuToolButton::_buttonYPos
int _buttonYPos
Definition: menutoolbutton.h:63
CAMenuToolButton
Tool button with a menu at the side and a button box when clicked on.
Definition: menutoolbutton.h:27
CAMenuToolButton::margin
int margin()
Definition: menutoolbutton.h:40
CAMenuToolButton::getButton
QAbstractButton * getButton(int buttonId)
Definition: menutoolbutton.h:34
menutoolbutton.h
CAMenuToolButton::_margin
int _margin
Definition: menutoolbutton.h:66
CAMenuToolButton::_groupBox
QGroupBox * _groupBox
Definition: menutoolbutton.h:57
CAMenuToolButton::setLayoutMargin
void setLayoutMargin(int margin)
Definition: menutoolbutton.h:44
CAMenuToolButton::_buttonIds
QHash< QString, int > _buttonIds
Definition: menutoolbutton.h:61
CAMenuToolButton::setNumIconsPerRow
void setNumIconsPerRow(int numIconsRow)
Definition: menutoolbutton.h:46
CAToolButton::setCurrentId
virtual void setCurrentId(int id)
Definition: toolbutton.h:24
CAMenuToolButton::_menuLayout
QGridLayout * _menuLayout
Definition: menutoolbutton.h:59
CAToolButton::showButtons
virtual void showButtons()
Definition: toolbutton.cpp:43
QToolButton
CAMenuToolButton::setCurrentId
void setCurrentId(int id, bool triggerSignal=false)
Definition: menutoolbutton.cpp:197
CAMenuToolButton::numIconsPerRow
int numIconsPerRow()
Definition: menutoolbutton.h:41
CAMenuToolButton::_numIconsRow
int _numIconsRow
Definition: menutoolbutton.h:64
CAGroupBoxToolButton
Definition: menutoolbutton.h:19
CAGroupBoxToolButton::paintEvent
void paintEvent(QPaintEvent *)
Definition: menutoolbutton.cpp:21
CAMenuToolButton::CAMenuToolButton
CAMenuToolButton(QString title, int numIconsRow=4, QWidget *parent=0)
Definition: menutoolbutton.cpp:50
CAMenuToolButton::showButtons
void showButtons()
Definition: menutoolbutton.cpp:163
CAMenuToolButton::layoutMargin
int layoutMargin()
Definition: menutoolbutton.h:39
CAMenuToolButton::onButtonPressed
void onButtonPressed(int)
Definition: menutoolbutton.cpp:148
mainwin.h
toolbutton.h
CAToolButton
Tool button with a menu at the side.
Definition: toolbutton.h:18
CAMenuToolButton::_buttonGroup
QButtonGroup * _buttonGroup
Definition: menutoolbutton.h:56
CAMenuToolButton::_buttonXPos
int _buttonXPos
Definition: menutoolbutton.h:62
CAToolButton::currentId
int currentId()
Definition: toolbutton.h:23
CAMenuToolButton::buttonList
const QList< QToolButton * > & buttonList() const
Definition: menutoolbutton.h:36
CAMenuToolButton::~CAMenuToolButton
~CAMenuToolButton()
Definition: menutoolbutton.cpp:94
CAMainWin
Canorus main window Class CAMainWin represents Canorus main window. The core layout is generated usin...
Definition: plugins_swig.h:6
CAToolButton::setPopupWidget
void setPopupWidget(QWidget *w)
Definition: toolbutton.h:40
CAMenuToolButton::_spacing
int _spacing
Definition: menutoolbutton.h:65
CAMenuToolButton::setMargin
void setMargin(int margin)
Definition: menutoolbutton.h:45
CAMenuToolButton::spacing
int spacing()
Definition: menutoolbutton.h:38
CAToolButton::hideButtons
virtual void hideButtons()
Definition: toolbutton.cpp:53
CAToolButton::toggled
void toggled(bool checked, int id)
CAMenuToolButton::_boxLayout
QGridLayout * _boxLayout
Definition: menutoolbutton.h:58
CAMenuToolButton::wheelEvent
void wheelEvent(QWheelEvent *)
Definition: menutoolbutton.cpp:171
CAMenuToolButton::setSpacing
void setSpacing(int spacing)
Definition: menutoolbutton.h:43
CAMenuToolButton::addButton
void addButton(const QIcon icon, int buttonId, const QString toolTip="")
Definition: menutoolbutton.cpp:104