aboutsummaryrefslogtreecommitdiff
path: root/src-qt5/src-glwidgets/glw-base.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src-qt5/src-glwidgets/glw-base.cpp')
-rw-r--r--src-qt5/src-glwidgets/glw-base.cpp120
1 files changed, 0 insertions, 120 deletions
diff --git a/src-qt5/src-glwidgets/glw-base.cpp b/src-qt5/src-glwidgets/glw-base.cpp
deleted file mode 100644
index 4065f70f..00000000
--- a/src-qt5/src-glwidgets/glw-base.cpp
+++ /dev/null
@@ -1,120 +0,0 @@
-//===========================================
-// Lumina-desktop source code
-// Copyright (c) 2017, Ken Moore
-// Available under the 3-clause BSD license
-// See the LICENSE file for full details
-//===========================================
-#include "glw-base.h"
-#include "glw-widget.h"
-#include <QPaintEngine>
-#include <QDebug>
-#include <QOpenGLContext>
-#include <QOpenGLFunctions>
-#include <QOpenGLPaintDevice>
-
-GLW_Base::GLW_Base(QWidget *parent, Qt::WindowFlags f) : QOpenGLWidget(parent,f){
- bg_color = QColor(Qt::black);
- mouse_over_child = 0;
- qDebug() << "Canvas supports threaded OpenGL:" << this->context()->supportsThreadedOpenGL();
- qDebug() << " - globally:" << QOpenGLContext::globalShareContext()->supportsThreadedOpenGL();
-}
-
-GLW_Base::~GLW_Base(){
-
-}
-
-QWidget * GLW_Base::mouseOverWidget(){
- return mouse_over_child;
-}
-
-// --- PUBLIC SLOTS ---
-void GLW_Base::setBackgroundColor(QColor color){
- bg_color = color;
- this->update(); //repaint the entire widget (just in case you can see through the image)
-
-}
-
-void GLW_Base::setBackground(QRect geom, QImage img){
- QPainter P(&bg_img);
- P.drawImage(geom, img);
- this->update(geom);
-}
-
-void GLW_Base::repaintArea(QRect rect){
- this->update(rect);
-}
-
-void GLW_Base::setMouseOverWidget(QWidget *child){
- mouse_over_child = child;
-}
-
-// --- PROTECTED ---
-void GLW_Base::mouseMoveEvent(QMouseEvent *ev){
- mouse_over_child = 0; //reset this flag - mouse is over the base right now
- QWidget::mouseMoveEvent(ev);
-}
-
-void GLW_Base::resizeEvent(QResizeEvent *ev){
- QOpenGLWidget::resizeEvent(ev);
- if(!bg_img.isNull()){
- bg_img = bg_img.scaled(ev->size(), Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
- }
- emit BaseResized();
-}
-
-/*void GLW_Base::paintEvent(QPaintEvent *ev){
- QOpenGLWidget::paintEvent(ev);
-}*/
-
-void GLW_Base::paintGL(){
-
- //Setup the OpenGL stuff
- QOpenGLFunctions *f = this->context()->functions();
- f->glViewport(0, 0, width(), height());
- f->glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
-
- GLfloat vertices[] = {
- 0.0f, 0.707f,
- -0.5f, -0.5f,
- 0.5f, -0.5f
- };
-
- f->glVertexAttribPointer(0, 2, GL_FLOAT, GL_FALSE, 0, vertices);
- f->glEnableVertexAttribArray(0);
- f->glDrawArrays(GL_TRIANGLES, 0, 3);
- f->glDisableVertexAttribArray(0);
- glDrawPixels(bg_img.width(), bg_img.height(), GL_RGBA, GL_UNSIGNED_BYTE, bg_img.bits());
-
- QRect rect = QRect(QPoint(0,0), this->size());
- //Prepare the image to be painted
- QImage img(this->size(), QImage::Format_RGBA8888);
- QPainter painter;
- painter.begin(&img);
- painter.fillRect(rect, bg_color);
- painter.end();
-
- //Now do any QPainter drawing
- /*QOpenGLPaintDevice device(rect.size());
- QStylePainter painter;
- painter.begin(&device, this);
- //qDebug() << "Paint Engine type:" << painter.paintEngine()->type();
- painter.setClipRegion(rect);
- //Fill in the background color first
- painter.fillRect(rect, bg_color);
- //Now paint any background image over that
- painter.drawImage(rect, bg_img, rect, Qt::AutoColor | Qt::PreferDither | Qt::NoOpaqueDetection);
- //Now find any children widgets and paint them if they are in that area
- QObjectList child = this->children(); //Note: This is returned in stacking order (lowest -> highest)
- for(int i=0; i<child.length(); i++){
- if( !child[i]->isWidgetType() ){ continue; } //not a widget
- GLW_Widget *glww = qobject_cast<GLW_Widget*>(child[i]);
- if(glww!=0){
- if(!rect.intersected(glww->widgetRect()).isNull()){
- glww->paintYourself(&painter, &rect);
- glww->paintChildren(&painter,&rect);
- }
- }
- }
- painter.end();
- update();*/
-}
bgstack15