diff options
author | Ken Moore <ken@ixsystems.com> | 2016-12-23 11:48:00 -0500 |
---|---|---|
committer | Ken Moore <ken@ixsystems.com> | 2016-12-23 11:48:00 -0500 |
commit | e8e522b66d503549f0e71e6be64b1769f6a36971 (patch) | |
tree | 51276b833764a5f073d08e8dc66b63d7e13d4e32 /src-qt5/core/lumina-desktop | |
parent | Clean up some vertical-panel issues with the clock plugin and the system tray. (diff) | |
download | lumina-e8e522b66d503549f0e71e6be64b1769f6a36971.tar.gz lumina-e8e522b66d503549f0e71e6be64b1769f6a36971.tar.bz2 lumina-e8e522b66d503549f0e71e6be64b1769f6a36971.zip |
Oops - forgot to add the new RotateToolButton file (not used yet - still tinkering with it)
Diffstat (limited to 'src-qt5/core/lumina-desktop')
-rw-r--r-- | src-qt5/core/lumina-desktop/panel-plugins/RotateToolButton.h | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/src-qt5/core/lumina-desktop/panel-plugins/RotateToolButton.h b/src-qt5/core/lumina-desktop/panel-plugins/RotateToolButton.h new file mode 100644 index 00000000..1c8085f6 --- /dev/null +++ b/src-qt5/core/lumina-desktop/panel-plugins/RotateToolButton.h @@ -0,0 +1,58 @@ +//=========================================== +// Lumina Desktop source code +// Copyright (c) 2016, Ken Moore +// Available under the 3-clause BSD license +// See the LICENSE file for full details +//=========================================== +// This is a simple subclass of a QToolButton so it can +// provice text rotated vertically as needed +//=========================================== +#ifndef _LUMINA_DESKTOP_ROTATE_TOOLBUTTON_H +#define _LUMINA_DESKTOP_ROTATE_TOOLBUTTON_H + +#include <QStylePainter> +#include <QStyleOptionToolButton> +#include <QToolButton> +#include <QTransform> + +class RotateToolButton : public QToolButton{ + Q_OBJECT + +private: + int rotate_degrees; + void paintEvent(QPaintEvent*){ + /* NOTE: This is what a standard QToolButton performs (peeked at Qt source code for this tidbit) + QStylePainter p(this); + QStyleOptionToolButton opt; + initStyleOption(&opt); + p.drawComplexControl(QStyle::CC_ToolButton, opt); + */ + QStylePainter p(this); + QStyleOptionToolButton opt; + initStyleOption(&opt); + //Apply the rotation matrix to the painter before starting the paint + QTransform trans = QTransform( p.transform() ).rotate(rotate_degrees); + p.setTransform(trans, false); //merging already taken care of + //Now do the normal painting procedure + p.drawComplexControl(QStyle::CC_ToolButton, opt); + } + +public: + RotateToolButton(QWidget *parent = Q_NULLPTR) : QToolButton(parent){ + rotate_degrees = 0; //no rotation initially + } + + void setRotation(int degrees){ + rotate_degrees = degrees; + this->update(); //trigger a paint event + } + + /*virtual void setText(QString text){ + this->setText(text); + if(rotate_degrees !=0){ + this->setSizeHint( this->sizeHint() + } + }*/ +}; + +#endif |