summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorOlliver Schinagl <o.schinagl@ultimaker.com>2015-04-23 20:29:57 (GMT)
committerOlliver Schinagl <o.schinagl@ultimaker.com>2015-04-28 05:07:15 (GMT)
commitc0010ee623a1c77e99944baebbcaacf8dcfba9a1 (patch)
tree0ab11e8e5a87a2e25dd62954ea1280ce77593e79 /src
parent14c39a990e8dab0a93bafcdf04c555a3611c4e85 (diff)
downloadeulogium-c0010ee623a1c77e99944baebbcaacf8dcfba9a1.zip
eulogium-c0010ee623a1c77e99944baebbcaacf8dcfba9a1.tar.gz
eulogium-c0010ee623a1c77e99944baebbcaacf8dcfba9a1.tar.bz2
add focus/unfocuse style callbacks
Signed-off-by: Olliver Schinagl <o.schinagl@ultimaker.com>
Diffstat (limited to 'src')
-rw-r--r--src/eulogium.c34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/eulogium.c b/src/eulogium.c
index ae43bd3..2ccdcce 100644
--- a/src/eulogium.c
+++ b/src/eulogium.c
@@ -17,6 +17,16 @@
#define COPYRIGHT "Copyright © 2015 Olliver Schinagl <o.schinagl@ultimaker.com> and various contributors (see AUTHORS)."
+static void _button_focus_cb(void *data EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED)
+{
+ elm_widget_signal_emit(obj, "elm,state,focused", "elm");
+}
+
+static void _button_unfocus_cb(void *data EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED)
+{
+ elm_widget_signal_emit(obj, "elm,state,unfocused", "elm");
+}
+
Evas_Object *eulogium_button_list_add(Evas_Object *parent)
{
Evas_Object *list, *box;
@@ -51,6 +61,8 @@ Evas_Object *eulogium_button_list_prepend(Evas_Object *list, const char *label,
elm_object_part_content_set(button, "icon", icon);
if (func)
evas_object_smart_callback_add(button, "clicked", func, data);
+ evas_object_smart_callback_add(button, "focused", _button_focus_cb, NULL);
+ evas_object_smart_callback_add(button, "unfocused", _button_unfocus_cb, NULL);
evas_object_show(button);
if (l)
@@ -80,6 +92,8 @@ Evas_Object *eulogium_button_list_sorted_insert(Evas_Object *list, const char *l
elm_object_text_set(button, label);
if (icon)
evas_object_smart_callback_add(button, "clicked", func, data);
+ evas_object_smart_callback_add(button, "focused", _button_focus_cb, NULL);
+ evas_object_smart_callback_add(button, "unfocused", _button_unfocus_cb, NULL);
evas_object_show(button);
if (l)
@@ -233,6 +247,8 @@ elm_progressbar_value_set(eulogium->print.progress, 0.5);
elm_object_text_set(object, "TUNE"); /* TODO create tune button */
evas_object_size_hint_align_set(object, EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_size_hint_weight_set(object, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_smart_callback_add(object, "focused", _button_focus_cb, NULL);
+ evas_object_smart_callback_add(object, "unfocused", _button_unfocus_cb, NULL);
evas_object_show(object);
elm_table_pack(table, object, 0, 5, 1, 1);
@@ -246,6 +262,8 @@ elm_progressbar_value_set(eulogium->print.progress, 0.5);
elm_object_text_set(object, "PAUSE"); /* TODO create pause button */
evas_object_size_hint_align_set(object, EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_size_hint_weight_set(object, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_smart_callback_add(object, "focused", _button_focus_cb, NULL);
+ evas_object_smart_callback_add(object, "unfocused", _button_unfocus_cb, NULL);
evas_object_show(object);
elm_table_pack(table, object, 2, 5, 1, 1);
@@ -499,6 +517,8 @@ Evas_Object *eulogium_multi_text_menu(struct eulogium_data *eulogium, Evas_Objec
_bottom = elm_button_add(parent);
elm_object_text_set(_bottom, button ? button->text : "NEXT"); /* change to txtdata->buttontext */
evas_object_smart_callback_add(_bottom, "clicked", _eulogium_multi_text_next_cb, multi_text_next_cb_data);
+ evas_object_smart_callback_add(_bottom, "focused", _button_focus_cb, NULL);
+ evas_object_smart_callback_add(_bottom, "unfocused", _button_unfocus_cb, NULL);
evas_object_show(_bottom);
return eulogium_split_screen(parent, _top, _bottom);
@@ -611,6 +631,8 @@ Evas_Object *eulogium_multi_screen_menu(struct eulogium_data *eulogium, Evas_Obj
evas_object_size_hint_weight_set(object, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
elm_object_text_set(object, "PLA"); /* Materials need to be handled differently */
evas_object_smart_callback_add(object, "clicked", _cb_material_set, "PLA");
+ evas_object_smart_callback_add(object, "focused", _button_focus_cb, NULL);
+ evas_object_smart_callback_add(object, "unfocused", _button_unfocus_cb, NULL);
evas_object_show(object);
elm_box_pack_end(box, object);
@@ -619,6 +641,8 @@ Evas_Object *eulogium_multi_screen_menu(struct eulogium_data *eulogium, Evas_Obj
evas_object_size_hint_weight_set(object, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
elm_object_text_set(object, "ABS");
evas_object_smart_callback_add(object, "clicked", _cb_material_set, "ABS");
+ evas_object_smart_callback_add(object, "focused", _button_focus_cb, NULL);
+ evas_object_smart_callback_add(object, "unfocused", _button_unfocus_cb, NULL);
evas_object_show(object);
elm_box_pack_end(box, object);
@@ -659,6 +683,8 @@ Evas_Object *eulogium_multi_screen_menu(struct eulogium_data *eulogium, Evas_Obj
evas_object_size_hint_weight_set(object, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
elm_object_text_set(object, screen_data->screen[pagenum].prev_button);
evas_object_smart_callback_add(object, "clicked", _cb_content_prev_set, eulogium);
+ evas_object_smart_callback_add(object, "focused", _button_focus_cb, NULL);
+ evas_object_smart_callback_add(object, "unfocused", _button_unfocus_cb, NULL);
evas_object_show(object);
elm_box_pack_end(_bottom, object);
}
@@ -668,6 +694,8 @@ Evas_Object *eulogium_multi_screen_menu(struct eulogium_data *eulogium, Evas_Obj
evas_object_size_hint_weight_set(object, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
elm_object_text_set(object, screen_data->screen[pagenum].next_button);
evas_object_smart_callback_add(object, "clicked", _eulogium_multi_screen_next_cb, multi_screen_next_cb_data);
+ evas_object_smart_callback_add(object, "focused", _button_focus_cb, NULL);
+ evas_object_smart_callback_add(object, "unfocused", _button_unfocus_cb, NULL);
evas_object_show(object);
elm_box_pack_end(_bottom, object);
}
@@ -689,6 +717,8 @@ Evas_Object *eulogium_tripple_button_menu(Evas_Object *parent, const struct butt
evas_object_size_hint_weight_set(object, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
elm_object_text_set(object, left->text);
evas_object_smart_callback_add(object, "clicked", left->cb.func, left->cb.data);
+ evas_object_smart_callback_add(object, "focused", _button_focus_cb, NULL);
+ evas_object_smart_callback_add(object, "unfocused", _button_unfocus_cb, NULL);
evas_object_data_set(object, "type", "b");
evas_object_show(object);
elm_box_pack_end(_top, object);
@@ -706,12 +736,16 @@ Evas_Object *eulogium_tripple_button_menu(Evas_Object *parent, const struct butt
elm_object_text_set(object, right->text);
evas_object_data_set(object, "type", "b");
evas_object_smart_callback_add(object, "clicked", right->cb.func, right->cb.data);
+ evas_object_smart_callback_add(object, "focused", _button_focus_cb, NULL);
+ evas_object_smart_callback_add(object, "unfocused", _button_unfocus_cb, NULL);
evas_object_show(object);
elm_box_pack_end(_top, object);
_bottom = elm_button_add(parent);
elm_object_text_set(_bottom, bottom->text);
evas_object_smart_callback_add(_bottom, "clicked", bottom->cb.func, bottom->cb.data);
+ evas_object_smart_callback_add(_bottom, "focused", _button_focus_cb, NULL);
+ evas_object_smart_callback_add(_bottom, "unfocused", _button_unfocus_cb, NULL);
evas_object_show(_bottom);
return eulogium_split_screen(parent, _top, _bottom);