Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStijn Buys <ingar@osirion.org>2010-09-17 20:36:41 +0000
committerStijn Buys <ingar@osirion.org>2010-09-17 20:36:41 +0000
commit417eeaa34b8374de18358cc64511d7298bc33756 (patch)
tree1ae37b97f317d8d02890dc769cf595ac62401be8 /src/ui/listitem.cc
parent66ce015e5927c30801110acd289310fdff181792 (diff)
addid ui::ListItem
Diffstat (limited to 'src/ui/listitem.cc')
-rw-r--r--src/ui/listitem.cc52
1 files changed, 52 insertions, 0 deletions
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