summaryrefslogtreecommitdiffstats
path: root/src/eulogium_item_list.c
diff options
context:
space:
mode:
authorOlliver Schinagl <o.schinagl@ultimaker.com>2015-06-19 11:29:09 (GMT)
committerOlliver Schinagl <o.schinagl@ultimaker.com>2015-06-19 11:29:09 (GMT)
commitb9a037ea154a14b53ebe8200574d29f72d7e7a89 (patch)
tree181ee64be6104ff01a3c28115cfe68e8e853b89b /src/eulogium_item_list.c
parent9c5ba21b67e04cbd981c784abb3455b7358dbf48 (diff)
downloadeulogium-b9a037ea154a14b53ebe8200574d29f72d7e7a89.zip
eulogium-b9a037ea154a14b53ebe8200574d29f72d7e7a89.tar.gz
eulogium-b9a037ea154a14b53ebe8200574d29f72d7e7a89.tar.bz2
Add widget handling and exporting to checkboxes
Signed-off-by: Olliver Schinagl <o.schinagl@ultimaker.com>
Diffstat (limited to 'src/eulogium_item_list.c')
-rw-r--r--src/eulogium_item_list.c16
1 files changed, 13 insertions, 3 deletions
diff --git a/src/eulogium_item_list.c b/src/eulogium_item_list.c
index de0f270..98cb461 100644
--- a/src/eulogium_item_list.c
+++ b/src/eulogium_item_list.c
@@ -10,10 +10,10 @@
#include <Elementary.h>
#include <libintl.h>
+#include "eulogium_item_list.h"
#include "eulogium_private.h"
#include "gettext.h"
-#include "eulogium_item_list.h"
Evas_Object *eulogium_item_list_add(Evas_Object *parent)
{
@@ -31,6 +31,13 @@ Evas_Object *eulogium_item_list_add(Evas_Object *parent)
return list;
}
+static void _item_destroy_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
+{
+ Evas_Object **_widget = data;
+
+ *_widget = NULL;
+}
+
static Evas_Object *_item_new(Evas_Object *parent, Evas_Object *icon, char const *label,
struct list_item *item, Evas_Smart_Cb func, const void *data)
{
@@ -41,7 +48,6 @@ static Evas_Object *_item_new(Evas_Object *parent, Evas_Object *icon, char const
if (!item) /* If no button type is passed (file-list for ex.) use the default 'button' entry */
item = &dummy;
-
switch (item->type) {
case LIST_ITEM_RADIO:
it = elm_radio_add(parent);
@@ -49,7 +55,7 @@ static Evas_Object *_item_new(Evas_Object *parent, Evas_Object *icon, char const
/* elm_object_style_set(it, "list"); */
case LIST_ITEM_CHECK:
it = elm_check_add(parent);
- /* elm_check_pointer_set(it, &item->value); */
+ elm_check_state_pointer_set(it, &item->state);
/* elm_object_style_set(it, "list"); */
break;
case LIST_ITEM_BUTTON:
@@ -71,6 +77,10 @@ static Evas_Object *_item_new(Evas_Object *parent, Evas_Object *icon, char const
evas_object_size_hint_weight_set(it, EVAS_HINT_EXPAND, 0);
evas_object_size_hint_align_set(it, EVAS_HINT_FILL, 0);
evas_object_show(it);
+ item->_widget = it;
+ evas_object_event_callback_add(it, EVAS_CALLBACK_DEL, _item_destroy_cb, &item->_widget);
+ if (evas_alloc_error() != EVAS_ALLOC_ERROR_NONE)
+ EINA_LOG_CRIT("Callback registering failed! Problems ensured!\n");
return it;
}