and handle disables for everything else that has disable hooks.

SVN revision: 53138
This commit is contained in:
Carsten Haitzler 2010-10-07 07:44:50 +00:00
parent 46acbce93e
commit 4f3090af01
9 changed files with 58 additions and 37 deletions

View File

@ -125,6 +125,8 @@ _theme_hook(Evas_Object *obj)
else
edje_object_signal_emit(wd->btn, "elm,state,icon,hidden", "elm");
edje_object_part_text_set(wd->btn, "elm.text", wd->btn_label);
if (elm_object_disabled_get(obj))
edje_object_signal_emit(wd->btn, "elm,state,disabled", "elm");
edje_object_message_signal_process(wd->btn);
edje_object_scale_set(wd->btn,
elm_widget_scale_get(obj) * _elm_config->scale);

View File

@ -84,10 +84,11 @@ _theme_hook(Evas_Object *obj)
if (!wd) return;
elm_hoversel_hover_end(obj);
if (wd->horizontal)
snprintf(buf, sizeof(buf), "hoversel_horizontal/%s", elm_widget_style_get(obj));
snprintf(buf, sizeof(buf), "hoversel_horizontal/%s", elm_widget_style_get(obj));
else
snprintf(buf, sizeof(buf), "hoversel_vertical/%s", elm_widget_style_get(obj));
snprintf(buf, sizeof(buf), "hoversel_vertical/%s", elm_widget_style_get(obj));
elm_object_style_set(wd->btn, buf);
elm_object_disabled_set(wd->btn, elm_widget_disabled_get(obj));
}
static void
@ -95,10 +96,7 @@ _disable_hook(Evas_Object *obj)
{
Widget_Data *wd = elm_widget_data_get(obj);
if (!wd) return;
if (elm_widget_disabled_get(obj))
elm_widget_disabled_set(wd->btn, 1);
else
elm_widget_disabled_set(wd->btn, 0);
elm_object_disabled_set(wd->btn, elm_widget_disabled_get(obj));
}
static void

View File

@ -95,6 +95,8 @@ _theme_hook(Evas_Object *obj)
if (!wd) return;
elm_object_style_set(wd->entry, elm_widget_style_get(obj));
elm_object_style_set(wd->scroller, elm_widget_style_get(obj));
elm_object_disabled_set(wd->entry, elm_widget_disabled_get(obj));
elm_object_disabled_set(wd->scroller, elm_widget_disabled_get(obj));
}
static void

View File

@ -107,10 +107,10 @@ _theme_hook(Evas_Object *obj)
else
edje_object_signal_emit(wd->btn, "elm,state,icon,hidden", "elm");
edje_object_part_text_set(wd->btn, "elm.text", wd->label);
edje_object_message_signal_process(wd->btn);
edje_object_scale_set(wd->btn, elm_widget_scale_get(obj) * _elm_config->scale);
if (elm_object_disabled_get(obj))
edje_object_signal_emit(wd->btn, "elm,state,disabled", "elm");
edje_object_message_signal_process(wd->btn);
edje_object_scale_set(wd->btn, elm_widget_scale_get(obj) * _elm_config->scale);
_sizing_eval(obj);
}

View File

@ -99,18 +99,20 @@ _theme_hook(Evas_Object *obj)
if (!wd) return;
_elm_theme_object_set(obj, wd->chk, "check", "base", elm_widget_style_get(obj));
if (wd->icon)
edje_object_signal_emit(wd->chk, "elm,state,icon,visible", "elm");
edje_object_signal_emit(wd->chk, "elm,state,icon,visible", "elm");
else
edje_object_signal_emit(wd->chk, "elm,state,icon,hidden", "elm");
edje_object_signal_emit(wd->chk, "elm,state,icon,hidden", "elm");
if (wd->state)
edje_object_signal_emit(wd->chk, "elm,state,check,on", "elm");
edje_object_signal_emit(wd->chk, "elm,state,check,on", "elm");
else
edje_object_signal_emit(wd->chk, "elm,state,check,off", "elm");
edje_object_signal_emit(wd->chk, "elm,state,check,off", "elm");
if (wd->label)
edje_object_signal_emit(wd->chk, "elm,state,text,visible", "elm");
edje_object_signal_emit(wd->chk, "elm,state,text,visible", "elm");
else
edje_object_signal_emit(wd->chk, "elm,state,text,hidden", "elm");
edje_object_signal_emit(wd->chk, "elm,state,text,hidden", "elm");
edje_object_part_text_set(wd->chk, "elm.text", wd->label);
if (elm_widget_disabled_get(obj))
edje_object_signal_emit(wd->chk, "elm,state,disabled", "elm");
edje_object_message_signal_process(wd->chk);
edje_object_scale_set(wd->chk, elm_widget_scale_get(obj) * _elm_config->scale);
_sizing_eval(obj);
@ -122,9 +124,9 @@ _disable_hook(Evas_Object *obj)
Widget_Data *wd = elm_widget_data_get(obj);
if (!wd) return;
if (elm_widget_disabled_get(obj))
edje_object_signal_emit(wd->chk, "elm,state,disabled", "elm");
edje_object_signal_emit(wd->chk, "elm,state,disabled", "elm");
else
edje_object_signal_emit(wd->chk, "elm,state,enabled", "elm");
edje_object_signal_emit(wd->chk, "elm,state,enabled", "elm");
}
static void

View File

@ -268,6 +268,9 @@ _theme_hook(Evas_Object *obj)
_elm_theme_object_set(obj, wd->ent, "entry", _getbase(obj), elm_widget_style_get(obj));
elm_entry_entry_set(obj, t);
eina_stringshare_del(t);
if (elm_widget_disabled_get(obj))
edje_object_signal_emit(wd->ent, "elm,state,disabled", "elm");
edje_object_message_signal_process(wd->ent);
edje_object_scale_set(wd->ent, elm_widget_scale_get(obj) * _elm_config->scale);
_sizing_eval(obj);
}

View File

@ -133,6 +133,11 @@ _theme_hook(Evas_Object *obj)
else
edje_object_signal_emit(wd->radio, "elm,state,text,hidden", "elm");
edje_object_part_text_set(wd->radio, "elm.text", wd->label);
if (elm_widget_disabled_get(obj))
{
edje_object_signal_emit(wd->radio, "elm,state,disabled", "elm");
if (wd->state) _state_set(obj, 0);
}
edje_object_message_signal_process(wd->radio);
edje_object_scale_set(wd->radio, elm_widget_scale_get(obj) * _elm_config->scale);
_sizing_eval(obj);

View File

@ -39,9 +39,10 @@ struct _Widget_Data
Eina_Bool editable : 1;
};
struct _Elm_Spinner_Special_Value {
double value;
const char *label;
struct _Elm_Spinner_Special_Value
{
double value;
const char *label;
};
static const char *widtype = NULL;
@ -65,11 +66,13 @@ _del_hook(Evas_Object *obj)
if (wd->delay) ecore_timer_del(wd->delay);
if (wd->spin) ecore_timer_del(wd->spin);
if (wd->special_values)
EINA_LIST_FREE(wd->special_values, sv)
{
eina_stringshare_del(sv->label);
free(sv);
}
{
EINA_LIST_FREE(wd->special_values, sv)
{
eina_stringshare_del(sv->label);
free(sv);
}
}
free(wd);
}
@ -79,9 +82,9 @@ _disable_hook(Evas_Object *obj)
Widget_Data *wd = elm_widget_data_get(obj);
if (!wd) return;
if (elm_widget_disabled_get(obj))
edje_object_signal_emit(wd->spinner, "elm,state,disabled", "elm");
edje_object_signal_emit(wd->spinner, "elm,state,disabled", "elm");
else
edje_object_signal_emit(wd->spinner, "elm,state,enabled", "elm");
edje_object_signal_emit(wd->spinner, "elm,state,enabled", "elm");
}
static void
@ -98,7 +101,7 @@ _signal_callback_add_hook(Evas_Object *obj, const char *emission, const char *so
Widget_Data *wd = elm_widget_data_get(obj);
if (!wd) return;
edje_object_signal_callback_add(wd->spinner, emission,
source, func_cb, data);
source, func_cb, data);
}
static void *
@ -107,7 +110,7 @@ _signal_callback_del_hook(Evas_Object *obj, const char *emission, const char *so
Widget_Data *wd = elm_widget_data_get(obj);
if (!wd) return NULL;
return edje_object_signal_callback_del(wd->spinner, emission, source,
func_cb);
func_cb);
}
static void
@ -118,12 +121,14 @@ _theme_hook(Evas_Object *obj)
_elm_theme_object_set(obj, wd->spinner, "spinner", "base", elm_widget_style_get(obj));
edje_object_part_swallow(wd->spinner, "elm.swallow.entry", wd->ent);
_write_label(obj);
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");
if (elm_widget_disabled_get(obj))
edje_object_signal_emit(wd->spinner, "elm,state,disabled", "elm");
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);
}
@ -207,11 +212,13 @@ _write_label(Evas_Object *obj)
char buf[1024];
if (!wd) return;
EINA_LIST_FOREACH(wd->special_values, l, sv)
if (sv->value == wd->val)
{
snprintf(buf, sizeof(buf), "%s", sv->label);
goto apply;
}
{
if (sv->value == wd->val)
{
snprintf(buf, sizeof(buf), "%s", sv->label);
goto apply;
}
}
if (wd->label)
snprintf(buf, sizeof(buf), wd->label, wd->val);
else

View File

@ -122,6 +122,8 @@ _theme_hook(Evas_Object *obj)
edje_object_part_text_set(wd->tgl, "elm.text", wd->label);
edje_object_part_text_set(wd->tgl, "elm.ontext", wd->ontext);
edje_object_part_text_set(wd->tgl, "elm.offtext", wd->offtext);
if (elm_widget_disabled_get(obj))
edje_object_signal_emit(wd->tgl, "elm,state,disabled", "elm");
edje_object_message_signal_process(wd->tgl);
edje_object_scale_set(wd->tgl, elm_widget_scale_get(obj) * _elm_config->scale);
_sizing_eval(obj);