From eec019ec3e94d5aee7f7d423a3a43f63237b6e87 Mon Sep 17 00:00:00 2001 From: Bent Bisballe Nyeng Date: Fri, 20 Nov 2015 20:37:00 +0100 Subject: Refactored Widget. --- plugingui/widget.h | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) (limited to 'plugingui/widget.h') diff --git a/plugingui/widget.h b/plugingui/widget.h index 806ee5c..9827641 100644 --- a/plugingui/widget.h +++ b/plugingui/widget.h @@ -38,8 +38,9 @@ namespace GUI { class Window; class Widget : public Listener, LayoutItem { + friend class Painter; public: - Widget(Widget *parent); + Widget(Widget* parent); virtual ~Widget(); virtual void show(); @@ -59,15 +60,14 @@ public: virtual bool isFocusable() { return false; } virtual bool catchMouse() { return false; } - void addChild(Widget *widget); - void removeChild(Widget *widget); + void addChild(Widget* widget); + void removeChild(Widget* widget); virtual void repaintEvent(RepaintEvent* repaintEvent) {} virtual void mouseMoveEvent(MouseMoveEvent* mouseMoveEvent) {} virtual void buttonEvent(ButtonEvent* buttonEvent) {} virtual void scrollEvent(ScrollEvent* scrollEvent) {} virtual void keyEvent(KeyEvent* keyEvent) {} - virtual void mouseLeaveEvent() {} virtual void mouseEnterEvent() {} @@ -75,25 +75,29 @@ public: virtual Window* window(); - void repaint_r(RepaintEvent* repaintEvent); - - PixelBufferAlpha pixbuf; std::vector getPixelBuffers(); bool hasKeyboardFocus(); - Widget *parent; - bool visible(); void setVisible(bool visible); protected: + void repaintChildren(RepaintEvent* repaintEvent); + + PixelBufferAlpha pixbuf{0,0}; + std::vector children; - Window *_window; - size_t _x, _y, _width, _height; -private: - bool _visible; + Widget* parent = nullptr; + Window* _window = nullptr; + + size_t _x{0}; + size_t _y{0}; + size_t _width{0}; + size_t _height{0}; + + bool _visible = true; }; } // GUI:: -- cgit v1.2.3