Macros | Functions
Naviframe

Naviframe stands for navigation frame. It's a views manager for applications. More...

Macros

#define ELM_NAVIFRAME_CLASS   elm_naviframe_class_get()
 Elementary naviframe class.
 
#define ELM_NAVIFRAME_EVENT_TRANSITION_FINISHED   (&(_ELM_NAVIFRAME_EVENT_TRANSITION_FINISHED))
 Called when naviframe transition finished. More...
 
#define ELM_NAVIFRAME_EVENT_TITLE_TRANSITION_FINISHED   (&(_ELM_NAVIFRAME_EVENT_TITLE_TRANSITION_FINISHED))
 Called when naviframe title transaction finished. More...
 
#define ELM_NAVIFRAME_EVENT_TITLE_CLICKED   (&(_ELM_NAVIFRAME_EVENT_TITLE_CLICKED))
 Called when naviframe title was clicked. More...
 
#define ELM_NAVIFRAME_EVENT_ITEM_ACTIVATED   (&(_ELM_NAVIFRAME_EVENT_ITEM_ACTIVATED))
 Called when naviframe item was activated. More...
 

Functions

Evas_Objectelm_naviframe_add (Evas_Object *parent)
 Add a new Naviframe object to the parent. More...
 
EINA_DEPRECATED void elm_naviframe_item_title_visible_set (Elm_Object_Item *it, Eina_Bool visible)
 Show/Hide the title area. More...
 
EINA_DEPRECATED Eina_Bool elm_naviframe_item_title_visible_get (const Elm_Object_Item *it)
 Get a value whether title area is visible or not. More...
 
EOAPI void elm_obj_naviframe_event_enabled_set (Eo *obj, Eina_Bool enabled)
 Control the event enabled when pushing/popping items. More...
 
EOAPI Eina_Bool elm_obj_naviframe_event_enabled_get (const Eo *obj)
 Control the event enabled when pushing/popping items. More...
 
EOAPI void elm_obj_naviframe_content_preserve_on_pop_set (Eo *obj, Eina_Bool preserve)
 Preserve the content objects when items are popped. More...
 
EOAPI Eina_Bool elm_obj_naviframe_content_preserve_on_pop_get (const Eo *obj)
 Preserve the content objects when items are popped. More...
 
EOAPI void elm_obj_naviframe_prev_btn_auto_pushed_set (Eo *obj, Eina_Bool auto_pushed)
 Control if creating prev button automatically or not. More...
 
EOAPI Eina_Bool elm_obj_naviframe_prev_btn_auto_pushed_get (const Eo *obj)
 Control if creating prev button automatically or not. More...
 
EOAPI Eina_Listelm_obj_naviframe_items_get (const Eo *obj)
 Get a list of all the naviframe items. More...
 
EOAPI Elm_Widget_Itemelm_obj_naviframe_top_item_get (const Eo *obj)
 Get a top item on the naviframe stack. More...
 
EOAPI Elm_Widget_Itemelm_obj_naviframe_bottom_item_get (const Eo *obj)
 Get a bottom item on the naviframe stack. More...
 
EOAPI Efl_Canvas_Objectelm_obj_naviframe_item_pop (Eo *obj)
 Pop an item that is on top of the stack. More...
 
EOAPI Elm_Widget_Itemelm_obj_naviframe_item_insert_before (Eo *obj, Elm_Widget_Item *before, const char *title_label, Efl_Canvas_Object *prev_btn, Efl_Canvas_Object *next_btn, Efl_Canvas_Object *content, const char *item_style)
 Insert a new item into the naviframe before item before. More...
 
EOAPI Elm_Widget_Itemelm_obj_naviframe_item_push (Eo *obj, const char *title_label, Efl_Canvas_Object *prev_btn, Efl_Canvas_Object *next_btn, Efl_Canvas_Object *content, const char *item_style)
 Push a new item to the top of the naviframe stack (and show it). More...
 
EOAPI void elm_obj_naviframe_item_simple_promote (Eo *obj, Efl_Canvas_Object *content)
 Simple version of item_promote. More...
 
EOAPI Elm_Widget_Itemelm_obj_naviframe_item_insert_after (Eo *obj, Elm_Widget_Item *after, const char *title_label, Efl_Canvas_Object *prev_btn, Efl_Canvas_Object *next_btn, Efl_Canvas_Object *content, const char *item_style)
 Insert a new item into the naviframe after item after. More...
 

Detailed Description

Naviframe stands for navigation frame. It's a views manager for applications.

A naviframe holds views (or pages) as its items. Those items are organized in a stack, so that new items get pushed on top of the old, and only the topmost view is displayed at one time. Due to the characteristics of a stack, even though you push a new item, previous item is not deleted. Previous item will be shown when you pop new item. The transition between views is animated, depending on the theme applied to the widget.

Naviframe views hold spaces to various elements, which are:

One can use elm_object_item_part_content_set, elm_object_item_part_content_get, elm_object_item_part_content_unset functions to handle the contents. The swallow part name should be one of these:

One can use elm_object_item_part_text_set, elm_object_item_part_text_get to handle the text parts. The swallow part name should be one of these:

Most of those content objects can be passed at the time of an item creation (see elm_naviframe_item_push()).

Naviframe items can have different styles, which affect the transition between views, for example. On the default theme, two of them are supported:

This widget emits the following signals, besides the ones sent from Layout :

All the parts, for content and text, described here will also be reachable by naviframe items direct calls:

What happens is that the topmost item of a naviframe will be the widget's target layout, when accessed directly. Items lying below the top one can be interacted with this way.

Here is an example on its usage:

Macro Definition Documentation

◆ ELM_NAVIFRAME_EVENT_TRANSITION_FINISHED

#define ELM_NAVIFRAME_EVENT_TRANSITION_FINISHED   (&(_ELM_NAVIFRAME_EVENT_TRANSITION_FINISHED))

Called when naviframe transition finished.

Returns
Efl_Object *

◆ ELM_NAVIFRAME_EVENT_TITLE_TRANSITION_FINISHED

#define ELM_NAVIFRAME_EVENT_TITLE_TRANSITION_FINISHED   (&(_ELM_NAVIFRAME_EVENT_TITLE_TRANSITION_FINISHED))

Called when naviframe title transaction finished.

Returns
Efl_Object *

◆ ELM_NAVIFRAME_EVENT_TITLE_CLICKED

#define ELM_NAVIFRAME_EVENT_TITLE_CLICKED   (&(_ELM_NAVIFRAME_EVENT_TITLE_CLICKED))

Called when naviframe title was clicked.

Returns
Efl_Object *

◆ ELM_NAVIFRAME_EVENT_ITEM_ACTIVATED

#define ELM_NAVIFRAME_EVENT_ITEM_ACTIVATED   (&(_ELM_NAVIFRAME_EVENT_ITEM_ACTIVATED))

Called when naviframe item was activated.

Returns
Efl_Object *

Function Documentation

◆ elm_naviframe_add()

Evas_Object* elm_naviframe_add ( Evas_Object parent)

Add a new Naviframe object to the parent.

Parameters
parentParent object
Returns
New object or NULL, if it cannot be created

References EINA_SAFETY_ON_NULL_RETURN_VAL.

◆ elm_naviframe_item_title_visible_set()

EINA_DEPRECATED void elm_naviframe_item_title_visible_set ( Elm_Object_Item it,
Eina_Bool  visible 
)

Show/Hide the title area.

Parameters
itThe naviframe item
visibleIf EINA_TRUE, title area will be visible, hidden otherwise

When the title area is invisible, then the controls would be hidden so as to expand the content area to full-size.

Deprecated:
Use elm_naviframe_item_title_enabled_set() instead.
See also
also elm_naviframe_item_title_visible_get()
also elm_naviframe_item_title_enabled_get()

References EINA_FALSE.

◆ elm_naviframe_item_title_visible_get()

EINA_DEPRECATED Eina_Bool elm_naviframe_item_title_visible_get ( const Elm_Object_Item it)

Get a value whether title area is visible or not.

Parameters
itThe naviframe item
Returns
If EINA_TRUE, title area is visible
Deprecated:
Use elm_naviframe_item_title_enabled_get() instead.
See also
also elm_naviframe_item_title_visible_set()

◆ elm_obj_naviframe_event_enabled_set()

EOAPI void elm_obj_naviframe_event_enabled_set ( Eo *  obj,
Eina_Bool  enabled 
)

Control the event enabled when pushing/popping items.

If enabled is true, the contents of the naviframe item will receives events from mouse and keyboard during view changing such as item push/pop.

Warning
Events will be blocked by calling evas_object_freeze_events_set() internally. So don't call the API whiling pushing/popping items.
Parameters
[in]objThe object.
[in]enabledEvents are received when enabled is true, and ignored otherwise.

◆ elm_obj_naviframe_event_enabled_get()

EOAPI Eina_Bool elm_obj_naviframe_event_enabled_get ( const Eo *  obj)

Control the event enabled when pushing/popping items.

If enabled is true, the contents of the naviframe item will receives events from mouse and keyboard during view changing such as item push/pop.

Warning
Events will be blocked by calling evas_object_freeze_events_set() internally. So don't call the API whiling pushing/popping items.
Parameters
[in]objThe object.
Returns
Events are received when enabled is true, and ignored otherwise.

◆ elm_obj_naviframe_content_preserve_on_pop_set()

EOAPI void elm_obj_naviframe_content_preserve_on_pop_set ( Eo *  obj,
Eina_Bool  preserve 
)

Preserve the content objects when items are popped.

Parameters
[in]objThe object.
[in]preserveEnable the preserve mode if true, disable otherwise

◆ elm_obj_naviframe_content_preserve_on_pop_get()

EOAPI Eina_Bool elm_obj_naviframe_content_preserve_on_pop_get ( const Eo *  obj)

Preserve the content objects when items are popped.

Parameters
[in]objThe object.
Returns
Enable the preserve mode if true, disable otherwise

◆ elm_obj_naviframe_prev_btn_auto_pushed_set()

EOAPI void elm_obj_naviframe_prev_btn_auto_pushed_set ( Eo *  obj,
Eina_Bool  auto_pushed 
)

Control if creating prev button automatically or not.

Parameters
[in]objThe object.
[in]auto_pushedIf true, the previous button(back button) will be created internally when you pass the NULL to the prev_btn parameter in elm_naviframe_item_push

◆ elm_obj_naviframe_prev_btn_auto_pushed_get()

EOAPI Eina_Bool elm_obj_naviframe_prev_btn_auto_pushed_get ( const Eo *  obj)

Control if creating prev button automatically or not.

Parameters
[in]objThe object.
Returns
If true, the previous button(back button) will be created internally when you pass the NULL to the prev_btn parameter in elm_naviframe_item_push

◆ elm_obj_naviframe_items_get()

EOAPI Eina_List* elm_obj_naviframe_items_get ( const Eo *  obj)

Get a list of all the naviframe items.

Parameters
[in]objThe object.
Returns
A list of naviframe items, Elm_Widget_Item, or NULL on failure. Note: The returned list MUST be freed.

◆ elm_obj_naviframe_top_item_get()

EOAPI Elm_Widget_Item* elm_obj_naviframe_top_item_get ( const Eo *  obj)

Get a top item on the naviframe stack.

Parameters
[in]objThe object.
Returns
The top item on the naviframe stack or NULL, if the stack is empty

◆ elm_obj_naviframe_bottom_item_get()

EOAPI Elm_Widget_Item* elm_obj_naviframe_bottom_item_get ( const Eo *  obj)

Get a bottom item on the naviframe stack.

Parameters
[in]objThe object.
Returns
The bottom item on the naviframe stack or NULL, if the stack is empty

◆ elm_obj_naviframe_item_pop()

EOAPI Efl_Canvas_Object* elm_obj_naviframe_item_pop ( Eo *  obj)

Pop an item that is on top of the stack.

This pops an item that is on the top(visible) of the naviframe, makes it disappear, then deletes the item. The item that was underneath it on the stack will become visible.

When pop transition animation is in progress, new pop operation is blocked until current pop operation is complete.

Parameters
[in]objThe object.
Returns
NULL or the content object(if the elm_naviframe_content_preserve_on_pop_get is true).

◆ elm_obj_naviframe_item_insert_before()

EOAPI Elm_Widget_Item* elm_obj_naviframe_item_insert_before ( Eo *  obj,
Elm_Widget_Item before,
const char *  title_label,
Efl_Canvas_Object prev_btn,
Efl_Canvas_Object next_btn,
Efl_Canvas_Object content,
const char *  item_style 
)

Insert a new item into the naviframe before item before.

The item is inserted into the naviframe straight away without any transition operations. This item will be deleted when it is popped.

Parameters
[in]objThe object.
[in]beforeThe naviframe item to insert before.
[in]title_labelThe label in the title area. The name of the title label part is "elm.text.title"
[in]prev_btnThe 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"
[in]next_btnThe 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"
[in]contentThe main content object. The name of content part is "elm.swallow.content"
[in]item_styleThe current item style name. NULL would be default.
Returns
The created item or NULL upon failure.

◆ elm_obj_naviframe_item_push()

EOAPI Elm_Widget_Item* elm_obj_naviframe_item_push ( Eo *  obj,
const char *  title_label,
Efl_Canvas_Object prev_btn,
Efl_Canvas_Object next_btn,
Efl_Canvas_Object content,
const char *  item_style 
)

Push a new item to the top of the naviframe stack (and show it).

The item pushed becomes one page of the naviframe, this item will be deleted when it is popped.

When push transition animation is in progress, pop operation is blocked until push is complete.

The following styles are available for this item: "default"

Parameters
[in]objThe object.
[in]title_labelThe label in the title area. The name of the title label part is "elm.text.title"
[in]prev_btnThe 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"
[in]next_btnThe 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"
[in]contentThe main content object. The name of content part is "elm.swallow.content"
[in]item_styleThe current item style name. NULL would be default.
Returns
The created item or NULL upon failure.

◆ elm_obj_naviframe_item_simple_promote()

EOAPI void elm_obj_naviframe_item_simple_promote ( Eo *  obj,
Efl_Canvas_Object content 
)

Simple version of item_promote.

Parameters
[in]objThe object.
[in]contentItem to promote

◆ elm_obj_naviframe_item_insert_after()

EOAPI Elm_Widget_Item* elm_obj_naviframe_item_insert_after ( Eo *  obj,
Elm_Widget_Item after,
const char *  title_label,
Efl_Canvas_Object prev_btn,
Efl_Canvas_Object next_btn,
Efl_Canvas_Object content,
const char *  item_style 
)

Insert a new item into the naviframe after item after.

The item is inserted into the naviframe straight away without any transition operations. This item will be deleted when it is popped.

The following styles are available for this item: "default"

Parameters
[in]objThe object.
[in]afterThe naviframe item to insert after.
[in]title_labelThe label in the title area. The name of the title label part is "elm.text.title"
[in]prev_btnThe 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"
[in]next_btnThe 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"
[in]contentThe main content object. The name of content part is "elm.swallow.content"
[in]item_styleThe current item style name. NULL would be default.
Returns
The created item or NULL upon failure.