Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
qtoolbarextension.cpp
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
5#include <qevent.h>
6#include <qstyle.h>
7#include <qstylepainter.h>
8#include <qstyleoption.h>
9
11
12using namespace Qt::StringLiterals;
13
15 : QToolButton(parent)
16 , m_orientation(Qt::Horizontal)
17{
18 setObjectName("qt_toolbar_ext_button"_L1);
19 setAutoRaise(true);
20 setOrientation(m_orientation);
22 setCheckable(true);
23}
24
26{
28 opt.initFrom(this);
29 if (o == Qt::Horizontal) {
31 } else {
33 }
34 m_orientation = o;
35}
36
38{
39 QStylePainter p(this);
42 // We do not need to draw both extension arrows
44 p.drawComplexControl(QStyle::CC_ToolButton, opt);
45}
46
47
49{
51 opt.initFrom(this);
52 const int ext = style()->pixelMetric(QStyle::PM_ToolBarExtensionExtent, &opt, this);
53 return QSize(ext, ext);
54}
55
57{
58 switch (event->type()) {
60 setOrientation(m_orientation);
61 break;
62 default:
63 break;
64 }
66}
67
69
70#include "moc_qtoolbarextension_p.cpp"
void setIcon(const QIcon &icon)
\inmodule QtCore
Definition qcoreevent.h:45
@ LayoutDirectionChange
Definition qcoreevent.h:124
Q_WEAK_OVERLOAD void setObjectName(const QString &name)
Sets the object's name to name.
Definition qobject.h:127
The QPaintEvent class contains event parameters for paint events.
Definition qevent.h:486
\inmodule QtCore
Definition qsize.h:25
ButtonFeatures features
\variable QStyleOptionDockWidget::title
The QStyleOption class stores the parameters used by QStyle functions.
void initFrom(const QWidget *w)
The QStylePainter class is a convenience class for drawing QStyle elements inside a widget.
@ SP_ToolBarVerticalExtensionButton
Definition qstyle.h:745
@ SP_ToolBarHorizontalExtensionButton
Definition qstyle.h:744
@ PM_ToolBarExtensionExtent
Definition qstyle.h:488
@ CC_ToolButton
Definition qstyle.h:336
virtual int pixelMetric(PixelMetric metric, const QStyleOption *option=nullptr, const QWidget *widget=nullptr) const =0
Returns the value of the given pixel metric.
QSize sizeHint() const override
QToolBarExtension(QWidget *parent)
bool event(QEvent *e) override
\reimp
void setOrientation(Qt::Orientation o)
void paintEvent(QPaintEvent *) override
\reimp
The QToolButton class provides a quick-access button to commands or options, usually used inside a QT...
Definition qtoolbutton.h:20
void setAutoRaise(bool enable)
bool event(QEvent *e) override
\reimp
virtual void initStyleOption(QStyleOptionToolButton *option) const
Initialize option with the values from this QToolButton.
The QWidget class is the base class of all user interface objects.
Definition qwidget.h:99
void setSizePolicy(QSizePolicy)
QStyle * style() const
Definition qwidget.cpp:2600
QStyleOptionButton opt
Combined button and popup list for selecting options.
Definition qcompare.h:63
Orientation
Definition qnamespace.h:98
@ Horizontal
Definition qnamespace.h:99
struct _cl_event * event
GLfloat GLfloat p
[1]