diff options
author | André Nusser <andre.nusser@googlemail.com> | 2017-04-16 13:42:02 +0200 |
---|---|---|
committer | André Nusser <andre.nusser@googlemail.com> | 2017-04-16 13:42:02 +0200 |
commit | e3f5b7c84f95b2a16d5921a0e0bc17d6cf63e0d6 (patch) | |
tree | b6e4d7c252cef8458a653c8ae66bb9976b1dc72b | |
parent | 4317e7371e0acd39fe2ef76fc20a902f5cabdd42 (diff) |
Fix drawing bug of TabButton.
-rw-r--r-- | plugingui/tabbutton.cc | 18 | ||||
-rw-r--r-- | plugingui/tabbutton.h | 2 |
2 files changed, 8 insertions, 12 deletions
diff --git a/plugingui/tabbutton.cc b/plugingui/tabbutton.cc index 1fc4619..27588da 100644 --- a/plugingui/tabbutton.cc +++ b/plugingui/tabbutton.cc @@ -65,6 +65,8 @@ std::size_t TabButton::getMinimalHeight() const void TabButton::setActive(bool active) { + this->active = active; + if (active) { draw_state = State::Down; } @@ -91,25 +93,19 @@ void TabButton::repaintEvent(RepaintEvent* e) return; } - switch(draw_state) - { - case State::Up: + if (draw_state == State::Up && !active) { tab_passive.setSize(w - padLeft, h - padTop); p.drawImage(padLeft, padTop, tab_passive); - break; - - case State::Down: + } + else { tab_active.setSize(w - padLeft, h - padTop); p.drawImage(padLeft, padTop, tab_active); - break; } p.setColour(Colour(0.1)); // FIXME: fix all the magic values here - auto x = (width() / 2) - (3 * text.length()) + - (draw_state == State::Up ? 0 : 1) + (padLeft / 2); - auto y = (height() / 2) + 5 + 1 + (draw_state == State::Up ? 0 : 1) + - (padTop / 2); + auto x = (width() / 2) - (3 * text.length()) + (padLeft / 2); + auto y = (height() / 2) + 5 + 1 + (padTop / 2); p.drawText(x, y + 4, font, text, true); } diff --git a/plugingui/tabbutton.h b/plugingui/tabbutton.h index 2f0dc10..a248335 100644 --- a/plugingui/tabbutton.h +++ b/plugingui/tabbutton.h @@ -57,7 +57,7 @@ private: void clickHandler(); Widget* tab_widget; - bool active; + bool active{false}; TexturedBox tab_active{getImageCache(), ":tab.png", 0, 0, // atlas offset (x, y) |