elm datetime -> set child objects to disabled if main obj is

This commit is contained in:
Carsten Haitzler 2013-07-15 19:45:41 +09:00
parent 35db502d5b
commit 9076fb4834
2 changed files with 21 additions and 1 deletions

View File

@ -45,6 +45,7 @@ test_datetime(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_in
elm_datetime_field_visible_set(datetime, ELM_DATETIME_MONTH, EINA_FALSE);
elm_datetime_field_visible_set(datetime, ELM_DATETIME_DATE, EINA_FALSE);
elm_box_pack_end(bx, datetime);
elm_object_disabled_set(datetime, EINA_TRUE);
evas_object_show(datetime);
datetime = elm_datetime_add(bx);

View File

@ -471,6 +471,24 @@ _elm_datetime_smart_on_focus(Eo *obj, void *_pd, va_list *list)
if (ret) *ret = EINA_TRUE;
}
static void
_elm_datetime_smart_disable(Eo *obj, void *_pd, va_list *list)
{
Eina_Bool *ret = va_arg(*list, Eina_Bool *);
Datetime_Field *field;
unsigned int idx = 0;
if (ret) *ret = EINA_FALSE;
Elm_Datetime_Smart_Data *sd = _pd;
eo_do_super(obj, MY_CLASS, elm_wdg_disable(ret));
for (idx = 0; idx < ELM_DATETIME_TYPE_COUNT; idx++)
{
field = sd->field_list + idx;
elm_object_disabled_set(field->item_obj, elm_object_disabled_get(obj));
}
if (ret) *ret = EINA_TRUE;
}
static void
_elm_datetime_smart_sizing_eval(Eo *obj, void *_pd, va_list *list EINA_UNUSED)
{
@ -1228,7 +1246,8 @@ _class_constructor(Eo_Class *klass)
EO_OP_FUNC(ELM_WIDGET_ID(ELM_WIDGET_SUB_ID_FOCUS_NEXT), _elm_datetime_smart_focus_next),
EO_OP_FUNC(ELM_WIDGET_ID(ELM_WIDGET_SUB_ID_THEME), _elm_datetime_smart_theme),
EO_OP_FUNC(ELM_WIDGET_ID(ELM_WIDGET_SUB_ID_ON_FOCUS), _elm_datetime_smart_on_focus),
EO_OP_FUNC(ELM_WIDGET_ID(ELM_WIDGET_SUB_ID_DISABLE), _elm_datetime_smart_disable),
EO_OP_FUNC(ELM_OBJ_LAYOUT_ID(ELM_OBJ_LAYOUT_SUB_ID_SIZING_EVAL), _elm_datetime_smart_sizing_eval),
EO_OP_FUNC(ELM_OBJ_DATETIME_ID(ELM_OBJ_DATETIME_SUB_ID_FORMAT_GET), _format_get),