From 685a6a6a3ceeb5752bda905cf8fd1e2e7cabd393 Mon Sep 17 00:00:00 2001 From: raster Date: Tue, 23 Aug 2011 07:44:49 +0000 Subject: [PATCH] add visual feedback on accessibility mouseover too git-svn-id: https://svn.enlightenment.org/svn/e/trunk/elementary@62713 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33 --- data/themes/Makefile.am | 11 ++++++- data/themes/access_glow.png | Bin 0 -> 26591 bytes data/themes/default.edc | 75 ++++++++++++++++++++++++++++++++++++++++++++ src/lib/elm_access.c | 48 +++++++++++++++++++++++++--- src/lib/elm_button.c | 10 +++++- src/lib/elm_check.c | 55 +++++++++++++++++++++++++++----- src/lib/elm_widget.h | 4 ++- 7 files changed, 188 insertions(+), 15 deletions(-) create mode 100644 data/themes/access_glow.png diff --git a/data/themes/Makefile.am b/data/themes/Makefile.am index ba72890..40ebcf2 100644 --- a/data/themes/Makefile.am +++ b/data/themes/Makefile.am @@ -234,7 +234,16 @@ icon_arrow_down_right.png \ icon_arrow_up_left.png \ icon_arrow_up_right.png \ thumb_shadow.png \ -group_index.png +group_index.png \ +mp_forward.png \ +mp_info.png \ +mp_next.png \ +mp_pause.png \ +mp_play.png \ +mp_prev.png \ +mp_rewind.png \ +mp_stop.png \ +access_glow.png default.edj: Makefile $(EXTRA_DIST) $(EDJE_CC) $(EDJE_FLAGS) \ diff --git a/data/themes/access_glow.png b/data/themes/access_glow.png new file mode 100644 index 0000000000000000000000000000000000000000..9c00ec755301a5ff072a999f8338bdd3562558ab GIT binary patch literal 26591 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 i__I7QLVlKSwEPc0W40)17|opk0000V&D4! literal 0 HcmV?d00001 diff --git a/data/themes/default.edc b/data/themes/default.edc index 2357305..abd2c3f 100644 --- a/data/themes/default.edc +++ b/data/themes/default.edc @@ -243,6 +243,81 @@ collections { } /////////////////////////////////////////////////////////////////////////////// + group { name: "elm/access/base/default"; + images { + image: "access_glow.png" LOSSY 85; + } + parts { + part { name: "block1"; type: RECT; + mouse_events: 0; + description { state: "default" 0.0; + color: 0 0 0 200; + rel1 { to: "base"; + relative: 0.0 0.0; + offset: -100000 -100000; + } + rel2 { to: "base"; + relative: 1.0 0.0; + offset: 100000 96; + } + } + } + part { name: "block2"; type: RECT; + mouse_events: 0; + description { state: "default" 0.0; + color: 0 0 0 200; + rel1 { to: "base"; + relative: 0.0 1.0; + offset: -100000 -97; + } + rel2 { to: "base"; + relative: 1.0 1.0; + offset: 100000 100000; + } + } + } + part { name: "block3"; type: RECT; + mouse_events: 0; + description { state: "default" 0.0; + color: 0 0 0 200; + rel1 { to: "block1"; + relative: 0.0 1.0; + offset: 0 0; + } + rel2 { to_x: "base"; to_y: "block2"; + relative: 0.0 0.0; + offset: 96 -1; + } + } + } + part { name: "block4"; type: RECT; + mouse_events: 0; + description { state: "default" 0.0; + color: 0 0 0 200; + rel1 { to_x: "base"; to_y: "block1"; + relative: 1.0 1.0; + offset: -97 0; + } + rel2 { to: "block2"; + relative: 1.0 0.0; + offset: -1 -1; + } + } + } + part { name: "base"; + mouse_events: 0; + description { state: "default" 0.0; + image.normal: "access_glow.png"; + image.border: 112 112 112 112; + rel1.offset: -102 -102; + rel2.offset: 101 101; + fill.smooth: 0; + } + } + } + } + +/////////////////////////////////////////////////////////////////////////////// group { name: "elm/bg/base/default"; images { image: "dia_grad.png" COMP; diff --git a/src/lib/elm_access.c b/src/lib/elm_access.c index a4e4b7b..7875086 100644 --- a/src/lib/elm_access.c +++ b/src/lib/elm_access.c @@ -70,6 +70,7 @@ _access_obj_over_timeout_cb(void *data) if (!ac) return EINA_FALSE; if (_elm_config->access_mode != ELM_ACCESS_MODE_OFF) { + _elm_access_object_hilight(data); _elm_access_read(ac, ELM_ACCESS_CANCEL, data, NULL); _elm_access_read(ac, ELM_ACCESS_TYPE, data, NULL); _elm_access_read(ac, ELM_ACCESS_INFO, data, NULL); @@ -100,6 +101,7 @@ _access_obj_mouse_out_cb(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUS { Elm_Access_Info *ac = evas_object_data_get(data, "_elm_access"); if (!ac) return; + _elm_access_object_unhilight(data); if (ac->delay_timer) { ecore_timer_del(ac->delay_timer); @@ -184,7 +186,7 @@ _elm_access_text_get(Elm_Access_Info *ac, int type, Evas_Object *obj, Elm_Widget { if (ai->type == type) { - if (ai->func) return ai->func(ai->data, obj, item); + if (ai->func) return ai->func((void *)(ai->data), obj, item); else if (ai->data) return strdup(ai->data); return NULL; } @@ -247,9 +249,40 @@ _elm_access_object_get(Evas_Object *obj) } EAPI void -_elm_access_object_hilight(Evas_Object *win, Evas_Object *obj) +_elm_access_object_hilight(Evas_Object *obj) { - // if hilight obj doens exist - create and attach to window + Evas_Object *o; + + o = evas_object_name_find(evas_object_evas_get(obj), "_elm_access_disp"); + if (!o) + { + o = edje_object_add(evas_object_evas_get(obj)); + evas_object_name_set(o, "_elm_access_disp"); + evas_object_layer_set(o, ELM_OBJECT_LAYER_TOOLTIP); + } + else + { + Evas_Object *ptarget = evas_object_data_get(o, "_elm_access_target"); + if (ptarget) + { + evas_object_data_del(o, "_elm_access_target"); + // FIXME: delete move/resize/del callbacks from ptarget + } + } + evas_object_data_set(o, "_elm_access_target", obj); + // FIXME: track obj pos/size until hilight removed + _elm_theme_object_set(obj, o, "access", "base", "default"); + evas_object_raise(o); + + { + Evas_Coord x, y, w, h; + evas_object_geometry_get(obj, &x, &y, &w, &h); + evas_object_move(o, x, y); + evas_object_resize(o, w, h); + } + + evas_object_show(o); + // if hilight obj doesnt exist - create and attach to window // make sure its on a high layer // show it and emit signal // if exists, move and resize to obj object location @@ -257,9 +290,14 @@ _elm_access_object_hilight(Evas_Object *win, Evas_Object *obj) } EAPI void -_elm_access_object_unhilight(Evas_Object *win) +_elm_access_object_unhilight(Evas_Object *obj) { - // hide highlight obj is there, emit hide and then del when done + Evas_Object *o, *ptarget; + + o = evas_object_name_find(evas_object_evas_get(obj), "_elm_access_disp"); + if (!o) return; + ptarget = evas_object_data_get(o, "_elm_access_target"); + if (ptarget == obj) evas_object_del(o); } EAPI void diff --git a/src/lib/elm_button.c b/src/lib/elm_button.c index 9b58112..99dd2c3 100644 --- a/src/lib/elm_button.c +++ b/src/lib/elm_button.c @@ -432,7 +432,7 @@ _elm_button_label_get(const Evas_Object *obj, const char *item) } static char * -_access_info_cb(const void *data, Evas_Object *obj, Elm_Widget_Item *item) +_access_info_cb(void *data __UNUSED__, Evas_Object *obj, Elm_Widget_Item *item __UNUSED__) { char *txt = (char *)elm_widget_access_info_get(obj); if (!txt) txt = (char *)_elm_button_label_get(obj, NULL); @@ -440,6 +440,14 @@ _access_info_cb(const void *data, Evas_Object *obj, Elm_Widget_Item *item) return txt; } +static char * +_access_state_cb(void *data __UNUSED__, Evas_Object *obj, Elm_Widget_Item *item __UNUSED__) +{ + if (elm_widget_disabled_get(obj)) + return strdup(E_("State: Disabled")); + return NULL; +} + EAPI Evas_Object * elm_button_add(Evas_Object *parent) { diff --git a/src/lib/elm_check.c b/src/lib/elm_check.c index cfc4049..d25e5b3 100644 --- a/src/lib/elm_check.c +++ b/src/lib/elm_check.c @@ -282,13 +282,24 @@ _activate(Evas_Object *obj) { Widget_Data *wd = elm_widget_data_get(obj); if (!wd) return; - wd->state = !wd->state; - if (wd->statep) *wd->statep = wd->state; - if (wd->state) - edje_object_signal_emit(wd->chk, "elm,state,check,on", "elm"); - else - edje_object_signal_emit(wd->chk, "elm,state,check,off", "elm"); - evas_object_smart_callback_call(obj, SIG_CHANGED, NULL); + if ((_elm_config->access_mode == ELM_ACCESS_MODE_OFF) || + (_elm_access_2nd_click_timeout(obj))) + { + if (_elm_config->access_mode != ELM_ACCESS_MODE_OFF) + wd->state = !wd->state; + if (wd->statep) *wd->statep = wd->state; + if (wd->state) + { + edje_object_signal_emit(wd->chk, "elm,state,check,on", "elm"); + _elm_access_say(E_("State: On")); + } + else + { + edje_object_signal_emit(wd->chk, "elm,state,check,off", "elm"); + _elm_access_say(E_("State: Off")); + } + evas_object_smart_callback_call(obj, SIG_CHANGED, NULL); + } } static void @@ -318,6 +329,28 @@ _elm_check_label_get(const Evas_Object *obj, const char *item) return wd->label; } +static char * +_access_info_cb(void *data __UNUSED__, Evas_Object *obj, Elm_Widget_Item *item __UNUSED__) +{ + char *txt = (char *)elm_widget_access_info_get(obj); + if (!txt) txt = (char *)_elm_check_label_get(obj, NULL); + if (txt) return strdup(txt); + return txt; +} + +static char * +_access_state_cb(void *data, Evas_Object *obj, Elm_Widget_Item *item __UNUSED__) +{ + Evas_Object *o = data; + Widget_Data *wd = elm_widget_data_get(o); + if (!wd) return NULL; + if (elm_widget_disabled_get(obj)) + return strdup(E_("State: Disabled")); + if (wd->state) + return strdup(E_("State: On")); + return strdup(E_("State: Off")); +} + EAPI Evas_Object * elm_check_add(Evas_Object *parent) { @@ -362,6 +395,14 @@ elm_check_add(Evas_Object *parent) // TODO: convert Elementary to subclassing of Evas_Smart_Class // TODO: and save some bytes, making descriptions per-class and not instance! evas_object_smart_callbacks_descriptions_set(obj, _signals); + + _elm_access_object_register(obj, wd->chk); + _elm_access_text_set(_elm_access_object_get(obj), + ELM_ACCESS_TYPE, E_("Check")); + _elm_access_callback_set(_elm_access_object_get(obj), + ELM_ACCESS_INFO, _access_info_cb, obj); + _elm_access_callback_set(_elm_access_object_get(obj), + ELM_ACCESS_STATE, _access_state_cb, obj); return obj; } diff --git a/src/lib/elm_widget.h b/src/lib/elm_widget.h index eb5c395..423c88f 100644 --- a/src/lib/elm_widget.h +++ b/src/lib/elm_widget.h @@ -210,7 +210,7 @@ typedef void (*Elm_Widget_On_Signal_Emit_Cb)(void *data, const char *emission, c #define ELM_ACCESS_DONE -1 // sentence done - send done event here #define ELM_ACCESS_CANCEL -2 // stop reading immediately -typedef char *(*Elm_Access_Content_Cb)(const void *data, Evas_Object *obj, Elm_Widget_Item *item); +typedef char *(*Elm_Access_Content_Cb)(void *data, Evas_Object *obj, Elm_Widget_Item *item); struct _Elm_Access_Item { @@ -232,6 +232,8 @@ EAPI char *_elm_access_text_get(Elm_Access_Info *ac, int type, Evas_ EAPI void _elm_access_read(Elm_Access_Info *ac, int type, Evas_Object *obj, Elm_Widget_Item *item); EAPI void _elm_access_say(const char *txt); EAPI Elm_Access_Info *_elm_access_object_get(Evas_Object *obj); +EAPI void _elm_access_object_hilight(Evas_Object *obj); +EAPI void _elm_access_object_unhilight(Evas_Object *obj); EAPI void _elm_access_object_register(Evas_Object *obj, Evas_Object *hoverobj); EAPI Eina_Bool _elm_access_2nd_click_timeout(Evas_Object *obj); -- 2.7.4