Signal de edje on focus changes. Can be used to show/hide the spinner buttons based...
authorIván Briano <sachieru@gmail.com>
Mon, 3 May 2010 18:29:02 +0000 (18:29 +0000)
committerIván Briano <sachieru@gmail.com>
Mon, 3 May 2010 18:29:02 +0000 (18:29 +0000)
SVN revision: 48585

src/lib/elm_spinner.c

index 6ca61b3..dde9de5 100644 (file)
@@ -90,9 +90,24 @@ _theme_hook(Evas_Object *obj)
    _write_label(obj);
    edje_object_message_signal_process(wd->spinner);
    edje_object_scale_set(wd->spinner, elm_widget_scale_get(obj) * _elm_config->scale);
+   if (elm_widget_focus_get(obj))
+     edje_object_signal_emit(wd->spinner, "elm,action,focus", "elm");
+   else
+     edje_object_signal_emit(wd->spinner, "elm,action,unfocus", "elm");
    _sizing_eval(obj);
 }
 
+static void
+_on_focus_hook(void *data __UNUSED__, Evas_Object *obj)
+{
+   Widget_Data *wd = elm_widget_data_get(obj);
+   if (!wd) return;
+   if (elm_widget_focus_get(obj))
+     edje_object_signal_emit(wd->spinner, "elm,action,focus", "elm");
+   else
+     edje_object_signal_emit(wd->spinner, "elm,action,unfocus", "elm");
+}
+
 static int
 _delay_change(void *data)
 {
@@ -489,6 +504,7 @@ elm_spinner_add(Evas_Object *parent)
    elm_widget_sub_object_add(parent, obj);
    elm_widget_data_set(obj, wd);
    elm_widget_del_hook_set(obj, _del_hook);
+   elm_widget_on_focus_hook_set(obj, _on_focus_hook, NULL);
    elm_widget_theme_hook_set(obj, _theme_hook);
    elm_widget_disable_hook_set(obj, _disable_hook);