Krita Source Code Documentation
Loading...
Searching...
No Matches
KoDockWidgetTitleBarButton Class Reference

A custom title bar button for dock widgets. More...

#include <KoDockWidgetTitleBarButton.h>

+ Inheritance diagram for KoDockWidgetTitleBarButton:

Public Member Functions

 KoDockWidgetTitleBarButton (QWidget *parent=0)
 
QSize minimumSizeHint () const override
 reimplemented from QWidget
 
 Private ()
 
QSize sizeHint () const override
 reimplemented from QWidget
 
 ~KoDockWidgetTitleBarButton () override
 

Public Attributes

int iconSize
 
QSize styleSize
 

Protected Member Functions

void enterEvent (QEnterEvent *e) override
 
void leaveEvent (QEvent *event) override
 
void paintEvent (QPaintEvent *event) override
 

Private Attributes

Private *const d
 
- Private Attributes inherited from Private
KisCanvas2canvas
 
int displayedFrame
 
int intendedFrame
 

Additional Inherited Members

- Private Member Functions inherited from Private
 Private (KisCanvas2 *c)
 

Detailed Description

A custom title bar button for dock widgets.

Used in KoDockWidgetTitleBar but can be also used for similar purposes inside other parents.

Definition at line 19 of file KoDockWidgetTitleBarButton.cpp.

Constructor & Destructor Documentation

◆ KoDockWidgetTitleBarButton()

KoDockWidgetTitleBarButton::KoDockWidgetTitleBarButton ( QWidget * parent = 0)
explicit

Definition at line 27 of file KoDockWidgetTitleBarButton.cpp.

28 : QAbstractButton(parent), d(new Private())
29{
30 setFocusPolicy(Qt::NoFocus);
31}

◆ ~KoDockWidgetTitleBarButton()

KoDockWidgetTitleBarButton::~KoDockWidgetTitleBarButton ( )
override

Definition at line 33 of file KoDockWidgetTitleBarButton.cpp.

34{
35 delete d;
36}

References d.

Member Function Documentation

◆ enterEvent()

void KoDockWidgetTitleBarButton::enterEvent ( QEnterEvent * e)
overrideprotected

Definition at line 65 of file KoDockWidgetTitleBarButton.cpp.

67{
68 if (isEnabled())
69 update();
70 QAbstractButton::enterEvent(event);
71}
bool update(QSpinBox *spinBox)

◆ leaveEvent()

void KoDockWidgetTitleBarButton::leaveEvent ( QEvent * event)
overrideprotected

Definition at line 73 of file KoDockWidgetTitleBarButton.cpp.

74{
75 if (isEnabled())
76 update();
77 QAbstractButton::leaveEvent(event);
78}

◆ minimumSizeHint()

QSize KoDockWidgetTitleBarButton::minimumSizeHint ( ) const
override

reimplemented from QWidget

Definition at line 56 of file KoDockWidgetTitleBarButton.cpp.

57{
58 return sizeHint();
59}
QSize sizeHint() const override
reimplemented from QWidget

References sizeHint().

◆ paintEvent()

void KoDockWidgetTitleBarButton::paintEvent ( QPaintEvent * event)
overrideprotected

Definition at line 80 of file KoDockWidgetTitleBarButton.cpp.

81{
82 QPainter p(this);
83
84 QStyleOptionToolButton opt;
85 opt.initFrom(this);
86 opt.state |= QStyle::State_AutoRaise;
87
88 if (isEnabled() && underMouse() && !isChecked() && !isDown())
89 opt.state |= QStyle::State_Raised;
90 if (isChecked())
91 opt.state |= QStyle::State_On;
92 if (isDown())
93 opt.state |= QStyle::State_Sunken;
94 style()->drawPrimitive(QStyle::PE_PanelButtonTool, &opt, &p, this);
95
96 opt.icon = icon();
97 opt.features = QStyleOptionToolButton::None;
98 opt.arrowType = Qt::NoArrow;
99 int size = style()->pixelMetric(QStyle::PM_SmallIconSize, 0, this);
100 opt.iconSize = QSize(size, size);
101 style()->drawComplexControl(QStyle::CC_ToolButton, &opt, &p, this);
102}
const Params2D p
int size(const Forest< T > &forest)
Definition KisForest.h:1232

References p.

◆ Private()

KoDockWidgetTitleBarButton::Private ( )
inline

◆ sizeHint()

QSize KoDockWidgetTitleBarButton::sizeHint ( ) const
override

reimplemented from QWidget

Definition at line 38 of file KoDockWidgetTitleBarButton.cpp.

39{
40 ensurePolished();
41
42 const int margin = style()->pixelMetric(QStyle::PM_DockWidgetTitleBarButtonMargin, 0, this);
43 if (icon().isNull()) {
44 return QSize(18, 18);
45 }
46
47 int iconSize = style()->pixelMetric(QStyle::PM_SmallIconSize, 0, this);
48 if (iconSize != d->iconSize) {
49 const_cast<KoDockWidgetTitleBarButton*>(this)->d->iconSize = iconSize;
50 const QPixmap pm = icon().pixmap(iconSize);
51 const_cast<KoDockWidgetTitleBarButton*>(this)->d->styleSize = QSize(pm.width() + margin, pm.height() + margin);
52 }
53 return d->styleSize;
54}
A custom title bar button for dock widgets.

References d, and iconSize.

Member Data Documentation

◆ d

Private* const KoDockWidgetTitleBarButton::d
private

Definition at line 43 of file KoDockWidgetTitleBarButton.h.

◆ iconSize

int KoDockWidgetTitleBarButton::iconSize

Definition at line 24 of file KoDockWidgetTitleBarButton.cpp.

◆ styleSize

QSize KoDockWidgetTitleBarButton::styleSize

Definition at line 23 of file KoDockWidgetTitleBarButton.cpp.


The documentation for this class was generated from the following files: