From 108f64d4907fac6bf615e3a83a4d830425186edb Mon Sep 17 00:00:00 2001 From: ChunEon Park Date: Fri, 15 Feb 2013 11:22:09 +0000 Subject: [PATCH] elementary/naviframe,button,label - support naviframe, button, label orientation mode SVN revision: 83947 --- src/lib/elc_naviframe.c | 28 ++++++++++++++++++++-------- src/lib/elm_button.c | 15 +++++++++++++-- src/lib/elm_label.c | 27 ++++++++++++++++++++++----- 3 files changed, 55 insertions(+), 15 deletions(-) diff --git a/src/lib/elc_naviframe.c b/src/lib/elc_naviframe.c index e8cef48..c18a6f0 100644 --- a/src/lib/elc_naviframe.c +++ b/src/lib/elc_naviframe.c @@ -277,16 +277,9 @@ _item_title_visible_update(Elm_Naviframe_Item *nit) } static void -_elm_naviframe_smart_theme(Eo *obj, void *_pd, va_list *list) +_theme_update(Evas_Object *obj, Elm_Naviframe_Smart_Data *sd) { Elm_Naviframe_Item *it; - Elm_Naviframe_Smart_Data *sd = _pd; - Eina_Bool *ret = va_arg(*list, Eina_Bool *); - if (ret) *ret = EINA_FALSE; - Eina_Bool int_ret = EINA_FALSE; - - eo_do_super(obj, elm_wdg_theme(&int_ret)); - if (!int_ret) return; EINA_INLIST_FOREACH(sd->stack, it) { @@ -296,10 +289,28 @@ _elm_naviframe_smart_theme(Eo *obj, void *_pd, va_list *list) } elm_layout_sizing_eval(obj); +} +static void +_elm_naviframe_smart_theme(Eo *obj, void *_pd, va_list *list) +{ + Eina_Bool *ret = va_arg(*list, Eina_Bool *); + Eina_Bool int_ret = EINA_FALSE; + eo_do_super(obj, elm_wdg_theme(&int_ret)); + if (!int_ret) return; + _theme_update(obj, _pd); if (ret) *ret = EINA_TRUE; } +static void +_elm_naviframe_smart_orientation_set(Eo *obj, void *_pd, va_list *list) +{ + int rotation = va_arg(*list, int); + eo_do_super(obj, elm_wdg_orientation_set(rotation)); + //TODO: Deffered Updation. update only top item. + _theme_update(obj, _pd); +} + static char * _access_info_cb(void *data, Evas_Object *obj __UNUSED__) { @@ -1974,6 +1985,7 @@ _class_constructor(Eo_Class *klass) EO_OP_FUNC(ELM_WIDGET_ID(ELM_WIDGET_SUB_ID_FOCUS_NEXT), _elm_naviframe_smart_focus_next), EO_OP_FUNC(ELM_WIDGET_ID(ELM_WIDGET_SUB_ID_THEME), _elm_naviframe_smart_theme), EO_OP_FUNC(ELM_WIDGET_ID(ELM_WIDGET_SUB_ID_ACCESS), _elm_naviframe_smart_access), + EO_OP_FUNC(ELM_WIDGET_ID(ELM_WIDGET_SUB_ID_ORIENTATION_SET), _elm_naviframe_smart_orientation_set), EO_OP_FUNC(ELM_OBJ_CONTAINER_ID(ELM_OBJ_CONTAINER_SUB_ID_CONTENT_SET), _elm_naviframe_smart_content_set), EO_OP_FUNC(ELM_OBJ_CONTAINER_ID(ELM_OBJ_CONTAINER_SUB_ID_CONTENT_GET), _elm_naviframe_smart_content_get), diff --git a/src/lib/elm_button.c b/src/lib/elm_button.c index b3efd0c..6528f8e 100644 --- a/src/lib/elm_button.c +++ b/src/lib/elm_button.c @@ -314,8 +314,6 @@ _elm_button_smart_add(Eo *obj, void *_pd, va_list *list EINA_UNUSED) (_elm_access_object_get(obj), ELM_ACCESS_STATE, _access_state_cb, priv); elm_widget_can_focus_set(obj, EINA_TRUE); - - elm_layout_theme_set(obj, "button", "base", elm_widget_style_get(obj)); } static void @@ -352,6 +350,8 @@ _constructor(Eo *obj, void *_pd EINA_UNUSED, va_list *list EINA_UNUSED) Evas_Object *parent = eo_parent_get(obj); if (!elm_widget_sub_object_add(parent, obj)) ERR("could not add %p as sub object of %p", obj, parent); + + elm_layout_theme_set(obj, "button", "base", elm_widget_style_get(obj)); } EAPI void @@ -521,6 +521,16 @@ _elm_button_smart_focus_direction_manager_is(Eo *obj EINA_UNUSED, void *_pd EINA } static void +_elm_button_smart_orientation_set(Eo *obj __UNUSED__, void *_pd __UNUSED__, va_list *list) + +{ + int rotation = va_arg(*list, int); + eo_do_super(obj, elm_wdg_orientation_set(rotation)); + elm_layout_theme_set(obj, "button", "base", elm_widget_style_get(obj)); + _icon_signal_emit(obj); +} + +static void _class_constructor(Eo_Class *klass) { const Eo_Op_Func_Description func_desc[] = { @@ -534,6 +544,7 @@ _class_constructor(Eo_Class *klass) EO_OP_FUNC(ELM_WIDGET_ID(ELM_WIDGET_SUB_ID_ACTIVATE), _elm_button_smart_activate), EO_OP_FUNC(ELM_WIDGET_ID(ELM_WIDGET_SUB_ID_FOCUS_NEXT_MANAGER_IS), _elm_button_smart_focus_next_manager_is), EO_OP_FUNC(ELM_WIDGET_ID(ELM_WIDGET_SUB_ID_FOCUS_DIRECTION_MANAGER_IS), _elm_button_smart_focus_direction_manager_is), + EO_OP_FUNC(ELM_WIDGET_ID(ELM_WIDGET_SUB_ID_ORIENTATION_SET), _elm_button_smart_orientation_set), EO_OP_FUNC(ELM_OBJ_CONTAINER_ID(ELM_OBJ_CONTAINER_SUB_ID_CONTENT_SET), _elm_button_smart_content_set), diff --git a/src/lib/elm_label.c b/src/lib/elm_label.c index 2b92d87..ec55414 100644 --- a/src/lib/elm_label.c +++ b/src/lib/elm_label.c @@ -151,6 +151,23 @@ _label_slide_change(Evas_Object *obj) } static void +_elm_label_smart_orientation_set(Eo *obj, void *_pd, va_list *list) +{ + int rotation = va_arg(*list, int); + Elm_Widget_Smart_Data *wd = eo_data_get(obj, ELM_OBJ_WIDGET_CLASS); + Elm_Label_Smart_Data *sd = _pd; + + eo_do_super(obj, elm_wdg_orientation_set(rotation)); + + elm_layout_theme_set(obj, "label", "base", elm_widget_style_get(obj)); + evas_event_freeze(evas_object_evas_get(obj)); + _label_format_set(wd->resize_obj, sd->format); + _label_slide_change(obj); + evas_event_thaw(evas_object_evas_get(obj)); + evas_event_thaw_eval(evas_object_evas_get(obj)); +} + +static void _elm_label_smart_theme(Eo *obj, void *_pd, va_list *list) { Eina_Bool *ret = va_arg(*list, Eina_Bool *); @@ -392,9 +409,6 @@ _elm_label_smart_add(Eo *obj, void *_pd, va_list *list EINA_UNUSED) edje_object_signal_callback_add(wd->resize_obj, "elm,state,slide,end", "", _on_slide_end, obj); - elm_layout_theme_set(obj, "label", "base", elm_widget_style_get(obj)); - elm_layout_text_set(obj, NULL, "
"); - /* access */ elm_widget_can_focus_set(obj, _elm_config->access_mode); @@ -403,8 +417,6 @@ _elm_label_smart_add(Eo *obj, void *_pd, va_list *list EINA_UNUSED) (_elm_access_object_get(obj), ELM_ACCESS_TYPE, E_("Label")); _elm_access_callback_set (_elm_access_object_get(obj), ELM_ACCESS_INFO, _access_info_cb, NULL); - - elm_layout_sizing_eval(obj); } EAPI Evas_Object * @@ -427,6 +439,10 @@ _constructor(Eo *obj, void *_pd EINA_UNUSED, va_list *list EINA_UNUSED) Evas_Object *parent = eo_parent_get(obj); if (!elm_widget_sub_object_add(parent, obj)) ERR("could not add %p as sub object of %p", obj, parent); + + elm_layout_theme_set(obj, "label", "base", elm_widget_style_get(obj)); + elm_layout_text_set(obj, NULL, "
"); + elm_layout_sizing_eval(obj); } EAPI void @@ -732,6 +748,7 @@ _class_constructor(Eo_Class *klass) EO_OP_FUNC(ELM_WIDGET_ID(ELM_WIDGET_SUB_ID_TRANSLATE), _elm_label_smart_translate), EO_OP_FUNC(ELM_WIDGET_ID(ELM_WIDGET_SUB_ID_FOCUS_NEXT_MANAGER_IS), _elm_label_smart_focus_next_manager_is), EO_OP_FUNC(ELM_WIDGET_ID(ELM_WIDGET_SUB_ID_FOCUS_DIRECTION_MANAGER_IS), _elm_label_smart_focus_direction_manager_is), + EO_OP_FUNC(ELM_WIDGET_ID(ELM_WIDGET_SUB_ID_ORIENTATION_SET), _elm_label_smart_orientation_set), EO_OP_FUNC(ELM_OBJ_LAYOUT_ID(ELM_OBJ_LAYOUT_SUB_ID_SIZING_EVAL), _elm_label_smart_sizing_eval), EO_OP_FUNC(ELM_OBJ_LAYOUT_ID(ELM_OBJ_LAYOUT_SUB_ID_TEXT_SET), _elm_label_smart_text_set), -- 2.7.4