From bc66137eb26c2668b9b75b2dda1816f064a93796 Mon Sep 17 00:00:00 2001 From: falkTX Date: Mon, 8 Mar 2021 23:01:28 +0000 Subject: [PATCH] Cleanup Signed-off-by: falkTX --- dgl/Widget.hpp | 12 +++++++++--- dgl/src/ImageWidgets.cpp | 4 ++-- dgl/src/Widget.cpp | 14 ++++++++++---- dgl/src/WidgetPrivateData.hpp | 3 +++ 4 files changed, 24 insertions(+), 9 deletions(-) diff --git a/dgl/Widget.hpp b/dgl/Widget.hpp index dc4cea56..e863dd97 100644 --- a/dgl/Widget.hpp +++ b/dgl/Widget.hpp @@ -32,8 +32,7 @@ END_NAMESPACE_DISTRHO START_NAMESPACE_DGL -class Application; -class ImageSlider; +// class Application; class NanoWidget; class Window; class StandaloneWindow; @@ -422,6 +421,12 @@ protected: */ virtual bool onSpecial(const SpecialEvent&); + /** + A function called when an UTF-8 character is received. + @return True to stop event propagation, false otherwise. + */ + virtual bool onCharacterInput(const CharacterInputEvent&); + /** A function called when a mouse button is pressed or released. @return True to stop event propagation, false otherwise. @@ -450,6 +455,8 @@ protected: */ virtual void onPositionChanged(const PositionChangedEvent&); + void setNeedsFullViewport(); + private: struct PrivateData; PrivateData* const pData; @@ -457,7 +464,6 @@ private: /** @internal */ explicit Widget(Widget* groupWidget, bool addToSubWidgets); - friend class ImageSlider; friend class NanoWidget; friend class Window; friend class StandaloneWindow; diff --git a/dgl/src/ImageWidgets.cpp b/dgl/src/ImageWidgets.cpp index 48b85dc2..b7c2f0db 100644 --- a/dgl/src/ImageWidgets.cpp +++ b/dgl/src/ImageWidgets.cpp @@ -675,7 +675,7 @@ ImageSlider::ImageSlider(Window& parent, const Image& image) noexcept fEndPos(), fSliderArea() { - pData->needsFullViewport = true; + setNeedsFullViewport(); } ImageSlider::ImageSlider(Widget* widget, const Image& image) noexcept @@ -698,7 +698,7 @@ ImageSlider::ImageSlider(Widget* widget, const Image& image) noexcept fEndPos(), fSliderArea() { - pData->needsFullViewport = true; + setNeedsFullViewport(); } float ImageSlider::getValue() const noexcept diff --git a/dgl/src/Widget.cpp b/dgl/src/Widget.cpp index ec6db8c5..b23058e8 100644 --- a/dgl/src/Widget.cpp +++ b/dgl/src/Widget.cpp @@ -24,24 +24,20 @@ START_NAMESPACE_DGL Widget::Widget(Window& parent) : pData(new PrivateData(this, parent, nullptr, false)) { - parent._addWidget(this); } Widget::Widget(Widget* groupWidget) : pData(new PrivateData(this, groupWidget->getParentWindow(), groupWidget, true)) { - pData->parent._addWidget(this); } Widget::Widget(Widget* groupWidget, bool addToSubWidgets) : pData(new PrivateData(this, groupWidget->getParentWindow(), groupWidget, addToSubWidgets)) { - pData->parent._addWidget(this); } Widget::~Widget() { - pData->parent._removeWidget(this); delete pData; } @@ -228,6 +224,11 @@ bool Widget::onSpecial(const SpecialEvent&) return false; } +bool Widget::onCharacterInput(const CharacterInputEvent&) +{ + return false; +} + bool Widget::onMouse(const MouseEvent&) { return false; @@ -251,6 +252,11 @@ void Widget::onPositionChanged(const PositionChangedEvent&) { } +void Widget::setNeedsFullViewport() +{ + pData->needsFullViewport = true; +} + // ----------------------------------------------------------------------- END_NAMESPACE_DGL diff --git a/dgl/src/WidgetPrivateData.hpp b/dgl/src/WidgetPrivateData.hpp index f48a33bc..c968054d 100644 --- a/dgl/src/WidgetPrivateData.hpp +++ b/dgl/src/WidgetPrivateData.hpp @@ -56,10 +56,13 @@ struct Widget::PrivateData { skipDisplay = true; groupWidget->pData->subWidgets.push_back(self); } + + parent._addWidget(self); } ~PrivateData() { + parent._removeWidget(self); subWidgets.clear(); }