From 9a193b37820f2bdb8166605060a057d24b488b3c Mon Sep 17 00:00:00 2001 From: shilpa Date: Thu, 19 Aug 2010 00:53:05 +0900 Subject: [PATCH] elm_navigationbar - elm_navigationbar_to_content_pop re-created, and manual size calculations removed from .c code, and some code optimizations done. --- src/lib/elm_navigationbar.c | 49 +++++++++++++++++---------------------------- 1 file changed, 18 insertions(+), 31 deletions(-) diff --git a/src/lib/elm_navigationbar.c b/src/lib/elm_navigationbar.c index 114e8fc..91fc585 100644 --- a/src/lib/elm_navigationbar.c +++ b/src/lib/elm_navigationbar.c @@ -238,7 +238,7 @@ _item_sizing_eval(Item *it) } if (it->title_list) { - it->title_w = w - it->fn_btn1_w - it->fn_btn2_w -it->fn_btn3_w - pad_count * pad; + it->title_w = _set_button_width(it->title_obj); it->title_obj = _multiple_object_set(it->obj, it->title_obj, it->title_list, it->title_w); evas_object_resize(it->title_obj, it->title_w, height); evas_object_size_hint_min_set(it->title_obj, it->title_w, height); @@ -331,7 +331,6 @@ _transition_complete_cb(void *data) } } edje_object_message_signal_process(wd->base); - free(cb); evas_object_smart_callback_call(it->obj, "updated", it->content); } @@ -436,7 +435,7 @@ _multiple_object_set(Evas_Object *obj, Evas_Object *sub_obj, Eina_List *list, in { new_obj = elm_layout_add(obj); elm_widget_sub_object_add(obj, new_obj); - elm_layout_theme_set(new_obj, "navigationbar", "title", "default"); + elm_layout_theme_set(new_obj, "navigationbar", "title", elm_widget_style_get(obj)); } else new_obj = sub_obj; @@ -571,7 +570,7 @@ elm_navigationbar_push(Evas_Object *obj, } else { - elm_button_label_set(it->back_btn, "< Prev."); + elm_button_label_set(it->back_btn, "< Previous"); } evas_object_smart_callback_add(it->back_btn, "clicked", _back_button_clicked, it); _button_set(obj, NULL, it->back_btn, EINA_TRUE); @@ -581,11 +580,10 @@ elm_navigationbar_push(Evas_Object *obj, edje_object_part_text_set(wd->base, "elm.text", title); _item_sizing_eval(it); + Transit_Cb_Data *cb = ELM_NEW(Transit_Cb_Data); // unswallow items and start transition if (prev_it) { - Transit_Cb_Data *cb = ELM_NEW(Transit_Cb_Data); - cb->prev_it = prev_it; cb->it = it; cb->pop = EINA_FALSE; @@ -594,17 +592,15 @@ elm_navigationbar_push(Evas_Object *obj, else if (prev_it->back_btn) edje_object_part_unswallow(wd->base, prev_it->back_btn); if (prev_it->fn_btn2) edje_object_part_unswallow(wd->base, prev_it->fn_btn2); if (prev_it->fn_btn3) edje_object_part_unswallow(wd->base, prev_it->fn_btn3); - _transition_complete_cb(cb); } else { - Transit_Cb_Data *cb = ELM_NEW(Transit_Cb_Data); cb->prev_it = NULL; cb->it = it; - cb->pop = EINA_FALSE; - _transition_complete_cb(cb); + cb->pop = EINA_FALSE; } - + _transition_complete_cb(cb); + free(cb); //push content to pager elm_pager_content_push(wd->pager, it->content); @@ -721,31 +717,22 @@ elm_navigationbar_to_content_pop(Evas_Object *obj, if (ll) { prev_it = ll->data; - ll = ll->prev; + ll = ll->prev; while (ll) { - it = ll->data; - if (it->obj && (it->content == content)) - { - //delete contents between the top and the inputted content - ll = eina_list_last(wd->stack); - - while (ll) - { - if (ll->data == it) break; - else - { - _delete_item(ll->data); - wd->stack = eina_list_remove_list(wd->stack, ll); - break; - } - ll = ll->prev; + it = ll->data; + if (it->obj && (it->content != content)) + { + _delete_item(ll->data); + wd->stack = eina_list_remove_list(wd->stack, ll); + it = NULL; } - break; + else + break; + + ll = ll->prev; } - it = NULL; } - } if (prev_it && it) { -- 2.7.4