Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-08-25 09:20:04

0001 // Copyright (C) 2016 The Qt Company Ltd.
0002 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
0003 // Qt-Security score:significant reason:default
0004 
0005 #ifndef QDYNAMICTOOLBAR_H
0006 #define QDYNAMICTOOLBAR_H
0007 
0008 #include <QtWidgets/qtwidgetsglobal.h>
0009 #include <QtGui/qaction.h>
0010 #include <QtWidgets/qwidget.h>
0011 
0012 QT_REQUIRE_CONFIG(toolbar);
0013 
0014 QT_BEGIN_NAMESPACE
0015 
0016 class QToolBarPrivate;
0017 
0018 class QAction;
0019 class QIcon;
0020 class QMainWindow;
0021 class QStyleOptionToolBar;
0022 
0023 class Q_WIDGETS_EXPORT QToolBar : public QWidget
0024 {
0025     Q_OBJECT
0026 
0027     Q_PROPERTY(bool movable READ isMovable WRITE setMovable NOTIFY movableChanged)
0028     Q_PROPERTY(Qt::ToolBarAreas allowedAreas READ allowedAreas WRITE setAllowedAreas
0029                NOTIFY allowedAreasChanged)
0030     Q_PROPERTY(Qt::Orientation orientation READ orientation WRITE setOrientation
0031                NOTIFY orientationChanged)
0032     Q_PROPERTY(QSize iconSize READ iconSize WRITE setIconSize NOTIFY iconSizeChanged)
0033     Q_PROPERTY(Qt::ToolButtonStyle toolButtonStyle READ toolButtonStyle WRITE setToolButtonStyle
0034                NOTIFY toolButtonStyleChanged)
0035     Q_PROPERTY(bool floating READ isFloating)
0036     Q_PROPERTY(bool floatable READ isFloatable WRITE setFloatable)
0037 
0038 public:
0039     explicit QToolBar(const QString &title, QWidget *parent = nullptr);
0040     explicit QToolBar(QWidget *parent = nullptr);
0041     ~QToolBar();
0042 
0043     void setMovable(bool movable);
0044     bool isMovable() const;
0045 
0046     void setAllowedAreas(Qt::ToolBarAreas areas);
0047     Qt::ToolBarAreas allowedAreas() const;
0048 
0049     inline bool isAreaAllowed(Qt::ToolBarArea area) const
0050     { return (allowedAreas() & area) == area; }
0051 
0052     void setOrientation(Qt::Orientation orientation);
0053     Qt::Orientation orientation() const;
0054 
0055     void clear();
0056 
0057     using QWidget::addAction;
0058 #if QT_WIDGETS_REMOVED_SINCE(6, 3)
0059     QAction *addAction(const QString &text);
0060     QAction *addAction(const QIcon &icon, const QString &text);
0061     QAction *addAction(const QString &text, const QObject *receiver, const char* member);
0062     QAction *addAction(const QIcon &icon, const QString &text,
0063                        const QObject *receiver, const char* member);
0064 #endif
0065 
0066     QAction *addSeparator();
0067     QAction *insertSeparator(QAction *before);
0068 
0069     QAction *addWidget(QWidget *widget);
0070     QAction *insertWidget(QAction *before, QWidget *widget);
0071 
0072     QRect actionGeometry(QAction *action) const;
0073     QAction *actionAt(const QPoint &p) const;
0074     inline QAction *actionAt(int x, int y) const;
0075 
0076     QAction *toggleViewAction() const;
0077 
0078     QSize iconSize() const;
0079     Qt::ToolButtonStyle toolButtonStyle() const;
0080 
0081     QWidget *widgetForAction(QAction *action) const;
0082 
0083     bool isFloatable() const;
0084     void setFloatable(bool floatable);
0085     bool isFloating() const;
0086 
0087 public Q_SLOTS:
0088     void setIconSize(const QSize &iconSize);
0089     void setToolButtonStyle(Qt::ToolButtonStyle toolButtonStyle);
0090 
0091 Q_SIGNALS:
0092     void actionTriggered(QAction *action);
0093     void movableChanged(bool movable);
0094     void allowedAreasChanged(Qt::ToolBarAreas allowedAreas);
0095     void orientationChanged(Qt::Orientation orientation);
0096     void iconSizeChanged(const QSize &iconSize);
0097     void toolButtonStyleChanged(Qt::ToolButtonStyle toolButtonStyle);
0098     void topLevelChanged(bool topLevel);
0099     void visibilityChanged(bool visible);
0100 
0101 protected:
0102     void actionEvent(QActionEvent *event) override;
0103     void changeEvent(QEvent *event) override;
0104     void paintEvent(QPaintEvent *event) override;
0105     bool event(QEvent *event) override;
0106     virtual void initStyleOption(QStyleOptionToolBar *option) const;
0107 
0108 
0109 private:
0110     Q_DECLARE_PRIVATE(QToolBar)
0111     Q_DISABLE_COPY(QToolBar)
0112     Q_PRIVATE_SLOT(d_func(), void _q_toggleView(bool))
0113     Q_PRIVATE_SLOT(d_func(), void _q_updateIconSize(const QSize &))
0114     Q_PRIVATE_SLOT(d_func(), void _q_updateToolButtonStyle(Qt::ToolButtonStyle))
0115 
0116     friend class QMainWindow;
0117     friend class QMainWindowLayout;
0118     friend class QToolBarLayout;
0119     friend class QToolBarAreaLayout;
0120 };
0121 
0122 inline QAction *QToolBar::actionAt(int ax, int ay) const
0123 { return actionAt(QPoint(ax, ay)); }
0124 
0125 QT_END_NAMESPACE
0126 
0127 #endif // QDYNAMICTOOLBAR_H