typedef struct _Widget_Data Widget_Data;\r
typedef struct _function_button fn_button;\r
\r
-\r
-\r
struct _Widget_Data\r
{\r
Eina_List *stack, *to_delete;\r
\r
struct _function_button\r
{\r
- Evas_Object *btn;\r
- int btn_id;\r
+ Evas_Object *btn;\r
+ int btn_id;\r
};\r
\r
static const char *widtype = NULL;\r
static void _changed_size_hints(void *data, Evas *e, Evas_Object *obj, void *event_info);\r
static void _sub_del(void *data, Evas_Object *obj, void *event_info);\r
\r
-\r
static void\r
_del_hook(Evas_Object *obj)\r
{\r
- Widget_Data *wd = elm_widget_data_get(obj);\r
- if (!wd) return;\r
- free(wd);\r
+ Widget_Data *wd = elm_widget_data_get(obj);\r
+ if (!wd) return;\r
+ free(wd);\r
}\r
\r
-\r
static Evas_Object*\r
_content_unset(Elm_Navigationbar_ex_Item* item)\r
{\r
- if(!item) return NULL;\r
- Evas_Object *content = NULL;\r
- if(!item->content) return NULL; \r
- content = item->content;\r
- elm_widget_sub_object_del(item->obj,item->content);\r
- edje_object_part_unswallow(item->ct_base,item->content); \r
- item->content = NULL;\r
- evas_object_hide(content);\r
- return content;\r
+ if (!item) return NULL;\r
+ Evas_Object *content = NULL;\r
+ if (!item->content) return NULL; \r
+ content = item->content;\r
+ elm_widget_sub_object_del(item->obj,item->content);\r
+ edje_object_part_unswallow(item->ct_base,item->content); \r
+ item->content = NULL;\r
+ evas_object_hide(content);\r
+ return content;\r
}\r
\r
static void\r
_theme_hook(Evas_Object *obj)\r
{\r
- Widget_Data *wd = elm_widget_data_get(obj);\r
- Eina_List *l;\r
- char buf_fn[1024];\r
- char buf[1024];\r
- Elm_Navigationbar_ex_Item *it;\r
- if (!wd) return;\r
+ Widget_Data *wd = elm_widget_data_get(obj);\r
+ Eina_List *l;\r
+ char buf_fn[1024];\r
+ char buf[1024];\r
+ Elm_Navigationbar_ex_Item *it;\r
+ if (!wd) return;\r
EINA_LIST_FOREACH(wd->stack, l, it)\r
- {\r
- Eina_List *bl;\r
- fn_button *btn;\r
- edje_object_scale_set(it->base, elm_widget_scale_get(obj) * \r
- _elm_config->scale);\r
-\r
- strncpy(buf, "item/", sizeof(buf));\r
- strncat(buf, it->item_style, sizeof(buf) - strlen(buf));\r
- _elm_theme_object_set(obj, it->t_base, "navigationbar_ex", buf, elm_widget_style_get(obj));\r
-\r
- _elm_theme_object_set(obj, it->ct_base, "navigationbar_ex", "content", elm_widget_style_get(obj));\r
- _elm_theme_object_set(obj, it->base, "navigationbar_ex", "base", elm_widget_style_get(obj));\r
-\r
- EINA_LIST_FOREACH(it->fnbtn_list, bl, btn)\r
- {\r
- if(btn->btn_id == ELM_NAVIGATIONBAR_EX_BACK_BUTTON)\r
- {\r
- snprintf(buf_fn, sizeof(buf_fn), "navigationbar_backbutton/%s", elm_widget_style_get(obj));\r
- elm_object_style_set(btn->btn, buf_fn);\r
- }\r
- else\r
- {\r
- snprintf(buf_fn, sizeof(buf_fn), "navigationbar_functionbutton/%s", elm_widget_style_get(obj));\r
- elm_object_style_set(btn->btn, buf_fn);\r
- }\r
- }\r
- }\r
+ {\r
+ Eina_List *bl;\r
+ fn_button *btn;\r
+ edje_object_scale_set(it->base, elm_widget_scale_get(obj) * \r
+ _elm_config->scale); \r
+ strncpy(buf, "item/", sizeof(buf));\r
+ strncat(buf, it->item_style, sizeof(buf) - strlen(buf));\r
+ _elm_theme_object_set(obj, it->t_base, "navigationbar_ex", buf, elm_widget_style_get(obj));\r
+ _elm_theme_object_set(obj, it->ct_base, "navigationbar_ex", "content", elm_widget_style_get(obj));\r
+ _elm_theme_object_set(obj, it->base, "navigationbar_ex", "base", elm_widget_style_get(obj));\r
+ EINA_LIST_FOREACH(it->fnbtn_list, bl, btn)\r
+ {\r
+ if (btn->btn_id == ELM_NAVIGATIONBAR_EX_BACK_BUTTON)\r
+ {\r
+ snprintf(buf_fn, sizeof(buf_fn), "navigationbar_backbutton/%s", elm_widget_style_get(obj));\r
+ elm_object_style_set(btn->btn, buf_fn);\r
+ }\r
+ else\r
+ {\r
+ snprintf(buf_fn, sizeof(buf_fn), "navigationbar_functionbutton/%s", elm_widget_style_get(obj));\r
+ elm_object_style_set(btn->btn, buf_fn);\r
+ }\r
+ }\r
+ }\r
_sizing_eval(obj);\r
}\r
\r
if (!wd) return;\r
EINA_LIST_FOREACH(wd->stack, l, it)\r
{\r
- if (it->minw > minw) minw = it->minw;\r
- if (it->minh > minh) minh = it->minh;\r
+ if (it->minw > minw) minw = it->minw;\r
+ if (it->minh > minh) minh = it->minh;\r
}\r
evas_object_size_hint_min_set(obj, minw, minh);\r
evas_object_size_hint_max_set(obj, -1, -1);\r
ittop = eina_list_last(wd->stack)->data;\r
if (ittop != wd->top)\r
{\r
- Evas_Object *o, *o1, *o2;\r
- const char *onshow, *onhide;\r
-\r
- if (wd->top)\r
- {\r
- o = wd->top->base;\r
- o1 = wd->top->ct_base;\r
- o2 = wd->top->t_base;/*make use of the signals sent for animation*/\r
-\r
- /*issue to fix, hide signal does not come for t_base, increasing time helps \r
- in getting correct events in pop*/\r
- if(wd->disable_animation)\r
- {\r
- edje_object_signal_emit(o2, "elm,action,hide,noanimate", "elm");\r
- edje_object_signal_emit(o1, "elm,action,hide,noanimate", "elm"); \r
- }\r
- else if (wd->top->popme)\r
- { \r
- edje_object_signal_emit(o2, "elm,action,pop", "elm");\r
- edje_object_signal_emit(o1, "elm,action,pop", "elm");\r
- }\r
- else\r
- {\r
- edje_object_signal_emit(o2, "elm,action,hide", "elm");\r
- edje_object_signal_emit(o1, "elm,action,hide", "elm");\r
- }\r
- onhide = edje_object_data_get(o1, "onhide");\r
- if (onhide)\r
- {\r
- if (!strcmp(onhide, "raise")) {\r
- evas_object_raise(o2);\r
- evas_object_raise(o1);\r
- }\r
- else if (!strcmp(onhide, "lower")) \r
- {\r
- evas_object_lower(o2);\r
- evas_object_lower(o1); \r
- }\r
- }\r
- }\r
- else\r
- {\r
- animate = EINA_FALSE;\r
- }\r
- wd->oldtop = wd->top;\r
- wd->top = ittop;\r
- o = wd->top->base;\r
- o1 = wd->top->ct_base;\r
- o2 = wd->top->t_base;\r
- evas_object_show(o);\r
- evas_object_show(o2);\r
- evas_object_show(o1);\r
-\r
- if ((!animate)||(wd->disable_animation))\r
- { \r
- edje_object_signal_emit(o2, "elm,action,show,noanimate", "elm");\r
- edje_object_signal_emit(o1, "elm,action,show,noanimate", "elm"); \r
- }\r
- else if (wd->oldtop)\r
- {\r
- if (elm_object_focus_get(wd->oldtop->content))\r
- elm_object_focus(wd->top->content);\r
- if (wd->oldtop->popme)\r
- {\r
- edje_object_signal_emit(o2, "elm,action,show", "elm");\r
- edje_object_signal_emit(o1, "elm,action,show", "elm"); \r
- }\r
- else\r
- {\r
- edje_object_signal_emit(o2, "elm,action,push", "elm");\r
- edje_object_signal_emit(o1, "elm,action,push", "elm");\r
- }\r
- }\r
- else\r
- {\r
- edje_object_signal_emit(o2, "elm,action,push", "elm");\r
- edje_object_signal_emit(o1, "elm,action,push", "elm");\r
- }\r
- onshow = edje_object_data_get(o1, "onshow");\r
- if (onshow)\r
- {\r
- if (!strcmp(onshow, "raise")) {\r
- evas_object_raise(o2);\r
- evas_object_raise(o1);\r
- }\r
- else if (!strcmp(onshow, "lower")) {\r
- evas_object_lower(o2);\r
- evas_object_lower(o1);\r
- }\r
- }\r
- }\r
+ Evas_Object *o, *o1, *o2;\r
+ const char *onshow, *onhide;\r
+ \r
+ if (wd->top)\r
+ {\r
+ o = wd->top->base;\r
+ o1 = wd->top->ct_base;\r
+ o2 = wd->top->t_base;/*make use of the signals sent for animation*/\r
+\r
+ /*issue to fix, hide signal does not come for t_base, increasing time helps \r
+ in getting correct events in pop*/\r
+ if (wd->disable_animation)\r
+ {\r
+ edje_object_signal_emit(o2, "elm,action,hide,noanimate", "elm");\r
+ edje_object_signal_emit(o1, "elm,action,hide,noanimate", "elm"); \r
+ }\r
+ else if (wd->top->popme)\r
+ { \r
+ edje_object_signal_emit(o2, "elm,action,pop", "elm");\r
+ edje_object_signal_emit(o1, "elm,action,pop", "elm");\r
+ }\r
+ else\r
+ {\r
+ edje_object_signal_emit(o2, "elm,action,hide", "elm");\r
+ edje_object_signal_emit(o1, "elm,action,hide", "elm");\r
+ }\r
+ onhide = edje_object_data_get(o1, "onhide");\r
+ if (onhide)\r
+ {\r
+ if (!strcmp(onhide, "raise")) {\r
+ evas_object_raise(o2);\r
+ evas_object_raise(o1);\r
+ }\r
+ else if (!strcmp(onhide, "lower")) {\r
+ evas_object_lower(o2);\r
+ evas_object_lower(o1); \r
+ }\r
+ }\r
+ }\r
+ else\r
+ {\r
+ animate = EINA_FALSE;\r
+ }\r
+ wd->oldtop = wd->top;\r
+ wd->top = ittop;\r
+ o = wd->top->base;\r
+ o1 = wd->top->ct_base;\r
+ o2 = wd->top->t_base;\r
+ evas_object_show(o);\r
+ evas_object_show(o2);\r
+ evas_object_show(o1);\r
+ \r
+ if ((!animate)||(wd->disable_animation))\r
+ { \r
+ edje_object_signal_emit(o2, "elm,action,show,noanimate", "elm");\r
+ edje_object_signal_emit(o1, "elm,action,show,noanimate", "elm"); \r
+ }\r
+ else if (wd->oldtop)\r
+ {\r
+ if (elm_object_focus_get(wd->oldtop->content))\r
+ elm_object_focus(wd->top->content);\r
+ if (wd->oldtop->popme)\r
+ {\r
+ edje_object_signal_emit(o2, "elm,action,show", "elm");\r
+ edje_object_signal_emit(o1, "elm,action,show", "elm"); \r
+ }\r
+ else\r
+ {\r
+ edje_object_signal_emit(o2, "elm,action,push", "elm");\r
+ edje_object_signal_emit(o1, "elm,action,push", "elm");\r
+ }\r
+ }\r
+ else\r
+ {\r
+ edje_object_signal_emit(o2, "elm,action,push", "elm");\r
+ edje_object_signal_emit(o1, "elm,action,push", "elm");\r
+ }\r
+ onshow = edje_object_data_get(o1, "onshow");\r
+ if (onshow)\r
+ {\r
+ if (!strcmp(onshow, "raise")) {\r
+ evas_object_raise(o2);\r
+ evas_object_raise(o1);\r
+ }\r
+ else if (!strcmp(onshow, "lower")) {\r
+ evas_object_lower(o2);\r
+ evas_object_lower(o1);\r
+ }\r
+ }\r
+ }\r
}\r
\r
-\r
static void\r
_move(void *data, Evas *e __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__)\r
{\r
if (!wd) return;\r
EINA_LIST_FOREACH(wd->stack, l, it)\r
{\r
- if (it->content == sub)\r
- {\r
- wd->stack = eina_list_remove_list(wd->stack, l);\r
- evas_object_event_callback_del_full\r
+ if (it->content == sub)\r
+ {\r
+ wd->stack = eina_list_remove_list(wd->stack, l);\r
+ evas_object_event_callback_del_full\r
(sub, EVAS_CALLBACK_CHANGED_SIZE_HINTS, _changed_size_hints, it);\r
- if (it->title) eina_stringshare_del(it->title);\r
- if (it->subtitle) eina_stringshare_del(it->subtitle);\r
- EINA_LIST_FOREACH(it->fnbtn_list, list, btn_data)\r
- {\r
- evas_object_del(btn_data->btn);\r
- free(btn_data);\r
- btn_data = NULL;\r
- }\r
- if(it->item_style) eina_stringshare_del(it->item_style);\r
- if(it->title_obj) evas_object_del(it->title_obj);\r
- if(it->icon) evas_object_del(it->icon);\r
- evas_object_del(it->t_base);\r
- evas_object_del(it->ct_base);\r
- evas_object_del(it->base);\r
- _eval_top(it->obj);\r
- free(it);\r
- return;\r
- }\r
+ if (it->title) eina_stringshare_del(it->title);\r
+ if (it->subtitle) eina_stringshare_del(it->subtitle);\r
+ EINA_LIST_FOREACH(it->fnbtn_list, list, btn_data)\r
+ {\r
+ evas_object_del(btn_data->btn);\r
+ free(btn_data);\r
+ btn_data = NULL;\r
+ }\r
+ if (it->item_style) eina_stringshare_del(it->item_style);\r
+ if (it->title_obj) evas_object_del(it->title_obj);\r
+ if (it->icon) evas_object_del(it->icon);\r
+ evas_object_del(it->t_base);\r
+ evas_object_del(it->ct_base);\r
+ evas_object_del(it->base);\r
+ _eval_top(it->obj);\r
+ free(it);\r
+ return;\r
+ }\r
}\r
}\r
\r
evas_object_hide(it->t_base);\r
evas_object_hide(it->ct_base);\r
evas_object_hide(it->base);\r
- edje_object_signal_emit(it->t_base, "elm,action,reset", "elm");\r
- edje_object_signal_emit(it->ct_base, "elm,action,reset", "elm");\r
+ edje_object_signal_emit(it->t_base, "elm,action,reset", "elm");\r
+ edje_object_signal_emit(it->ct_base, "elm,action,reset", "elm");\r
evas_object_smart_callback_call(obj2, "hide,finished", it->content);\r
- edje_object_message_signal_process(it->t_base); \r
+ edje_object_message_signal_process(it->t_base); \r
edje_object_message_signal_process(it->ct_base);\r
- if(it->popme)\r
- {\r
- if(wd->del_on_pop)\r
- {\r
- evas_object_del(it->content);\r
- }\r
- else\r
- {\r
- _content_unset(it);\r
- }\r
- }\r
+ if (it->popme)\r
+ {\r
+ if (wd->del_on_pop)\r
+ {\r
+ evas_object_del(it->content);\r
+ }\r
+ else\r
+ {\r
+ _content_unset(it);\r
+ }\r
+ }\r
_sizing_eval(obj2);\r
}\r
\r
-static void _item_promote(Elm_Navigationbar_ex_Item* item)\r
+static void \r
+_item_promote(Elm_Navigationbar_ex_Item* item)\r
{\r
- if(!item) return;\r
+ if (!item) return;\r
Widget_Data *wd = elm_widget_data_get(item->obj);\r
Eina_List *l;\r
Elm_Navigationbar_ex_Item *it;\r
if (!wd) return;\r
EINA_LIST_FOREACH(wd->stack, l, it)\r
{\r
- if (it == item)\r
- {\r
- wd->stack = eina_list_remove_list(wd->stack, l);\r
- wd->stack = eina_list_append(wd->stack, it);\r
- _eval_top(it->obj);\r
- return;\r
- }\r
+ if (it == item)\r
+ {\r
+ wd->stack = eina_list_remove_list(wd->stack, l);\r
+ wd->stack = eina_list_append(wd->stack, it);\r
+ _eval_top(it->obj);\r
+ return;\r
+ }\r
}\r
}\r
\r
static void\r
_process_deletions(Widget_Data *wd)\r
{\r
- if (!wd) return; \r
- Elm_Navigationbar_ex_Item *it; \r
- fn_button *btn_data;\r
- Eina_List *list;\r
- EINA_LIST_FREE(wd->to_delete, it)\r
- {\r
- evas_object_event_callback_del_full\r
- (it->content, EVAS_CALLBACK_CHANGED_SIZE_HINTS, _changed_size_hints, it);\r
- if (it->title) eina_stringshare_del(it->title);\r
- if (it->subtitle) eina_stringshare_del(it->subtitle);\r
- if(it->item_style) eina_stringshare_del(it->item_style);\r
- EINA_LIST_FOREACH(it->fnbtn_list, list, btn_data)\r
- {\r
- evas_object_del(btn_data->btn);\r
- free(btn_data);\r
- btn_data = NULL;\r
- }\r
- if(it->title_obj) evas_object_del(it->title_obj); \r
- if(it->content) evas_object_del(it->content);\r
- if(it->icon) evas_object_del(it->icon);\r
- evas_object_del(it->t_base);\r
- evas_object_del(it->ct_base);\r
- evas_object_del(it->base);\r
- _eval_top(it->obj);\r
- free(it);\r
- it = NULL;\r
- } \r
+ if (!wd) return; \r
+ Elm_Navigationbar_ex_Item *it; \r
+ fn_button *btn_data;\r
+ Eina_List *list;\r
+ EINA_LIST_FREE(wd->to_delete, it)\r
+ {\r
+ evas_object_event_callback_del_full\r
+ (it->content, EVAS_CALLBACK_CHANGED_SIZE_HINTS, _changed_size_hints, it);\r
+ if (it->title) eina_stringshare_del(it->title);\r
+ if (it->subtitle) eina_stringshare_del(it->subtitle);\r
+ if (it->item_style) eina_stringshare_del(it->item_style);\r
+ EINA_LIST_FOREACH(it->fnbtn_list, list, btn_data)\r
+ {\r
+ evas_object_del(btn_data->btn);\r
+ free(btn_data);\r
+ btn_data = NULL;\r
+ }\r
+ if (it->title_obj) evas_object_del(it->title_obj); \r
+ if (it->content) evas_object_del(it->content);\r
+ if (it->icon) evas_object_del(it->icon);\r
+ evas_object_del(it->t_base);\r
+ evas_object_del(it->ct_base);\r
+ evas_object_del(it->base);\r
+ _eval_top(it->obj);\r
+ free(it);\r
+ it = NULL;\r
+ } \r
}\r
\r
/**\r
Evas_Object *obj;\r
Evas *e;\r
Widget_Data *wd;\r
-\r
+ \r
wd = ELM_NEW(Widget_Data);\r
e = evas_object_evas_get(parent);\r
obj = elm_widget_add(e);\r
wd->clip = evas_object_rectangle_add(e);\r
elm_widget_resize_object_set(obj, wd->clip);\r
elm_widget_sub_object_add(obj, wd->clip);\r
-\r
+ \r
wd->rect = evas_object_rectangle_add(e);\r
elm_widget_sub_object_add(obj, wd->rect);\r
evas_object_color_set(wd->rect, 255, 255, 255, 0); \r
evas_object_clip_set(wd->rect, wd->clip);\r
-\r
+ \r
evas_object_event_callback_add(obj, EVAS_CALLBACK_MOVE, _move, obj);\r
evas_object_event_callback_add(obj, EVAS_CALLBACK_RESIZE, _resize, obj);\r
-\r
+ \r
evas_object_smart_callback_add(obj, "sub-object-del", _sub_del, obj);\r
wd->del_on_pop = EINA_TRUE;\r
_sizing_eval(obj);\r
evas_object_smart_member_add(it->base, obj);\r
evas_object_smart_member_add(it->ct_base, obj);\r
evas_object_smart_member_add(it->t_base, obj);\r
- \r
+ \r
evas_object_geometry_get(obj, &x, &y, &w, &h);\r
evas_object_move(it->base, x, y);\r
evas_object_resize(it->base, w, h);\r
evas_object_clip_set(it->base, wd->clip);\r
- \r
- elm_widget_sub_object_add(obj, it->base);\r
- elm_widget_sub_object_add(obj, it->ct_base);\r
- elm_widget_sub_object_add(obj, it->t_base);\r
-\r
- elm_widget_sub_object_add(obj, it->content);\r
+ \r
+ elm_widget_sub_object_add(obj, it->base);\r
+ elm_widget_sub_object_add(obj, it->ct_base);\r
+ elm_widget_sub_object_add(obj, it->t_base);\r
+ \r
+ elm_widget_sub_object_add(obj, it->content);\r
+ \r
+ _elm_theme_object_set(obj, it->base, "navigationbar_ex", "base", elm_widget_style_get(obj));\r
+ _elm_theme_object_set(obj, it->ct_base, "navigationbar_ex", "content", elm_widget_style_get(obj));\r
\r
- _elm_theme_object_set(obj, it->base, "navigationbar_ex", "base", elm_widget_style_get(obj));\r
- _elm_theme_object_set(obj, it->ct_base, "navigationbar_ex", "content", elm_widget_style_get(obj));\r
-\r
- strncpy(buf, "item/", sizeof(buf));\r
+ strncpy(buf, "item/", sizeof(buf));\r
strncat(buf, item_style, sizeof(buf) - strlen(buf));\r
if (!eina_stringshare_replace(&it->item_style, item_style)) return NULL;\r
_elm_theme_object_set(obj, it->t_base, "navigationbar_ex", buf, elm_widget_style_get(obj));\r
-\r
-\r
- edje_object_part_swallow(it->base, "elm.swallow.title", it->t_base);\r
- edje_object_part_swallow(it->base, "elm.swallow.content", it->ct_base);\r
-\r
- edje_object_signal_callback_add(it->ct_base, "elm,action,hide,finished", "", \r
- _signal_hide_finished, it);\r
- evas_object_event_callback_add(it->content,\r
- EVAS_CALLBACK_CHANGED_SIZE_HINTS,\r
- _changed_size_hints, it);\r
+ \r
+ \r
+ edje_object_part_swallow(it->base, "elm.swallow.title", it->t_base);\r
+ edje_object_part_swallow(it->base, "elm.swallow.content", it->ct_base);\r
+ \r
+ edje_object_signal_callback_add(it->ct_base, "elm,action,hide,finished", "", \r
+ _signal_hide_finished, it);\r
+ evas_object_event_callback_add(it->content,\r
+ EVAS_CALLBACK_CHANGED_SIZE_HINTS,\r
+ _changed_size_hints, it);\r
edje_object_part_swallow(it->ct_base, "elm.swallow.content", it->content);\r
edje_object_size_min_calc(it->base, &it->minw, &it->minh);\r
evas_object_data_set(it->base, "_elm_leaveme", obj);\r
* @ingroup Navigationbar_ex\r
*/\r
EAPI void\r
-elm_navigationbar_ex_item_title_label_set( Elm_Navigationbar_ex_Item* item, \r
- const char *title)\r
+elm_navigationbar_ex_item_title_label_set( Elm_Navigationbar_ex_Item* item, const char *title)\r
{\r
- if(!item) return;\r
- if (!eina_stringshare_replace(&item->title, title)) return;\r
- if (item->t_base)\r
- {\r
- if((item->title_obj)&&(item->title))\r
- {\r
- edje_object_signal_emit(item->base, "elm,state,extend,title", "elm");\r
- } \r
- edje_object_part_text_set(item->t_base, "elm.text", item->title); \r
- }\r
+ if (!item) return;\r
+ if (!eina_stringshare_replace(&item->title, title)) return;\r
+ if (item->t_base)\r
+ {\r
+ if ((item->title_obj) && (item->title))\r
+ {\r
+ edje_object_signal_emit(item->base, "elm,state,extend,title", "elm");\r
+ } \r
+ edje_object_part_text_set(item->t_base, "elm.text", item->title); \r
+ }\r
}\r
\r
/**\r
EAPI const char *\r
elm_navigationbar_ex_item_title_label_get(Elm_Navigationbar_ex_Item* item)\r
{\r
- if(!item) return NULL;\r
- return item->title;\r
+ if(!item) return NULL;\r
+ return item->title;\r
}\r
\r
/**\r
* @ingroup Navigationbar_ex\r
*/\r
EAPI void \r
-elm_navigationbar_ex_item_subtitle_label_set( Elm_Navigationbar_ex_Item* item, \r
- const char *subtitle)\r
+elm_navigationbar_ex_item_subtitle_label_set( Elm_Navigationbar_ex_Item* item, const char *subtitle)\r
{\r
- if(!item) return;\r
- if (!eina_stringshare_replace(&item->subtitle, subtitle)) return;\r
- if (item->t_base)\r
- edje_object_part_text_set(item->t_base, "elm.text.sub", item->subtitle); \r
+ if (!item) return;\r
+ if (!eina_stringshare_replace(&item->subtitle, subtitle)) return;\r
+ if (item->t_base)\r
+ edje_object_part_text_set(item->t_base, "elm.text.sub", item->subtitle); \r
}\r
\r
/**\r
EAPI const char *\r
elm_navigationbar_ex_item_subtitle_label_get(Elm_Navigationbar_ex_Item* item)\r
{\r
- if(!item) return NULL;\r
- return item->subtitle;\r
+ if (!item) return NULL;\r
+ return item->subtitle;\r
}\r
\r
-\r
+/**\r
+ * Set's the icon object of the pushed content\r
+ * \r
+ * @param[in] item The Navigationbar_ex Item\r
+ * @param[in] The icon object or NULL if none\r
+ * \r
+ *@ingroup Navigationbar_ex\r
+ */\r
EAPI void\r
elm_navigationbar_ex_item_icon_set(Elm_Navigationbar_ex_Item* item, Evas_Object *icon)\r
{\r
- if(!item) return; \r
- edje_object_part_swallow(item->t_base, "elm.swallow.icon", icon);\r
- elm_widget_sub_object_add(item->obj, icon);\r
- edje_object_signal_emit(item->t_base, "elm,state,icon,visible", "elm");\r
- item->icon = icon;\r
+ if (!item) return; \r
+ edje_object_part_swallow(item->t_base, "elm.swallow.icon", icon);\r
+ elm_widget_sub_object_add(item->obj, icon);\r
+ edje_object_signal_emit(item->t_base, "elm,state,icon,visible", "elm");\r
+ item->icon = icon;\r
}\r
\r
+/**\r
+ * Return the icon object of the pushed content\r
+ *\r
+ * @param[in] item The Navigationbar_ex Item\r
+ * @return The icon object or NULL if none\r
+ * \r
+ * @ingroup Navigationbar_ex\r
+ */\r
EAPI Evas_Object *\r
elm_navigationbar_ex_item_icon_get(Elm_Navigationbar_ex_Item* item)\r
{\r
- if(!item) return NULL; \r
- return item->icon;\r
+ if (!item) return NULL; \r
+ return item->icon;\r
}\r
\r
\r
* @param[in] data Callback data that would be sent when button is clicked.\r
* @ingroup Navigationbar_ex\r
*/ \r
- EAPI void\r
+EAPI void\r
elm_navigationbar_ex_item_title_button_set(Elm_Navigationbar_ex_Item* item, char *btn_label, Evas_Object *icon, int button_type, Evas_Smart_Cb func, const void *data)\r
{\r
- if(!item) return;\r
- Eina_List *bl;\r
- Evas_Object *btn;\r
- char buf[1024],theme[1024];\r
- fn_button *btn_det = NULL;\r
- EINA_LIST_FOREACH(item->fnbtn_list, bl, btn_det)\r
- {\r
- if(btn_det->btn_id == button_type)\r
- {\r
- evas_object_del(btn_det->btn);\r
- free(btn_det);\r
- btn_det = NULL;\r
- item->fnbtn_list = eina_list_remove_list(item->fnbtn_list, bl);\r
- }\r
- } \r
- btn = elm_button_add(item->obj);\r
- btn_det = ELM_NEW(btn_det);\r
- if(!btn_det) return;\r
- if(button_type == ELM_NAVIGATIONBAR_EX_BACK_BUTTON)\r
- {\r
- snprintf(theme, sizeof(theme), "navigationbar_backbutton/%s", elm_widget_style_get(item->obj));\r
- elm_object_style_set(btn, theme);\r
- snprintf(buf, sizeof(buf), "elm.swallow.back");\r
- }\r
- else\r
- {\r
- snprintf(theme, sizeof(theme), "navigationbar_functionbutton/%s", elm_widget_style_get(item->obj));\r
- elm_object_style_set(btn, theme); \r
- snprintf(buf, sizeof(buf), "elm.swallow.btn%d", button_type);\r
- }\r
- if(btn_label)\r
- elm_button_label_set(btn, btn_label);\r
- if(icon)\r
- elm_button_icon_set(btn, icon);\r
- elm_object_focus_allow_set(btn, EINA_FALSE); \r
- evas_object_smart_callback_add(btn, "clicked", func, data);\r
- edje_object_part_swallow(item->t_base, buf, btn);\r
- elm_widget_sub_object_add(item->obj, btn);\r
- btn_det->btn = btn;\r
- btn_det->btn_id = button_type;\r
- item->fnbtn_list = eina_list_append(item->fnbtn_list, btn_det); \r
+ if (!item) return;\r
+ Eina_List *bl;\r
+ Evas_Object *btn;\r
+ char buf[1024],theme[1024];\r
+ fn_button *btn_det = NULL;\r
+ EINA_LIST_FOREACH(item->fnbtn_list, bl, btn_det)\r
+ {\r
+ if (btn_det->btn_id == button_type)\r
+ {\r
+ evas_object_del(btn_det->btn);\r
+ free(btn_det);\r
+ btn_det = NULL;\r
+ item->fnbtn_list = eina_list_remove_list(item->fnbtn_list, bl);\r
+ }\r
+ } \r
+ btn = elm_button_add(item->obj);\r
+ btn_det = ELM_NEW(btn_det);\r
+ if (!btn_det) return;\r
+ if (button_type == ELM_NAVIGATIONBAR_EX_BACK_BUTTON)\r
+ {\r
+ snprintf(theme, sizeof(theme), "navigationbar_backbutton/%s", elm_widget_style_get(item->obj));\r
+ elm_object_style_set(btn, theme);\r
+ snprintf(buf, sizeof(buf), "elm.swallow.back");\r
+ }\r
+ else\r
+ {\r
+ snprintf(theme, sizeof(theme), "navigationbar_functionbutton/%s", elm_widget_style_get(item->obj));\r
+ elm_object_style_set(btn, theme); \r
+ snprintf(buf, sizeof(buf), "elm.swallow.btn%d", button_type);\r
+ }\r
+ if (btn_label)\r
+ elm_button_label_set(btn, btn_label);\r
+ if (icon)\r
+ elm_button_icon_set(btn, icon);\r
+ elm_object_focus_allow_set(btn, EINA_FALSE); \r
+ evas_object_smart_callback_add(btn, "clicked", func, data);\r
+ edje_object_part_swallow(item->t_base, buf, btn);\r
+ elm_widget_sub_object_add(item->obj, btn);\r
+ btn_det->btn = btn;\r
+ btn_det->btn_id = button_type;\r
+ item->fnbtn_list = eina_list_append(item->fnbtn_list, btn_det); \r
}\r
\r
/**\r
*/\r
EAPI Evas_Object *\r
elm_navigationbar_ex_item_title_button_get(Elm_Navigationbar_ex_Item* item, int button_type)\r
- {\r
- fn_button *btn_det;\r
- Eina_List *bl;\r
- EINA_LIST_FOREACH(item->fnbtn_list, bl, btn_det)\r
- {\r
- if(btn_det->btn_id == button_type)\r
- return btn_det->btn;\r
- }\r
- return NULL; \r
- }\r
+{\r
+ fn_button *btn_det;\r
+ Eina_List *bl;\r
+ EINA_LIST_FOREACH(item->fnbtn_list, bl, btn_det)\r
+ {\r
+ if (btn_det->btn_id == button_type)\r
+ return btn_det->btn;\r
+ }\r
+ return NULL; \r
+}\r
\r
/**\r
* Unset the button object of the pushed content\r
*/\r
EAPI Evas_Object *\r
elm_navigationbar_ex_item_title_button_unset(Elm_Navigationbar_ex_Item* item, int button_type)\r
- {\r
- fn_button *btn_det;\r
- Eina_List *bl;\r
- Evas_Object *btn_ret;\r
- EINA_LIST_FOREACH(item->fnbtn_list, bl, btn_det)\r
- {\r
- if(btn_det->btn_id == button_type)\r
- {\r
- btn_ret = btn_det->btn;\r
- elm_widget_sub_object_del(item->obj,btn_det->btn);\r
- edje_object_part_unswallow(item->t_base,btn_det->btn); \r
- item->fnbtn_list = eina_list_remove_list(item->fnbtn_list, bl);\r
- btn_det->btn = NULL;\r
- return btn_ret;\r
- }\r
- }\r
- return NULL; \r
- }\r
+{\r
+ fn_button *btn_det;\r
+ Eina_List *bl;\r
+ Evas_Object *btn_ret;\r
+ EINA_LIST_FOREACH(item->fnbtn_list, bl, btn_det)\r
+ {\r
+ if (btn_det->btn_id == button_type)\r
+ {\r
+ btn_ret = btn_det->btn;\r
+ elm_widget_sub_object_del(item->obj,btn_det->btn);\r
+ edje_object_part_unswallow(item->t_base,btn_det->btn); \r
+ item->fnbtn_list = eina_list_remove_list(item->fnbtn_list, bl);\r
+ btn_det->btn = NULL;\r
+ return btn_ret;\r
+ }\r
+ }\r
+ return NULL; \r
+}\r
\r
/**\r
* Sets a title object for the Item \r
* @ingroup Navigationbar_ex\r
*/\r
EAPI void\r
-elm_navigationbar_ex_item_title_object_set(Elm_Navigationbar_ex_Item* item,\r
- Evas_Object *title_obj)\r
+elm_navigationbar_ex_item_title_object_set(Elm_Navigationbar_ex_Item* item, Evas_Object *title_obj)\r
{\r
- if(!item) return;\r
- if(item->title_obj) evas_object_del(item->title_obj);\r
- item->title_obj = title_obj;\r
- if(title_obj)\r
- {\r
- if((item->title_obj)&&(item->title))\r
- {\r
- edje_object_signal_emit(item->base, "elm,state,extend,title", "elm");\r
- } \r
- elm_widget_sub_object_add(item->obj,title_obj);\r
- edje_object_part_swallow(item->t_base, "elm.swallow.title", title_obj);\r
- }\r
- _sizing_eval(item->obj);\r
+ if (!item) return;\r
+ if (item->title_obj) evas_object_del(item->title_obj);\r
+ item->title_obj = title_obj;\r
+ if (title_obj)\r
+ {\r
+ if ((item->title_obj) && (item->title))\r
+ {\r
+ edje_object_signal_emit(item->base, "elm,state,extend,title", "elm");\r
+ } \r
+ elm_widget_sub_object_add(item->obj,title_obj);\r
+ edje_object_part_swallow(item->t_base, "elm.swallow.title", title_obj);\r
+ }\r
+ _sizing_eval(item->obj);\r
}\r
\r
/**\r
*/\r
\r
EAPI void\r
-elm_navigationbar_ex_item_title_hidden_set(Elm_Navigationbar_ex_Item* item,\r
- Eina_Bool hidden)\r
+elm_navigationbar_ex_item_title_hidden_set(Elm_Navigationbar_ex_Item* item, Eina_Bool hidden)\r
{\r
- if(!item) return;\r
-\r
- if (hidden) edje_object_signal_emit(item->base, "elm,state,item,moveup", "elm");\r
- else edje_object_signal_emit(item->base, "elm,state,item,movedown", "elm");\r
- _sizing_eval(item->obj);\r
+ if (!item) return;\r
+ if (hidden) edje_object_signal_emit(item->base, "elm,state,item,moveup", "elm");\r
+ else edje_object_signal_emit(item->base, "elm,state,item,movedown", "elm");\r
+ _sizing_eval(item->obj);\r
}\r
\r
/**\r
EAPI Evas_Object*\r
elm_navigationbar_ex_item_title_object_unset(Elm_Navigationbar_ex_Item* item)\r
{\r
- if(!item) return NULL;\r
- Evas_Object *title_obj=NULL;\r
- if(!item->title_obj) return NULL; \r
- title_obj = item->title_obj;\r
- elm_widget_sub_object_del(item->obj,item->title_obj);\r
- edje_object_part_unswallow(item->t_base,item->title_obj); \r
- item->title_obj = NULL;\r
- return title_obj;\r
+ if (!item) return NULL;\r
+ Evas_Object *title_obj=NULL;\r
+ if (!item->title_obj) return NULL; \r
+ title_obj = item->title_obj;\r
+ elm_widget_sub_object_del(item->obj,item->title_obj);\r
+ edje_object_part_unswallow(item->t_base,item->title_obj); \r
+ item->title_obj = NULL;\r
+ return title_obj;\r
}\r
\r
/**\r
EAPI Evas_Object*\r
elm_navigationbar_ex_item_title_object_get(Elm_Navigationbar_ex_Item* item)\r
{\r
- if(!item) return NULL;\r
- return item->title_obj;\r
+ if (!item) return NULL;\r
+ return item->title_obj;\r
}\r
\r
\r
*\r
* @ingroup Navigationbar_ex\r
*/\r
-EAPI Evas_Object *elm_navigationbar_ex_item_content_unset(Elm_Navigationbar_ex_Item* item)\r
+EAPI Evas_Object *\r
+elm_navigationbar_ex_item_content_unset(Elm_Navigationbar_ex_Item* item)\r
{\r
- Evas_Object *content = _content_unset(item);\r
- return content;\r
+ Evas_Object *content = _content_unset(item);\r
+ return content;\r
}\r
\r
-\r
/**\r
* Returns the content of the item.\r
*\r
*\r
* @ingroup Navigationbar_ex\r
*/\r
-EAPI Evas_Object *elm_navigationbar_ex_item_content_get(Elm_Navigationbar_ex_Item* item)\r
+EAPI Evas_Object *\r
+elm_navigationbar_ex_item_content_get(Elm_Navigationbar_ex_Item* item)\r
{\r
- if(!item) return NULL;\r
- return item->content;\r
+ if (!item) return NULL;\r
+ return item->content;\r
}\r
\r
/**\r
*\r
* @ingroup Navigationbar_ex\r
*/\r
-EAPI void elm_navigationbar_ex_delete_on_pop_set(Evas_Object *obj, Eina_Bool del_on_pop)\r
+EAPI void \r
+elm_navigationbar_ex_delete_on_pop_set(Evas_Object *obj, Eina_Bool del_on_pop)\r
{\r
- ELM_CHECK_WIDTYPE(obj, widtype);\r
- Widget_Data *wd = elm_widget_data_get(obj);\r
- if (!wd) return;\r
- wd->del_on_pop = del_on_pop; \r
+ ELM_CHECK_WIDTYPE(obj, widtype);\r
+ Widget_Data *wd = elm_widget_data_get(obj);\r
+ if (!wd) return;\r
+ wd->del_on_pop = del_on_pop; \r
}\r
\r
/**\r
EAPI void\r
elm_navigationbar_ex_item_style_set(Elm_Navigationbar_ex_Item* item, const char* item_style)\r
{\r
- if(!item) return;\r
- char buf[1024];\r
- char buf_fn[1024];\r
- Eina_List *bl;\r
- fn_button *btn_det;\r
- strncpy(buf, "item/", sizeof(buf));\r
- strncat(buf, item_style, sizeof(buf) - strlen(buf));\r
- if (!eina_stringshare_replace(&item->item_style, item_style)) return;\r
- _elm_theme_object_set(item->obj, item->t_base, "navigationbar_ex", buf, elm_widget_style_get(item->obj));\r
- if(item->title)\r
- edje_object_part_text_set(item->t_base, "elm.text", item->title);\r
- if(item->subtitle)\r
- edje_object_part_text_set(item->t_base, "elm.text.sub", item->subtitle);\r
- if(item->fnbtn_list)\r
- {\r
- EINA_LIST_FOREACH(item->fnbtn_list, bl, btn_det)\r
- {\r
- if(btn_det->btn_id == ELM_NAVIGATIONBAR_EX_BACK_BUTTON)\r
- {\r
- snprintf(buf_fn, sizeof(buf_fn), "navigationbar_backbutton/%s", elm_widget_style_get(item->obj));\r
- elm_object_style_set(btn_det->btn, buf_fn);\r
- }\r
- else\r
- {\r
- snprintf(buf_fn, sizeof(buf_fn), "navigationbar_functionbutton/%s", elm_widget_style_get(item->obj));\r
- elm_object_style_set(btn_det->btn, buf_fn);\r
- }\r
- }\r
- }\r
+ if (!item) return;\r
+ char buf[1024];\r
+ char buf_fn[1024];\r
+ Eina_List *bl;\r
+ fn_button *btn_det;\r
+ strncpy(buf, "item/", sizeof(buf));\r
+ strncat(buf, item_style, sizeof(buf) - strlen(buf));\r
+ if (!eina_stringshare_replace(&item->item_style, item_style)) return;\r
+ _elm_theme_object_set(item->obj, item->t_base, "navigationbar_ex", buf, elm_widget_style_get(item->obj));\r
+ if (item->title)\r
+ edje_object_part_text_set(item->t_base, "elm.text", item->title);\r
+ if (item->subtitle)\r
+ edje_object_part_text_set(item->t_base, "elm.text.sub", item->subtitle);\r
+ if (item->fnbtn_list)\r
+ {\r
+ EINA_LIST_FOREACH(item->fnbtn_list, bl, btn_det)\r
+ {\r
+ if (btn_det->btn_id == ELM_NAVIGATIONBAR_EX_BACK_BUTTON)\r
+ {\r
+ snprintf(buf_fn, sizeof(buf_fn), "navigationbar_backbutton/%s", elm_widget_style_get(item->obj));\r
+ elm_object_style_set(btn_det->btn, buf_fn);\r
+ }\r
+ else\r
+ {\r
+ snprintf(buf_fn, sizeof(buf_fn), "navigationbar_functionbutton/%s", elm_widget_style_get(item->obj));\r
+ elm_object_style_set(btn_det->btn, buf_fn);\r
+ }\r
+ }\r
+ }\r
}\r
\r
/**\r
*\r
* @ingroup Navigationbar_ex\r
*/\r
-EAPI const char* elm_navigationbar_ex_item_style_get(Elm_Navigationbar_ex_Item* item)\r
+EAPI const char* \r
+elm_navigationbar_ex_item_style_get(Elm_Navigationbar_ex_Item* item)\r
{\r
- if(!item) return NULL;\r
- return item->item_style;\r
+ if (!item) return NULL;\r
+ return item->item_style;\r
}\r
\r
\r
EAPI void\r
elm_navigationbar_ex_item_promote(Elm_Navigationbar_ex_Item* item)\r
{\r
- _item_promote(item); \r
+ _item_promote(item); \r
}\r
\r
/**\r
*\r
* @ingroup Navigationbar_ex\r
*/\r
-EAPI void elm_navigationbar_ex_to_item_pop(Elm_Navigationbar_ex_Item* item)\r
+EAPI void \r
+elm_navigationbar_ex_to_item_pop(Elm_Navigationbar_ex_Item* item)\r
{\r
- if(!item) return;\r
+ if (!item) return;\r
Widget_Data *wd = elm_widget_data_get(item->obj);\r
Elm_Navigationbar_ex_Item *it = NULL;\r
Eina_List *list;\r
if (!wd) return;\r
if (!wd->stack) return;\r
- it = eina_list_last(wd->stack)->data;\r
- it->popme = EINA_TRUE;\r
- list = eina_list_last(wd->stack);\r
- if(list)\r
- {\r
- while(list)\r
- {\r
- it = list->data;\r
- if(it != item)\r
- {\r
- wd->to_delete = eina_list_append(wd->to_delete, it);\r
- wd->stack = eina_list_remove_list(wd->stack, list);\r
- }\r
- else\r
- break;\r
- \r
- list = list->prev;\r
- }\r
- } \r
- _eval_top(it->obj);\r
- if(wd->to_delete)\r
- _process_deletions(wd);\r
+ it = eina_list_last(wd->stack)->data;\r
+ it->popme = EINA_TRUE;\r
+ list = eina_list_last(wd->stack);\r
+ if (list)\r
+ {\r
+ while (list)\r
+ {\r
+ it = list->data;\r
+ if (it != item)\r
+ {\r
+ wd->to_delete = eina_list_append(wd->to_delete, it);\r
+ wd->stack = eina_list_remove_list(wd->stack, list);\r
+ }\r
+ else\r
+ break;\r
+ \r
+ list = list->prev;\r
+ }\r
+ } \r
+ _eval_top(it->obj);\r
+ if (wd->to_delete)\r
+ _process_deletions(wd);\r
}\r
\r
/**\r
ll = eina_list_last(wd->stack);\r
if (ll)\r
{\r
- ll = ll->prev;\r
- if (!ll)\r
- {\r
- \r
- Evas_Object *o, *o2;\r
- const char *onhide;\r
-\r
- wd->top = it;\r
- o = wd->top->ct_base;\r
- o2 = wd->top->t_base; \r
-\r
- edje_object_signal_emit(o2, "elm,action,pop", "elm");\r
- edje_object_signal_emit(o, "elm,action,pop", "elm");\r
- onhide = edje_object_data_get(o, "onhide");\r
- if (onhide)\r
- {\r
- if (!strcmp(onhide, "raise")) \r
- {\r
- evas_object_raise(o2);\r
- evas_object_raise(o);\r
- }\r
- else if (!strcmp(onhide, "lower")) \r
- {\r
- evas_object_lower(o2);\r
- evas_object_lower(o);\r
- }\r
- }\r
- wd->top = NULL;\r
- }\r
- else\r
- {\r
- it = ll->data;\r
- _item_promote(it);\r
- }\r
+ ll = ll->prev;\r
+ if (!ll)\r
+ {\r
+ \r
+ Evas_Object *o, *o2;\r
+ const char *onhide;\r
+ \r
+ wd->top = it;\r
+ o = wd->top->ct_base;\r
+ o2 = wd->top->t_base; \r
+ \r
+ edje_object_signal_emit(o2, "elm,action,pop", "elm");\r
+ edje_object_signal_emit(o, "elm,action,pop", "elm");\r
+ onhide = edje_object_data_get(o, "onhide");\r
+ if (onhide)\r
+ {\r
+ if (!strcmp(onhide, "raise")) \r
+ {\r
+ evas_object_raise(o2);\r
+ evas_object_raise(o);\r
+ }\r
+ else if (!strcmp(onhide, "lower")) \r
+ {\r
+ evas_object_lower(o2);\r
+ evas_object_lower(o);\r
+ }\r
+ }\r
+ wd->top = NULL;\r
+ }\r
+ else\r
+ {\r
+ it = ll->data;\r
+ _item_promote(it);\r
+ }\r
}\r
}\r
\r
* @ingroup Navigationbar_ex\r
*/\r
EAPI void\r
-elm_navigationbar_ex_animation_disable_set(Evas_Object *obj, \r
- Eina_Bool disable)\r
+elm_navigationbar_ex_animation_disable_set(Evas_Object *obj, Eina_Bool disable)\r
{\r
- ELM_CHECK_WIDTYPE(obj, widtype);\r
- Widget_Data *wd = elm_widget_data_get(obj);\r
- wd->disable_animation = disable;\r
+ ELM_CHECK_WIDTYPE(obj, widtype);\r
+ Widget_Data *wd = elm_widget_data_get(obj);\r
+ wd->disable_animation = disable;\r
}\r
\r
\r
+\r