aboutsummaryrefslogtreecommitdiff
path: root/src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/RotateToolButton.h
diff options
context:
space:
mode:
authorKen Moore <ken@ixsystems.com>2017-01-04 16:44:55 -0500
committerKen Moore <ken@ixsystems.com>2017-01-04 16:44:55 -0500
commit25b2e77aa2395ba9143683a5ce1a27b99ee7a211 (patch)
treebbd732bb72689b9b46dfc619d3d0e1748f7e435b /src-qt5/core/lumina-desktop-unified/src-DE/panel-plugins/RotateToolButton.h
parentTag version 1.2.1 on the master branch in preparation for new changes from th... (diff)
downloadlumina-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.h58
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
bgstack15