From bf7e372df336263ccdc9d0ab22554fb1ff6f629a Mon Sep 17 00:00:00 2001 From: Ken Moore Date: Tue, 26 Sep 2017 13:42:19 -0400 Subject: Add a bunch of new files specifically for providing a new OpenGL-backed basis for doing visuals within Qt/Lumina. --- src-qt5/src-glwidgets/glw-widget.h | 50 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 src-qt5/src-glwidgets/glw-widget.h (limited to 'src-qt5/src-glwidgets/glw-widget.h') diff --git a/src-qt5/src-glwidgets/glw-widget.h b/src-qt5/src-glwidgets/glw-widget.h new file mode 100644 index 00000000..1d6caa77 --- /dev/null +++ b/src-qt5/src-glwidgets/glw-widget.h @@ -0,0 +1,50 @@ +//=========================================== +// Lumina-desktop source code +// Copyright (c) 2017, Ken Moore +// Available under the 3-clause BSD license +// See the LICENSE file for full details +//=========================================== +#ifndef _LUMINA_OPENGL_WIDGETS_WIDGET_H +#define _LUMINA_OPENGL_WIDGETS_WIDGET_H + +#include +#include +#include +#include +#include + +#include "glw-base.h" + +class GLW_Widget : public QWidget{ + Q_OBJECT +private: + GLW_Base *glw_base; + +public: + GLW_Widget(QWidget *parent = Q_NULLPTR, Qt::WindowFlags f = Qt::WindowFlags()); + ~GLW_Widget(); + + QRect widgetRect(); //converts to the coordinate scheme of the base widget + bool mouseOverWidget(); + + void setGLBase(GLW_Base *base); + + virtual void paintYourself(QStylePainter *painter, QPaintEvent *ev); + void paintChildren(QStylePainter *painter, QPaintEvent *ev); + +private slots: + +public slots: + +protected: + void enterEvent(QEvent*){ this->update(); } + void leaveEvent(QEvent*){ this->update(); } + void resizeEvent(QResizeEvent *ev); + void paintEvent(QPaintEvent *ev); + +signals: + void repaintArea(QRect); +}; + +Q_DECLARE_INTERFACE(GLW_Widget, "GLW_Widget"); +#endif -- cgit