seoz pushed a commit to branch master. http://git.enlightenment.org/tools/elm-theme-viewer.git/commit/?id=57250153aa0fc4296ed062dfc9d63a98a93864ca
commit 57250153aa0fc4296ed062dfc9d63a98a93864ca Author: Daniel Juyung Seo <[email protected]> Date: Sat May 3 00:29:59 2014 +0900 widget: focus_highlight test is now working well. --- src/bin/widget.c | 79 +++++++++++++++++++++++++++++++++----------------------- 1 file changed, 47 insertions(+), 32 deletions(-) diff --git a/src/bin/widget.c b/src/bin/widget.c index 63fb65c..988118b 100644 --- a/src/bin/widget.c +++ b/src/bin/widget.c @@ -917,60 +917,75 @@ _widget_flipselector_create(Evas_Object *parent, const char *style) } // focus highlight -static Evas_Object * -_widget_focus_highlight_create(Evas_Object *parent, const char *orig_style) +static void +_widget_focus_highlight_win_create(void *data, Evas_Object *obj EINA_UNUSED, + void *event_info EINA_UNUSED) { - Evas_Object *box, *box2, *o; + Evas_Object *fwin = NULL, *box0 = NULL, *box = NULL, *o; char style[PATH_MAX] = {0, }; - _trim_end_default(orig_style, style); - // FIXME: elm focus highlight has a bug! - //elm_win_focus_highlight_style_set(win, style); - elm_win_focus_highlight_enabled_set(gd->win, EINA_TRUE); + // create a window + fwin = elm_win_util_standard_add("focus-window", "Focus Window"); + elm_win_autodel_set(fwin, EINA_TRUE); - box = o = elm_box_add(parent); - EXPAND(o); FILL(o); - elm_box_horizontal_set(o, EINA_TRUE); - evas_object_show(o); + strncpy(style, data + 4, strlen(data) - 3); // "top/" + elm_object_theme_set(fwin, th); + elm_win_focus_highlight_enabled_set(fwin, EINA_TRUE); - o = elm_bg_add(box); - EXPAND(o); FILL(o); - elm_box_pack_end(box, o); - evas_object_show(o); - - // box 2 start - box2 = o = elm_box_add(box); - EXPAND(o); FILL(o); - elm_box_pack_end(box, box2); + box0 = o = elm_box_add(fwin); + EXPAND(o); + elm_win_resize_object_add(fwin, o); + elm_box_padding_set(o, 100, 100); evas_object_show(o); - o = elm_bg_add(box2); + box = o = elm_box_add(box0); EXPAND(o); FILL(o); - elm_box_pack_end(box2, o); + elm_box_pack_end(box0, o); evas_object_show(o); - o = elm_button_add(box2); + /* + o = elm_bg_add(box); EXPAND(o); FILL(o); - elm_box_pack_end(box2, o); + elm_box_pack_end(box, o); evas_object_show(o); + */ - o = elm_button_add(box2); - EXPAND(o); FILL(o); - elm_box_pack_end(box2, o); + o = elm_button_add(box); + elm_object_focus_highlight_style_set(o, style); + elm_object_text_set(o, "button"); + elm_box_pack_end(box, o); evas_object_show(o); - o = elm_bg_add(box2); - EXPAND(o); FILL(o); - elm_box_pack_end(box2, o); + o = elm_check_add(box); + elm_object_focus_highlight_style_set(o, style); + elm_object_text_set(o, "check"); + elm_box_pack_end(box, o); evas_object_show(o); - // box 2 end + /* o = elm_bg_add(box); EXPAND(o); FILL(o); elm_box_pack_end(box, o); evas_object_show(o); + */ - return box; + evas_object_resize(fwin, 400, 400); + evas_object_show(fwin); +} + +static Evas_Object * +_widget_focus_highlight_create(Evas_Object *parent, const char *orig_style) +{ + Evas_Object *o = NULL; + o = elm_button_add(parent); + WEIGHT(o, EVAS_HINT_EXPAND, 0.0); FILL(o); + elm_object_text_set(o, "Press"); + evas_object_smart_callback_add(o, "clicked", + _widget_focus_highlight_win_create, + orig_style); + evas_object_show(o); + + return o; } static void --
