class Elm_Popup (Elm_Layout, Elm_Interface_Atspi_Widget_Action)
{
   eo_prefix: elm_obj_popup;
   properties {
      align {
         set {
            /*@
            @brief Set the alignment of the popup object
            Sets the alignment in which the popup will appear in its parent.

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

            @see elm_popup_align_get()

            @since 1.9
            @ingroup Popup */
         }
         get {
            /*@
            @brief Get the alignment of the popup object

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

            @see elm_popup_align_set()

            @since 1.9
            @ingroup Popup */
         }
         values {
            double horizontal; /*@ The horizontal alignment of the popup */
            double vertical; /*@ The vertical alignment of the popup */
         }
      }
      allow_events {
         set {
            /*@
            @brief Sets whether events should be passed to by a click outside.

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

            @remark Enabling allow event will remove the Blocked event area and events will
            pass to the lower layer objects otherwise they are blocked.

            @ingroup Popup
            @see elm_popup_allow_events_get()
            @note The default value is EINA_FALSE. */
         }
         get {
            /*@
            @brief Returns value indicating whether allow event is enabled or not

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

            @return @c EINA_FALSE if Blocked event area is present else @c EINA_TRUE

            @ingroup Popup
            @see elm_popup_allow_events_set()
            @note By default the Blocked event area is present */
         }
         values {
            bool allow; /*@ @c EINA_TRUE Events are passed to lower objects, else not */
         }
      }
      content_text_wrap_type {
         set {
            /*@
            @brief Sets the wrapping type of content text packed in content
            area of popup object.

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

            @ingroup Popup
            @see elm_popup_content_text_wrap_type_get() */
         }
         get {
            /*@
            @brief Returns the wrapping type of content text packed in content area of
            popup object.

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

            @return wrap type of the content text

            @ingroup Popup
            @see elm_popup_content_text_wrap_type_set */
         }
         values {
            Elm_Wrap_Type wrap; /*@ wrapping type of type Elm_Wrap_Type */
         }
      }
      orient {
         set {
            /*@
            @brief Sets the orientation of the popup in the parent region

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

            @remark Sets the position in which popup will appear in its parent. By default,
            #ELM_POPUP_ORIENT_CENTER is set.

            @ingroup Popup
            @see @ref Elm_Popup_Orient for possible values. */
         }
         get {
            /*@
            @brief Returns the orientation of Popup

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

            @return the orientation of the popup

            @ingroup Popup
            @see elm_popup_orient_set()
            @see Elm_Popup_Orient */
         }
         values {
            Elm_Popup_Orient orient; /*@ the orientation of the popup */
         }
      }
      timeout {
         set {
            /*@
            @brief Sets a timeout to hide popup automatically

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

            @remark This function sets a timeout and starts the timer controlling when the
            popup is hidden. Since calling evas_object_show() on a popup restarts
            the timer controlling when it is hidden, setting this before the
            popup is shown will in effect mean starting the timer when the popup is
            shown. Smart signal "timeout" is called afterwards which can be handled
            if needed.

            @remark Set a value <= 0.0 to disable a running timer.

            @remark If the value > 0.0 and the popup is previously visible, the
            timer will be started with this value, canceling any running timer.
            @ingroup Popup */
         }
         get {
            /*@
            @brief Returns the timeout value set to the popup (in seconds)

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

            @return the timeout value

            @ingroup Popup
            @see elm_popup_timeout_set() */
         }
         values {
            double timeout; /*@ The timeout in seconds */
         }
      }
   }
   methods {
      item_append {
         /*@
         @brief Add a new item to a Popup object

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

         @remark Both an item list and a content could not be set at the same time!
         once you add an item, the previous content will be removed.

         @return A handle to the item added or @c NULL, on errors

         @ingroup Popup
         @warning When the first item is appended to popup object, any previous content
         of the content area is deleted. At a time, only one of content, content-text
         and item(s) can be there in a popup content area. */

         return: Elm_Object_Item *;
         params {
            @in const(char)* label; /*@ The Label of the new item */
            @in Evas_Object *icon; /*@ Icon to be set on new item */
            @in Evas_Smart_Cb func; /*@ Convenience function called when item selected */
            @in const(void)* data; /*@ Data passed to @p func above */
         }
      }
      dismiss {
         /*@
          @brief Dismiss a popup object

          @since_tizen 2.3.1

          @param[in] obj The popup object

          @details Use this function to dismiss the popup with hide effect.
                   when the popup is dismissed, the "dismissed" signal will be
                   emitted.

          @ingroup Popup */
      }
   }
   implements {
      class.constructor;
      Eo.Base.constructor;
      Evas.Object_Smart.del;
      Evas.Object_Smart.add;
      Elm_Widget.focus_direction;
      Elm_Widget.focus_next_manager_is;
      Elm_Widget.theme_apply;
      Elm_Widget.focus_direction_manager_is;
      Elm_Widget.access;
      Elm_Widget.focus_next;
      Elm_Widget.parent.set;
      Elm_Widget.translate;
      Elm_Widget.sub_object_del;
      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.sizing_eval;
      Elm_Interface_Atspi_Widget_Action.elm_actions.get;
      Elm_Interface_Atspi_Accessible.state_set.get;
      Elm_Interface_Atspi_Component.highlight_grab;
      Elm_Interface_Atspi_Component.highlight_clear;
   }
   events {
      block,clicked;
      timeout;
      item,focused;
      item,unfocused;
      language,changed;
      access,changed;
      focused;
      unfocused;
   }

}
