class Elm_Naviframe (Elm_Layout, Elm_Interface_Atspi_Widget_Action)
{
   eo_prefix: elm_obj_naviframe;
   properties {
      event_enabled {
         set {
            /*@
            @brief Set the event enabled when pushing/popping items

            @if MOBILE @since_tizen 2.3
            @elseif WEARABLE @since_tizen 2.3.1
            @endif

            @remark If @p enabled is @c EINA_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.

            @see elm_naviframe_event_enabled_get()
            @see evas_object_freeze_events_set()

            @ingroup Naviframe */
         }
         get {
            /*@
            @brief Get the value of event enabled status.

            @if MOBILE @since_tizen 2.3
            @elseif WEARABLE @since_tizen 2.3.1
            @endif

            @return @c EINA_TRUE, when event is enabled

            @see elm_naviframe_event_enabled_set()

            @ingroup Naviframe */
         }
         values {
            bool enabled; /*@ Events are received when enabled is @c EINA_TRUE, and
            ignored otherwise. */
         }
      }
      content_preserve_on_pop {
         set {
            /*@
            @brief preserve the content objects when items are popped.

            @if MOBILE @since_tizen 2.3
            @elseif WEARABLE @since_tizen 2.3.1
            @endif

            @see also elm_naviframe_content_preserve_on_pop_get()

            @ingroup Naviframe */
         }
         get {
            /*@
            @brief Get a value whether preserve mode is enabled or not.

            @if MOBILE @since_tizen 2.3
            @elseif WEARABLE @since_tizen 2.3.1
            @endif

            @return If @c EINA_TRUE, preserve mode is enabled

            @see also elm_naviframe_content_preserve_on_pop_set()

            @ingroup Naviframe */
         }
         values {
            bool preserve; /*@ Enable the preserve mode if @c EINA_TRUE, disable otherwise */
         }
      }
      prev_btn_auto_pushed {
         set {
            /*@
            @brief Set creating prev button automatically or not

            @if MOBILE @since_tizen 2.3
            @elseif WEARABLE @since_tizen 2.3.1
            @endif

            @see also elm_naviframe_item_push()

            @ingroup Naviframe */
         }
         get {
            /*@
            @brief Get a value whether prev button(back button) will be auto pushed or
            not.

            @if MOBILE @since_tizen 2.3
            @elseif WEARABLE @since_tizen 2.3.1
            @endif

            @return If @c EINA_TRUE, prev button will be auto pushed.

            @see also elm_naviframe_item_push()
            @see elm_naviframe_prev_btn_auto_pushed_set()

            @ingroup Naviframe */
         }
         values {
            bool auto_pushed; /*@ If @c EINA_TRUE, the previous button(back button) will
            be created internally when you pass the @c NULL to the prev_btn
            parameter in elm_naviframe_item_push */
         }
      }
      items {
         get {
            /*@
            @brief Get a list of all the naviframe items.

            @if MOBILE @since_tizen 2.3
            @elseif WEARABLE @since_tizen 2.3.1
            @endif

            @return A list of naviframe items, #Elm_Object_Item,
            or @c NULL on failure.
            @note The returned list MUST be freed.

            @ingroup Naviframe */
            return: list * @warn_unused;
         }
      }
      top_item {
         get {
            /*@
            @brief Get a top item on the naviframe stack

            @if MOBILE @since_tizen 2.3
            @elseif WEARABLE @since_tizen 2.3.1
            @endif

            @return The top item on the naviframe stack or @c NULL, if the stack is
            empty

            @ingroup Naviframe */
            return: Elm_Object_Item *;
         }
      }
      bottom_item {
         get {
            /*@
            @brief Get a bottom item on the naviframe stack

            @if MOBILE @since_tizen 2.3
            @elseif WEARABLE @since_tizen 2.3.1
            @endif

            @return The bottom item on the naviframe stack or @c NULL, if the stack is
            empty

            @ingroup Naviframe */
            return: Elm_Object_Item *;
         }
      }
   }
   methods {
      item_pop {
         /*@
         @brief Pop an item that is on top of the stack

         @if MOBILE @since_tizen 2.3
         @elseif WEARABLE @since_tizen 2.3.1
         @endif

         @return @c NULL or the content object(if the
         elm_naviframe_content_preserve_on_pop_get is true).

         @remark 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.

         @see also elm_naviframe_content_preserve_on_pop_get()
         @see also elm_naviframe_item_pop_cb_set()

         @ingroup Naviframe */

         return: Evas_Object *;
      }
      item_insert_before {
         /*@
         @brief Insert a new item into the naviframe before item @p before.

         @if MOBILE @since_tizen 2.3
         @elseif WEARABLE @since_tizen 2.3.1
         @endif

         @return The created item or @c NULL upon failure.

         @remark 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()

         @remark The following styles are available for this item:
         @li @c "default"

         @ingroup Naviframe */

         return: Elm_Object_Item *;
         params {
            @in Elm_Object_Item *before; /*@ The naviframe item to insert before. */
            @in const(char)* title_label; /*@ The label in the title area. The name of the title
            label part is "elm.text.title" */
            @in Evas_Object *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" */
            @in Evas_Object *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" */
            @in Evas_Object *content; /*@ The main content object. The name of content part is
            "elm.swallow.content" */
            @in const(char)* item_style; /*@ The current item style name. @c NULL would be default. */
         }
      }
      item_push {
         /*@
         @brief Push a new item to the top of the naviframe stack (and show it).

         @if MOBILE @since_tizen 2.3
         @elseif WEARABLE @since_tizen 2.3.1
         @endif

         @return The created item or @c NULL upon failure.

         @remark The item pushed becomes one page of the naviframe, this item will be
         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()

         @remark The following styles are available for this item:
         @li @c "default"

         @ingroup Naviframe */

         return: Elm_Object_Item *;
         params {
            @in const(char)* title_label; /*@ The label in the title area. The name of the title
            label part is "elm.text.title" */
            @in Evas_Object *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" */
            @in Evas_Object *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" */
            @in Evas_Object *content; /*@ The main content object. The name of content part is
            "elm.swallow.content" */
            @in const(char)* item_style; /*@ The current item style name. @c NULL would be default. */
         }
      }
      item_simple_promote {
         /*@
         @brief Simple version of item_promote.

         @if MOBILE @since_tizen 2.3
         @elseif WEARABLE @since_tizen 2.3.1
         @endif

         @ingroup Naviframe

         @see elm_naviframe_item_promote */

         params {
            @in Evas_Object *content;
         }
      }
      item_insert_after {
         /*@
         @brief Insert a new item into the naviframe after item @p after.

         @if MOBILE @since_tizen 2.3
         @elseif WEARABLE @since_tizen 2.3.1
         @endif

         @return The created item or @c NULL upon failure.

         @remark 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()

         @remark The following styles are available for this item:
         @li @c "default"

         @ingroup Naviframe */

         return: Elm_Object_Item *;
         params {
            @in Elm_Object_Item *after; /*@ The naviframe item to insert after. */
            @in const(char)* title_label; /*@ The label in the title area. The name of the title
            label part is "elm.text.title" */
            @in Evas_Object *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" */
            @in Evas_Object *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" */
            @in Evas_Object *content; /*@ The main content object. The name of content part is
            "elm.swallow.content" */
            @in const(char)* item_style; /*@ The current item style name. @c NULL would be default. */
         }
      }
   }
   implements {
      class.constructor;
      Eo.Base.constructor;
      Evas.Object_Smart.del;
      Evas.Object_Smart.show;
      Evas.Object_Smart.add;
      Elm_Widget.focus_direction;
      Elm_Widget.focus_next_manager_is;
      Elm_Widget.focus_direction_manager_is;
      Elm_Widget.access;
      Elm_Widget.focus_next;
      Elm_Widget.translate;
      Elm_Widget.theme_apply;
      Elm_Widget.event;
      Elm_Container.content_get;
      Elm_Container.content_set;
      Elm_Container.content_unset;
      Elm_Layout.text_set;
      Elm_Layout.text_get;
      Elm_Layout.signal_emit;
      Elm_Layout.sizing_eval;
      Elm_Interface_Atspi_Widget_Action.elm_actions.get;
      Elm_Interface_Atspi_Component.accessible_at_point_get;
   }
   events {
      transition,finished;
      title,transition,finished;
      title,clicked;
      language,changed;
      access,changed;
      focused;
      unfocused;
   }

}
