diff options
author | Olliver Schinagl <o.schinagl@ultimaker.com> | 2015-04-23 20:29:57 (GMT) |
---|---|---|
committer | Olliver Schinagl <o.schinagl@ultimaker.com> | 2015-04-28 05:07:15 (GMT) |
commit | c0010ee623a1c77e99944baebbcaacf8dcfba9a1 (patch) | |
tree | 0ab11e8e5a87a2e25dd62954ea1280ce77593e79 /src | |
parent | 14c39a990e8dab0a93bafcdf04c555a3611c4e85 (diff) | |
download | eulogium-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.c | 34 |
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); |