Fix back button repaint/focus quirks.

This commit is contained in:
Jared Boone 2016-02-07 10:33:15 -08:00
parent 7cb3bbc9f8
commit 8f8a9f2b63
2 changed files with 8 additions and 5 deletions

View File

@ -59,8 +59,9 @@ SystemStatusView::SystemStatusView() {
}; };
} }
void SystemStatusView::set_back_visible(bool new_value) { void SystemStatusView::set_back_enabled(bool new_value) {
button_back.hidden(!new_value); button_back.set_text(new_value ? back_text_enabled : back_text_disabled);
button_back.set_focusable(new_value);
} }
void SystemStatusView::set_title(const std::string new_value) { void SystemStatusView::set_title(const std::string new_value) {
@ -193,7 +194,7 @@ SystemView::SystemView(
{ parent_rect.width(), static_cast<ui::Dim>(parent_rect.height() - status_view_height) } { parent_rect.width(), static_cast<ui::Dim>(parent_rect.height() - status_view_height) }
}); });
navigation_view.on_view_changed = [this](const View& new_view) { navigation_view.on_view_changed = [this](const View& new_view) {
this->status_view.set_back_visible(!this->navigation_view.is_top()); this->status_view.set_back_enabled(!this->navigation_view.is_top());
this->status_view.set_title(new_view.title()); this->status_view.set_title(new_view.title());
}; };

View File

@ -66,15 +66,17 @@ public:
SystemStatusView(); SystemStatusView();
void set_back_visible(bool new_value); void set_back_enabled(bool new_value);
void set_title(const std::string new_value); void set_title(const std::string new_value);
private: private:
static constexpr auto default_title = "PortaPack"; static constexpr auto default_title = "PortaPack";
static constexpr auto back_text_enabled = " < ";
static constexpr auto back_text_disabled = " * ";
Button button_back { Button button_back {
{ 0 * 8, 0 * 16, 3 * 8, 16 }, { 0 * 8, 0 * 16, 3 * 8, 16 },
" < ", back_text_disabled,
}; };
Text title { Text title {