forked from enlightenment/efl
elementary/elm_naviframe - modified to use elm_object_item common_apis
SVN revision: 62097
This commit is contained in:
parent
c2736b1e8b
commit
2b4f061b56
|
@ -54,8 +54,8 @@ _page4(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
|||
bt,
|
||||
bt2,
|
||||
NULL);
|
||||
elm_naviframe_item_subtitle_label_set(it, "Here is sub-title part!");
|
||||
elm_naviframe_item_icon_set(it, ic);
|
||||
elm_object_item_text_part_set(it, "elm.text.subtitle", "Here is sub-title part!");
|
||||
elm_object_item_content_part_set(it, "elm.swallow.icon", ic);
|
||||
elm_naviframe_item_title_visible_set(it, EINA_FALSE);
|
||||
evas_object_smart_callback_add(bt2, "clicked", _title_visible, it);
|
||||
}
|
||||
|
@ -92,8 +92,8 @@ _page3(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
|||
bt2,
|
||||
bt3,
|
||||
NULL);
|
||||
elm_naviframe_item_subtitle_label_set(it, "Here is sub-title part!");
|
||||
elm_naviframe_item_icon_set(it, ic);
|
||||
elm_object_item_text_part_set(it, "elm.text.subtitle", "Here is sub-title part!");
|
||||
elm_object_item_content_part_set(it, "elm.swallow.icon", ic);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -123,7 +123,7 @@ _page2(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
|||
bt,
|
||||
bt2,
|
||||
NULL);
|
||||
elm_naviframe_item_subtitle_label_set(it, "Here is sub-title part!");
|
||||
elm_object_item_text_part_set(it, "elm.text.subtitle", "Here is sub-title part!");
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -348,6 +348,7 @@ extern "C" {
|
|||
*/
|
||||
typedef struct _Elm_Object_Item Elm_Object_Item;
|
||||
|
||||
|
||||
/**
|
||||
* Called back when a widget's tooltip is activated and needs content.
|
||||
* @param data user-data given to elm_object_tooltip_content_cb_set()
|
||||
|
@ -24149,8 +24150,6 @@ extern "C" {
|
|||
EAPI Evas_Object *elm_naviframe_item_pop(Evas_Object *obj) EINA_ARG_NONNULL(1);
|
||||
EAPI void elm_naviframe_content_preserve_on_pop_set(Evas_Object *obj, Eina_Bool preserve) EINA_ARG_NONNULL(1);
|
||||
EAPI Eina_Bool elm_naviframe_content_preserve_on_pop_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
|
||||
EAPI void elm_naviframe_item_content_set(Elm_Object_Item *item, Evas_Object *content) EINA_ARG_NONNULL(1);
|
||||
EAPI Evas_Object *elm_naviframe_item_content_get(const Elm_Object_Item *it) EINA_ARG_NONNULL(1);
|
||||
EAPI void elm_naviframe_item_title_label_set(Elm_Object_Item *it, const char *label) EINA_ARG_NONNULL(1);
|
||||
EAPI const char *elm_naviframe_item_title_label_get(const Elm_Object_Item *it) EINA_ARG_NONNULL(1);
|
||||
EAPI void elm_naviframe_item_subtitle_label_set(Elm_Object_Item *it, const char *label) EINA_ARG_NONNULL(1);
|
||||
|
@ -24159,8 +24158,6 @@ extern "C" {
|
|||
EAPI Elm_Object_Item *elm_naviframe_bottom_item_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
|
||||
EAPI void elm_naviframe_item_button_set(Elm_Object_Item *it, Evas_Object *btn, Elm_Naviframe_Button_Type btn_type) EINA_ARG_NONNULL(1);
|
||||
EAPI Evas_Object *elm_naviframe_item_button_get(const Elm_Object_Item *it, Elm_Naviframe_Button_Type btn_type) EINA_ARG_NONNULL(1);
|
||||
EAPI void elm_naviframe_item_icon_set(Elm_Object_Item *it, Evas_Object *icon) EINA_ARG_NONNULL(1);
|
||||
EAPI Evas_Object *elm_naviframe_item_icon_get(const Elm_Object_Item *it) EINA_ARG_NONNULL(1);
|
||||
EAPI void elm_naviframe_item_style_set(Elm_Object_Item *it, const char *item_style) EINA_ARG_NONNULL(1);
|
||||
EAPI const char *elm_naviframe_item_style_get(const Elm_Object_Item *it) EINA_ARG_NONNULL(1);
|
||||
EAPI void elm_naviframe_item_title_visible_set(Elm_Object_Item *it, Eina_Bool visible) EINA_ARG_NONNULL(1);
|
||||
|
|
|
@ -41,6 +41,18 @@ static const Evas_Smart_Cb_Description _signals[] = {
|
|||
static void _del_hook(Evas_Object *obj);
|
||||
static void _theme_hook(Evas_Object *obj);
|
||||
static void _disable_hook(Evas_Object *obj);
|
||||
static void _text_set_hook(Elm_Object_Item *it,
|
||||
const char *part,
|
||||
const char *label);
|
||||
static const char *_text_get_hook(const Elm_Object_Item *it,
|
||||
const char *part);
|
||||
static void _content_set_hook(Elm_Object_Item *it,
|
||||
const char *part,
|
||||
Evas_Object *content);
|
||||
static Evas_Object *_content_get_hook(const Elm_Object_Item *it,
|
||||
const char *part);
|
||||
static Evas_Object *_content_unset_hook(Elm_Object_Item *it,
|
||||
const char *part);
|
||||
static void _sizing_eval(Evas_Object *obj);
|
||||
static void _item_sizing_eval(Elm_Naviframe_Item *it);
|
||||
static void _move(void *data, Evas *e, Evas_Object *obj, void *event_info);
|
||||
|
@ -88,6 +100,15 @@ static void _show_finished(void *data,
|
|||
Evas_Object *obj,
|
||||
const char *emission,
|
||||
const char *source);
|
||||
static void _item_content_set(Elm_Naviframe_Item *navi_it,
|
||||
Evas_Object *content);
|
||||
static void _item_icon_set(Elm_Naviframe_Item *it, Evas_Object *icon);
|
||||
static void _item_title_label_set(Elm_Naviframe_Item *navi_it,
|
||||
const char *label);
|
||||
static void _item_subtitle_label_set(Elm_Naviframe_Item *navi_it,
|
||||
const char *label);
|
||||
|
||||
|
||||
|
||||
static void
|
||||
_del_hook(Evas_Object *obj)
|
||||
|
@ -117,6 +138,87 @@ _disable_hook(Evas_Object *obj __UNUSED__)
|
|||
//FIXME:
|
||||
}
|
||||
|
||||
static void
|
||||
_text_set_hook(Elm_Object_Item *it, const char *part, const char *label)
|
||||
{
|
||||
ELM_OBJ_ITEM_CHECK_OR_RETURN(it);
|
||||
Elm_Naviframe_Item *navi_it = ELM_CAST(it);
|
||||
|
||||
if ((!part) || (!strcmp(part, "elm.text.title")))
|
||||
{
|
||||
_item_title_label_set(navi_it, label);
|
||||
return;
|
||||
}
|
||||
else if(!strcmp(part, "elm.text.subtitle"))
|
||||
{
|
||||
_item_subtitle_label_set(navi_it, label);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
static const char *
|
||||
_text_get_hook(const Elm_Object_Item *it, const char *part)
|
||||
{
|
||||
ELM_OBJ_ITEM_CHECK_OR_RETURN(it, NULL);
|
||||
Elm_Naviframe_Item *navi_it = ELM_CAST(it);
|
||||
|
||||
if ((!part) || (!strcmp(part, "elm.text.title")))
|
||||
{
|
||||
return navi_it->title_label;
|
||||
}
|
||||
else if(!strcmp(part, "elm.text.subtitle"))
|
||||
{
|
||||
return navi_it->title_sublabel;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static void
|
||||
_content_set_hook(Elm_Object_Item *it,
|
||||
const char *part,
|
||||
Evas_Object *content)
|
||||
{
|
||||
ELM_OBJ_ITEM_CHECK_OR_RETURN(it);
|
||||
Elm_Naviframe_Item *navi_it = ELM_CAST(it);
|
||||
|
||||
if ((!(part)) || (!strcmp(part, "elm.swallow.content")))
|
||||
{
|
||||
_item_content_set(navi_it, content);
|
||||
return;
|
||||
}
|
||||
else if(!strcmp(part, "elm.swallow.icon"))
|
||||
{
|
||||
_item_icon_set(navi_it, content);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
static Evas_Object *
|
||||
_content_get_hook(const Elm_Object_Item *it,
|
||||
const char *part)
|
||||
{
|
||||
ELM_OBJ_ITEM_CHECK_OR_RETURN(it, NULL);
|
||||
Elm_Naviframe_Item *navi_it = ELM_CAST(it);
|
||||
|
||||
if ((!(part)) || (!strcmp(part, "elm.swallow.content")))
|
||||
{
|
||||
return navi_it->content;
|
||||
}
|
||||
else if(!strcmp(part, "elm.swallow.icon"))
|
||||
{
|
||||
return navi_it->title_icon;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static Evas_Object *
|
||||
_content_unset_hook(Elm_Object_Item *it __UNUSED__,
|
||||
const char *part __UNUSED__)
|
||||
{
|
||||
//FIXME:
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static void
|
||||
_sizing_eval(Evas_Object *obj)
|
||||
{
|
||||
|
@ -366,6 +468,79 @@ _show_finished(void *data,
|
|||
evas_object_pass_events_set(wd->base, EINA_FALSE);
|
||||
}
|
||||
|
||||
static void
|
||||
_item_content_set(Elm_Naviframe_Item *navi_it, Evas_Object *content)
|
||||
{
|
||||
if (navi_it->content == content) return;
|
||||
if (navi_it->content) evas_object_del(navi_it->content);
|
||||
elm_widget_sub_object_add(navi_it->base.widget, content);
|
||||
edje_object_part_swallow(navi_it->base.view, "elm.swallow.content", content);
|
||||
if (content)
|
||||
edje_object_signal_emit(navi_it->base.view,
|
||||
"elm,state,content,show",
|
||||
"elm");
|
||||
else
|
||||
edje_object_signal_emit(navi_it->base.view,
|
||||
"elm,state,content,hide",
|
||||
"elm");
|
||||
evas_object_event_callback_add(content,
|
||||
EVAS_CALLBACK_DEL,
|
||||
_content_del,
|
||||
navi_it);
|
||||
navi_it->content = content;
|
||||
_item_sizing_eval(navi_it);
|
||||
}
|
||||
|
||||
static void
|
||||
_item_icon_set(Elm_Naviframe_Item *navi_it, Evas_Object *icon)
|
||||
{
|
||||
Widget_Data *wd = elm_widget_data_get(navi_it->base.widget);
|
||||
if (!wd) return;
|
||||
|
||||
if (navi_it->title_icon == icon) return;
|
||||
if (navi_it->title_icon) evas_object_del(navi_it->title_icon);
|
||||
navi_it->title_icon = icon;
|
||||
if (!icon)
|
||||
{
|
||||
edje_object_signal_emit(navi_it->title,
|
||||
"elm,state,icon,hide",
|
||||
"elm");
|
||||
return;
|
||||
}
|
||||
elm_widget_sub_object_add(navi_it->base.widget, icon);
|
||||
edje_object_part_swallow(navi_it->title, "elm.swallow.icon", icon);
|
||||
edje_object_signal_emit(navi_it->title, "elm,state,icon,show", "elm");
|
||||
|
||||
evas_object_event_callback_add(icon, EVAS_CALLBACK_DEL, _title_icon_del, navi_it);
|
||||
_item_sizing_eval(navi_it);
|
||||
}
|
||||
|
||||
static void
|
||||
_item_title_label_set(Elm_Naviframe_Item *navi_it, const char *label)
|
||||
{
|
||||
edje_object_part_text_set(navi_it->title, "elm.text.title", label);
|
||||
if (label)
|
||||
edje_object_signal_emit(navi_it->title, "elm,state,title,show", "elm");
|
||||
else
|
||||
edje_object_signal_emit(navi_it->title, "elm,state,title,hidew", "elm");
|
||||
|
||||
eina_stringshare_replace(&navi_it->title_label, label);
|
||||
_item_sizing_eval(navi_it);
|
||||
}
|
||||
|
||||
static void
|
||||
_item_subtitle_label_set(Elm_Naviframe_Item *navi_it, const char *label)
|
||||
{
|
||||
edje_object_part_text_set(navi_it->title, "elm.text.subtitle", label);
|
||||
if (label)
|
||||
edje_object_signal_emit(navi_it->title, "elm,state,subtitle,show", "elm");
|
||||
else
|
||||
edje_object_signal_emit(navi_it->title, "elm,state,subtitle,hide", "elm");
|
||||
|
||||
eina_stringshare_replace(&navi_it->title_sublabel, label);
|
||||
_item_sizing_eval(navi_it);
|
||||
}
|
||||
|
||||
EAPI Evas_Object *
|
||||
elm_naviframe_add(Evas_Object *parent)
|
||||
{
|
||||
|
@ -413,6 +588,13 @@ elm_naviframe_item_push(Evas_Object *obj, const char *title_label, Evas_Object *
|
|||
ERR("Failed to allocate new item! : naviframe=%p", obj);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
elm_widget_item_text_set_hook_set(it, _text_set_hook);
|
||||
elm_widget_item_text_get_hook_set(it, _text_get_hook);
|
||||
elm_widget_item_content_set_hook_set(it, _content_set_hook);
|
||||
elm_widget_item_content_get_hook_set(it, _content_get_hook);
|
||||
elm_widget_item_content_unset_hook_set(it, _content_unset_hook);
|
||||
|
||||
//item base layout
|
||||
it->base.view = edje_object_add(evas_object_evas_get(obj));
|
||||
evas_object_smart_member_add(it->base.view, wd->base);
|
||||
|
@ -443,7 +625,7 @@ elm_naviframe_item_push(Evas_Object *obj, const char *title_label, Evas_Object *
|
|||
"elm",
|
||||
_title_clicked, it);
|
||||
|
||||
elm_naviframe_item_title_label_set(ELM_CAST(it), title_label);
|
||||
_item_title_label_set(it, title_label);
|
||||
|
||||
//title buttons
|
||||
if ((!prev_btn) && (eina_list_count(wd->stack)))
|
||||
|
@ -457,7 +639,7 @@ elm_naviframe_item_push(Evas_Object *obj, const char *title_label, Evas_Object *
|
|||
_title_next_btn_set(it, next_btn);
|
||||
edje_object_part_swallow(it->base.view, "elm.swallow.title", it->title);
|
||||
|
||||
elm_naviframe_item_content_set(ELM_CAST(it), content);
|
||||
_item_content_set(it, content);
|
||||
|
||||
_item_sizing_eval(it);
|
||||
evas_object_show(it->base.view);
|
||||
|
@ -535,88 +717,6 @@ elm_naviframe_content_preserve_on_pop_get(const Evas_Object *obj)
|
|||
return wd->preserve;
|
||||
}
|
||||
|
||||
EAPI void
|
||||
elm_naviframe_item_content_set(Elm_Object_Item *it, Evas_Object *content)
|
||||
{
|
||||
ELM_OBJ_ITEM_CHECK_OR_RETURN(it);
|
||||
Elm_Naviframe_Item *navi_it = ELM_CAST(it);
|
||||
|
||||
if (navi_it->content == content) return;
|
||||
if (navi_it->content) evas_object_del(navi_it->content);
|
||||
elm_widget_sub_object_add(navi_it->base.widget, content);
|
||||
edje_object_part_swallow(navi_it->base.view, "elm.swallow.content", content);
|
||||
if (content)
|
||||
edje_object_signal_emit(navi_it->base.view,
|
||||
"elm,state,content,show",
|
||||
"elm");
|
||||
else
|
||||
edje_object_signal_emit(navi_it->base.view,
|
||||
"elm,state,content,hide",
|
||||
"elm");
|
||||
evas_object_event_callback_add(content,
|
||||
EVAS_CALLBACK_DEL,
|
||||
_content_del,
|
||||
navi_it);
|
||||
navi_it->content = content;
|
||||
_item_sizing_eval(navi_it);
|
||||
}
|
||||
|
||||
EAPI Evas_Object *
|
||||
elm_naviframe_item_content_get(const Elm_Object_Item *it)
|
||||
{
|
||||
ELM_OBJ_ITEM_CHECK_OR_RETURN(it, NULL);
|
||||
Elm_Naviframe_Item *navi_it = ELM_CAST(it);
|
||||
return navi_it->content;
|
||||
}
|
||||
|
||||
EAPI void
|
||||
elm_naviframe_item_title_label_set(Elm_Object_Item *it, const char *label)
|
||||
{
|
||||
ELM_OBJ_ITEM_CHECK_OR_RETURN(it);
|
||||
Elm_Naviframe_Item *navi_it = ELM_CAST(it);
|
||||
|
||||
edje_object_part_text_set(navi_it->title, "elm.text.title", label);
|
||||
if (label)
|
||||
edje_object_signal_emit(navi_it->title, "elm,state,title,show", "elm");
|
||||
else
|
||||
edje_object_signal_emit(navi_it->title, "elm,state,title,hidew", "elm");
|
||||
|
||||
eina_stringshare_replace(&navi_it->title_label, label);
|
||||
_item_sizing_eval(navi_it);
|
||||
}
|
||||
|
||||
EAPI const char *
|
||||
elm_naviframe_item_title_label_get(const Elm_Object_Item *it)
|
||||
{
|
||||
ELM_OBJ_ITEM_CHECK_OR_RETURN(it, NULL);
|
||||
Elm_Naviframe_Item *navi_it = ELM_CAST(it);
|
||||
return navi_it->title_label;
|
||||
}
|
||||
|
||||
EAPI void
|
||||
elm_naviframe_item_subtitle_label_set(Elm_Object_Item *it, const char *label)
|
||||
{
|
||||
ELM_OBJ_ITEM_CHECK_OR_RETURN(it);
|
||||
Elm_Naviframe_Item *navi_it = ELM_CAST(it);
|
||||
|
||||
edje_object_part_text_set(navi_it->title, "elm.text.subtitle", label);
|
||||
if (label)
|
||||
edje_object_signal_emit(navi_it->title, "elm,state,subtitle,show", "elm");
|
||||
else
|
||||
edje_object_signal_emit(navi_it->title, "elm,state,subtitle,hide", "elm");
|
||||
|
||||
eina_stringshare_replace(&navi_it->title_sublabel, label);
|
||||
_item_sizing_eval(navi_it);
|
||||
}
|
||||
|
||||
EAPI const char *
|
||||
elm_naviframe_item_subtitle_label_get(const Elm_Object_Item *it)
|
||||
{
|
||||
ELM_OBJ_ITEM_CHECK_OR_RETURN(it, NULL);
|
||||
Elm_Naviframe_Item *navi_it = ELM_CAST(it);
|
||||
return navi_it->title_sublabel;
|
||||
}
|
||||
|
||||
EAPI Elm_Object_Item*
|
||||
elm_naviframe_top_item_get(const Evas_Object *obj)
|
||||
{
|
||||
|
@ -675,41 +775,6 @@ elm_naviframe_item_button_get(const Elm_Object_Item *it, Elm_Naviframe_Button_Ty
|
|||
return NULL;
|
||||
}
|
||||
|
||||
EAPI void
|
||||
elm_naviframe_item_icon_set(Elm_Object_Item *it, Evas_Object *icon)
|
||||
{
|
||||
ELM_OBJ_ITEM_CHECK_OR_RETURN(it);
|
||||
Elm_Naviframe_Item *navi_it = ELM_CAST(it);
|
||||
|
||||
Widget_Data *wd = elm_widget_data_get(navi_it->base.widget);
|
||||
if (!wd) return;
|
||||
|
||||
if (navi_it->title_icon == icon) return;
|
||||
if (navi_it->title_icon) evas_object_del(navi_it->title_icon);
|
||||
navi_it->title_icon = icon;
|
||||
if (!icon)
|
||||
{
|
||||
edje_object_signal_emit(navi_it->title,
|
||||
"elm,state,icon,hide",
|
||||
"elm");
|
||||
return;
|
||||
}
|
||||
elm_widget_sub_object_add(navi_it->base.widget, icon);
|
||||
edje_object_part_swallow(navi_it->title, "elm.swallow.icon", icon);
|
||||
edje_object_signal_emit(navi_it->title, "elm,state,icon,show", "elm");
|
||||
|
||||
evas_object_event_callback_add(icon, EVAS_CALLBACK_DEL, _title_icon_del, navi_it);
|
||||
_item_sizing_eval(navi_it);
|
||||
}
|
||||
|
||||
EAPI Evas_Object *
|
||||
elm_naviframe_item_icon_get(const Elm_Object_Item *it)
|
||||
{
|
||||
ELM_OBJ_ITEM_CHECK_OR_RETURN(it, NULL);
|
||||
Elm_Naviframe_Item *navi_it = ELM_CAST(it);
|
||||
return navi_it->title_icon;
|
||||
}
|
||||
|
||||
EAPI void
|
||||
elm_naviframe_item_style_set(Elm_Object_Item *it, const char *item_style)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue