EAPI void elm_navigationbar_ex_title_object_visible_set(Elm_Navigationbar_ex_Item* item, Eina_Bool visible);
Eina_Bool elm_navigationbar_ex_title_object_visible_get(Elm_Navigationbar_ex_Item* item);
- /* naviframe */
- #define ELM_NAVIFRAME_ITEM_CONTENT "elm.swallow.content"
- #define ELM_NAVIFRAME_ITEM_ICON "elm.swallow.icon"
- #define ELM_NAVIFRAME_ITEM_OPTIONHEADER "elm.swallow.optionheader"
- #define ELM_NAVIFRAME_ITEM_OPTIONHEADER2 "elm.swallow.optionheader2"
- #define ELM_NAVIFRAME_ITEM_TITLE_LABEL "elm.text.title"
- #define ELM_NAVIFRAME_ITEM_PREV_BTN "elm.swallow.prev_btn"
- #define ELM_NAVIFRAME_ITEM_SIGNAL_OPTIONHEADER_CLOSE "elm,state,optionheader,close", ""
- #define ELM_NAVIFRAME_ITEM_SIGNAL_OPTIONHEADER_OPEN "elm,state,optionheader,open", ""
- #define ELM_NAVIFRAME_ITEM_SIGNAL_OPTIONHEADER_INSTANT_CLOSE "elm,state,optionheader,instant_close", ""
- #define ELM_NAVIFRAME_ITEM_SIGNAL_OPTIONHEADER_INSTANT_OPEN "elm,state,optionheader,instant_open", ""
-
- /**
+ /**
* @defgroup Naviframe Naviframe
+ * @ingroup Elementary
*
* @brief Naviframe is a kind of view manager for the applications.
*
* the item
* @li "title,clicked" - User clicked title area
*
- * Default contents parts for the naviframe items that you can use for are:
- *
+ * Default contents parts of the naviframe items that you can use for are:
* @li "elm.swallow.content" - A main content of the page
+ * @li "elm.swallow.icon" - A icon in the title area
* @li "elm.swallow.prev_btn" - A button to go to the previous page
* @li "elm.swallow.next_btn" - A button to go to the next page
*
- * Default text parts of naviframe items that you can be used are:
- *
+ * Default text parts of the naviframe items that you can use for are:
* @li "elm.text.title" - Title label in the title area
+ * @li "elm.text.subtitle" - Sub-title label in the title area
*
* @ref tutorial_naviframe gives a good overview of the usage of the API.
+ */
+
+ //Available commonly
+ #define ELM_NAVIFRAME_ITEM_CONTENT "elm.swallow.content"
+ #define ELM_NAVIFRAME_ITEM_ICON "elm.swallow.icon"
+ #define ELM_NAVIFRAME_ITEM_OPTIONHEADER "elm.swallow.optionheader"
+ #define ELM_NAVIFRAME_ITEM_TITLE_LABEL "elm.text.title"
+ #define ELM_NAVIFRAME_ITEM_PREV_BTN "elm.swallow.prev_btn"
+ #define ELM_NAVIFRAME_ITEM_TITLE_LEFT_BTN "elm.swallow.left_btn"
+ #define ELM_NAVIFRAME_ITEM_TITLE_RIGHT_BTN "elm.swallow.right_btn"
+ #define ELM_NAVIFRAME_ITEM_TITLE_MORE_BTN "elm.swallow.more_btn"
+ #define ELM_NAVIFRAME_ITEM_CONTROLBAR "elm.swallow.controlbar"
+ #define ELM_NAVIFRAME_ITEM_SIGNAL_OPTIONHEADER_CLOSE "elm,state,optionheader,close", ""
+ #define ELM_NAVIFRAME_ITEM_SIGNAL_OPTIONHEADER_OPEN "elm,state,optionheader,open", ""
+ #define ELM_NAVIFRAME_ITEM_SIGNAL_OPTIONHEADER_INSTANT_CLOSE "elm,state,optionheader,instant_close", ""
+ #define ELM_NAVIFRAME_ITEM_SIGNAL_OPTIONHEADER_INSTANT_OPEN "elm,state,optionheader,instant_open", ""
+
+ //Available only in a style - "2line"
+ #define ELM_NAVIFRAME_ITEM_OPTIONHEADER2 "elm.swallow.optionheader2"
+
+ //Available only in a style - "segment"
+ #define ELM_NAVIFRAME_ITEM_SEGMENT2 "elm.swallow.segment2"
+ #define ELM_NAVIFRAME_ITEM_SEGMENT3 "elm.swallow.segment3"
+
+ /**
+ * @addtogroup Naviframe
* @{
*/
+
/**
* @brief Add a new Naviframe object to the parent.
*
* @param parent Parent object
* @return New object or @c NULL, if it cannot be created
+ *
+ * @ingroup Naviframe
*/
EAPI Evas_Object *elm_naviframe_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
/**
* deleted when it is popped.
*
* @see also elm_naviframe_item_style_set()
+ * @see also elm_naviframe_item_insert_before()
+ * @see also elm_naviframe_item_insert_after()
*
* The following styles are available for this item:
* @li @c "default"
+ *
+ * @ingroup Naviframe
*/
EAPI Elm_Object_Item *elm_naviframe_item_push(Evas_Object *obj, const char *title_label, Evas_Object *prev_btn, Evas_Object *next_btn, Evas_Object *content, const char *item_style) EINA_ARG_NONNULL(1, 5);
+ /**
+ * @brief Insert a new item into the naviframe before item @p before.
+ *
+ * @param before The naviframe item to insert before.
+ * @param title_label The label in the title area. The name of the title
+ * label part is "elm.text.title"
+ * @param prev_btn The button to go to the previous item. If it is NULL,
+ * then naviframe will create a back button automatically. The name of
+ * the prev_btn part is "elm.swallow.prev_btn"
+ * @param next_btn The button to go to the next item. Or It could be just an
+ * extra function button. The name of the next_btn part is
+ * "elm.swallow.next_btn"
+ * @param content The main content object. The name of content part is
+ * "elm.swallow.content"
+ * @param item_style The current item style name. @c NULL would be default.
+ * @return The created item or @c NULL upon failure.
+ *
+ * The item is inserted into the naviframe straight away without any
+ * transition operations. This item will be deleted when it is popped.
+ *
+ * @see also elm_naviframe_item_style_set()
+ * @see also elm_naviframe_item_push()
+ * @see also elm_naviframe_item_insert_after()
+ *
+ * The following styles are available for this item:
+ * @li @c "default"
+ *
+ * @ingroup Naviframe
+ */
+ EAPI Elm_Object_Item *elm_naviframe_item_insert_before(Elm_Object_Item *before, const char *title_label, Evas_Object *prev_btn, Evas_Object *next_btn, Evas_Object *content, const char *item_style) EINA_ARG_NONNULL(1, 5);
+ /**
+ * @brief Insert a new item into the naviframe after item @p after.
+ *
+ * @param after The naviframe item to insert after.
+ * @param title_label The label in the title area. The name of the title
+ * label part is "elm.text.title"
+ * @param prev_btn The button to go to the previous item. If it is NULL,
+ * then naviframe will create a back button automatically. The name of
+ * the prev_btn part is "elm.swallow.prev_btn"
+ * @param next_btn The button to go to the next item. Or It could be just an
+ * extra function button. The name of the next_btn part is
+ * "elm.swallow.next_btn"
+ * @param content The main content object. The name of content part is
+ * "elm.swallow.content"
+ * @param item_style The current item style name. @c NULL would be default.
+ * @return The created item or @c NULL upon failure.
+ *
+ * The item is inserted into the naviframe straight away without any
+ * transition operations. This item will be deleted when it is popped.
+ *
+ * @see also elm_naviframe_item_style_set()
+ * @see also elm_naviframe_item_push()
+ * @see also elm_naviframe_item_insert_before()
+ *
+ * The following styles are available for this item:
+ * @li @c "default"
+ *
+ * @ingroup Naviframe
+ */
+ EAPI Elm_Object_Item *elm_naviframe_item_insert_after(Elm_Object_Item *after, const char *title_label, Evas_Object *prev_btn, Evas_Object *next_btn, Evas_Object *content, const char *item_style) EINA_ARG_NONNULL(1, 5);
/**
* @brief Pop an item that is on top of the stack
*
* @see also elm_naviframe_item_push()
* elm_naviframe_prev_btn_auto_pushed_set()
*/
- EAPI Eina_Bool elm_naviframe_prev_btn_auto_pushed_get(const Evas_Object *obj); EINA_ARG_NONNULL(1);
+ EAPI Eina_Bool elm_naviframe_prev_btn_auto_pushed_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+ /**
+ * @brief Get a list of all the naviframe items.
+ *
+ * @param obj The naviframe object
+ * @return An Eina_Inlist* of naviframe items, #Elm_Object_Item,
+ * or @c NULL on failure.
+ */
+ EAPI Eina_Inlist *elm_naviframe_items_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+
+ /**
+ * @}
+ */
/* Control Bar */
#define CONTROLBAR_SYSTEM_ICON_ALBUMS "controlbar_albums"
{
Eina_Inlist *stack;
Evas_Object *base;
+ Evas_Object *rect;
Eina_Bool preserve: 1;
Eina_Bool auto_pushed: 1;
Eina_Bool freeze_events: 1;
Evas *e,
Evas_Object *obj,
void *event_info);
+static void _hide(void *data, Evas *e, Evas_Object *obj, void *event_info);
static void _title_clicked(void *data, Evas_Object *obj,
const char *emission,
const char *source);
Evas_Object *content);
static void _item_style_set(Elm_Naviframe_Item *navi_it,
const char *item_style);
+static Elm_Naviframe_Item * _item_new(Evas_Object *obj,
+ const char *title_label,
+ Evas_Object *prev_btn,
+ Evas_Object *next_btn,
+ Evas_Object *content,
+ const char *item_style);
static void
_del_hook(Evas_Object *obj)
_elm_widget_mirrored_reload(obj);
_mirrored_set(obj, elm_widget_mirrored_get(obj));
+
+ evas_object_hide(wd->rect);
}
static void _emit_hook(Evas_Object *obj,
Evas_Object *obj,
void *event_info __UNUSED__)
{
+ Evas_Coord x, y;
+ Widget_Data *wd = elm_widget_data_get(obj);
+ if (!wd) return;
+
+ evas_object_geometry_get(obj, &x, &y, NULL, NULL);
+ evas_object_move(wd->rect, x, y);
+
_sizing_eval(obj);
}
Evas_Object *obj,
void *event_info __UNUSED__)
{
+ Evas_Coord w, h;
+ Widget_Data *wd = elm_widget_data_get(obj);
+ if (!wd) return;
+
+ evas_object_geometry_get(obj, NULL, NULL, &w, &h);
+ evas_object_resize(wd->rect, w, h);
+
_sizing_eval(obj);
}
static void
+_hide(void *data __UNUSED__,
+ Evas *e __UNUSED__,
+ Evas_Object *obj,
+ void *event_info __UNUSED__)
+{
+ Widget_Data *wd = elm_widget_data_get(obj);
+ if (!wd) return;
+ if (wd->freeze_events)
+ evas_object_hide(wd->rect);
+}
+
+static void
_title_clicked(void *data,
Evas_Object *obj __UNUSED__,
const char *emission __UNUSED__,
EINA_INLIST_GET(pair));
}
- if (pair->content == content) return;
-
- if (pair->content)
+ if (pair->content != content)
{
evas_object_event_callback_del(pair->content,
EVAS_CALLBACK_DEL,
_title_content_del);
evas_object_del(pair->content);
- }
- if (content)
- {
elm_widget_sub_object_add(WIDGET(it), content);
evas_object_event_callback_add(content,
EVAS_CALLBACK_DEL,
_title_content_del,
pair);
- edje_object_part_swallow(it->base.view, part, content);
+ }
+ if (content)
+ {
+ edje_object_part_swallow(VIEW(it), part, content);
snprintf(buf, sizeof(buf), "elm,state,%s,show", part);
- edje_object_signal_emit(it->base.view, buf, "elm");
+ edje_object_signal_emit(VIEW(it), buf, "elm");
pair->content = content;
_item_sizing_eval(it);
}
else
{
snprintf(buf, sizeof(buf), "elm,state,%s,hide", part);
- edje_object_signal_emit(it->base.view, buf, "elm");
+ edje_object_signal_emit(VIEW(it), buf, "elm");
pair->content = NULL;
}
}
evas_object_smart_callback_call(WIDGET(it),
SIG_PUSH_FINISHED,
data);
- if (wd->freeze_events)
- evas_object_freeze_events_set(VIEW(it), EINA_FALSE);
}
static void
SIG_TRANSITION_FINISHED,
data);
if (wd->freeze_events)
- evas_object_freeze_events_set(VIEW(it), EINA_FALSE);
+ evas_object_hide(wd->rect);
}
static void
_item_content_set_hook((Elm_Object_Item *) navi_it,
content_pair->part,
content_pair->content);
-
//content
if (navi_it->content)
{
_item_sizing_eval(navi_it);
wd = elm_widget_data_get(WIDGET(navi_it));
- if (!wd) return;
-
- if (wd->freeze_events)
- evas_object_freeze_events_set(VIEW(navi_it), EINA_FALSE);
-}
-
-EAPI Evas_Object *
-elm_naviframe_add(Evas_Object *parent)
-{
- Evas_Object *obj;
- Evas *e;
- Widget_Data *wd;
-
- ELM_WIDGET_STANDARD_SETUP(wd, Widget_Data, parent, e, obj, NULL);
- ELM_SET_WIDTYPE(widtype, "naviframe");
- elm_widget_type_set(obj, "naviframe");
- elm_widget_sub_object_add(parent, obj);
- elm_widget_data_set(obj, wd);
- elm_widget_del_hook_set(obj, _del_hook);
- elm_widget_disable_hook_set(obj, _disable_hook);
- elm_widget_theme_hook_set(obj, _theme_hook);
- elm_widget_signal_emit_hook_set(obj, _emit_hook);
-
- //base
- wd->base = edje_object_add(e);
- edje_object_mirrored_set(wd->base, elm_widget_mirrored_get(obj));
- elm_widget_resize_object_set(obj, wd->base);
- _elm_theme_object_set(obj, wd->base, "naviframe", "base", "default");
-
- evas_object_event_callback_add(obj, EVAS_CALLBACK_MOVE, _move, obj);
- evas_object_event_callback_add(obj, EVAS_CALLBACK_RESIZE, _resize, obj);
- evas_object_smart_callbacks_descriptions_set(obj, _signals);
-
- wd->auto_pushed = EINA_TRUE;
- wd->freeze_events = EINA_TRUE;
-
- return obj;
+ if (wd && wd->freeze_events)
+ evas_object_hide(wd->rect);
}
-EAPI Elm_Object_Item *
-elm_naviframe_item_push(Evas_Object *obj,
- const char *title_label,
- Evas_Object *prev_btn,
- Evas_Object *next_btn,
- Evas_Object *content,
- const char *item_style)
+static Elm_Naviframe_Item *
+_item_new(Evas_Object *obj,
+ const char *title_label,
+ Evas_Object *prev_btn,
+ Evas_Object *next_btn,
+ Evas_Object *content,
+ const char *item_style)
{
- ELM_CHECK_WIDTYPE(obj, widtype) NULL;
- Widget_Data *wd;
- Elm_Naviframe_Item *prev_it, *it;
-
- wd = elm_widget_data_get(obj);
- if (!wd) return NULL;
+ Widget_Data *wd = elm_widget_data_get(obj);
//create item
- it = elm_widget_item_new(obj, Elm_Naviframe_Item);
+ Elm_Naviframe_Item *it = elm_widget_item_new(obj, Elm_Naviframe_Item);
if (!it)
{
ERR("Failed to allocate new item! : naviframe=%p", obj);
_title_clicked, it);
_item_style_set(it, item_style);
-
_item_text_set_hook((Elm_Object_Item *) it, "elm.text.title", title_label);
//title buttons
_title_prev_btn_set(it, prev_btn, EINA_FALSE);
_title_next_btn_set(it, next_btn);
-
_item_content_set(it, content);
-
_item_sizing_eval(it);
+
+ it->title_visible = EINA_TRUE;
+ return it;
+}
+
+EAPI Evas_Object *
+elm_naviframe_add(Evas_Object *parent)
+{
+ Evas_Object *obj;
+ Evas *e;
+ Widget_Data *wd;
+
+ ELM_WIDGET_STANDARD_SETUP(wd, Widget_Data, parent, e, obj, NULL);
+ ELM_SET_WIDTYPE(widtype, "naviframe");
+ elm_widget_type_set(obj, "naviframe");
+ elm_widget_sub_object_add(parent, obj);
+ elm_widget_data_set(obj, wd);
+ elm_widget_del_hook_set(obj, _del_hook);
+ elm_widget_disable_hook_set(obj, _disable_hook);
+ elm_widget_theme_hook_set(obj, _theme_hook);
+ elm_widget_signal_emit_hook_set(obj, _emit_hook);
+
+ //base
+ wd->base = edje_object_add(e);
+ edje_object_mirrored_set(wd->base, elm_widget_mirrored_get(obj));
+ elm_widget_resize_object_set(obj, wd->base);
+ _elm_theme_object_set(obj, wd->base, "naviframe", "base", "default");
+
+ //rect
+ wd->rect = evas_object_rectangle_add(e);
+ evas_object_color_set(wd->rect, 0, 0, 0, 0);
+ elm_widget_sub_object_add(obj, wd->rect);
+
+ evas_object_event_callback_add(obj, EVAS_CALLBACK_MOVE, _move, obj);
+ evas_object_event_callback_add(obj, EVAS_CALLBACK_RESIZE, _resize, obj);
+ evas_object_event_callback_add(obj, EVAS_CALLBACK_HIDE, _hide, obj);
+ evas_object_smart_callbacks_descriptions_set(obj, _signals);
+
+ wd->auto_pushed = EINA_TRUE;
+ wd->freeze_events = EINA_TRUE;
+
+ return obj;
+}
+
+EAPI Elm_Object_Item *
+elm_naviframe_item_push(Evas_Object *obj,
+ const char *title_label,
+ Evas_Object *prev_btn,
+ Evas_Object *next_btn,
+ Evas_Object *content,
+ const char *item_style)
+{
+ ELM_CHECK_WIDTYPE(obj, widtype) NULL;
+ Widget_Data *wd;
+ Elm_Naviframe_Item *prev_it, *it;
+
+ wd = elm_widget_data_get(obj);
+ if (!wd) return NULL;
+
+ it = _item_new(obj, title_label, prev_btn, next_btn, content, item_style);
+ if (!it) return NULL;
+
evas_object_show(VIEW(it));
prev_it = (Elm_Naviframe_Item *) elm_naviframe_top_item_get(obj);
if (prev_it)
{
if (wd->freeze_events)
- {
- evas_object_freeze_events_set(VIEW(it), EINA_TRUE);
- evas_object_freeze_events_set(VIEW(prev_it), EINA_TRUE);
- }
+ evas_object_show(wd->rect);
+
edje_object_signal_emit(VIEW(prev_it),
"elm,state,cur,pushed",
"elm");
"elm,state,new,pushed",
"elm");
}
- it->title_visible = EINA_TRUE;
wd->stack = eina_inlist_append(wd->stack, EINA_INLIST_GET(it));
return (Elm_Object_Item *) it;
}
+EAPI Elm_Object_Item *
+elm_naviframe_item_insert_before(Elm_Object_Item *before,
+ const char *title_label,
+ Evas_Object *prev_btn,
+ Evas_Object *next_btn,
+ Evas_Object *content,
+ const char *item_style)
+{
+ ELM_OBJ_ITEM_CHECK_OR_RETURN(before, NULL);
+ Elm_Naviframe_Item *it;
+ Widget_Data *wd;
+
+ wd = elm_widget_data_get(WIDGET(before));
+ if (!wd) return NULL;
+
+ it = _item_new(WIDGET(before), title_label, prev_btn, next_btn, content,
+ item_style);
+ if (!it) return NULL;
+
+ wd->stack =
+ eina_inlist_prepend_relative(wd->stack, EINA_INLIST_GET(it),
+ EINA_INLIST_GET(((Elm_Naviframe_Item *) before)));
+ return (Elm_Object_Item *) it;
+}
+
+EAPI Elm_Object_Item *
+elm_naviframe_item_insert_after(Elm_Object_Item *after,
+ const char *title_label,
+ Evas_Object *prev_btn,
+ Evas_Object *next_btn,
+ Evas_Object *content,
+ const char *item_style)
+{
+ ELM_OBJ_ITEM_CHECK_OR_RETURN(after, NULL);
+ Elm_Naviframe_Item *it;
+ Widget_Data *wd;
+
+ wd = elm_widget_data_get(WIDGET(after));
+ if (!wd) return NULL;
+
+ it = _item_new(WIDGET(after), title_label, prev_btn, next_btn, content,
+ item_style);
+ if (!it) return NULL;
+
+ if (elm_naviframe_top_item_get(WIDGET(after)) == after)
+ {
+ evas_object_hide(VIEW(after));
+ evas_object_show(VIEW(it));
+ }
+ wd->stack =
+ eina_inlist_append_relative(wd->stack, EINA_INLIST_GET(it),
+ EINA_INLIST_GET(((Elm_Naviframe_Item *) after)));
+ return (Elm_Object_Item *) it;
+}
+
EAPI Evas_Object *
elm_naviframe_item_pop(Evas_Object *obj)
{
wd->stack = eina_inlist_remove(wd->stack, EINA_INLIST_GET(it));
if (prev_it)
{
- edje_object_signal_emit(VIEW(it), "elm,state,cur,popped", "elm");
+ if (wd->freeze_events)
+ evas_object_show(wd->rect);
+ edje_object_signal_emit(it->base.view, "elm,state,cur,popped", "elm");
evas_object_show(VIEW(prev_it));
evas_object_raise(VIEW(prev_it));
edje_object_signal_emit(VIEW(prev_it),
prev_it = EINA_INLIST_CONTAINER_GET(wd->stack->last->prev,
Elm_Naviframe_Item);
if (wd->freeze_events)
- {
- evas_object_freeze_events_set(VIEW(it), EINA_TRUE);
- evas_object_freeze_events_set(VIEW(prev_it), EINA_TRUE);
- }
+ evas_object_show(wd->rect);
edje_object_signal_emit(prev_it->base.view,
"elm,state,cur,pushed",
"elm");
{
ELM_OBJ_ITEM_CHECK_OR_RETURN(it);
Elm_Naviframe_Item *navi_it = (Elm_Naviframe_Item *) it;
-
//Return if new style is exsiting one.
if (item_style)
if (!strcmp(item_style, navi_it->style)) return;
return wd->auto_pushed;
}
+EAPI Eina_Inlist *
+elm_naviframe_items_get(const Evas_Object *obj)
+{
+ ELM_CHECK_WIDTYPE(obj, widtype) NULL;
+ Widget_Data *wd = elm_widget_data_get(obj);
+ if (!wd) return NULL;
+ return wd->stack;
+}
+
evas_object_move(wd->edje, x, y);
evas_object_geometry_get(elm_layout_content_get(wd->edje, "bg_image"), NULL, NULL, &width, NULL);
evas_object_geometry_get(wd->edje, &x_, &y_, NULL, NULL);
- switch(wd->mode)
- {
- case ELM_CONTROLBAR_MODE_LEFT:
- evas_object_move(wd->view, x + width, y);
- break;
- case ELM_CONTROLBAR_MODE_RIGHT:
- default:
- evas_object_move(wd->view, x, y);
- break;
- }
}
static void
evas_object_resize(wd->edje, w, h);
evas_object_geometry_get(elm_layout_content_get(wd->edje, "bg_image"), NULL, NULL, &width, &height);
evas_object_geometry_get(wd->edje, &x_, &y_, NULL, NULL);
- switch(wd->mode)
- {
- case ELM_CONTROLBAR_MODE_LEFT:
- evas_object_move(wd->view, x + width, y);
- case ELM_CONTROLBAR_MODE_RIGHT:
- evas_object_resize(wd->view, w - width, h);
- break;
- default:
- evas_object_resize(wd->view, w, h - height + 1);
- evas_object_move(wd->view, x, y);
- break;
- }
}
static void
if (!data) return;
wd = elm_widget_data_get((Evas_Object *) data);
if (!wd) return;
- evas_object_show(wd->view);
evas_object_show(wd->edje);
evas_object_show(wd->box);
}
if (!data) return;
wd = elm_widget_data_get((Evas_Object *) data);
if (!wd) return;
- evas_object_hide(wd->view);
evas_object_hide(wd->edje);
evas_object_hide(wd->box);
free(wd->ad);
wd->ad = NULL;
}
- if (wd->view)
- {
- evas_object_del(wd->view);
- wd->view = NULL;
- }
free(wd);
wd = NULL;
elm_widget_style_get(obj));
evas_object_color_get(wd->bg, &r, &g, &b, NULL);
evas_object_color_set(wd->bg, r, g, b, (int)(255 * wd->alpha / 100));
- elm_layout_theme_set(wd->view, "controlbar", "view", elm_widget_style_get(obj));
EINA_LIST_FOREACH(wd->items, l, item)
{
elm_layout_theme_set(item->base, "controlbar", "item_bg", elm_widget_style_get(obj));
{
Widget_Data *wd = elm_widget_data_get(obj);
Evas_Object *sub = event_info;
- Evas_Object *content;
if (!wd) return;
-
- if (sub == wd->view)
- {
- content = elm_layout_content_unset(wd->view, "elm.swallow.view");
- evas_object_hide(content);
- }
}
static void
if (it->style == TABBAR)
{
- content = elm_layout_content_unset(wd->view, "elm.swallow.view");
+ content = elm_layout_content_unset(wd->edje, "elm.swallow.view");
if (content) evas_object_hide(content);
EINA_LIST_FOREACH(wd->items, l, item){
evas_object_smart_callback_call(it->obj, "view,change,before", it);
}
- elm_layout_content_set(wd->view, "elm.swallow.view", it->view);
+ elm_layout_content_set(wd->edje, "elm.swallow.view", it->view);
}
else if (it->style == TOOLBAR)
{
if (item->style == TABBAR)
{
- content = elm_layout_content_unset(wd->view, "elm.swallow.view");
+ content = elm_layout_content_unset(wd->edje, "elm.swallow.view");
evas_object_hide(content);
item->selected = EINA_TRUE;
evas_object_smart_callback_call(item->obj, "view,change,before", item);
- elm_layout_content_set(wd->view, "elm.swallow.view", item->view);
+ elm_layout_content_set(wd->edje, "elm.swallow.view", item->view);
}
if ((item->style == TOOLBAR) && (item->func))
EINA_LIST_FOREACH(wd->items, l, it)
{
- label = elm_ctxpopup_item_label_get((Elm_Object_Item *) event_info);
+ label = elm_ctxpopup_item_label_get((Elm_Ctxpopup_Item *) event_info);
if ((label) && (!strcmp(it->text, label))) break;
}
wd->selected_animation = EINA_FALSE;
wd->pressed_signal = eina_stringshare_add("elm,state,pressed");
wd->selected_signal = eina_stringshare_add("elm,state,selected");
- wd->view = elm_layout_add(wd->parent);
- elm_layout_theme_set(wd->view, "controlbar", "view", "default");
- if (wd->view == NULL)
- {
- printf("Cannot load bg edj\n");
- return NULL;
- }
- evas_object_show(wd->view);
/* load background edj */
wd->edje = elm_layout_add(obj);
evas_object_smart_callback_add(obj, "sub-object-del", _sub_del, obj);
- evas_object_smart_member_add(wd->view, obj);
elm_widget_resize_object_set(obj, wd->edje);
_sizing_eval(obj);
if (!wd) return NULL;
Evas_Object *content;
- if (it->view == elm_layout_content_get(wd->view, "elm.swallow.view"))
+ if (it->view == elm_layout_content_get(wd->edje, "elm.swallow.view"))
{
- content = elm_layout_content_unset(wd->view, "elm.swallow.view");
+ content = elm_layout_content_unset(wd->edje, "elm.swallow.view");
if (content) evas_object_hide(content);
}
else
#define ELM_NEW(t) calloc(1, sizeof(t))
-#define ELM_CAST(p) ((void *)(p))
-
#define ELM_OBJ_ITEM_CHECK_OR_RETURN(it, ...) \
ELM_WIDGET_ITEM_CHECK_OR_RETURN((Elm_Widget_Item *) (it), __VA_ARGS__); \
ELM_CHECK_WIDTYPE(it->base.widget, widtype) __VA_ARGS__;