/* ui/menu.cc This file is part of the Osirion project and is distributed under the terms of the GNU General Public License version 2 */ #include "filesystem/filesystem.h" #include "ui/label.h" #include "ui/button.h" #include "ui/menu.h" #include "ui/ui.h" namespace ui { Menu::Menu(Window *parent, const char *label) : Window(parent) { set_label(label); set_border(false); set_background(false); menu_background = new Bitmap(this); menu_container = new Container(this); hide(); } Menu::~Menu() { // menu_container and menu_background are deleted by Widget::~Widget() } void Menu::set_background_texture(const char *texture) { menu_background->set_texture(texture); } void Menu::set_background_texture(const std::string &texture) { menu_background->set_texture(texture); } Label *Menu::add_label(char const * text) { Label *label = new Label(menu_container, text); label->set_alignment(AlignCenter); label->set_border(false); label->set_font(ui::root()->font_large()); return label; } Button *Menu::add_button(char const *text, char const *command) { return new Button(menu_container, text, command); } void Menu::resize() { set_size(parent()->size()); menu_background->set_size(size()); menu_container->set_location(ui::UI::elementsize.height(), (height() - menu_container->height()) / 2.0f); } }