From 180361cda94f612d3ebfd2c460c24b457fae64d3 Mon Sep 17 00:00:00 2001 From: Bent Bisballe Nyeng Date: Thu, 10 Dec 2015 18:32:14 +0100 Subject: Change position types and add size change notifier. --- plugingui/window.cc | 44 +++++++++++--------------------------------- 1 file changed, 11 insertions(+), 33 deletions(-) (limited to 'plugingui/window.cc') diff --git a/plugingui/window.cc b/plugingui/window.cc index 30e90ee..9263128 100644 --- a/plugingui/window.cc +++ b/plugingui/window.cc @@ -26,8 +26,8 @@ */ #include "window.h" -#include "painter.h" #include +#include "painter.h" #ifndef PUGL #ifdef X11 @@ -101,26 +101,6 @@ void Window::move(size_t x, size_t y) Widget::move(x, y); } -size_t Window::x() -{ - return _x; -} - -size_t Window::y() -{ - return _y; -} - -size_t Window::width() -{ - return _width; -} - -size_t Window::height() -{ - return _height; -} - size_t Window::windowX() { return 0; @@ -192,6 +172,7 @@ Widget* Window::mouseFocus() void Window::setMouseFocus(Widget* widget) { _mouseFocus = widget; + } void Window::redraw() @@ -214,6 +195,9 @@ void Window::resized(size_t width, size_t height) pixbuf.realloc(width, height); repaintEvent(nullptr); + + // Notify Widget + sizeChangeNotifier(width, height); } void Window::updateBuffer() @@ -224,6 +208,12 @@ void Window::updateBuffer() size_t updateWidth = pixelBuffer->width; size_t updateHeight = pixelBuffer->height; + // Skip buffer if not inside window. + if((wpixbuf.width < pixelBuffer->x) || (wpixbuf.height < pixelBuffer->y)) + { + continue; + } + if(updateWidth > (wpixbuf.width - pixelBuffer->x)) { updateWidth = (wpixbuf.width - pixelBuffer->x); @@ -276,16 +266,4 @@ void Window::endPaint() } } -void Window::repaintEvent(RepaintEvent* repaintEvent) -{ - if(!visible()) - { - return; - } - - Painter p(*this); - p.drawImageStretched(0,0, back, width(), height()); - p.drawImage(width() - logo.width(), height() - logo.height(), logo); -} - } // GUI:: -- cgit v1.2.3