elementary/naviframe - fix the naviframe to send the signals one time for content show/hide, text show/hide

SVN revision: 79890
This commit is contained in:
ChunEon Park 2012-11-30 13:16:11 +00:00
parent 552f1b3964
commit 8776fa93cb
3 changed files with 44 additions and 29 deletions

View File

@ -730,3 +730,7 @@
2012-11-30 ChunEon Park (Hermet) 2012-11-30 ChunEon Park (Hermet)
* Fix the naviframe to resize it's items which are inserted. * Fix the naviframe to resize it's items which are inserted.
2012-11-30 ChunEon Park (Hermet)
* emit the signals for content_set/unset text_set/unset one time!

View File

@ -67,7 +67,8 @@ Fixes:
* Fix entry to enable have_selection only when a text is actually selected. * Fix entry to enable have_selection only when a text is actually selected.
* Fix the naviframe to clear the text parts when it's item is deleted. * Fix the naviframe to clear the text parts when it's item is deleted.
* Fix the mapbuf to update it's content correcltly evenif they go outside of the buffer. * Fix the mapbuf to update it's content correcltly evenif they go outside of the buffer.
* Fix the naviframe to resize it's items which are inserted. * Fix the naviframe to resize it's items which are inserted.
* Fix the naviframe to send signal emits one time for content show/hide, text show/hide.
Removals: Removals:

View File

@ -191,9 +191,9 @@ _item_text_signals_emit(Elm_Naviframe_Item *it)
char buf[1024]; char buf[1024];
if ((it->title_label) && (it->title_label[0])) if ((it->title_label) && (it->title_label[0]))
edje_object_signal_emit(VIEW(it), "elm,state,title_label,show", "elm"); edje_object_signal_emit(VIEW(it), "elm,state,title,show", "elm");
else else
edje_object_signal_emit(VIEW(it), "elm,state,title_label,hide", "elm"); edje_object_signal_emit(VIEW(it), "elm,state,title,hide", "elm");
if ((it->subtitle_label) && (it->subtitle_label[0])) if ((it->subtitle_label) && (it->subtitle_label[0]))
edje_object_signal_emit(VIEW(it), "elm,state,subtitle,show", "elm"); edje_object_signal_emit(VIEW(it), "elm,state,subtitle,show", "elm");
@ -379,11 +379,19 @@ _item_text_set_hook(Elm_Object_Item *it,
{ {
eina_stringshare_replace(&nit->title_label, label); eina_stringshare_replace(&nit->title_label, label);
snprintf(buf, sizeof(buf), "elm.text.title"); snprintf(buf, sizeof(buf), "elm.text.title");
if (label)
edje_object_signal_emit(VIEW(it), "elm,state,title,show", "elm");
else
edje_object_signal_emit(VIEW(it), "elm,state,title,hide", "elm");
} }
else if (!strcmp("subtitle", part)) else if (!strcmp("subtitle", part))
{ {
eina_stringshare_replace(&nit->subtitle_label, label); eina_stringshare_replace(&nit->subtitle_label, label);
snprintf(buf, sizeof(buf), "elm.text.subtitle"); snprintf(buf, sizeof(buf), "elm.text.subtitle");
if (label)
edje_object_signal_emit(VIEW(it), "elm,state,subtitle,show", "elm");
else
edje_object_signal_emit(VIEW(it), "elm,state,subtitle,hide", "elm");
} }
else else
{ {
@ -403,12 +411,14 @@ _item_text_set_hook(Elm_Object_Item *it,
eina_stringshare_replace(&pair->part, buf); eina_stringshare_replace(&pair->part, buf);
nit->text_list = eina_inlist_append(nit->text_list, nit->text_list = eina_inlist_append(nit->text_list,
EINA_INLIST_GET(pair)); EINA_INLIST_GET(pair));
if (label)
snprintf(buf, sizeof(buf), "elm,state,%s,show", part);
else
snprintf(buf, sizeof(buf), "elm,state,%s,hide", part);
edje_object_signal_emit(VIEW(it), buf, "elm");
} }
} }
edje_object_part_text_set(VIEW(nit), buf, label);
_item_text_signals_emit(nit);
/* access */ /* access */
if (_elm_config->access_mode) if (_elm_config->access_mode)
_access_obj_process(nit, EINA_TRUE); _access_obj_process(nit, EINA_TRUE);
@ -499,6 +509,7 @@ _item_content_set(Elm_Naviframe_Item *it,
if (!content) return; if (!content) return;
edje_object_part_swallow(VIEW(it), CONTENT_PART, content); edje_object_part_swallow(VIEW(it), CONTENT_PART, content);
edje_object_signal_emit(VIEW(it), "elm,state,content,show", "elm");
evas_object_event_callback_add evas_object_event_callback_add
(content, EVAS_CALLBACK_DEL, _item_content_del_cb, it); (content, EVAS_CALLBACK_DEL, _item_content_del_cb, it);
@ -514,6 +525,7 @@ _item_title_prev_btn_set(Elm_Naviframe_Item *it,
if (!btn) return; if (!btn) return;
edje_object_part_swallow(VIEW(it), PREV_BTN_PART, btn); edje_object_part_swallow(VIEW(it), PREV_BTN_PART, btn);
edje_object_signal_emit(VIEW(it), "elm,state,prev_btn,show", "elm");
evas_object_event_callback_add evas_object_event_callback_add
(btn, EVAS_CALLBACK_DEL, _item_title_prev_btn_del_cb, it); (btn, EVAS_CALLBACK_DEL, _item_title_prev_btn_del_cb, it);
@ -529,6 +541,7 @@ _item_title_next_btn_set(Elm_Naviframe_Item *it,
if (!btn) return; if (!btn) return;
edje_object_part_swallow(VIEW(it), NEXT_BTN_PART, btn); edje_object_part_swallow(VIEW(it), NEXT_BTN_PART, btn);
edje_object_signal_emit(VIEW(it), "elm,state,next_btn,show", "elm");
evas_object_event_callback_add evas_object_event_callback_add
(btn, EVAS_CALLBACK_DEL, _item_title_next_btn_del_cb, it); (btn, EVAS_CALLBACK_DEL, _item_title_next_btn_del_cb, it);
@ -544,6 +557,7 @@ _item_title_icon_set(Elm_Naviframe_Item *it,
if (!icon) return; if (!icon) return;
edje_object_part_swallow(VIEW(it), ICON_PART, icon); edje_object_part_swallow(VIEW(it), ICON_PART, icon);
edje_object_signal_emit(VIEW(it), "elm,state,icon,show", "elm");
evas_object_event_callback_add evas_object_event_callback_add
(icon, EVAS_CALLBACK_DEL, _item_title_icon_del_cb, it); (icon, EVAS_CALLBACK_DEL, _item_title_icon_del_cb, it);
@ -557,6 +571,7 @@ _item_content_unset(Elm_Naviframe_Item *it)
if (!content) return NULL; if (!content) return NULL;
edje_object_part_unswallow(VIEW(it), it->content); edje_object_part_unswallow(VIEW(it), it->content);
edje_object_signal_emit(VIEW(it), "elm,state,content,hide", "elm");
evas_object_event_callback_del evas_object_event_callback_del
(content, EVAS_CALLBACK_DEL, _item_content_del_cb); (content, EVAS_CALLBACK_DEL, _item_content_del_cb);
@ -573,6 +588,7 @@ _item_title_prev_btn_unset(Elm_Naviframe_Item *it)
if (!content) return NULL; if (!content) return NULL;
edje_object_part_unswallow(VIEW(it), it->title_prev_btn); edje_object_part_unswallow(VIEW(it), it->title_prev_btn);
edje_object_signal_emit(VIEW(it), "elm,state,prev_btn,hide", "elm");
evas_object_event_callback_del evas_object_event_callback_del
(content, EVAS_CALLBACK_DEL, _item_title_prev_btn_del_cb); (content, EVAS_CALLBACK_DEL, _item_title_prev_btn_del_cb);
@ -589,6 +605,7 @@ _item_title_next_btn_unset(Elm_Naviframe_Item *it)
if (!content) return NULL; if (!content) return NULL;
edje_object_part_unswallow(VIEW(it), it->title_next_btn); edje_object_part_unswallow(VIEW(it), it->title_next_btn);
edje_object_signal_emit(VIEW(it), "elm,state,next_btn,hide", "elm");
evas_object_event_callback_del evas_object_event_callback_del
(content, EVAS_CALLBACK_DEL, _item_title_next_btn_del_cb); (content, EVAS_CALLBACK_DEL, _item_title_next_btn_del_cb);
@ -605,6 +622,7 @@ _item_title_icon_unset(Elm_Naviframe_Item *it)
if (!content) return NULL; if (!content) return NULL;
edje_object_part_unswallow(VIEW(it), it->title_icon); edje_object_part_unswallow(VIEW(it), it->title_icon);
edje_object_signal_emit(VIEW(it), "elm,state,icon,hide", "elm");
evas_object_event_callback_del evas_object_event_callback_del
(content, EVAS_CALLBACK_DEL, _item_title_icon_del_cb); (content, EVAS_CALLBACK_DEL, _item_title_icon_del_cb);
@ -642,18 +660,15 @@ _title_content_set(Elm_Naviframe_Item *it,
if (pair) if (pair)
{ {
prev_content = edje_object_part_swallow_get(VIEW(it), part); prev_content = edje_object_part_swallow_get(VIEW(it), part);
if (prev_content != content) if (prev_content == content) return;
if (content)
edje_object_part_swallow(VIEW(it), part, content);
if (prev_content)
{ {
if (content) evas_object_event_callback_del(prev_content,
{ EVAS_CALLBACK_DEL,
evas_object_event_callback_del(prev_content, _title_content_del);
EVAS_CALLBACK_DEL,
_title_content_del);
snprintf(buf, sizeof(buf), "elm,state,%s,hide", part);
elm_object_signal_emit(VIEW(it), buf, "elm");
}
evas_object_del(prev_content); evas_object_del(prev_content);
if (!content) return;
} }
} }
else else
@ -670,15 +685,14 @@ _title_content_set(Elm_Naviframe_Item *it,
eina_stringshare_replace(&pair->part, part); eina_stringshare_replace(&pair->part, part);
it->content_list = eina_inlist_append(it->content_list, it->content_list = eina_inlist_append(it->content_list,
EINA_INLIST_GET(pair)); EINA_INLIST_GET(pair));
} evas_object_event_callback_add(content,
if (prev_content != content) EVAS_CALLBACK_DEL,
{ _title_content_del,
evas_object_event_callback_add(content, pair);
EVAS_CALLBACK_DEL, edje_object_part_swallow(VIEW(it), part, content);
_title_content_del, snprintf(buf, sizeof(buf), "elm,state,%s,show", part);
pair); edje_object_signal_emit(VIEW(it), buf, "elm");
} }
edje_object_part_swallow(VIEW(it), part, content);
} }
static void static void
@ -702,8 +716,6 @@ _item_content_set_hook(Elm_Object_Item *it,
else else
_title_content_set(nit, part, content); _title_content_set(nit, part, content);
_item_content_signals_emit(nit);
elm_layout_sizing_eval(WIDGET(it)); elm_layout_sizing_eval(WIDGET(it));
} }
@ -781,8 +793,6 @@ _item_content_unset_hook(Elm_Object_Item *it,
else else
o = _title_content_unset(nit, part); o = _title_content_unset(nit, part);
_item_content_signals_emit(nit);
elm_layout_sizing_eval(WIDGET(it)); elm_layout_sizing_eval(WIDGET(it));
return o; return o;