Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qtoolbar.h
Go to the documentation of this file.
1// Copyright (C) 2016 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3// Qt-Security score:significant reason:default
4
5#ifndef QDYNAMICTOOLBAR_H
6#define QDYNAMICTOOLBAR_H
7
8#include <QtWidgets/qtwidgetsglobal.h>
9#include <QtGui/qaction.h>
10#include <QtWidgets/qwidget.h>
11
13
14QT_BEGIN_NAMESPACE
15
16class QToolBarPrivate;
17
18class QAction;
19class QIcon;
20class QMainWindow;
21class QStyleOptionToolBar;
22
23class Q_WIDGETS_EXPORT QToolBar : public QWidget
24{
25 Q_OBJECT
26
27 Q_PROPERTY(bool movable READ isMovable WRITE setMovable NOTIFY movableChanged)
28 Q_PROPERTY(Qt::ToolBarAreas allowedAreas READ allowedAreas WRITE setAllowedAreas
29 NOTIFY allowedAreasChanged)
30 Q_PROPERTY(Qt::Orientation orientation READ orientation WRITE setOrientation
31 NOTIFY orientationChanged)
32 Q_PROPERTY(QSize iconSize READ iconSize WRITE setIconSize NOTIFY iconSizeChanged)
33 Q_PROPERTY(Qt::ToolButtonStyle toolButtonStyle READ toolButtonStyle WRITE setToolButtonStyle
34 NOTIFY toolButtonStyleChanged)
35 Q_PROPERTY(bool floating READ isFloating)
36 Q_PROPERTY(bool floatable READ isFloatable WRITE setFloatable)
37
38public:
39 explicit QToolBar(const QString &title, QWidget *parent = nullptr);
40 explicit QToolBar(QWidget *parent = nullptr);
41 ~QToolBar();
42
43 void setMovable(bool movable);
44 bool isMovable() const;
45
46 void setAllowedAreas(Qt::ToolBarAreas areas);
47 Qt::ToolBarAreas allowedAreas() const;
48
49 inline bool isAreaAllowed(Qt::ToolBarArea area) const
50 { return (allowedAreas() & area) == area; }
51
52 void setOrientation(Qt::Orientation orientation);
53 Qt::Orientation orientation() const;
54
55 void clear();
56
57 using QWidget::addAction;
58#if QT_WIDGETS_REMOVED_SINCE(6, 3)
59 QAction *addAction(const QString &text);
60 QAction *addAction(const QIcon &icon, const QString &text);
61 QAction *addAction(const QString &text, const QObject *receiver, const char* member);
62 QAction *addAction(const QIcon &icon, const QString &text,
63 const QObject *receiver, const char* member);
64#endif
65
66 QAction *addSeparator();
67 QAction *insertSeparator(QAction *before);
68
69 QAction *addWidget(QWidget *widget);
70 QAction *insertWidget(QAction *before, QWidget *widget);
71
72 QRect actionGeometry(QAction *action) const;
73 QAction *actionAt(const QPoint &p) const;
74 inline QAction *actionAt(int x, int y) const;
75
76 QAction *toggleViewAction() const;
77
78 QSize iconSize() const;
79 Qt::ToolButtonStyle toolButtonStyle() const;
80
81 QWidget *widgetForAction(QAction *action) const;
82
83 bool isFloatable() const;
84 void setFloatable(bool floatable);
85 bool isFloating() const;
86
87public Q_SLOTS:
88 void setIconSize(const QSize &iconSize);
89 void setToolButtonStyle(Qt::ToolButtonStyle toolButtonStyle);
90
91Q_SIGNALS:
92 void actionTriggered(QAction *action);
93 void movableChanged(bool movable);
94 void allowedAreasChanged(Qt::ToolBarAreas allowedAreas);
95 void orientationChanged(Qt::Orientation orientation);
96 void iconSizeChanged(const QSize &iconSize);
97 void toolButtonStyleChanged(Qt::ToolButtonStyle toolButtonStyle);
98 void topLevelChanged(bool topLevel);
99 void visibilityChanged(bool visible);
100
101protected:
102 void actionEvent(QActionEvent *event) override;
103 void changeEvent(QEvent *event) override;
104 void paintEvent(QPaintEvent *event) override;
105 bool event(QEvent *event) override;
106 virtual void initStyleOption(QStyleOptionToolBar *option) const;
107
108
109private:
110 Q_DECLARE_PRIVATE(QToolBar)
111 Q_DISABLE_COPY(QToolBar)
112 Q_PRIVATE_SLOT(d_func(), void _q_toggleView(bool))
113 Q_PRIVATE_SLOT(d_func(), void _q_updateIconSize(const QSize &))
114 Q_PRIVATE_SLOT(d_func(), void _q_updateToolButtonStyle(Qt::ToolButtonStyle))
115
116 friend class QMainWindow;
117 friend class QMainWindowLayout;
118 friend class QToolBarLayout;
119 friend class QToolBarAreaLayout;
120};
121
122inline QAction *QToolBar::actionAt(int ax, int ay) const
123{ return actionAt(QPoint(ax, ay)); }
124
125QT_END_NAMESPACE
126
127#endif // QDYNAMICTOOLBAR_H
bool explicitToolButtonStyle
Definition qtoolbar_p.h:53
void plug(const QRect &r)
Definition qtoolbar.cpp:373
void updateWindowFlags(bool floating, bool unplug=false)
Definition qtoolbar.cpp:98
void startDrag(bool moving=false)
Definition qtoolbar.cpp:162
bool mousePressEvent(QMouseEvent *e)
Definition qtoolbar.cpp:228
void unplug(const QRect &r)
Definition qtoolbar.cpp:364
QToolBarLayout * layout
Definition qtoolbar_p.h:63
void _q_toggleView(bool b)
Definition qtoolbar.cpp:68
void setWindowState(bool floating, bool unplug=false, const QRect &rect=QRect())
Definition qtoolbar.cpp:117
bool mouseMoveEvent(QMouseEvent *e)
Definition qtoolbar.cpp:286
bool explicitIconSize
Definition qtoolbar_p.h:52
void _q_updateToolButtonStyle(Qt::ToolButtonStyle style)
Definition qtoolbar.cpp:89
bool mouseReleaseEvent(QMouseEvent *e)
Definition qtoolbar.cpp:262
DragState * state
Definition qtoolbar_p.h:71
void initDrag(const QPoint &pos)
Definition qtoolbar.cpp:138
void _q_updateIconSize(const QSize &sz)
Definition qtoolbar.cpp:79
QAction * toggleViewAction
Definition qtoolbar_p.h:61
The QToolBar class provides a movable panel that contains a set of controls.
Definition qtoolbar.h:24
QMainWindowLayout * qt_mainwindow_layout(const QMainWindow *window)
static bool waitForPopup(QToolBar *tb, QWidget *popup)
Definition qtoolbar.cpp:958
#define POPUP_TIMER_INTERVAL
Definition qtoolbar.cpp:34
QT_REQUIRE_CONFIG(toolbar)