diff options
author | Ken Moore <ken@ixsystems.com> | 2017-01-04 16:44:55 -0500 |
---|---|---|
committer | Ken Moore <ken@ixsystems.com> | 2017-01-04 16:44:55 -0500 |
commit | 25b2e77aa2395ba9143683a5ce1a27b99ee7a211 (patch) | |
tree | bbd732bb72689b9b46dfc619d3d0e1748f7e435b /src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/RotateToolButton.h | |
parent | Tag version 1.2.1 on the master branch in preparation for new changes from th... (diff) | |
download | lumina-25b2e77aa2395ba9143683a5ce1a27b99ee7a211.tar.gz lumina-25b2e77aa2395ba9143683a5ce1a27b99ee7a211.tar.bz2 lumina-25b2e77aa2395ba9143683a5ce1a27b99ee7a211.zip |
Create a new "lumina-desktop-unified" core subproject (DO NOT USE)
This is just a staging area for the merging of the desktop, window manager, etc.. into a single unified application. It is highly fragmented right now and will not build *AT ALL* for a while.
Diffstat (limited to 'src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/RotateToolButton.h')
-rw-r--r-- | src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/RotateToolButton.h | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/RotateToolButton.h b/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/RotateToolButton.h new file mode 100644 index 00000000..1c8085f6 --- /dev/null +++ b/src-qt5/core/lumina-desktop-unified/src-DE/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 |