From 417eeaa34b8374de18358cc64511d7298bc33756 Mon Sep 17 00:00:00 2001 From: Stijn Buys Date: Fri, 17 Sep 2010 20:36:41 +0000 Subject: addid ui::ListItem --- src/ui/listitem.cc | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 src/ui/listitem.cc (limited to 'src/ui/listitem.cc') diff --git a/src/ui/listitem.cc b/src/ui/listitem.cc new file mode 100644 index 0000000..3ff108f --- /dev/null +++ b/src/ui/listitem.cc @@ -0,0 +1,52 @@ +/* + ui/listitem.cc + This file is part of the Osirion project and is distributed under + the terms of the GNU General Public License version 2 +*/ + +#include "audio/audio.h" +#include "core/application.h" +#include "ui/listitem.h" +#include "ui/paint.h" + +namespace ui { + +ListItem::ListItem(ListView *parent, const char * text) : Label(parent, text) { + set_label("listitem"); + + listitem_info = 0; +} + +ListItem::~ListItem() { +} + +void ListItem::draw_border() +{ + // FIXME glow if selected, not on_mouseover + + if (has_mouse_focus()) { + math::Color color(palette()->foreground()); + float t = core::application()->time(); + t = t - floorf(t); + if (t > 0.5) + t = 1 - t; + color.a = 0.5f + t; + paint::color(color); + paint::border(global_location(), size()); + } +} + +bool ListItem::on_keypress(const int key, const unsigned int modifier) +{ + if (key == 512 + SDL_BUTTON_LEFT) { + audio::play("ui/select"); + + emit(EventListItemClicked); + + return true; + } + + return false; +} + +} // namespace ui \ No newline at end of file -- cgit v1.2.3