class Elm_Flipselector (Elm_Layout, Elm_Interface_Atspi_Widget_Action)
{
   eo_prefix: elm_obj_flipselector;
   properties {
      first_interval {
         set {
            /*@
            @MOBILE_ONLY

            @brief Set the interval on time updates for a user mouse button hold
            on a flip selector widget.

            @remark This interval value is @b decreased while the user holds the
            mouse pointer either flipping up or flipping down a given flip
            selector.

            @remark This helps the user to get to a given item distant from the
            current one easier/faster, as it will start to flip quicker and
            quicker on mouse button holds.

            @remark The calculation for the next flip interval value, starting from
            the one set with this call, is the previous interval divided by
            1.05, so it decreases a little bit.

            @remark The default starting interval value for automatic flips is
            @b 0.85 seconds.

            @see elm_flipselector_first_interval_get()

            @if MOBILE @since_tizen 2.4
            @endif

            @ingroup Flipselector */
         }
         get {
            /*@
            @MOBILE_ONLY

            @brief Get the interval on time updates for an user mouse button hold
            on a flip selector widget.

            @return The (first) interval value, in seconds, set on it

            @see elm_flipselector_first_interval_set() for more details

            @if MOBILE @since_tizen 2.4
            @endif

            @ingroup Flipselector */
         }
         values {
            double interval; /*@ The (first) interval value in seconds */
         }
      }
      items {
         get {
            /*@
            @MOBILE_ONLY

            @brief Get the internal list of items in a given flip selector widget.

            @return The list of items (#Elm_Object_Item as data) or
            @c NULL on errors.

            @remark This list is @b not to be modified in any way and must not be
            freed. Use the list members with functions like
            @remark elm_object_item_text_set()
            @remark elm_object_item_text_get()
            @remark elm_object_item_del()
            @remark elm_flipselector_item_selected_get()
            @remark elm_flipselector_item_selected_set()

            @warning This list is only valid until @p obj object's internal
            items list is changed. It should be fetched again with another
            call to this function when changes happen.

            @if MOBILE @since_tizen 2.4
            @endif

            @ingroup Flipselector */
            return: const(list)*;
         }
      }
      first_item {
         get {
            /*@
            @MOBILE_ONLY

            @brief Get the first item in the given flip selector widget's list of
            items.

            @return The first item or @c NULL, if it has no items (and on
            errors)

            @see elm_flipselector_item_append()
            @see elm_flipselector_last_item_get()

            @if MOBILE @since_tizen 2.4
            @endif

            @ingroup Flipselector */
            return: Elm_Object_Item *;
         }
      }
      last_item {
         get {
            /*@
            @MOBILE_ONLY

            @brief Get the last item in the given flip selector widget's list of
            items.

            @return The last item or @c NULL, if it has no items (and on
            errors)

            @see elm_flipselector_item_prepend()
            @see elm_flipselector_first_item_get()

            @if MOBILE @since_tizen 2.4
            @endif

            @ingroup Flipselector */
            return: Elm_Object_Item *;
         }
      }
      selected_item {
         get {
            /*@
            @MOBILE_ONLY

            @brief Get the currently selected item in a flip selector widget.

            @return The selected item or @c NULL, if the widget has no items
            (and on errors)

            @if MOBILE @since_tizen 2.4
            @endif

            @ingroup Flipselector */
            return: Elm_Object_Item *;
         }
      }
   }
   methods {
      item_prepend {
         /*@
         @MOBILE_ONLY

         @brief Prepend a (text) item to a flip selector widget

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

         @remark The widget's list of labels to show will be prepended with the
         given value. If the user wishes so, a callback function pointer
         can be passed, which will get called when this same item is
         selected.

         @note The current selection @b won't be modified by prepending
         an element to the list.

         @note The maximum length of the text label is going to be
         determined <b>by the widget's theme</b>. Strings larger than
         that value are going to be @b truncated.

         @if MOBILE @since_tizen 2.4
         @endif

         @ingroup Flipselector */

         return: Elm_Object_Item *;
         params {
            @in const(char)* label; /*@ The (text) label of the new item */
            @in Evas_Smart_Cb func; /*@ Convenience callback function to take place when
            item is selected */
            @in void *data; /*@ Data passed to @p func, above */
         }
      }
      flip_next {
         /*@
         @MOBILE_ONLY

         @brief Programmatically select the next item of a flip selector widget

         @note The selection will be animated. Also, if it reaches the
         end of its list of member items, it will continue with the first
         one onwards.

         @if MOBILE @since_tizen 2.4
         @endif

         @ingroup Flipselector */

      }
      item_append {
         /*@
         @MOBILE_ONLY

         @brief Append a (text) item to a flip selector widget

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

         @remark The widget's list of labels to show will be appended with the
         given value. If the user wishes so, a callback function pointer
         can be passed, which will get called when this same item is
         selected.

         @note The current selection @b won't be modified by appending an
         element to the list.

         @note The maximum length of the text label is going to be
         determined <b>by the widget's theme</b>. Strings larger than
         that value are going to be @b truncated.

         @if MOBILE @since_tizen 2.4
         @endif

         @ingroup Flipselector */

         return: Elm_Object_Item *;
         params {
            @in const(char)* label; /*@ The (text) label of the new item */
            @in Evas_Smart_Cb func; /*@ Convenience callback function to take place when
            item is selected */
            @in const(void)* data; /*@ Data passed to @p func, above */
         }
      }
      flip_prev {
         /*@
         @MOBILE_ONLY

         @brief Programmatically select the previous item of a flip selector
         widget

         @note The selection will be animated. Also, if it reaches the
         beginning of its list of member items, it will continue with the
         last one backwards.

         @if MOBILE @since_tizen 2.4
         @endif

         @ingroup Flipselector */

      }
   }
   implements {
      class.constructor;
      Eo.Base.constructor;
      Evas.Object_Smart.add;
      Evas.Object_Smart.del;
      Elm_Widget.theme_apply;
      Elm_Widget.focus_next_manager_is;
      Elm_Widget.focus_direction_manager_is;
      Elm_Widget.event;
      Elm_Layout.sizing_eval;
      ///TIZEN_ONLY(20150716) : fix accessible_at_point getter
      Elm_Interface_Atspi_Component.accessible_at_point_get;
      ///
   }
   events {
      selected;
      underflowed;
      overflowed;
      language,changed;
      access,changed;
      focused;
      unfocused;
   }

}
