ilist now supports disabled state, though it does not indicate this visually yet

SVN revision: 75007
This commit is contained in:
Mike Blumenkrantz 2012-08-08 10:27:51 +00:00
parent 756faca85b
commit fe2cfa7e0c
2 changed files with 60 additions and 0 deletions

View File

@ -26868,6 +26868,11 @@ collections {
state: "default" 0.0;
color: 0 0 0 0;
}
description {
state: "disabled" 0.0;
inherit: "default" 0.0;
visible: 0;
}
}
}
programs {
@ -26892,6 +26897,20 @@ collections {
target: "e.text.label";
transition: LINEAR 0.1;
}
program {
name: "disable";
signal: "e,state,disabled";
source: "e";
action: STATE_SET "disabled" 0.0;
target: "event";
}
program {
name: "enable";
signal: "e,state,enabled";
source: "e";
action: STATE_SET "default" 0.0;
target: "event";
}
}
}
group {
@ -27072,6 +27091,11 @@ collections {
state: "default" 0.0;
color: 0 0 0 0;
}
description {
state: "disabled" 0.0;
inherit: "default" 0.0;
visible: 0;
}
}
}
programs {
@ -27096,6 +27120,20 @@ collections {
target: "e.text.label";
transition: LINEAR 0.1;
}
program {
name: "disable";
signal: "e,state,disabled";
source: "e";
action: STATE_SET "disabled" 0.0;
target: "event";
}
program {
name: "enable";
signal: "e,state,enabled";
source: "e";
action: STATE_SET "default" 0.0;
target: "event";
}
}
}
group {

View File

@ -271,6 +271,27 @@ _queue_clear(Evas_Object *obj)
wd->queue.timer = NULL;
}
static void
_e_wid_disable_hook(Evas_Object *obj)
{
E_Ilist_Item *ili;
Eina_List *l;
Eina_Bool disabled;
E_Widget_Data *wd;
disabled = e_widget_disabled_get(obj);
wd = e_widget_data_get(obj);
EINA_LIST_FOREACH(e_widget_ilist_items_get(obj), l, ili)
{
if (disabled)
edje_object_signal_emit(ili->o_base, "e,state,disabled", "e");
else
edje_object_signal_emit(ili->o_base, "e,state,enabled", "e");
}
evas_object_freeze_events_set(wd->o_scrollframe, disabled);
}
/* externally accessible functions */
EAPI Evas_Object *
e_widget_ilist_add(Evas *evas, int icon_w, int icon_h, const char **value)
@ -285,6 +306,7 @@ e_widget_ilist_add(Evas *evas, int icon_w, int icon_h, const char **value)
e_widget_del_hook_set(obj, _e_wid_del_hook);
e_widget_focus_hook_set(obj, _e_wid_focus_hook);
e_widget_disable_hook_set(obj, _e_wid_disable_hook);
e_widget_data_set(obj, wd);
wd->value = (char **)value;