Canorus  0.7
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
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:
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 QList<QToolButton*> buttonList() { 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_ */
QButtonGroup * _buttonGroup
Definition: menutoolbutton.h:56
int _spacing
Definition: menutoolbutton.h:65
int spacing()
Definition: menutoolbutton.h:38
int numIconsPerRow()
Definition: menutoolbutton.h:41
CAMenuToolButton(QString title, int numIconsRow=4, QWidget *parent=0)
Definition: menutoolbutton.cpp:50
CAGroupBoxToolButton(QWidget *w)
Definition: menutoolbutton.h:22
void paintEvent(QPaintEvent *)
Definition: menutoolbutton.cpp:21
void showButtons()
Definition: menutoolbutton.cpp:163
QList< QToolButton * > _buttonList
Definition: menutoolbutton.h:60
void setSpacing(int spacing)
Definition: menutoolbutton.h:43
int margin()
Definition: menutoolbutton.h:40
~CAMenuToolButton()
Definition: menutoolbutton.cpp:94
void onButtonPressed(int)
Definition: menutoolbutton.cpp:148
int _margin
Definition: menutoolbutton.h:66
QGridLayout * _boxLayout
Definition: menutoolbutton.h:58
QGroupBox * _groupBox
Definition: menutoolbutton.h:57
Tool button with a menu at the side and a button box when clicked on.
Definition: menutoolbutton.h:27
int _buttonYPos
Definition: menutoolbutton.h:63
QGridLayout * _menuLayout
Definition: menutoolbutton.h:59
void wheelEvent(QWheelEvent *)
Definition: menutoolbutton.cpp:171
QHash< QString, int > _buttonIds
Definition: menutoolbutton.h:61
void setCurrentId(int id, bool triggerSignal=false)
Definition: menutoolbutton.cpp:197
int _numIconsRow
Definition: menutoolbutton.h:64
void setNumIconsPerRow(int numIconsRow)
Definition: menutoolbutton.h:46
Tool button with a menu at the side.
Definition: toolbutton.h:18
int _layoutMargin
Definition: menutoolbutton.h:67
Definition: menutoolbutton.h:19
void addButton(const QIcon icon, int buttonId, const QString toolTip="")
Definition: menutoolbutton.cpp:104
int layoutMargin()
Definition: menutoolbutton.h:39
int _buttonXPos
Definition: menutoolbutton.h:62
QList< QToolButton * > buttonList()
Definition: menutoolbutton.h:36
void setLayoutMargin(int margin)
Definition: menutoolbutton.h:44
Canorus main window Class CAMainWin represents Canorus main window. The core layout is generated usin...
Definition: plugins_swig.h:6
QAbstractButton * getButton(int buttonId)
Definition: menutoolbutton.h:34
void setMargin(int margin)
Definition: menutoolbutton.h:45