From b69210ddbf1e989e0093d40c8a5c1a6d9bb16a50 Mon Sep 17 00:00:00 2001 From: Thorbjørn Lindeijer Date: Wed, 23 Oct 2024 12:43:08 +0200 Subject: Reuse gcn::ScrollArea::draw Code appeared duplicated just because we don't draw the background, but this could be done by overriding drawBackground instead. --- src/gui/widgets/scrollarea.cpp | 33 ++++++--------------------------- src/gui/widgets/scrollarea.h | 1 + 2 files changed, 7 insertions(+), 27 deletions(-) diff --git a/src/gui/widgets/scrollarea.cpp b/src/gui/widgets/scrollarea.cpp index 44065580..e99e19e5 100644 --- a/src/gui/widgets/scrollarea.cpp +++ b/src/gui/widgets/scrollarea.cpp @@ -213,34 +213,8 @@ void ScrollArea::updateAlpha() void ScrollArea::draw(gcn::Graphics *graphics) { - if (mVBarVisible) - { - drawUpButton(graphics); - drawDownButton(graphics); - drawVBar(graphics); - drawVMarker(graphics); - } - - if (mHBarVisible) - { - drawLeftButton(graphics); - drawRightButton(graphics); - drawHBar(graphics); - drawHMarker(graphics); - } - - if (mHBarVisible && mVBarVisible) - { - graphics->setColor(getBaseColor()); - graphics->fillRectangle(gcn::Rectangle(getWidth() - mScrollbarWidth, - getHeight() - mScrollbarWidth, - mScrollbarWidth, - mScrollbarWidth)); - } - updateAlpha(); - - drawChildren(graphics); + gcn::ScrollArea::draw(graphics); } void ScrollArea::drawFrame(gcn::Graphics *graphics) @@ -291,6 +265,11 @@ void ScrollArea::drawButton(gcn::Graphics *graphics, BUTTON_DIR dir) drawImage(buttons[dir][state], dim.x, dim.y); } +void ScrollArea::drawBackground(gcn::Graphics *graphics) +{ + // background is drawn as part of the frame instead +} + void ScrollArea::drawUpButton(gcn::Graphics *graphics) { drawButton(graphics, UP); diff --git a/src/gui/widgets/scrollarea.h b/src/gui/widgets/scrollarea.h index faec0e8f..ac45e4c8 100644 --- a/src/gui/widgets/scrollarea.h +++ b/src/gui/widgets/scrollarea.h @@ -121,6 +121,7 @@ class ScrollArea : public gcn::ScrollArea, public gcn::WidgetListener void init(); void drawButton(gcn::Graphics *graphics, BUTTON_DIR dir); + void drawBackground(gcn::Graphics *graphics) override; void drawUpButton(gcn::Graphics *graphics) override; void drawDownButton(gcn::Graphics *graphics) override; void drawLeftButton(gcn::Graphics *graphics) override; -- cgit v1.2.3-70-g09d2