From 89cf910f924ad0e5c9f1f0fc2ef61f64b9f8baf7 Mon Sep 17 00:00:00 2001 From: Mike McCormack Date: Tue, 15 Nov 2011 12:29:38 +0900 Subject: [PATCH] Revert "reverted elm_check. it doesn't work. donno." This reverts commit 89d95197ae7bda7baf0f803ac745f181e91ef1ca. --- debian/changelog | 8 -------- src/lib/elm_check.c | 58 ++++++++++++++++++++++++++++++++++++++++++++++------- 2 files changed, 51 insertions(+), 15 deletions(-) diff --git a/debian/changelog b/debian/changelog index 0b4a882..1211306 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,11 +1,3 @@ -elementary (1.0.0+svn.61256slp2+build85) unstable; urgency=low - - * reverted elm_check.(it doesn't work. i don't know now) - * Git: slp-scm.sec.samsung.net:slp/pkgs/e/elementary - * Tag: elementary_1.0.0+svn.61256slp2+build85 - - -- ChunEon Park Tue, 15 Nov 2011 11:21:37 +0900 - elementary (1.0.0+svn.61256slp2+build84) unstable; urgency=low * Package Upload diff --git a/src/lib/elm_check.c b/src/lib/elm_check.c index 9ce3e65..79fa9c0 100644 --- a/src/lib/elm_check.c +++ b/src/lib/elm_check.c @@ -269,6 +269,9 @@ _content_unset_hook(Evas_Object *obj, const char *part __UNUSED__) if (!wd->icon) return NULL; Evas_Object *icon = wd->icon; elm_widget_sub_object_del(obj, wd->icon); + evas_object_event_callback_del_full(wd->icon, + EVAS_CALLBACK_CHANGED_SIZE_HINTS, + _changed_size_hints, obj); edje_object_part_unswallow(wd->chk, wd->icon); wd->icon = NULL; return icon; @@ -279,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 @@ -315,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) { @@ -359,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; } -- 2.7.4