diff options
Diffstat (limited to 'src-qt5/src-glwidgets/glw-widget.h')
-rw-r--r-- | src-qt5/src-glwidgets/glw-widget.h | 50 |
1 files changed, 50 insertions, 0 deletions
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 <QWidget> +#include <QPaintEvent> +#include <QStylePainter> +#include <QResizeEvent> +#include <QStylePainter> + +#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 |