diff options
Diffstat (limited to 'src/ui/menuview.cc')
-rw-r--r-- | src/ui/menuview.cc | 94 |
1 files changed, 0 insertions, 94 deletions
diff --git a/src/ui/menuview.cc b/src/ui/menuview.cc deleted file mode 100644 index 43757e1..0000000 --- a/src/ui/menuview.cc +++ /dev/null @@ -1,94 +0,0 @@ -/* - ui/menuview.cc - This file is part of the Osirion project and is distributed under - the terms of the GNU General Public License version 2 -*/ - -#include "ui/menuview.h" -#include "ui/ui.h" - -namespace ui -{ - -MenuView::MenuView(Window *parent, const char * label) : Window(parent) -{ - set_border(false); - set_background(false); - set_label(label); - - menu_container = new Container(this); - menu_label = new Label(this); - - hide(); -} - -MenuView::~MenuView() -{ -} - -void MenuView::resize() -{ - set_size(parent()->size()); - menu_label->set_location(UI::elementsize.width() * 0.25, UI::elementsize.width() * 0.25); - menu_label->set_size(UI::elementsize.width() * 1.5f, UI::elementsize.height()); - - menu_container->set_location(UI::elementsize.width() * 0.25, (height() - menu_container->height()) / 2.0f); -} - -void MenuView::generate(core::Entity *entity, const char *menulabel) -{ - if (!menulabel) - return; - - //con_debug << "generating menu " << entity->label() << " " << menulabel << std::endl; - - remove_children(); - menu_container = new Container(this); - - menu_label = new Label(this, entity->name().c_str()); - menu_label->set_background(true); - menu_label->set_alignment(AlignCenter); - menu_label->set_font(ui::root()->font_large()); - - core::MenuDescription *menudescr = 0; - for (core::Entity::Menus::iterator it = entity->menus().begin(); it != entity->menus().end(); it++) { - if ((*it)->label().compare(menulabel) == 0) { - menudescr = (*it); - } - } - - if (!menudescr) { - menu_container->event_resize(); - resize(); - return; - } - - if (menudescr->text().size()) { - Label *label = new Label(menu_container); - label->set_text(menudescr->text()); - label->set_alignment(AlignCenter); - label->set_border(false); - label->set_font(ui::root()->font_large()); - } - - for (core::MenuDescription::Buttons::iterator it = menudescr->buttons().begin(); it != menudescr->buttons().end(); it++) { - core::ButtonDescription *buttondescr = (*it); - Button *button = new Button(menu_container, buttondescr->text().c_str(), buttondescr->command().c_str()); - switch (buttondescr->alignment()) { - case core::ButtonDescription::Center: - button->set_alignment(AlignCenter); - break; - case core::ButtonDescription::Left: - button->set_alignment(AlignLeft | AlignVCenter); - break; - case core::ButtonDescription::Right: - button->set_alignment(AlignRight | AlignVCenter); - break; - } - } - - menu_container->event_resize(); - resize(); -} - -} |