diff options
Diffstat (limited to 'src/client/buttonmenu.cc')
-rw-r--r-- | src/client/buttonmenu.cc | 36 |
1 files changed, 13 insertions, 23 deletions
diff --git a/src/client/buttonmenu.cc b/src/client/buttonmenu.cc index ed15223..18139d0 100644 --- a/src/client/buttonmenu.cc +++ b/src/client/buttonmenu.cc @@ -19,6 +19,7 @@ ButtonMenu::ButtonMenu(ui::Widget *parent, const char *label) : ui::Window(paren set_background(false); buttonmenu_container = new ui::Window(this); + buttonmenu_compact = false; hide(); } @@ -44,11 +45,10 @@ ui::Button *ButtonMenu::add_button(char const *text, char const *command) void ButtonMenu::resize() { - // resize container widget - buttonmenu_container->set_geometry(0, 0, ui::UI::elementsize.width() * 1.5f, height()); - + const float padding = ui::UI::elementsize.height(); + // reposition all children within the container - const float x = ui::UI::elementsize.width() * 0.25f; + const float x = padding; float y = ui::UI::elementsize.height() * 0.5f; for (Children::iterator it = buttonmenu_container->children().begin(); it != buttonmenu_container->children().end(); it++) { @@ -60,6 +60,15 @@ void ButtonMenu::resize() y += ui::UI::elementsize.height() + ui::UI::elementmargin; } + // resize container widget + if (!buttonmenu_compact) { + buttonmenu_container->set_geometry(0, 0, ui::UI::elementsize.width() + 2.0f * padding, height()); + } else { + y += ui::UI::elementsize.height() * 0.5f; + buttonmenu_container->set_geometry(0, (height() - y) * 0.5f, ui::UI::elementsize.width() + 2.0f * padding, y); + } + + } void ButtonMenu::clear() @@ -70,23 +79,4 @@ void ButtonMenu::clear() } -bool ButtonMenu::on_keypress(const int key, const unsigned int modifier) -{ - switch (key) { - - case SDLK_ESCAPE: - // close window on ESC - if (visible()) { - this->hide(); - return true; - } - break; - - default: - break; - } - - return Window::on_keypress(key, modifier); -} - } |