Choreonoid  1.5
ToolBar.h
Go to the documentation of this file.
1 
5 #ifndef CNOID_BASE_TOOL_BAR_H
6 #define CNOID_BASE_TOOL_BAR_H
7 
8 #include "Buttons.h"
9 #include "Action.h"
10 #include <QLabel>
11 #include <QWidget>
12 #include <QBoxLayout>
13 #include "exportdecl.h"
14 
15 namespace cnoid {
16 
17 class Archive;
18 class ExtensionManager;
19 class ToolBarArea;
20 class MainWindow;
21 
22 class CNOID_EXPORT ToolBar : public QWidget
23 {
24  Q_OBJECT
25 public:
26 
27  ToolBar(const QString& title);
28  virtual ~ToolBar();
29 
30  ToolButton* addButton(const QString& text, const QString& tooltip = QString());
31  ToolButton* addButton(const QIcon& icon, const QString& tooltip = QString());
32  ToolButton* addButton(const char* const* xpm, const QString& tooltip = QString());
33 
34  ToolButton* addToggleButton(const QString& text, const QString& tooltip = QString());
35  ToolButton* addToggleButton(const QIcon& icon, const QString& tooltip = QString());
36  ToolButton* addToggleButton(const char* const* xpm, const QString& tooltip = QString());
37 
38  void requestNewRadioGroup();
39  QButtonGroup* currentRadioGroup();
40 
41  ToolButton* addRadioButton(const QString& text, const QString& tooltip = QString());
42  ToolButton* addRadioButton(const QIcon& icon, const QString& tooltip = QString());
43  ToolButton* addRadioButton(const char* const* xpm, const QString& tooltip = QString());
44 
45  void addAction(QAction* action);
46  void addWidget(QWidget* widget);
47  QLabel* addLabel(const QString& text);
48  QLabel* addImage(const QString& filename);
49  QWidget* addSeparator(int spacing = 0);
50  void addSpacing(int size);
51 
52  void setVisibleByDefault(bool on);
53  bool isVisibleByDefault() const { return isVisibleByDefault_; }
54 
55  void setStretchable(bool on);
56  bool isStretchable() const { return isStretchable_; }
57  virtual int stretchableDefaultWidth() const;
58 
59 
60  ToolBarArea* toolBarArea() { return toolBarArea_; }
61 
63  public:
64  bool operator() (ToolBar* bar1, ToolBar* bar2) {
65  return (bar1->layoutPriority < bar2->layoutPriority);
66  }
67  };
68 
69  virtual bool storeState(Archive& archive);
70  virtual bool restoreState(const Archive& archive);
71 
72 public Q_SLOTS:
73  void setEnabled(bool on);
74  void changeIconSize(const QSize& iconSize);
75 
76 private:
77 
78  QHBoxLayout* hbox;
79  QWidget* handle;
80  QButtonGroup* radioGroup;
81  bool isNewRadioGroupRequested;
82  MainWindow* mainWindow;
83  ToolBarArea* toolBarArea_;
84 
85  bool isVisibleByDefault_;
86  int defaultOrderIndex;
87 
88  // used for layouting tool bars on a ToolBarArea
89  bool isStretchable_;
90  int desiredX;
91  int layoutPriority;
92 
93  void setRadioButton(ToolButton* button);
94 
95  friend class ToolBarAreaImpl;
96 
97  void changeIconSizeSub(QLayout* layout, const QSize& iconSize);
98 };
99 
100 }
101 
102 #endif
Definition: Archive.h:21
Definition: ToolBar.h:62
Definition: ToolBarArea.h:20
bool isVisibleByDefault() const
Definition: ToolBar.h:53
Definition: Buttons.h:73
Definition: ToolBar.h:22
Definition: MainWindow.h:20
Defines the minimum processing for performing pasing file for STL.
Definition: AbstractSceneLoader.h:9
#define CNOID_EXPORT
Definition: Util/exportdecl.h:37
ToolBarArea * toolBarArea()
Definition: ToolBar.h:60
bool isStretchable() const
Definition: ToolBar.h:56