aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorthe81.kim@samsung.com <ohpowel@gmail.com>2014-11-21 14:58:21 +0900
committerTae-Hwan Kim <ohpowel@gmail.com>2014-11-21 14:58:21 +0900
commit31d66c58f6f0d2cc9577375d1f8f7e105a7e1d4a (patch)
treedf3e018881577aca9a7281fd6294356f84437dbb
parentTemporary file (diff)
downloadelementary-devs/bluezery/doc.tar.gz
Documentation from Tizendevs/bluezery/doc
-rw-r--r--src/lib/elc_ctxpopup.h228
-rw-r--r--src/lib/elc_fileselector.h285
-rw-r--r--src/lib/elc_fileselector_button.h269
-rw-r--r--src/lib/elc_fileselector_entry.h303
-rw-r--r--src/lib/elc_hoversel.h205
-rw-r--r--src/lib/elc_multibuttonentry.h328
-rw-r--r--src/lib/elc_naviframe.h437
-rw-r--r--src/lib/elc_popup.h298
-rw-r--r--src/lib/elm_access.h311
-rw-r--r--src/lib/elm_actionslider.h114
-rw-r--r--src/lib/elm_app.h343
-rw-r--r--src/lib/elm_authors.h104
-rw-r--r--src/lib/elm_bg.h191
-rw-r--r--src/lib/elm_box.h501
-rw-r--r--src/lib/elm_bubble.h75
-rw-r--r--src/lib/elm_button.h146
-rw-r--r--src/lib/elm_cache.h31
-rw-r--r--src/lib/elm_calendar.h508
-rw-r--r--src/lib/elm_check.h101
-rw-r--r--src/lib/elm_clock.h269
-rw-r--r--src/lib/elm_cnp.h476
-rw-r--r--src/lib/elm_colorselector.h220
-rw-r--r--src/lib/elm_config.h1684
-rw-r--r--src/lib/elm_conform.h55
-rw-r--r--src/lib/elm_cursor.h120
-rw-r--r--src/lib/elm_datetime.h516
-rw-r--r--src/lib/elm_dayselector.h146
-rw-r--r--src/lib/elm_debug.h20
-rw-r--r--src/lib/elm_deprecated.h1567
-rw-r--r--src/lib/elm_diskselector.h404
-rw-r--r--src/lib/elm_entry.h2143
-rw-r--r--src/lib/elm_entry_common.h93
-rw-r--r--src/lib/elm_finger.h57
-rw-r--r--src/lib/elm_flip.h315
-rw-r--r--src/lib/elm_flipselector.h301
-rw-r--r--src/lib/elm_focus.h351
-rw-r--r--src/lib/elm_font.h87
-rw-r--r--src/lib/elm_frame.h100
-rw-r--r--src/lib/elm_gen.h50
-rw-r--r--src/lib/elm_general.h391
-rw-r--r--src/lib/elm_gengrid.h1791
-rw-r--r--src/lib/elm_genlist.h2042
-rw-r--r--src/lib/elm_gesture_layer.h664
-rw-r--r--src/lib/elm_getting_started.h71
-rw-r--r--src/lib/elm_glview.h325
-rw-r--r--src/lib/elm_grid.h125
-rw-r--r--src/lib/elm_hover.h162
-rw-r--r--src/lib/elm_icon.h577
-rw-r--r--src/lib/elm_image.h520
-rw-r--r--src/lib/elm_index.h478
-rw-r--r--src/lib/elm_interface_scrollable.h508
-rw-r--r--src/lib/elm_inwin.h118
-rw-r--r--src/lib/elm_label.h352
-rw-r--r--src/lib/elm_layout.h931
-rw-r--r--src/lib/elm_list.h837
-rw-r--r--src/lib/elm_macros.h12
-rw-r--r--src/lib/elm_map.h1732
-rw-r--r--src/lib/elm_mapbuf.h182
-rw-r--r--src/lib/elm_menu.h277
-rw-r--r--src/lib/elm_mirroring.h57
-rw-r--r--src/lib/elm_need.h112
-rw-r--r--src/lib/elm_notify.h165
-rw-r--r--src/lib/elm_object.h731
-rw-r--r--src/lib/elm_object_item.h949
-rw-r--r--src/lib/elm_panel.h174
-rw-r--r--src/lib/elm_panes.h198
-rw-r--r--src/lib/elm_photo.h120
-rw-r--r--src/lib/elm_photocam.h339
-rw-r--r--src/lib/elm_plug.h98
-rw-r--r--src/lib/elm_progressbar.h289
-rw-r--r--src/lib/elm_radio.h156
-rw-r--r--src/lib/elm_route.h55
-rw-r--r--src/lib/elm_scale.h38
-rw-r--r--src/lib/elm_scroll.h151
-rw-r--r--src/lib/elm_scroller.h693
-rw-r--r--src/lib/elm_segment_control.h277
-rw-r--r--src/lib/elm_separator.h47
-rw-r--r--src/lib/elm_slider.h418
-rw-r--r--src/lib/elm_slideshow.h482
-rw-r--r--src/lib/elm_spinner.h446
-rw-r--r--src/lib/elm_store.h326
-rw-r--r--src/lib/elm_table.h179
-rw-r--r--src/lib/elm_theme.h587
-rw-r--r--src/lib/elm_thumb.h232
-rw-r--r--src/lib/elm_toolbar.h1066
-rw-r--r--src/lib/elm_tooltip.h227
-rw-r--r--src/lib/elm_transit.h963
-rw-r--r--src/lib/elm_video.h230
-rw-r--r--src/lib/elm_web.h954
-rw-r--r--src/lib/elm_win.h1963
90 files changed, 31094 insertions, 7475 deletions
diff --git a/src/lib/elc_ctxpopup.h b/src/lib/elc_ctxpopup.h
index dc93ffa5b..e68ff687a 100644
--- a/src/lib/elc_ctxpopup.h
+++ b/src/lib/elc_ctxpopup.h
@@ -1,16 +1,12 @@
/**
* @defgroup Ctxpopup Ctxpopup
- * @ingroup Elementary
+ * @ingroup elm_widget_group
*
* @image html ctxpopup_inheritance_tree.png
* @image latex ctxpopup_inheritance_tree.eps
*
- * @image html img/widget/ctxpopup/preview-00.png
- * @image latex img/widget/ctxpopup/preview-00.eps
+ * @brief A ctxpopup is a widget that, when shown, pops up a list of items.
*
- * @brief Context popup widget.
- *
- * A ctxpopup is a widget that, when shown, pops up a list of items.
* It automatically chooses an area inside its parent object's view
* (set via elm_ctxpopup_add() and elm_ctxpopup_hover_parent_set()) to
* optimally fit into it. In the default theme, it will also point an
@@ -18,19 +14,16 @@
* items have a label and/or an icon. It is intended for a small
* number of items (hence the use of list, not genlist).
*
- * This widget inherits from the Layout one, so that all the
- * functions acting on it also work for context popup objects (since 1.8).
+ * This widget inherits from the @ref Layout one, so that all the
+ * functions acting on it also work for context popup objects
+ * (@since 1.8).
*
* This widget emits the following signals, besides the ones sent from
- * @ref Layout:
- * - @c "dismissed" - This is called when 1. the outside of ctxpopup was clicked
- * or 2. its parent area is changed or 3. the language is changed and also when
- * 4. the parent object is resized due to the window rotation. Then ctxpopup is
+ * @ref Layout :
+ * - @c "dismissed" - this is called when the outside of ctxpopup was clicked or
+ * it's parent area is changed or the language is changed. and then ctxpopup is
* dismissed.
- * - @c "language,changed" - This is called when the program's language is
- * changed.
- * - @c "focused" - When the ctxpopup has received focus. (since 1.8)
- * - @c "unfocused" - When the ctxpopup has lost focus. (since 1.8)
+ *
* Default content parts of the ctxpopup widget that you can use for are:
* @li "default" - A content of the ctxpopup
*
@@ -38,14 +31,13 @@
* @li "icon" - An icon in the title area
*
* Default text parts of the ctxpopup items that you can use for are:
- * @li "default" - A title label in the title area
+ * @li "default" - Title label in the title area
*
* Supported elm_object common APIs.
* @li @ref elm_object_disabled_set
* @li @ref elm_object_disabled_get
*
* Supported elm_object_item common APIs.
- * @li @ref elm_object_item_del
* @li @ref elm_object_item_disabled_set
* @li @ref elm_object_item_disabled_get
* @li @ref elm_object_item_part_text_set
@@ -54,17 +46,201 @@
* @li @ref elm_object_item_part_content_get
* @li @ref elm_object_item_signal_emit
*
- * @ref tutorial_ctxpopup shows the usage of a good deal of the API.
* @{
*/
-#include "elc_ctxpopup_common.h"
-#ifdef EFL_EO_API_SUPPORT
-#include "elc_ctxpopup_eo.h"
-#endif
-#ifndef EFL_NOLEGACY_API_SUPPORT
-#include "elc_ctxpopup_legacy.h"
-#endif
+/**
+ * @brief Enumeration of ctxpopup direction type
+ */
+typedef enum
+{
+ ELM_CTXPOPUP_DIRECTION_DOWN, /**< ctxpopup show appear below clicked area */
+ ELM_CTXPOPUP_DIRECTION_RIGHT, /**< ctxpopup show appear to the right of the clicked area */
+ ELM_CTXPOPUP_DIRECTION_LEFT, /**< ctxpopup show appear to the left of the clicked area */
+ ELM_CTXPOPUP_DIRECTION_UP, /**< ctxpopup show appear above the clicked area */
+ ELM_CTXPOPUP_DIRECTION_UNKNOWN, /**< ctxpopup does not determine it's direction yet*/
+} Elm_Ctxpopup_Direction; /**< Direction in which to show the popup */
+
+/**
+ * @brief Add a new Ctxpopup object to the parent.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] parent Parent object
+ * @return New object or @c NULL, if it cannot be created
+ */
+EAPI Evas_Object *elm_ctxpopup_add(Evas_Object *parent);
+
+/**
+ * @brief Set the Ctxpopup's parent object
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks elm_ctxpopup_add() will automatically call this function
+ * with its @c parent argument.
+ *
+ * @param[in] obj The ctxpopup object
+ * @param[in] parent The parent to use
+ *
+ * @see elm_ctxpopup_add()
+ * @see elm_hover_parent_set()
+ */
+EAPI void elm_ctxpopup_hover_parent_set(Evas_Object *obj, Evas_Object *parent);
+
+/**
+ * @brief Get the Ctxpopup's parent
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The ctxpopup object
+ * @return The parent object
+ *
+ * @see elm_ctxpopup_hover_parent_set() for more information
+ */
+EAPI Evas_Object *elm_ctxpopup_hover_parent_get(const Evas_Object *obj);
+
+/**
+ * @brief Clear all items in the given ctxpopup object.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj Ctxpopup object
+ */
+EAPI void elm_ctxpopup_clear(Evas_Object *obj);
+
+/**
+ * @brief Change the ctxpopup's orientation to horizontal or vertical.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj Ctxpopup object
+ * @param[in] horizontal @c EINA_TRUE for horizontal mode, @c EINA_FALSE for vertical
+ */
+EAPI void elm_ctxpopup_horizontal_set(Evas_Object *obj, Eina_Bool horizontal);
+
+/**
+ * @brief Get the value of current ctxpopup object's orientation.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj Ctxpopup object
+ * @return @c EINA_TRUE for horizontal mode, @c EINA_FALSE for vertical mode (or errors)
+ *
+ * @see elm_ctxpopup_horizontal_set()
+ */
+EAPI Eina_Bool elm_ctxpopup_horizontal_get(const Evas_Object *obj);
+
+/**
+ * @brief Add a new item to a ctxpopup object.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj Ctxpopup object
+ * @param[in] label The Label of the new item
+ * @param[in] icon Icon to be set on new item
+ * @param[in] func Convenience function called when item selected
+ * @param[in] data Data passed to @p func
+ * @return A handle to the item added or @c NULL, on errors
+ *
+ * @warning Ctxpopup can't hold both an item list and a content at the same
+ * time. When an item is added, any previous content will be removed.
+ *
+ * @see elm_object_content_set()
+ */
+EAPI Elm_Object_Item *elm_ctxpopup_item_append(Evas_Object *obj, const char *label, Evas_Object *icon, Evas_Smart_Cb func, const void *data);
+
+/**
+ * @brief Set the direction priority of a ctxpopup.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj Ctxpopup object
+ * @param[in] first 1st priority of direction
+ * @param[in] second 2nd priority of direction
+ * @param[in] third 3th priority of direction
+ * @param[in] fourth 4th priority of direction
+ *
+ * This functions gives a chance to user to set the priority of ctxpopup
+ * showing direction. This doesn't guarantee the ctxpopup will appear in the
+ * requested direction.
+ *
+ * @see Elm_Ctxpopup_Direction
+ */
+EAPI void elm_ctxpopup_direction_priority_set(Evas_Object *obj, Elm_Ctxpopup_Direction first, Elm_Ctxpopup_Direction second, Elm_Ctxpopup_Direction third, Elm_Ctxpopup_Direction fourth);
+
+/**
+ * @brief Get the direction priority of a ctxpopup.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj Ctxpopup object
+ * @param[out] first 1st priority of direction to be returned
+ * @param[out] second 2nd priority of direction to be returned
+ * @param[out] third 3th priority of direction to be returned
+ * @param[out] fourth 4th priority of direction to be returned
+ *
+ * @see elm_ctxpopup_direction_priority_set() for more information.
+ */
+EAPI void elm_ctxpopup_direction_priority_get(Evas_Object *obj, Elm_Ctxpopup_Direction *first, Elm_Ctxpopup_Direction *second, Elm_Ctxpopup_Direction *third, Elm_Ctxpopup_Direction *fourth);
+
+/**
+ * @brief Get the current direction of a ctxpopup.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj Ctxpopup object
+ * @return current direction of a ctxpopup
+ *
+ * @warning Once the ctxpopup showed up, the direction would be determined
+ */
+EAPI Elm_Ctxpopup_Direction elm_ctxpopup_direction_get(const Evas_Object *obj);
+
+/**
+ * @brief Dismiss a ctxpopup object
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The ctxpopup object
+ * Use this function to simulate clicking outside the ctxpopup to dismiss it.
+ * In this way, the ctxpopup will be hidden and the "clicked" signal will be
+ * emitted.
+ */
+EAPI void elm_ctxpopup_dismiss(Evas_Object *obj);
+
+/**
+ * brief Get the possibility that the direction would be available
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The ctxpopup object
+ * @param[in] direction A direction user wants to check
+ *
+ * Use this function to check whether input direction is proper for ctxpopup.
+ * If ctxpopup cannot be at the direction since there is no sufficient area it can be,
+ *
+ * @return @c EINA_FALSE if you cannot put it in the direction.
+ * @c EINA_TRUE if it's possible.
+ */
+EAPI Eina_Bool elm_ctxpopup_direction_available_get(Evas_Object *obj, Elm_Ctxpopup_Direction direction);
+
+/**
+ * @brief Set whether ctxpopup hide automatically or not when parent of ctxpopup is resized
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj Ctxpopup object
+ * @param[in] disabled @c EINA_TRUE for not hiding, @c EINA_FALSE for hiding automatically
+ *
+ * Use this function when user wants ctxpopup not to hide automatically.
+ * In default, ctxpopup is dismissed whenever mouse clicked its background area, language is changed,
+ * and its parent geometry is updated(changed).
+ * Not to hide ctxpopup automatically, disable auto hide function by calling this API,
+ * then ctxpopup won't be dismissed in those scenarios.
+ *
+ * Default value of disabled is EINA_FALSE.
+ */
+EAPI void elm_ctxpopup_auto_hide_disabled_set(Evas_Object *obj, Eina_Bool disabled);
+
/**
* @}
*/
diff --git a/src/lib/elc_fileselector.h b/src/lib/elc_fileselector.h
index 9ecd5610e..ff76b30e5 100644
--- a/src/lib/elc_fileselector.h
+++ b/src/lib/elc_fileselector.h
@@ -1,6 +1,7 @@
/**
+ * @internal
* @defgroup Fileselector File Selector
- * @ingroup Elementary
+ * @ingroup elm_widget_group
*
* @image html fileselector_inheritance_tree.png
* @image latex fileselector_inheritance_tree.eps
@@ -34,47 +35,279 @@
* library, the second form of view will display preview thumbnails
* of files which it supports.
*
- * This widget inherits from the Layout one, so that all the
+ * This widget inherits from the @ref Layout one, so that all the
* functions acting on it also work for file selector objects.
*
* This widget emits the following signals, besides the ones sent from
- * @ref Layout:
- * - @c "activated" - the user activated a file. This can happen by
- * double-clicking or pressing Enter key. (@p event_info is a
- * pointer to the activated file path)
+ * @ref Layout :
* - @c "selected" - the user has clicked on a file (when not in
* folders-only mode) or directory (when in folders-only mode)
- * - @c "selected,invalid" - the user has tried to access wrong path
- * which does not exist.
* - @c "directory,open" - the list has been populated with new
- * content (@p event_info is a pointer to the directory's
+ * content (@c event_info is a pointer to the directory's
* path, a @b stringshared string)
* - @c "done" - the user has clicked on the "ok" or "cancel"
- * buttons (@p event_info is a pointer to the selection's
+ * buttons (@c event_info is a pointer to the selection's
* path, a @b stringshared string)
- * - @c "focused" - When the fileselector has received focus. (since 1.9)
- * - @c "unfocused" - When the fileselector has lost focus. (since 1.9)
*
- * For text, elm_layout_text_set() will work here on:
- * @li @c "ok" - OK button label if the ok button is set. @since 1.8
- * @li @c "cancel" - Cancel button label if the cancel button is set. @since 1.8
+ * @{
+ */
+
+/**
+ * Defines how a file selector widget is to layout its contents
+ * (file system entries).
+ */
+typedef enum
+{
+ ELM_FILESELECTOR_LIST = 0, /**< layout as a list */
+ ELM_FILESELECTOR_GRID, /**< layout as a grid */
+ ELM_FILESELECTOR_LAST /**< sentinel (helper) value, not used */
+} Elm_Fileselector_Mode;
+
+/**
+ * Add a new file selector widget to the given parent Elementary
+ * (container) object
*
- * Here is an example on its usage:
- * @li @ref fileselector_example
+ * @param[in] parent The parent object
+ * @return a new file selector widget handle or @c NULL, on errors
+ *
+ * This function inserts a new file selector widget on the canvas.
+ *
+ * @ingroup Fileselector
*/
+EAPI Evas_Object *elm_fileselector_add(Evas_Object *parent);
/**
- * @addtogroup Fileselector
- * @{
+ * Enable/disable the file name entry box where the user can type
+ * in a name for a file, in a given file selector widget
+ *
+ * @param[in] obj The file selector object
+ * @param[in] is_save @c EINA_TRUE to make the file selector a "saving
+ * dialog", @c EINA_FALSE otherwise
+ *
+ * Having the entry editable is useful on file saving dialogs on
+ * applications, where one gives a file name to save contents to,
+ * in a given directory in the system. This custom file name will
+ * be reported on the @c "done" smart callback.
+ *
+ * @see elm_fileselector_is_save_get()
+ *
+ * @ingroup Fileselector
+ */
+EAPI void elm_fileselector_is_save_set(Evas_Object *obj, Eina_Bool is_save);
+
+/**
+ * Get whether the given file selector is in "saving dialog" mode
+ *
+ * @param[in] obj The file selector object
+ * @return @c EINA_TRUE, if the file selector is in "saving dialog"
+ * mode, @c EINA_FALSE otherwise (and on errors)
+ *
+ * @see elm_fileselector_is_save_set() for more details
+ *
+ * @ingroup Fileselector
+ */
+EAPI Eina_Bool elm_fileselector_is_save_get(const Evas_Object *obj);
+
+/**
+ * Enable/disable folder-only view for a given file selector widget
+ *
+ * @param[in] obj The file selector object
+ * @param[in] only @c EINA_TRUE to make @p obj only display
+ * directories, @c EINA_FALSE to make files to be displayed in it
+ * too
+ *
+ * If enabled, the widget's view will only display folder items,
+ * naturally.
+ *
+ * @see elm_fileselector_folder_only_get()
+ *
+ * @ingroup Fileselector
+ */
+EAPI void elm_fileselector_folder_only_set(Evas_Object *obj, Eina_Bool only);
+
+/**
+ * Get whether folder-only view is set for a given file selector
+ * widget
+ *
+ * @param[in] obj The file selector object
+ * @return only @c EINA_TRUE if @p obj is only displaying
+ * directories, @c EINA_FALSE if files are being displayed in it
+ * too (and on errors)
+ *
+ * @see elm_fileselector_folder_only_get()
+ *
+ * @ingroup Fileselector
+ */
+EAPI Eina_Bool elm_fileselector_folder_only_get(const Evas_Object *obj);
+
+/**
+ * Enable/disable the "ok" and "cancel" buttons on a given file
+ * selector widget
+ *
+ * @param[in] obj The file selector object
+ * @param[in] buttons @c EINA_TRUE to show buttons, @c EINA_FALSE to hide.
+ *
+ * @note A file selector without those buttons will never emit the
+ * @c "done" smart event, and is only usable if one is just hooking
+ * to the other two events.
+ *
+ * @see elm_fileselector_buttons_ok_cancel_get()
+ *
+ * @ingroup Fileselector
+ */
+EAPI void elm_fileselector_buttons_ok_cancel_set(Evas_Object *obj, Eina_Bool buttons);
+
+/**
+ * Get whether the "ok" and "cancel" buttons on a given file
+ * selector widget are being shown.
+ *
+ * @param[in] obj The file selector object
+ * @return @c EINA_TRUE if they are being shown, @c EINA_FALSE
+ * otherwise (and on errors)
+ *
+ * @see elm_fileselector_buttons_ok_cancel_set() for more details
+ *
+ * @ingroup Fileselector
+ */
+EAPI Eina_Bool elm_fileselector_buttons_ok_cancel_get(const Evas_Object *obj);
+
+/**
+ * Enable/disable a tree view in the given file selector widget,
+ * <b>if it's in @c #ELM_FILESELECTOR_LIST mode</b>
+ *
+ * @param[in] obj The file selector object
+ * @param[in] expand @c EINA_TRUE to enable tree view, @c EINA_FALSE to
+ * disable
+ *
+ * In a tree view, arrows are created on the sides of directories,
+ * allowing them to expand in place.
+ *
+ * @note If it's in other mode, the changes made by this function
+ * will only be visible when one switches back to "list" mode.
+ *
+ * @see elm_fileselector_expandable_get()
+ *
+ * @ingroup Fileselector
+ */
+EAPI void elm_fileselector_expandable_set(Evas_Object *obj, Eina_Bool expand);
+
+/**
+ * Get whether tree view is enabled for the given file selector
+ * widget
+ *
+ * @param[in] obj The file selector object
+ * @return @c EINA_TRUE if @p obj is in tree view, @c EINA_FALSE
+ * otherwise (and or errors)
+ *
+ * @see elm_fileselector_expandable_set() for more details
+ *
+ * @ingroup Fileselector
+ */
+EAPI Eina_Bool elm_fileselector_expandable_get(const Evas_Object *obj);
+
+/**
+ * Set, programmatically, the @b directory that a given file
+ * selector widget will display contents from
+ *
+ * @param[in] obj The file selector object
+ * @param[in] path The path to display in @p obj
+ *
+ * This will change the @b directory that @p obj is displaying. It
+ * will also clear the text entry area on the @p obj object, which
+ * displays select files' names.
+ *
+ * @see elm_fileselector_path_get()
+ *
+ * @ingroup Fileselector
+ */
+EAPI void elm_fileselector_path_set(Evas_Object *obj, const char *path);
+
+/**
+ * Get the parent directory's path that a given file selector
+ * widget is displaying
+ *
+ * @param[in] obj The file selector object
+ * @return The (full) path of the directory the file selector is
+ * displaying, a @b stringshared string
+ *
+ * @see elm_fileselector_path_set()
+ *
+ * @ingroup Fileselector
+ */
+EAPI const char *elm_fileselector_path_get(const Evas_Object *obj);
+
+/**
+ * Set, programmatically, the currently selected file/directory in
+ * the given file selector widget
+ *
+ * @param[in] obj The file selector object
+ * @param[in] path The (full) path to a file or directory
+ * @return @c EINA_TRUE on success, @c EINA_FALSE on failure. The
+ * latter case occurs if the directory or file pointed to do not
+ * exist.
+ *
+ * @see elm_fileselector_selected_get()
+ *
+ * @ingroup Fileselector
+ */
+EAPI Eina_Bool elm_fileselector_selected_set(Evas_Object *obj, const char *path);
+
+/**
+ * Get the currently selected item's (full) path, in the given file
+ * selector widget
+ *
+ * @param[in] obj The file selector object
+ * @return The absolute path of the selected item, a @b
+ * stringshared string
+ *
+ * @note Custom editions on @p obj object's text entry, if made,
+ * will appear on the return string of this function, naturally.
+ *
+ * @see elm_fileselector_selected_set() for more details
+ *
+ * @ingroup Fileselector
+ */
+EAPI const char *elm_fileselector_selected_get(const Evas_Object *obj);
+
+/**
+ * Set the mode in which a given file selector widget will display
+ * (layout) file system entries in its view
+ *
+ * @param[in] obj The file selector object
+ * @param[in] mode The mode of the fileselector, being it one of #ELM_FILESELECTOR_LIST
+ * (default) or #ELM_FILESELECTOR_GRID. The first one, naturally, will display
+ * the files in a list. The latter will make the widget to display its entries
+ * in a grid form.
+ *
+ * @note By using elm_fileselector_expandable_set(), the user may
+ * trigger a tree view for that list.
+ *
+ * @note If Elementary is built with support of the Ethumb
+ * thumbnailing library, the second form of view will display
+ * preview thumbnails of files which it supports. You must have
+ * elm_need_ethumb() called in your Elementary for thumbnailing to
+ * work, though.
+ *
+ * @see elm_fileselector_expandable_set().
+ * @see elm_fileselector_mode_get().
+ *
+ * @ingroup Fileselector
+ */
+EAPI void elm_fileselector_mode_set(Evas_Object *obj, Elm_Fileselector_Mode mode);
+
+/**
+ * Get the mode in which a given file selector widget is displaying
+ * (layouting) file system entries in its view
+ *
+ * @param[in] obj The fileselector object
+ * @return The mode in which the fileselector is at
+ *
+ * @see elm_fileselector_mode_set() for more details
+ *
+ * @ingroup Fileselector
*/
+EAPI Elm_Fileselector_Mode elm_fileselector_mode_get(const Evas_Object *obj);
-#include "elc_fileselector_common.h"
-#ifdef EFL_EO_API_SUPPORT
-#include "elc_fileselector_eo.h"
-#endif
-#ifndef EFL_NOLEGACY_API_SUPPORT
-#include "elc_fileselector_legacy.h"
-#endif
/**
* @}
*/
diff --git a/src/lib/elc_fileselector_button.h b/src/lib/elc_fileselector_button.h
index c7b268a47..c4d40925f 100644
--- a/src/lib/elc_fileselector_button.h
+++ b/src/lib/elc_fileselector_button.h
@@ -1,6 +1,7 @@
/**
+ * @internal
* @defgroup File_Selector_Button File Selector Button
- * @ingroup Elementary
+ * @ingroup elm_widget_group
*
* @image html fileselector_button_inheritance_tree.png
* @image latex fileselector_button_inheritance_tree.eps
@@ -16,7 +17,7 @@
* window (or inner window) <b> with a @ref Fileselector "file
* selector widget" within</b>. When a file is chosen, the (inner)
* window is closed and the button emits a signal having the
- * selected file as it's @p event_info.
+ * selected file as it's @c event_info.
*
* This widget encapsulates operations on its internal file
* selector on its own API. There is less control over its file
@@ -32,17 +33,15 @@
* functions acting on it also work for file selector button objects.
*
* This widget emits the following signals, besides the ones sent from
- * @ref Button:
+ * @ref Button :
* - @c "file,chosen" - the user has selected a path, whose string
- * pointer comes as the @p event_info data (a stringshared
+ * pointer comes as the @c event_info data (a stringshared
* string)
* - @c "language,changed" - the program's language changed
- * - @c "focused" - When the fileselector button has received focus. (since 1.8)
- * - @c "unfocused" - When the fileselector button has lost focus. (since 1.8)
*
* Default text parts of the fileselector_button widget that you can use for
* are:
- * @li "default" - A label of the fileselector_button
+ * @li "default" - Label of the fileselector_button
*
* Default content parts of the fileselector_button widget that you can use for
* are:
@@ -57,19 +56,257 @@
* @li @ref elm_object_disabled_set
* @li @ref elm_object_disabled_get
*
- * Here is an example on its usage:
- * @li @ref fileselector_button_example
- *
* @see @ref File_Selector_Entry for a similar widget.
* @{
*/
-#ifdef EFL_EO_API_SUPPORT
-#include "elc_fileselector_button_eo.h"
-#endif
-#ifndef EFL_NOLEGACY_API_SUPPORT
-#include "elc_fileselector_button_legacy.h"
-#endif
+/**
+ * Add a new file selector button widget to the given parent
+ * Elementary (container) object
+ *
+ * @param[in] parent The parent object
+ * @return a new file selector button widget handle or @c NULL, on
+ * errors
+ *
+ * @ingroup File_Selector_Button
+ */
+EAPI Evas_Object *elm_fileselector_button_add(Evas_Object *parent);
+
+/**
+ * Set the title for a given file selector button widget's window
+ *
+ * @param[in] obj The file selector button widget
+ * @param[in] title The title string
+ *
+ * This will change the popup window's title, when the file selector pops
+ * out after a click on the button. Those windows have the default
+ * (unlocalized) value of @c "Select a file" as titles.
+ *
+ * @note It will only take effect if the file selector
+ * button widget is @b not under "inwin mode".
+ *
+ * @see elm_fileselector_button_window_title_get()
+ *
+ * @ingroup File_Selector_Button
+ */
+EAPI void elm_fileselector_button_window_title_set(Evas_Object *obj, const char *title);
+
+/**
+ * Get the title for a given file selector button widget's
+ * window
+ *
+ * @param[in] obj The file selector button widget
+ * @return Title of the file selector button's window
+ *
+ * @see elm_fileselector_button_window_title_set() for more details
+ *
+ * @ingroup File_Selector_Button
+ */
+EAPI const char *elm_fileselector_button_window_title_get(const Evas_Object *obj);
+
+/**
+ * Set the size of a given file selector button widget's window,
+ * holding the file selector itself.
+ *
+ * @param[in] obj The file selector button widget
+ * @param[in] width The window's width
+ * @param[in] height The window's height
+ *
+ * @note it will only take any effect if the file selector button
+ * widget is @b not under "inwin mode". The default size for the
+ * window (when applicable) is 400x400 pixels.
+ *
+ * @see elm_fileselector_button_window_size_get()
+ *
+ * @ingroup File_Selector_Button
+ */
+EAPI void elm_fileselector_button_window_size_set(Evas_Object *obj, Evas_Coord width, Evas_Coord height);
+
+/**
+ * Get the size of a given file selector button widget's window,
+ * holding the file selector itself.
+ *
+ * @param[in] obj The file selector button widget
+ * @param[out] width Pointer into which to store the width value
+ * @param[out] height Pointer into which to store the height value
+ *
+ * @note Use @c NULL pointers on the size values you're not
+ * interested in: they'll be ignored by the function.
+ *
+ * @see elm_fileselector_button_window_size_set(), for more details
+ *
+ * @ingroup File_Selector_Button
+ */
+EAPI void elm_fileselector_button_window_size_get(const Evas_Object *obj, Evas_Coord *width, Evas_Coord *height);
+
+/**
+ * Set the initial file system path for a given file selector
+ * button widget
+ *
+ * @param[in] obj The file selector button widget
+ * @param[in] path The path string
+ *
+ * It must be a <b>directory</b> path, which will have the contents
+ * displayed initially in the file selector's view, when invoked
+ * from @p obj. The default initial path is the @c "HOME"
+ * environment variable's value.
+ *
+ * @see elm_fileselector_button_path_get()
+ *
+ * @ingroup File_Selector_Button
+ */
+EAPI void elm_fileselector_button_path_set(Evas_Object *obj, const char *path);
+
+/**
+ * Get the initial file system path set for a given file selector
+ * button widget
+ *
+ * @param[in] obj The file selector button widget
+ * @return path The path string
+ *
+ * @see elm_fileselector_button_path_set() for more details
+ *
+ * @ingroup File_Selector_Button
+ */
+EAPI const char *elm_fileselector_button_path_get(const Evas_Object *obj);
+
+/**
+ * Enable/disable a tree view in the given file selector button
+ * widget's internal file selector
+ *
+ * @param[in] obj The file selector button widget
+ * @param[in] value @c EINA_TRUE to enable tree view, @c EINA_FALSE to
+ * disable
+ *
+ * This has the same effect as elm_fileselector_expandable_set(),
+ * but now applied to a file selector button's internal file
+ * selector.
+ *
+ * @note There's no way to put a file selector button's internal
+ * file selector in "grid mode", as one may do with "pure" file
+ * selectors.
+ *
+ * @see elm_fileselector_expandable_get()
+ *
+ * @ingroup File_Selector_Button
+ */
+EAPI void elm_fileselector_button_expandable_set(Evas_Object *obj, Eina_Bool value);
+
+/**
+ * Get whether tree view is enabled for the given file selector
+ * button widget's internal file selector
+ *
+ * @param[in] obj The file selector button widget
+ * @return @c EINA_TRUE if @p obj widget's internal file selector
+ * is in tree view, @c EINA_FALSE otherwise (and or errors)
+ *
+ * @see elm_fileselector_expandable_set() for more details
+ *
+ * @ingroup File_Selector_Button
+ */
+EAPI Eina_Bool elm_fileselector_button_expandable_get(const Evas_Object *obj);
+
+/**
+ * Set whether a given file selector button widget's internal file
+ * selector is to display folders only or the directory contents,
+ * as well.
+ *
+ * @param[in] obj The file selector button widget
+ * @param[in] value @c EINA_TRUE to make @p obj widget's internal file
+ * selector only display directories, @c EINA_FALSE to make files
+ * to be displayed in it too
+ *
+ * This has the same effect as elm_fileselector_folder_only_set(),
+ * but now applied to a file selector button's internal file
+ * selector.
+ *
+ * @see elm_fileselector_folder_only_get()
+ *
+ * @ingroup File_Selector_Button
+ */
+EAPI void elm_fileselector_button_folder_only_set(Evas_Object *obj, Eina_Bool value);
+
+/**
+ * Get whether a given file selector button widget's internal file
+ * selector is displaying folders only or the directory contents,
+ * as well.
+ *
+ * @param[in] obj The file selector button widget
+ * @return @c EINA_TRUE if @p obj widget's internal file
+ * selector is only displaying directories, @c EINA_FALSE if files
+ * are being displayed in it too (and on errors)
+ *
+ * @see elm_fileselector_button_folder_only_set() for more details
+ *
+ * @ingroup File_Selector_Button
+ */
+EAPI Eina_Bool elm_fileselector_button_folder_only_get(const Evas_Object *obj);
+
+/**
+ * Enable/disable the file name entry box where the user can type
+ * in a name for a file, in a given file selector button widget's
+ * internal file selector.
+ *
+ * @param[in] obj The file selector button widget
+ * @param[in] value @c EINA_TRUE to make @p obj widget's internal
+ * file selector a "saving dialog", @c EINA_FALSE otherwise
+ *
+ * This has the same effect as elm_fileselector_is_save_set(),
+ * but now applied to a file selector button's internal file
+ * selector.
+ *
+ * @see elm_fileselector_is_save_get()
+ *
+ * @ingroup File_Selector_Button
+ */
+EAPI void elm_fileselector_button_is_save_set(Evas_Object *obj, Eina_Bool value);
+
+/**
+ * Get whether the given file selector button widget's internal
+ * file selector is in "saving dialog" mode
+ *
+ * @param[in] obj The file selector button widget
+ * @return @c EINA_TRUE, if @p obj widget's internal file selector
+ * is in "saving dialog" mode, @c EINA_FALSE otherwise (and on
+ * errors)
+ *
+ * @see elm_fileselector_button_is_save_set() for more details
+ *
+ * @ingroup File_Selector_Button
+ */
+EAPI Eina_Bool elm_fileselector_button_is_save_get(const Evas_Object *obj);
+
+/**
+ * Set whether a given file selector button widget's internal file
+ * selector will raise an Elementary "inner window", instead of a
+ * dedicated Elementary window. By default, it won't.
+ *
+ * @param[in] obj The file selector button widget
+ * @param[in] value @c EINA_TRUE to make it use an inner window, @c
+ * EINA_TRUE to make it use a dedicated window
+ *
+ * @see elm_win_inwin_add() for more information on inner windows
+ * @see elm_fileselector_button_inwin_mode_get()
+ *
+ * @ingroup File_Selector_Button
+ */
+EAPI void elm_fileselector_button_inwin_mode_set(Evas_Object *obj, Eina_Bool value);
+
+/**
+ * Get whether a given file selector button widget's internal file
+ * selector will raise an Elementary "inner window", instead of a
+ * dedicated Elementary window.
+ *
+ * @param[in] obj The file selector button widget
+ * @return @c EINA_TRUE if will use an inner window, @c EINA_TRUE
+ * if it will use a dedicated window
+ *
+ * @see elm_fileselector_button_inwin_mode_set() for more details
+ *
+ * @ingroup File_Selector_Button
+ */
+EAPI Eina_Bool elm_fileselector_button_inwin_mode_get(const Evas_Object *obj);
+
/**
* @}
*/
diff --git a/src/lib/elc_fileselector_entry.h b/src/lib/elc_fileselector_entry.h
index 49e0f18df..1a679ac58 100644
--- a/src/lib/elc_fileselector_entry.h
+++ b/src/lib/elc_fileselector_entry.h
@@ -1,6 +1,7 @@
/**
+ * @internal
* @defgroup File_Selector_Entry File Selector Entry
- * @ingroup Elementary
+ * @ingroup elm_widget_group
*
* @image html fileselector_entry_inheritance_tree.png
* @image latex fileselector_entry_inheritance_tree.eps
@@ -21,7 +22,8 @@
* a smart event and as the new text on the entry.
*
* This widget inherits from the @ref Layout one, so that all the
- * functions acting on it also work for file selector entry objects (since 1.8).
+ * functions acting on it also work for file selector entry objects
+ * (@since 1.8).
*
* This widget encapsulates operations on its internal file
* selector on its own API. There is less control over its file
@@ -36,8 +38,8 @@
* couple seconds
* - @c "clicked" - The entry has been clicked
* - @c "clicked,double" - The entry has been double clicked
- * - @c "focused" - The entry has received focus (since 1.8)
- * - @c "unfocused" - The entry has lost focus (since 1.8)
+ * - @c "focused" - The entry has received focus
+ * - @c "unfocused" - The entry has lost focus
* - @c "selection,paste" - A paste action has occurred on the
* entry
* - @c "selection,copy" - A copy action has occurred on the entry
@@ -46,16 +48,16 @@
* after being pressed.
* - @c "file,chosen" - The user has selected a path via the file
* selector entry's internal file selector, whose string pointer
- * comes as the @p event_info data (a stringshared string)
+ * comes as the @c event_info data (a stringshared string)
* - @c "language,changed" - the program's language changed
*
* Default text parts of the fileselector_button widget that you can use for
* are:
- * @li "default" - A label of the fileselector_button
+ * @li "default" - Label of the fileselector_button
*
* Default content parts of the fileselector_entry widget that you can use for
* are:
- * @li "button icon" - A button icon of the fileselector_entry
+ * @li "button icon" - Button icon of the fileselector_entry
*
* Supported elm_object common APIs.
* @li @ref elm_object_part_text_set
@@ -66,19 +68,288 @@
* @li @ref elm_object_disabled_set
* @li @ref elm_object_disabled_get
*
- * Here is an example on its usage:
- * @li @ref fileselector_entry_example
- *
* @see @ref File_Selector_Button for a similar widget.
* @{
*/
-#ifdef EFL_EO_API_SUPPORT
-#include "elc_fileselector_entry_eo.h"
-#endif
-#ifndef EFL_NOLEGACY_API_SUPPORT
-#include "elc_fileselector_entry_legacy.h"
-#endif
+/**
+ * Add a new file selector entry widget to the given parent
+ * Elementary (container) object
+ *
+ * @param[in] parent The parent object
+ * @return a new file selector entry widget handle or @c NULL, on
+ * errors
+ *
+ * @ingroup File_Selector_Entry
+ */
+EAPI Evas_Object *elm_fileselector_entry_add(Evas_Object *parent);
+
+/**
+ * @brief Set the title for a given file selector entry widget's window
+ *
+ * @param[in] obj The fileselector entry object
+ * @param[in] title The title string
+ *
+ * This will change the window's title, when the file selector pops
+ * out after a click on the entry's button. Those windows have the
+ * default (unlocalized) value of @c "Select a file" as titles.
+ *
+ * @note It will only take any effect if the file selector
+ * entry widget is @b not under "inwin mode".
+ *
+ * @see elm_fileselector_entry_window_title_get()
+ *
+ * @ingroup File_Selector_Entry
+ */
+EAPI void elm_fileselector_entry_window_title_set(Evas_Object *obj, const char *title);
+
+/**
+ * Get the title set for a given file selector entry widget's
+ * window
+ *
+ * @param[in] obj The file selector entry widget
+ * @return Title of the file selector entry's window
+ *
+ * @see elm_fileselector_entry_window_title_get() for more details
+ *
+ * @ingroup File_Selector_Entry
+ */
+EAPI const char *elm_fileselector_entry_window_title_get(const Evas_Object *obj);
+
+/**
+ * Set the size of a given file selector entry widget's window,
+ * holding the file selector itself.
+ *
+ * @param[in] obj The file selector entry widget
+ * @param[in] width The window's width
+ * @param[in] height The window's height
+ *
+ * @note it will only take any effect if the file selector entry
+ * widget is @b not under "inwin mode". The default size for the
+ * window (when applicable) is 400x400 pixels.
+ *
+ * @see elm_fileselector_entry_window_size_get()
+ *
+ * @ingroup File_Selector_Entry
+ */
+EAPI void elm_fileselector_entry_window_size_set(Evas_Object *obj, Evas_Coord width, Evas_Coord height);
+
+/**
+ * Get the size of a given file selector entry widget's window,
+ * holding the file selector itself.
+ *
+ * @param[in] obj The file selector entry widget
+ * @param[out] width Pointer into which to store the width value
+ * @param[out] height Pointer into which to store the height value
+ *
+ * @note Use @c NULL pointers on the size values you're not
+ * interested in: they'll be ignored by the function.
+ *
+ * @see elm_fileselector_entry_window_size_set(), for more details
+ *
+ * @ingroup File_Selector_Entry
+ */
+EAPI void elm_fileselector_entry_window_size_get(const Evas_Object *obj, Evas_Coord *width, Evas_Coord *height);
+
+/**
+ * Set the initial file system path and the entry's path string for
+ * a given file selector entry widget
+ *
+ * @param[in] obj The file selector entry widget
+ * @param[in] path The path string
+ *
+ * It must be a <b>directory</b> path, which will have the contents
+ * displayed initially in the file selector's view, when invoked
+ * from @p obj. The default initial path is the @c "HOME"
+ * environment variable's value.
+ *
+ * @see elm_fileselector_entry_path_get()
+ *
+ * @ingroup File_Selector_Entry
+ */
+EAPI void elm_fileselector_entry_path_set(Evas_Object *obj, const char *path);
+
+/**
+ * Get the entry's path string for a given file selector entry
+ * widget
+ *
+ * @param[in] obj The file selector entry widget
+ * @return path The path string
+ *
+ * @see elm_fileselector_entry_path_set() for more details
+ *
+ * @ingroup File_Selector_Entry
+ */
+EAPI const char *elm_fileselector_entry_path_get(const Evas_Object *obj);
+
+/**
+ * Enable/disable a tree view in the given file selector entry
+ * widget's internal file selector
+ *
+ * @param[in] obj The file selector entry widget
+ * @param[in] value @c EINA_TRUE to enable tree view, @c EINA_FALSE to disable
+ *
+ * This has the same effect as elm_fileselector_expandable_set(),
+ * but now applied to a file selector entry's internal file
+ * selector.
+ *
+ * @note There's no way to put a file selector entry's internal
+ * file selector in "grid mode", as one may do with "pure" file
+ * selectors.
+ *
+ * @see elm_fileselector_expandable_get()
+ *
+ * @ingroup File_Selector_Entry
+ */
+EAPI void elm_fileselector_entry_expandable_set(Evas_Object *obj, Eina_Bool value);
+
+/**
+ * Get whether tree view is enabled for the given file selector
+ * entry widget's internal file selector
+ *
+ * @param[in] obj The file selector entry widget
+ * @return @c EINA_TRUE if @p obj widget's internal file selector
+ * is in tree view, @c EINA_FALSE otherwise (and or errors)
+ *
+ * @see elm_fileselector_expandable_set() for more details
+ *
+ * @ingroup File_Selector_Entry
+ */
+EAPI Eina_Bool elm_fileselector_entry_expandable_get(const Evas_Object *obj);
+
+/**
+ * Set whether a given file selector entry widget's internal file
+ * selector is to display folders only or the directory contents,
+ * as well.
+ *
+ * @param[in] obj The file selector entry widget
+ * @param[in] value @c EINA_TRUE to make @p obj widget's internal file
+ * selector only display directories, @c EINA_FALSE to make files
+ * to be displayed in it too
+ *
+ * This has the same effect as elm_fileselector_folder_only_set(),
+ * but now applied to a file selector entry's internal file
+ * selector.
+ *
+ * @see elm_fileselector_folder_only_get()
+ *
+ * @ingroup File_Selector_Entry
+ */
+EAPI void elm_fileselector_entry_folder_only_set(Evas_Object *obj, Eina_Bool value);
+
+/**
+ * Get whether a given file selector entry widget's internal file
+ * selector is displaying folders only or the directory contents,
+ * as well.
+ *
+ * @param[in] obj The file selector entry widget
+ * @return @c EINA_TRUE if @p obj widget's internal file
+ * selector is only displaying directories, @c EINA_FALSE if files
+ * are being displayed in it too (and on errors)
+ *
+ * @see elm_fileselector_entry_folder_only_set() for more details
+ *
+ * @ingroup File_Selector_Entry
+ */
+EAPI Eina_Bool elm_fileselector_entry_folder_only_get(const Evas_Object *obj);
+
+/**
+ * Enable/disable the file name entry box where the user can type
+ * in a name for a file, in a given file selector entry widget's
+ * internal file selector.
+ *
+ * @param[in] obj The file selector entry widget
+ * @param[in] value @c EINA_TRUE to make @p obj widget's internal
+ * file selector a "saving dialog", @c EINA_FALSE otherwise
+ *
+ * This has the same effect as elm_fileselector_is_save_set(),
+ * but now applied to a file selector entry's internal file
+ * selector.
+ *
+ * @see elm_fileselector_is_save_get()
+ *
+ * @ingroup File_Selector_Entry
+ */
+EAPI void elm_fileselector_entry_is_save_set(Evas_Object *obj, Eina_Bool value);
+
+/**
+ * Get whether the given file selector entry widget's internal
+ * file selector is in "saving dialog" mode
+ *
+ * @param[in] obj The file selector entry widget
+ * @return @c EINA_TRUE, if @p obj widget's internal file selector
+ * is in "saving dialog" mode, @c EINA_FALSE otherwise (and on
+ * errors)
+ *
+ * @see elm_fileselector_entry_is_save_set() for more details
+ *
+ * @ingroup File_Selector_Entry
+ */
+EAPI Eina_Bool elm_fileselector_entry_is_save_get(const Evas_Object *obj);
+
+/**
+ * Set whether a given file selector entry widget's internal file
+ * selector will raise an Elementary "inner window", instead of a
+ * dedicated Elementary window. By default, it won't.
+ *
+ * @param[in] obj The file selector entry widget
+ * @param[in] value @c EINA_TRUE to make it use an inner window, @c
+ * EINA_TRUE to make it use a dedicated window
+ *
+ * @see elm_win_inwin_add() for more information on inner windows
+ * @see elm_fileselector_entry_inwin_mode_get()
+ *
+ * @ingroup File_Selector_Entry
+ */
+EAPI void elm_fileselector_entry_inwin_mode_set(Evas_Object *obj, Eina_Bool value);
+
+/**
+ * Get whether a given file selector entry widget's internal file
+ * selector will raise an Elementary "inner window", instead of a
+ * dedicated Elementary window.
+ *
+ * @param[in] obj The file selector entry widget
+ * @return @c EINA_TRUE if will use an inner window, @c EINA_TRUE
+ * if it will use a dedicated window
+ *
+ * @see elm_fileselector_entry_inwin_mode_set() for more details
+ *
+ * @ingroup File_Selector_Entry
+ */
+EAPI Eina_Bool elm_fileselector_entry_inwin_mode_get(const Evas_Object *obj);
+
+/**
+ * Set the initial file system path for a given file selector entry
+ * widget
+ *
+ * @param[in] obj The file selector entry widget
+ * @param[in] path The path string
+ *
+ * It must be a <b>directory</b> path, which will have the contents
+ * displayed initially in the file selector's view, when invoked
+ * from @p obj. The default initial path is the @c "HOME"
+ * environment variable's value.
+ *
+ * @see elm_fileselector_entry_path_get()
+ *
+ * @ingroup File_Selector_Entry
+ */
+EAPI void elm_fileselector_entry_selected_set(Evas_Object *obj, const char *path);
+
+/**
+ * Get the parent directory's path to the latest file selection on
+ * a given filer selector entry widget
+ *
+ * @param[in] obj The file selector object
+ * @return The (full) path of the directory of the last selection
+ * on @p obj widget, a @b stringshared string
+ *
+ * @see elm_fileselector_entry_path_set()
+ *
+ * @ingroup File_Selector_Entry
+ */
+EAPI const char *elm_fileselector_entry_selected_get(const Evas_Object *obj);
+
/**
* @}
*/
diff --git a/src/lib/elc_hoversel.h b/src/lib/elc_hoversel.h
index ef52aca45..8b91fab75 100644
--- a/src/lib/elc_hoversel.h
+++ b/src/lib/elc_hoversel.h
@@ -1,6 +1,7 @@
/**
+ * @internal
* @defgroup Hoversel Hoversel
- * @ingroup Elementary
+ * @ingroup elm_widget_group
*
* @image html hoversel_inheritance_tree.png
* @image latex hoversel_inheritance_tree.eps
@@ -19,22 +20,18 @@
* functions acting on it also work for hoversel objects.
*
* This widget emits the following signals, besides the ones sent from
- * @ref Button:
+ * @ref Button :
* - @c "clicked" - the user clicked the hoversel button and popped up
* the sel
* - @c "selected" - an item in the hoversel list is selected. event_info
- * is the selected item
+ * is the item
* - @c "dismissed" - the hover is dismissed
- * - @c "expanded" - This is called on clicking hoversel and elm_hoversel_hover_begin().
- * - @c "language,changed" - the program's language changed (since 1.9)
- * - @c "item,focused" - When the hoversel item has received focus. (since 1.10)
- * - @c "item,unfocused" - When the hoversel item has lost focus. (since 1.10)
*
* Default content parts of the hoversel widget that you can use for are:
* @li "icon" - An icon of the hoversel
*
* Default text parts of the hoversel widget that you can use for are:
- * @li "default" - A label of the hoversel
+ * @li "default" - Label of the hoversel
*
* Supported elm_object common APIs.
* @li @ref elm_object_disabled_set
@@ -45,22 +42,192 @@
* @li @ref elm_object_part_content_unset
*
* Supported elm_object_item common APIs.
- * @li elm_object_item_del
* @li elm_object_item_part_text_get
- * @li elm_object_item_signal_emit - this works only when the item is created.
- * @li elm_object_item_style_set - this works only when the item is created.
- * @li elm_object_item_style_get - this works only when the item is created.
*
- * See @ref tutorial_hoversel for an example.
* @{
*/
-#ifdef EFL_EO_API_SUPPORT
-#include "elc_hoversel_eo.h"
-#endif
-#ifndef EFL_NOLEGACY_API_SUPPORT
-#include "elc_hoversel_legacy.h"
-#endif
+/**
+ * @brief Add a new Hoversel object
+ *
+ * @param[in] parent The parent object
+ * @return The new object or NULL if it cannot be created
+ *
+ * @ingroup Hoversel
+ */
+EAPI Evas_Object *elm_hoversel_add(Evas_Object *parent);
+
+/**
+ * @brief This sets the hoversel to expand horizontally.
+ *
+ * @param[in] obj The hoversel object
+ * @param[in] horizontal If true, the hover will expand horizontally to the
+ * right.
+ *
+ * @note The initial button will display horizontally regardless of this
+ * setting.
+ *
+ * @ingroup Hoversel
+ */
+EAPI void elm_hoversel_horizontal_set(Evas_Object *obj, Eina_Bool horizontal);
+
+/**
+ * @brief This returns whether the hoversel is set to expand horizontally.
+ *
+ * @param[in] obj The hoversel object
+ * @return If true, the hover will expand horizontally to the right.
+ *
+ * @see elm_hoversel_horizontal_set()
+ *
+ * @ingroup Hoversel
+ */
+EAPI Eina_Bool elm_hoversel_horizontal_get(const Evas_Object *obj);
+
+/**
+ * @brief Set the Hover parent
+ *
+ * @param[in] obj The hoversel object
+ * @param[in] parent The parent to use
+ *
+ * Sets the hover parent object, the area that will be darkened when the
+ * hoversel is clicked. Should probably be the window that the hoversel is
+ * in. See @ref Hover objects for more information.
+ *
+ * @ingroup Hoversel
+ */
+EAPI void elm_hoversel_hover_parent_set(Evas_Object *obj, Evas_Object *parent);
+
+/**
+ * @brief Get the Hover parent
+ *
+ * @param[in] obj The hoversel object
+ * @return The used parent
+ *
+ * Gets the hover parent object.
+ *
+ * @see elm_hoversel_hover_parent_set()
+ *
+ * @ingroup Hoversel
+ */
+EAPI Evas_Object *elm_hoversel_hover_parent_get(const Evas_Object *obj);
+
+/**
+ * @brief This triggers the hoversel popup from code, the same as if the user
+ * had clicked the button.
+ *
+ * @param[in] obj The hoversel object
+ *
+ * @ingroup Hoversel
+ */
+EAPI void elm_hoversel_hover_begin(Evas_Object *obj);
+
+/**
+ * @brief This dismisses the hoversel popup as if the user had clicked
+ * outside the hover.
+ *
+ * @param[in] obj The hoversel object
+ *
+ * @ingroup Hoversel
+ */
+EAPI void elm_hoversel_hover_end(Evas_Object *obj);
+
+/**
+ * @brief Returns whether the hoversel is expanded.
+ *
+ * @param[in] obj The hoversel object
+ * @return This will return EINA_TRUE if the hoversel is expanded or
+ * EINA_FALSE if it is not expanded.
+ *
+ * @ingroup Hoversel
+ */
+EAPI Eina_Bool elm_hoversel_expanded_get(const Evas_Object *obj);
+
+/**
+ * @brief This will remove all the children items from the hoversel.
+ *
+ * @param[in] obj The hoversel object
+ *
+ * @warning Should @b not be called while the hoversel is active; use
+ * elm_hoversel_expanded_get() to check first.
+ *
+ * @see elm_object_item_del()
+ *
+ * @ingroup Hoversel
+ */
+EAPI void elm_hoversel_clear(Evas_Object *obj);
+
+/**
+ * @brief Get the list of items within the given hoversel.
+ *
+ * @param[in] obj The hoversel object
+ * @return Returns a list of Elm_Object_Item*
+ *
+ * @see elm_hoversel_item_add()
+ *
+ * @ingroup Hoversel
+ */
+EAPI const Eina_List *elm_hoversel_items_get(const Evas_Object *obj);
+
+/**
+ * @brief Add an item to the hoversel button
+ *
+ * @param[in] obj The hoversel object
+ * @param[in] label The text label to use for the item (NULL if not desired)
+ * @param[in] icon_file An image file path on disk to use for the icon or standard
+ * icon name (NULL if not desired)
+ * @param[in] icon_type The icon type if relevant
+ * @param[in] func Convenience function to call when this item is selected
+ * @param[in] data Data to pass to item-related functions
+ * @return A handle to the item added.
+ *
+ * This adds an item to the hoversel to show when it is clicked. Note: if you
+ * need to use an icon from an edje file then use
+ * elm_hoversel_item_icon_set() right after this function, and set
+ * icon_file to NULL here.
+ *
+ * For more information on what @p icon_file and @p icon_type are, see the
+ * @ref Icon "icon documentation".
+ *
+ * @ingroup Hoversel
+ */
+EAPI Elm_Object_Item *elm_hoversel_item_add(Evas_Object *obj, const char *label, const char *icon_file, Elm_Icon_Type icon_type, Evas_Smart_Cb func, const void *data);
+
+/**
+ * @brief This sets the icon for the given hoversel item.
+ *
+ * @param[in] it The item to set the icon
+ * @param[in] icon_file An image file path on disk to use for the icon or standard
+ * icon name
+ * @param[in] icon_group The edje group to use if @p icon_file is an edje file. Set this
+ * to NULL if the icon is not an edje file
+ * @param[in] icon_type The icon type
+ *
+ * The icon can be loaded from the standard set, from an image file, or from
+ * an edje file.
+ *
+ * @see elm_hoversel_item_add()
+ *
+ * @ingroup Hoversel
+ */
+EAPI void elm_hoversel_item_icon_set(Elm_Object_Item *it, const char *icon_file, const char *icon_group, Elm_Icon_Type icon_type);
+
+/**
+ * @brief Get the icon object of the hoversel item
+ *
+ * @param[in] it The item to get the icon from
+ * @param[out] icon_file The image file path on disk used for the icon or standard
+ * icon name
+ * @param[out] icon_group The edje group used if @p icon_file is an edje file. NULL
+ * if the icon is not an edje file
+ * @param[out] icon_type The icon type
+ *
+ * @see elm_hoversel_item_icon_set()
+ * @see elm_hoversel_item_add()
+ *
+ * @ingroup Hoversel
+ */
+EAPI void elm_hoversel_item_icon_get(const Elm_Object_Item *it, const char **icon_file, const char **icon_group, Elm_Icon_Type *icon_type);
+
/**
* @}
*/
diff --git a/src/lib/elc_multibuttonentry.h b/src/lib/elc_multibuttonentry.h
index 32b590de6..47251469b 100644
--- a/src/lib/elc_multibuttonentry.h
+++ b/src/lib/elc_multibuttonentry.h
@@ -1,14 +1,15 @@
/**
* @defgroup Multibuttonentry Multibuttonentry
- * @ingroup Elementary
+ * @ingroup elm_widget_group
*
* @image html multibuttonentry_inheritance_tree.png
* @image latex multibuttonentry_inheritance_tree.eps
*
- * A multi-button entry is a widget letting an user enter text and
- * each chunk of text managed as a set of buttons. Each text button is
- * inserted by pressing the "return" key. If there is no space in the
- * current row, a new button is added to the next row. When a text
+ * @brief A multi-button entry is a widget letting an user enter text and
+ * each chunk of text managed as a set of buttons.
+ *
+ * Each text button is inserted by pressing the "return" key. If there is no
+ * space in the current row, a new button is added to the next row. When a text
* button is pressed, it will become focused. Backspace removes the
* focus. When the multi-button entry loses focus, items longer than
* one line are shrunk to one line.
@@ -18,10 +19,11 @@
* that can be clicked for further actions.
*
* This widget inherits from the @ref Layout one, so that all the
- * functions acting on it also work for multi-button entry objects (since 1.8).
+ * functions acting on it also work for multi-button entry objects
+ * (@since 1.8).
*
* This widget emits the following signals, besides the ones sent from
- * @ref Layout:
+ * @ref Layout :
* - @c "item,selected" - this is called when an item is selected by
* api, user interaction, and etc. this is also called when a
* user press back space while cursor is on the first field of
@@ -37,6 +39,7 @@
* - @c "contracted" - when multi-button entry is contracted.
* - @c "expand,state,changed" - when shrink mode state of
* multi-button entry is changed.
+ * - @c "longpressed" - when multi-button entry is pressed for a long time.
*
* Default text parts of the multi-button entry widget that you can use are:
* @li "default" - A label of the multi-button entry
@@ -45,24 +48,315 @@
* @li "default" - A label of the multi-button entry item
*
* Supported elm_object_item common APIs.
- * @li @ref elm_object_item_del
* @li @ref elm_object_item_part_text_set
* @li @ref elm_object_item_part_text_get
+ *
+ * @{
*/
+/**
+ * @brief Callback to be invoked when an item is added to the multibuttonentry.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The parent object
+ * @param[in] item_label The label corresponding to the added item.
+ * @param[in] item_data data specific to this item.
+ * @param[in] data data specific to the multibuttonentry.
+ *
+ * @return EINA_TRUE
+ * EINA_FALSE otherwise.
+ */
+typedef Eina_Bool (*Elm_Multibuttonentry_Item_Filter_Cb)(Evas_Object *obj, const char *item_label, const void *item_data, const void *data);
/**
- * @addtogroup Multibuttonentry
- * @{
+ * @brief Add a new multibuttonentry to the parent
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] parent The parent object
+ * @return The new object or NULL if it cannot be created
+ */
+EAPI Evas_Object *elm_multibuttonentry_add(Evas_Object *parent);
+
+
+/**
+ * @brief Get the entry of the multibuttonentry object
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The multibuttonentry object
+ * @return The entry object, or NULL if none
+ */
+EAPI Evas_Object *elm_multibuttonentry_entry_get(const Evas_Object *obj);
+
+/**
+ * @brief Get the value of expanded state.
+ *
+ e @since_tizen 2.3
+ *
+ * @remarks In expanded state, the complete entry will be displayed.
+ * Otherwise, only single line of the entry will be displayed.
+ *
+ * @param[in] obj The multibuttonentry object
+ * @return EINA_TRUE if the widget is in expanded state. EINA_FALSE if not.
+ */
+EAPI Eina_Bool elm_multibuttonentry_expanded_get(const Evas_Object *obj);
+
+/**
+ * @brief Set/Unset the multibuttonentry to expanded state.
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks In expanded state, the complete entry will be displayed.
+ * Otherwise, only single line of the entry will be displayed.
+ *
+ * @param[in] obj The multibuttonentry object
+ * @param[in] expanded the value of expanded state.
+ * Set this to EINA_TRUE for expanded state.
+ * Set this to EINA_FALSE for single line state.
+ */
+EAPI void elm_multibuttonentry_expanded_set(Evas_Object *obj, Eina_Bool expanded);
+
+/**
+ * @brief Prepend a new item to the multibuttonentry
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The multibuttonentry object
+ * @param[in] label The label of new item
+ * @param[in] func The callback function to be invoked when this item is pressed.
+ * @param[in] data The pointer to the data to be attached
+ * @return A handle to the item added or NULL if not possible
+ *
+ * @see Use elm_object_item_del() to delete the item.
+ */
+EAPI Elm_Object_Item *elm_multibuttonentry_item_prepend(Evas_Object *obj, const char *label, Evas_Smart_Cb func, const void *data);
+
+/**
+ * @brief Append a new item to the multibuttonentry
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The multibuttonentry object
+ * @param[in] label The label of new item
+ * @param[in] func The callback function to be invoked when this item is pressed.
+ * @param[in] data The pointer to the data to be attached
+ * @return A handle to the item added or NULL if not possible
+ *
+ * @see Use elm_object_item_del() to delete the item.
+ */
+EAPI Elm_Object_Item *elm_multibuttonentry_item_append(Evas_Object *obj, const char *label, Evas_Smart_Cb func, const void *data);
+
+/**
+ * @brief Add a new item to the multibuttonentry before the indicated object
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The multibuttonentry object
+ * @param[in] before The item before which to add it
+ * @param[in] label The label of new item
+ * @param[in] func The callback function to be invoked when this item is pressed.
+ * @param[in] data The pointer to the data to be attached
+ * @return A handle to the item added or NULL if not possible
+ *
+ * @see Use elm_object_item_del() to delete the item.
+ */
+EAPI Elm_Object_Item *elm_multibuttonentry_item_insert_before(Evas_Object *obj, Elm_Object_Item *before, const char *label, Evas_Smart_Cb func, const void *data);
+
+/**
+ * @brief Add a new item to the multibuttonentry after the indicated object
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The multibuttonentry object
+ * @param[in] after The item after which to add it
+ * @param[in] label The label of new item
+ * @param[in] func The callback function to be invoked when this item is pressed.
+ * @param[in] data The pointer to the data to be attached
+ * @return A handle to the item added or NULL if not possible
+ *
+ * @see Use elm_object_item_del() to delete the item.
+ */
+EAPI Elm_Object_Item *elm_multibuttonentry_item_insert_after(Evas_Object *obj, Elm_Object_Item *after, const char *label, Evas_Smart_Cb func, const void *data);
+
+/**
+ * @brief Get a list of items in the multibuttonentry
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The multibuttonentry object
+ * @return The list of items, or NULL if none
+ */
+EAPI const Eina_List *elm_multibuttonentry_items_get(const Evas_Object *obj);
+
+/**
+ * @internal
+ * @remarks Tizen only feature
+ *
+ * @brief Gets the base object of the item.
+ *
+ * @remarks Base object is the @c Evas_Object that represents that item.
+ *
+ * @param[in] it The multibuttonentry item
+ * @return The base object associated with @p item
+ */
+EAPI Evas_Object *elm_multibuttonentry_item_object_get(const Elm_Object_Item *it);
+
+/**
+ * @brief Get the first item in the multibuttonentry
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The multibuttonentry object
+ * @return The first item, or NULL if none
+ */
+EAPI Elm_Object_Item *elm_multibuttonentry_first_item_get(const Evas_Object *obj);
+
+/**
+ * @brief Get the last item in the multibuttonentry
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The multibuttonentry object
+ * @return The last item, or NULL if none
+ */
+EAPI Elm_Object_Item *elm_multibuttonentry_last_item_get(const Evas_Object *obj);
+
+/**
+ * @brief Get the selected item in the multibuttonentry
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The multibuttonentry object
+ * @return The selected item, or NULL if none
+ */
+EAPI Elm_Object_Item *elm_multibuttonentry_selected_item_get(const Evas_Object *obj);
+
+/**
+ * @brief Set the selected state of an item
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] it The item
+ * @param[in] selected if it's EINA_TRUE, select the item otherwise, unselect the item
+ */
+EAPI void elm_multibuttonentry_item_selected_set(Elm_Object_Item *it, Eina_Bool selected);
+
+
+/**
+ * @brief Get the selected state of an item
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] it The item
+ * @return EINA_TRUE if the item is selected, EINA_FALSE otherwise.
+ */
+EAPI Eina_Bool elm_multibuttonentry_item_selected_get(const Elm_Object_Item *it);
+
+/**
+ * @brief Remove all items in the multibuttonentry.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The multibuttonentry object
+ */
+EAPI void elm_multibuttonentry_clear(Evas_Object *obj);
+
+/**
+ * @brief Get the previous item in the multibuttonentry
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] it The item
+ * @return The item before the item @p it
+ */
+EAPI Elm_Object_Item *elm_multibuttonentry_item_prev_get(const Elm_Object_Item *it);
+
+/**
+ * @brief Get the next item in the multibuttonentry
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] it The item
+ * @return The item after the item @p it
+ */
+EAPI Elm_Object_Item *elm_multibuttonentry_item_next_get(const Elm_Object_Item *it);
+
+/**
+ * @brief Append an item filter function for text inserted in the Multibuttonentry
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks Append the given callback to the list. This functions will be
+ * called whenever any text is inserted into the Multibuttonentry,
+ * with the text to be inserted as a parameter. The callback function
+ * is free to alter the text in any way it wants, but it must remember
+ * to free the given pointer and update it. If the new text is to be
+ * discarded, the function can free it and set it text parameter
+ * to NULL. This will also prevent any following filters from being
+ * called.
+ *
+ * @param[in] obj The multibuttonentry object
+ * @param[in] func The function to use as item filter
+ * @param[in] data User data to pass to @p func
+ */
+EAPI void elm_multibuttonentry_item_filter_append(Evas_Object *obj, Elm_Multibuttonentry_Item_Filter_Cb func, const void *data);
+
+/**
+ * @brief Prepend a filter function for text inserted in the Multibuttonentry
+ *
+ * @details Prepend the given callback to the list.
+ *
+ * @since_tizen 2.3
+ *
+ * @see elm_multibuttonentry_item_filter_append()
+ *
+ * @param[in] obj The multibuttonentry object
+ * @param[in] func The function to use as text filter
+ * @param[in] data User data to pass to @p func
+ */
+EAPI void elm_multibuttonentry_item_filter_prepend(Evas_Object *obj, Elm_Multibuttonentry_Item_Filter_Cb func, const void *data);
+
+/**
+ * @brief Remove a filter from the list
+ *
+ * @details Removes the given callback from the filter list.
+ *
+ * @since_tizen 2.3
+ *
+ * @see elm_multibuttonentry_item_filter_append()
+ *
+ * @param[in] obj The multibuttonentry object
+ * @param[in] func The filter function to remove
+ * @param[in] data The user data passed when adding the function
+ */
+EAPI void elm_multibuttonentry_item_filter_remove(Evas_Object *obj, Elm_Multibuttonentry_Item_Filter_Cb func, const void *data);
+
+/**
+ * @brief Sets if the multibuttonentry is to be editable or not.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The multibuttonentry object
+ * @param[in] editable If EINA_TRUE, user can add/delete item in multibuttonentry, if not, the multibuttonentry is non-editable.
+ *
+ * @since 1.7
+ */
+EAPI void elm_multibuttonentry_editable_set(Evas_Object *obj, Eina_Bool editable);
+
+/**
+ * @brief Gets whether the multibuttonentry is editable or not.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The multibuttonentry object
+ * @return EINA_TRUE if the multibuttonentry is editable by the user. EINA_FALSE if not.
+ *
+ * @since 1.7
*/
+EAPI Eina_Bool elm_multibuttonentry_editable_get(const Evas_Object *obj);
-#include "elc_multibuttonentry_common.h"
-#ifdef EFL_EO_API_SUPPORT
-#include "elc_multibuttonentry_eo.h"
-#endif
-#ifndef EFL_NOLEGACY_API_SUPPORT
-#include "elc_multibuttonentry_legacy.h"
-#endif
/**
* @}
*/
diff --git a/src/lib/elc_naviframe.h b/src/lib/elc_naviframe.h
index f4c4a2700..1b07ebcc1 100644
--- a/src/lib/elc_naviframe.h
+++ b/src/lib/elc_naviframe.h
@@ -1,6 +1,6 @@
/**
* @defgroup Naviframe Naviframe
- * @ingroup Elementary
+ * @ingroup elm_widget_group
*
* @image html naviframe_inheritance_tree.png
* @image latex naviframe_inheritance_tree.eps
@@ -10,11 +10,9 @@
*
* 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.
+ * old, and only the topmost view is displayed at one time. The
+ * transition between views is animated, depending on the theme
+ * applied to the widget.
*
* Naviframe views hold spaces to various elements, which are:
* - back button, used to navigate to previous views,
@@ -24,10 +22,12 @@
* - title icon and
* - content area.
*
- * One can use @ref elm_object_item_part_content_set,
- * @ref elm_object_item_part_content_get,
- * @ref elm_object_item_part_content_unset functions to handle the contents.
- * The swallow part name should be one of these:
+ * This widget inherits from the @ref Layout one, so that all the
+ * functions acting on it also work for naviframe objects.
+ *
+ * Because this widget is a layout, one places content on those areas
+ * by using elm_layout_content_set() on the right swallow part names
+ * expected for each, which are:
* @li @c "default" - The main content of the current page
* @li @c "icon" - An icon in the title area of the current page
* @li @c "prev_btn" - A button of the current page to go to the
@@ -35,11 +35,10 @@
* @li @c "next_btn" - A button of the current page to go to the next
* page
*
- * One can use @ref elm_object_item_part_text_set,
- * @ref elm_object_item_part_text_get to handle the text parts.
- * The swallow part name should be one of these:
- * @li @c "default" - A title label in the title area of the current page
- * @li @c "subtitle" - A sub-title label in the title area of the
+ * For text, elm_layout_text_set() will work here on:
+ * @li @c "default" - Title label in the title area of the current
+ * page
+ * @li @c "subtitle" - Sub-title label in the title area of the
* current page
*
* Most of those content objects can be passed at the time of an item
@@ -55,20 +54,16 @@
*
*
* This widget emits the following signals, besides the ones sent from
- * @ref Layout:
+ * @ref Layout :
* @li @c "transition,finished" - When the transition is finished in
* changing the item
- * @li @c "title,transition,finished" - When the title area's transition
- * is finished in changing the state
- * of the title
+ * @li @c "title,transition,finished" - When the title transition is
+ * finished in changing enabled
+ * state of the title
* @li @c "title,clicked" - User clicked title area
- * @li @c "focused" - When the naviframe has received focus. (since 1.8)
- * @li @c "unfocused" - When the naviframe has lost focus. (since 1.8)
- * @li @c "language,changed" - the program's language changed (since 1.9)
*
* All the parts, for content and text, described here will also be
* reachable by naviframe @b items direct calls:
- * @li @ref elm_object_item_del
* @li @ref elm_object_item_part_text_set
* @li @ref elm_object_item_part_text_get
* @li @ref elm_object_item_part_content_set
@@ -80,22 +75,396 @@
* 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:
- * @li @ref naviframe_example
+ * @{
*/
/**
- * @addtogroup Naviframe
- * @{
+ * @typedef Elm_Naviframe_Item_Pop_Cb
+ *
+ * @since_tizen 2.3
+ *
+ * Pop callback called when @c it is going to be popped. @c data is user
+ * specific data. If it returns the @c EINA_FALSE in the callback, item popping
+ * will be cancelled.
+ *
+ * @see elm_naviframe_item_pop_cb_set()
+ *
+ * @since 1.8
+ */
+typedef Eina_Bool (*Elm_Naviframe_Item_Pop_Cb)(void *data, Elm_Object_Item *it);
+
+/**
+ * @brief Add a new Naviframe object to the parent.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] parent Parent object
+ * @return New object or @c NULL, if it cannot be created
+ */
+EAPI Evas_Object *elm_naviframe_add(Evas_Object *parent);
+
+/**
+ * @brief Push a new item to the top of the naviframe stack (and show it).
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The naviframe object
+ * @param[in] title_label The label in the title area. The name of the title
+ * label part is "elm.text.title"
+ * @param[in] 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[in] 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[in] content The main content object. The name of content part is
+ * "elm.swallow.content"
+ * @param[in] item_style The current item style name. @c NULL would be default.
+ * @return The created item or @c NULL upon failure.
+ *
+ * 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()
+ *
+ * The following styles are available for this item:
+ * @li @c "default"
+ */
+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);
+
+/**
+ * @brief Insert a new item into the naviframe before item @p before.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The naviframe object
+ * @param[in] before The naviframe item to insert before.
+ * @param[in] title_label The label in the title area. The name of the title
+ * label part is "elm.text.title"
+ * @param[in] 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[in] 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[in] content The main content object. The name of content part is
+ * "elm.swallow.content"
+ * @param[in] 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"
+ */
+EAPI Elm_Object_Item *elm_naviframe_item_insert_before(Evas_Object *obj, Elm_Object_Item *before, const char *title_label, Evas_Object *prev_btn, Evas_Object *next_btn, Evas_Object *content, const char *item_style);
+
+/**
+ * @brief Insert a new item into the naviframe after item @p after.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The naviframe object
+ * @param[in] after The naviframe item to insert after.
+ * @param[in] title_label The label in the title area. The name of the title
+ * label part is "elm.text.title"
+ * @param[in] 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[in] 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[in] content The main content object. The name of content part is
+ * "elm.swallow.content"
+ * @param[in] 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"
+ */
+EAPI Elm_Object_Item *elm_naviframe_item_insert_after(Evas_Object *obj, Elm_Object_Item *after, const char *title_label, Evas_Object *prev_btn, Evas_Object *next_btn, Evas_Object *content, const char *item_style);
+
+/**
+ * @brief Pop an item that is on top of the stack
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The naviframe object
+ * @return @c NULL or the content object(if the
+ * elm_naviframe_content_preserve_on_pop_get is true).
+ *
+ * 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()
+ */
+EAPI Evas_Object *elm_naviframe_item_pop(Evas_Object *obj);
+
+/**
+ * @brief Pop the items between the top and the above one on the given item.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] it The naviframe item
+ */
+EAPI void elm_naviframe_item_pop_to(Elm_Object_Item *it);
+
+/**
+ * @brief Promote an item already in the naviframe stack to the top of the stack
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks This will take the indicated item and promote it to the top of
+ * the stack as if it had been pushed there. The item must already
+ * be inside the naviframe stack to work.
+ *
+ * @param[in] it The naviframe item
+ */
+EAPI void elm_naviframe_item_promote(Elm_Object_Item *it);
+
+/**
+ * @brief preserve the content objects when items are popped.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The naviframe object
+ * @param[in] preserve Enable the preserve mode if EINA_TRUE, disable otherwise
+ *
+ * @see also elm_naviframe_content_preserve_on_pop_get()
+ */
+EAPI void elm_naviframe_content_preserve_on_pop_set(Evas_Object *obj, Eina_Bool preserve);
+
+/**
+ * @brief Get a value whether preserve mode is enabled or not.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The naviframe object
+ * @return If @c EINA_TRUE, preserve mode is enabled
+ *
+ * @see also elm_naviframe_content_preserve_on_pop_set()
+ */
+EAPI Eina_Bool elm_naviframe_content_preserve_on_pop_get(const Evas_Object *obj);
+
+/**
+ * @brief Get a top item on the naviframe stack
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The naviframe object
+ * @return The top item on the naviframe stack or @c NULL, if the stack is
+ * empty
+ */
+EAPI Elm_Object_Item *elm_naviframe_top_item_get(const Evas_Object *obj);
+
+/**
+ * @brief Get a bottom item on the naviframe stack
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The naviframe object
+ * @return The bottom item on the naviframe stack or @c NULL, if the stack is
+ * empty
*/
+EAPI Elm_Object_Item *elm_naviframe_bottom_item_get(const Evas_Object *obj);
-#include "elc_naviframe_common.h"
-#ifdef EFL_EO_API_SUPPORT
-#include "elc_naviframe_eo.h"
-#endif
-#ifndef EFL_NOLEGACY_API_SUPPORT
-#include "elc_naviframe_legacy.h"
-#endif
+/**
+ * @brief Set an item style
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks The following styles are available for this item: @li @c "default"
+ *
+ * @param[in] it The naviframe item
+ * @param[in] item_style The current item style name. @c NULL would be default
+ *
+ * @see also elm_naviframe_item_style_get()
+ */
+EAPI void elm_naviframe_item_style_set(Elm_Object_Item *it, const char *item_style);
+
+/**
+ * @brief Get an item style
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] it The naviframe item
+ * @return The current item style name
+ *
+ * @see also elm_naviframe_item_style_set()
+ */
+EAPI const char *elm_naviframe_item_style_get(const Elm_Object_Item *it);
+
+/**
+ * @brief Enable/Disable the title area with transition effect
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks When the title area is disabled, then the controls would be hidden
+ * so as to expand the content area to full-size.
+ *
+ * @param[in] it The naviframe item
+ * @param[in] enabled If @c EINA_TRUE, title area will be enabled, disabled
+ * otherwise
+ * @param[in] transition If @c EINA_TRUE, transition effect of the title will be
+ * visible, invisible otherwise
+ *
+ * @see also elm_naviframe_item_title_enabled_get()
+ * @see also elm_naviframe_item_title_visible_set()
+ */
+EAPI void elm_naviframe_item_title_enabled_set(Elm_Object_Item *it, Eina_Bool enabled, Eina_Bool transition);
+
+/**
+ * @brief Get a value whether title area is enabled or not.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] it The naviframe item
+ * @return If @c EINA_TRUE, title area is enabled
+ *
+ * @see also elm_naviframe_item_title_enabled_set()
+ */
+EAPI Eina_Bool elm_naviframe_item_title_enabled_get(const Elm_Object_Item *it);
+
+/**
+ * @brief Set a function to be called when @c it of the naviframe is going to
+ * be popped.
+ *
+ * @since 1.8
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks Don't set "clicked" callback to the prev button additionally if the
+ * function does a exact same logic with this @c func. When hardware back key is
+ * pressed then both callbacks will be called.
+ *
+ * @param[in] it The item to set the callback on
+ * @param[in] func the callback function.
+ * @param[in] data user data
+ */
+EAPI void elm_naviframe_item_pop_cb_set(Elm_Object_Item *it, Elm_Naviframe_Item_Pop_Cb func, void *data);
+
+/**
+ * @brief Set creating prev button automatically or not
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The naviframe object
+ * @param[in] 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
+ *
+ * @see also elm_naviframe_item_push()
+ */
+EAPI void elm_naviframe_prev_btn_auto_pushed_set(Evas_Object *obj, Eina_Bool auto_pushed);
+
+/**
+ * @brief Get a value whether prev button(back button) will be auto pushed or
+ * not.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The naviframe object
+ * @return If @c EINA_TRUE, prev button will be auto pushed.
+ *
+ * @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);
+
+/**
+ * @brief Get a list of all the naviframe items.
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks The returned list MUST be freed.
+ *
+ * @param[in] obj The naviframe object
+ * @return An Eina_List of naviframe items, #Elm_Object_Item,
+ * or @c NULL on failure.
+ */
+EAPI Eina_List *elm_naviframe_items_get(const Evas_Object *obj) EINA_MALLOC EINA_WARN_UNUSED_RESULT;
+
+/**
+ * @brief Set the event enabled when pushing/popping items
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks If @c enabled is EINA_TRUE, the contents of the naviframe item will
+ * receives events from mouse and keyboard during view changing such as
+ * item push/pop.
+ *
+ * @remarks Events will be blocked by calling evas_object_freeze_events_set()
+ * internally. So don't call the API whiling pushing/popping items.
+ *
+ * @param[in] obj The naviframe object
+ * @param[in] enabled Events are received when enabled is @c EINA_TRUE, and
+ * ignored otherwise.
+ *
+ * @see elm_naviframe_event_enabled_get()
+ * @see evas_object_freeze_events_set()
+ */
+EAPI void elm_naviframe_event_enabled_set(Evas_Object *obj, Eina_Bool enabled);
+
+/**
+ * @brief Get the value of event enabled status.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The naviframe object
+ * @return EINA_TRUE, when event is enabled
+ *
+ * @see elm_naviframe_event_enabled_set()
+ */
+EAPI Eina_Bool elm_naviframe_event_enabled_get(const Evas_Object *obj);
+
+/**
+ * @brief Simple version of item_push.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The naviframe object
+ * @param[in] content The main content object. The name of content part is
+ * "elm.swallow.content"
+ * @return The created item or @c NULL upon failure.
+ *
+ * @see elm_naviframe_item_push
+ */
+static inline Elm_Object_Item *
+elm_naviframe_item_simple_push(Evas_Object *obj, Evas_Object *content)
+{
+ Elm_Object_Item *it;
+ it = elm_naviframe_item_push(obj, NULL, NULL, NULL, content, NULL);
+ elm_naviframe_item_title_enabled_set(it, EINA_FALSE, EINA_FALSE);
+ return it;
+}
+
+/**
+ * @brief Simple version of item_promote.
+ *
+ * @since_tizen 2.3
+ * @param[in] obj The naviframe object
+ * @param[in] content The main content object. The name of content part is
+ * "elm.swallow.content"
+ *
+ * @see elm_naviframe_item_promote
+ */
+EAPI void elm_naviframe_item_simple_promote(Evas_Object *obj, Evas_Object *content);
/**
* @}
diff --git a/src/lib/elc_popup.h b/src/lib/elc_popup.h
index 5183a6fa4..9f41ee6aa 100644
--- a/src/lib/elc_popup.h
+++ b/src/lib/elc_popup.h
@@ -1,28 +1,28 @@
/**
* @defgroup Popup Popup
- * @ingroup Elementary
+ * @ingroup elm_widget_group
*
* @image html popup_inheritance_tree.png
* @image latex popup_inheritance_tree.eps
*
- * This widget is an enhancement of @ref Notify. In addition to
- * content area, there are two optional sections, namely title area and
- * action area.
+ * @brief This widget is an enhancement of @ref Notify. In addition to
+ * content area, there are two optional sections, namely title area and
+ * action area.
*
* The popup widget displays its content with a particular orientation in
* the parent area. This orientation can be one among top, center,
* bottom, left, top-left, top-right, bottom-left and bottom-right.
* Content part of Popup can be an Evas Object set by application or
* it can be Text set by application or set of items containing an
- * icon and/or text. The content/item-list can be removed using
+ * icon and/or text. The content/item-list can be removed using
* elm_object_content_set with second parameter passed as NULL.
*
* The following figures show the textual layouts of popup in which Title
- * Area and Action area are optional ones. Action area can have
+ * Area and Action area area are optional ones. Action area can have
* up to 3 buttons handled using elm_object common APIs mentioned
* below. If user wants to have more than 3 buttons then these buttons
- * can be put inside the items of a list as content. User needs to
- * handle the clicked signal of these action buttons if required. No
+ * can be put inside the items of a list as content. User needs to
+ * handle the clicked signal of these action buttons if required. No
* event is processed by the widget automatically when clicked on
* these action buttons.
*
@@ -52,34 +52,26 @@
* </pre>
*
* Timeout can be set on expiry of which popup instance hides and
- * sends a smart signal "timeout" to the user. The visible region of
+ * sends a smart signal "timeout" to the user. The visible region of
* popup is surrounded by a translucent region called Blocked Event
- * area. By clicking on Blocked Event area, the signal
+ * area. By clicking on Blocked Event area, the signal
* "block,clicked" is sent to the application. This block event area
- * can be avoided by using API elm_popup_allow_events_set. When gets
+ * can be avoided by using API elm_popup_allow_events_set. When gets
* hidden, popup does not get destroyed automatically, application
- * should destroy the popup instance after use. To control the
+ * should destroy the popup instance after use. To control the
* maximum height of the internal scroller for item, we use the height
* of the action area which is passed by theme based on the number of
* buttons currently set to popup.
*
- * Popup sets the focus to itself when evas_object_show is called on popup.
- * To set the focus into popup's contents and buttons automatically,
- * evas_object_show on popup should be called after setting all the contents
- * and buttons of popup.
- *
* This widget inherits from the @ref Layout one, so that all the
- * functions acting on it also work for popup objects (since 1.8).
+ * functions acting on it also work for popup objects (@since 1.8).
*
* This widget emits the following signals, besides the ones sent from
- * @ref Layout:
+ * @ref Layout :
* @li @c "timeout" - whenever popup is closed as a result of timeout.
* @li @c "block,clicked" - whenever user taps on Blocked Event area.
- * @li @c "focused" - When the popup has received focus. (since 1.8)
- * @li @c "unfocused" - When the popup has lost focus. (since 1.8)
- * @li "language,changed" - the program's language changed (since 1.8)
- * @li "item,focused" - When the popup item has recieved focus. (since 1.10)
- * @li "item,unfocused" - When the popup item has lost focus. (since 1.10)
+ * @li @c "language,changed" - The program's language changed. (@since 1.8)
+ * @li @c "show,finished" - When the popup transition is finished in showing.
*
* Styles available for Popup
* @li "default"
@@ -92,35 +84,257 @@
* @li "button3" - 3rd button of the action area
*
* Default text parts of the popup widget that you can use are:
- * @li "title,text" - A title area's label
- * @li "default" - A content-text set in the content area of the widget
+ * @li "title,text" - This operates on Title area's label
+ * @li "default" - content-text set in the content area of the widget
*
* Default contents parts of the popup items that you can use are:
- * @li "default" - An item's icon
+ * @li "default" -Item's icon
*
* Default text parts of the popup items that you can use are:
- * @li "default" - An item's label
+ * @li "default" - Item's label
*
* Supported elm_object_item common APIs.
+ * @li @ref elm_object_item_disabled_set
+ * @li @ref elm_object_item_disabled_get
* @li @ref elm_object_item_part_text_set
* @li @ref elm_object_item_part_text_get
* @li @ref elm_object_item_part_content_set
* @li @ref elm_object_item_part_content_get
- * @li @ref elm_object_item_disabled_set
- * @li @ref elm_object_item_disabled_get
- * @li @ref elm_object_item_del
* @li @ref elm_object_item_signal_emit
+ * @li @ref elm_object_item_del
+ *
+ * @{
+ */
+
+/**
+ * @brief Possible orient values for popup.
+ *
+ * These values should be used in conjunction to elm_popup_orient_set() to
+ * set the position in which the popup should appear(relative to its parent)
+ * and in conjunction with elm_popup_orient_get() to know where the popup
+ * is appearing.
+ */
+typedef enum
+{
+ ELM_POPUP_ORIENT_TOP = 0, /**< Popup should appear in the top of parent, default */
+ ELM_POPUP_ORIENT_CENTER, /**< Popup should appear in the center of parent */
+ ELM_POPUP_ORIENT_BOTTOM, /**< Popup should appear in the bottom of parent */
+ ELM_POPUP_ORIENT_LEFT, /**< Popup should appear in the left of parent */
+ ELM_POPUP_ORIENT_RIGHT, /**< Popup should appear in the right of parent */
+ ELM_POPUP_ORIENT_TOP_LEFT, /**< Popup should appear in the top left of parent */
+ ELM_POPUP_ORIENT_TOP_RIGHT, /**< Popup should appear in the top right of parent */
+ ELM_POPUP_ORIENT_BOTTOM_LEFT, /**< Popup should appear in the bottom left of parent */
+ ELM_POPUP_ORIENT_BOTTOM_RIGHT, /**< Notify should appear in the bottom right of parent */
+ ELM_POPUP_ORIENT_LAST /**< Sentinel value, @b don't use */
+ } Elm_Popup_Orient;
+
+/**
+ * @brief Adds a new Popup to the parent
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] parent The parent object
+ * @return The new object or NULL if it cannot be created
+ */
+EAPI Evas_Object *elm_popup_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
+
+/**
+ * @brief Add a new item to a Popup object
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks 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.
+ *
+ * @remarks 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.
+ *
+ * @param[in] obj popup object
+ * @param[in] icon Icon to be set on new item
+ * @param[in] label The Label of the new item
+ * @param[in] func Convenience function called when item selected
+ * @param[in] data Data passed to @p func above
+ * @return A handle to the item added or @c NULL, on errors
+ */
+EAPI Elm_Object_Item *elm_popup_item_append(Evas_Object *obj, const char *label, Evas_Object *icon, Evas_Smart_Cb func, const void *data) EINA_ARG_NONNULL(1);
+
+/**
+ * @brief Sets the wrapping type of content text packed in content
+ * area of popup object.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The Popup object
+ * @param[in] wrap wrapping type of type Elm_Wrap_Type
+ * @see elm_popup_content_text_wrap_type_get()
+ */
+EAPI void elm_popup_content_text_wrap_type_set(Evas_Object *obj, Elm_Wrap_Type wrap) EINA_ARG_NONNULL(1);
+
+/**
+ * @brief Returns the wrapping type of content text packed in content area of
+ * popup object.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The Popup object
+ * @return wrap type of the content text
+ * @see elm_popup_content_text_wrap_type_set
+ */
+EAPI Elm_Wrap_Type elm_popup_content_text_wrap_type_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+
+/**
+ * @brief Sets the orientation of the popup in the parent region
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The popup object
+ * @param[in] orient the orientation of the popup
*
- * Here are some sample code to illustrate Popup usage:
- * @li @ref popup_example_01_c
- * @li @ref popup_example_02_c
- * @li @ref popup_example_03_c
+ * Sets the position in which popup will appear in its parent
+ * @see @ref Elm_Popup_Orient for possible values.
*/
+EAPI void elm_popup_orient_set(Evas_Object *obj, Elm_Popup_Orient orient) EINA_ARG_NONNULL(1);
-#include "elc_popup_common.h"
-#ifdef EFL_EO_API_SUPPORT
-#include "elc_popup_eo.h"
-#endif
-#ifndef EFL_NOLEGACY_API_SUPPORT
-#include "elc_popup_legacy.h"
-#endif
+/**
+ * @brief Returns the orientation of Popup
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The popup object
+ * @return the orientation of the popup
+ *
+ * @see elm_popup_orient_set()
+ * @see Elm_Popup_Orient
+ */
+EAPI Elm_Popup_Orient elm_popup_orient_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+
+/**
+ * @brief Sets a timeout to hide popup automatically
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The popup object
+ * @param[in] timeout The timeout in seconds
+ *
+ * @details This function sets a timeout and starts the timer controlling when
+ * the popup is hidden.
+ *
+ * @remarks 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.
+ *
+ * @remarks Set a value <= 0.0 to disable a running timer.
+ *
+ * @remarks If the value > 0.0 and the popup is previously visible, the
+ * timer will be started with this value, canceling any running timer.
+ */
+EAPI void elm_popup_timeout_set(Evas_Object *obj, double timeout) EINA_ARG_NONNULL(1);
+
+/**
+ * @brief Returns the timeout value set to the popup (in seconds)
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The popup object
+ * @return the timeout value
+ *
+ * @see elm_popup_timeout_set()
+ */
+EAPI double elm_popup_timeout_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+
+/**
+ * @brief Sets whether events should be passed to by a click outside.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The popup object
+ * @param[in] allow EINA_TRUE Events are passed to lower objects, else not
+ *
+ * @remarks Enabling allow event will remove the Blocked event area and events
+ * will pass to the lower layer objects otherwise they are blocked.
+ *
+ * @remarks The default value is EINA_FALSE.
+ *
+ * @see elm_popup_allow_events_get()
+ */
+EAPI void elm_popup_allow_events_set(Evas_Object *obj, Eina_Bool allow);
+
+/**
+ * @brief Returns value indicating whether allow event is enabled or not
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The popup object
+ * @return EINA_FALSE if Blocked event area is present else EINA_TRUE
+ *
+ * @see elm_popup_allow_events_set()
+ * @note By default the Blocked event area is present
+ */
+EAPI Eina_Bool elm_popup_allow_events_get(const Evas_Object *obj);
+
+/**
+ * @internal
+ * @remarks Tizen only feature
+ *
+ * @brief Set the popup's parent
+ *
+ * @param[in] obj The popup object
+ * @param[in] parent The new parent
+ *
+ * Once the parent object is set, a previously set one will be disconnected
+ * and replaced.
+ */
+EAPI void elm_popup_parent_set(Evas_Object *obj, Evas_Object *parent);
+
+/**
+ * @internal
+ * @remarks Tizen only feature
+ *
+ * @brief Get the popup's parent
+ *
+ * @param[in] obj The popup object
+ * @return The parent
+ *
+ * @see elm_popup_parent_set()
+ */
+EAPI Evas_Object *elm_popup_parent_get(Evas_Object *obj);
+
+/**
+ * @brief Set the alignment of the popup object
+ *
+ * @details Sets the alignment in which the popup will appear in its parent.
+ *
+ * @since 1.9
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj popup object
+ * @param[in] horizontal The horizontal alignment of the popup
+ * @param[in] vertical The vertical alignment of the popup
+ *
+ * @see elm_popup_align_get()
+ */
+EAPI void elm_popup_align_set(Evas_Object *obj, double horizontal, double vertical);
+
+/**
+ * @brief Get the alignment of the popup object
+ *
+ * @since 1.9
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The popup object
+ * @param[out] horizontal The horizontal alignment of the popup
+ * @param[out] vertical The vertical alignment of the popup
+ *
+ * @see elm_popup_align_set()
+ */
+EAPI void elm_popup_align_get(const Evas_Object *obj, double *horizontal, double *vertical);
+
+/**
+ * @}
+ */
diff --git a/src/lib/elm_access.h b/src/lib/elm_access.h
index a4ffba986..bb15d6e43 100644
--- a/src/lib/elm_access.h
+++ b/src/lib/elm_access.h
@@ -1,275 +1,328 @@
/**
+ * @internal
* @defgroup Access Access
- * @ingroup Elementary
- *
- * WARNING! this API is not finalized. It is unstable. - do not use it if
- * you want no breaks in future.
+ * @ingroup elm_infra_group
*
* TODO: description
*
+ * @{
*/
-#include "elm_access.eo.h"
+#define MSG_DOMAIN_CONTROL_ACCESS (int)ECORE_X_ATOM_E_ILLUME_ACCESS_CONTROL
enum _Elm_Access_Info_Type
{
ELM_ACCESS_INFO_FIRST = -1,
- ELM_ACCESS_INFO, /* next read is info - this is
- * normally label */
- ELM_ACCESS_TYPE, /* when reading out widget or item
+ ELM_ACCESS_INFO, /* Next read is info - this is
+ * normally the label */
+ ELM_ACCESS_TYPE, /* When reading out the widget or item
* this is read first */
- ELM_ACCESS_STATE, /* if there is a state (eg checkbox)
- * then read state out */
- ELM_ACCESS_CONTEXT_INFO, /* to give contextual information */
+ ELM_ACCESS_STATE, /* If there is a state (eg checkbox)
+ * then read the state out */
+ ELM_ACCESS_CONTEXT_INFO, /* To give contextual information */
ELM_ACCESS_INFO_LAST
};
/**
- * @since 1.8
* @typedef Elm_Access_Info_Type
*/
typedef enum _Elm_Access_Info_Type Elm_Access_Info_Type;
+typedef char *(*Elm_Access_Info_Cb)(void *data, Evas_Object *obj);
+typedef void (*Elm_Access_Activate_Cb)(void *data, Evas_Object *part_obj, Elm_Object_Item *item);
+
/**
* @enum _Elm_Access_Action_Type
- * Enum of supported access action types.
+ * @brief Enumerations of the supported access action types.
*/
enum _Elm_Access_Action_Type
{
ELM_ACCESS_ACTION_FIRST = -1,
- ELM_ACCESS_ACTION_HIGHLIGHT, /* highlight an object */
- ELM_ACCESS_ACTION_UNHIGHLIGHT, /* unhighlight an object */
- ELM_ACCESS_ACTION_HIGHLIGHT_NEXT, /* set highlight to next object */
- ELM_ACCESS_ACTION_HIGHLIGHT_PREV, /* set highlight to previous object */
- ELM_ACCESS_ACTION_ACTIVATE, /* activate a highlight object */
- ELM_ACCESS_ACTION_SCROLL, /* scroll if one of highlight object parents
+ ELM_ACCESS_ACTION_HIGHLIGHT, /**< Highlight an object */
+ ELM_ACCESS_ACTION_UNHIGHLIGHT, /**< Unhighlight an object */
+ ELM_ACCESS_ACTION_HIGHLIGHT_NEXT, /**< Set highlight to the next object */
+ ELM_ACCESS_ACTION_HIGHLIGHT_PREV, /**< Set highlight to the previous object */
+ ELM_ACCESS_ACTION_ACTIVATE, /**< Activate a highlight object */
+ ELM_ACCESS_ACTION_VALUE_CHANGE, /**< TODO: deprecate this */
+ ELM_ACCESS_ACTION_SCROLL, /**< Scroll if one of the highlight object parents
* is scrollable */
- ELM_ACCESS_ACTION_UP, /* change value up of highlight object */
- ELM_ACCESS_ACTION_DOWN, /* change value down of highlight object */
- ELM_ACCESS_ACTION_BACK, /* go back to a previous view
+ ELM_ACCESS_ACTION_ZOOM, /**< Send the signal of the zoom gesture
+ * by a callback function */
+ ELM_ACCESS_ACTION_MOUSE, /**< Give the mouse event to the highlight object */
+ ELM_ACCESS_ACTION_UP, /**< Change the value up of the highlight object */
+ ELM_ACCESS_ACTION_DOWN, /**< Change the value down of the highlight object */
+ ELM_ACCESS_ACTION_BACK, /**< Go back to a previous view
ex: pop naviframe item */
- ELM_ACCESS_ACTION_READ, /* highlight an object */
+ ELM_ACCESS_ACTION_OVER, /**< Mouse over an object */
+ ELM_ACCESS_ACTION_READ, /**< Highlight an object */
+ ELM_ACCESS_ACTION_ENABLE, /**< Enable highlight and read ability */
+ ELM_ACCESS_ACTION_DISABLE, /**< Disable highlight and read ability */
ELM_ACCESS_ACTION_LAST
};
/**
- * @since 1.8
* @typedef Elm_Access_Action_Type
*/
typedef enum _Elm_Access_Action_Type Elm_Access_Action_Type;
+enum _Elm_Highlight_Direction
+{
+ ELM_HIGHLIGHT_DIR_FIRST = -1,
+ ELM_HIGHLIGHT_DIR_NEXT,
+ ELM_HIGHLIGHT_DIR_PREVIOUS
+};
+/**
+ * @typedef Elm_Access_Action_Type
+ */
+typedef enum _Elm_Highlight_Direction Elm_Highlight_Direction;
+
+enum _Elm_Access_Sound_Type
+{
+ ELM_ACCESS_SOUND_FIRST = -1,
+ ELM_ACCESS_SOUND_HIGHLIGHT,
+ ELM_ACCESS_SOUND_SCROLL,
+ ELM_ACCESS_SOUND_END,
+ ELM_ACCESS_SOUND_LAST
+};
+/**
+ * @typedef Elm_Access_Sound_Type
+ */
+typedef enum _Elm_Access_Sound_Type Elm_Access_Sound_Type;
+
struct _Elm_Access_Action_Info
{
+ double zoom;
+ double angle;
Evas_Coord x;
Evas_Coord y;
- unsigned int mouse_type; /* 0: mouse down
+ unsigned int mouse_type; /**< 0: mouse down
1: mouse move
2: mouse up */
Elm_Access_Action_Type action_type;
Elm_Access_Action_Type action_by;
Eina_Bool highlight_cycle : 1;
+ Eina_Bool highlight_end : 1;
};
-/**
- * @since 1.8
- * @typedef Elm_Access_Action_Info
- */
typedef struct _Elm_Access_Action_Info Elm_Access_Action_Info;
-enum _Elm_Highlight_Direction
-{
- ELM_HIGHLIGHT_DIR_FIRST = -1,
- ELM_HIGHLIGHT_DIR_NEXT,
- ELM_HIGHLIGHT_DIR_PREVIOUS
-};
-
/**
- * @since 1.8
- * @typedef Elm_Highlight_Direction
- */
-typedef enum _Elm_Highlight_Direction Elm_Highlight_Direction;
-
-/**
- * @since 1.8
* @typedef Elm_Access_Action_Cb
+ * @brief Called to make an access object do specific actions.
*
- * User callback to make access object do specific action
- *
- * @param data user data
- * @param action_info information to classify the action
- * Returns @c EINA_TRUE on success, @c EINA FALSE otherwise
+ * @param[in] data The user data
+ * @param[in] action_info The information to classify the action
+ * @return @c EINA_TRUE on success, otherwise @c EINA FALSE
*
*/
typedef Eina_Bool (*Elm_Access_Action_Cb)(void *data, Evas_Object *obj, Elm_Access_Action_Info *action_info);
-typedef char *(*Elm_Access_Info_Cb)(void *data, Evas_Object *obj);
-typedef void (*Elm_Access_Activate_Cb)(void *data, Evas_Object *part_obj, Elm_Object_Item *item);
-
-
/**
- * @brief Register evas object as an accessible object.
- * @since 1.8
+ * @brief Registers the evas object as an accessible object.
*
- * @param obj The evas object to register as an accessible object.
- * @param parent The elementary object which is used for creating
- * accessible object.
+ * @since 1.8
*
- * @ingroup Access
+ * @param[in] obj The evas object to register as an accessible object
+ * @param[in] parent The elementary object which is used for creating
+ * an accessible object
*/
EAPI Evas_Object *elm_access_object_register(Evas_Object *obj, Evas_Object *parent);
/**
- * @brief Unregister accessible object.
- * @since 1.8
+ * @brief Unregister the accessible object.
*
- * @param obj The Evas object to unregister accessible object.
+ * @since 1.8
*
- * @ingroup Access
+ * @param[in] obj The Evas object to unregister an accessible object
*/
EAPI void elm_access_object_unregister(Evas_Object *obj);
/**
- * @brief Get an accessible object of the evas object.
- * @since 1.8
+ * @brief Gets an accessible object of the evas object.
*
- * @param obj The evas object.
- * @return Accessible object of the evas object or NULL for any error
+ * @since 1.8
*
- * @ingroup Access
+ * @param[in] obj The evas object
+ * @return The accessible object of the evas object, otherwise @c NULL in case of an error
*/
EAPI Evas_Object *elm_access_object_get(const Evas_Object *obj);
/**
- * @brief Set text to give information for specific type.
+ * @brief Sets text to give information for a specific type.
+ *
* @since 1.8
*
- * @param obj Accessible object.
- * @param type The type of content that will be read
- * @param text The text information that will be read
+ * @param[in] obj The accessible object
+ * @param[in] type The type of content that is read
+ * @param[in] text The text information that is read
*
* @see elm_access_info_cb_set
- * @ingroup Access
*/
EAPI void elm_access_info_set(Evas_Object *obj, int type, const char *text);
/**
- * @brief Set text to give information for specific type.
+ * @brief Sets text to give information for a specific type.
+ *
* @since 1.8
*
- * @param obj Accessible object.
- * @param type The type of content that will be read
+ * @param[in] obj The accessible object
+ * @param[in] type The type of content that is read
*
* @see elm_access_info_cb_set
- * @ingroup Access
*/
EAPI char *elm_access_info_get(const Evas_Object *obj, int type);
/**
- * @brief Set content callback to give information for specific type.
- * @since 1.8
+ * @brief Sets a content callback to give information for a specific type.
*
- * @param obj Accessible object.
- * @param type The type of content that will be read
- * @param func The function to be called when the content is read
- * @param data The data pointer to be passed to @p func
+ * @since 1.8
*
- * The type would be one of ELM_ACCESS_TYPE, ELM_ACCESS_INFO,
- * ELM_ACCESS_STATE, ELM_ACCESS_CONTEXT_INFO.
+ * @remarks The type would be one from @c ELM_ACCESS_TYPE, @c ELM_ACCESS_INFO,
+ * @c ELM_ACCESS_STATE, or @c ELM_ACCESS_CONTEXT_INFO.
*
- * In the case of button widget, the content of ELM_ACCESS_TYPE would be
- * "button". The label of button such as "ok", "cancel" is for ELM_ACCESS_INFO.
- * If the button is disabled, content of ELM_ACCESS_STATE would be "disabled".
- * And if there is contextual information, use ELM_ACCESS_CONTEXT_INFO.
+ * @remarks In the case of button widget, the content of @c ELM_ACCESS_TYPE would be
+ * "button". The label of the button such as "ok", "cancel" is for @c ELM_ACCESS_INFO.
+ * If the button is disabled, content of @c ELM_ACCESS_STATE would be "disabled".
+ * And if there is contextual information, use @c ELM_ACCESS_CONTEXT_INFO.
*
- * @ingroup Access
+ * @param[in] obj The accessible object
+ * @param[in] type The type of content that is read
+ * @param[in] func The function to be called when the content is read
+ * @param[in] data The data pointer to be passed to @a func
*/
EAPI void elm_access_info_cb_set(Evas_Object *obj, int type, Elm_Access_Info_Cb func, const void *data);
/**
- * @brief Set activate callback to activate highlight object.
- * @since 1.8
+ * @brief Sets an activate callback to activate the highlight object.
*
- * @param obj Accessible object.
- * @param func The function to be called when the activate gesture is detected
- * @param data The data pointer to be passed to @p func
+ * @since 1.8
*
- * @ingroup Access
+ * @param[in] obj The accessible object
+ * @param[in] func The function to be called when the activate gesture is detected
+ * @param[in] data The data pointer to be passed to @a func
*/
EAPI void elm_access_activate_cb_set(Evas_Object *obj, Elm_Access_Activate_Cb func, void *data);
/**
- * @brief Read out text information directly.
+ * @brief Reads out text information directly.
+ *
* @since 1.8
*
- * @param text The text information that will be read
+ * @remarks This function does not free the @a text internally.
*
+ * @param[in] text The text information that is read
+ */
+EAPI void elm_access_say(const char *text);
+
+/**
+ * @brief Read out text information forcibly and directly.
+ * @since 1.11
+ *
+ * @param[in] text The text information that will be read
+ *
+ * This text isn't interupted any other elm_access_say.
+ * Don't use this API continuous and repeatedly
* This function will not free the @p text internally.
*
* @ingroup Access
*/
-EAPI void elm_access_say(const char *text);
+EAPI void elm_access_force_say(const char *text);
/**
- * @brief Give the highlight to the object directly.
+ * @brief Gives the highlight to the object directly.
+ *
* @since 1.8
*
- * @param obj The object that will have the highlight and its information be read.
+ * @remarks The object should be an elementary object or an access object.
*
- * The object should be an elementary object or an access object.
+ * @param[in] obj The object that has the highlight and its information to be read
*
* @see elm_access_object_get
- * @ingroup Access
*/
EAPI void elm_access_highlight_set(Evas_Object* obj);
/**
+ * @brief Gives the highlight to the item directly.
+ *
+ * @since 1.8
+ *
+ * @remarks This API works like elm_access_highlight_set().
+ * Just the given parameter is different.
+ *
+ * @param[in] item The item that has the highlight and its information to be read
+ *
+ * @see elm_access_highlight_set
+ */
+EAPI void elm_access_item_highlight_set(Elm_Object_Item *item);
+
+/**
+ * @brief Sets the next access object for the highlight.
+ *
+ * @since 1.8
+ *
+ * @remarks Currently the focus chain is used for accessing the highlight direction. Use this API
+ * to customize the focus chain. If the focus chain is already established, you can
+ * change one object's highlight chain and not break the other object's
+ * focus chain. If you use elm_object_focus_custom_chain_append(), it
+ * resets another object's custom chain also.
+ *
+ * @param[in] obj The object which is a previous access or widget object of the next object for highlight
+ * @param[in] dir The access direction which is same as the focus direction
+ * @param[in] next The object which is a next access object of @a obj for highlight
+ *
+ * @see elm_object_focus_custom_chain_append
+ */
+EAPI void
+elm_access_highlight_next_set(Evas_Object *obj, Elm_Highlight_Direction dir, Evas_Object *next);
+
+/**
+ * @brief Set the end of whole acces chain.
+ * @since 1.9
+ *
+ * @remarks If the access highlight reaches to start or end of an access chain,
+ * it should notice the situation. In some case, the application can change
+ * the order of access chain. In that case, the application have to set
+ * the end of access chain.
+ *
+ * @param[in] obj The object is in the end of access chain.
+ * @param[in] dir Access direction same as Focus direction
+ */
+EAPI void elm_access_chain_end_set(Evas_Object *obj, Elm_Highlight_Direction dir);
+
+/**
* @brief Do the accessibility action base on given object.
* @since 1.8
*
- * @param obj The object that could be an any object. it would be useful to use a container widget.
- * @param type The type of accessibility action.
- * @param action_info The action information of action @p type to give more specific information.
+ * @param[in] obj The object that could be an any object. it would be useful to use a container widget.
+ * @param[in] type The type of accessibility action.
+ * @param[in] action_info The action information of action @p type to give more specific information.
*
* @return @c EINA_TRUE on success, @c EINA_FALSE otherwise
*
* The return value would be useful, when the @p type is ELM_ACCESS_ACTION_HIGHLIGHT_NEXT
* or ELM_ACCESS_ACTION_HIGHLIGHT_PREV. If there is no way to give a highlight,
* @c EINA_FALSE will be returned.
- *
- * @ingroup Access
*/
-EAPI Eina_Bool elm_access_action(Evas_Object *obj, const Elm_Access_Action_Type type, Elm_Access_Action_Info *action_info);
+EAPI Eina_Bool elm_access_action(Evas_Object *obj, const Elm_Access_Action_Type type, void *action_info);
/**
* @brief Set a callback function to a given accessibility action type
* @since 1.8
*
- * @param obj The object to attach a callback to
- * @param type The type of accessibility action.
- * @param cb The callback function to be called when the accessibility action is triggered.
- * @param data The data pointer to be passed to @p cb
- *
- * @ingroup Access
+ * @param[in] obj The object to attach a callback to
+ * @param[in] type The type of accessibility action.
+ * @param[in] cb The callback function to be called when the accessibility action is triggered.
+ * @param[in] data The data pointer to be passed to @p cb
*/
EAPI void elm_access_action_cb_set(Evas_Object *obj, const Elm_Access_Action_Type type, const Elm_Access_Action_Cb cb, const void *data);
+//TODO: remvoe below - use elm_access_text_set(); or elm_access_cb_set();
+EINA_DEPRECATED EAPI void elm_access_external_info_set(Evas_Object *obj, const char *text);
+EINA_DEPRECATED EAPI char *elm_access_external_info_get(const Evas_Object *obj);
+
/**
- * @brief Set the next access object for highlight.
- * @since 1.8
- *
- * @param obj The object is previous access object of next for hilight.
- * @param dir Access direction same as Focus direction
- * @param next The object is next access object of obj for hilight.
- *
- * Currently focus chain is used for access highlight chain. Use this API to
- * customize highlight chain. If highlight chain is already established, you can
- * change one object's highlight chain and do not break the other object's
- * highlight chain.
- *
- * @ingroup Access
+ * @}
*/
-EAPI void
-elm_access_highlight_next_set(Evas_Object *obj, Elm_Highlight_Direction dir, Evas_Object *next);
diff --git a/src/lib/elm_actionslider.h b/src/lib/elm_actionslider.h
index ed7bd5444..6246c1236 100644
--- a/src/lib/elm_actionslider.h
+++ b/src/lib/elm_actionslider.h
@@ -1,5 +1,6 @@
/**
- * @addtogroup Actionslider Actionslider
+ * @internal
+ * @defgroup Actionslider Actionslider
* @ingroup Elementary
*
* @image html actionslider_inheritance_tree.png
@@ -8,10 +9,10 @@
* @image html img/widget/actionslider/preview-00.png
* @image latex img/widget/actionslider/preview-00.eps
*
- * An actionslider is a switcher for 2 or 3 labels with customizable magnet
+ * An actionslider is a switcher for @c 2 or @c 3 labels with customizable magnet
* properties. The user drags and releases the indicator, to choose a label.
*
- * Labels occupy the following positions.
+ * Labels occupy the following positions:
* a. Left
* b. Right
* c. Center
@@ -20,43 +21,110 @@
*
* Magnets can be set on the above positions.
*
- * When the indicator is released, it will move to its nearest
+ * When the indicator is released, it moves to its nearest
* "enabled and magnetized" position.
*
- * @note By default all positions are set as enabled.
+ * By default, all positions are set as enabled.
*
* This widget inherits from the @ref Layout one, so that all the
* functions acting on it also work for actionslider objects.
*
* This widget emits the following signals, besides the ones sent from
- * @ref Layout:
- * @li @c "selected" - when user selects an enabled position (the
+ * @ref Layout :
+ * @li @c "selected" - When the user selects an enabled position (the
* label is passed as event info).
- * @li @c "pos_changed" - when the indicator reaches any of the
+ * @li @c "pos_changed" - When the indicator reaches any of the
* positions("left", "right" or "center").
- * @li @c "language,changed" - the program's language changed (since 1.9)
*
- * Default text parts of the actionslider widget that you can use for are:
- * @li "indicator" - An indicator label of the actionslider
- * @li "left" - A left label of the actionslider
- * @li "right" - A right label of the actionslider
- * @li "center" - A center label of the actionslider
+ * The default text parts of the actionslider widget that you can use are:
+ * @li "indicator" - An indicator label of the actionslider.
+ * @li "left" - A left label of the actionslider.
+ * @li "right" - A right label of the actionslider.
+ * @li "center" - A center label of the actionslider.
*
- * Supported elm_object common APIs.
+ * Supported common elm_object APIs.
* @li @ref elm_object_part_text_set
* @li @ref elm_object_part_text_get
*
- * See an example of actionslider usage @ref actionslider_example_page "here"
* @{
*/
+typedef enum
+{
+ ELM_ACTIONSLIDER_NONE = 0,
+ ELM_ACTIONSLIDER_LEFT = 1 << 0,
+ ELM_ACTIONSLIDER_CENTER = 1 << 1,
+ ELM_ACTIONSLIDER_RIGHT = 1 << 2,
+ ELM_ACTIONSLIDER_ALL = (1 << 3) - 1
+} Elm_Actionslider_Pos;
+
+/**
+ * @brief Adds a new actionslider to the parent.
+ *
+ * @param[in] parent The parent object
+ * @return The new actionslider object, otherwise @c NULL if it cannot be created
+ */
+EAPI Evas_Object *elm_actionslider_add(Evas_Object *parent);
+
+/**
+ * @brief Gets the actionslider selected label.
+ *
+ * @param[in] obj The actionslider object
+ * @return The selected label
+ */
+EAPI const char *elm_actionslider_selected_label_get(const Evas_Object *obj);
+
+/**
+ * @brief Sets the actionslider indicator position.
+ *
+ * @param[in] obj The actionslider object
+ * @param[in] pos The position of the indicator
+ */
+EAPI void elm_actionslider_indicator_pos_set(Evas_Object *obj, Elm_Actionslider_Pos pos);
+
+/**
+ * @brief Gets the actionslider indicator position.
+ *
+ * @param[in] obj The actionslider object
+ * @return The position of the indicator
+ */
+EAPI Elm_Actionslider_Pos elm_actionslider_indicator_pos_get(const Evas_Object *obj);
+
+/**
+ * @brief Sets the actionslider magnet position. To make multiple positions magnets as enabled @c or
+ * them together(e.g.: @c ELM_ACTIONSLIDER_LEFT | @c ELM_ACTIONSLIDER_RIGHT).
+ *
+ * @param[in] obj The actionslider object
+ * @param[in] pos The bit mask indicating the magnet positions
+ */
+EAPI void elm_actionslider_magnet_pos_set(Evas_Object *obj, Elm_Actionslider_Pos pos);
+
+/**
+ * @brief Gets the actionslider magnet position.
+ *
+ * @param[in] obj The actionslider object
+ * @return The positions with the magnet property
+ */
+EAPI Elm_Actionslider_Pos elm_actionslider_magnet_pos_get(const Evas_Object *obj);
+
+/**
+ * @brief Sets the actionslider enabled position. To set multiple positions as enabled OR
+ * them together(e.g.: @c ELM_ACTIONSLIDER_LEFT | @c ELM_ACTIONSLIDER_RIGHT).
+ *
+ * @remarks All the positions are enabled by default.
+ *
+ * @param[in] obj The actionslider object
+ * @param[in] pos The bit mask indicating the enabled positions
+ */
+EAPI void elm_actionslider_enabled_pos_set(Evas_Object *obj, Elm_Actionslider_Pos pos);
+
+/**
+ * @brief Gets the actionslider enabled position.
+ *
+ * @param[in] obj The actionslider object
+ * @return The enabled positions
+ */
+EAPI Elm_Actionslider_Pos elm_actionslider_enabled_pos_get(const Evas_Object *obj);
-#include "elm_actionslider_common.h"
-#ifdef EFL_EO_API_SUPPORT
-#include "elm_actionslider_eo.h"
-#endif
-#ifndef EFL_NOLEGACY_API_SUPPORT
-#include "elm_actionslider_legacy.h"
-#endif
/**
* @}
*/
diff --git a/src/lib/elm_app.h b/src/lib/elm_app.h
index 76c663b92..75bf48197 100644
--- a/src/lib/elm_app.h
+++ b/src/lib/elm_app.h
@@ -1,76 +1,78 @@
/**
* @defgroup App App
- * @ingroup Elementary
- * Provide information in order to make Elementary determine the @b
- * run time location of the software in question, so other data files
- * such as images, sound files, executable utilities, libraries,
- * modules and locale files can be found.
- */
-
-/**
- * @addtogroup App
+ * @ingroup elm_infra_group
+ * @brief This group provides functions to get the application information.
+ *
* @{
*/
/**
- * Re-locate the application somewhere else after compilation, if the developer
- * wishes for easier distribution of pre-compiled binaries.
- *
- * @param mainfunc This is your application's main function name,
- * whose binary's location is to be found. Providing @c NULL
- * will make Elementary not to use it
- * @param dom This will be used as the application's "domain", in the
- * form of a prefix to any environment variables that may
- * override prefix detection and the directory name, inside the
- * standard share or data directories, where the software's
- * data files will be looked for.
- * @param checkfile This is an (optional) magic file's path to check
- * for existence (and it must be located in the data directory,
- * under the share directory provided above). Its presence will
- * help determine the prefix found was correct. Pass @c NULL if
- * the check is not to be done.
- *
- * The prefix system is designed to locate where the given software is
- * installed (under a common path prefix) at run time and then report
- * specific locations of this prefix and common directories inside
- * this prefix like the binary, library, data and locale directories,
- * through the @c elm_app_*_get() family of functions.
- *
- * Call elm_app_info_set() early on before you change working
- * directory or anything about @c argv[0], so it gets accurate
- * information.
- *
- * It will then try and trace back which file @p mainfunc comes from,
- * if provided, to determine the application's prefix directory.
- *
- * The @p dom parameter provides a string prefix to prepend before
- * environment variables, allowing a fallback to @b specific
- * environment variables to locate the software. You would most
- * probably provide a lowercase string there, because it will also
- * serve as directory domain, explained next. For environment
- * variables purposes, this string is made uppercase. For example if
- * @c "myapp" is provided as the prefix, then the program would expect
- * @c "MYAPP_PREFIX" as a master environment variable to specify the
- * exact install prefix for the software, or more specific environment
- * variables like @c "MYAPP_BIN_DIR", @c "MYAPP_LIB_DIR", @c
- * "MYAPP_DATA_DIR" and @c "MYAPP_LOCALE_DIR", which could be set by
- * the user or scripts before launching. If not provided (@c NULL),
- * environment variables will not be used to override compiled-in
- * defaults or auto detections.
- *
- * The @p dom string also provides a subdirectory inside the system
- * shared data directory for data files. For example, if the system
- * directory is @c /usr/local/share, then this directory name is
- * appended, creating @c /usr/local/share/myapp, if it @p was @c
- * "myapp". It is expected that the application installs data files in
- * this directory.
- *
- * The @p checkfile is a file name or path of something inside the
- * share or data directory to be used to test that the prefix
- * detection worked. For example, your app will install a wallpaper
- * image as @c /usr/local/share/myapp/images/wallpaper.jpg and so to
- * check that this worked, provide @c "images/wallpaper.jpg" as the @p
- * checkfile string.
+ * @brief Provides information in order to make Elementary determine the @b
+ * run time location of the software in question, so other data files
+ * such as images, sound files, executable utilities, libraries,
+ * modules and locale files can be found.
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks This function allows one to re-locate the application somewhere
+ * else after compilation, if the developer wishes for easier
+ * distribution of pre-compiled binaries.
+ *
+ * @remarks The prefix system is designed to locate where the given software is
+ * installed (under a common path prefix) at run time and then report
+ * specific locations of this prefix and common directories inside
+ * this prefix like the binary, library, data, and locale directories,
+ * through the @c elm_app_*_get() family of functions.
+ *
+ * @remarks Call elm_app_info_set() early, before you change the working
+ * directory or anything about @c argv[0], so it gets accurate
+ * information.
+ *
+ * It then tries to trace back which file @a mainfunc comes from,
+ * if provided, to determine the application's prefix directory.
+ *
+ * @remarks The @a dom parameter provides a string prefix to prepend before
+ * environment variables, allowing a fallback to @b specific
+ * environment variables to locate the software. You would most
+ * probably provide a lowercase string there, because it also
+ * serves as the directory domain, explained next. For environment
+ * variables purposes, this string is made uppercase. For example if
+ * @c "myapp" is provided as the prefix, then the program would expect
+ * @c "MYAPP_PREFIX" as a master environment variable to specify the
+ * exact install prefix for the software, or more specific environment
+ * variables like @c "MYAPP_BIN_DIR", @c "MYAPP_LIB_DIR", @c
+ * "MYAPP_DATA_DIR", and @c "MYAPP_LOCALE_DIR", which could be set by
+ * the user or scripts before launching. If not provided (@c NULL),
+ * environment variables are not used to override compiled-in
+ * defaults or auto detections.
+ *
+ * The @a dom string also provides a subdirectory inside the system
+ * shared data directory for data files. For example, if the system
+ * directory is @c /usr/local/share, then this directory name is
+ * appended, creating @c /usr/local/share/myapp, if it @b is @c
+ * "myapp". It is expected that the application installs data files in
+ * this directory.
+ *
+ * @remarks The @a checkfile is a file name or path of something inside the
+ * share or data directory to be used to test if the prefix
+ * detection worked. For example, your app installs a wallpaper
+ * image as @c /usr/local/share/myapp/images/wallpaper.jpg and so to
+ * check that this worked, provide @c "images/wallpaper.jpg" as the @a
+ * checkfile string.
+ *
+ * @param[in] mainfunc This is your application's main function name,
+ * whose binary's location is to be found \n
+ * Providing @c NULL makes Elementary not use it
+ * @param[in] dom This is used as the application's "domain", in the
+ * form of a prefix to any environment variables that may
+ * override prefix detection and the directory name, inside the
+ * standard share or data directories, where the software's
+ * data files are looked for
+ * @param[in] checkfile This is an (optional) magic file's path to check
+ * for existence (and it must be located in the data directory,
+ * under the share directory provided above) \n
+ * Its presence helps determine whther the prefix found is correct \n
+ * Pass @c NULL if the check is not to be done.
*
* @see elm_app_compile_bin_dir_set()
* @see elm_app_compile_lib_dir_set()
@@ -81,214 +83,183 @@
* @see elm_app_lib_dir_get()
* @see elm_app_data_dir_get()
* @see elm_app_locale_dir_get()
- *
- * @ingroup App
*/
EAPI void elm_app_info_set(void *mainfunc, const char *dom, const char *checkfile);
/**
- * Set a formal name to be used with the elm application.
+ * @brief Set a formal name to be used with the elm application.
*
- * @param name Application name.
+ * @since_tizen 2.3
*
- * @ingroup App
- * @since 1.8
+ * @param[in] name Application name.
*/
EAPI void elm_app_name_set(const char *name);
/**
- * Set the path to the '.desktop' file to be associated
- * with the elm application.
- *
- * @param path The path to the '.desktop' file
- *
- * @warning Since this path is very environment dependent,
- * this will hold whatever value is passed to it.
- *
- * @ingroup App
- * @since 1.8
- */
-EAPI void elm_app_desktop_entry_set(const char *path);
-
-/**
- * Provide information on the @b fallback application's binaries
- * directory, in scenarios where they get overridden by
- * elm_app_info_set().
+ * @brief Provides information on the @b fallback application's binaries
+ * directory, in scenarios where they get overridden by
+ * elm_app_info_set().
*
- * @param dir The path to the default binaries directory (compile time
- * one)
+ * @since_tizen 2.3
*
- * @note Elementary will as well use this path to determine actual
- * names of binaries' directory paths, maybe changing it to be @c
- * something/local/bin instead of @c something/bin, only, for
- * example.
+ * @remarks Elementary also uses this path to determine the actual
+ * names of binaries' directory paths, maybe changing it to be @c
+ * something/local/bin instead of @c something/bin, only, for
+ * example.
*
- * @warning You should call this function @b before
- * elm_app_info_set().
+ * @remarks You should call this function @b before
+ * elm_app_info_set().
*
- * @ingroup App
+ * @param[in] dir The path to the default binaries directory (compile time
+ * one)
*/
EAPI void elm_app_compile_bin_dir_set(const char *dir);
/**
- * Provide information on the @b fallback application's libraries
- * directory, on scenarios where they get overridden by
- * elm_app_info_set().
+ * @brief Provides information on the @b fallback application's libraries
+ * directory, on scenarios where they get overridden by
+ * elm_app_info_set().
*
- * @param dir The path to the default libraries directory (compile
- * time one)
+ * @since_tizen 2.3
*
- * @note Elementary will as well use this path to determine actual
- * names of libraries' directory paths, maybe changing it to be @c
- * something/lib32 or @c something/lib64 instead of @c something/lib,
- * only, for example.
+ * @remarks Elementary also uses this path to determine the actual
+ * names of libraries' directory paths, maybe changing it to be @c
+ * something/lib32 or @c something/lib64 instead of @c something/lib
+ * only, for example.
*
- * @warning You should call this function @b before
- * elm_app_info_set().
+ * @remarks You should call this function @b before
+ * elm_app_info_set().
*
- * @ingroup App
+ * @param[in] dir The path to the default libraries directory (compile
+ * time one)
*/
EAPI void elm_app_compile_lib_dir_set(const char *dir);
/**
- * Provide information on the @b fallback application's data
- * directory, on scenarios where they get overridden by
- * elm_app_info_set().
+ * @brief Provides information on the @b fallback application's data
+ * directory, on scenarios where they get overridden by
+ * elm_app_info_set().
*
- * @param dir The path to the default data directory (compile time
- * one)
+ * @since_tizen 2.3
*
- * @note Elementary will as well use this path to determine actual
- * names of data directory paths, maybe changing it to be @c
- * something/local/share instead of @c something/share, only, for
- * example.
+ * @remarks Elementary also uses this path to determine the actual
+ * names of data directory paths, maybe changing it to be @c
+ * something/local/share instead of @c something/share only, for
+ * example.
*
- * @warning You should call this function @b before
- * elm_app_info_set().
+ * @remarks You should call this function @b before
+ * elm_app_info_set().
*
- * @ingroup App
+ * @param[in] dir The path to the default data directory (compile time
+ * one)
*/
EAPI void elm_app_compile_data_dir_set(const char *dir);
/**
- * Provide information on the @b fallback application's locale
- * directory, on scenarios where they get overridden by
- * elm_app_info_set().
+ * @brief Provides information on the @b fallback application's locale
+ * directory, on scenarios where they get overridden by
+ * elm_app_info_set().
*
- * @param dir The path to the default locale directory (compile time
- * one)
+ * @since_tizen 2.3
*
- * @warning You should call this function @b before
- * elm_app_info_set().
+ * @remarks You should call this function @b before
+ * elm_app_info_set().
*
- * @ingroup App
+ * @param[in] dir The path to the default locale directory (compile time
+ * one)
*/
EAPI void elm_app_compile_locale_set(const char *dir);
/**
- * Get the application formal name, as set by elm_app_name_set().
+ * @brief Retrieve the application formal name, as set by elm_app_name_set().
*
- * @return The application formal name.
+ * @since_tizen 2.3
*
- * @ingroup App
- * @since 1.8
+ * @return The application formal name.
*/
EAPI const char *elm_app_name_get(void);
/**
- * Get the path to the '.desktop' file, as set by
- * elm_app_desktop_entry_set().
- *
- * @return The '.desktop' file path.
- *
- * @ingroup App
- * @since 1.8
- */
-EAPI const char *elm_app_desktop_entry_get(void);
-
-/**
- * Get the application's run time prefix directory, as set by
- * elm_app_info_set() and the way (environment) the application was
- * run from.
+ * @brief Retrieves the application's run time prefix directory, as set by
+ * elm_app_info_set() and the way (environment) the application is
+ * run from it.
*
- * @return The directory prefix the application is actually using.
+ * @since_tizen 2.3
*
- * @ingroup App
+ * @return The directory prefix that the application is actually using
*/
EAPI const char *elm_app_prefix_dir_get(void);
/**
- * Get the application's run time binaries prefix directory, as
- * set by elm_app_info_set() and the way (environment) the application
- * was run from.
+ * @brief Retrieves the application's run time binaries prefix directory, as
+ * set by elm_app_info_set() and the way (environment) the application
+ * is run from it.
*
- * @return The binaries directory prefix the application is actually
- * using.
+ * @since_tizen 2.3
*
- * @ingroup App
+ * @return The binaries directory prefix that the application is actually
+ * using
*/
EAPI const char *elm_app_bin_dir_get(void);
/**
- * Get the application's run time libraries prefix directory, as
- * set by elm_app_info_set() and the way (environment) the application
- * was run from.
+ * @brief Retrieves the application's run time libraries prefix directory, as
+ * set by elm_app_info_set() and the way (environment) the application
+ * is run from it.
*
- * @return The libraries directory prefix the application is actually
- * using.
+ * @since_tizen 2.3
*
- * @ingroup App
+ * @return The libraries directory prefix that the application is actually
+ * using
*/
EAPI const char *elm_app_lib_dir_get(void);
/**
- * Get the application's run time data prefix directory, as
- * set by elm_app_info_set() and the way (environment) the application
- * was run from.
+ * @brief Retrieves the application's run time data prefix directory, as
+ * set by elm_app_info_set() and the way (environment) the application
+ * is run from it.
*
- * @return The data directory prefix the application is actually
- * using.
+ * @since_tizen 2.3
*
- * @ingroup App
+ * @return The data directory prefix that the application is actually
+ * using
*/
EAPI const char *elm_app_data_dir_get(void);
/**
- * Get the application's run time locale prefix directory, as
- * set by elm_app_info_set() and the way (environment) the application
- * was run from.
+ * @brief Retrieves the application's run time locale prefix directory, as
+ * set by elm_app_info_set() and the way (environment) the application
+ * is run from it.
*
- * @return The locale directory prefix the application is actually
- * using.
+ * @since_tizen 2.3
*
- * @ingroup App
+ * @return The locale directory prefix the application is actually
+ * using
*/
EAPI const char *elm_app_locale_dir_get(void);
/**
- * Set the base scale of the application.
+ * @brief Set the base scale of the application.
*
* @param base_scale The scale that the application is made on the basis of.
*
- * @note The scale is used for the application to be scaled.
- * If the application isn't made on the basis of scale 1.0,
- * the application layout will be scaled inappositely. So if the application set
- * the base scale, it is applied when the application is scaled.
+ * @remarks The scale is used for the application to be scaled.
+ * if the application isn't made on the basis of scale 1.0,
+ * the application layout will be break. So if the application set
+ * the base scale, it is applied when the application is scaled.
*
- * @note You should call this function @b before using ELM_SCALE_SIZE macro.
+ * @remarks You should call this function @b before using ELM_SCALE_SIZE macro.
*
- * @ingroup App
- * @since 1.12
+ * @since_tizen 2.3
*/
EAPI void elm_app_base_scale_set(double base_scale);
/**
- * Get the base scale of the application.
+ * @brief Get the base scale of the application.
*
* @return The base scale which the application sets.
*
- * @ingroup App
- * @since 1.12
+ * @since_tizen 2.3
*/
EAPI double elm_app_base_scale_get(void);
diff --git a/src/lib/elm_authors.h b/src/lib/elm_authors.h
index 10e91930c..45db56475 100644
--- a/src/lib/elm_authors.h
+++ b/src/lib/elm_authors.h
@@ -1,6 +1,6 @@
/**
* @page authors Authors
- * @author The Rasterman (Carsten Haitzler) <raster@@rasterman.com>
+ * @author Carsten Haitzler <raster@@rasterman.com>
* @author Gustavo Sverzut Barbieri <barbieri@@profusion.mobi>
* @author Cedric Bail <cedric.bail@@free.fr>
* @author Vincent Torri <vtorri@@univ-evry.fr>
@@ -18,7 +18,7 @@
* @author Brett Nash <nash@@nash.id.au>
* @author Bruno Dilly <bdilly@@profusion.mobi>
* @author Rafael Fonseca <rfonseca@@profusion.mobi>
- * @author Hermet (Chuneon Park) <hermet@@hermet.pe.kr>
+ * @author Chuneon Park <hermet@@hermet.pe.kr>
* @author Woohyun Jung <wh0705.jung@@samsung.com>
* @author Jaehwan Kim <jae.hwan.kim@@samsung.com>
* @author Wonguk Jeong <wonguk.jeong@@samsung.com>
@@ -38,17 +38,18 @@
* @author Jeonghyun Yun (arosis) <jh0506.yun@@samsung.com>
* @author Tom Hacohen <tom@@stosb.com>
* @author Aharon Hillel <a.hillel@@samsung.com>
+ * @author Jonathan Atton (Watchwolf) <jonathan.atton@@gmail.com>
* @author Shinwoo Kim <kimcinoo@@gmail.com>
* @author Govindaraju SM <govi.sm@@samsung.com> <govism@@gmail.com>
* @author Prince Kumar Dubey <prince.dubey@@samsung.com> <prince.dubey@@gmail.com>
* @author Sung W. Park <sungwoo@@gmail.com>
* @author Thierry el Borgi <thierry@@substantiel.fr>
* @author Shilpa Singh <shilpa.singh@@samsung.com> <shilpasingh.o@@gmail.com>
- * @author Chanwook Jung <joey.jung@@samsung.com> <jchanwook@gmail.com>
+ * @author Chanwook Jung <joey.jung@@samsung.com>
* @author Hyoyoung Chang <hyoyoung.chang@@samsung.com>
* @author Guillaume "Kuri" Friloux <guillaume.friloux@@asp64.com>
* @author Kim Yunhan <spbear@@gmail.com>
- * @author Tae-Hwan Kim (Bluezery) <the81.kim@samsung.com> <ohpowel@@gmail.com>
+ * @author Bluezery <ohpowel@@gmail.com>
* @author Nicolas Aguirre <aguirre.nicolas@@gmail.com>
* @author Sanjeev BA <iamsanjeev@@gmail.com>
* @author Hyunsil Park <hyunsil.park@@samsung.com>
@@ -57,7 +58,7 @@
* @author Doyoun Kang <doyoun.kang@@samsung.com>
* @author M.V.K. Sumanth <sumanth.m@@samsung.com> <mvksumanth@@gmail.com>
* @author Jérôme Pinot <ngc891@@gmail.com>
- * @author Davide Andreoli <dave@@gurumeditation.it>
+ * @author Davide Andreoli (davemds) <dave@@gurumeditation.it>
* @author Michal Pakula vel Rutka <m.pakula@@samsung.com>
* @author Thiep Ha <thiep.ha@@samsung.com>
* @author Artem Popov <artem.popov@@samsung.com>
@@ -67,99 +68,6 @@
* @author Flavio Ceolin <flavio.ceolin@@profusion.mobi>
* @author Igor Murzov <e-mail@@date.by>
* @author Jiyoun Park <jy0703.park@@samsung.com>
- * @author KoziarekBeata <b.koziarek@@samsung.com>
- * @author Daniel Zaoui <daniel.zaoui@@samsung.com>
- * @author Yakov Goldberg <yakov.g@@samsung.com>
- * @author Murilo Belluzzo <murilo.belluzzo@@profusion.mobi>
- * @author Ricardo de Almeida Gonzaga <ricardo@@profusion.mobi>
- * @author Gwanglim Lee <gl77.lee@@samsung.com> <gwanglim@@gmail.com>
- * @author JaeHyun Cho <jae_hyun_cho@@naver.com>
- * @author Bora Hwang <bora1.hwang@@samsung.com>
- * @author Jiyoung Choi <jychoi7.choi@@samsung.com>
- * @author Arvind R <arvino55@@gmail.com>
- * @author Paulo Cavalcanti <paulo.cavalcanti@@linux.intel.com>
- * @author Stefan Schmidt <stefan@@datenfreihafen.org>
- * @author Ryuan Choi (ryuan) <ryuan.choi@@samsung.com> <ryuan.choi@@gmail.com>
- * @author Hosang Kim <hosang12.kim@@samsung.com>
- * @author Youngbok Shin <youngb.shin@@samsung.com>
- * @author Niraj Kumar <niraj.kr@@samsung.com> <niraj.kumar.ait@@gmail.com>
- * @author Amitesh Singh <singh.amitesh@@gmail.com>
- * @author Abhinandan Aryadipta <a.aryadipta@@samsung.com>
- * @author Sanghyeon Lee <sh10233.lee@@samsung.com>
- * @author Anil Kumar Nahak <ak.nahak@@samsung.com>
- * @author Michal Jagiello <m.jagiello@@samsung.com>
- * @author Chinmaya Panigrahi <c.panigrahi@@samsung.com>
- * @author Mohammad Irfan <mohammad.i@@samsung.com>
- * @author ajwillia.ms (Andrew Williams) <andy@@andywilliams.me>
- * @author Iván Briano <sachieru@@gmail.com>
- * @author Jonas M. Gastal <jgastal@@profusion.mobi>
- * @author Rafael Antognolli <antognolli@@gmail.com>
- * @author Mike McCormack <mike@@atratus.org>
- * @author Massimo Maiurana <maiurana@@gmail.com>
- * @author Henrique Dante de Almeida <hdante@@profusion.mobi>
- * @author Lucas De Marchi <lucas.demarchi@@profusion.mobi>
- * @author Boris Faure <billiob@@gmail.com>
- * @author Sebastian Dransfeld <sd@@tango.flipp.net>
- * @author Daniel Willmann <daniel@@totalueberwachung.de>
- * @author maxerba <maiurana@@gmail.com>
- * @author Youness Alaoui <kakaroto@@kakaroto.homelinux.net>
- * @author Rui Seabra <rms@@1407.org>
- * @author Andreas Volz <linux@@brachttal.net>
- * @author Jaeun Choi <jaeun12.choi@@samsung.com>
- * @author Doug Newgard <scimmia22@@outlook.com>
- * @author José Roberto de Souza <zehortigoza@@profusion.mobi>
- * @author Luis Felipe Strano Moraes <lfelipe@@profusion.mobi>
- * @author Thiago Thamada <tiba@@profusion.mobi>
- * @author U. Artie Eoff <ullysses.a.eoff@@intel.com>
- * @author Daniel Hirt <daniel.hirt@@samsung.com>
- * @author Eduardo Lima <eduardo.lima@@intel.com>
- * @author Leif Middelschulte <leif.middelschulte@@gmail.com>
- * @author Lukasz Stanislawski <l.stanislaws@@samsung.com>
- * @author Stephen Houston <smhouston88@@gmail.com>
- * @author Andrii Kroitor <an.kroitor@@samsung.com>
- * @author Joao Paulo Fernandes Ventura <ventura@@profusion.mobi>
- * @author Pau Espin Pedrol <pespin.shar@@gmail.com>
- * @author Jérémy Zurcher <jeremy@@asynk.ch>
- * @author Kai Huuhko <kai.huuhko@@gmail.com>
- * @author Leandro Dorileo <dorileo@@profusion.mobi>
- * @author Michael Jennings <mej@@kainx.org>
- * @author Myungjae Lee <mjae.lee@@samsung.com>
- * @author Tristan Lelong <tristan.lelong@@blunderer.org>
- * @author Yossi Kantor <yossi.kantor@@samsung.com>
- * @author cabelitos <guilherme.iscaro@@intel.com>
- * @author Alex Wu <zhiwen.wu@@linux.intel.com>
- * @author Alex-P. Natsios <drakevr@@linuxteam.teilar.gr>
- * @author Aron Xu <happyaron.xu@@gmail.com>
- * @author Chidambar Zinnoury <illogict@@online.fr>
- * @author Christophe Sadoine <chris@@indefini.org>
- * @author Daniel Vieira Franzolin <daniel@@profusion.mobi>
- * @author Daniele Ricci <daniele.athome@@gmail.com>
- * @author David Walter Seikel <onefang@@gmail.com>
- * @author Dennis Schridde <devurandom@@gmx.net>
- * @author Hannes Janetzek <hannes.janetzek@@gmail.com>
- * @author Lionel Landwerlin <llandwerlin@@gmail.com>
- * @author Mariusz Bialonczyk <manio@@skyboo.net>
- * @author Martin Jansa <Martin.Jansa@@gmail.com>
- * @author Michael Lauer <mlauer@@vanille-media.de>
- * @author Mike Frysinger <vapier@@gentoo.org>
- * @author Rodrigo Cesar Lopes Belem <rclbelem@@gmail.com>
- * @author Seong-ho Cho <darkcircle.0426@@gmail.com>
- * @author Seunghun Lee <shiin.lee@@samsung.com>
- * @author Thanatermesis <thanatermesis.ecvs@@gmail.com>
- * @author Viacheslav Lvov <v.lvov@@samsung.com>
- * @author Deasung Kim <deasung.kim@@samsung.com>
- * @author Jeonghoon Park <jh1979.park@@samsung.com>
- * @author Prashant <pb.ingale@@samsung.com>
- * @author suxia li <suxia.li@@samsung.com>
- * @author yan.wang <yan.wang@@linux.intel.com>
- * @author Anand <anand.km@@samsung.com>
- * @author Subhransu Sekhar Mohanty <sub.mohanty@@samsung.com>
- * @author Rajesh P S <rajeshps@@samsung.com>
- * @author Srivardhan Hebbar <sri.hebbar@@samsung.com>
- * @author Savio Sena <savio@@expertisesolutions.com.br>
- * @author Jae Yong Hwang <j_yong.hwang@@samsung.com>
- * @author Kabeer Khan <kabeer.khan@@samsung.com>
- * @author yinsc <shouchen.yin@@samsung.com>
*
* Please contact <enlightenment-devel@lists.sourceforge.net> to get in
* contact with the developers and maintainers.
diff --git a/src/lib/elm_bg.h b/src/lib/elm_bg.h
index 4fc0fbb58..bed2b53cc 100644
--- a/src/lib/elm_bg.h
+++ b/src/lib/elm_bg.h
@@ -1,41 +1,194 @@
/**
* @defgroup Bg Background
- * @ingroup Elementary
+ * @ingroup elm_widget_group
*
* @image html bg_inheritance_tree.png
* @image latex bg_inheritance_tree.eps
*
- * @image html img/widget/bg/preview-00.png
- * @image latex img/widget/bg/preview-00.eps
- *
- * @brief Background object, used for setting a solid color, image or
+ * @brief Background object, used for setting a solid color, image, or
* Edje group as a background to a window or any container object.
*
* The bg (background) widget is used for setting (solid) background
* decorations to a window (unless it has transparency enabled) or to
* any container object. It works just like an image, but has some
* properties useful to a background, like setting it to tiled,
- * centered, scaled or stretched.
+ * centered, scaled, or stretched.
*
* This widget inherits from the @ref Layout one, so that all the
* functions acting on it also work for background objects.
*
- * Default content parts of the bg widget that you can use for are:
- * @li @c "overlay" - overlay of the bg
+ * The default content parts of the bg widget that you can use are:
+ * @li @c "overlay" - Overlay of the bg.
+ *
+ * @{
+ */
+
+/**
+ * @brief Enumeration of identifiers on how a background widget is to display its image,
+ * if it is set to use an image file.
+ *
+ * @see elm_bg_option_set()
+ * @see elm_bg_option_get()
+ */
+typedef enum
+{
+ ELM_BG_OPTION_CENTER, /**< Center the background image */
+ ELM_BG_OPTION_SCALE, /**< Scale the background image, retaining the aspect ratio */
+ ELM_BG_OPTION_STRETCH, /**< Stretch the background image to fill the widget's area */
+ ELM_BG_OPTION_TILE, /**< Tile background image at its original size */
+ ELM_BG_OPTION_LAST /**< Sentinel value, also used to indicate errors */
+} Elm_Bg_Option;
+
+/**
+ * @brief Adds a new background to the parent.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] parent The parent object
+ * @return The new object, otherwise @c NULL if it cannot be created
+ *
+ * @ingroup Bg
+ */
+EAPI Evas_Object *elm_bg_add(Evas_Object *parent);
+
+/**
+ * @brief Sets the file (image or edje collection) to give life for the
+ * background.
+ *
+ * @details This sets the image file used in the background object. If the
+ * image comes from an Edje group, it is stretched to completely
+ * fill the background object. If it comes from a traditional image file, it
+ * by default is centered in this widget's area (thus retaining
+ * its aspect), what could lead to some parts being not visible. You
+ * may change the mode of exhibition for a real image file with
+ * elm_bg_option_set().
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks Once the image of @a obj is set, a previously set one is
+ * deleted, even if @a file is @c NULL.
+ *
+ * @remarks This only affects the content of one of the background's
+ * swallow spots, namely @c "elm.swallow.background". If you want to
+ * achieve the @c Layout's file setting behavior, you have to call
+ * that method on this object.
+ *
+ * @param[in] obj The background object handle
+ * @param[in] file The file path
+ * @param[in] group The optional key (group in Edje) within the file
+ * @return @c EINA_TRUE on success, otherwise @c EINA_FALSE
+ */
+EAPI Eina_Bool elm_bg_file_set(Evas_Object *obj, const char *file, const char *group);
+
+/**
+ * @brief Gets the file (image or edje collection) set on a given background
+ * widget.
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks Use @c NULL pointers on the file components you're not
+ * interested in, they are ignored by the function.
+ *
+ * @param[in] obj The background object handle
+ * @param[out] file The location to store the requested file's path
+ * @param[out] group The group to store the optional key within @a file, @b if
+ * it's an Edje file
+ */
+EAPI void elm_bg_file_get(const Evas_Object *obj, const char **file, const char **group);
+
+/**
+ * @brief Sets the mode of display for a given background widget's image
+ *
+ * @details This sets how the background widget displays its image. This
+ * only works if the elm_bg_file_set() was previously called with
+ * an image file on @a obj. The image can be display tiled, scaled,
+ * centered or stretched.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The background object handle
+ * @param[in] option The desired background option (see #Elm_Bg_Option)
+ *
+ * @see elm_bg_option_get()
+ */
+EAPI void elm_bg_option_set(Evas_Object *obj, Elm_Bg_Option option);
+
+/**
+ * @brief Gets the mode of display for a given background widget's image.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The background object handle
+ * @return The image displaying mode in use for @a obj or #ELM_BG_OPTION_LAST,
+ * on errors
+ *
+ * @see elm_bg_option_set()
+ */
+EAPI Elm_Bg_Option elm_bg_option_get(const Evas_Object *obj);
+
+/**
+ * @brief Sets the color on a given background widget.
+ *
+ * @details This sets the color used for the background rectangle, in RGB
+ * format. Each color component's range is from @c 0 to @c 255.
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks You probably only want to use this function if you haven't
+ * previously called elm_bg_file_set(), so that you just want a solid
+ * color background.
+ *
+ * @param[in] obj The background object handle
+ * @param[in] r The red color component's value
+ * @param[in] g The green color component's value
+ * @param[in] b The blue color component's value
+ *
+ * @see elm_bg_color_get()
+ */
+EAPI void elm_bg_color_set(Evas_Object *obj, int r, int g, int b);
+
+/**
+ * @brief Gets the color set on a given background widget.
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks Use @c NULL pointers on the file components you're not
+ * interested in, they are ignored by the function.
+ *
+ * @param[in] obj The background object handle
+ * @param[out] r The location to store the red color component's value
+ * @param[out] g The location to store the green color component's value
+ * @param[out] b The location to store the blue color component's value
+ *
+ * @see elm_bg_color_get()
+ */
+EAPI void elm_bg_color_get(const Evas_Object *obj, int *r, int *g, int *b);
+
+/**
+ * @brief Sets the size of the pixmap representation of the image set on a
+ * given background widget.
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks This function just makes sense if an image file is set on
+ * @a obj, with elm_bg_file_set().
+ *
+ * @remarks This function sets a new size for pixmap representation of the
+ * given bg image. It allows for the image to be loaded in advance in the
+ * specified size, reducing the memory usage and load time (for
+ * example, when loading a big image file with its load size set to a
+ * smaller size)
+ *
+ * @remarks This is just a hint for the underlying system. The real size
+ * of the pixmap may differ depending on the type of image being
+ * loaded, being bigger than requested.
*
- * Here is some sample code using it:
- * @li @ref bg_01_example_page
- * @li @ref bg_02_example_page
- * @li @ref bg_03_example_page
+ * @param[in] obj The background object handle
+ * @param[in] w The new width of the image pixmap representation
+ * @param[in] h The new height of the image pixmap representation
*/
+EAPI void elm_bg_load_size_set(Evas_Object *obj, Evas_Coord w, Evas_Coord h);
-#include "elm_bg_common.h"
-#ifdef EFL_EO_API_SUPPORT
-#include "elm_bg_eo.h"
-#endif
-#ifndef EFL_NOLEGACY_API_SUPPORT
-#include "elm_bg_legacy.h"
-#endif
/**
* @}
*/
diff --git a/src/lib/elm_box.h b/src/lib/elm_box.h
index 3f47987b7..47c42f759 100644
--- a/src/lib/elm_box.h
+++ b/src/lib/elm_box.h
@@ -1,84 +1,503 @@
/**
* @defgroup Box Box
- * @ingroup Elementary
+ * @ingroup elm_container_group
*
* @image html box_inheritance_tree.png
* @image latex box_inheritance_tree.eps
*
- * @image html img/widget/box/preview-00.png
- * @image latex img/widget/box/preview-00.eps width=\textwidth
- *
* @image html img/box.png
- * @image latex img/box.eps width=\textwidth
+ * @image latex img/box.eps "box" width=\textwidth
*
- * A box arranges objects in a linear fashion, governed by a layout function
- * that defines the details of this arrangement.
+ * @brief A box arranges objects in a linear fashion, governed by a layout
+ * function that defines the details of this arrangement.
*
- * By default, the box will use an internal function to set the layout to
+ * By default, the box uses an internal function to set the layout to
* a single row, either vertical or horizontal. This layout is affected
* by a number of parameters, such as the homogeneous flag set by
* elm_box_homogeneous_set(), the values given by elm_box_padding_set() and
- * elm_box_align_set() and the hints set to each object in the box.
+ * elm_box_align_set(), and the hints set to each object in the box.
*
* For this default layout, it's possible to change the orientation with
- * elm_box_horizontal_set(). The box will start in the vertical orientation,
+ * elm_box_horizontal_set(). The box starts in the vertical orientation,
* placing its elements ordered from top to bottom. When horizontal is set,
- * the order will go from left to right. If the box is set to be
- * homogeneous, every object in it will be assigned the same space, that
+ * the order goes from left to right. If the box is set to be
+ * homogeneous, every object in it is assigned the same space, which is that
* of the largest object. Padding can be used to set some spacing between
* the cell given to each object. The alignment of the box, set with
* elm_box_align_set(), determines how the bounding box of all the elements
- * will be placed within the space given to the box widget itself.
+ * is placed within the space given to the box widget itself.
*
* The size hints of each object also affect how they are placed and sized
- * within the box. evas_object_size_hint_min_set() will give the minimum
- * size the object can have, and the box will use it as the basis for all
+ * within the box. evas_object_size_hint_min_set() gives the minimum
+ * size that the object can have, and the box uses it as the basis for all
* latter calculations. Elementary widgets set their own minimum size as
* needed, so there's rarely any need to use it manually.
*
- * evas_object_size_hint_weight_set(), when not in homogeneous mode, is
- * used to tell whether the object will be allocated the minimum size it
+ * evas_object_size_hint_weight_set(), when not in the homogeneous mode, is
+ * used to tell whether the object is allocated the minimum size it
* needs or if the space given to it should be expanded. It's important
* to realize that expanding the size given to the object is not the same
* thing as resizing the object. It could very well end being a small
* widget floating in a much larger empty space. If not set, the weight
- * for objects will normally be 0.0 for both axis, meaning the widget will
- * not be expanded. To take as much space possible, set the weight to
- * EVAS_HINT_EXPAND (defined to 1.0) for the desired axis to expand.
- *
- * Besides how much space each object is allocated, it's possible to control
- * how the widget will be placed within that space using
- * evas_object_size_hint_align_set(). By default, this value will be 0.5
- * for both axis, meaning the object will be centered, but any value from
- * 0.0 (left or top, for the @c x and @c y axis, respectively) to 1.0
+ * for objects normally is @c 0.0 for both axis, meaning the widget is
+ * not expanded. To take as much space as possible, set the weight to
+ * EVAS_HINT_EXPAND (defined to @c 1.0) for the desired axis to expand.
+ *
+ * Besides how much space is allocated for each object, it's possible to control
+ * how the widget is placed within that space using
+ * evas_object_size_hint_align_set(). By default, this value is @c 0.5
+ * for both axes, meaning the object is centered, but any value from
+ * @c 0.0 (left or top, for the @c x and @c y axis, respectively) to @c 1.0
* (right or bottom) can be used. The special value EVAS_HINT_FILL, which
- * is -1.0, means the object will be resized to fill the entire space it
- * was allocated.
+ * is @c -1.0, means the object is resized to fill the entire space it
+ * is allocated.
*
* In addition, customized functions to define the layout can be set, which
* allow the application developer to organize the objects within the box
- * in any number of ways.
+ * in a number of ways.
*
* The special elm_box_layout_transition() function can be used
* to switch from one layout to another, animating the motion of the
* children of the box.
*
- * @note Objects should not be added to box objects using _add() calls.
- *
- * Some examples on how to use boxes follow:
- * @li @ref box_example_01
- * @li @ref box_example_02
+ * @remarks Objects should not be added to box objects using _add() calls.
*
* @{
*/
-#include "elm_box_common.h"
-#ifdef EFL_EO_API_SUPPORT
-#include "elm_box_eo.h"
-#endif
-#ifndef EFL_NOLEGACY_API_SUPPORT
-#include "elm_box_legacy.h"
-#endif
+/**
+ * @typedef Elm_Box_Transition
+ *
+ * @brief The structure type which is an opaque handler containing the parameters to perform an animated
+ * transition of the layout that the box uses.
+ *
+ * @see elm_box_transition_new()
+ * @see elm_box_layout_set()
+ * @see elm_box_layout_transition()
+ */
+typedef struct _Elm_Box_Transition Elm_Box_Transition;
+
+/**
+ * @brief Adds a new box to the parent.
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks By default, the box is in the vertical mode and is non-homogeneous.
+ *
+ * @param[in] parent The parent object
+ * @return The new object, otherwise @c NULL if it cannot be created
+ */
+EAPI Evas_Object *elm_box_add(Evas_Object *parent);
+
+/**
+ * @brief Sets the horizontal orientation.
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks By default, the box object arranges their contents vertically from top to
+ * bottom.
+ *
+ * @remarks By calling this function with @a horizontal as @c EINA_TRUE, the box
+ * becomes horizontal, arranging contents from left to right.
+ *
+ * @remarks This flag is ignored if a custom layout function is set.
+ *
+ * @param[in] obj The box object
+ * @param[in] horizontal The horizontal flag (@c EINA_TRUE = horizontal,
+ * @c EINA_FALSE = vertical)
+ */
+EAPI void elm_box_horizontal_set(Evas_Object *obj, Eina_Bool horizontal);
+
+/**
+ * @brief Gets the horizontal orientation.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The box object
+ * @return @c EINA_TRUE if the box is set to the horizontal mode, otherwise @c EINA_FALSE
+ */
+EAPI Eina_Bool elm_box_horizontal_get(const Evas_Object *obj);
+
+/**
+ * @brief Sets the box to arrange its children homogeneously.
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks If enabled, homogeneous layout makes all items of the same size, according
+ * to the size of the largest of its children.
+ *
+ * @remarks This flag is ignored if a custom layout function is set.
+ *
+ * @param[in] obj The box object
+ * @param[in] homogeneous The homogeneous flag
+ */
+EAPI void elm_box_homogeneous_set(Evas_Object *obj, Eina_Bool homogeneous);
+
+/**
+ * @brief Gets whether the box is using the homogeneous mode.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The box object
+ * @return @c EINA_TRUE if it's homogeneous, otherwise @c EINA_FALSE
+ */
+EAPI Eina_Bool elm_box_homogeneous_get(const Evas_Object *obj);
+
+/**
+ * @brief Adds an object to the beginning of the pack list.
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks This packs @a subobj into the box @a obj, placing it first in the list of
+ * children objects. The actual position that the object gets on screen
+ * depends on the layout used. If no custom layout is set, it is at
+ * the top or left, depending on whether the box is vertical or horizontal,
+ * respectively.
+ *
+ * @param[in] obj The box object
+ * @param[in] subobj The object to add to the box
+ *
+ * @see elm_box_pack_end()
+ * @see elm_box_pack_before()
+ * @see elm_box_pack_after()
+ * @see elm_box_unpack()
+ * @see elm_box_unpack_all()
+ * @see elm_box_clear()
+ */
+EAPI void elm_box_pack_start(Evas_Object *obj, Evas_Object *subobj);
+
+/**
+ * @brief Adds an object at the end of the pack list.
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks This packs @a subobj into the box @a obj, placing it last in the list of
+ * children objects. The actual position that the object gets on screen
+ * depends on the layout used. If no custom layout is set, it is at
+ * the bottom or right, depending on whether the box is vertical or horizontal,
+ * respectively.
+ *
+ * @param obj The box object
+ * @param subobj The object to add to the box
+ *
+ * @see elm_box_pack_start()
+ * @see elm_box_pack_before()
+ * @see elm_box_pack_after()
+ * @see elm_box_unpack()
+ * @see elm_box_unpack_all()
+ * @see elm_box_clear()
+ */
+EAPI void elm_box_pack_end(Evas_Object *obj, Evas_Object *subobj);
+
+/**
+ * @brief Adds an object to the box before the indicated object.
+ *
+ * @details This adds @a subobj to the box indicated before the object
+ * indicated with @a before. If @a before is not already in the box, the results
+ * are undefined. Before means either to the left of the indicated object or
+ * above it depending on the orientation.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The box object
+ * @param[in] subobj The object to add to the box
+ * @param[in] before The object before which to add it
+ *
+ * @see elm_box_pack_start()
+ * @see elm_box_pack_end()
+ * @see elm_box_pack_after()
+ * @see elm_box_unpack()
+ * @see elm_box_unpack_all()
+ * @see elm_box_clear()
+ */
+EAPI void elm_box_pack_before(Evas_Object *obj, Evas_Object *subobj, Evas_Object *before);
+
+/**
+ * @brief Adds an object to the box after the indicated object.
+ *
+ * @details This adds @a subobj to the box indicated after the object
+ * indicated with @a after. If @a after is not already in the box, the results
+ * are undefined. After means either to the right of the indicated object or
+ * below it depending on the orientation.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The box object
+ * @param[in] subobj The object to add to the box
+ * @param[in] after The object after which to add it
+ *
+ * @see elm_box_pack_start()
+ * @see elm_box_pack_end()
+ * @see elm_box_pack_before()
+ * @see elm_box_unpack()
+ * @see elm_box_unpack_all()
+ * @see elm_box_clear()
+ */
+EAPI void elm_box_pack_after(Evas_Object *obj, Evas_Object *subobj, Evas_Object *after);
+
+/**
+ * @brief Clears the box of all its children.
+ *
+ * @details This removes all the elements contained by the box, deleting the respective
+ * objects.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The box object
+ *
+ * @see elm_box_unpack()
+ * @see elm_box_unpack_all()
+ */
+EAPI void elm_box_clear(Evas_Object *obj);
+
+/**
+ * @brief Unpacks a box item.
+ *
+ * @details This removes the object given by @a subobj from the box @a obj without
+ * deleting it.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The box object
+ * @param[in] subobj The object to unpack
+ *
+ * @see elm_box_unpack_all()
+ * @see elm_box_clear()
+ */
+EAPI void elm_box_unpack(Evas_Object *obj, Evas_Object *subobj);
+
+/**
+ * @brief Removes all the items from the box, without deleting them.
+ *
+ * @details This clears the box from all its children, but doesn't delete the respective objects.
+ * If no other references of the box children exist, the objects is never
+ * deleted, and thus the application leaks the memory. Make sure
+ * when using this function that you hold a reference to all the objects
+ * in the box @a obj.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The box object
+ *
+ * @see elm_box_clear()
+ * @see elm_box_unpack()
+ */
+EAPI void elm_box_unpack_all(Evas_Object *obj);
+
+/**
+ * @brief Retrieves a list of the objects packed into the box.
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks This returns a new @c Eina_List with a pointer to @c Evas_Object in its nodes.
+ * The order of the list corresponds to the packing order that the box uses.
+ *
+ * @remarks You must free this list with eina_list_free() once you are done with it.
+ *
+ * @param[in] obj The box object
+ * @return The children objects list
+ */
+EAPI Eina_List *elm_box_children_get(const Evas_Object *obj);
+
+/**
+ * @brief Sets the space (padding) between the box's elements.
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks This gives the extra space in pixels that is added between a box child and its
+ * neighbors after its containing cell has been calculated. This padding
+ * is set for all elements in the box, besides any possible padding that
+ * individual elements may have through their size hints.
+ *
+ * @param[in] obj The box object
+ * @param[in] horizontal The horizontal space between elements
+ * @param[in] vertical The vertical space between elements
+ */
+EAPI void elm_box_padding_set(Evas_Object *obj, Evas_Coord horizontal, Evas_Coord vertical);
+
+/**
+ * @brief Gets the space (padding) between the box's elements.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The box object
+ * @param[out] horizontal The horizontal space between elements
+ * @param[out] vertical The vertical space between elements
+ *
+ * @see elm_box_padding_set()
+ */
+EAPI void elm_box_padding_get(const Evas_Object *obj, Evas_Coord *horizontal, Evas_Coord *vertical);
+
+/**
+ * @brief Sets the alignment of the whole bounding box of contents.
+ *
+ * @details This sets how the bounding box containing all the elements of the box, after
+ * their sizes and position has been calculated, is aligned within
+ * the space given for the whole box widget.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The box object
+ * @param[in] horizontal The horizontal alignment of elements
+ * @param[in] vertical The vertical alignment of elements
+ */
+EAPI void elm_box_align_set(Evas_Object *obj, double horizontal, double vertical);
+
+/**
+ * @brief Gets the alignment of the whole bounding box of contents.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The box object
+ * @param[out] horizontal The horizontal alignment of elements
+ * @param[out] vertical The vertical alignment of elements
+ *
+ * @see elm_box_align_set()
+ */
+EAPI void elm_box_align_get(const Evas_Object *obj, double *horizontal, double *vertical);
+
+/**
+ * @brief Forces the box to recalculate its children packing.
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks If any child is added or removed, the box does not calculate the
+ * values immediately rather it leaves it to the next main loop
+ * iteration. While this is great as it would save lots of
+ * recalculation, whenever you need to get the position of a recently
+ * added item you must force recalculation before doing so.
+ *
+ * @param[in] obj The box object
+ */
+EAPI void elm_box_recalculate(Evas_Object *obj);
+
+/**
+ * @brief Sets the layout defining function to be used by the box.
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks Whenever anything changes that requires the box in @a obj to recalculate
+ * the size and position of its elements, the function @a cb is called
+ * to determine what the layout of the children is.
+ *
+ * @remarks Once a custom function is set, everything about the children layout
+ * is defined by it. The flags set by elm_box_horizontal_set() and
+ * elm_box_homogeneous_set() no longer have any meaning, and the values
+ * given by elm_box_padding_set() and elm_box_align_set() are up to the
+ * layout function to decide whether they are used and how. These last two
+ * are found in the @a priv parameter, of type @c Evas_Object_Box_Data,
+ * passed to @a cb. The @c Evas_Object that the function receives is not the
+ * Elementary widget, but the internal Evas Box it uses, so none of the
+ * functions described here can be used on it.
+ *
+ * @remarks Any of the layout functions in @c Evas can be used here, as well as the
+ * special elm_box_layout_transition().
+ *
+ * @remarks The final @a data argument received by @a cb is the same @a data passed
+ * here, and the @a free_data function is called to free it
+ * whenever the box is destroyed or another layout function is set.
+ *
+ * @remarks Setting @a cb to @c NULL reverts back to the default layout function.
+ *
+ * @param[in] obj The box object
+ * @param[in] cb The callback function used for the layout
+ * @param[in] data The data that is passed to the layout function
+ * @param[in] free_data The function called to free @a data
+ *
+ * @see elm_box_layout_transition()
+ */
+EAPI void elm_box_layout_set(Evas_Object *obj, Evas_Object_Box_Layout cb, const void *data, Ecore_Cb free_data);
+
+/**
+ * @brief Special layout function that animates the transition from one layout to another.
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks Normally, when switching the layout function for a box, this
+ * reflects immediately on screen on the next render, but it's also
+ * possible to do this through an animated transition.
+ *
+ * @remarks This is done by creating an ::Elm_Box_Transition and setting the box
+ * layout to this function.
+ *
+ * For example:
+ * @code
+ * Elm_Box_Transition *t = elm_box_transition_new(1.0,
+ * evas_object_box_layout_vertical, // start
+ * NULL, // data for initial layout
+ * NULL, // free function for initial data
+ * evas_object_box_layout_horizontal, // end
+ * NULL, // data for final layout
+ * NULL, // free function for final data
+ * anim_end, // will be called when animation ends
+ * NULL); // data for anim_end function\
+ * elm_box_layout_set(box, elm_box_layout_transition, t,
+ * elm_box_transition_free);
+ * @endcode
+ *
+ * @remarks This function can only be used with elm_box_layout_set(). Calling
+ * it directly does not have the expected results.
+ *
+ * @param[in] obj The box object
+ * @param[in] priv The smart data of the @p obj
+ * @param[in] data The data pointer passed
+ *
+ * @see elm_box_transition_new
+ * @see elm_box_transition_free
+ * @see elm_box_layout_set
+ */
+EAPI void elm_box_layout_transition(Evas_Object *obj, Evas_Object_Box_Data *priv, void *data);
+
+/**
+ * @brief Creates a new ::Elm_Box_Transition to animate the switch of the layouts.
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks If you want to animate the change from one layout to another, you need
+ * to set the layout function of the box to elm_box_layout_transition(),
+ * passing user data to it as an instance of ::Elm_Box_Transition with the
+ * necessary information to perform this animation. The free function to
+ * set the layout is elm_box_transition_free().
+ *
+ * @remarks The parameters to create an ::Elm_Box_Transition sum up to how long
+ * it is, in seconds, a layout function to describe the initial point,
+ * another for the final position of the children and one function to be
+ * called when the whole animation ends. This last function is useful to
+ * set the definitive layout for the box, usually it is same as the end
+ * layout for the animation, but could be used to start another transition.
+ *
+ * @param[in] duration The duration of the transition in seconds
+ * @param[in] start_layout The layout function that is used to start the animation
+ * @param[in] start_layout_data The data to be passed to the @a start_layout function
+ * @param[in] start_layout_free_data The function to free @a start_layout_data
+ * @param[in] end_layout The layout function that is used to end the animation
+ * @param[in] end_layout_data The data parameter passed to @a end_layout
+ * @param end_layout_free_data The data to be passed to the @a end_layout function
+ * @param end_layout_free_data The function to free @a end_layout_data
+ * @param[in] transition_end_cb The callback function called when the animation ends
+ * @param[in] transition_end_data The data to be passed to @a transition_end_cb
+ * @return An instance of ::Elm_Box_Transition
+ *
+ * @see elm_box_transition_new
+ * @see elm_box_layout_transition
+ */
+EAPI Elm_Box_Transition *elm_box_transition_new(const double duration, Evas_Object_Box_Layout start_layout, void *start_layout_data, Ecore_Cb start_layout_free_data, Evas_Object_Box_Layout end_layout, void *end_layout_data, Ecore_Cb end_layout_free_data, Ecore_Cb transition_end_cb, void *transition_end_data);
+
+/**
+ * @brief Frees an Elm_Box_Transition instance created with elm_box_transition_new().
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks This function is mostly useful as the @a free_data parameter in
+ * elm_box_layout_set() with elm_box_layout_transition().
+ *
+ * @param[in] data The Elm_Box_Transition instance to be freed
+ *
+ * @see elm_box_transition_new
+ * @see elm_box_layout_transition
+ */
+EAPI void elm_box_transition_free(void *data);
+
/**
* @}
*/
diff --git a/src/lib/elm_bubble.h b/src/lib/elm_bubble.h
index 853cf7b8b..8eaf37ebc 100644
--- a/src/lib/elm_bubble.h
+++ b/src/lib/elm_bubble.h
@@ -1,4 +1,5 @@
/**
+ * @internal
* @defgroup Bubble Bubble
* @ingroup Elementary
*
@@ -13,17 +14,17 @@
* @image latex img/widget/bubble/preview-02.eps
*
* @brief The Bubble is a widget to show text similar to how speech is
- * represented in comics.
+ * represented in comics.
*
* The bubble widget contains 5 important visual elements:
* @li The frame is a rectangle with rounded edjes and an "arrow".
- * @li The @p icon is an image to which the frame's arrow points to.
- * @li The @p label is a text which appears to the right of the icon if the
+ * @li The @a icon is an image to which the frame's arrow points to.
+ * @li The @a label is a text which appears to the right of the icon if the
* corner is "top_left" or "bottom_left" and is right aligned to the frame
* otherwise.
- * @li The @p info is a text which appears to the right of the label. Info's
+ * @li The @a info is a text which appears to the right of the label. Info's
* font is of a lighter color than label.
- * @li The @p content is an evas object that is shown inside the frame.
+ * @li The @a content is an evas object that is shown inside the frame.
*
* The position of the arrow, icon, label and info depends on which corner is
* selected. The four available corners are:
@@ -36,18 +37,16 @@
* functions acting on it also work for bubble objects.
*
* This widget emits the following signals, besides the ones sent from
- * @ref Layout:
+ * @ref Layout :
* @li @c "clicked" - This is called when a user has clicked the bubble.
- * @li @c "focused" - When the bubble has received focus. (since 1.8)
- * @li @c "unfocused" - When the bubble has lost focus. (since 1.8)
*
* Default content parts of the bubble that you can use for are:
* @li "default" - A content of the bubble
* @li "icon" - An icon of the bubble
*
* Default text parts of the button widget that you can use for are:
- * @li "default" - A label of the bubble
- * @li "info" - An info of the bubble
+ * @li "default" - Label of the bubble
+ * @li "info" - info of the bubble
*
* Supported elm_object common APIs.
* @li @ref elm_object_part_text_set
@@ -56,18 +55,56 @@
* @li @ref elm_object_part_content_get
* @li @ref elm_object_part_content_unset
*
- * For an example of using a bubble see @ref bubble_01_example_page "this".
- *
* @{
*/
-#include "elm_bubble_common.h"
-#ifdef EFL_EO_API_SUPPORT
-#include "elm_bubble_eo.h"
-#endif
-#ifndef EFL_NOLEGACY_API_SUPPORT
-#include "elm_bubble_legacy.h"
-#endif
+/**
+ * @brief Defines the corner values for a bubble.
+ *
+ * @remarks The corner is used to determine where the arrow of the
+ * bubble points to.
+ */
+typedef enum
+{
+ ELM_BUBBLE_POS_INVALID = -1,
+ ELM_BUBBLE_POS_TOP_LEFT,
+ ELM_BUBBLE_POS_TOP_RIGHT,
+ ELM_BUBBLE_POS_BOTTOM_LEFT,
+ ELM_BUBBLE_POS_BOTTOM_RIGHT,
+} Elm_Bubble_Pos;
+
+/**
+ * @brief Adds a new bubble to the parent
+ *
+ * @details This function adds a text bubble to the given parent evas object
+ *
+ * @param[in] parent The parent object
+ * @return The new object, otherwise @c NULL if it cannot be created
+ */
+EAPI Evas_Object *elm_bubble_add(Evas_Object *parent);
+
+/**
+ * @brief Sets the corner of the bubble
+ *
+ * @details This function sets the corner of the bubble. The corner is used to
+ * determine where the arrow in the frame points to and where label, icon, and
+ * info are shown.
+ *
+ * @param[in] obj The bubble object
+ * @param[in] pos The given corner for the bubble
+ */
+EAPI void elm_bubble_pos_set(Evas_Object *obj, Elm_Bubble_Pos pos);
+
+/**
+ * @brief Gets the corner of the bubble.
+ *
+ * @details This function gets the selected corner of the bubble.
+ *
+ * @param[in] obj The bubble object
+ * @return The given corner for the bubble
+ */
+EAPI Elm_Bubble_Pos elm_bubble_pos_get(const Evas_Object *obj);
+
/**
* @}
*/
diff --git a/src/lib/elm_button.h b/src/lib/elm_button.h
index 72b6c749e..6b8a536f9 100644
--- a/src/lib/elm_button.h
+++ b/src/lib/elm_button.h
@@ -1,53 +1,46 @@
/**
* @defgroup Button Button
- * @ingroup Elementary
+ * @ingroup elm_widget_group
*
* @image html button_inheritance_tree.png
* @image latex button_inheritance_tree.eps
*
- * @image html img/widget/button/preview-00.png
- * @image latex img/widget/button/preview-00.eps
- * @image html img/widget/button/preview-01.png
- * @image latex img/widget/button/preview-01.eps
- * @image html img/widget/button/preview-02.png
- * @image latex img/widget/button/preview-02.eps
- *
- * This is a push-button. Press it and run some function. It can contain
- * a simple label and icon object and it also has an autorepeat feature.
+ * @brief This is a push-button. Press it and run some function. It can contain
+ * a simple label and icon object and it also has an autorepeat feature.
*
* This widget inherits from the @ref Layout one, so that all the
* functions acting on it also work for button objects.
*
* This widget emits the following signals, besides the ones sent from
- * @ref Layout:
- * @li "clicked": the user clicked the button (press/release).
- * @li "repeated": the user pressed the button without releasing it.
- * @li "pressed": button was pressed.
- * @li "unpressed": button was released after being pressed.
- * @li @c "focused" : When the button has received focus. (since 1.8)
- * @li @c "unfocused" : When the button has lost focus. (since 1.8)
- * In all cases, the @c event parameter of the callback will be
+ * @ref Layout :
+ * @li "clicked": The user clicked the button (press/release).
+ * @li "repeated": The user pressed the button without releasing it.
+ * @li "pressed": The button is pressed.
+ * @li "unpressed": The button is released after being pressed.
+ * In all cases, the @a event parameter of the callback is
* @c NULL.
*
* Also, defined in the default theme, the button has the following styles
* available:
- * @li default: a normal button.
+ * @li default: A normal button.
* @li anchor: Like default, but the button fades away when the mouse is not
* over it, leaving only the text or icon.
+ * @internal
* @li hoversel_vertical: Internally used by @ref Hoversel to give a
* continuous look across its options.
* @li hoversel_vertical_entry: Another internal for @ref Hoversel.
+ * @endinternal
* @li naviframe: Internally used by @ref Naviframe for its back button.
* @li colorselector: Internally used by @ref Colorselector
* for its left and right buttons.
*
- * Default content parts of the button widget that you can use for are:
- * @li "icon" - An icon of the button
+ * The default content parts of the button widget that you can use are:
+ * @li "icon" - An icon of the button.
*
- * Default text parts of the button widget that you can use for are:
- * @li "default" - A label of the button
+ * The default text parts of the button widget that you can use are:
+ * @li "default" - Label of the button.
*
- * Supported elm_object common APIs.
+ * Supported common elm_object APIs.
* @li @ref elm_object_part_text_set
* @li @ref elm_object_part_text_get
* @li @ref elm_object_part_content_set
@@ -57,22 +50,105 @@
* @li @ref elm_object_signal_callback_add
* @li @ref elm_object_signal_callback_del
*
- * Here is some sample code using it:
- * @li @ref button_example_00
- * @li @ref button_example_01
+ * @{
*/
/**
- * @addtogroup Button
- * @{
+ * @brief Adds a new button to the parent's canvas
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] parent The parent object
+ * @return The new object, otherwise @c NULL if it cannot be created
+ */
+EAPI Evas_Object *elm_button_add(Evas_Object *parent);
+
+/**
+ * @brief Turns on/off the autorepeat event generated when the button is kept pressed.
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks When off, no autorepeat is performed and buttons emit a normal @c clicked
+ * signal when they are clicked.
+ *
+ * @remarks When on, keeping a button pressed continuously emits a @c repeated
+ * signal until the button is released. The time it takes until it starts
+ * emitting the signal is given by
+ * elm_button_autorepeat_initial_timeout_set(), and the time between each
+ * new emission is given by elm_button_autorepeat_gap_timeout_set().
+ *
+ * @param[in] obj The button object
+ * @param[in] on The boolean value to turn on/off the event
+ */
+EAPI void elm_button_autorepeat_set(Evas_Object *obj, Eina_Bool on);
+
+/**
+ * @brief Gets whether the autorepeat feature is enabled.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The button object
+ * @return @c EINA_TRUE if autorepeat is on, otherwise @c EINA_FALSE
+ *
+ * @see elm_button_autorepeat_set()
+ */
+EAPI Eina_Bool elm_button_autorepeat_get(const Evas_Object *obj);
+
+/**
+ * @brief Sets the initial timeout before the autorepeat event is generated.
+ *
+ * @details This sets the timeout, in seconds, since the button is pressed until the
+ * first @c repeated signal is emitted. If @a t is @c 0.0 or less, there
+ * won't be any delay and the event is fired the moment the button is
+ * pressed.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The button object
+ * @param[in] t The timeout in seconds
+ *
+ * @see elm_button_autorepeat_set()
+ * @see elm_button_autorepeat_gap_timeout_set()
+ */
+EAPI void elm_button_autorepeat_initial_timeout_set(Evas_Object *obj, double t);
+
+/**
+ * @brief Gets the initial timeout before the autorepeat event is generated.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The button object
+ * @return The timeout in seconds
+ *
+ * @see elm_button_autorepeat_initial_timeout_set()
+ */
+EAPI double elm_button_autorepeat_initial_timeout_get(const Evas_Object *obj);
+
+/**
+ * @brief Sets the interval between each generated autorepeat event.
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks After the first @c repeated event is fired, all subsequent ones
+ * follow after a delay of @a t seconds for each.
+ *
+ * @param[in] obj The button object
+ * @param[in] t The interval in seconds
+ *
+ * @see elm_button_autorepeat_initial_timeout_set()
+ */
+EAPI void elm_button_autorepeat_gap_timeout_set(Evas_Object *obj, double t);
+
+/**
+ * @brief Gets the interval between each generated autorepeat event.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The button object
+ * @return The interval in seconds
*/
+EAPI double elm_button_autorepeat_gap_timeout_get(const Evas_Object *obj);
-#ifdef EFL_EO_API_SUPPORT
-#include "elm_button_eo.h"
-#endif
-#ifndef EFL_NOLEGACY_API_SUPPORT
-#include "elm_button_legacy.h"
-#endif
/**
* @}
*/
diff --git a/src/lib/elm_cache.h b/src/lib/elm_cache.h
index 7546f6b48..9c3c2612e 100644
--- a/src/lib/elm_cache.h
+++ b/src/lib/elm_cache.h
@@ -1,28 +1,29 @@
/**
* @defgroup Caches Caches
- * @ingroup Elementary
+ * @ingroup elm_infra_group
*
- * These are functions which let one fine-tune some cache values for
- * Elementary applications, thus allowing for performance adjustments.
+ * @brief These are functions which let one fine-tune some cache values for
+ * Elementary applications, thus allowing for performance adjustments.
*
* @{
*/
/**
- * @brief Flush all caches.
+ * @brief Flushes all caches.
*
- * Frees all data that was in cache and is not currently being used to reduce
- * memory usage. This frees Edje's, Evas' and Eet's cache. This is equivalent
- * to calling all of the following functions:
- * @li edje_file_cache_flush()
- * @li edje_collection_cache_flush()
- * @li eet_clearcache()
- * @li evas_image_cache_flush()
- * @li evas_font_cache_flush()
- * @li evas_render_dump()
- * @note Evas caches are flushed for every canvas associated with a window.
+ * @details This frees all data that is in the cache and is not currently being used, in order to reduce
+ * memory usage. This frees Edje's, Evas', and Eet's cache. This is equivalent
+ * to calling all of the following functions:
+ * @li edje_file_cache_flush()
+ * @li edje_collection_cache_flush()
+ * @li eet_clearcache()
+ * @li evas_image_cache_flush()
+ * @li evas_font_cache_flush()
+ * @li evas_render_dump()
*
- * @ingroup Caches
+ * @since_tizen 2.3
+ *
+ * @remarks Evas caches are flushed for every canvas associated with a window.
*/
EAPI void elm_cache_all_flush(void);
diff --git a/src/lib/elm_calendar.h b/src/lib/elm_calendar.h
index 4f1e00e71..d033c94f4 100644
--- a/src/lib/elm_calendar.h
+++ b/src/lib/elm_calendar.h
@@ -1,4 +1,5 @@
/**
+ * @internal
* @defgroup Calendar Calendar
* @ingroup Elementary
*
@@ -6,55 +7,508 @@
* @image latex calendar_inheritance_tree.eps
*
* This is a calendar widget. It helps applications to flexibly
- * display a calender with day of the week, date, year and
+ * display a calender with days of the week, date, year, and
* month. Applications are able to set specific dates to be reported
* back, when selected, in the smart callbacks of the calendar
* widget. The API of this widget lets the applications perform other
* functions, like:
*
- * - placing marks on specific dates
- * - setting the bounds for the calendar (minimum and maximum years)
- * - setting the day names of the week (e.g. "Thu" or "Thursday")
+ * - placing marks on specific dates.
+ * - setting the bounds for the calendar (minimum and maximum years).
+ * - setting the day names of the week (e.g. "Thu" or "Thursday").
* - setting the year and month format.
*
* This widget inherits from the @ref Layout one, so that all the
* functions acting on it also work for calendar objects.
*
* This widget emits the following signals, besides the ones sent from
- * @ref Layout:
- * - @c "changed" - emitted when the date in the calendar is changed.
- * - @c "display,changed" - emitted when the current month displayed in the
+ * @ref Layout :
+ * - @c "changed" - Emitted when the date in the calendar is changed.
+ * - @c "display,changed" - Emitted when the current month displayed in the
* calendar is changed.
- * - @c "focused" - When the calendar has received focus. (since 1.8)
- * - @c "unfocused" - When the calendar has lost focus. (since 1.8)
- * - @c "language,changed" - the program's language changed (since 1.9)
*
- * Supported elm_object common APIs.
+ * Supported common elm_object APIs.
* @li @ref elm_object_signal_emit
* @li @ref elm_object_signal_callback_add
* @li @ref elm_object_signal_callback_del
*
- * Here is some sample code using it:
- * @li @ref calendar_example_01
- * @li @ref calendar_example_02
- * @li @ref calendar_example_03
- * @li @ref calendar_example_04
- * @li @ref calendar_example_05
- * @li @ref calendar_example_06
+ * @{
*/
/**
- * @addtogroup Calendar
- * @{
+ * Enumeration of Elm Calendar Mark Repeat Type
+ */
+typedef enum
+{
+ ELM_CALENDAR_UNIQUE, /**< Default value. Marks are displayed only on the event day */
+ ELM_CALENDAR_DAILY, /**< Marks are displayed every day after the event day (inclusive) */
+ ELM_CALENDAR_WEEKLY, /**< Marks are displayed every week after the event day (inclusive) - i.e. every seven days */
+ ELM_CALENDAR_MONTHLY, /**< Marks are displayed every month day that coincides with the event day. E.g.: if an event is set to 30th Jan, no marks are displayed on Feb, but are displayed on 30th Mar */
+ ELM_CALENDAR_ANNUALLY, /**< Marks are displayed every year that coincides with the event day (and month). E.g. an event added to 30th Jan 2012 is repeated on 30th Jan 2013 */
+ ELM_CALENDAR_LAST_DAY_OF_MONTH /**< Marks are displayed every last day of the month after the event day (inclusive) @since 1.7 */
+} _Elm_Calendar_Mark_Repeat_Type;
+
+/**
+ * @enum _Elm_Calendar_Mark_Repeat_Type
+ * @typedef Elm_Calendar_Mark_Repeat_Type
+ *
+ * @brief Enumeration that shows an event's periodicity, used to define whether a mark should be repeated
+ * @a beyond the event's day. It's set when a mark is added.
+ *
+ * @remarks So, for a mark added to 13th May with periodicity set to WEEKLY,
+ * there are marks every week after this date. Marks are displayed
+ * at 13th, 20th, 27th, 3rd June ...
+ *
+ * @remarks Values don't work as bitmask, only one can be chosen.
+ *
+ * @see elm_calendar_mark_add()
+ */
+typedef _Elm_Calendar_Mark_Repeat_Type Elm_Calendar_Mark_Repeat_Type;
+
+typedef enum
+{
+ ELM_DAY_SUNDAY,
+ ELM_DAY_MONDAY,
+ ELM_DAY_TUESDAY,
+ ELM_DAY_WEDNESDAY,
+ ELM_DAY_THURSDAY,
+ ELM_DAY_FRIDAY,
+ ELM_DAY_SATURDAY,
+ ELM_DAY_LAST
+} _Elm_Calendar_Weekday;
+
+/**
+ * @enum _Elm_Calendar_Weekday
+ * @typedef Elm_Calendar_Weekday
+ *
+ * @brief Enumeration that defines the select mode for a weekday calendar.
+ *
+ * @see elm_calendar_first_day_of_week_set()
+ */
+typedef _Elm_Calendar_Weekday Elm_Calendar_Weekday;
+
+/**
+ * @brief Enumeration of Elm Calendar Select Mode
+ */
+typedef enum
+{
+ ELM_CALENDAR_SELECT_MODE_DEFAULT = 0, /**< Default value. A day is always selected */
+ ELM_CALENDAR_SELECT_MODE_ALWAYS, /**< A day is always selected */
+ ELM_CALENDAR_SELECT_MODE_NONE, /**< None of the days can be selected */
+ ELM_CALENDAR_SELECT_MODE_ONDEMAND /**< User may have selected a day or maybe not */
+} _Elm_Calendar_Select_Mode;
+
+/**
+ * @enum _Elm_Calendar_Select_Mode
+ * @typedef Elm_Calendar_Select_Mode
+ *
+ * @brief Enumeration that defines the mode, which determine how a user could select a day.
+ *
+ * @see elm_calendar_select_mode_set()
+ */
+typedef _Elm_Calendar_Select_Mode Elm_Calendar_Select_Mode;
+
+typedef enum
+{
+ ELM_CALENDAR_SELECTABLE_NONE = 0,
+ ELM_CALENDAR_SELECTABLE_YEAR = (1 << 0),
+ ELM_CALENDAR_SELECTABLE_MONTH = (1 << 1),
+ ELM_CALENDAR_SELECTABLE_DAY = (1 << 2)
+} _Elm_Calendar_Selectable;
+
+/**
+ * @enum _Elm_Calendar_Selectable
+ * @typedef Elm_Calendar_Selectable
+ *
+ * @brief The structure type that is a bitmask used to define which fields of a @b tm struct are taken into
+ * account, when elm_calendar_selected_time_set() is invoked.
+ *
+ * @since 1.8
+ *
+ * @see elm_calendar_selectable_set()
+ * @see elm_calendar_selected_time_set()
+ */
+typedef _Elm_Calendar_Selectable Elm_Calendar_Selectable;
+
+typedef struct _Elm_Calendar_Mark Elm_Calendar_Mark; /**< Item handle for a calendar mark. Created with elm_calendar_mark_add() and deleted with elm_calendar_mark_del() */
+
+/**
+ * @typedef Elm_Calendar_Format_Cb
+ *
+ * @brief Called to format the string that is used
+ * to display the month and year.
+ *
+ * @param[in] stime The struct representing the time
+ * @return The string representing the time that is set to the calendar's text
+ *
+ * @see elm_calendar_format_function_set()
+ */
+typedef char * (*Elm_Calendar_Format_Cb)(struct tm *stime);
+
+/**
+ * @brief Adds a new calendar widget to the given parent Elementary
+ * (container) object.
+ *
+ * @details This function inserts a new calendar widget on the canvas.
+ *
+ * @param[in] parent The parent object
+ * @return The new calendar widget handle, otherwise @c NULL in case of an error
+ */
+EAPI Evas_Object *elm_calendar_add(Evas_Object *parent);
+
+/**
+ * @brief Gets weekdays names displayed by the calendar.
+ *
+ * @remarks By default, weekdays abbreviations obtained from the system are displayed:
+ * E.g. for an en_US locale: "Sun, Mon, Tue, Wed, Thu, Fri, Sat"
+ * The first string is related to Sunday, the second to Monday, and so on.
+ *
+ * @param[in] obj The calendar object
+ * @return The array of seven strings to be used as weekday names
+ *
+ * @see elm_calendar_weekdays_name_set()
+ */
+EAPI const char **elm_calendar_weekdays_names_get(const Evas_Object *obj);
+
+/**
+ * @brief Sets weekdays names to be displayed by the calendar.
+ *
+ * @remarks It must have @c 7 elements, or it accesses invalid memory.
+ * @remarks The strings must be @c NULL terminated ('@\0').
+ *
+ * @remarks By default, weekdays abbreviations obtained from the system are displayed:
+ * E.g. for an en_US locale: "Sun, Mon, Tue, Wed, Thu, Fri, Sat"
+ * The first string should be related to Sunday, the second to Monday, and so on.
+ *
+ * The usage should be like this:
+ * @code
+ * const char *weekdays[] =
+ * {
+ * "Sunday", "Monday", "Tuesday", "Wednesday",
+ * "Thursday", "Friday", "Saturday"
+ * };
+ * elm_calendar_weekdays_names_set(calendar, weekdays);
+ * @endcode
+ *
+ * @param[in] obj The calendar object
+ * @param[in] weekdays The array of seven strings to be used as weekday names
+ *
+ * @see elm_calendar_weekdays_name_get()
+ */
+EAPI void elm_calendar_weekdays_names_set(Evas_Object *obj, const char *weekdays[]);
+
+/**
+ * @brief Sets the minimum and maximum values for the year.
+ *
+ * @remarks Maximum must be greater than minimum, except if you don't want to set the
+ * maximum year. Default values are @c 1902 and @c -1.
+ *
+ * @remarks If the maximum year is a negative value, it is limited depending
+ * on the platform architecture (year @c 2037 for @c 32 bits).
+ *
+ * @param[in] obj The calendar object
+ * @param[in] min The minimum year, greater than @c 1901
+ * @param[in] max The maximum year
+ *
+ * @see elm_calendar_min_max_year_get()
+ */
+EAPI void elm_calendar_min_max_year_set(Evas_Object *obj, int min, int max);
+
+/**
+ * @brief Gets the minimum and maximum values for the year.
+ *
+ * @remarks Default values are @c 1902 and @c -1.
+ *
+ * @param[in] obj The calendar object
+ * @param[out] min The minimum year
+ * @param[out] max The maximum year
+ *
+ * @see elm_calendar_min_max_year_get()
+ */
+EAPI void elm_calendar_min_max_year_get(const Evas_Object *obj, int *min, int *max);
+
+/**
+ * @brief Sets the select day mode to use.
+ *
+ * @details This sets the day selection mode that is used.
+ *
+ * @param[in] obj The calendar object
+ * @param[in] mode The select mode to use
+ */
+EAPI void elm_calendar_select_mode_set(Evas_Object *obj, Elm_Calendar_Select_Mode mode);
+
+/**
+ * @brief Gets the select day mode used.
+ *
+ * @details This sets the day selection mode that is used.
+ *
+ * @param[in] obj The calendar object
+ *
+ * @return The selected mode
+ *
+ * @see elm_calendar_select_mode_set()
+ */
+EAPI Elm_Calendar_Select_Mode elm_calendar_select_mode_get(const Evas_Object *obj);
+
+/**
+ * @brief Sets the selected date to be highlighted on the calendar.
+ *
+ * @details This sets the selected date, changing the displayed month if needed.
+ * Selected date changes when the user goes to the next/previous month or
+ * selects a day by pressing it on the calendar.
+ *
+ * @param[in] obj The calendar object
+ * @param[in] selected_time A @b tm struct to represent the selected date
+ *
+ * @see elm_calendar_selected_time_get()
+ */
+EAPI void elm_calendar_selected_time_set(Evas_Object *obj, struct tm *selected_time);
+
+/**
+ * @brief Get the selected date.
+ *
+ * @details This gets the date selected by the user or set by the function
+ * elm_calendar_selected_time_set().
+ * Selected date changes when the user goes to the next/previous month or
+ * selects a day by pressing it on the calendar.
+ *
+ * @param[in] obj The calendar object
+ * @param[out] selected_time A @b tm struct to point to the selected date
+ * @return @c EINA_FALSE means an error occurred and the returned time shouldn't
+ * be considered, otherwise @c EINA_FALSE
+ *
+ * @see elm_calendar_selected_time_get()
+ */
+EAPI Eina_Bool elm_calendar_selected_time_get(const Evas_Object *obj, struct tm *selected_time);
+
+/**
+ * @brief Sets a function to format the string that is used to display the
+ * month and year.
+ *
+ * @remarks By default it uses strftime with the "%B %Y" format string.
+ * It should allocate the memory that is used by the string,
+ * that is freed by the widget after usage.
+ * A pointer to the string and a pointer to the time struct is provided.
+ *
+ * Example:
+ * @code
+ * static char *
+ * _format_month_year(struct tm *selected_time)
+ * {
+ * char buf[32];
+ * if (!strftime(buf, sizeof(buf), "%B %Y", selected_time)) return NULL;
+ * return strdup(buf);
+ * }
+ *
+ * elm_calendar_format_function_set(calendar, _format_month_year);
+ * @endcode
+ *
+ * @param[in] obj The calendar object
+ * @param[in] format_func The function to set the month-year string given that
+ * the selected date is provided
+ */
+EAPI void elm_calendar_format_function_set(Evas_Object *obj, Elm_Calendar_Format_Cb format_func);
+
+/**
+ * @brief Adds a new mark to the calendar.
+ *
+ * @details This adds a mark that is drawn in the calendar with respect to the insertion
+ * time and periodicity. It emits the type as a signal to the widget theme.
+ * Default theme supports "holiday" and "checked", but it can be extended.
+ *
+ * @remarks It won't immediately update the calendar, drawing the marks.
+ * For this, call elm_calendar_marks_draw(). However, when the user selects the
+ * next or previous month, the calendar forces marks to be drawn.
+ *
+ * @remarks Marks created with this method can be deleted with
+ * elm_calendar_mark_del().
+ *
+ * Example
+ * @code
+ * struct tm selected_time;
+ * time_t current_time;
+ *
+ * current_time = time(NULL) + 5 * 84600;
+ * localtime_r(&current_time, &selected_time);
+ * elm_calendar_mark_add(cal, "holiday", selected_time,
+ * ELM_CALENDAR_ANNUALLY);
+ *
+ * current_time = time(NULL) + 1 * 84600;
+ * localtime_r(&current_time, &selected_time);
+ * elm_calendar_mark_add(cal, "checked", selected_time, ELM_CALENDAR_UNIQUE);
+ *
+ * elm_calendar_marks_draw(cal);
+ * @endcode
+ *
+ * @param[in] obj The calendar object
+ * @param[in] mark_type A string used to define the type of mark \n
+ * It is emitted to the theme, that should display a related modification on this
+ * day's representation.
+ * @param[in] mark_time A time struct to represent the date of inclusion of the mark \n
+ * For marks that repeats it is just displayed after the inclusion
+ * date in the calendar.
+ * @param[in] repeat Repeats the event following this periodicity \n
+ * Can be a unique mark (that doesn't repeat), daily, weekly, monthly, or annually.
+ * @return The created mark, otherwise @c NULL on failure
+ *
+ * @see elm_calendar_marks_draw()
+ * @see elm_calendar_mark_del()
+ */
+EAPI Elm_Calendar_Mark *elm_calendar_mark_add(Evas_Object *obj, const char *mark_type, struct tm *mark_time, Elm_Calendar_Mark_Repeat_Type repeat);
+
+/**
+ * @brief Deletes a mark from the calendar.
+ *
+ * @remarks If deleting all calendar marks is required, elm_calendar_marks_clear()
+ * should be used instead of getting the marks list and deleting on by one.
+ *
+ * @param[in] mark The mark to be deleted
+ *
+ * @see elm_calendar_mark_add()
+ *
+ * @ingroup Calendar
+ */
+EAPI void elm_calendar_mark_del(Elm_Calendar_Mark *mark);
+
+/**
+ * @brief Removes all calendar marks.
+ *
+ * @param[in] obj The calendar object
+ *
+ * @see elm_calendar_mark_add()
+ * @see elm_calendar_mark_del()
+ */
+EAPI void elm_calendar_marks_clear(Evas_Object *obj);
+
+/**
+ * @brief Gets a list of all the calendar marks.
+ *
+ * @param[in] obj The calendar object
+ * @return An @c Eina_List of calendar marks objects, otherwise @c NULL on failure
+ *
+ * @see elm_calendar_mark_add()
+ * @see elm_calendar_mark_del()
+ * @see elm_calendar_marks_clear()
+ */
+EAPI const Eina_List *elm_calendar_marks_get(const Evas_Object *obj);
+
+/**
+ * @brief Draws calendar marks.
+ *
+ * @remarks Should be used after adding, removing, or clearing marks.
+ * It goes through the entire marks list, updating the calendar.
+ * If lots of marks are added, add all the marks and then call
+ * this function.
+ *
+ * @remarks When the month is changed, i.e. the user selects the next or previous month,
+ * marks are drawn.
+ *
+ * @param[in] obj The calendar object
+ *
+ * @see elm_calendar_mark_add()
+ * @see elm_calendar_mark_del()
+ * @see elm_calendar_marks_clear()
+ */
+EAPI void elm_calendar_marks_draw(Evas_Object *obj);
+
+/**
+ * @brief Sets the interval on time updates for an user's mouse button hold
+ * on the calendar widgets' month selection.
+ *
+ * @remarks This interval value is @b decreased while the user holds the
+ * mouse pointer either by selecting the next or previous month.
+ *
+ * @remarks This helps the user to get to a given month distant from the
+ * current one in an easier/faster way, as it starts to change quicker and
+ * quicker on mouse button holds.
+ *
+ * @remarks The calculation for the next change interval value, starting from
+ * the one set with this call, is the previous interval divided by
+ * @c 1.05, so it decreases a little bit.
+ *
+ * @remarks The default starting interval value for automatic changes is
+ * @b 0.85 seconds.
+ *
+ * @param[in] obj The calendar object
+ * @param[in] interval The (first) interval value in seconds
+ *
+ * @see elm_calendar_interval_get()
+ */
+EAPI void elm_calendar_interval_set(Evas_Object *obj, double interval);
+
+/**
+ * @brief Gets the interval on time updates for a user's mouse button hold
+ * on the calendar widgets' month selection.
+ *
+ * @param[in] obj The calendar object
+ * @return The (first) interval value, in seconds, set on it
+ *
+ * @see elm_calendar_interval_set()
+ */
+EAPI double elm_calendar_interval_get(const Evas_Object *obj);
+
+/**
+ * @brief Sets the first day of the week to use on the calendar widgets'.
+ *
+ * @param[in] obj The calendar object
+ * @param[in] day An integer which corresponds to the first day of the week (Sunday = 0, monday = 1,
+ * ..., saturday = 6)
+ */
+EAPI void elm_calendar_first_day_of_week_set(Evas_Object *obj, Elm_Calendar_Weekday day);
+
+/**
+ * @brief Gets the first day of the week that is used on calendar widgets'.
+ *
+ * @param[in] obj The calendar object
+ * @return An integer which corresponds to the first day of the week (Sunday = 0, monday = 1,
+ * ..., saturday = 6)
+ *
+ * @see elm_calendar_first_day_of_week_set()
+ */
+EAPI Elm_Calendar_Weekday elm_calendar_first_day_of_week_get(const Evas_Object *obj);
+
+/**
+ * @brief Defines which fields of a @b tm struct are taken into account, when
+ * elm_calendar_selected_time_set() is invoked.
+ *
+ * @since 1.8
+ *
+ * @remarks By default the bitmask is set to use all fields of a @b tm struct (year,
+ * month, and day of the month).
+ *
+ * @param[in] obj The calendar object
+ * @param[in] selectable A bitmask of Elm_Calendar_Selectable
+ *
+ * @see elm_calendar_selected_time_set
+ */
+EAPI void elm_calendar_selectable_set(Evas_Object *obj, Elm_Calendar_Selectable selectable);
+
+
+/**
+ * @brief Gets how elm_calendar_selected_time_set() manages a date.
+ *
+ * @since 1.8
+ *
+ * @param[in] obj The calendar object
+ * @return The flag used to manage a date with elm_calendar_selected_time_set()
+ *
+ * @see elm_calendar_selectable_set()
+ * @see elm_calendar_selected_time_set()
+ */
+EAPI Elm_Calendar_Selectable elm_calendar_selectable_get(const Evas_Object *obj);
+
+/**
+ * @brief Gets the current time displayed in the widget.
+ *
+ * @since 1.8
+ *
+ * @param[in] obj The calendar object
+ * @param[out] displayed_time A @b tm struct to point to the displayed date
+ * @return @c EINA_FALSE means an error has occurred, otherwise @c EINA_FALSE if the returned
+ * time is zero filled
*/
+EAPI Eina_Bool elm_calendar_displayed_time_get(const Evas_Object *obj, struct tm *displayed_time);
-#include "elm_calendar_common.h"
-#ifdef EFL_EO_API_SUPPORT
-#include "elm_calendar_eo.h"
-#endif
-#ifndef EFL_NOLEGACY_API_SUPPORT
-#include "elm_calendar_legacy.h"
-#endif
/**
* @}
*/
diff --git a/src/lib/elm_check.h b/src/lib/elm_check.h
index 51a57f286..d071eed90 100644
--- a/src/lib/elm_check.h
+++ b/src/lib/elm_check.h
@@ -1,24 +1,17 @@
/**
* @defgroup Check Check
- * @ingroup Elementary
+ * @ingroup elm_widget_group
*
* @image html check_inheritance_tree.png
* @image latex check_inheritance_tree.eps
*
- * @image html img/widget/check/preview-00.png
- * @image latex img/widget/check/preview-00.eps
- * @image html img/widget/check/preview-01.png
- * @image latex img/widget/check/preview-01.eps
- * @image html img/widget/check/preview-02.png
- * @image latex img/widget/check/preview-02.eps
+ * @brief The check widget allows for toggling a value between @c true
+ * and @c false.
*
- * @brief The check widget allows for toggling a value between true
- * and false.
- *
- * Check objects are a lot like radio objects in layout and
- * functionality, except they do not work as a group, but
- * independently, and only toggle the value of a boolean between false
- * and true. elm_check_state_set() sets the boolean state and
+ * Check objects are a lot like radio objects in the layout and
+ * functionality, except that they do not work as a group, but
+ * independently, and only toggle the value of a boolean between @c false
+ * and @c true. elm_check_state_set() sets the boolean state and
* elm_check_state_get() returns the current state. For convenience,
* like the radio objects, you can set a pointer to a boolean directly
* with elm_check_state_pointer_set() for it to modify.
@@ -27,22 +20,19 @@
* functions acting on it also work for check objects.
*
* This widget emits the following signals, besides the ones sent from
- * @ref Layout:
+ * @ref Layout :
* - @c "changed" - This is called whenever the user changes the state of
- * the check objects (@p event_info is always @c NULL).
- * - @c "focused" - When the check has received focus. (since 1.8)
- * - @c "unfocused" - When the check has lost focus. (since 1.8)
- * - @c "language,changed" - the program's language changed (since 1.9)
+ * the check objects (@a event_info is always @c NULL).
*
- * Default content parts of the check widget that you can use for are:
- * @li "icon" - An icon of the check
+ * The default content parts of the check widget that you can use are:
+ * @li "icon" - An icon of the check.
*
- * Default text parts of the check widget that you can use for are:
- * @li "default" - A label of the check
- * @li "on" - On state label of the check (only valid for "toggle" style.)
- * @li "off" - Off state label of the check (only valid for "toggle" style.)
+ * The default text parts of the check widget that you can use are:
+ * @li "default" - A label of the check.
+ * @li "on" - On state label of the check.
+ * @li "off" - Off state label of the check.
*
- * Supported elm_object common APIs.
+ * Supported common elm_object APIs.
* @li @ref elm_object_disabled_set
* @li @ref elm_object_disabled_get
* @li @ref elm_object_part_text_set
@@ -54,17 +44,60 @@
* @li @ref elm_object_signal_callback_add
* @li @ref elm_object_signal_callback_del
*
- * @ref tutorial_check should give you a firm grasp of how to use this widget.
- *
* @{
*/
-#ifdef EFL_EO_API_SUPPORT
-#include "elm_check_eo.h"
-#endif
-#ifndef EFL_NOLEGACY_API_SUPPORT
-#include "elm_check_legacy.h"
-#endif
+/**
+ * @brief Adds a new Check object.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] parent The parent object
+ * @return The new object, otherwise @c NULL if it cannot be created
+ */
+EAPI Evas_Object * elm_check_add(Evas_Object *parent);
+
+/**
+ * @brief Sets the on/off state of the check object.
+ *
+ * @details This sets the state of the check. If set with elm_check_state_pointer_set()
+ * the state of that variable is also changed. Calling this @b doesn't cause
+ * the "changed" signal to be emitted.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The check object
+ * @param[in] state The state to use (@c 1 == on, @c 0 == off)
+ */
+EAPI void elm_check_state_set(Evas_Object *obj, Eina_Bool state);
+
+/**
+ * @brief Gets the state of the check object.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The check object
+ * @return The boolean state
+ */
+EAPI Eina_Bool elm_check_state_get(const Evas_Object *obj);
+
+/**
+ * @brief Sets a convenience pointer to a boolean to change.
+ *
+ * @details This sets a pointer to a boolean, that, in addition to the check objects
+ * state is also modified directly. To stop setting the object
+ * to simply use @c NULL as the @a statep parameter. If @a statep is not @c NULL,
+ * then when this is called, the check objects state is also modified to
+ * reflect the value of the boolean that @a statep points to, just like calling
+ * elm_check_state_set().
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The check object
+ * @param[in] statep A pointer to the boolean to modify
+ */
+EAPI void elm_check_state_pointer_set(Evas_Object *obj, Eina_Bool *statep);
+
/**
* @}
*/
diff --git a/src/lib/elm_clock.h b/src/lib/elm_clock.h
index 04633cd8f..06a5814c5 100644
--- a/src/lib/elm_clock.h
+++ b/src/lib/elm_clock.h
@@ -1,4 +1,5 @@
/**
+ * @internal
* @defgroup Clock Clock
* @ingroup Elementary
*
@@ -9,61 +10,269 @@
* @image latex img/widget/clock/preview-00.eps
*
* This is a @b digital clock widget. In its default theme, it has a
- * vintage "flipping numbers clock" appearance, which will animate
- * sheets of individual algorisms individually as time goes by.
+ * vintage "flipping numbers clock" appearance, which animates
+ * sheets of individual algarisms individually as time goes by.
*
- * A newly created clock will fetch system's time (already
- * considering local time adjustments) to start with, and will tick
+ * A newly created clock fetches the system's time (already
+ * considering local time adjustments) to start with, and tick
* accordingly. It may or may not show seconds.
*
- * Clocks have an @b edition mode. When in it, the sheets will
+ * Clocks have an @b edition mode. When in it, the sheets
* display extra arrow indications on the top and bottom and the
* user may click on them to raise or lower the time values. After
- * it's told to exit edition mode, it will keep ticking with that
- * new time set (it keeps the difference from local time).
+ * it's told to exit the edition mode, it keeps ticking with that
+ * new time set (it keeps the difference from the local time).
*
- * Also, when under edition mode, user clicks on the cited arrows
- * which are @b held for some time will make the clock to flip the
+ * Also, when under the edition mode, the user clicks on the cited arrows
+ * which are @b held for some time making the clock flip the
* sheet, thus editing the time, continuously and automatically for
- * the user. The interval between sheet flips will keep reducing in
+ * the user. The interval between sheet flips keeps growing with
* time, so that it helps the user to reach a time which is distant
* from the one set.
*
- * The time display is, by default, in military mode (24h), but an
- * am/pm indicator may be optionally shown, too, when it will
- * switch to 12h.
+ * The time display is, by default, in the military mode (24h), but an
+ * am/pm indicator may be optionally shown, too, when it
+ * switches to 12h.
*
* This widget inherits from the @ref Layout one, so that all the
* functions acting on it also work for clock objects.
*
* This widget emits the following signals, besides the ones sent from
- * @ref Layout:
- * - @c "changed" - the clock's user changed the time
- * - @c "focused" - When the clock ehas received focus. (since 1.8)
- * - @c "unfocused" - When the clock has lost focus. (since 1.8)
- * - @c "language,changed" - the program's language changed (since 1.9)
+ * @ref Layout :
+ * - @c "changed" - The clock's user changed the time.
*
- * Supported elm_object common APIs.
+ * Supported common elm_object APIs.
* @li @ref elm_object_signal_emit
* @li @ref elm_object_signal_callback_add
* @li @ref elm_object_signal_callback_del
*
- * Here is an example on its usage:
- * @li @ref clock_example
+ * @{
*/
/**
- * @addtogroup Clock
- * @{
+ * @brief Enumeration of the identifiers for which clock digits should be editable, when a
+ * clock widget is in the edition mode. Values may be OR-ed together to
+ * make a mask, naturally.
+ *
+ * @see elm_clock_edit_set()
+ * @see elm_clock_edit_mode_set()
+ */
+typedef enum
+{
+ ELM_CLOCK_EDIT_DEFAULT = 0, /**< Default value. Means that all digits are editable, when in the edition mode */
+ ELM_CLOCK_EDIT_HOUR_DECIMAL = 1 << 0, /**< Decimal algarism of hours value should be editable */
+ ELM_CLOCK_EDIT_HOUR_UNIT = 1 << 1, /**< Unit algarism of hours value should be editable */
+ ELM_CLOCK_EDIT_MIN_DECIMAL = 1 << 2, /**< Decimal algarism of minutes value should be editable */
+ ELM_CLOCK_EDIT_MIN_UNIT = 1 << 3, /**< Unit algarism of minutes value should be editable */
+ ELM_CLOCK_EDIT_SEC_DECIMAL = 1 << 4, /**< Decimal algarism of seconds value should be editable */
+ ELM_CLOCK_EDIT_SEC_UNIT = 1 << 5, /**< Unit algarism of seconds value should be editable */
+ ELM_CLOCK_EDIT_ALL = (1 << 6) - 1 /**< All digits should be editable */
+} Elm_Clock_Edit_Mode;
+
+/**
+ * @brief Adds a new clock widget to the given parent Elementary
+ * (container) object.
+ *
+ * @details This function inserts a new clock widget on the canvas.
+ *
+ * @param[in] parent The parent object
+ * @return A new clock widget handle, otherwise @c NULL in case of an error
+ */
+EAPI Evas_Object *elm_clock_add(Evas_Object *parent);
+
+/**
+ * @brief Sets a clock widget's time, programmatically.
+ *
+ * @details This function updates the time that is shown by the clock
+ * widget.
+ *
+ * @remarks Values @b must be set within the following ranges:
+ * - 0 - 23, for hours
+ * - 0 - 59, for minutes
+ * - 0 - 59, for seconds,
+ *
+ * even if the clock is not in the "military" mode.
+ *
+ * @remarks The behavior for the values set out of those ranges is @b
+ * undefined.
+ *
+ * @param[in] obj The clock widget object
+ * @param[in] hrs The hours to set
+ * @param[in] min The minutes to set
+ * @param[in] sec The seconds to set
+ */
+EAPI void elm_clock_time_set(Evas_Object *obj, int hrs, int min, int sec);
+
+/**
+ * @brief Gets a clock widget's time values.
+ *
+ * @details This function gets the time set for @a obj, returning
+ * it on the variables passed as the arguments to the function.
+ *
+ * @remarks Use @c NULL pointers on the time values you're not
+ * interested in, they are ignored by the function.
+ *
+ * @param[in] obj The clock object
+ * @param[out] hrs A pointer to the variable to get the hours value
+ * @param[out] min A pointer to the variable to get the minutes value
+ * @param[out] sec A pointer to the variable to get the seconds value
+ */
+EAPI void elm_clock_time_get(const Evas_Object *obj, int *hrs, int *min, int *sec);
+
+/**
+ * @brief Sets whether a given clock widget is under the <b>edition mode</b> or
+ * under the (default) displaying-only mode.
+ *
+ * @details This function allows a clock's time to be editable or not <b>by
+ * user interaction</b>. When in the edition mode, clocks @b stop
+ * ticking, until one brings them back to the canonical mode. The
+ * elm_clock_edit_mode_set() function influences which digits
+ * of the clock are editable.
+ *
+ * @remarks am/pm sheets, if being shown, are @b always editable
+ * under the edition mode.
+ *
+ * @param[in] obj The clock object
+ * @param[in] edit If @c EINA_TRUE it is put in the edition mode,
+ * otherwise @c EINA_FALSE to put it back to the "displaying only" mode
+ *
+ * @see elm_clock_edit_get()
+ */
+EAPI void elm_clock_edit_set(Evas_Object *obj, Eina_Bool edit);
+
+/**
+ * @brief Retrieves whether a given clock widget is under the editing mode
+ * or under the (default) displaying-only mode.
+ *
+ * @details This function retrieves whether the clock's time can be edited
+ * or not by user interaction.
+ *
+ * @param[in] obj The clock object
+ * @return @c EINA_TRUE if it's in the edition mode, otherwise @c EINA_FALSE
+ *
+ * @see elm_clock_edit_set()
+ */
+EAPI Eina_Bool elm_clock_edit_get(const Evas_Object *obj);
+
+/**
+ * @brief Sets what digits of the given clock widget should be editable
+ * when in the edition mode.
+ *
+ * @param[in] obj The clock object
+ * @param[in] digedit The bit mask indicating the digits to be editable
+ * (values in #Elm_Clock_Edit_Mode)
+ *
+ * @see elm_clock_edit_mode_get()
+ */
+EAPI void elm_clock_edit_mode_set(Evas_Object *obj, Elm_Clock_Edit_Mode digedit);
+
+/**
+ * @brief Retrieves what digits of the given clock widget should be
+ * editable when in the edition mode.
+ *
+ * @param[in] obj The clock object
+ * @return The bit mask indicating the digits to be editable
+ * (values in #Elm_Clock_Edit_Mode)
+ *
+ * @see elm_clock_edit_mode_set()
+ */
+EAPI Elm_Clock_Edit_Mode elm_clock_edit_mode_get(const Evas_Object *obj);
+
+/**
+ * @brief Sets whether the given clock widget must show hours in the military or the
+ * am/pm mode.
+ *
+ * @details This function sets if the clock must show hours in the military or
+ * am/pm mode. In some countries like Brazil, the military mode
+ * (00-24h-format) is used, in opposition to USA, where the
+ * am/pm mode is more commonly used.
+ *
+ * @param[in] obj The clock object
+ * @param[in] am_pm If @c EINA_TRUE it is put in the am/pm mode, otherwise @c EINA_FALSE
+ * to put it in the military mode
+ *
+ * @see elm_clock_show_am_pm_get()
+ */
+EAPI void elm_clock_show_am_pm_set(Evas_Object *obj, Eina_Bool am_pm);
+
+/**
+ * @brief Gets whether the given clock widget shows hours in the military or am/pm
+ * mode.
+ *
+ * @details This function gets if the clock shows hours in the military or am/pm
+ * mode.
+ *
+ * @param[in] obj The clock object
+ * @return @c EINA_TRUE, if in the am/pm mode, otherwise @c EINA_FALSE if in
+ * the military mode
+ *
+ * @see elm_clock_show_am_pm_set()
+ */
+EAPI Eina_Bool elm_clock_show_am_pm_get(const Evas_Object *obj);
+
+/**
+ * @brief Sets whether the given clock widget must show time in seconds.
+ *
+ * @details This function sets if the given clock must show the elapsed
+ * seconds or not. By default, they are @b not shown.
+ *
+ * @param[in] obj The clock object
+ * @param[in] seconds If @c EINA_TRUE it shows seconds, otherwise @c EINA_FALSE
+ *
+ * @see elm_clock_show_seconds_get()
+ */
+EAPI void elm_clock_show_seconds_set(Evas_Object *obj, Eina_Bool seconds);
+
+/**
+ * @brief Gets whether the given clock widget is showing time in seconds.
+ *
+ * @details This function gets whether @a obj is showing the elapsed
+ * seconds or not.
+ *
+ * @param[in] obj The clock object
+ * @return @c EINA_TRUE if it's showing seconds, otherwise @c EINA_FALSE
+ *
+ * @see elm_clock_show_seconds_set()
+ */
+EAPI Eina_Bool elm_clock_show_seconds_get(const Evas_Object *obj);
+
+/**
+ * @brief Sets the first interval on time updates for a user's mouse button hold
+ * on the clock widgets' time edition.
+ *
+ * @remarks This interval value is @b decreased while the user holds the
+ * mouse pointer either by incrementing or decrementing a given the
+ * clock digit's value.
+ *
+ * @remarks This helps the user to get to a given time, which is distant from the
+ * current one, in an easier/faster way, as it starts to flip quicker and
+ * quicker on mouse button holds.
+ *
+ * @remarks The calculation for the next flip interval value, starting from
+ * the one set with this call, is the previous interval divided by
+ * @c 1.05, so it decreases a little bit.
+ *
+ * @remarks The default starting interval value for automatic flips is
+ * @b 0.85 seconds.
+ *
+ * @param[in] obj The clock object
+ * @param[in] interval The first interval value in seconds
+ *
+ * @see elm_clock_first_interval_get()
+ */
+EAPI void elm_clock_first_interval_set(Evas_Object *obj, double interval);
+
+/**
+ * @brief Gets the first interval on time updates for a user's mouse button hold
+ * on the clock widgets' time edition.
+ *
+ * @param[in] obj The clock object
+ * @return The first interval value, in seconds, set on it
+ *
+ * @see elm_clock_first_interval_set()
*/
+EAPI double elm_clock_first_interval_get(const Evas_Object *obj);
-#include "elm_clock_common.h"
-#ifdef EFL_EO_API_SUPPORT
-#include "elm_clock_eo.h"
-#endif
-#ifndef EFL_NOLEGACY_API_SUPPORT
-#include "elm_clock_legacy.h"
-#endif
/**
* @}
*/
diff --git a/src/lib/elm_cnp.h b/src/lib/elm_cnp.h
index dceab77e1..0479d3c16 100644
--- a/src/lib/elm_cnp.h
+++ b/src/lib/elm_cnp.h
@@ -1,13 +1,14 @@
+#ifndef _ELM_CNP_H
+#define _ELM_CNP_H
/**
+ * @internal
* @defgroup CopyPaste CopyPaste
- * @ingroup Elementary
+ * @ingroup elm_infra_group
*
- * Copy and paste feature implementations.
- *
- * Implements the following functionality
- * a. select, copy/cut and paste
- * b. clipboard
- * c. drag and drop
+ * Implements the following functionality:
+ * a. select, copy/cut, and paste
+ * b. clipboard
+ * c. drag and drop
* in order to share data across application windows.
*
* Contains functions to select text or a portion of data,
@@ -18,35 +19,34 @@
* but some terms and behavior are common.
* Currently the X11 window system is widely used, and only X11 functionality is implemented.
*
- * In X11R6 window system, CopyPaste works like a peer-to-peer communication.
+ * In the X11R6 window system, CopyPaste works like peer-to-peer communication.
* Copying is an operation on an object in an X server.
- * X11 calls those objects 'selections' which have names.
+ * X11 calls those objects as 'selections' which have names.
* Generally, two selection types are needed for copy and paste:
* The Primary selection and the Clipboard selection.
* Primary selection is for selecting text (that means highlighted text).
* Clipboard selection is for explicit copying behavior
* (such as ctrl+c, or 'copy' in a menu).
- * Thus, in applications most cases only use the clipboard selection.
+ * Thus, in applications, most cases only use the clipboard selection.
* As stated before, taking ownership of a selection doesn't move any actual data.
* Copying and Pasting is described as follows:
- * 1. Copy text in Program A : Program A takes ownership of the selection
- * 2. Paste text in Program B : Program B notes that Program A owns the selection
- * 3. Program B asks A for the text
- * 4. Program A responds and sends the text to program B
- * 5. Program B pastes the response
+ * 1. Copy text in Program A : Program A takes ownership of the selection.
+ * 2. Paste text in Program B : Program B notes that Program A owns the selection.
+ * 3. Program B asks A for the text.
+ * 4. Program A responds and sends the text to Program B.
+ * 5. Program B pastes the response.
* More information is on
* - http://www.jwz.org/doc/x-cut-and-paste.html
* - X11R6 Inter-Client Communication Conventions Manual, section 2
*
- * TODO: add for other window system.
+ * TODO: Add for other window system.
*
* @{
*/
/**
- * Defines the types of selection property names.
- * @see http://www.x.org/docs/X11/xlib.pdf
- * for more details.
+ * @brief Enumeration that defines the types of selection property names.
+ * @see http://www.x.org/docs/X11/xlib.pdf for more details.
*/
typedef enum
{
@@ -57,11 +57,11 @@ typedef enum
} Elm_Sel_Type;
/**
- * Defines the types of content.
+ * @brief Enumeration that defines the types of content.
*/
typedef enum
{
- /** For matching every possible atom */
+ /** For matching every possible item */
ELM_SEL_FORMAT_TARGETS = -1,
/** Content is from outside of Elementary */
ELM_SEL_FORMAT_NONE = 0x0,
@@ -78,7 +78,7 @@ typedef enum
} Elm_Sel_Format;
/**
- * Defines the kind of action associated with the drop data if for XDND
+ * @brief Enumeration that defines the kind of action associated with drop data, if for XDND.
* @since 1.8
*/
typedef enum
@@ -86,7 +86,7 @@ typedef enum
ELM_XDND_ACTION_UNKNOWN, /**< Action type is unknown */
ELM_XDND_ACTION_COPY, /**< Copy the data */
ELM_XDND_ACTION_MOVE, /**< Move the data */
- ELM_XDND_ACTION_PRIVATE, /**< Pricate action type */
+ ELM_XDND_ACTION_PRIVATE, /**< Private action type */
ELM_XDND_ACTION_ASK, /**< Ask the user what to do */
ELM_XDND_ACTION_LIST, /**< List the data */
ELM_XDND_ACTION_LINK, /**< Link the data */
@@ -94,7 +94,7 @@ typedef enum
} Elm_Xdnd_Action;
/**
- * Structure holding the info about selected data.
+ * @brief The structure type holding information about selected data.
*/
struct _Elm_Selection_Data
{
@@ -107,109 +107,119 @@ struct _Elm_Selection_Data
typedef struct _Elm_Selection_Data Elm_Selection_Data;
/**
- * Callback invoked in when the selected data is 'dropped' at its destination.
+ * @brief Called when the selected data is 'dropped' at its destination.
+ *
+ * @remarks FIXME: This should probably be a smart callback.
*
- * @param data Application specific data
- * @param obj The evas object where selected data is 'dropped'.
- * @param ev struct holding information about selected data
- * FIXME: this should probably be a smart callback
+ * @param[in] data The application specific data
+ * @param[in] obj The evas object where the selected data is 'dropped'
+ * @param[in] ev The struct holding information about the selected data
*/
typedef Eina_Bool (*Elm_Drop_Cb)(void *data, Evas_Object *obj, Elm_Selection_Data *ev);
/**
- * Callback invoked to find out what object is under (x,y) coords
+ * @brief Called to find out what object is under (x,y) coordinates.
*
- * @param obj The container object
- * @param x cord to check
- * @param y cord to check
- * @param xposret Position relative to item (left (-1), middle (0), right (1)
- * @param yposret Position relative to item (upper (-1), middle (0), bottom (1)
- * @return object under x,y cords or NULL if not found.
+ * @param[in] obj The container object
+ * @param[in] x The coordinate to check
+ * @param[in] y The coordinate to check
+ * @param[in] xposret The position relative to the item (left (-1), middle (0), right (1))
+ * @param[in] yposret The position relative to the item (upper (-1), middle (0), bottom (1))
+ * @return The object under x,y cordinates, otherwise @c NULL if not found
*/
typedef Elm_Object_Item *(*Elm_Xy_Item_Get_Cb)(Evas_Object *obj, Evas_Coord x, Evas_Coord y, int *xposret, int *yposret);
/**
- * Callback invoked in when the selection ownership for a given selection is lost.
+ * @brief Called when the selection ownership for a given selection is lost.
*
- * @param data Application specific data
- * @param selection The selection that is lost
* @since 1.7
+ *
+ * @param[in] data The application specific data
+ * @param[in] selection The selection that is lost
*/
typedef void (*Elm_Selection_Loss_Cb)(void *data, Elm_Sel_Type selection);
/**
- * Callback called to create a drag icon object
+ * @brief Called to create a drag icon object.
*
- * @param data Application specific data
- * @param win The window to create the objects relative to
- * @param xoff A return coordinate for the X offset at which to place the drag icon object relative to the source drag object
- * @param yoff A return coordinate for the Y offset at which to place the drag icon object relative to the source drag object
- * @return An object to fill the drag window with or NULL if not needed
* @since 1.8
+ *
+ * @param[in] data The application specific data
+ * @param[in] win The window to create the relative objects
+ * @param[out] xoff The return coordinate for the X offset at which to place the drag icon object relative to the source drag object
+ * @param[out] yoff The return coordinate for the Y offset at which to place the drag icon object relative to the source drag object
+ * @return The object to fill the drag window with, otherwise @c NULL if not needed
*/
typedef Evas_Object *(*Elm_Drag_Icon_Create_Cb) (void *data, Evas_Object *win, Evas_Coord *xoff, Evas_Coord *yoff);
/**
- * Callback called when a drag is finished, enters, or leaves an object
- *
- * @param data Application specific data
- * @param obj The object where the drag started
+ * @brief Called when a drag finishes, enters, or leaves an object.
+ *
* @since 1.8
+ *
+ * @param[in] data The application specific data
+ * @param[in] obj The object where the drag started
*/
typedef void (*Elm_Drag_State) (void *data, Evas_Object *obj);
/**
- * Callback called when a drag is finished.
+ * @brief Called when a drag is finished.
*
- * @param data Application specific data
- * @param obj The object where the drag started
- * @param accepted TRUE if the droppped-data is accepted on drop
* @since 1.8
+ *
+ * @param[in] data The application specific data
+ * @param[in] obj The object where the drag started
+ * @param[in] accepted If @c true the dropped data is accepted on drop,
+ * otherwise @c false
*/
typedef void (*Elm_Drag_Done) (void *data, Evas_Object *obj, Eina_Bool accepted);
/**
- * Callback called when a drag is responded to with an accept or deny
+ * @brief Called when a drag is responded to with an accept or deny.
*
- * @param data Application specific data
- * @param obj The object where the drag started
- * @param doaccept A boolean as to if the target accepts the drag or not
* @since 1.8
+ *
+ * @param[in] data The application specific data
+ * @param[in] obj The object where the drag started
+ * @param[in] doaccept The boolean value that indicates whether the target accepts the drag
*/
typedef void (*Elm_Drag_Accept) (void *data, Evas_Object *obj, Eina_Bool doaccept);
/**
- * Callback called when a drag is over an object, and gives object-relative coordinates
- *
- * @param data Application specific data
- * @param obj The object where the drag started
- * @param x The X coordinate relative to the top-left of the object
- * @param y The Y coordinate relative to the top-left of the object
+ * @brief Called when a drag is over an object, and gives object-relative coordinates.
+ *
* @since 1.8
+ *
+ * @param[in] data The application specific data
+ * @param[in] obj The object where the drag started
+ * @param[in] x The X coordinate relative to the top-left corner of the object
+ * @param[in] y The Y coordinate relative to the top-left corner of the object
*/
typedef void (*Elm_Drag_Pos) (void *data, Evas_Object *obj, Evas_Coord x, Evas_Coord y, Elm_Xdnd_Action action);
/**
- * Callback called when a drag starts from an item container
+ * @brief Called when a drag starts from an item container.
*
- * @param data Application specific data
- * @param obj The object where the drag started
* @since 1.8
+ *
+ * @param[in] data The application specific data
+ * @param[in] obj The object where the drag started
*/
typedef void (*Elm_Drag_Start) (void *data, Evas_Object *obj);
/**
- * @brief Set copy data for a widget.
+ * @brief Sets the copy data for a widget.
*
- * Set copy data and take ownership of selection. Format is used for specifying the selection type,
- * and this is used during pasting.
+ * @details This sets the copy data and takes ownership of the selection. Format is used for specifying the selection type,
+ * and this is used during pasting.
*
- * @param selection Selection type for copying and pasting
- * @param obj The source widget pointer
- * @param format Selection format
- * @param buf The data selected
- * @param buflen The size of @p buf
- * @return If @c EINA_TRUE, setting data was successful.
+ * @param[in] selection The selection type for copying and pasting
+ * @param[in] obj The source widget pointer
+ * @param[in] format The selection format
+ * @param[in] buf The data selected
+ * @param[in] buflen The size of @a buf
+ * @return @c EINA_TRUE if setting data is successful,
+ * otherwise @c EINA_FALSE
*
* @ingroup CopyPaste
*
@@ -219,22 +229,22 @@ EAPI Eina_Bool elm_cnp_selection_set(Evas_Object *obj, Elm_Sel_Type selection,
const void *buf, size_t buflen);
/**
- * @brief Get data from a widget that has a selection.
+ * @brief Gets data from a widget that has a selection.
*
- * Get the current selection data from a widget.
- * The widget input here will usually be elm_entry,
- * in which case @p datacb and @p udata can be NULL.
- * If a different widget is passed, @p datacb and @p udata are used for retrieving data.
- *
- * @see also elm_cnp_selection_set()
+ * @details This gets the current selection data from a widget.
+ * The widget input here is usually elm_entry,
+ * in which case @a datacb and @a udata can be @c NULL.
+ * If a different widget is passed, @a datacb and @a udata are used for retrieving data.
*
- * @param selection Selection type for copying and pasting
- * @param format Selection format
- * @param obj The source widget
- * @param datacb The user data callback if the target widget isn't elm_entry
- * @param udata The user data pointer for @p datacb
- * @return If @c EINA_TRUE, getting selection data was successful.
+ * @param[in] selection The selection type for copying and pasting
+ * @param[in] format The selection format
+ * @param[in] obj The source widget
+ * @param[in] datacb The user data callback if the target widget isn't elm_entry
+ * @param[in] udata The user data pointer for @a datacb
+ * @return @c EINA_TRUE if getting the selection data is successful,
+ * otherwise @c EINA_FALSE
*
+ * @see elm_cnp_selection_set()
* @ingroup CopyPaste
*/
EAPI Eina_Bool elm_cnp_selection_get(Evas_Object *obj, Elm_Sel_Type selection,
@@ -242,16 +252,16 @@ EAPI Eina_Bool elm_cnp_selection_get(Evas_Object *obj, Elm_Sel_Type selection,
Elm_Drop_Cb datacb, void *udata);
/**
- * @brief Clear the selection data of a widget.
+ * @brief Clears the selection data of a widget.
*
- * Clear all data from the selection which is owned by a widget.
+ * @details It clears all the data from the selection which is owned by a widget.
*
- * @see also elm_cnp_selection_set()
- *
- * @param obj The source widget
- * @param selection Selection type for copying and pasting
- * @return If @c EINA_TRUE, clearing data was successful.
+ * @param[in] obj The source widget
+ * @param[in] selection The selection type for copying and pasting
+ * @return @c EINA_TRUE if clearing data is successful,
+ * otherwise @c EINA_FALSE
*
+ * @see also elm_cnp_selection_set()
* @ingroup CopyPaste
*
*/
@@ -260,79 +270,81 @@ EAPI Eina_Bool elm_object_cnp_selection_clear(Evas_Object *obj,
/**
- * @brief Set a function to be called when a selection is lost
- *
- * The function @p func is set of be called when selection @p selection is lost
- * to another process or when elm_cnp_selection_set() is called. If @p func
- * is NULL then it is not called. @p data is passed as the data parameter to
- * the callback functions and selection is passed in as the selection that
- * has been lost.
+ * @brief Sets a function to be called when a selection is lost.
*
- * elm_cnp_selection_set() and elm_object_cnp_selection_clear() automatically
- * set this los callback to NULL when called. If you wish to take the selection
- * and then be notified of loss please do this (for example):
+ * @since 1.7
*
+ * @remarks The function @a func is set to be called when selection @a selection is lost
+ * to another process or when elm_cnp_selection_set() is called. If @a func
+ * is @c NULL then it is not called. @a data is passed as the data parameter to
+ * the callback functions and @a selection is passed in as the selection that
+ * has been lost.
+ *
+ * @remarks elm_cnp_selection_set() and elm_object_cnp_selection_clear() automatically
+ * set this callback to @c NULL when called. If you wish to take the selection
+ * and then be notified of loss please this (for example):
+ *
* @code
* elm_cnp_selection_set(obj, ELM_SEL_TYPE_PRIMARY, ELM_SEL_FORMAT_TEXT, "hello", strlen(hello));
* elm_cnp_selection_loss_callback_set(obj, ELM_SEL_TYPE_PRIMARY, loss_cb, NULL);
* @endcode
*
- * @see also elm_cnp_selection_set()
*
- * @param obj The object to indicate the window target/display system.
- * @param selection Selection to be notified of for loss
- * @param func The function to call
- * @param data The data pointer passed to the function.
+ * @param[in] obj The object to indicate the window target/display system
+ * @param[in] selection The selection to be notified of loss
+ * @param[in] func The function to call
+ * @param[in] data The data pointer passed to the function
*
+ * @see also elm_cnp_selection_set()
* @ingroup CopyPaste
- *
- * @since 1.7
*/
EAPI void elm_cnp_selection_loss_callback_set(Evas_Object *obj, Elm_Sel_Type selection, Elm_Selection_Loss_Cb func, const void *data);
/**
- * @brief Set the given object as a target for drops for drag-and-drop
+ * @brief Sets the given object as a target for drops from drag-and-drop.
*
- * @param obj The target object
- * @param format The formats supported for dropping
- * @param entercb The function to call when the object is entered with a drag
- * @param enterdata The application data to pass to enterdata
- * @param leavecb The function to call when the object is left with a drag
- * @param leavedata The application data to pass to leavedata
- * @param poscb The function to call when the object has a drag over it
- * @param posdata The application data to pass to posdata
- * @param dropcb The function to call when a drop has occurred
- * @param dropdata The application data to pass to dropcb
- * @return Returns @c EINA_TRUE, if successful, or @c EINA_FALSE if not.
+ * @since 1.8
*
- * @ingroup CopyPaste
+ * @param[in] obj The target object
+ * @param[in] format The formats supported for dropping
+ * @param[in] entercb The function to call when the object is entered with a drag
+ * @param[in] enterdata The application data to pass to enterdata
+ * @param[in] leavecb The function to call when the object is left with a drag
+ * @param[in] leavedata The application data to pass to leavedata
+ * @param[in] poscb The function to call when the object has a drag over it
+ * @param[in] posdata The application data to pass to posdata
+ * @param[in] dropcb The function to call when a drop has occurred
+ * @param[in] dropdata The application data to pass to dropcb
+ * @return @c EINA_TRUE if successful,
+ * otherwise @c EINA_FALSE if not
*
- * @since 1.8
+ * @ingroup CopyPaste
*/
-EAPI Eina_Bool elm_drop_target_add(Evas_Object *obj, Elm_Sel_Format format,
+EAPI Eina_Bool elm_drop_target_add(Evas_Object *obj, Elm_Sel_Format format,
Elm_Drag_State entercb, void *enterdata,
Elm_Drag_State leavecb, void *leavedata,
Elm_Drag_Pos poscb, void *posdata,
Elm_Drop_Cb dropcb, void *dropdata);
/**
- * @brief Deletes the drop target status of an object
+ * @brief Deletes the drop target status of an object.
*
- * @param obj The target object
- * @param format The formats supported for dropping
- * @param entercb The function to call when the object is entered with a drag
- * @param enterdata The application data to pass to enterdata
- * @param leavecb The function to call when the object is left with a drag
- * @param leavedata The application data to pass to leavedata
- * @param poscb The function to call when the object has a drag over it
- * @param posdata The application data to pass to posdata
- * @param dropcb The function to call when a drop has occurred
- * @param dropdata The application data to pass to dropcb
- * @return Returns @c EINA_TRUE, if successful, or @c EINA_FALSE if not.
+ * @since 1.8
*
- * @ingroup CopyPaste
+ * @param[in] obj The target object
+ * @param[in] format The formats supported for dropping
+ * @param[in] entercb The function to call when the object is entered with a drag
+ * @param[in] enterdata The application data to pass to @a enterdata
+ * @param[in] leavecb The function to call when the object is left with a drag
+ * @param[in] leavedata The application data to pass to @a leavedata
+ * @param[in] poscb The function to call when the object has a drag over it
+ * @param[in] posdata The application data to pass to @a posdata
+ * @param[in] dropcb The function to call when a drop has occurred
+ * @param[in] dropdata The application data to pass to @a dropcb
+ * @return @c EINA_TRUE if successful,
+ * otherwise @c EINA_FALSE if not
*
- * @since 1.8
+ * @ingroup CopyPaste
*/
EAPI Eina_Bool elm_drop_target_del(Evas_Object *obj, Elm_Sel_Format format,
Elm_Drag_State entercb, void *enterdata,
@@ -341,26 +353,27 @@ EAPI Eina_Bool elm_drop_target_del(Evas_Object *obj, Elm_Sel_Format format,
Elm_Drop_Cb dropcb, void *dropdata);
/**
- * @brief Begins a drag given a source object
+ * @brief Begins a drag given a source object is provided.
*
- * @param obj The source object
- * @param format The drag formats supported by the data
- * @param data The drag data itself (a string)
- * @param action The drag action to be done
- * @param createicon Function to call to create a drag object, or NULL if not wanted
- * @param createdata Application data passed to @p createicon
- * @param dragpos Function called with each position of the drag, x, y being screen coordinates if possible, and action being the current action.
- * @param dragdata Application data passed to @p dragpos
- * @param acceptcb Function called indicating if drop target accepts (or does not) the drop data while dragging
+ * @since 1.8
*
- * @param acceptdata Application data passed to @p acceptcb
- * @param dragdone Function to call when drag is done
- * @param donecbdata Application data to pass to @p dragdone
- * @return Returns @c EINA_TRUE, if successful, or @c EINA_FALSE if not.
+ * @param[in] obj The source object
+ * @param[in] format The drag formats supported by the data
+ * @param[in] data The drag data itself (a string)
+ * @param[in] action The drag action to be done
+ * @param[in] createicon The function to call to create a drag object, otherwise @c NULL if not wanted
+ * @param[in] createdata The application data passed to @a createicon
+ * @param[in] dragpos The function called with each position of the drag, x, y being screen coordinates if possible, and @a action being the current action
+ * @param[in] dragdata The application data passed to @a dragpos
+ * @param[in] acceptcb The function called indicating if the drop target accepts (or does not) the drop data while dragging
+ *
+ * @param[in] acceptdata The application data passed to @a acceptcb
+ * @param[in] dragdone The function to call when drag is done
+ * @param[in] donecbdata The application data to pass to @a dragdone
+ * @return @c EINA_TRUE if successful,
+ * otherwise @c EINA_FALSE if not
*
* @ingroup CopyPaste
- *
- * @since 1.8
*/
EAPI Eina_Bool elm_drag_start(Evas_Object *obj, Elm_Sel_Format format,
const char *data, Elm_Xdnd_Action action,
@@ -371,74 +384,77 @@ EAPI Eina_Bool elm_drag_start(Evas_Object *obj, Elm_Sel_Format format,
Elm_Drag_State dragdone, void *donecbdata);
/**
- * @brief Cancels the current drag operation
+ * @brief Cancels the current drag operation.
+ *
+ * @since 1.9
*
- * It can only be initiated from the source window.
+ * @remarks It can only be initiated from the source window.
*
- * @param obj The source of the current drag.
- * @return Returns @c EINA_TRUE, if successful, or @c EINA_FALSE if not.
+ * @param[in] obj The source of the current drag
+ * @return @c EINA_TRUE if successful,
+ * otherwise @c EINA_FALSE if not
*
* @ingroup CopyPaste
- *
- * @since 1.9
*/
EAPI Eina_Bool elm_drag_cancel(Evas_Object *obj);
/**
- * @brief Changes the current drag action
+ * @brief Changes the current drag action.
*
- * @param obj The source of a drag if a drag is underway
- * @param action The drag action to be done
- * @return Returns @c EINA_TRUE, if successful, or @c EINA_FALSE if not.
+ * @since 1.8
*
- * @ingroup CopyPaste
+ * @param[in] obj The source of a drag, if a drag is underway
+ * @param[in] action The drag action to be done
+ * @return @c EINA_TRUE if successful,
+ * otherwise @c EINA_FALSE if not
*
- * @since 1.8
+ * @ingroup CopyPaste
*/
EAPI Eina_Bool elm_drag_action_set(Evas_Object *obj, Elm_Xdnd_Action action);
/**
- * Callback called when a drag is over an object
+ * @brief Called when a drag is over an object.
*
- * @param data Application specific data
- * @param cont The container object where the drag started
- * @param it The object item in container where mouse-over
- * @param x The X coordinate relative to the top-left of the object
- * @param y The Y coordinate relative to the top-left of the object
- * @param xposret Position relative to item (left (-1), middle (0), right (1)
- * @param yposret Position relative to item (upper (-1), middle (0), bottom (1)
- * @param action The drag action to be done
* @since 1.8
+ *
+ * @param[in] data The application specific data
+ * @param[in] cont The container object where the drag started
+ * @param[in] it The object item in the container where the mouse-over happened
+ * @param[in] x The X coordinate relative to the top-left corner of the object
+ * @param[in] y The Y coordinate relative to the top-left corner of the object
+ * @param[in] xposret The position relative to the item (left (-1), middle (0), right (1))
+ * @param[in] yposret The position relative to the item (upper (-1), middle (0), bottom (1))
+ * @param[in] action The drag action to be done
*/
typedef void (*Elm_Drag_Item_Container_Pos) (void *data, Evas_Object *cont, Elm_Object_Item *it, Evas_Coord x, Evas_Coord y, int xposret, int yposret, Elm_Xdnd_Action action);
/**
- * Callback invoked in when the selected data is 'dropped' on container.
+ * @brief Called when the selected data is 'dropped' on the container.
*
- * @param data Application specific data
- * @param obj The evas object where selected data is 'dropped'.
- * @param it The item in container where drop-cords
- * @param ev struct holding information about selected data
- * @param xposret Position relative to item (left (-1), middle (0), right (1)
- * @param yposret Position relative to item (upper (-1), middle (0), bottom (1)
+ * @param[in] data The application specific data
+ * @param[in] obj The evas object where the selected data is 'dropped'
+ * @param[in] it The item in the container where the drop-cords are present
+ * @param[in] ev The struct holding information about the selected data
+ * @param[in] xposret The position relative to the item (left (-1), middle (0), right (1))
+ * @param[in] yposret The position relative to the item (upper (-1), middle (0), bottom (1))
*/
typedef Eina_Bool (*Elm_Drop_Item_Container_Cb)(void *data, Evas_Object *obj, Elm_Object_Item *it, Elm_Selection_Data *ev, int xposret, int yposret);
/**
- * Structure describing user information for the drag process.
+ * @brief The structure type describing user information for the drag process.
*
* @param format The drag formats supported by the data (output)
* @param data The drag data itself (a string) (output)
- * @param icons if value not NULL, play default anim (output)
+ * @param icons If the value is not @c NULL, play default anim (output)
* @param action The drag action to be done (output)
- * @param createicon Function to call to create a drag object, or NULL if not wanted (output)
- * @param createdata Application data passed to @p createicon (output)
- * @param dragpos Function called with each position of the drag, x, y being screen coordinates if possible, and action being the current action. (output)
- * @param dragdata Application data passed to @p dragpos (output)
- * @param acceptcb Function called indicating if drop target accepts (or does not) the drop data while dragging (output)
- * @param acceptdata Application data passed to @p acceptcb (output)
- * @param dragdone Function to call when drag is done (output)
- * @param donecbdata Application data to pass to @p dragdone (output)
+ * @param createicon The function to call to create a drag object, otherwise @c NULL if not wanted (output)
+ * @param createdata The application data passed to @a createicon (output)
+ * @param dragpos The function called with each position of the drag, x, y being screen coordinates if possible, and action being the current action (output)
+ * @param dragdata The application data passed to @a dragpos (output)
+ * @param acceptcb The function called indicating if the drop target accepts (or does not) the drop data while dragging (output)
+ * @param acceptdata The application data passed to @a acceptcb (output)
+ * @param dragdone The function to call when the drag is done (output)
+ * @param donecbdata The application data to pass to @a dragdone (output)
*/
typedef struct _Elm_Drag_User_Info Elm_Drag_User_Info;
@@ -461,11 +477,12 @@ struct _Elm_Drag_User_Info
};
/**
- * Callback invoked when starting to drag for a container.
+ * @brief Called when starting to drag for a container.
*
* @param obj The container object
- * @param it The Elm_Object_Item pointer where drag-start
- * @return Returns @c EINA_TRUE, if successful, or @c EINA_FALSE if not.
+ * @param it The Elm_Object_Item pointer where the drag starts
+ * @return @c EINA_TRUE if successful,
+ * otherwise @c EINA_FALSE if not
*/
typedef Eina_Bool (*Elm_Item_Container_Data_Get_Cb)(
Evas_Object *obj,
@@ -473,52 +490,55 @@ typedef Eina_Bool (*Elm_Item_Container_Data_Get_Cb)(
Elm_Drag_User_Info *info);
/**
- * @brief Set a item container (list, genlist, grid) as source of drag
+ * @brief Sets an item container (list, genlist, grid) as the source of the drag.
*
- * @param obj The container object.
- * @param tm_to_anim Time period to wait before start animation.
- * @param tm_to_drag Time period to wait before start dragging.
- * @param itemgetcb Callback to get Evas_Object pointer for item at (x,y)
- * @param data_get Callback to get drag info
- * @return Returns @c EINA_TRUE, if successful, or @c EINA_FALSE if not.
+ * @since 1.8
*
- * @ingroup CopyPaste
+ * @param[in] obj The container object
+ * @param[in] tm_to_anim The time period to wait before starting the animation
+ * @param[in] tm_to_drag The time period to wait before starting dragging
+ * @param[in] itemgetcb Callback to get the Evas_Object pointer for the item at (x,y)
+ * @param[in] data_get Callback to get drag information
+ * @return @c EINA_TRUE if successful,
+ * otherwise @c EINA_FALSE if not
*
- * @since 1.8
+ * @ingroup CopyPaste
*/
EAPI Eina_Bool elm_drag_item_container_add(Evas_Object *obj, double tm_to_anim, double tm_to_drag, Elm_Xy_Item_Get_Cb itemgetcb, Elm_Item_Container_Data_Get_Cb data_get);
/**
- * @brief Deletes a item container from drag-source list
+ * @brief Deletes a item container from the drag-source list.
*
- * @param obj The target object
- * @return Returns @c EINA_TRUE, if successful, or @c EINA_FALSE if not.
+ * @since 1.8
*
- * @ingroup CopyPaste
+ * @param[in] obj The target object
+ * @return @c EINA_TRUE if successful,
+ * otherwise @c EINA_FALSE if not
*
- * @since 1.8
+ * @ingroup CopyPaste
*/
EAPI Eina_Bool elm_drag_item_container_del(Evas_Object *obj);
/**
- * @brief Set a item container (list, genlist, grid) as target for drop.
+ * @brief Sets an item container (list, genlist, grid) as the target for the drop.
+ *
+ * @since 1.8
*
- * @param obj The container object.
+ * @param obj The container object
* @param format The formats supported for dropping
- * @param itemgetcb Callback to get Evas_Object pointer for item at (x,y)
+ * @param itemgetcb Callback to get the Evas_Object pointer for the item at (x,y)
* @param entercb The function to call when the object is entered with a drag
- * @param enterdata The application data to pass to enterdata
+ * @param enterdata The application data to pass to @a enterdata
* @param leavecb The function to call when the object is left with a drag
- * @param leavedata The application data to pass to leavedata
+ * @param leavedata The application data to pass to @a leavedata
* @param poscb The function to call when the object has a drag over it
- * @param posdata The application data to pass to posdata
+ * @param posdata The application data to pass to @a posdata
* @param dropcb The function to call when a drop has occurred
- * @param dropdata The application data to pass to dropcb
- * @return Returns @c EINA_TRUE, if successful, or @c EINA_FALSE if not.
+ * @param dropdata The application data to pass to @a dropcb
+ * @return @c EINA_TRUE if successful,
+ * otherwise @c EINA_FALSE if not
*
* @ingroup CopyPaste
- *
- * @since 1.8
*/
EAPI Eina_Bool elm_drop_item_container_add(Evas_Object *obj,
Elm_Sel_Format format,
@@ -529,17 +549,19 @@ EAPI Eina_Bool elm_drop_item_container_add(Evas_Object *obj,
Elm_Drop_Item_Container_Cb dropcb, void *dropdata);
/**
- * @brief Removes a container from list of drop targets.
+ * @brief Removes a container from the list of drop targets.
*
- * @param obj The container object
- * @return Returns EINA_TRUE, if successful, or @c EINA_FALSE if not.
+ * @since 1.8
*
- * @ingroup CopyPaste
+ * @param[in] obj The container object
+ * @return @c EINA_TRUE if successful,
+ * otherwise @c EINA_FALSE if not
*
- * @since 1.8
+ * @ingroup CopyPaste
*/
EAPI Eina_Bool elm_drop_item_container_del(Evas_Object *obj);
/**
* @}
*/
+#endif
diff --git a/src/lib/elm_colorselector.h b/src/lib/elm_colorselector.h
index b98f4146a..896651be0 100644
--- a/src/lib/elm_colorselector.h
+++ b/src/lib/elm_colorselector.h
@@ -1,48 +1,214 @@
/**
* @defgroup Colorselector Colorselector
- * @ingroup Elementary
+ * @ingroup elm_widget_group
*
* @image html colorselector_inheritance_tree.png
* @image latex colorselector_inheritance_tree.eps
*
- * @image html img/widget/colorselector/preview-00.png
- * @image latex img/widget/colorselector/preview-00.eps
+ * @brief A ColorSelector is a color selection widget.
*
- * A ColorSelector is a color selection widget. It allows application
- * to set a series of colors.It also allows to load/save colors
- * from/to config with a unique identifier, by default, the colors are
- * loaded/saved from/to config using "default" identifier. The colors
- * can be picked by user from the color set by clicking on individual
- * color item on the palette or by selecting it from selector.
+ * It allows an application to set a series of colors.It also allows to
+ * load/save colors from/to config with a unique identifier, by default,
+ * the colors are loaded/saved from/to config using a "default" identifier.
+ * The colors can be picked by the user from the color set by clicking on
+ * individual color items on the palette or by selecting it from the selector.
*
* This widget inherits from the @ref Layout one, so that all the
* functions acting on it also work for check objects.
*
* This widget emits the following signals, besides the ones sent from
- * @ref Layout:
- * - @c "changed" - When the color value changes on selector
- * event_info is NULL.
- * - @c "color,item,selected" - When user clicks on color item. The
- * event_info parameter of the callback will be the selected color
+ * @ref Layout :
+ * - @c "changed" - When the color value changes on the selector.
+ * @a event_info is @c NULL.
+ * - @c "color,item,selected" - When the user clicks on a color item. The
+ * @a event_info parameter of the callback is the selected color
* item.
- * - @c "color,item,longpressed" - When user long presses on color
- * item. The event info parameter of the callback contains selected
+ * - @c "color,item,longpressed" - When user long presses on a color
+ * item. The @a event_info parameter of the callback contains the selected
* color item.
- * - @c "focused" - When the colorselector has received focus. (since 1.8)
- * - @c "unfocused" - When the colorselector has lost focus. (since 1.8)
- * - @c "language,changed" - the program's language changed (since 1.9)
*
- * See @ref tutorial_colorselector.
* @{
*/
-#include "elm_colorselector_common.h"
-#ifdef EFL_EO_API_SUPPORT
-#include "elm_colorselector_eo.h"
-#endif
-#ifndef EFL_NOLEGACY_API_SUPPORT
-#include "elm_colorselector_legacy.h"
-#endif
+typedef struct _Elm_Color_RGBA
+{
+ unsigned int r;
+ unsigned int g;
+ unsigned int b;
+ unsigned int a;
+ const char *color_name;
+} Elm_Color_RGBA;
+
+typedef struct _Elm_Custom_Palette
+{
+ const char *palette_name;
+ Eina_List *color_list;
+} Elm_Custom_Palette;
+
+/**
+ * @enum Elm_Colorselector_Mode
+ * @typedef Elm_Colorselector_Mode
+ *
+ * @brief Enumeration that defines the different modes supported by Colorselector.
+ *
+ * @see elm_colorselector_mode_set()
+ * @see elm_colorselector_mode_get()
+ */
+typedef enum
+{
+ ELM_COLORSELECTOR_PALETTE = 0, /**< Only the color palette is displayed */
+ ELM_COLORSELECTOR_COMPONENTS, /**< Only the color selector is displayed */
+ ELM_COLORSELECTOR_BOTH, /**< Both the Palette and the selector is displayed, default */
+ ELM_COLORSELECTOR_PICKER, /**< Only the color picker is displayed */
+ ELM_COLORSELECTOR_PLANE, /**< Only the color plane is displayed */
+ ELM_COLORSELECTOR_PALETTE_PLANE, /**< Both the palette and the plane is displayed */
+ ELM_COLORSELECTOR_ALL /**< All possible color selectors are displayed */
+} Elm_Colorselector_Mode;
+
+/**
+ * @brief Adds a new colorselector to the parent.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] parent The parent object
+ * @return The new object, otherwise @c NULL if it cannot be created
+ */
+EAPI Evas_Object *elm_colorselector_add(Evas_Object *parent);
+
+/**
+ * @brief Sets a color to the colorselector.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The colorselector object
+ * @param[in] r The r-value of color
+ * @param[in] g The g-value of color
+ * @param[in] b The b-value of color
+ * @param[in] a The a-value of color
+ */
+EAPI void elm_colorselector_color_set(Evas_Object *obj, int r, int g, int b, int a);
+
+/**
+ * @brief Gets the current color from the colorselector.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The colorselector object
+ * @param[out] r An integer pointer for the r-value of color
+ * @param[out] g An integer pointer for the g-value of color
+ * @param[out] b An integer pointer for the b-value of color
+ * @param[out] a An integer pointer for the a-value of color
+ */
+EAPI void elm_colorselector_color_get(const Evas_Object *obj, int *r, int *g, int *b, int *a);
+
+/**
+ * @brief Sets the Colorselector mode.
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks Colorselector supports three modes: palette only, selector only, and both.
+ *
+ * @param[in] obj The colorselector object
+ * @param[in] mode The Elm_Colorselector_Mode
+ */
+EAPI void elm_colorselector_mode_set(Evas_Object *obj, Elm_Colorselector_Mode mode);
+
+/**
+ * @brief Gets the Colorselector mode.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The Colorselector object
+ * @return mode The current mode of the colorselector
+ */
+EAPI Elm_Colorselector_Mode elm_colorselector_mode_get(const Evas_Object *obj);
+
+/**
+ * @brief Gets the Palette item's color.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] it The color palette item
+ * @param[out] r An integer pointer for the r-value of color
+ * @param[out] g An integer pointer for the g-value of color
+ * @param[out] b An integer pointer for the b-value of color
+ * @param[out] a An integer pointer for the a-value of color
+ */
+EAPI void elm_colorselector_palette_item_color_get(const Elm_Object_Item *it, int *r, int *g, int *b, int *a);
+
+/**
+ * @brief Sets the palette item's color.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] it The color palette item
+ * @param[in] r The r-value of color
+ * @param[in] g The g-value of color
+ * @param[in] b The b-value of color
+ * @param[in] a The a-value of color
+ */
+EAPI void elm_colorselector_palette_item_color_set(Elm_Object_Item *it, int r, int g, int b, int a);
+
+/**
+ * @brief Adds a new color item to the palette.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The Colorselector object
+ * @param[in] r The r-value of color
+ * @param[in] g The g-value of color
+ * @param[in] b The b-value of color
+ * @param[in] a The a-value of color
+ * @return A new color palette Item
+ */
+EAPI Elm_Object_Item *elm_colorselector_palette_color_add(Evas_Object *obj, int r, int g, int b, int a);
+
+/**
+ * @brief Clears the palette items.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The Colorselector object
+ */
+EAPI void elm_colorselector_palette_clear(Evas_Object *obj);
+
+/**
+ * @brief Gets the list of palette items.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The Colorselector object
+ * @return The list of color items
+ */
+EAPI Eina_List *elm_colorselector_palette_items_get(const Evas_Object *obj);
+
+/**
+ * @brief Sets the current palette's name.
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks When the colorpalette name is set, colors are loaded from and saved to the config
+ * using the set name. If no name is set then colors are loaded from or
+ * saved to the "default" config.
+ *
+ * @param[in] obj The Colorselector object
+ * @param[in] palette_name The name of the palette
+ */
+EAPI void elm_colorselector_palette_name_set(Evas_Object *obj, const char *palette_name);
+
+/**
+ * @brief Gets the current palette's name.
+ *
+ * @since_tizen 2.3
+ *
+ * @details This returns the currently set palette name using which colors are
+ * saved/loaded into the config.
+ *
+ * @param[in] obj The Colorselector object
+ * @return The name of the palette
+ */
+EAPI const char *elm_colorselector_palette_name_get(const Evas_Object *obj);
+
/**
* @}
*/
diff --git a/src/lib/elm_config.h b/src/lib/elm_config.h
index ae16b4dc4..51920614a 100644
--- a/src/lib/elm_config.h
+++ b/src/lib/elm_config.h
@@ -1,11 +1,12 @@
/**
* @defgroup Config Elementary Config
- * @ingroup Elementary
+ * @ingroup elm_infra_group
+ * @brief Elementary configuration is formed by a set of options bounded to a
+ * given @ref Profile profile, like @ref Theme theme, @ref Fingers
+ * "finger size", etc.
*
- * Elementary configuration is formed by a set options bounded to a
- * given @ref Profile profile, like @ref Theme theme, @ref Fingers
- * "finger size", etc. These are functions with which one synchronizes
- * changes made to those values to the configuration storing files, de
+ * These are functions with which one can synchronize
+ * the changes made to those values into the configuration storing files, de
* facto. You most probably don't want to use the functions in this
* group unless you're writing an elementary configuration manager.
*
@@ -13,39 +14,39 @@
*/
/**
- * Save back Elementary's configuration, so that it will persist on
- * future sessions.
+ * @brief Saves back Elementary's configuration, so that it persists on
+ * future sessions.
*
- * @return @c EINA_TRUE, when successful. @c EINA_FALSE, otherwise.
- * @ingroup Config
+ * @details This function takes effect so do I/O immediately. Use
+ * it when you want to save all the configuration changes at once. The
+ * current configuration set gets saved onto the current profile
+ * configuration file.
*
- * This function will take effect -- thus, do I/O -- immediately. Use
- * it when you want to save all configuration changes at once. The
- * current configuration set will get saved onto the current profile
- * configuration file.
+ * @since_tizen 2.3
*
+ * @return @c EINA_TRUE if successful, otherwise @c EINA_FALSE
*/
EAPI Eina_Bool elm_config_save(void);
/**
- * Reload Elementary's configuration, bounded to current selected
- * profile.
+ * @brief Reloads Elementary's configuration, bounded to the current selected
+ * profile.
*
- * @return @c EINA_TRUE, when successful. @c EINA_FALSE, otherwise.
- * @ingroup Config
+ * @since_tizen 2.3
*
- * Useful when you want to force reloading of configuration values for
- * a profile. If one removes user custom configuration directories,
- * for example, it will force a reload with system values instead.
+ * @remarks It is useful when you want to force reloading of the configuration values for
+ * a profile. If one removes the user custom configuration directories,
+ * it forces a reload with system values instead.
*
+ * @return @c EINA_TRUE if successful, otherwise @c EINA_FALSE
*/
EAPI void elm_config_reload(void);
/**
- * Flush all config settings then apply those settings to all applications
- * using elementary on the current display.
+ * @brief Flushes all config settings and then applies those settings to all applications
+ * using elementary on the current display.
*
- * @ingroup Config
+ * @since_tizen 2.3
*/
EAPI void elm_config_all_flush(void);
@@ -55,565 +56,582 @@ EAPI void elm_config_all_flush(void);
/**
* @defgroup Profile Elementary Profile
- * @ingroup Elementary
+ * @ingroup elm_infra_group *
+ * @brief Profiles are pre-set options that affect the whole look-and-feel of
+ * Elementary-based applications.
*
- * Profiles are pre-set options that affect the whole look-and-feel of
- * Elementary-based applications. There are, for example, profiles
- * aimed at desktop computer applications and others aimed at mobile,
- * touchscreen-based ones. You most probably don't want to use the
- * functions in this group unless you're writing an elementary
+ * There are, for example, profiles aimed at desktop computer applications and
+ * others aimed at mobile, touchscreen-based ones. You most probably don't want
+ * to use the functions in this group unless you're writing an elementary
* configuration manager.
*
* @{
*/
/**
- * Get Elementary's profile in use.
+ * @brief Gets Elementary's profile in use.
*
- * This gets the global profile that is applied to all Elementary
- * applications.
+ * @details This gets the global profile that is applied to all Elementary
+ * applications.
*
- * @return The profile's name
- * @ingroup Profile
+ * @since_tizen 2.3
+ *
+ * @return The profile name
*/
EAPI const char *elm_config_profile_get(void);
/**
- * Get an Elementary's profile directory path in the filesystem. One
- * may want to fetch a system profile's dir or a user one (fetched
- * inside $HOME).
+ * @brief Gets an Elementary's profile directory path in the filesystem. One
+ * may want to fetch a system profile dir or a user one (fetched
+ * inside $HOME).
*
- * @param profile The profile's name
- * @param is_user Whether to lookup for a user profile (@c EINA_TRUE)
- * or a system one (@c EINA_FALSE)
- * @return The profile's directory path.
- * @ingroup Profile
+ * @since_tizen 2.3
*
- * @note You must free it with elm_config_profile_dir_free().
+ * @remarks You must free it using elm_config_profile_dir_free().
+ *
+ * @param[in] profile The profile name
+ * @param[in] is_user The boolean value that indicates whether to lookup for a user profile (@c EINA_TRUE)
+ * or a system one (@c EINA_FALSE)
+ * @return The profile's directory path
*/
EAPI const char *elm_config_profile_dir_get(const char *profile, Eina_Bool is_user);
/**
- * Free an Elementary's profile directory path, as returned by
- * elm_config_profile_dir_get().
+ * @brief Frees an Elementary's profile directory path, as returned by
+ * elm_config_profile_dir_get().
*
- * @param p_dir The profile's path
- * @ingroup Profile
+ * @since_tizen 2.3
+ *
+ * @param[in] p_dir The profile path
*
*/
EAPI void elm_config_profile_dir_free(const char *p_dir);
/**
- * Get Elementary's list of available profiles.
+ * @brief Gets an Elementary's list of available profiles.
+ *
+ * @since_tizen 2.3
*
- * @return The profiles list. List node data are the profile name
- * strings.
- * @ingroup Profile
+ * @remarks One must free this list, after usage, using the function
+ * elm_config_profile_list_free().
*
- * @note One must free this list, after usage, with the function
- * elm_config_profile_list_free().
+ * @return The profiles list \n
+ * List node data are the profile name strings.
*/
EAPI Eina_List *elm_config_profile_list_get(void);
/**
- * Free Elementary's list of available profiles.
+ * @brief Frees an Elementary's list of available profiles.
*
- * @param l The profiles list, as returned by elm_config_profile_list_get().
- * @ingroup Profile
+ * @since_tizen 2.3
*
+ * @param[in] l The profile list, as returned by elm_config_profile_list_get()
*/
EAPI void elm_config_profile_list_free(Eina_List *l);
/**
- * Set Elementary's profile.
+ * @brief Sets an Elementary's profile.
*
- * This sets the global profile that is applied to Elementary
- * applications. Just the process the call comes from will be
- * affected.
+ * @details This sets the global profile that is applied to Elementary
+ * applications. Only the process that the call comes from is
+ * affected.
*
- * @param profile The profile's name
- * @ingroup Profile
+ * @since_tizen 2.3
*
+ * @param[in] profile The profile name
*/
EAPI void elm_config_profile_set(const char *profile);
/**
+ * @internal
+ * @remarks Tizen only feature
+ *
+ * @brief Checks whether the given Elementary's profile exists.
+ *
+ * @param[in] profile The profile name
+ * @return @c EINA_TRUE if the profile exists, otherwise @c EINA_FALSE
+ */
+EAPI Eina_Bool elm_config_profile_exists(const char *profile);
+
+/**
* @}
*/
/**
* @defgroup Scrolling Elementary Scrolling
- * @ingroup Elementary
- *
- * These are functions setting how scrollable views in Elementary
- * widgets should behave on user interaction.
+ * @ingroup elm_infra_group
+ * @brief These are functions that set how scrollable views in Elementary
+ * widgets should behave on user interaction.
*
* @{
*/
/**
- * Get whether scrollers should bounce when they reach their
- * viewport's edge during a scroll.
+ * @brief Gets whether scrollers should bounce when they reach their
+ * viewport's edge during a scroll.
+ *
+ * @since_tizen 2.3
*
- * @return the thumb scroll bouncing state
+ * @remarks This is the default behavior for touch screens, in general.
*
- * This is the default behavior for touch screens, in general.
- * @ingroup Scrolling
+ * @return The thumb scroll bouncing state
*/
EAPI Eina_Bool elm_config_scroll_bounce_enabled_get(void);
/**
- * Set whether scrollers should bounce when they reach their
- * viewport's edge during a scroll.
+ * @brief Sets whether scrollers should bounce when they reach their
+ * viewport's edge during a scroll.
+ *
+ * @since_tizen 2.3
*
- * @param enabled the thumb scroll bouncing state
+ * @param[in] enabled The thumb scroll bouncing state
*
* @see elm_config_scroll_bounce_enabled_get()
- * @ingroup Scrolling
*/
EAPI void elm_config_scroll_bounce_enabled_set(Eina_Bool enabled);
/**
- * Get the amount of inertia a scroller will impose at bounce
- * animations.
+ * @brief Gets the amount of inertia a scroller imposes during bounce
+ * animations.
*
- * @return the thumb scroll bounce friction
+ * @since_tizen 2.3
*
- * @ingroup Scrolling
+ * @return The thumb scroll bounce friction
*/
EAPI double elm_config_scroll_bounce_friction_get(void);
/**
- * Set the amount of inertia a scroller will impose at bounce
- * animations.
+ * @brief Sets the amount of inertia a scroller imposes during bounce
+ * animations.
*
- * @param friction the thumb scroll bounce friction
+ * @since_tizen 2.3
+ *
+ * @param[in] friction The thumb scroll bounce friction
*
* @see elm_config_scroll_bounce_friction_get()
- * @ingroup Scrolling
*/
EAPI void elm_config_scroll_bounce_friction_set(double friction);
/**
- * Get the amount of inertia a <b>paged</b> scroller will impose at
- * page fitting animations.
+ * @brief Gets the amount of inertia a <b>paged</b> scroller imposes during
+ * page fitting animations.
*
- * @return the page scroll friction
+ * @since_tizen 2.3
*
- * @ingroup Scrolling
+ * @return The page scroll friction
*/
EAPI double elm_config_scroll_page_scroll_friction_get(void);
/**
- * Set the amount of inertia a <b>paged</b> scroller will impose at
- * page fitting animations.
+ * @brief Sets the amount of inertia a <b>paged</b> scroller imposes during
+ * page fitting animations.
+ *
+ * @since_tizen 2.3
*
- * @param friction the page scroll friction
+ * @param[in] friction The page scroll friction
*
* @see elm_config_scroll_page_scroll_friction_get()
- * @ingroup Scrolling
*/
EAPI void elm_config_scroll_page_scroll_friction_set(double friction);
/**
- * Get the amount of inertia a scroller will impose at region bring
- * animations.
+ * @brief Gets the amount of inertia a scroller imposes during region bring
+ * animations.
*
- * @return the bring in scroll friction
+ * @since_tizen 2.3
*
- * @ingroup Scrolling
+ * @return The bring in scroll friction
*/
EAPI double elm_config_scroll_bring_in_scroll_friction_get(void);
/**
- * Set the amount of inertia a scroller will impose at region bring
- * animations.
+ * @brief Sets the amount of inertia a scroller imposes during region bring
+ * animations.
*
- * @param friction the bring in scroll friction
+ * @since_tizen 2.3
+ *
+ * @param[in] friction The bring in scroll friction
*
* @see elm_config_scroll_bring_in_scroll_friction_get()
- * @ingroup Scrolling
*/
EAPI void elm_config_scroll_bring_in_scroll_friction_set(double friction);
/**
- * Get the amount of inertia scrollers will impose at animations
- * triggered by Elementary widgets' zooming API.
+ * @brief Gets the amount of inertia scrollers impose during animations
+ * triggered by Elementary widgets' zooming API.
*
- * @return the zoom friction
+ * @since_tizen 2.3
*
- * @ingroup Scrolling
+ * @return The zoom friction
*/
EAPI double elm_config_scroll_zoom_friction_get(void);
/**
- * Set the amount of inertia scrollers will impose at animations
- * triggered by Elementary widgets' zooming API.
+ * @brief Sets the amount of inertia scrollers impose during animations
+ * triggered by Elementary widgets' zooming API.
+ *
+ * @since_tizen 2.3
*
- * @param friction the zoom friction
+ * @param[in] friction The zoom friction
*
* @see elm_config_scroll_zoom_friction_get()
- * @ingroup Scrolling
*/
EAPI void elm_config_scroll_zoom_friction_set(double friction);
/**
- * Get whether scrollers should be draggable from any point in their
- * views.
+ * @brief Gets whether scrollers should be draggable from any point in their
+ * views.
*
- * @return the thumb scroll state
+ * @since_tizen 2.3
*
- * @note This is the default behavior for touch screens, in general.
- * @note All other functions namespaced with "thumbscroll" will only
- * have effect if this mode is enabled.
+ * @remarks This is the default behavior for touch screens, in general.
+ * @remarks All other functions namespaced with "thumbscroll" are only
+ * going to have effect if this mode is enabled.
*
- * @ingroup Scrolling
+ * @return The thumb scroll state
*/
EAPI Eina_Bool elm_config_scroll_thumbscroll_enabled_get(void);
/**
- * Set whether scrollers should be draggable from any point in their
- * views.
+ * @brief Sets whether scrollers should be draggable from any point in their
+ * views.
*
- * @param enabled the thumb scroll state
+ * @since_tizen 2.3
+ *
+ * @param[in] enabled The thumb scroll state
*
* @see elm_config_scroll_thumbscroll_enabled_get()
- * @ingroup Scrolling
*/
EAPI void elm_config_scroll_thumbscroll_enabled_set(Eina_Bool enabled);
/**
- * Get the number of pixels one should travel while dragging a
- * scroller's view to actually trigger scrolling.
+ * @brief Gets the number of pixels one should travel while dragging a
+ * scroller's view to actually trigger scrolling.
+ *
+ * @since_tizen 2.3
*
- * @return the thumb scroll threshold
+ * @remarks One would use higher values for touch screens, in general, because
+ * of their inherent imprecision.
*
- * One would use higher values for touch screens, in general, because
- * of their inherent imprecision.
- * @ingroup Scrolling
+ * @return The thumb scroll threshold
*/
EAPI unsigned int elm_config_scroll_thumbscroll_threshold_get(void);
/**
- * Set the number of pixels one should travel while dragging a
- * scroller's view to actually trigger scrolling.
+ * @brief Sets the number of pixels one should travel while dragging a
+ * scroller's view to actually trigger scrolling.
+ *
+ * @since_tizen 2.3
*
- * @param threshold the thumb scroll threshold
+ * @param[in] threshold The thumb scroll threshold
*
* @see elm_config_thumbscroll_threshold_get()
- * @ingroup Scrolling
*/
EAPI void elm_config_scroll_thumbscroll_threshold_set(unsigned int threshold);
/**
- * Get the number of pixels the range which can be scrolled,
- * while the scroller is holded.
+ * @brief Gets the number of pixels in the range that can be scrolled,
+ * while the scroller is held.
*
- * @return the thumb scroll hold threshold
+ * @since_tizen 2.3
*
- * @ingroup Scrolling
+ * @return The thumb scroll hold threshold
*/
EAPI unsigned int elm_config_scroll_thumbscroll_hold_threshold_get(void);
/**
- * Set the number of pixels the range which can be scrolled,
- * while the scroller is holded.
+ * @brief Sets the number of pixels in the range that can be scrolled,
+ * while the scroller is held.
*
- * @param threshold the thumb scroll hold threshold
+ * @since_tizen 2.3
+ *
+ * @param[in] threshold The thumb scroll hold threshold
*
* @see elm_config_thumbscroll_hold_threshold_get()
- * @ingroup Scrolling
*/
EAPI void elm_config_scroll_thumbscroll_hold_threshold_set(unsigned int threshold);
/**
- * Get the minimum speed of mouse cursor movement which will trigger
- * list self scrolling animation after a mouse up event
- * (pixels/second).
+ * @brief Gets the minimum speed of the mouse cursor movement that triggers
+ * the list self scrolling animation after a mouse up event
+ * (pixels/second).
*
- * @return the thumb scroll momentum threshold
+ * @since_tizen 2.3
*
- * @ingroup Scrolling
+ * @return The thumb scroll momentum threshold
*/
EAPI double elm_config_scroll_thumbscroll_momentum_threshold_get(void);
/**
- * Set the minimum speed of mouse cursor movement which will trigger
- * list self scrolling animation after a mouse up event
- * (pixels/second).
+ * @brief Sets the minimum speed of the mouse cursor movement that triggers
+ * the list self scrolling animation after a mouse up event
+ * (pixels/second).
+ *
+ * @since_tizen 2.3
*
- * @param threshold the thumb scroll momentum threshold
+ * @param[in] threshold The thumb scroll momentum threshold
*
* @see elm_config_thumbscroll_momentum_threshold_get()
- * @ingroup Scrolling
*/
EAPI void elm_config_scroll_thumbscroll_momentum_threshold_set(double threshold);
/**
- * Get the number of pixels the maximum distance which can be flicked.
- * If it is flicked more than this,
- * the flick distance is same with maximum distance.
+ * @brief Gets the number of pixels by which the maximum distance can be flicked.
+ * If it is flicked more than this,
+ * the flick distance is same as the maximum distance.
*
- * @return the thumb scroll maximum flick distance
+ * @since_tizen 2.3
*
- * @ingroup Scrolling
+ * @return The maximum thumb scroll flick distance
*/
EAPI unsigned int elm_config_scroll_thumbscroll_flick_distance_tolerance_get(void);
/**
- * Set the number of pixels the maximum distance which can be flicked.
- * If it is flicked more than this,
- * the flick distance is same with maximum distance.
+ * @brief Sets the number of pixels by which the maximum distance can be flicked.
+ * If it is flicked more than this,
+ * the flick distance is same as the maximum distance.
*
- * @param distance the thumb scroll maximum flick distance
+ * @since_tizen 2.3
+ *
+ * @param[in] distance The maximum thumb scroll flick distance
*
* @see elm_config_thumbscroll_flick_distance_tolerance_get()
- * @ingroup Scrolling
*/
EAPI void elm_config_scroll_thumbscroll_flick_distance_tolerance_set(unsigned int distance);
/**
- * Get the amount of inertia a scroller will impose at self scrolling
- * animations.
+ * @brief Gets the amount of inertia a scroller imposes during self scrolling
+ * animations.
*
- * @return the thumb scroll friction
+ * @since_tizen 2.3
*
- * @ingroup Scrolling
+ * @return The thumb scroll friction
*/
EAPI double elm_config_scroll_thumbscroll_friction_get(void);
/**
- * Set the amount of inertia a scroller will impose at self scrolling
- * animations.
+ * @brief Sets the amount of inertia a scroller imposes during self scrolling
+ * animations.
+ *
+ * @since_tizen 2.3
*
- * @param friction the thumb scroll friction
+ * @param[in] friction The thumb scroll friction
*
* @see elm_config_thumbscroll_friction_get()
- * @ingroup Scrolling
*/
EAPI void elm_config_scroll_thumbscroll_friction_set(double friction);
/**
- * Get the min amount of inertia a scroller will impose at self scrolling
- * animations.
+ * @brief Gets the minimum amount of inertia a scroller imposes durin self scrolling
+ * animations.
*
- * @return the thumb scroll min friction
+ * @since_tizen 2.3
*
- * @ingroup Scrolling
+ * @return The minimum thumb scroll friction
*/
EAPI double elm_config_scroll_thumbscroll_min_friction_get(void);
/**
- * Set the min amount of inertia a scroller will impose at self scrolling
- * animations.
+ * @brief Sets the minimum amount of inertia a scroller imposes during self scrolling
+ * animations.
*
- * @param friction the thumb scroll min friction
+ * @since_tizen 2.3
+ *
+ * @param[in] friction The minimum thumb scroll friction
*
* @see elm_config_thumbscroll_min_friction_get()
- * @ingroup Scrolling
*/
EAPI void elm_config_scroll_thumbscroll_min_friction_set(double friction);
/**
- * Get the standard velocity of the scroller. The scroll animation time is
- * same with thumbscroll friction, if the velocity is same with standard
- * velocity.
+ * @brief Gets the standard velocity of the scroller. The scroll animation time is
+ * same as the thumbscroll friction, if the velocity is same as the standard
+ * velocity.
*
- * @return the thumb scroll friction
+ * @since_tizen 2.3
*
- * @ingroup Scrolling
+ * @return The thumb scroll friction
*/
EAPI double elm_config_scroll_thumbscroll_friction_standard_get(void);
/**
- * Set the standard velocity of the scroller. The scroll animation time is
- * same with thumbscroll friction, if the velocity is same with standard
- * velocity.
+ * @brief Sets the standard velocity of the scroller. The scroll animation time is
+ * same as the thumbscroll friction, if the velocity is same as the standard
+ * velocity.
+ *
+ * @since_tizen 2.3
*
- * @param standard the thumb scroll friction standard
+ * @param[in] standard The standard thumb scroll friction
*
* @see elm_config_thumbscroll_friction_standard_get()
- * @ingroup Scrolling
*/
EAPI void elm_config_scroll_thumbscroll_friction_standard_set(double standard);
/**
- * Get the amount of lag between your actual mouse cursor dragging
- * movement and a scroller's view movement itself, while pushing it
- * into bounce state manually.
+ * @brief Gets the amount of lag between your actual mouse cursor dragging
+ * movement and a scroller's view movement itself, while pushing it
+ * into the bounce state manually.
*
- * @return the thumb scroll border friction
+ * @since_tizen 2.3
*
- * @ingroup Scrolling
+ * @return The thumb scroll border friction
*/
EAPI double elm_config_scroll_thumbscroll_border_friction_get(void);
/**
- * Set the amount of lag between your actual mouse cursor dragging
- * movement and a scroller's view movement itself, while pushing it
- * into bounce state manually.
+ * @brief Sets the amount of lag between your actual mouse cursor dragging
+ * movement and a scroller's view movement itself, while pushing it
+ * into the bounce state manually.
*
- * @param friction the thumb scroll border friction. @c 0.0 for
- * perfect synchrony between two movements, @c 1.0 for maximum
- * lag.
+ * @since_tizen 2.3
*
- * @see elm_config_thumbscroll_border_friction_get()
- * @note parameter value will get bound to 0.0 - 1.0 interval, always
+ * @remarks The parameter value gets bound to the 0.0 - 1.0 interval at all times.
*
- * @ingroup Scrolling
+ * @param[in] friction The thumb scroll border friction \n
+ * @c 0.0 for perfect synchrony between two movements,
+ * @c 1.0 for maximum lag.
+ *
+ * @see elm_config_thumbscroll_border_friction_get()
*/
EAPI void elm_config_scroll_thumbscroll_border_friction_set(double friction);
/**
- * Get the sensitivity amount which is be multiplied by the length of
- * mouse dragging.
+ * @brief Gets the amount of sensitivity that is to be multiplied by the length of
+ * mouse dragging.
*
- * @return the thumb scroll sensitivity friction
+ * @since_tizen 2.3
*
- * @ingroup Scrolling
+ * @return The thumb scroll sensitivity friction
*/
EAPI double elm_config_scroll_thumbscroll_sensitivity_friction_get(void);
/**
- * Set the sensitivity amount which is be multiplied by the length of
- * mouse dragging.
+ * @brief Sets the amount of sensitivity that is be multiplied by the length of
+ * mouse dragging.
*
- * @param friction the thumb scroll sensitivity friction. @c 0.1 for
- * minimum sensitivity, @c 1.0 for maximum sensitivity. 0.25
- * is proper.
+ * @since_tizen 2.3
*
- * @see elm_config_thumbscroll_sensitivity_friction_get()
- * @note parameter value will get bound to 0.1 - 1.0 interval, always
+ * @remarks The parameter value gets bound to the 0.1 - 1.0 interval at all times
+ *
+ * @param[in] friction The thumb scroll sensitivity friction \n
+ * @c 0.1 for minimum sensitivity,
+ * @c 1.0 for maximum sensitivity, @c 0.25 is proper.
*
- * @ingroup Scrolling
+ * @see elm_config_thumbscroll_sensitivity_friction_get()
*/
EAPI void elm_config_scroll_thumbscroll_sensitivity_friction_set(double friction);
/**
- * Get the minimum speed of mouse cursor movement which will accelerate
- * scrolling velocity after a mouse up event
- * (pixels/second).
+ * @brief Gets the minimum speed of the mouse cursor movement that accelerates
+ * scrolling velocity after a mouse up event
+ * (pixels/second).
*
- * @return the thumb scroll acceleration threshold
+ * @since_tizen 2.3
*
- * @ingroup Scrolling
+ * @return The thumb scroll acceleration threshold
*/
EAPI double elm_config_scroll_thumbscroll_acceleration_threshold_get(void);
/**
- * Set the minimum speed of mouse cursor movement which will accelerate
- * scrolling velocity after a mouse up event
- * (pixels/second).
+ * @brief Sets the minimum speed of the mouse cursor movement that accelerates
+ * scrolling velocity after a mouse up event
+ * (pixels/second).
+ *
+ * @since_tizen 2.3
*
- * @param threshold the thumb scroll acceleration threshold
+ * @param[in] threshold The thumb scroll acceleration threshold
*
* @see elm_config_thumbscroll_acceleration_threshold_get()
- * @ingroup Scrolling
*/
EAPI void elm_config_scroll_thumbscroll_acceleration_threshold_set(double threshold);
/**
- * Get the time limit for accelerating velocity.
+ * @brief Gets the time limit for accelerating velocity.
*
- * @return the thumb scroll acceleration time limit
+ * @since_tizen 2.3
*
- * @ingroup Scrolling
+ * @return The thumb scroll acceleration time limit
*/
EAPI double elm_config_scroll_thumbscroll_acceleration_time_limit_get(void);
/**
- * Set the time limit for accelerating velocity.
+ * @brief Sets the time limit for accelerating velocity.
+ *
+ * @since_tizen 2.3
*
- * @param time_limit the thumb scroll acceleration time limit
+ * @param[in] time_limit The thumb scroll acceleration time limit
*
* @see elm_config_thumbscroll_acceleration_time_limit_get()
- * @ingroup Scrolling
*/
EAPI void elm_config_scroll_thumbscroll_acceleration_time_limit_set(double time_limit);
/**
- * Get the weight for the acceleration.
+ * @brief Gets the weight for acceleration.
*
- * @return the thumb scroll acceleration weight
+ * @since_tizen 2.3
*
- * @ingroup Scrolling
+ * @return The thumb scroll acceleration weight
*/
EAPI double elm_config_scroll_thumbscroll_acceleration_weight_get(void);
/**
- * Set the weight for the acceleration.
+ * @brief Sets the weight for acceleration.
*
- * @param weight the thumb scroll acceleration weight
+ * @since_tizen 2.3
+ *
+ * @param[in] weight The thumb scroll acceleration weight
*
* @see elm_config_thumbscroll_acceleration_weight_get()
- * @ingroup Scrolling
*/
EAPI void elm_config_scroll_thumbscroll_acceleration_weight_set(double weight);
/**
- * Focus Autoscroll Mode
- *
- * @since 1.10
- * @ingroup Focus
+ * @}
*/
-typedef enum
-{
- ELM_FOCUS_AUTOSCROLL_MODE_SHOW, /**< directly show the focused region or item automatically */
- ELM_FOCUS_AUTOSCROLL_MODE_NONE, /**< do not show the focused region or item automatically */
- ELM_FOCUS_AUTOSCROLL_MODE_BRING_IN /**< bring_in the focused region or item automatically which might invole the scrolling */
-} Elm_Focus_Autoscroll_Mode;
/**
- * Get focus auto scroll mode.
+ * @defgroup longpress_group Longpress
+ * @ingroup elm_infra_group
*
- * When a region or an item is focused and it resides inside any scroller,
- * elementary will automatically scroll the focused area to the visible
- * viewport.
+ * @brief Configuration for longpress events.
*
- * @see elm_config_focus_autoscroll_mode_set()
- * @ingroup Focus
- * @since 1.10
+ * @{
*/
-EAPI Elm_Focus_Autoscroll_Mode elm_config_focus_autoscroll_mode_get(void);
/**
- * Set focus auto scroll mode.
+ * @brief Gets the duration for the occurrence of a long press event.
*
- * @param mode focus auto scroll mode. This can be one of the
- * Elm_Focus_Autoscroll_Mode enum values.
+ * @since_tizen 2.3
*
- * When a region or an item is focused and it resides inside any scroller,
- * elementary will automatically scroll the focused area to the visible
- * viewport.
- * Focus auto scroll mode is set to #ELM_FOCUS_AUTOSCROLL_MODE_SHOW by
- * default historically.
+ * @return The timeout for a long press event
+ */
+EAPI double elm_config_longpress_timeout_get(void);
+
+/**
+ * @brief Sets the duration for the occurrence of a long press event.
*
- * @see elm_config_focus_autoscroll_mode_get()
- * @ingroup Focus
- * @since 1.10
+ * @since_tizen 2.3
+ *
+ * @param[in] longpress_timeout The timeout for a long press event
*/
-EAPI void elm_config_focus_autoscroll_mode_set(Elm_Focus_Autoscroll_Mode mode);
+EAPI void elm_config_longpress_timeout_set(double longpress_timeout);
/**
* @}
*/
/**
- * Get the duration for occurring long press event.
+ * @defgroup softcursor_group SotfCursor
+ * @ingroup elm_infra_group
*
- * @return Timeout for long press event
- * @ingroup Longpress
+ * @brief Configuration for softcursor.
+ *
+ * @{
*/
-EAPI double elm_config_longpress_timeout_get(void);
/**
- * Set the duration for occurring long press event.
- *
- * @param lonpress_timeout Timeout for long press event
- * @ingroup Longpress
+ * @brief Enumeration of Elm Softcursor Mode
*/
-EAPI void elm_config_longpress_timeout_set(double longpress_timeout);
-
typedef enum _Elm_Softcursor_Mode
{
ELM_SOFTCURSOR_MODE_AUTO, /**< Auto-detect if a software cursor should be used (default) */
@@ -622,147 +640,197 @@ typedef enum _Elm_Softcursor_Mode
} Elm_Softcursor_Mode; /**< @since 1.7 */
/**
- * Set the mode used for software provided mouse cursors inline in the window
- * canvas.
+ * @brief Sets the mode used for software provided mouse cursors inline with the window
+ * canvas.
*
- * A software rendered cursor can be provided for rendering inline inside the
- * canvas windows in the event the native display system does not provide one
- * or the native one is not wanted.
+ * @since 1.7
*
- * @param lonpress_timeout Timeout for long press event
- * @ingroup Softcursor
+ * @since_tizen 2.3
+ *
+ * @remarks A software rendered cursor can be provided for rendering inline inside the
+ * canvas window in the event that the native display system does not provide one
+ * or the native one is not needed.
+ *
+ * @param[in] mode The mode used for software cursor
*
* @see elm_config_softcursor_mode_get()
- * @since 1.7
*/
EAPI void elm_config_softcursor_mode_set(Elm_Softcursor_Mode mode);
/**
- * Get the software cursor mode
+ * @brief Gets the software cursor mode.
+ *
+ * @since 1.7
+ *
+ * @since_tizen 2.3
*
* @return The mode used for software cursors
- * @ingroup Softcursor
*
* @see elm_config_softcursor_mode_set()
- * @since 1.7
*/
EAPI Elm_Softcursor_Mode elm_config_softcursor_mode_get(void);
/**
- * Get the duration after which tooltip will be shown.
+ * @}
+ */
+
+/**
+ * @ingroup Tooltips
+ * @{
+ */
+
+/**
+ * @brief Gets the duration after which a tooltip is shown.
+ *
+ * @since_tizen 2.3
*
- * @return Duration after which tooltip will be shown.
+ * @return The duration after which a tooltip is shown
*/
EAPI double elm_config_tooltip_delay_get(void);
/**
- * Set the duration after which tooltip will be shown.
+ * @brief Sets the duration after which a tooltip is shown.
+ *
+ * @since_tizen 2.3
*
- * @return @c EINA_TRUE if value is set.
+ * @param[in] delay The delay duration
+ * @return @c EINA_TRUE if the value is set, otherwise @c EINA_FALSE
*/
EAPI void elm_config_tooltip_delay_set(double delay);
/**
- * Get the configured cursor engine only usage
+ * @}
+ */
+
+/**
+ * @ingroup Cursors
+ * @{
+ */
+
+/**
+ * @brief Gets only the usage of the configured cursor engine.
*
- * This gets the globally configured exclusive usage of engine cursors.
+ * @details This gets the globally configured exclusive usage of the engine cursors.
*
- * @return 1 if only engine cursors should be used
- * @ingroup Cursors
+ * @since_tizen 2.3
+ *
+ * @return @c 1 if only engine cursors should be used,
+ * otherwise @c 0
*/
EAPI Eina_Bool elm_config_cursor_engine_only_get(void);
/**
- * Set the configured cursor engine only usage
+ * @brief Sets only the usage of the configured cursor engine.
*
- * This sets the globally configured exclusive usage of engine cursors.
- * It won't affect cursors set before changing this value.
+ * @details This sets the globally configured exclusive usage of the engine cursors.
+ * It won't affect the cursors set until this value is changed.
*
- * @param engine_only If 1 only engine cursors will be enabled, if 0 will
- * look for them on theme before.
- * @ingroup Cursors
+ * @since_tizen 2.3
+ *
+ * @param[in] engine_only If @c 1 only engine cursors are enabled,
+ * otherwise @c 0 if they are looked for on the theme
*/
EAPI void elm_config_cursor_engine_only_set(Eina_Bool engine_only);
/**
- * Get the global scaling factor
+ * @}
+ */
+
+/**
+ * @ingroup Scaling
+ * @{
+ */
+
+/**
+ * @brief Gets the global scaling factor.
+ *
+ * @details This gets the globally configured scaling factor that is applied to all
+ * objects.
*
- * This gets the globally configured scaling factor that is applied to all
- * objects.
+ * @since_tizen 2.3
*
* @return The scaling factor
- * @ingroup Scaling
*/
EAPI double elm_config_scale_get(void);
/**
- * Set the global scaling factor
+ * @brief Sets the global scaling factor.
*
- * This sets the globally configured scaling factor that is applied to all
- * objects.
+ * @details This sets the globally configured scaling factor that is applied to all
+ * objects.
*
- * @param scale The scaling factor to set
- * @ingroup Scaling
+ * @since_tizen 2.3
+ *
+ * @param[in] scale The scaling factor to set
*/
EAPI void elm_config_scale_set(double scale);
/**
+ * @}
+ */
+
+/**
* @defgroup Password_last_show Password show last
- * @ingroup Elementary
+ * @ingroup elm_infra_group
+ *
+ * @brief Showing the last feature of the password mode enables users to view
+ * the last input entered for a few seconds before it is masked.
*
- * Show last feature of password mode enables user to view
- * the last input entered for few seconds before masking it.
- * These functions allow to set this feature in password mode
- * of entry widget and also allow to manipulate the duration
+ * These functions allow to set this feature in the password mode
+ * of the entry widget and also allow to manipulate the duration
* for which the input has to be visible.
*
* @{
*/
/**
- * Get the "show last" setting of password mode.
+ * @brief Gets the "show last" setting of the password mode.
*
- * This gets the "show last" setting of password mode which might be
- * enabled or disabled.
+ * @details This gets the "show last" setting of the password mode which might be
+ * enabled or disabled.
*
- * @return @c EINA_TRUE, if the "show last" setting is enabled,
- * @c EINA_FALSE if it's disabled.
+ * @since_tizen 2.3
*
- * @ingroup Password_last_show
+ * @return @c EINA_TRUE if the "show last" setting is enabled,
+ * otherwise @c EINA_FALSE if it's disabled
*/
EAPI Eina_Bool elm_config_password_show_last_get(void);
/**
- * Set show last setting in password mode.
+ * @brief Sets the show last setting of the password mode.
*
- * This enables or disables show last setting of password mode.
+ * @details This enables or disables the show last setting of the password mode.
*
- * @param password_show_last If @c EINA_TRUE, enables "show last" in password mode.
+ * @since_tizen 2.3
+ *
+ * @param[in] password_show_last If @c EINA_TRUE it enables "show last" in the password mode,
+ * otherwise @c EINA_FALSE
* @see elm_config_password_show_last_timeout_set()
- * @ingroup Password_last_show
*/
EAPI void elm_config_password_show_last_set(Eina_Bool password_show_last);
/**
- * Get the timeout value in "show last" password mode.
+ * @brief Gets the timeout value of the "show last" password mode.
+ *
+ * @details This gets the timeout value for which the last input entered in the password
+ * mode is visible.
*
- * This gets the time out value for which the last input entered in password
- * mode will be visible.
+ * @since_tizen 2.3
*
- * @return The timeout value of "show last" password mode.
- * @ingroup Password_last_show
+ * @return The timeout value of the "show last" password mode
*/
EAPI double elm_config_password_show_last_timeout_get(void);
/**
- * Set's the timeout value in "show last" password mode.
+ * @brief Sets the timeout value of the "show last" password mode.
+ *
+ * @details This sets the timeout value for which the last input entered in the password
+ * mode is visible.
*
- * This sets the time out value for which the last input entered in password
- * mode will be visible.
+ * @since_tizen 2.3
*
- * @param password_show_last_timeout The timeout value.
+ * @param[in] password_show_last_timeout The timeout value
* @see elm_config_password_show_last_set()
- * @ingroup Password_last_show
*/
EAPI void elm_config_password_show_last_timeout_set(double password_show_last_timeout);
@@ -772,10 +840,10 @@ EAPI void elm_config_password_show_last_timeout_set(double password_show_la
/**
* @defgroup Engine Elementary Engine
- * @ingroup Elementary
+ * @ingroup elm_infra_group
*
- * These are functions setting and querying which rendering engine
- * Elementary will use for drawing its windows' pixels.
+ * @brief These are functions that set and query the rendering engine that
+ * Elementary uses for drawing its windows' pixels.
*
* The following are the available engines:
* @li "fb"
@@ -783,58 +851,69 @@ EAPI void elm_config_password_show_last_timeout_set(double password_show_la
* @li "ews"
* @li NULL - no engine config
*
- * @deprecated Please use elm_config_accel_preference_override_set() instead
+ * @note Please use @ref elm_config_accel_preference_override_set() instead
*
* @{
*/
/**
- * @brief Get Elementary's rendering engine in use.
+ * @brief Gets Elementary's rendering engine in use.
+ *
+ * @details This gets the global rendering engine that is applied to all Elementary
+ * applications.
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks There's no need to free the returned string, here.
*
- * @return The rendering engine's name
- * @note there's no need to free the returned string, here.
*
- * This gets the global rendering engine that is applied to all Elementary
- * applications.
+ * @return The rendering engine name
*
* @see elm_config_engine_set()
*/
EAPI const char *elm_config_engine_get(void);
/**
- * @brief Set Elementary's rendering engine for use.
+ * @brief Sets Elementary's rendering engine for use.
*
- * @param engine The rendering engine's name
+ * @since_tizen 2.3
*
- * Note that it will take effect only to Elementary windows created after
- * this is called.
+ * @remarks Note that it takes effect only on Elementary windows created after
+ * this is called.
+ *
+ * @param[in] engine The rendering engine name
*
* @see elm_win_add()
*/
EAPI void elm_config_engine_set(const char *engine);
/**
- * @brief Get Elementary's preferred engine to use.
+ * @brief Gets Elementary's preferred engine to use.
*
- * @return The rendering engine's name
- * @note there's no need to free the returned string, here.
+ * @details This gets the global rendering engine that is applied to all Elementary
+ * applications and is PREFERRED by the application. This can (and will)
+ * override the engine that is configured for all applications.
*
- * This gets the global rendering engine that is applied to all Elementary
- * applications and is PREFERRED by the application. This can (and will)
- * override the engine configured for all applications which.
+ * @since_tizen 2.3
+ *
+ * @remarks There's no need to free the returned string, here.
+ *
+ * @return The rendering engine name
*
* @see elm_config_preferred_engine_set()
*/
EAPI const char *elm_config_preferred_engine_get(void);
/**
- * @brief Set Elementary's preferred rendering engine for use.
+ * @brief Sets Elementary's preferred rendering engine for use.
*
- * @param engine The rendering engine's name
+ * @since_tizen 2.3
*
- * Note that it will take effect only to Elementary windows created after
- * this is called. This overrides the engine set by configuration at
- * application startup. Note that it is a hint and may not be honored.
+ * @remarks Note that it takes effect only on Elementary windows created after
+ * this is called. This overrides the engine set by the configuration at
+ * application startup. Note that it is a hint and may not be honored.
+ *
+ * @param[in] engine The rendering engine name
*
* @see elm_win_add()
*/
@@ -846,9 +925,11 @@ EAPI void elm_config_preferred_engine_set(const char *engine);
* @return The acceleration preference hint string
* @note there's no need to free the returned string, here.
*
- * See elm_config_accel_preference_set() for more information, but this simply
- * returns what was set by this call, nothing more.
- *
+ * @details See elm_config_accel_preference_set() for more information, but
+ * this simply returns what was set by this call, nothing more.
+ *
+ * @since_tizen 2.3
+ *
* @see elm_config_accel_preference_set()
* @since 1.10
*/
@@ -857,25 +938,60 @@ EAPI const char *elm_config_accel_preference_get(void);
/**
* @brief Set Elementary's acceleration preferences for new windows.
*
- * @param pref The preference desired as a normal C string
- *
- * Note that it will take effect only to Elementary windows created after
- * this is called. The @p pref string is a freeform C string that indicates
- * what kind of acceleration is preferred. This may or may not be honored,
- * but a best attempt will be made. Known strings are as follows:
- *
- * "gl", "opengl" - try use opengl.
- * "3d" - try and use a 3d acceleration unit.
- * "hw", "hardware", "accel" - try any acceleration unit (best possible)
- *
- * This takes precedence over engine preferences set with
- * elm_config_preferred_engine_set().
- *
+ * @param[in] pref The preference desired as a normal C string
+ *
+ * @details Note that it will take effect only to Elementary windows created after
+ * this is called. The @p pref string is a freeform C string that indicates
+ * what kind of acceleration is preferred. This may or may not be honored,
+ * but a best attempt will be made. Known strings are as follows:
+ * @li "gl", "opengl" - try use opengl.
+ * @li "3d" - try and use a 3d acceleration unit.
+ * @li "hw", "hardware", "accel" - try any acceleration unit (best possible)
+ *
+ * @note This takes precedence over engine preferences set with
+ * @ref elm_config_preferred_engine_set().
+ *
+ * @since_tizen 2.3
+ *
* @see elm_win_add()
* @since 1.10
*/
EAPI void elm_config_accel_preference_set(const char *pref);
+/**
+ * @brief Get the acceleration override preference flag
+ *
+ * @since_tizen 2.3
+ *
+ * @details This gets the acceleration override preference. This is a flag that
+ * has the global system acceleration preference configuration forcibly
+ * override whatever acceleration preference the application may want.
+ *
+ * @return If acceleration override is enabled
+ *
+ * @since 1.11
+ */
+EAPI Eina_Bool elm_config_accel_preference_override_get(void);
+
+/**
+ * @brief Set the acceleration override preference flag
+ *
+ * @since_tizen 2.3
+ *
+ * @details This sets the acceleration override preference. This is a flag that
+ * has the global system acceleration preference configuration forcibly
+ * override whatever acceleration preference the application may want.
+ *
+ * @param[in] enabled This should be @c EINA_TRUE if enabled, or @c EINA_FALSE if
+ * not.
+ *
+ * @since 1.11
+ */
+EAPI void elm_config_accel_preference_override_set(Eina_Bool enabled);
+
+/**
+ * @}
+ */
typedef struct _Elm_Text_Class
{
@@ -883,6 +999,10 @@ typedef struct _Elm_Text_Class
const char *desc;
} Elm_Text_Class;
+/**
+ * @brief Structure of Elm Font Overlay
+ * @ingroup Fonts
+ */
typedef struct _Elm_Font_Overlay
{
const char *text_class;
@@ -891,53 +1011,61 @@ typedef struct _Elm_Font_Overlay
} Elm_Font_Overlay;
/**
- * Get Elementary's list of supported text classes.
- *
- * @return The text classes list, with @c Elm_Text_Class blobs as data.
* @ingroup Fonts
*
- * Release the list with elm_text_classes_list_free().
+ * @{
+ */
+
+/**
+ * @brief Gets Elementary's list of supported text classes.
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks Release the list with elm_text_classes_list_free().
+ *
+ * @return The text classes list with @c Elm_Text_Class blobs as data
*/
EAPI Eina_List *elm_config_text_classes_list_get(void);
/**
- * Free Elementary's list of supported text classes.
+ * @brief Frees Elementary's list of supported text classes.
*
- * @ingroup Fonts
+ * @param[in] list The text classes list to be freed.
+ *
+ * @since_tizen 2.3
*
* @see elm_config_text_classes_list_get().
*/
EAPI void elm_config_text_classes_list_free(Eina_List *list);
/**
- * Get Elementary's list of font overlays, set with
- * elm_config_font_overlay_set().
+ * @brief Gets Elementary's list of font overlays, set using
+ * elm_config_font_overlay_set().
*
- * @return The font overlays list, with @c Elm_Font_Overlay blobs as
- * data.
+ * @since_tizen 2.3
*
- * @ingroup Fonts
+ * @remarks For each text class, one can set a <b>font overlay</b>,
+ * overriding the default font properties for that class coming from
+ * the theme in use. There is no need to free this list.
*
- * For each text class, one can set a <b>font overlay</b> for it,
- * overriding the default font properties for that class coming from
- * the theme in use. There is no need to free this list.
+ * @return The font overlays list with #Elm_Font_Overlay blobs as data
*
- * @see elm_config_font_overlay_set() and elm_config_font_overlay_unset().
+ * @see elm_config_font_overlay_set()
+ * @see elm_config_font_overlay_unset()
*/
EAPI const Eina_List *elm_config_font_overlay_list_get(void);
/**
- * Set a font overlay for a given Elementary text class.
+ * @brief Sets a font overlay for a given Elementary text class.
*
- * @param text_class Text class name
- * @param font Font name and style string
- * @param size Font size.
+ * @since_tizen 2.3
*
- * @note If the @p size is lower than zero, the value will be the amount of the size percentage. ex) -50: half of the current size, -100: current size, -10: 1/10 size.
+ * @remarks @a font has to be in the format returned by elm_font_fontconfig_name_get().
*
- * @ingroup Fonts
+ * @param[in] text_class The text class name
+ * @param[in] font The font name and style string
+ * @param[in] size The font size
*
- * @p font has to be in the format returned by elm_font_fontconfig_name_get().
* @see elm_config_font_overlay_list_get()
* @see elm_config_font_overlay_unset()
* @see edje_object_text_class_set()
@@ -945,563 +1073,498 @@ EAPI const Eina_List *elm_config_font_overlay_list_get(void);
EAPI void elm_config_font_overlay_set(const char *text_class, const char *font, Evas_Font_Size size);
/**
- * Get access mode
- *
- * @return the access mode bouncing state
+ * @}
+ */
+
+/**
+ * @ingroup Access
+ * @{
+ */
+
+/**
+ * @brief Gets the access mode.
*
* @since 1.7
*
- * @ingroup Access
+ * @return The access mode bouncing state
*
* @see elm_config_access_set()
*/
EAPI Eina_Bool elm_config_access_get(void);
/**
- * Set access mode
- *
- * @param is_access If @c EINA_TRUE, enables access mode
- *
- * @note Elementary objects may have information (e.g. label on the elm_button)
- * to be read. This information is read by access module when an object
- * receives EVAS_CALLBACK_MOUSE_IN event
+ * @brief Sets the access mode.
*
* @since 1.7
*
- * @ingroup Access
+ * @remarks Elementary objects may have information (e.g. label on the elm_button)
+ * to be read. This information is read by the access module when an object
+ * receives the EVAS_CALLBACK_MOUSE_IN event.
+ *
+ * @param[in] is_access If @c EINA_TRUE it enables the access mode, otherwise @c EINA_FALSE
*
* @see elm_config_access_get()
*/
EAPI void elm_config_access_set(Eina_Bool is_access);
/**
- * Get whether selection should be cleared when entry widget is unfocused.
+ * @internal
+ * @remarks Tizen only feature
+ *
+ * @brief Gets whether reading the password on accessibiliy is enabled.
+ *
+ * @since 1.8
+ *
+ * @return @c EINA_TRUE if the reading the password on accessibility is enabled,
+ * otherwise @c EINA_FALSE
+ *
+ * @see elm_config_access_password_read_enabled_set()
+ */
+EAPI Eina_Bool elm_config_access_password_read_enabled_get(void);
+
+/**
+ * @internal
+ * @remarks Tizen only feature
+ *
+ * @brief Sets whether reading the password on accessibiliy is enabled.
+ *
+ * @since 1.8
+ *
+ * @param[in] enabled If @c EINA_TRUE it enables reading the password on accessibility,
+ * otherwise @c EINA_FALSE
+ *
+ * @see elm_config_access_password_read_enabled_get()
+ */
+EAPI void elm_config_access_password_read_enabled_set(Eina_Bool enabled);
+
+/**
+ * @}
+ */
+
+/**
+ * @defgroup Selection Elementary Selection
+ * @ingroup elm_infra_group
*
- * @return if the selection would be cleared on unfocus.
+ * @brief Elementary Selection configuration
+ *
+ * @{
+ */
+
+/**
+ * @brief Gets whether the selection should be cleared when entry widget is unfocused.
*
* @since 1.7
*
- * @ingroup Selection
+ * @since_tizen 2.3
+ *
+ * @return @c EINA_TRUE if the selection would be cleared when unfocused,
+ * otherwise @c EINA_FALSE
*
* @see elm_config_selection_unfocused_clear_set()
*/
EAPI Eina_Bool elm_config_selection_unfocused_clear_get(void);
/**
- * Set whether selection should be cleared when entry widget is unfocused.
- *
- * @param enabled If @c EINA_TRUE, clear selection when unfocus,
- * otherwise does not clear selection when unfocus.
+ * @brief Sets whether the selection should be cleared when entry widget is unfocused.
*
* @since 1.7
*
- * @ingroup Selection
+ * @since_tizen 2.3
+ *
+ * @param[in] enabled If @c EINA_TRUE clear the selection when unfocused,
+ * otherwise @c EINA_FALSE to not clear the selection when unfocused
*
* @see elm_config_selection_unfocused_clear_get()
*/
EAPI void elm_config_selection_unfocused_clear_set(Eina_Bool enabled);
/**
- * Unset a font overlay for a given Elementary text class.
+ * @}
+ */
+
+/**
+ * @ingroup Fonts
+ * @{
+ */
+
+/**
+ * @brief Unsets a font overlay for a given Elementary text class.
*
- * @param text_class Text class name
+ * @since_tizen 2.3
*
- * @ingroup Fonts
+ * @remarks This brings back text elements belonging to the text class
+ * @a text_class back to their default font settings.
*
- * This will bring back text elements belonging to text class
- * @p text_class back to their default font settings.
+ * @param[in] text_class The text class name
*/
EAPI void elm_config_font_overlay_unset(const char *text_class);
/**
- * Apply the changes made with elm_config_font_overlay_set() and
- * elm_config_font_overlay_unset() on the current Elementary window.
+ * @brief Applies the changes made with elm_config_font_overlay_set() and
+ * elm_config_font_overlay_unset() on the current Elementary window.
*
- * @ingroup Fonts
+ * @since_tizen 2.3
*
- * This applies all font overlays set to all objects in the UI.
+ * @details This applies all font overlays set to all objects in the UI.
*/
EAPI void elm_config_font_overlay_apply(void);
/**
- * Apply the specified font hinting type.
- * EVAS_FONT_HINTING_NONE < No font hinting
- * EVAS_FONT_HINTING_AUTO < Automatic font hinting
- * EVAS_FONT_HINTING_BYTECODE < Bytecode font hinting
- *
- * @ingroup Fonts
- *
- * This applies font hint changes to all windows of the current application.
- *
- * @since 1.13
+ * @}
+ */
+
+/**
+ * @ingroup Fingers
+ * @{
*/
-EAPI void elm_config_font_hint_type_set(int type);
/**
- * Get the configured "finger size"
+ * @brief Gets the configured "finger size".
*
- * @return The finger size
+ * @details This gets the globally configured finger size, <b>in pixels</b>.
*
- * This gets the globally configured finger size, <b>in pixels</b>
+ * @since_tizen 2.3
*
- * @ingroup Fingers
+ * @return The finger size
*/
EAPI Evas_Coord elm_config_finger_size_get(void);
/**
- * Set the configured finger size
+ * @brief Sets the configured finger size.
*
- * This sets the globally configured finger size in pixels
+ * @details This sets the globally configured finger size in pixels.
*
- * @param size The finger size
- * @ingroup Fingers
+ * @since_tizen 2.3
+ *
+ * @param[in] size The finger size
*/
EAPI void elm_config_finger_size_set(Evas_Coord size);
/**
- * Get the configured cache flush interval time
+ * @}
+ */
+
+/**
+ * @ingroup Caches
+ * @{
+ */
+
+/**
+ * @brief Gets the configured cache flush interval time.
*
- * This gets the globally configured cache flush interval time, in
- * ticks
+ * @details This gets the globally configured cache flush interval time, in
+ * ticks.
+ *
+ * @since_tizen 2.3
*
* @return The cache flush interval time
- * @ingroup Caches
*
* @see elm_cache_all_flush()
*/
EAPI int elm_config_cache_flush_interval_get(void);
/**
- * Set the configured cache flush interval time
+ * @brief Sets the configured cache flush interval time.
*
- * This sets the globally configured cache flush interval time, in ticks
+ * @details This sets the globally configured cache flush interval time, in ticks.
*
- * @param size The cache flush interval time
+ * @since_tizen 2.3
*
- * @note The @p size must be greater than 0. if not, the cache flush will be
- * ignored.
+ * @remarks The @a size must be greater than @c 0. If not, the cache flush is
+ * ignored.
*
- * @ingroup Caches
+ * @param[in] size The cache flush interval time
*
* @see elm_cache_all_flush()
*/
EAPI void elm_config_cache_flush_interval_set(int size);
/**
- * Get the configured cache flush enabled state
+ * @brief Gets the configured cache flush enabled state.
+ *
+ * @details This gets the globally configured cache flush state - whether it is enabled
+ * or not. When cache flushing is enabled, elementary regularly
+ * (see elm_config_cache_flush_interval_get() ) flushes caches and dumps data out of
+ * memory and allows usage to re-seed caches and data in memory where it
+ * can do so. An idle application thus minimizes its memory usage as
+ * data is freed from memory and does not re-load as it is idle and
+ * not rendering or doing anything graphically right now.
*
- * This gets the globally configured cache flush state - if it is enabled
- * or not. When cache flushing is enabled, elementary will regularly
- * (see elm_config_cache_flush_interval_get() ) flush caches and dump data out of
- * memory and allow usage to re-seed caches and data in memory where it
- * can do so. An idle application will thus minimize its memory usage as
- * data will be freed from memory and not be re-loaded as it is idle and
- * not rendering or doing anything graphically right now.
+ * @since_tizen 2.3
*
* @return The cache flush state
- * @ingroup Caches
*
* @see elm_cache_all_flush()
*/
EAPI Eina_Bool elm_config_cache_flush_enabled_get(void);
/**
- * Set the configured cache flush enabled state
+ * @brief Sets the configured cache flush enabled state.
*
- * This sets the globally configured cache flush enabled state.
+ * @details This sets the globally configured cache flush enabled state.
*
- * @param enabled The cache flush enabled state
- * @ingroup Caches
+ * @since_tizen 2.3
+ *
+ * @param[in] enabled The cache flush enabled state
*
* @see elm_cache_all_flush()
*/
EAPI void elm_config_cache_flush_enabled_set(Eina_Bool enabled);
/**
- * Get the configured font cache size
+ * @brief Gets the configured font cache size.
*
- * This gets the globally configured font cache size, in kilo bytes.
+ * @details This gets the globally configured font cache size, in bytes.
+ *
+ * @since_tizen 2.3
*
* @return The font cache size
- * @ingroup Caches
*/
EAPI int elm_config_cache_font_cache_size_get(void);
/**
- * Set the configured font cache size
+ * @brief Sets the configured font cache size
*
- * This sets the globally configured font cache size, in kilo bytes
+ * @details This sets the globally configured font cache size, in bytes
*
- * @param size The font cache size
- * @ingroup Caches
+ * @since_tizen 2.3
+ *
+ * @param[in] size The font cache size
*/
EAPI void elm_config_cache_font_cache_size_set(int size);
/**
- * Get the configured image cache size
+ * @brief Gets the configured image cache size.
+ *
+ * @details This gets the globally configured image cache size, in bytes
*
- * This gets the globally configured image cache size, in kilo bytes
+ * @since_tizen 2.3
*
* @return The image cache size
- * @ingroup Caches
*/
EAPI int elm_config_cache_image_cache_size_get(void);
/**
- * Set the configured image cache size
+ * @brief Sets the configured image cache size.
*
- * This sets the globally configured image cache size, in kilo bytes
+ * @details This sets the globally configured image cache size, in bytes.
*
- * @param size The image cache size
- * @ingroup Caches
+ * @since_tizen 2.3
+ *
+ * @param[in] size The image cache size
*/
EAPI void elm_config_cache_image_cache_size_set(int size);
+
/**
- * Get the configured edje file cache size.
+ * @brief Gets the configured edje file cache size.
*
- * This gets the globally configured edje file cache size, in number
- * of files.
+ * @details This gets the globally configured edje file cache size, in number
+ * of files.
+ *
+ * @since_tizen 2.3
*
* @return The edje file cache size
- * @ingroup Caches
*/
EAPI int elm_config_cache_edje_file_cache_size_get(void);
/**
- * Set the configured edje file cache size
+ * @brief Sets the configured edje file cache size.
*
- * This sets the globally configured edje file cache size, in number
- * of files.
+ * @details This sets the globally configured edje file cache size, in number
+ * of files.
*
- * @param size The edje file cache size
- * @ingroup Caches
+ * @since_tizen 2.3
+ *
+ * @param[in] size The edje file cache size
*/
EAPI void elm_config_cache_edje_file_cache_size_set(int size);
/**
- * Get the configured edje collections (groups) cache size.
+ * @brief Gets the configured edje collections (groups) cache size.
+ *
+ * @details This gets the globally configured edje collections cache size, in
+ * number of collections.
*
- * This gets the globally configured edje collections cache size, in
- * number of collections.
+ * @since_tizen 2.3
*
* @return The edje collections cache size
- * @ingroup Caches
*/
EAPI int elm_config_cache_edje_collection_cache_size_get(void);
/**
- * Set the configured edje collections (groups) cache size
+ * @brief Sets the configured edje collections (groups) cache size.
*
- * This sets the globally configured edje collections cache size, in
- * number of collections.
+ * @details This sets the globally configured edje collections cache size, in
+ * number of collections.
*
- * @param size The edje collections cache size
- * @ingroup Caches
- */
-EAPI void elm_config_cache_edje_collection_cache_size_set(int size);
-
-/**
- * Get the configured vsync flag
- *
- * This gets the globally configured vsync flag that asks some backend
- * engines to use vsync display if possible.
+ * @since_tizen 2.3
*
- * @return If vsync is enabled
- *
- * @since 1.11
+ * @param[in] size The edje collections cache size
*/
-EAPI Eina_Bool elm_config_vsync_get(void);
+EAPI void elm_config_cache_edje_collection_cache_size_set(int size);
/**
- * Set the configured vsync flag
- *
- * This sets the globally configured vsync flag that asks some backend
- * engines to use vsync display if possible.
- *
- * @param enabled This should be @c EINA_TRUE if enabled, or @c EINA_FALSE if
- * not.
- *
- * @since 1.11
+ * @}
*/
-EAPI void elm_config_vsync_set(Eina_Bool enabled);
/**
- * Get the acceleration override preference flag
- *
- * This gets the acceleration override preference. This is a flag that
- * has the global system acceleration preference configuration forcibly
- * override whatever acceleration preference the application may want.
- *
- * @return If acceleration override is enabled
- *
- * @since 1.11
+ * @ingroup Focus
+ * @{
*/
-EAPI Eina_Bool elm_config_accel_preference_override_get(void);
/**
- * Set the acceleration override preference flag
+ * @brief Gets the enable status of the focus highlight.
*
- * This sets the acceleration override preference. This is a flag that
- * has the global system acceleration preference configuration forcibly
- * override whatever acceleration preference the application may want.
- *
- * @param enabled This should be @c EINA_TRUE if enabled, or @c EINA_FALSE if
- * not.
- *
- * @since 1.11
- */
-EAPI void elm_config_accel_preference_override_set(Eina_Bool enabled);
-
-/**
- * Get the enable status of the focus highlight
+ * @details This gets whether the highlight on the focused objects is enabled.
*
- * This gets whether the highlight on focused objects is enabled or not
+ * @return The status of the focus highlight
*
- * @return enable @c EINA_TRUE if the focus highlight is enabled, @c EINA_FALSE
- * otherwise.
+ * @since_tizen 2.3
*
* @see elm_config_focus_highlight_enabled_set()
- * @ingroup Focus
*/
EAPI Eina_Bool elm_config_focus_highlight_enabled_get(void);
/**
- * Set the enable status of the focus highlight
+ * @brief Sets the enable status of the focus highlight.
*
- * @param enable Enable highlight if @c EINA_TRUE, disable otherwise
+ * @details This sets whether to show the highlight on focused objects or not.
*
- * Set whether to show or not the highlight on focused objects
+ * @since_tizen 2.3
*
- * Note that it will take effect only to Elementary windows created after
- * this is called.
+ * @remarks Note that it takes effect only on Elementary windows created after
+ * this is called.
*
- * @see elm_config_focus_highlight_enabled_get()
- * @ingroup Focus
+ * @param[in] enable If @c EINA_TRUE it enables highlight,
+ * otherwise @c EINA_FALSE disables highlight
+ *
+ * @see elm_win_add()
*/
EAPI void elm_config_focus_highlight_enabled_set(Eina_Bool enable);
/**
- * Get the enable status of the focus highlight animation
+ * @brief Gets the enable status of the highlight animation.
*
- * @return animate @c EINA_TRUE if the focus highlight animation is enabled, @c
- * EINA_FALSE otherwise.
+ * @details This gets whether the focus highlight, if enabled, animates its switch from
+ * one object to the next.
*
- * Get whether the focus highlight, if enabled, will animate its switch from
- * one object to the next
+ * @since_tizen 2.3
*
- * @see elm_config_focus_highlight_animate_set()
- * @ingroup Focus
+ * @return The focus highlight mode set
*/
EAPI Eina_Bool elm_config_focus_highlight_animate_get(void);
/**
- * Set the enable status of the highlight animation
+ * @brief Sets the enable status of the highlight animation.
*
- * @param animate Enable animation if @c EINA_TRUE, disable otherwise
+ * @details This sets whether the focus highlight, if enabled, animates its switch from
+ * one object to the next.
*
- * Set whether the focus highlight, if enabled, will animate its switch from
- * one object to the next
+ * @since_tizen 2.3
*
- * Note that it will take effect only to Elementary windows created after
- * this is called.
+ * @remarks Note that it takes effect only on Elementary windows created after
+ * this is called.
*
- * @see elm_config_focus_highlight_animate_get()
- * @ingroup Focus
- */
-EAPI void elm_config_focus_highlight_animate_set(Eina_Bool animate);
-
-/**
- * Get the disable status of the focus highlight clip feature.
+ * @param[in] animate If @c EINA_TRUE it enables animation,
+ * otherwise @c EINA_FALSE disables it
*
- * @return The focus highlight clip disable status
- *
- * Get whether the focus highlight clip feature is disabled. If disabled return
- * @c EINA_TRUE, else return @c EINA_FALSE. If the return is @c EINA_TRUE, focus
- * highlight clip feature is not disabled so the focus highlight can be clipped.
- *
- * @see elm_config_focus_highlight_clip_disabled_set()
- * @since 1.10
- * @ingroup Focus
- */
-EAPI Eina_Bool elm_config_focus_highlight_clip_disabled_get(void);
-
-/**
- * Set the disable status of the focus highlight clip feature.
- *
- * @param disable Disable focus highlight clip feature if @c EINA_TRUE, enable
- * it otherwise.
- *
- * @see elm_config_focus_highlight_clip_disabled_get()
- * @since 1.10
- * @ingroup Focus
+ * @see elm_win_add()
*/
-EAPI void elm_config_focus_highlight_clip_disabled_set(Eina_Bool disable);
+EAPI void elm_config_focus_highlight_animate_set(Eina_Bool animate);
/**
- * Focus Movement Policy
- *
- * @since 1.10
- * @ingroup Focus
+ * @}
*/
-typedef enum
-{
- ELM_FOCUS_MOVE_POLICY_CLICK, /**< move focus by mouse click or touch. Elementary focus is set on mouse click and this is checked at mouse up time. (default) */
- ELM_FOCUS_MOVE_POLICY_IN /**< move focus by mouse in. Elementary focus is set on mouse move when the mouse pointer is moved into an object. */
-} Elm_Focus_Move_Policy;
/**
- * Get the focus movement policy
+ * @brief Gets the system mirrored mode. This determines the default mirrored mode
+ * of widgets.
*
- * @return The focus movement policy
+ * @since_tizen 2.3
*
- * Get how the focus is moved to another object. It can be
- * #ELM_FOCUS_MOVE_POLICY_CLICK or #ELM_FOCUS_MOVE_POLICY_IN. The first means
- * elementary focus is moved on elementary object click. The second means
- * elementary focus is moved on elementary object mouse in.
- *
- * @see elm_config_focus_move_policy_set()
- * @since 1.10
- * @ingroup Focus
+ * @return @c EINA_TRUE if mirrored mode is set,
+ * otherwise @c EINA_FALSE
+ * @ingroup Mirroring
*/
-EAPI Elm_Focus_Move_Policy elm_config_focus_move_policy_get(void);
-
-/**
- * Set elementary focus movement policy
- *
- * @param policy A policy to apply for the focus movement
- *
- * @see elm_config_focus_move_policy_get()
- * @since 1.10
- * @ingroup Focus
- */
-EAPI void elm_config_focus_move_policy_set(Elm_Focus_Move_Policy policy);
+EAPI Eina_Bool elm_config_mirrored_get(void);
/**
- * Get disable status of item select on focus feature.
+ * @brief Sets the system mirrored mode. This determines the default mirrored mode
+ * of widgets.
*
- * @return The item select on focus disable status
+ * @since_tizen 2.3
*
- * @see elm_config_item_select_on_focus_disabled_set
- * @since 1.10
- * @ingroup Focus
+ * @param[in] mirrored If @c EINA_TRUE the mirrored mode is set,
+ * otherwise @c EINA_FALSE to unset it
+ * @ingroup Mirroring
*/
-EAPI Eina_Bool elm_config_item_select_on_focus_disabled_get(void);
+EAPI void elm_config_mirrored_set(Eina_Bool mirrored);
/**
- * Set the disable status of the item select on focus feature.
- *
- * @param disabled Disable item select on focus if @c EINA_TRUE, enable otherwise
+ * @brief Gets the indicator service name according to the rotation degree.
*
- * @see elm_config_item_select_on_focus_disabled_get
- * @since 1.10
- * @ingroup Focus
- */
-EAPI void elm_config_item_select_on_focus_disabled_set(Eina_Bool disabled);
-
-/**
- * Get status of first item focus on first focusin feature.
+ * @since_tizen 2.3
*
- * @return The first item focus on first focusin status
+ * @param[in] rotation The rotation that is related to the indicator service name, in degrees (0-360)
*
- * @see elm_config_first_item_focus_on_first_focusin_set
- * @since 1.11
- * @ingroup Focus
+ * @return The indicator service name according to the rotation degree
+ * @ingroup Conformant
*/
-EAPI Eina_Bool elm_config_first_item_focus_on_first_focusin_get(void);
+EAPI const char *elm_config_indicator_service_get(int rotation);
/**
- * Set the first item focus on first focusin feature.
- *
- * @param enabled first_item_focus_on_first_focusin if @c EINA_TRUE, enable otherwise
- *
- * @see elm_config_first_item_focus_on_first_focusin_get
- * @since 1.11
- * @ingroup Focus
+ * @ingroup Elm_Gesture_Layer
+ * @{
*/
-EAPI void elm_config_first_item_focus_on_first_focusin_set(Eina_Bool enabled);
/**
- * Get the system mirrored mode. This determines the default mirrored mode
- * of widgets.
+ * @brief Gets the duration for occurrence of the long tap event of the gesture layer.
*
- * @return @c EINA_TRUE if mirrored is set, @c EINA_FALSE otherwise
- */
-EAPI Eina_Bool elm_config_mirrored_get(void);
-
-/**
- * Set the system mirrored mode. This determines the default mirrored mode
- * of widgets.
+ * @since_tizen 2.3
*
- * @param mirrored @c EINA_TRUE to set mirrored mode, @c EINA_FALSE to unset it.
+ * @return The timeout for the long tap event of the gesture layer
*/
-EAPI void elm_config_mirrored_set(Eina_Bool mirrored);
+EAPI double elm_config_glayer_long_tap_start_timeout_get(void);
/**
- * Get the clouseau state. @c EINA_TRUE if clouseau was tried to be run.
+ * @brief Sets the duration for occurrence of the long tap event of the gesture layer.
*
- * @since 1.8
- * @return @c EINA_TRUE if clouseau was tried to run, @c EINA_FALSE otherwise
- */
-EAPI Eina_Bool elm_config_clouseau_enabled_get(void);
-
-/**
- * Get the clouseau state. @c EINA_TRUE if clouseau should be attempted to be run.
+ * @since_tizen 2.3
*
- * @since 1.8
- * @param enabled @c EINA_TRUE to try and run clouseau, @c EINA_FALSE otherwise.
+ * @param[in] long_tap_timeout The timeout for the long tap event of the gesture layer
*/
-EAPI void elm_config_clouseau_enabled_set(Eina_Bool enabled);
+EAPI void elm_config_glayer_long_tap_start_timeout_set(double long_tap_timeout);
/**
- * Get the indicator service name according to the rotation degree.
+ * @brief Gets the duration for occurrence of the double tap event of the gesture layer.
*
- * @param rotation The rotation which related with the indicator service name,
- * in degrees (0-360),
+ * @since_tizen 2.3
*
- * @return The indicator service name according to the rotation degree. The
- * indicator service name can be either @c "elm_indicator_portrait" or
- * @c "elm_indicator_landscape".
- *
- * @note Do not free the return string.
+ * @return The timeout for the double tap event of the gesture layer
*/
-EAPI const char *elm_config_indicator_service_get(int rotation);
+EAPI double elm_config_glayer_double_tap_timeout_get(void);
/**
- * Get the duration for occurring long tap event of gesture layer.
+ * @brief Sets the duration for occurrence of the double tap event of the gesture layer.
*
- * @return Timeout for long tap event of gesture layer.
- * @ingroup Elm_Gesture_Layer
- * @since 1.8
- */
-EAPI double elm_config_glayer_long_tap_start_timeout_get(void);
-
-/**
- * Set the duration for occurring long tap event of gesture layer.
+ * @since_tizen 2.3
*
- * @param long_tap_timeout Timeout for long tap event of gesture layer.
- * @ingroup Elm_Gesture_Layer
- * @since 1.8
+ * @param[in] double_tap_timeout The timeout for the double tap event of the gesture layer
*/
-EAPI void elm_config_glayer_long_tap_start_timeout_set(double long_tap_timeout);
+EAPI void elm_config_glayer_double_tap_timeout_set(double double_tap_timeout);
/**
- * Get the duration for occurring double tap event of gesture layer.
- *
- * @return Timeout for double tap event of gesture layer.
- * @ingroup Elm_Gesture_Layer
- * @since 1.8
+ * @}
*/
-EAPI double elm_config_glayer_double_tap_timeout_get(void);
/**
- * Set the duration for occurring double tap event of gesture layer.
+ * @defgroup colors_group Elementary Colors
+ * @ingroup elm_infra_group
+ * @brief Configuration for Elementary colors.
*
- * @param double_tap_timeout Timeout for double tap event of gesture layer.
- * @ingroup Elm_Gesture_Layer
- * @since 1.8
+ * @{
*/
-EAPI void elm_config_glayer_double_tap_timeout_set(double double_tap_timeout);
typedef struct _Elm_Color_Class
{
@@ -1518,79 +1581,84 @@ typedef struct _Elm_Color_Overlay
} Elm_Color_Overlay;
/**
- * Get Elementary's list of supported color classes.
+ * @brief Gets Elementary's list of supported color classes.
*
- * @return The color classes list, with @c Elm_Color_Class blobs as data.
- * @ingroup Colors
* @since 1.10
*
- * Release the list with elm_color_classes_list_free().
+ * @since_tizen 2.3
+ *
+ * @remarks Release the list with elm_color_classes_list_free().
+ *
+ * @return The color classes list with @c Elm_Color_Class blobs as data
*/
EAPI Eina_List *elm_config_color_classes_list_get(void);
/**
- * Free Elementary's list of supported color classes.
+ * @brief Frees Elementary's list of supported color classes.
*
- * @ingroup Colors
* @since 1.10
*
+ * @since_tizen 2.3
+ *
+ * @param[in] list The color classes list
+ *
* @see elm_config_color_classes_list_get().
*/
EAPI void elm_config_color_classes_list_free(Eina_List *list);
/**
- * Get Elementary's list of color overlays, set with
- * elm_config_color_overlay_set().
- *
- * @return The color overlays list, with @c Elm_Color_Overlay blobs as
- * data.
+ * @brief Gets Elementary's list of color overlays, set with
+ * elm_config_color_overlay_set().
*
- * @ingroup Colors
* @since 1.10
*
- * For each color class, one can set a <b>color overlay</b> for it,
- * overriding the default color properties for that class coming from
- * the theme in use. There is no need to free this list.
+ * @since_tizen 2.3
+ *
+ * @remarks For each color class, one can set a <b>color overlay</b> for it,
+ * overriding the default color properties for that class coming from
+ * the theme in use. There is no need to free this list.
+ *
+ * @return The color overlays list with @c Elm_Color_Overlay blobs as data
*
* @see elm_config_color_overlay_set()
- * @see elm_config_color_overlay_unset().
+ * @see elm_config_color_overlay_unset()
*/
EAPI const Eina_List *elm_config_color_overlay_list_get(void);
/**
- * Set a color overlay for a given Elementary color class.
+ * @brief Sets a color overlay for a given Elementary color class.
*
- * @param color_class Color class name
- * @param r Object Red value
- * @param g Object Green value
- * @param b Object Blue value
- * @param a Object Alpha value
- * @param r2 Text outline Red value
- * @param g2 Text outline Green value
- * @param b2 Text outline Blue value
- * @param a2 Text outline Alpha value
- * @param r3 Text shadow Red value
- * @param g3 Text shadow Green value
- * @param b3 Text shadow Blue value
- * @param a3 Text shadow Alpha value
- *
- * @ingroup Colors
* @since 1.10
-
- * The first color is for the object itself, the second color is for the text
- * outline, and the third color is for the text shadow.
*
- * @note The second two color are only for texts.
-
- * Setting color emits a signal "color_class,set" with source being
- * the given color class in all edje objects.
+ * @since_tizen 2.3
+ *
+ * @remarks The first color is the object, the second is the text outline, and
+ * the third is the text shadow. (Note that the second two only apply
+ * to text parts).
+ *
+ * @remarks Setting color emits a signal "color_class,set" with source being
+ * the given color class in all edje objects.
+ *
+ * @remarks Unlike Evas, Edje colors are @b not pre-multiplied. That is,
+ * half-transparent white is 255 255 255 128.
+ *
+ * @param[in] color_class The color class name
+ * @param[in] r The object red value
+ * @param[in] g The object green value
+ * @param[in] b The object blue value
+ * @param[in] a The object alpha value
+ * @param[in] r2 The outline red value
+ * @param[in] g2 The outline green value
+ * @param[in] b2 The outline blue value
+ * @param[in] a2 The outline alpha value
+ * @param[in] r3 The shadow red value
+ * @param[in] g3 The shadow green value
+ * @param[in] b3 The shadow blue value
+ * @param[in] a3 The shadow alpha value
*
* @see elm_config_color_overlay_list_get()
* @see elm_config_color_overlay_unset()
* @see edje_color_class_set()
-
- * @note unlike Evas, Edje colors are @b not pre-multiplied. That is,
- * half-transparent white is 255 255 255 128.
*/
EAPI void elm_config_color_overlay_set(const char *color_class,
int r, int g, int b, int a,
@@ -1598,121 +1666,61 @@ EAPI void elm_config_color_overlay_set(const char *color_class,
int r3, int g3, int b3, int a3);
/**
- * Unset a color overlay for a given Elementary color class.
- *
- * @param color_class Color class name
+ * @brief Unsets a color overlay for a given Elementary color class.
*
- * @ingroup Colors
* @since 1.10
*
- * This will bring back color elements belonging to color class
- * @p color_class back to their default color settings.
- */
-EAPI void elm_config_color_overlay_unset(const char *color_class);
-
-/**
- * Apply the changes made with elm_config_color_overlay_set() and
- * elm_config_color_overlay_unset() on the current Elementary window.
- *
- * @ingroup Colors
- * @since 1.10
- *
- * This applies all color overlays set to all objects in the UI.
- */
-EAPI void elm_config_color_overlay_apply(void);
-
-/**
- * Get the magnifier enabled state for entries
+ * @since_tizen 2.3
*
- * @return The enabled state for magnifier
- * @since 1.9
- */
-EAPI Eina_Bool elm_config_magnifier_enable_get(void);
-
-/**
- * Set the magnifier enabled state for entires
+ * @remarks This brings back color elements belonging to the color class
+ * @p color_class back to their default color settings.
*
- * @param enable The magnifier config state
- * @since 1.9
+ * @param[in] color_class The color class name
*/
-EAPI void elm_config_magnifier_enable_set(Eina_Bool enable);
+EAPI void elm_config_color_overlay_unset(const char *color_class);
/**
- * Get the amount of scaling the magnifer does
+ * @brief Applies the changes made with elm_config_color_overlay_set() and
+ * elm_config_color_overlay_unset() on the current Elementary window.
*
- * @return The scaling amount (1.0 is none, 2.0 is twice as big etc.)
- * @since 1.9
- */
-EAPI double elm_config_magnifier_scale_get(void);
-
-/**
- * Set the amount of scaling the magnifier does
+ * @details This applies to all color overlays set to all objects in the UI.
*
- * @param scale The scaling amount for magnifiers
- * @since 1.9
- */
-EAPI void elm_config_magnifier_scale_set(double scale);
-
-/**
- * Get the mute state of an audio channel for effects
+ * @since 1.10
*
- * @param channel The channel to get the mute state of
- * @return The mute state
- * @since 1.9
+ * @since_tizen 2.3
*/
-EAPI Eina_Bool elm_config_audio_mute_get(Edje_Channel channel);
+EAPI void elm_config_color_overlay_apply(void);
/**
- * Set the mute state of the specified channel
- *
- * @param channel The channel to set the mute state of
- * @param mute The mute state to set
- * @since 1.9
+ * @}
*/
-EAPI void elm_config_audio_mute_set(Edje_Channel channel, Eina_Bool mute);
/**
- * @defgroup ATSPI AT-SPI2 Accessibility
- * @ingroup Elementary
- *
- * Elementary widgets support Linux Accessibility standard. For more
- * information please visit:
- * http://www.linuxfoundation.org/collaborate/workgroups/accessibility/atk/at-spi/at-spi_on_d-bus
+ * @internal
+ * @defgroup fps_group Elementary FPS
+ * @ingroup elm_infra_group
*
* @{
*/
/**
- * Gets ATSPI mode
- *
- * @return the ATSPI mode
- *
- * @since 1.10
+ * @internal
+ * @remarks Tizen only feature
*
- * @ingroup ATSPI
+ * @brief Gets the FPS value for ecore_animator_frametime and edje_frametime calculation.
*
- * @see elm_config_atspi_mode_set()
+ * @return The fps value
*/
-EAPI Eina_Bool elm_config_atspi_mode_get(void);
+EAPI double elm_config_fps_get(void);
/**
- * Sets ATSPI mode
+ * @internal
+ * @remarks Tizen only feature
+ * @brief Sets the FPS value for ecore_animator_frametime and edje_frametime calculation.
*
- * @param is_atspi If @c EINA_TRUE, enables ATSPI2 mode
- *
- * @note Enables Linux Accessibility support for Elementary widgets.
- *
- * @since 1.10
- *
- * @ingroup ATSPI
- *
- * @see elm_config_atspi_mode_get()
- */
-EAPI void elm_config_atspi_mode_set(Eina_Bool is_atspi);
-
-/**
- * @}
+ * @param[in] fps The fps value to set
*/
+EAPI void elm_config_fps_set(double fps);
/**
* @}
diff --git a/src/lib/elm_conform.h b/src/lib/elm_conform.h
index e61c9f1a5..5589509db 100644
--- a/src/lib/elm_conform.h
+++ b/src/lib/elm_conform.h
@@ -1,21 +1,18 @@
/**
* @defgroup Conformant Conformant
- * @ingroup Elementary
+ * @ingroup elm_widget_group
*
* @image html conformant_inheritance_tree.png
* @image latex conformant_inheritance_tree.eps
*
- * @image html img/widget/conformant/preview-00.png
- * @image latex img/widget/conformant/preview-00.eps width=\textwidth
- *
* @image html img/conformant.png
- * @image latex img/conformant.eps width=\textwidth
+ * @image latex img/conformant.eps "conformant" width=\textwidth
*
- * The aim is to provide a widget that can be used in elementary apps to
- * account for space taken up by the indicator, virtual keypad & softkey
- * windows when running the illume2 module of E17.
+ * @brief The aim is to provide a widget that can be used in elementary apps to
+ * account for space taken up by the indicator, virtual keypad & softkey
+ * windows when running the illume2 module of E17.
*
- * So conformant content will be sized and positioned considering the
+ * So conformant content is sized and positioned considering the
* space required for such stuff, and when they popup, as a keyboard
* shows when an entry is selected, conformant content won't change.
*
@@ -23,39 +20,33 @@
* functions acting on it also work for conformant objects.
*
* This widget emits the following signals, besides the ones sent from
- * @ref Layout:
- * @li "virtualkeypad,state,on": if virtualkeypad state is switched to "on".
- * (since 1.8)
- * @li "virtualkeypad,state,off": if virtualkeypad state is switched to "off".
- * (since 1.8)
- * @li "clipboard,state,on": if clipboard state is switched to "on".
- * (since 1.8)
- * @li "clipboard,state,off": if clipboard state is switched to "off".
- * (since 1.8)
- * In all cases, the @c event parameter of the callback will be
- * @c NULL.
+ * @ref Layout :
+ * @li "virtualkeypad,size,changed": This is called when the virtualkeypad size is
+ * changed. @c event_info parameter is the virtualkeypad size in
+ * Evas_Coord_Rectangle structure. (@since 1.8)
*
* Available styles for it:
* - @c "default"
*
- * Default content parts of the conformant widget that you can use for are:
- * @li "default" - A content of the conformant
+ * The default content parts of the conformant widget that you can use are:
+ * @li "default" - Content of the conformant.
*
- * See how to use this widget in this example:
- * @ref conformant_example
+ * @{
*/
/**
- * @addtogroup Conformant
- * @{
+ * @brief Adds a new conformant widget to the given parent Elementary
+ * (container) object.
+ *
+ * @details This function inserts a new conformant widget on the canvas.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] parent The parent object
+ * @return A new conformant widget handle, otherwise @c NULL in case of an error
*/
+EAPI Evas_Object *elm_conformant_add(Evas_Object *parent);
-#ifdef EFL_EO_API_SUPPORT
-#include "elm_conform_eo.h"
-#endif
-#ifndef EFL_NOLEGACY_API_SUPPORT
-#include "elm_conform_legacy.h"
-#endif
/**
* @}
*/
diff --git a/src/lib/elm_cursor.h b/src/lib/elm_cursor.h
index d5f7d24b0..7103a5d35 100644
--- a/src/lib/elm_cursor.h
+++ b/src/lib/elm_cursor.h
@@ -1,117 +1,121 @@
/**
* @defgroup Cursors Cursors
- * @ingroup Elementary
- *
- * The Elementary cursor is an internal smart object used to
- * customize the mouse cursor displayed over objects (or
- * widgets). In the most common scenario, the cursor decoration
- * comes from the graphical @b engine Elementary is running
- * on. Those engines may provide different decorations for cursors,
+ * @ingroup elm_infra_group
+ * @brief The Elementary cursor is an internal smart object used to
+ * customize the mouse cursor displayed over objects (or
+ * widgets).
+ *
+ * In the most common scenario, the cursor decoration
+ * comes from the graphical @b engine Elementary that is running.
+ * Those engines may provide different decorations for cursors,
* and Elementary provides functions to choose them (think of X11
* cursors, as an example).
*
* By default, Elementary searches cursors only from engine.
* There's also the possibility of, besides using engine provided
- * cursors, also use the ones coming from Edje theme files. Both
+ * cursors, to also use the ones coming from Edje theme files. Both
* globally and per widget, Elementary makes it possible for one to
* make the cursors lookup to be held on engines only or on
- * Elementary's theme file, too. To set cursor's hot spot,
- * two data items should be added to cursor's theme: "hot_x" and
- * "hot_y", that are the offset from upper-left corner of the cursor
- * (coordinates 0,0).
+ * Elementary's theme file, too. To set the cursor's hot spot,
+ * two data items should be added to the cursor's theme: "hot_x" and
+ * "hot_y", that are the offset from the upper-left corner of the cursor
+ * (coordinates (0,0)).
*
* @{
*/
/**
- * Set the cursor to be shown when mouse is over the object
+ * @brief Sets the cursor to be shown when the mouse is over the object.
+ *
+ * @details This sets the cursor that is displayed when the mouse is over the
+ * object. The object can have only one cursor set to it, so if
+ * this function is called twice for an object, the previous set
+ * is unset.
*
- * Set the cursor that will be displayed when mouse is over the
- * object. The object can have only one cursor set to it, so if
- * this function is called twice for an object, the previous set
- * will be unset.
- * If using X cursors, a definition of all the valid cursor names
- * is listed on Elementary_Cursors.h. If an invalid name is set
- * the default cursor will be used.
+ * If using X cursors, a definition of all the valid cursor names
+ * is listed on Elementary_Cursors.h. If an invalid name is set
+ * the default cursor is used.
*
- * @param obj the object being set a cursor.
- * @param cursor the cursor name to be used.
+ * @since_tizen 2.3
*
- * @ingroup Cursors
+ * @param[in] obj The object being set as a cursor
+ * @param[in] cursor The cursor name to be used
*/
EAPI void elm_object_cursor_set(Evas_Object *obj, const char *cursor);
/**
- * Get the cursor to be shown when mouse is over the object
+ * @brief Gets the cursor to be shown when the mouse is over the object.
*
- * @param obj an object with cursor already set.
- * @return the cursor name.
+ * @since_tizen 2.3
*
- * @ingroup Cursors
+ * @param[in] obj The object with the cursor already set
+ * @return The cursor name
*/
EAPI const char *elm_object_cursor_get(const Evas_Object *obj);
/**
- * Unset cursor for object
+ * @brief Unsets the cursor for an object.
*
- * Unset cursor for object, and set the cursor to default if the mouse
- * was over this object.
+ * @details This unsets the cursor for an object, and sets the cursor to default if the mouse
+ * is over this object.
*
- * @param obj Target object
- * @see elm_object_cursor_set()
+ * @since_tizen 2.3
*
- * @ingroup Cursors
+ * @param[in] obj The target object
+ * @see elm_object_cursor_set()
*/
EAPI void elm_object_cursor_unset(Evas_Object *obj);
/**
- * Sets a different style for this object cursor.
+ * @brief Sets a different style for this object cursor.
*
- * @note before you set a style you should define a cursor with
- * elm_object_cursor_set()
+ * @remarks Before you set a style you should define a cursor with
+ * elm_object_cursor_set().
*
- * @param obj an object with cursor already set.
- * @param style the theme style to use (default, transparent, ...)
+ * @since_tizen 2.3
*
- * @ingroup Cursors
+ * @param[in] obj An object with the cursor already set
+ * @param[in] style The theme style to use (default, transparent, ...)
*/
EAPI void elm_object_cursor_style_set(Evas_Object *obj, const char *style);
/**
- * Get the style for this object cursor.
+ * @brief Gets the style for this object cursor.
*
- * @param obj an object with cursor already set.
- * @return style the theme style in use, defaults to "default". If the
- * object does not have a cursor set, then NULL is returned.
+ * @since_tizen 2.3
*
- * @ingroup Cursors
+ * @param[in] obj An object with the cursor already set
+ * @return style The theme style in use, defaults to "default" \n
+ * If the object does not have a cursor set, then @c NULL is returned.
*/
EAPI const char *elm_object_cursor_style_get(const Evas_Object *obj);
/**
- * Set if the cursor set should be searched on the theme or should use
- * the provided by the engine, only.
+ * @brief Sets whether the cursor set should be searched on the theme or should use
+ * the theme provided by the engine, only.
*
- * @note before you set theme_search you should define a cursor with
- * elm_object_cursor_set(). By default it will only look for cursors
- * provided by the engine.
+ * @remarks Before you set engine_only you should define a cursor with
+ * elm_object_cursor_set(). By default it only looks for cursors
+ * provided by the engine.
*
- * @param obj an object with cursor already set.
- * @param theme_search boolean to define if cursors should be searched
- * on widget's theme.
+ * @since_tizen 2.3
*
- * @ingroup Cursors
+ * @param[in] obj An object with the cursor already set
+ * @param[in] theme_search The boolean value to define if cursors should be looked for only
+ * from the theme provided by the engine or should be searched on the widget's theme as well
*/
EAPI void elm_object_cursor_theme_search_enabled_set(Evas_Object *obj, Eina_Bool theme_search);
/**
- * Get if the cursor set should be searched on the theme for this object cursor.
+ * @brief Gets the cursor engine only usage for this object cursor.
*
- * @param obj an object with cursor already set.
- * @return @c EINA_TRUE if the cursor set should be searched on widget's theme,
- * @c EINA_FALSE otherwise.
+ * @since_tizen 2.3
*
- * @ingroup Cursors
+ * @param[in] obj An object with the cursor already set
+ * @return engine_only A boolean value to define if cursors should be
+ * looked for only from the theme provided by the engine or should be searched on
+ * the widget's theme as well \n
+ * If the object does not have a cursor set, then @c EINA_FALSE is returned.
*/
EAPI Eina_Bool elm_object_cursor_theme_search_enabled_get(const Evas_Object *obj);
diff --git a/src/lib/elm_datetime.h b/src/lib/elm_datetime.h
index cf4bc3e83..d2f06eb4b 100644
--- a/src/lib/elm_datetime.h
+++ b/src/lib/elm_datetime.h
@@ -1,20 +1,12 @@
/**
* @defgroup Datetime Datetime
- * @ingroup Elementary
+ * @ingroup elm_widget_group
*
* @image html datetime_inheritance_tree.png
* @image latex datetime_inheritance_tree.eps
*
- * @image html img/widget/datetime/preview-00.png
- * @image latex img/widget/datetime/preview-00.eps
+ * @brief The Datetime widget is used to display the input date & time values.
*
- * @image html img/widget/datetime/preview-01.png
- * @image latex img/widget/datetime/preview-01.eps
- *
- * @image html img/widget/datetime/preview-02.png
- * @image latex img/widget/datetime/preview-02.eps
- *
- * Datetime widget is used to display and input date & time values.
* This widget displays date and time as per the <b>system's locale</b> settings (Date
* includes Day, Month & Year along with the defined separators and
* Time includes Hour, Minute & AM/PM fields. Separator for AM/PM field is ignored.
@@ -22,15 +14,15 @@
* The corresponding Month, AM/PM strings are displayed according to the
* system’s language settings.
*
- * Datetime format is a combination of LIBC standard characters like
+ * The Datetime format is a combination of LIBC standard characters like
* “%%d %%b %%Y %%I : %%M %%p” which, as a whole represents both Date as well as Time
* format.
*
- * Elm_datetime supports only the following sub set of libc date format specifiers:
+ * Elm_datetime supports only the following sub set of LIBC date format specifiers:
*
* @b %%Y : The year as a decimal number including the century (example: 2011).
*
- * @b %%y : The year as a decimal number without a century (range 00 to 99)
+ * @b %%y : The year as a decimal number without a century (range 00 to 99).
*
* @b %%m : The month as a decimal number (range 01 to 12).
*
@@ -42,17 +34,17 @@
*
* @b %%d : The day of the month as a decimal number (range 01 to 31).
*
- * @b %%e : The day of the month as a decimal number (range 1 to 31). single
+ * @b %%e : The day of the month as a decimal number (range 1 to 31). Single
* digits are preceded by a blank.
*
* @b %%I : The hour as a decimal number using a 12-hour clock (range 01 to 12).
*
* @b %%H : The hour as a decimal number using a 24-hour clock (range 00 to 23).
*
- * @b %%k : The hour (24-hour clock) as a decimal number (range 0 to 23). single
+ * @b %%k : The hour (24-hour clock) as a decimal number (range 0 to 23). Single
* digits are preceded by a blank.
*
- * @b %%l : The hour (12-hour clock) as a decimal number (range 1 to 12); single
+ * @b %%l : The hour (12-hour clock) as a decimal number (range 1 to 12). Single
* digits are preceded by a blank.
*
* @b %%M : The minute as a decimal number (range 00 to 59).
@@ -61,7 +53,7 @@
* corresponding strings for the current locale. Noon is treated as 'PM'
* and midnight as 'AM'
*
- * @b %%P : Like %p but in lower case: 'am' or 'pm' or a corresponding string for
+ * @b %%P : Like %p, but in lower case: 'am' or 'pm' or a corresponding string for
* the current locale.
*
* @b %%c : The preferred date and time representation for the current locale.
@@ -74,7 +66,7 @@
*
* @b %%R : The hour and minute in decimal numbers using the format %H:%M.
*
- * @b %%T : The time of day in decimal numbers using the format %H:%M:%S.
+ * @b %%T : The time of the day in decimal numbers using the format %H:%M:%S.
*
* @b %%D : The date using the format %%m/%%d/%%y.
*
@@ -84,32 +76,32 @@
* visit the link:
* http://www.gnu.org/s/hello/manual/libc.html#Formatting-Calendar-Time )
*
- * Datetime widget can provide Unicode @b separators in between its fields
+ * The Datetime widget can provide Unicode @b separators in between its fields
* except for AM/PM field.
* A separator can be any <b>Unicode character</b> other than the LIBC standard
- * date format specifiers.( Example: In the format %%b %%d @b , %%y %%H @b : %%M
- * comma(,) is separator for date field %%d and colon(:) is separator for
- * hour field %%H ).
+ * date format specifiers.( Example: In the format %%b %%d , %%y %%H : %%M
+ * comma(,) is a separator for the date field %%d and colon(:) is a separator for
+ * the hour field %%H ).
*
* The default format is a predefined one, based on the system Locale.
*
- * Hour format 12hr(1-12) or 24hr(0-23) display can be selected by setting
+ * The Hour format 12hr(1-12) or 24hr(0-23) display can be selected by setting
* the corresponding user format.
*
* Datetime supports six fields: Year, Month, Date, Hour, Minute, AM/PM.
* Depending on the Datetime module that is loaded, the user can see
- * different UI to select the individual field values.
+ * different UIs to select the individual field values.
*
* The individual fields of Datetime can be arranged in any order according to the format
- * set by application.
+ * set by the application.
*
* There is a provision to set the visibility of a particular field as TRUE/ FALSE
- * so that <b>only time/ only date / only required fields</b> will be displayed.
+ * so that <b>only time/ only date / only required fields</b> are displayed.
*
- * Each field is having a default minimum and maximum values just like the daily
+ * Each field has default minimum and maximum values just like the daily
* calendar information. These min/max values can be modified as per the application usage.
*
- * User can enter the values only in between the range of maximum and minimum.
+ * A user can enter the values only in between the range of the maximum and minimum values.
* Apart from these APIs, there is a provision to display only a limited set of
* values out of the possible values. APIs to select the individual field limits
* are intended for this purpose.
@@ -119,7 +111,7 @@
*
* Datetime individual field selection is implemented in a modular style.
* Module can be implemented as a Ctxpopup based selection or an ISE based
- * selection or even a spinner like selection etc.
+ * selection, or even a spinner like selection.
*
* <b>Datetime Module design:</b>
*
@@ -166,43 +158,465 @@
*
* Any module can use the following shared functions that are implemented in elm_datetime.c :
*
- * <b>field_format_get()</b> - gives the field format.
- *
- * <b>field_limit_get()</b> - gives the field minimum, maximum limits.
- *
- * To enable a module, set the ELM_MODULES environment variable as shown:
+ * <b>field_format_get()</b> - Gives the field format.
*
- * <b>export ELM_MODULES="datetime_input_ctxpopup>datetime/api"</b>
+ * <b>field_limit_get()</b> - Gives the field minimum and maximum limits.
*
* This widget inherits from the @ref Layout one, so that all the
* functions acting on it also work for datetime objects.
*
* This widget emits the following signals, besides the ones sent from
- * @ref Layout:
- * @li @b "changed" - whenever Datetime field value is changed, this
+ * @ref Layout :
+ * @li @b "changed" - Whenever the Datetime field value is changed, this
* signal is sent.
- * @li @b "language,changed" - whenever system locale changes, this
+ *
+ * @li @b "language,changed" - Whenever the system locale changes, this
* signal is sent.
- * @li @c "focused" - When the datetime has received focus. (since 1.8)
- * @li @c "unfocused" - When the datetime has lost focus. (since 1.8)
*
- * Here is an example on its usage:
- * @li @ref datetime_example
+ * @{
+ */
+
+/**
+ * @brief Enumeration that identifies a Datetime field, the widget supports 6 fields : Year, Month,
+ * Date, Hour, Minute, AM/PM
*
*/
+typedef enum _Elm_Datetime_Field_Type
+{
+ ELM_DATETIME_YEAR = 0, /**< Indicates the Year field */
+ ELM_DATETIME_MONTH = 1, /**< Indicates the Month field */
+ ELM_DATETIME_DATE = 2, /**< Indicates the Date field */
+ ELM_DATETIME_HOUR = 3, /**< Indicates the Hour field */
+ ELM_DATETIME_MINUTE = 4, /**< Indicates the Minute field */
+ ELM_DATETIME_AMPM = 5, /**< Indicates the AM/PM field */
+ ELM_DATETIME_LAST = 6
+} Elm_Datetime_Field_Type;
+
+typedef enum _Elm_Datetime_Picker_Type
+{
+ ELM_DATETIME_DATE_PICKER = 0,
+ ELM_DATETIME_TIME_PICKER = 1
+} Elm_Datetime_Picker_Type;
/**
- * @addtogroup Datetime
- * @{
+ * @brief Adds a new datetime widget.
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks The default datetime format and corresponding strings are based on the current locale.
+ *
+ * @remarks This function inserts a new datetime widget on the canvas.
+ *
+ * @param[in] parent The parent object
+ * @return The new object, otherwise @c NULL if it cannot be created
+ */
+EAPI Evas_Object *elm_datetime_add(Evas_Object *parent);
+
+/**
+ * @brief Gets the datetime format. Format is a combination of allowed LIBC date format
+ * specifiers like: "%b %d, %Y %I : %M %p".
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks The maximum allowed format length is @c 64 chars.
+ *
+ * @remarks The format can include separators for each individual datetime field except
+ * for the AM/PM field.
+ *
+ * @remarks Each separator can be a maximum of @c 6 UTF-8 bytes.
+ * Space is also taken as a separator.
+ *
+ * @remarks Following are the allowed set of format specifiers for each datetime field.
+ *
+ * @b %%Y : The year as a decimal number including the century.
+ *
+ * @b %%y : The year as a decimal number without a century (range 00 to 99).
+ *
+ * @b %%m : The month as a decimal number (range 01 to 12).
+ *
+ * @b %%b : The abbreviated month name according to the current locale.
+ *
+ * @b %%B : The full month name according to the current locale.
+ *
+ * @b %%h : The abbreviated month name according to the current locale(same as %%b).
+ *
+ * @b %%d : The day of the month as a decimal number (range 01 to 31).
+ *
+ * @b %%e : The day of the month as a decimal number (range 1 to 31). Single
+ * digits are preceded by a blank.
+ *
+ * @b %%I : The hour as a decimal number using a 12-hour clock (range 01 to 12).
+ *
+ * @b %%H : The hour as a decimal number using a 24-hour clock (range 00 to 23).
+ *
+ * @b %%k : The hour (24-hour clock) as a decimal number (range 0 to 23). Single
+ * digits are preceded by a blank.
+ *
+ * @b %%l : The hour (12-hour clock) as a decimal number (range 1 to 12). Single
+ * digits are preceded by a blank.
+ *
+ * @b %%M : The minute as a decimal number (range 00 to 59).
+ *
+ * @b %%p : Either 'AM' or 'PM' according to the given time value, or the
+ * corresponding strings for the current locale. Noon is treated as 'PM'
+ * and midnight as 'AM'.
+ *
+ * @b %%P : Like %p, but in lower case: 'am' or 'pm' or a corresponding string for
+ * the current locale.
+ *
+ * @b %%c : The preferred date and time representation for the current locale.
+ *
+ * @b %%x : The preferred date representation for the current locale without the time.
+ *
+ * @b %%X : The preferred time representation for the current locale without the date.
+ *
+ * @b %%r : The complete calendar time using the AM/PM format of the current locale.
+ *
+ * @b %%R : The hour and minute in decimal numbers using the format %H:%M.
+ *
+ * @b %%T : The time of the day in decimal numbers using the format %H:%M:%S.
+ *
+ * @b %%D : The date using the format %%m/%%d/%%y.
+ *
+ * @b %%F : The date using the format %%Y-%%m-%%d.
+ *
+ * @remarks These specifiers can be arranged in any order and the widget displays the
+ * fields accordingly.
+ *
+ * @remarks The default format is taken as per the system locale settings.
+ *
+ * @param[in] obj The datetime object
+ * @return The datetime format string \n
+ * Example: "%b %d, %Y %I : %M %p".
+ *
+ * @see elm_datetime_format_set()
+ */
+ EAPI const char *elm_datetime_format_get(const Evas_Object *obj);
+
+/**
+ * @brief Sets the datetime format. Format is a combination of allowed LIBC date format
+ * specifiers like: "%b %d, %Y %I : %M %p".
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks The maximum allowed format length is @c 64 chars.
+ *
+ * @remarks The format can include separators for each individual datetime field except
+ * for the AM/PM field.
+ *
+ * @remarks Each separator can be a maximum of @c 6 UTF-8 bytes.
+ * Space is also taken as a separator.
+ *
+ * @remarks Following are the allowed set of format specifiers for each datetime field.
+ *
+ * @b %%Y : The year as a decimal number including the century.
+ *
+ * @b %%y : The year as a decimal number without a century (range 00 to 99).
+ *
+ * @b %%m : The month as a decimal number (range 01 to 12).
+ *
+ * @b %%b : The abbreviated month name according to the current locale.
+ *
+ * @b %%B : The full month name according to the current locale.
+ *
+ * @b %%h : The abbreviated month name according to the current locale(same as %%b).
+ *
+ * @b %%d : The day of the month as a decimal number (range 01 to 31).
+ *
+ * @b %%e : The day of the month as a decimal number (range 1 to 31). Single
+ * digits are preceded by a blank.
+ *
+ * @b %%I : The hour as a decimal number using a 12-hour clock (range 01 to 12).
+ *
+ * @b %%H : The hour as a decimal number using a 24-hour clock (range 00 to 23).
+ *
+ * @b %%k : The hour (24-hour clock) as a decimal number (range 0 to 23). Single
+ * digits are preceded by a blank.
+ *
+ * @b %%l : The hour (12-hour clock) as a decimal number (range 1 to 12). Single
+ * digits are preceded by a blank.
+ *
+ * @b %%M : The minute as a decimal number (range 00 to 59).
+ *
+ * @b %%p : Either 'AM' or 'PM' according to the given time value, or the
+ * corresponding strings for the current locale. Noon is treated as 'PM'
+ * and midnight as 'AM'.
+ *
+ * @b %%P : Like %p, but in lower case: 'am' or 'pm' or a corresponding string for
+ * the current locale.
+ *
+ * @b %%c : The preferred date and time representation for the current locale.
+ *
+ * @b %%x : The preferred date representation for the current locale without the time.
+ *
+ * @b %%X : The preferred time representation for the current locale without the date.
+ *
+ * @b %%r : The complete calendar time using the AM/PM format of the current locale.
+ *
+ * @b %%R : The hour and minute in decimal numbers using the format %H:%M.
+ *
+ * @b %%T : The time of the day in decimal numbers using the format %H:%M:%S.
+ *
+ * @b %%D : The date using the format %%m/%%d/%%y.
+ *
+ * @b %%F : The date using the format %%Y-%%m-%%d.
+ *
+ * @remarks These specifiers can be arranged in any order and the widget displays the
+ * fields accordingly.
+ *
+ * @remarks The default format is taken as per the system locale settings.
+ *
+ * @param[in] obj The datetime object
+ * @param[in] fmt The datetime format
+ *
+ * @see elm_datetime_format_get()
+ */
+EAPI void elm_datetime_format_set(Evas_Object *obj, const char *fmt);
+
+/**
+ * @brief Gets the upper boundary of a field.
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks Year: years since 1900. Negative value represents a year below 1900 (year
+ * value -30 represents 1870). Year default range is from 70 to 137.
+ *
+ * @remarks Month: default value range is from 0 to 11.
+ *
+ * @remarks Date: default value range is from 1 to 31 according to the month value.
+ *
+ * @remarks Hour: default value is in terms of the 24 hr format (0~23).
+ *
+ * @remarks Minute: default value range is from 0 to 59.
+ *
+ * @param[in] obj The datetime object
+ * @param[out] maxtime The time structure containing the maximum time value
+ * @return @c EINA_TRUE if the maximum value is returned successfully,
+ * otherwise @c EINA_FALSE
+ *
+ * @see elm_datetime_value_max_set()
+ */
+EAPI Eina_Bool elm_datetime_value_max_get(const Evas_Object *obj, struct tm *maxtime);
+
+/**
+ * @brief Sets the upper boundary of a field.
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks Year: years since 1900. Negative value represents a year below 1900 (year
+ * value -30 represents 1870). Year default range is from 70 to 137.
+ *
+ * @remarks Month: default value range is from 0 to 11.
+ *
+ * @remarks Date: default value range is from 1 to 31 according to the month value.
+ *
+ * @remarks Hour: default value is in terms of the 24 hr format (0~23).
+ *
+ * @remarks Minute: default value range is from 0 to 59.
+ *
+ * @param[in] obj The datetime object
+ * @param[in] maxtime The time structure containing the maximum time value.
+ * @return @c EINA_TRUE if the maximum value is accepted,
+ * otherwise @c EINA_FALSE
+ *
+ * @see elm_datetime_value_max_get()
+ */
+EAPI Eina_Bool elm_datetime_value_max_set(Evas_Object *obj, const struct tm *maxtime);
+
+/**
+ * @brief Gets the lower boundary of a field.
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks Year: years since 1900. Negative value represents a year below 1900 (year
+ * value -30 represents 1870). Year default range is from 70 to 137.
+ *
+ * @remarks Month: default value range is from 0 to 11.
+ *
+ * @remarks Date: default value range is from 1 to 31 according to the month value.
+ *
+ * @remarks Hour: default value is in terms of the 24 hr format (0~23).
+ *
+ * @remarks Minute: default value range is from 0 to 59.
+ *
+ * @param[in] obj The datetime object
+ * @param[out] mintime The time structure
+ * @return @c EINA_TRUE if the minimum value is successfully returned,
+ * otherwise @c EINA_FALSE
+ *
+ * @see elm_datetime_value_min_set()
+ */
+EAPI Eina_Bool elm_datetime_value_min_get(const Evas_Object *obj, struct tm *mintime);
+
+/**
+ * @brief Sets the lower boundary of a field.
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks Year: years since 1900. Negative value represents a year below 1900 (year
+ * value -30 represents 1870). Year default range is from 70 to 137.
+ *
+ * @remarks Month: default value range is from 0 to 11.
+ *
+ * @remarks Date: default value range is from 1 to 31 according to the month value.
+ *
+ * @remarks Hour: default value is in terms of 24 hr format (0~23)
+ *
+ * @remarks Minute: default value range is from 0 to 59.
+ *
+ * @param[in] obj The datetime object
+ * @param[in] mintime The time structure containing the minimum time value
+ * @return @c EINA_TRUE if the minimum value is accepted,
+ * otherwise @c EINA_FALSE
+ *
+ * @see elm_datetime_value_min_get()
+ */
+EAPI Eina_Bool elm_datetime_value_min_set(Evas_Object *obj, const struct tm *mintime);
+
+/**
+ * @brief Gets the field limits of a field.
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks Limits can be set to individual fields, independently, except for the AM/PM field.
+ * Any field can display values only in between these Minimum and Maximum limits unless
+ * the corresponding time value is restricted from MinTime to MaxTime.
+ * That is, Min/ Max field limits always work under the limitations of MinTime/ MaxTime.
+ *
+ * @remarks There is no provision to set the limits of the AM/PM field.
+ *
+ * @param[in] obj The datetime object
+ * @param[in] fieldtype The type of the field, @c ELM_DATETIME_YEAR
+ * @param[out] min A reference to the field's minimum value
+ * @param[out] max A reference to field's maximum value
+ *
+ * @see elm_datetime_field_limit_set()
+ */
+EAPI void elm_datetime_field_limit_get(const Evas_Object *obj, Elm_Datetime_Field_Type fieldtype, int *min, int *max);
+
+/**
+ * @brief Sets the field limits of a field.
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks Limits can be set to individual fields, independently, except for the AM/PM field.
+ * Any field can display values only in between these Minimum and Maximum limits unless
+ * the corresponding time value is restricted from MinTime to MaxTime.
+ * That is, Min/ Max field limits always work under the limitations of MinTime/ MaxTime.
+ *
+ * @remarks There is no provision to set the limits of the AM/PM field.
+ *
+ * @param[in] obj The datetime object
+ * @param[in] fieldtype The type of the field, @c ELM_DATETIME_YEAR
+ * @param[in] min A reference to the field's minimum value
+ * @param[in] max A reference to thr field's maximum value
+ *
+ * @see elm_datetime_field_limit_set()
+ */
+EAPI void elm_datetime_field_limit_set(Evas_Object *obj, Elm_Datetime_Field_Type fieldtype, int min, int max);
+
+/**
+ * @brief Gets the current value of a field.
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks Year: years since 1900. Negative value represents a year below 1900 (year
+ * value -30 represents 1870). Year default range is from 70 to 137.
+ *
+ * @remarks Month: default value range is from 0 to 11.
+ *
+ * @remarks Date: default value range is from 1 to 31 according to the month value.
+ *
+ * @remarks Hour: default value is in terms of the 24 hr format (0~23).
+ *
+ * @remarks Minute: default value range is from 0 to 59.
+ *
+ * @param[in] obj The datetime object
+ * @param[in] currtime The time structure
+ * @return @c EINA_TRUE if the current time is returned successfully,
+ * otherwise @c EINA_FALSE
+ *
+ * @see elm_datetime_field_value_set()
+ */
+EAPI Eina_Bool elm_datetime_value_get(const Evas_Object *obj, struct tm *currtime);
+
+/**
+ * @brief Sets the current value of the Datetime object.
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks Year: years since 1900. Negative value represents a year below 1900 (year
+ * value -30 represents 1870). Year default range is from 70 to 137.
+ *
+ * @remarks Month: default value range is from 0 to 11.
+ *
+ * @remarks Date: default value range is from 1 to 31 according to the month value.
+ *
+ * @remarks Hour: default value is in terms of the 24 hr format (0~23)
+ *
+ * @remarks Minute: default value range is from 0 to 59.
+ *
+ *
+ * @param[in] obj The datetime object
+ * @param[in] newtime The time structure filled with values to be set
+ * @return @c EINA_TRUE if the current time is set successfully,
+ * otherwise @c EINA_FALSE
+ *
+ * @see elm_datetime_value_set()
+ */
+EAPI Eina_Bool elm_datetime_value_set(Evas_Object *obj, const struct tm *newtime);
+
+/**
+ * @brief Gets whether a field can be visible.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The datetime object
+ * @param[in] fieldtype The type of the field, @c ELM_DATETIME_YEAR
+ * @return @c EINA_TRUE if the field can be visible,
+ * otherwise @c EINA_FALSE
+ *
+ * @see elm_datetime_field_visible_set()
+ */
+EAPI Eina_Bool elm_datetime_field_visible_get(const Evas_Object *obj, Elm_Datetime_Field_Type fieldtype);
+
+/**
+ * @brief Sets a field to be visible.
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks Setting this API to @c true does not ensure that the field is visible, apart from
+ * this, the field's format must be present in the Datetime overall format.
+ * If a field's visibility is set to @c false then it won't appear even though
+ * its format is present in the overall format.
+ * So if and only if this API is set to @c true and the corresponding field's format
+ * is present in the Datetime format, the field is visible.
+ *
+ * @remarks By default the field visibility is set to @c true.
+ *
+ * @param[in] obj The datetime object
+ * @param[in] fieldtype The type of the field, @c ELM_DATETIME_YEAR
+ * @param[in] visible If @c EINA_TRUE the field can be visible,
+ * otherwise @c EINA_FALSE
+ *
+ * @see elm_datetime_field_visible_get()
+ */
+EAPI void elm_datetime_field_visible_set(Evas_Object *obj, Elm_Datetime_Field_Type fieldtype, Eina_Bool visible);
+
+/**
+ * @internal
+ * @remarks Tizen only feature
+ *
+ * @brief This API is used to get the picker layout.
+.* @details Based on the format of the datetime date and time picker layouts are created.
+ * If format set for date or time then get the date or picker layout passing approprite type
+ * respectively else it will return null.This picker layout can be used in any widget or layout.
+ *
+ * @param obj The datetime object
+ * @param type Type of the field.ELM_DATETIME_DATE_PICKER or ELM_DATETIME_TIME_PICKER
*/
+EAPI Evas_Object* elm_datetime_picker_get(Evas_Object *obj, Elm_Datetime_Picker_Type type);
-#include "elm_datetime_common.h"
-#ifdef EFL_EO_API_SUPPORT
-#include "elm_datetime_eo.h"
-#endif
-#ifndef EFL_NOLEGACY_API_SUPPORT
-#include "elm_datetime_legacy.h"
-#endif
/**
* @}
*/
diff --git a/src/lib/elm_dayselector.h b/src/lib/elm_dayselector.h
index 9000997d1..de77d6ccb 100644
--- a/src/lib/elm_dayselector.h
+++ b/src/lib/elm_dayselector.h
@@ -1,4 +1,5 @@
/**
+ * @internal
* @defgroup Dayselector Dayselector
* @ingroup Elementary
*
@@ -13,27 +14,27 @@
*"elm_dayselector" is a day selection widget. It displays all seven days of
* the week and allows the user to select multiple days.
*
- * The selection can be toggle by just clicking on the day.
+ * The selection can be toggled by just clicking on the day.
*
* Dayselector also provides the functionality to check whether a day is
* selected or not.
*
- * First day of the week is taken from config settings by default. It can be
- * altered by using the API elm_dayselector_week_start_set() API.
+ * First day of the week is taken from the config settings by default. It can be
+ * altered by using the elm_dayselector_week_start_set() API.
*
* APIs are provided for setting the duration of weekend
* elm_dayselector_weekend_start_set() and elm_dayselector_weekend_length_set()
* does this job.
*
* Two styles of weekdays and weekends are supported in Dayselector.
- * Application can emit signals on individual check objects for setting the
+ * Applications can emit signals on individual check objects for setting the
* weekday, weekend styles.
*
* Once the weekend start day or weekend length changes, all the weekday &
- * weekend styles will be reset to default style. It's the application's
- * responsibility to set the styles again by sending corresponding signals.
+ * weekend styles are reset to the default style. It's the application's
+ * responsibility to set the styles again by the sending corresponding signals.
*
- * Supported elm_object_item common APIs.
+ * Supported common elm_object_item APIs.
*
* @li @ref elm_object_part_text_set,
* @li @ref elm_object_part_text_get,
@@ -58,30 +59,133 @@
* functions acting on it also work for dayselector objects.
*
* This widget emits the following signals, besides the ones sent from
- * @ref Layout:
- * @li @c "dayselector,changed" - when the user changes the state of a day.
- * @li @c "language,changed" - the program's language changed
+ * @ref Layout :
+ * @li @c "dayselector,changed" - When the user changes the state of a day.
+ * @li @c "language,changed" - The program's language is changed.
*
* Available styles for dayselector are:
* @li default
*
- * This example shows the usage of the widget.
- * @li @ref dayselector_example
+ * @{
+ */
+
+/**
+ * @brief Enumeration that identifies the day of the week.
+ * @remarks This API can call the selection/unselection of a day with this as a parameter.
*
+ * @see elm_dayselector_day_selected_set()
+ * @see elm_dayselector_day_selected_get()
*/
+typedef enum
+{
+ ELM_DAYSELECTOR_SUN = 0,/**< Indicates Sunday */
+ ELM_DAYSELECTOR_MON, /**< Indicates Monday */
+ ELM_DAYSELECTOR_TUE, /**< Indicates Tuesday */
+ ELM_DAYSELECTOR_WED, /**< Indicates Wednesday */
+ ELM_DAYSELECTOR_THU, /**< Indicates Thursday */
+ ELM_DAYSELECTOR_FRI, /**< Indicates Friday */
+ ELM_DAYSELECTOR_SAT, /**< Indicates Saturday */
+ ELM_DAYSELECTOR_MAX /**< Sentinel value, @b don't use */
+} Elm_Dayselector_Day;
/**
- * @addtogroup Dayselector
- * @{
+ * @brief Adds the dayselector.
+ *
+ * @param[in] parent The parent object
+ * @return A new dayselector object, otherwise @c NULL if it cannot be created
+ */
+EAPI Evas_Object *elm_dayselector_add(Evas_Object *parent);
+
+/**
+ * @brief Sets the state of a given Dayselector_Day.
+ *
+ * @param[in] obj The Dayselector object
+ * @param[in] day The Dayselector_Day that the user want to set state of
+ * @param[in] selected The state of the day, @c EINA_TRUE is selected
+ *
+ * @see Elm_Dayselector_Day
+ * @see elm_dayselector_day_selected_get()
+ */
+EAPI void elm_dayselector_day_selected_set(Evas_Object *obj, Elm_Dayselector_Day day, Eina_Bool selected);
+
+/**
+ * @brief Gets the state of a given Dayselector_Day.
+ *
+ * @param[in] obj The Dayselector object
+ * @param[in] day The Dayselector_Day that the user want to know state of
+ * @return @c EINA_TRUE if the day is selected,
+ * otherwise @c EINA_FALSE
+ *
+ * @see Elm_Dayselector_Day
+ * @see elm_dayselector_day_selected_set()
+ */
+EAPI Eina_Bool elm_dayselector_day_selected_get(const Evas_Object *obj, Elm_Dayselector_Day day);
+
+/**
+ * @brief Sets the starting day of Dayselector.
+ *
+ * @param[in] obj The Dayselector object
+ * @param[in] day The Dayselector_Day whose first day the user wants to display
+ *
+ * @see Elm_Dayselector_Day
+ * @see elm_dayselector_week_start_get()
+ */
+EAPI void elm_dayselector_week_start_set(Evas_Object *obj, Elm_Dayselector_Day day);
+
+/**
+ * @brief Gets the starting day of Dayselector.
+ *
+ * @param[in] obj The Dayselector object
+ * @return The day from where the Dayselector displays all the weekdays in order
+ *
+ * @see Elm_Dayselector_Day
+ * @see elm_dayselector_week_start_set()
+ */
+EAPI Elm_Dayselector_Day elm_dayselector_week_start_get(const Evas_Object *obj);
+
+/**
+ * @brief Sets the weekend starting day of Dayselector.
+ *
+ * @param[in] obj The Dayselector object
+ * @param[in] day The Dayselector_Day which is the first day from where weekend starts
+ *
+ * @see Elm_Dayselector_Day
+ * @see elm_dayselector_weekend_start_get()
+ */
+EAPI void elm_dayselector_weekend_start_set(Evas_Object *obj, Elm_Dayselector_Day day);
+
+/**
+ * @brief Gets the weekend starting day of Dayselector.
+ *
+ * @param[in] obj The Dayselector object
+ * @return The Elm_Dayselector_Day Day from where the weekend starts
+ *
+ * @see Elm_Dayselector_Day
+ * @see elm_dayselector_weekend_start_set()
+ */
+EAPI Elm_Dayselector_Day elm_dayselector_weekend_start_get(const Evas_Object *obj);
+
+/**
+ * @brief Sets the weekend length of Dayselector.
+ *
+ * @param[in] obj The Dayselector object
+ * @param[in] length The weekend length, number of days as an integer
+ *
+ * @see elm_dayselector_weekend_length_get()
+ */
+EAPI void elm_dayselector_weekend_length_set(Evas_Object *obj, unsigned int length);
+
+/**
+ * @brief Gets the weekend length of Dayselector.
+ *
+ * @param[in] obj The Dayselector object
+ * @return The number of days marked as a weekend
+ *
+ * @see Elm_Dayselector_Day
+ * @see elm_dayselector_weekend_length_set()
*/
+EAPI unsigned int elm_dayselector_weekend_length_get(const Evas_Object *obj);
-#include "elm_dayselector_common.h"
-#ifdef EFL_EO_API_SUPPORT
-#include "elm_dayselector_eo.h"
-#endif
-#ifndef EFL_NOLEGACY_API_SUPPORT
-#include "elm_dayselector_legacy.h"
-#endif
/**
* @}
*/
diff --git a/src/lib/elm_debug.h b/src/lib/elm_debug.h
index f5de943ec..41e611c62 100644
--- a/src/lib/elm_debug.h
+++ b/src/lib/elm_debug.h
@@ -1,25 +1,27 @@
/**
* @defgroup Debug Debug
- * @ingroup Elementary
- * Don't use it unless you are sure.
+ * @ingroup elm_infra_group
+ * @brief Don't use it unless you are sure.
*
* @{
*/
/**
- * Print Tree object hierarchy in stdout
+ * @brief Prints the Tree object hierarchy in stdout.
*
- * @param top The root object
- * @ingroup Debug
+ * @since_tizen 2.3
+ *
+ * @param[in] top The root object
*/
EAPI void elm_object_tree_dump(const Evas_Object *top);
/**
- * Print Elm Objects tree hierarchy in file as dot(graphviz) syntax.
+ * @brief Prints the Elm Objects tree hierarchy in a file as dot(graphviz) syntax.
+ *
+ * @since_tizen 2.3
*
- * @param top The root object
- * @param file The path of output file
- * @ingroup Debug
+ * @param[in] top The root object
+ * @param[in] file The path of the output file
*/
EAPI void elm_object_tree_dot_dump(const Evas_Object *top, const char *file);
diff --git a/src/lib/elm_deprecated.h b/src/lib/elm_deprecated.h
index 2ad95a9b5..6b1f53051 100644
--- a/src/lib/elm_deprecated.h
+++ b/src/lib/elm_deprecated.h
@@ -1,4 +1,3 @@
-
EINA_DEPRECATED EAPI Evas_Object *elm_scrolled_entry_add(Evas_Object *parent);
EINA_DEPRECATED EAPI void elm_scrolled_entry_single_line_set(Evas_Object *obj, Eina_Bool single_line);
EINA_DEPRECATED EAPI Eina_Bool elm_scrolled_entry_single_line_get(const Evas_Object *obj);
@@ -63,286 +62,289 @@ EINA_DEPRECATED EAPI void elm_scrolled_entry_cnp_textonly_set(Evas_Objec
EINA_DEPRECATED EAPI Eina_Bool elm_scrolled_entry_cnp_textonly_get(Evas_Object *obj);
/**
- * Convert a pixel coordinate (x,y) into a geographic coordinate
- * (longitude, latitude).
- *
- * @param obj The map object.
- * @param x the coordinate.
- * @param y the coordinate.
- * @param size the size in pixels of the map.
- * The map is a square and generally his size is : pow(2.0, zoom)*256.
- * @param lon Pointer to store the longitude that correspond to x.
- * @param lat Pointer to store the latitude that correspond to y.
+ * @brief Converts a pixel coordinate (x,y) into a geographic coordinate
+ * (longitude, latitude).
*
- * @note Origin pixel point is the top left corner of the viewport.
- * Map zoom and size are taken on account.
+ * @remarks The origin pixel point is the top left corner of the viewport.
+ * Map zoom and size are taken into account.
*
- * @see elm_map_utils_convert_geo_into_coord() if you need the inverse.
+ * @param obj The map object
+ * @param x The coordinate
+ * @param y The coordinate
+ * @param size The size in pixels of the map \n
+ * The map is a square and generally its size is : pow(2.0, zoom)*256.
+ * @param lon The pointer to store the longitude that corresponds to @a x
+ * @param lat The pointer to store the latitude that corresponds to @a y
*
* @deprecated Use elm_map_canvas_to_geo_convert() instead
+ *
+ * @see elm_map_utils_convert_geo_into_coord() if you need the inverse.
*/
EINA_DEPRECATED EAPI void elm_map_utils_convert_coord_into_geo(const Evas_Object *obj, int x, int y, int size, double *lon, double *lat);
/**
- * Convert a geographic coordinate (longitude, latitude) into a pixel
- * coordinate (x, y).
- *
- * @param obj The map object.
- * @param lon the longitude.
- * @param lat the latitude.
- * @param size the size in pixels of the map. The map is a square
- * and generally his size is : pow(2.0, zoom)*256.
- * @param x Pointer to store the horizontal pixel coordinate that
- * correspond to the longitude.
- * @param y Pointer to store the vertical pixel coordinate that
- * correspond to the latitude.
- *
- * @note Origin pixel point is the top left corner of the viewport.
- * Map zoom and size are taken on account.
+ * @brief Converts a geographic coordinate (longitude, latitude) into a pixel
+ * coordinate (x, y).
*
- * @see elm_map_utils_convert_coord_into_geo() if you need the inverse.
+ * @remarks The origin pixel point is the top left corner of the viewport.
+ * Map zoom and size are taken into account.
+ *
+ * @param obj The map object
+ * @param lon The longitude
+ * @param lat The latitude
+ * @param size The size in pixels of the map \n
+ * The map is a square
+ * and generally its size is : pow(2.0, zoom)*256.
+ * @param x The pointer to store the horizontal pixel coordinate that
+ * corresponds to the longitude
+ * @param y The pointer to store the vertical pixel coordinate that
+ * corresponds to the latitude.
+ *
+ * @deprecated Use Use elm_map_canvas_to_geo_convert() instead
*
- * @deprecatedUse Use elm_map_canvas_to_geo_convert() instead
+ * @see elm_map_utils_convert_coord_into_geo() if you need the inverse.
*/
EINA_DEPRECATED EAPI void elm_map_utils_convert_geo_into_coord(const Evas_Object *obj, double lon, double lat, int size, int *x, int *y);
/**
- * Get the information of downloading status.
+ * @brief Gets information on the downloading status.
*
- * @param obj The map object.
- * @param try_num Pointer to store number of tiles being downloaded.
- * @param finish_num Pointer to store number of tiles successfully
- * downloaded.
+ * @details This gets the current downloading status for the map object, the number
+ * of tiles being downloaded, and the number of tiles already downloaded.
*
- * This gets the current downloading status for the map object, the number
- * of tiles being downloaded and the number of tiles already downloaded.
+ * @param obj The map object
+ * @param try_num The pointer to store the number of tiles being downloaded
+ * @param finish_num The pointer to store the number of tiles that are successfully downloaded
*
- * @deprecatedUse Use elm_map_tile_load_status_get() instead
+ * @deprecated Use Use elm_map_tile_load_status_get() instead.
*/
EINA_DEPRECATED EAPI void elm_map_utils_downloading_status_get(const Evas_Object *obj, int *try_num, int *finish_num);
/**
- * Convert a geographic coordinate (longitude, latitude) into a name
- * (address).
+ * @brief Converts a geographic coordinate (longitude, latitude) into a name
+ * (address).
+ *
+ * @remarks To get the string for this address, elm_map_name_address_get()
+ * should be used.
*
- * @param obj The map object.
- * @param lon the longitude.
- * @param lat the latitude.
- * @return name A #Elm_Map_Name handle for this coordinate.
+ * @param obj The map object
+ * @param lon The longitude
+ * @param lat The latitude
+ * @return name A #Elm_Map_Name handle for this coordinate
*
- * To get the string for this address, elm_map_name_address_get()
- * should be used.
+ * @deprecated Use elm_map_name_add() instead.
*
- * @see elm_map_utils_convert_name_into_coord() if you need the inverse.
- * @deprecatedUse Use elm_map_name_add() instead
+ * @see elm_map_utils_convert_name_into_coord() if you need to do an inverse.
*
*/
EINA_DEPRECATED EAPI Elm_Map_Name *elm_map_utils_convert_coord_into_name(const Evas_Object *obj, double lon, double lat);
/**
- * Convert a name (address) into a geographic coordinate
- * (longitude, latitude).
+ * @brief Converts a name (address) into a geographic coordinate
+ * (longitude, latitude).
*
- * @param obj The map object.
- * @param address The address.
- * @return name A #Elm_Map_Name handle for this address.
+ * @remarks To get the longitude and latitude, elm_map_name_region_get()
+ * should be used.
*
- * To get the longitude and latitude, elm_map_name_region_get()
- * should be used.
+ * @param obj The map object
+ * @param address The address
+ * @return name A #Elm_Map_Name handle for this address
*
- * @see elm_map_utils_convert_coord_into_name() if you need the inverse.
- * @deprecatedUse Use elm_map_name_geo_request() instead
+ * @deprecated Use elm_map_name_geo_request() instead.
+ *
+ * @see elm_map_utils_convert_coord_into_name() if you need to do an inverse.
*
*/
EINA_DEPRECATED EAPI Elm_Map_Name *elm_map_utils_convert_name_into_coord(const Evas_Object *obj, char *address);
/**
- * Add a new marker to the map object.
+ * @brief Adds a new marker to the map object.
+ *
+ * @remarks A marker is created and shown at a specific point of the map, defined
+ * by @a lon and @a lat.
*
- * @param obj The map object.
- * @param lon The longitude of the marker.
- * @param lat The latitude of the marker.
- * @param clas The class, to use when marker @b isn't grouped to others.
- * @param clas_group The class group, to use when marker is grouped to others
- * @param data The data passed to the callbacks.
+ * @remarks It is displayed using a style defined by @a clas when this marker
+ * is displayed alone (not grouped). A new class can be created with
+ * elm_map_marker_class_new().
*
- * @return The created marker or @c NULL upon failure.
+ * @remarks If the marker is grouped to other markers, it is displayed with a
+ * style defined by the @a clas_group. Markers with the same group are grouped
+ * if they are close. A new group class can be created with
+ * elm_map_marker_group_class_new().
*
- * A marker will be created and shown in a specific point of the map, defined
- * by @p lon and @p lat.
+ * @remarks Markers created with this method can be deleted with
+ * elm_map_marker_remove().
*
- * It will be displayed using style defined by @p class when this marker
- * is displayed alone (not grouped). A new class can be created with
- * elm_map_marker_class_new().
+ * @remarks A marker can have associated content displayed as a bubble,
+ * when a user clicks on it, or as an icon. These objects
+ * are fetched using class' callback functions.
*
- * If the marker is grouped to other markers, it will be displayed with
- * style defined by @p class_group. Markers with the same group are grouped
- * if they are close. A new group class can be created with
- * elm_map_marker_group_class_new().
+ * @param obj The map object
+ * @param lon The longitude of the marker
+ * @param lat The latitude of the marker
+ * @param clas The class to use when the marker @b isn't grouped to others
+ * @param clas_group The class group to use when the marker is grouped to others
+ * @param data The data passed to the callbacks
*
- * Markers created with this method can be deleted with
- * elm_map_marker_remove().
+ * @return The created marker, otherwise @c NULL on failure
*
- * A marker can have associated content to be displayed by a bubble,
- * when a user click over it, as well as an icon. These objects will
- * be fetch using class' callback functions.
+ * @deprecated Use Elm_Map_Overlay instead
*
* @see elm_map_marker_class_new()
* @see elm_map_marker_group_class_new()
* @see elm_map_marker_remove()
- *
- * @deprecated Use Elm_Map_Overlay instead
*/
EINA_DEPRECATED EAPI Elm_Map_Marker *elm_map_marker_add(Evas_Object *obj, double lon, double lat, Elm_Map_Marker_Class *clas, Elm_Map_Group_Class *clas_group, void *data);
/**
- * Remove a marker from the map.
- *
- * @param marker The marker to remove.
+ * @brief Removes a marker from the map.
*
- * @see elm_map_marker_add()
+ * @param marker The marker to remove
*
* @deprecated Use Elm_Map_Overlay instead
+ *
+ * @see elm_map_marker_add()
*/
EINA_DEPRECATED EAPI void elm_map_marker_remove(Elm_Map_Marker *marker);
/**
- * Get the current coordinates of the marker.
- *
- * @param marker marker.
- * @param lat Pointer to store the marker's latitude.
- * @param lon Pointer to store the marker's longitude.
+ * @brief Gets the current coordinates of the marker.
*
- * These values are set when adding markers, with function
- * elm_map_marker_add().
+ * @remarks These values are set when adding markers using the function
+ * elm_map_marker_add().
*
- * @see elm_map_marker_add()
+ * @param marker The marker
+ * @param lat The pointer to store the marker's latitude
+ * @param lon The pointer to store the marker's longitude
*
* @deprecated Use Elm_Map_Overlay instead
+ *
+ * @see elm_map_marker_add()
*/
EINA_DEPRECATED EAPI void elm_map_marker_region_get(const Elm_Map_Marker *marker, double *lon, double *lat);
/**
- * Animatedly bring in given marker to the center of the map.
+ * @brief Animatedly brings the given marker to the center of the map.
+ *
+ * @remarks This causes the map to jump to the given @a marker coordinates
+ * and display it (by scrolling) in the center of the viewport, if it is not
+ * already centered. This uses animation to do so and takes a period
+ * of time to complete.
*
- * @param marker The marker to center at.
+ * @param marker The marker to bring to the center
*
- * This causes map to jump to the given @p marker's coordinates
- * and show it (by scrolling) in the center of the viewport, if it is not
- * already centered. This will use animation to do so and take a period
- * of time to complete.
+ * @deprecated Use Elm_Map_Overlay instead
*
* @see elm_map_marker_show() for a function to avoid animation.
* @see elm_map_marker_region_get()
- *
- * @deprecated Use Elm_Map_Overlay instead
*/
EINA_DEPRECATED EAPI void elm_map_marker_bring_in(Elm_Map_Marker *marker);
/**
- * Show the given marker at the center of the map, @b immediately.
+ * @brief Shows the given marker at the center of the map, @b immediately.
+ *
+ * @remarks This causes the map to @b redraw its viewport's contents to the
+ * region containing the given @a marker coordinates, that are
+ * moved to the center of the map.
*
- * @param marker The marker to center at.
+ * @param marker The marker to show at the center
*
- * This causes map to @b redraw its viewport's contents to the
- * region containing the given @p marker's coordinates, that will be
- * moved to the center of the map.
+ * @deprecated Use Elm_Map_Overlay instead
*
* @see elm_map_marker_bring_in() for a function to move with animation.
- * @see elm_map_markers_list_show() if more than one marker need to be
- * displayed.
+ * @see elm_map_markers_list_show() if more than one marker needs to be
+ * displayed.
* @see elm_map_marker_region_get()
- *
- * @deprecated Use Elm_Map_Overlay instead
*/
EINA_DEPRECATED EAPI void elm_map_marker_show(Elm_Map_Marker *marker);
/**
- * Move and zoom the map to display a list of markers.
+ * @brief Moves and zooms the map to display a list of markers.
*
- * @param markers A list of #Elm_Map_Marker handles.
+ * @remarks The map is centered at the center point of the markers in the list.
+ * Then the map is zoomed in order to fit the markers using the maximum
+ * zoom which allows display of all the markers.
*
- * The map will be centered on the center point of the markers in the list.
- * Then the map will be zoomed in order to fit the markers using the maximum
- * zoom which allows display of all the markers.
+ * @remarks All the markers should belong to the same map object.
*
- * @warning All the markers should belong to the same map object.
+ * @param markers A list of #Elm_Map_Marker handles
+ *
+ * @deprecated Use Elm_Map_Overlay instead
*
* @see elm_map_marker_show() to show a single marker.
* @see elm_map_marker_bring_in()
- *
- * @deprecated Use Elm_Map_Overlay instead
*/
EINA_DEPRECATED EAPI void elm_map_markers_list_show(Eina_List *markers);
/**
- * Get the Evas object returned by the Elm_Map_Marker_Get_Func callback
+ * @brief Gets the Evas object returned by the Elm_Map_Marker_Get_Func callback.
*
- * @param marker The marker which content should be returned.
- * @return Return the evas object if it exists, else @c NULL.
+ * @remarks To set callback function #Elm_Map_Marker_Get_Func for the marker class,
+ * elm_map_marker_class_get_cb_set() should be used.
*
- * To set callback function #Elm_Map_Marker_Get_Func for the marker class,
- * elm_map_marker_class_get_cb_set() should be used.
+ * @remarks This content is what is inside the bubble that is displayed
+ * when a user clicks over the marker.
*
- * This content is what will be inside the bubble that will be displayed
- * when an user clicks over the marker.
+ * @remarks This returns the actual Evas object to be placed inside
+ * the bubble. This may be @c NULL, as it may
+ * not have been created or may have been deleted, at any time, by
+ * the map. <b>Do not modify this object</b> (move, resize,
+ * show, hide, etc.), as the map is controlling it. This
+ * function is for querying, emitting custom signals or hooking
+ * lower level callbacks for events on that object. Do not delete
+ * this object under any circumstances.
*
- * This returns the actual Evas object used to be placed inside
- * the bubble. This may be @c NULL, as it may
- * not have been created or may have been deleted, at any time, by
- * the map. <b>Do not modify this object</b> (move, resize,
- * show, hide, etc.), as the map is controlling it. This
- * function is for querying, emitting custom signals or hooking
- * lower level callbacks for events on that object. Do not delete
- * this object under any circumstances.
+ * @param marker The marker with content to be returned
+ * @return The evas object if it exists, otherwise @c NULL
*
* @deprecated Use Elm_Map_Overlay instead
*/
EINA_DEPRECATED EAPI Evas_Object *elm_map_marker_object_get(const Elm_Map_Marker *marker);
/**
- * Update the marker
+ * @brief Updates the marker.
*
- * @param marker The marker to be updated.
+ * @remarks If content is set for this marker, it calls the function #Elm_Map_Marker_Del_Func to delete it,
+ * and then it fetches the content again with #Elm_Map_Marker_Get_Func.
*
- * If a content is set to this marker, it will call function to delete it,
- * #Elm_Map_Marker_Del_Func, and then will fetch the content again with
- * #Elm_Map_Marker_Get_Func.
+ * @remarks These functions are set for the marker class with
+ * elm_map_marker_class_get_cb_set() and elm_map_marker_class_del_cb_set().
*
- * These functions are set for the marker class with
- * elm_map_marker_class_get_cb_set() and elm_map_marker_class_del_cb_set().
+ * @param marker The marker to be updated
*
* @deprecated Use Elm_Map_Overlay instead
*/
EINA_DEPRECATED EAPI void elm_map_marker_update(Elm_Map_Marker *marker);
/**
- * Create a new group class.
+ * @brief Creates a new group class.
+ *
+ * @remarks Each marker must be associated to a group class. Markers in the same
+ * group are grouped if they are close.
*
- * @param obj The map object.
- * @return Returns the new group class.
+ * @remarks The group class defines the style of the marker when a marker is grouped
+ * to others markers. When it is alone, another class is used.
*
- * Each marker must be associated to a group class. Markers in the same
- * group are grouped if they are close.
+ * @remarks A group class needs to be provided when creating a marker with
+ * elm_map_marker_add().
*
- * The group class defines the style of the marker when a marker is grouped
- * to others markers. When it is alone, another class will be used.
+ * @remarks Some properties and functions that can be set by the class are:
+ * - style - With elm_map_group_class_style_set().
+ * - data - To be associated to the group class. It can be set using
+ * elm_map_group_class_data_set().
+ * - min zoom - To display markers, set using
+ * elm_map_group_class_zoom_displayed_set().
+ * - max zoom - To group markers, set using
+ * elm_map_group_class_zoom_grouped_set().
+ * - visibility - To set if markers are visible or not, set using
+ * elm_map_group_class_hide_set().
+ * - #Elm_Map_Group_Icon_Get_Func - Used to fetch the icon for the markers group classes.
+ * It can be set using elm_map_group_class_icon_cb_set().
*
- * A group class will need to be provided when creating a marker with
- * elm_map_marker_add().
+ * @param obj The map object
+ * @return The new group class
*
- * Some properties and functions can be set by class, as:
- * - style, with elm_map_group_class_style_set()
- * - data - to be associated to the group class. It can be set using
- * elm_map_group_class_data_set().
- * - min zoom to display markers, set with
- * elm_map_group_class_zoom_displayed_set().
- * - max zoom to group markers, set using
- * elm_map_group_class_zoom_grouped_set().
- * - visibility - set if markers will be visible or not, set with
- * elm_map_group_class_hide_set().
- * - #Elm_Map_Group_Icon_Get_Func - used to fetch icon for markers group classes.
- * It can be set using elm_map_group_class_icon_cb_set().
+ * @deprecated Use Elm_Map_Overlay instead
*
* @see elm_map_marker_add()
* @see elm_map_group_class_style_set()
@@ -351,53 +353,52 @@ EINA_DEPRECATED EAPI void elm_map_marker_update(Elm_Map_Marker
* @see elm_map_group_class_zoom_grouped_set()
* @see elm_map_group_class_hide_set()
* @see elm_map_group_class_icon_cb_set()
- *
- * @deprecated Use Elm_Map_Overlay instead
*/
EINA_DEPRECATED EAPI Elm_Map_Group_Class *elm_map_group_class_new(Evas_Object *obj);
/**
- * Create a new marker class.
+ * @brief Creates a new marker class.
+ *
+ * @remarks Each marker must be associated to a class.
*
- * @param obj The map object.
- * @return Returns the new group class.
+ * @remarks The marker class defines the style of the marker when a marker is
+ * displayed alone, i.e., not grouped to others markers. When grouped
+ * it uses the group class style.
*
- * Each marker must be associated to a class.
+ * @remarks A marker class needs to be provided when creating a marker using
+ * elm_map_marker_add().
*
- * The marker class defines the style of the marker when a marker is
- * displayed alone, i.e., not grouped to to others markers. When grouped
- * it will use group class style.
+ * @remarks Some properties and functions that can be set by the class are:
+ * - style - With elm_map_marker_class_style_set().
+ * - #Elm_Map_Marker_Icon_Get_Func - Used to fetch the icon for the markers classes.
+ * It can be set using elm_map_marker_class_icon_cb_set().
+ * - #Elm_Map_Marker_Get_Func - Used to fetch bubble content for marker classes.
+ * Set using elm_map_marker_class_get_cb_set().
+ * - #Elm_Map_Marker_Del_Func - Used to delete bubble content for marker classes.
+ * Set using elm_map_marker_class_del_cb_set().
*
- * A marker class will need to be provided when creating a marker with
- * elm_map_marker_add().
+ * @param obj The map object
+ * @return The new group class
*
- * Some properties and functions can be set by class, as:
- * - style, with elm_map_marker_class_style_set()
- * - #Elm_Map_Marker_Icon_Get_Func - used to fetch icon for markers classes.
- * It can be set using elm_map_marker_class_icon_cb_set().
- * - #Elm_Map_Marker_Get_Func - used to fetch bubble content for marker classes.
- * Set using elm_map_marker_class_get_cb_set().
- * - #Elm_Map_Marker_Del_Func - used to delete bubble content for marker classes.
- * Set using elm_map_marker_class_del_cb_set().
+ * @deprecated Use Elm_Map_Overlay instead
*
* @see elm_map_marker_add()
* @see elm_map_marker_class_style_set()
* @see elm_map_marker_class_icon_cb_set()
* @see elm_map_marker_class_get_cb_set()
* @see elm_map_marker_class_del_cb_set()
- *
- * @deprecated Use Elm_Map_Overlay instead
*/
EINA_DEPRECATED EAPI Elm_Map_Marker_Class *elm_map_marker_class_new(Evas_Object *obj);
/**
- * Remove a route from the map.
+ * @brief Removes a route from the map.
*
- * @param route The route to remove.
+ * @param route The route to remove
*
- * @see elm_map_route_add()
* @deprecated Use elm_map_route_del() instead
*
+ * @see elm_map_route_add()
+ *
*/
EINA_DEPRECATED EAPI void elm_map_route_remove(Elm_Map_Route *route);
@@ -422,24 +423,24 @@ EINA_DEPRECATED EAPI void elm_calendar_day_selection_disabled_se
EINA_DEPRECATED EAPI Eina_Bool elm_calendar_day_selection_disabled_get(const Evas_Object *obj);
/**
- * @deprecated Possible orient values for notify.
+ * @brief Enumeration of values that should be used in conjunction with elm_notify_orient_set() to
+ * set the position in which the notification should appear(relative to its parent)
+ * and in conjunction with elm_notify_orient_get() to know where the notification
+ * is appearing.
*
- * This values should be used in conjunction to elm_notify_orient_set() to
- * set the position in which the notify should appear(relative to its parent)
- * and in conjunction with elm_notify_orient_get() to know where the notify
- * is appearing.
+ * @deprecated Possible orient values for a notification.
*/
typedef enum
{
- ELM_NOTIFY_ORIENT_TOP, /**< Notify should appear in the top of parent, default */
- ELM_NOTIFY_ORIENT_CENTER, /**< Notify should appear in the center of parent */
- ELM_NOTIFY_ORIENT_BOTTOM, /**< Notify should appear in the bottom of parent */
- ELM_NOTIFY_ORIENT_LEFT, /**< Notify should appear in the left of parent */
- ELM_NOTIFY_ORIENT_RIGHT, /**< Notify should appear in the right of parent */
- ELM_NOTIFY_ORIENT_TOP_LEFT, /**< Notify should appear in the top left of parent */
- ELM_NOTIFY_ORIENT_TOP_RIGHT, /**< Notify should appear in the top right of parent */
- ELM_NOTIFY_ORIENT_BOTTOM_LEFT, /**< Notify should appear in the bottom left of parent */
- ELM_NOTIFY_ORIENT_BOTTOM_RIGHT, /**< Notify should appear in the bottom right of parent */
+ ELM_NOTIFY_ORIENT_TOP, /**< Notification should appear at the top of the parent, default */
+ ELM_NOTIFY_ORIENT_CENTER, /**< Notification should appear in the center of the parent */
+ ELM_NOTIFY_ORIENT_BOTTOM, /**< Notification should appear at the bottom of the parent */
+ ELM_NOTIFY_ORIENT_LEFT, /**< Notification should appear on the left of the parent */
+ ELM_NOTIFY_ORIENT_RIGHT, /**< Notification should appear on the right of the parent */
+ ELM_NOTIFY_ORIENT_TOP_LEFT, /**< Notification should appear in the top left corner of the parent */
+ ELM_NOTIFY_ORIENT_TOP_RIGHT, /**< Notification should appear in the top right corner of the parent */
+ ELM_NOTIFY_ORIENT_BOTTOM_LEFT, /**< Notification should appear in the bottom left corner of the parent */
+ ELM_NOTIFY_ORIENT_BOTTOM_RIGHT, /**< Notification should appear in the bottom right corner of the parent */
ELM_NOTIFY_ORIENT_LAST /**< Sentinel value, @b don't use */
} Elm_Notify_Orient;
@@ -455,54 +456,52 @@ EINA_DEPRECATED EAPI void elm_notify_orient_set(Evas_Obj
EINA_DEPRECATED EAPI Elm_Notify_Orient elm_notify_orient_get(const Evas_Object *obj);
/**
- * @brief Set slide effect of label widget.
+ * @brief Sets the slide effect for the label widget.
*
- * @param obj The label object
- * @param slide If true, slide effect will be shown
+ * @remarks If set to @c true, the text of the label slides/scrolls through the length of the
+ * label.
*
- * If set to true, the text of the label will slide/scroll through the length of
- * label.
+ * @remarks This only works with the themes "slide_short", "slide_long", and
+ * "slide_bounce".
*
- * @warning This only works with the themes "slide_short", "slide_long" and
- * "slide_bounce".
- * @warning This doesn't work if the line wrap(elm_label_line_wrap_set()) or
- * ellipsis(elm_label_ellipsis_set()) is set.
+ * @remarks This doesn't work if the line wrap(elm_label_line_wrap_set()) or
+ * ellipsis(elm_label_ellipsis_set()) is set.
*
- * @deprecated see elm_label_slide_mode_set() instead.
+ * @param obj The label object
+ * @param slide If @c true slide effect is shown, otherwise @c false
*
- * @ingroup Label
+ * @deprecated see elm_label_slide_mode_set() instead.
*/
EINA_DEPRECATED EAPI void elm_label_slide_set(Evas_Object *obj, Eina_Bool slide);
/**
- * @brief Get whether slide effect is shown or not.
+ * @brief Gets the whether slide effect is shown.
*
* @param obj The label object
- * @return If true, slide effect is shown.
- *
- * @see elm_label_slide_set()
+ * @return @c true if the slide effect is shown,
+ * otherwise @c false
*
- * @deprecated see elm_label_slide_mode_get() instead.
+ * @deprecated use elm_label_slide_mode_get() instead.
*
- * @ingroup Label
+ * @see elm_label_slide_set()
*/
EINA_DEPRECATED EAPI Eina_Bool elm_label_slide_get(const Evas_Object *obj);
/**
- * Set the text for an object's part, marking it as translatable.
+ * @brief Sets the text for an object's part, marking it as translatable.
*
- * The string to set as @p text must be the original one. Do not pass the
- * return of @c gettext() here. Elementary will translate the string
- * internally and set it on the object using elm_object_part_text_set(),
- * also storing the original string so that it can be automatically
- * translated when the language is changed with elm_language_set().
+ * @remarks The string to set as @a text must be the original one. Do not pass the
+ * return of gettext() here. Elementary translates the string
+ * internally and sets it on the object using elm_object_part_text_set(),
+ * also storing the original string so that it can be automatically
+ * translated when the language is changed with elm_language_set().
*
- * The @p domain will be stored along to find the translation in the
- * correct catalog. It can be NULL, in which case it will use whatever
- * domain was set by the application with @c textdomain(). This is useful
- * in case you are building a library on top of Elementary that will have
- * its own translatable strings, that should not be mixed with those of
- * programs using the library.
+ * @remarks The @a domain is also stored to find the translation in the
+ * correct catalog. It can be @c NULL, in which case it uses whatever
+ * domain is set by the application with textdomain(). This is useful
+ * in case you are building a library on top of Elementary that is going to have
+ * its own translatable strings, that should not be mixed with those of
+ * programs using the library.
*
* @param obj The object containing the text part
* @param part The name of the part to set
@@ -510,1133 +509,51 @@ EINA_DEPRECATED EAPI Eina_Bool elm_label_slide_get(const Evas_
* @param text The original, non-translated text to set
*
* @deprecated Use elm_object_domain_translatable_part_text_set() instead.
- *
- * @ingroup General
*/
EINA_DEPRECATED EAPI void elm_object_domain_translatable_text_part_set(Evas_Object *obj, const char *part, const char *domain, const char *text);
/**
- * Get the original string set as translatable for an object
+ * @brief Gets the original string set as translatable for an object.
*
- * When setting translated strings, the function elm_object_part_text_get()
- * will return the translation returned by @c gettext(). To get the
- * original string use this function.
+ * @remarks When setting translated strings, the function elm_object_part_text_get()
+ * returns the translation returned by gettext(). To get the
+ * original string use this function.
*
* @param obj The object
- * @param part The name of the part that was set
+ * @param part The name of the part that is set
*
* @return The original, untranslated string
*
* @deprecated Use elm_object_translatable_part_text_get() instead.
- *
- * @ingroup General
*/
EINA_DEPRECATED EAPI const char *elm_object_translatable_text_part_get(const Evas_Object *obj, const char *part);
/**
- * @brief Show/Hide the title area
+ * @brief Shows or hides the title area.
*
- * @param it The naviframe item
- * @param visible If @c EINA_TRUE, title area will be visible, hidden
- * otherwise
+ * @remarks When the title area is invisible, then the controls are hidden so as
+ * to expand the content area to full-size.
*
- * When the title area is invisible, then the controls would be hidden so as
- * to expand the content area to full-size.
+ * @param it The naviframe item
+ * @param visible If @c EINA_TRUE, the title area is visible, otherwise if @c EINA_FALSE it is hidden
*
* @deprecated Use elm_naviframe_item_title_enabled_set() instead.
*
* @see also elm_naviframe_item_title_visible_get()
* @see also elm_naviframe_item_title_enabled_get()
- *
- * @ingroup Naviframe
*/
EINA_DEPRECATED EAPI void elm_naviframe_item_title_visible_set(Elm_Object_Item *it, Eina_Bool visible);
/**
- * @brief Get a value whether title area is visible or not.
+ * @brief Gets a value that indicates whether the title area is visible.
*
* @param it The naviframe item
- * @return If @c EINA_TRUE, title area is visible
+ * @return @c EINA_TRUE if the title area is visible,
+ * otherwise @c EINA_FALSE
*
* @deprecated Use elm_naviframe_item_title_enabled_get() instead.
*
- * @see also elm_naviframe_item_title_visible_set()
- *
- * @ingroup Naviframe
+ * @see elm_naviframe_item_title_visible_set()
*/
EINA_DEPRECATED EAPI Eina_Bool elm_naviframe_item_title_visible_get(const Elm_Object_Item *it);
-/**
- * Enable/disable horizontal and vertical bouncing effect.
- *
- * @param obj The genlist object
- * @param h_bounce Allow bounce horizontally (@c EINA_TRUE = on, @c
- * EINA_FALSE = off). Default is @c EINA_FALSE.
- * @param v_bounce Allow bounce vertically (@c EINA_TRUE = on, @c
- * EINA_FALSE = off). Default is @c EINA_TRUE.
- *
- * This will enable or disable the scroller bouncing effect for the
- * genlist. See elm_scroller_bounce_set() for details.
- *
- * @deprecated Use elm_scroller_bounce_set() instead.
- *
- * @see elm_scroller_bounce_set()
- * @see elm_genlist_bounce_get()
- *
- * @ingroup Genlist
- */
-EINA_DEPRECATED EAPI void elm_genlist_bounce_set(Evas_Object *obj, Eina_Bool h_bounce, Eina_Bool v_bounce);
-
-/**
- * Get whether the horizontal and vertical bouncing effect is enabled.
- *
- * @param obj The genlist object
- * @param h_bounce Pointer to a bool to receive if the bounce horizontally
- * option is set.
- * @param v_bounce Pointer to a bool to receive if the bounce vertically
- * option is set.
- *
- * @deprecated Use elm_scroller_bounce_get() instead.
- *
- * @see elm_scroller_bounce_get()
- * @see elm_genlist_bounce_set()
- *
- * @ingroup Genlist
- */
-EINA_DEPRECATED EAPI void elm_genlist_bounce_get(const Evas_Object *obj, Eina_Bool *h_bounce, Eina_Bool *v_bounce);
-
-/**
- * Set the scrollbar policy
- *
- * @param obj The genlist object
- * @param policy_h Horizontal scrollbar policy.
- * @param policy_v Vertical scrollbar policy.
- *
- * This sets the scrollbar visibility policy for the given genlist
- * scroller. #ELM_SCROLLER_POLICY_AUTO means the scrollbar is
- * made visible if it is needed, and otherwise kept hidden. #ELM_SCROLLER_POLICY_ON
- * turns it on all the time, and #ELM_SCROLLER_POLICY_OFF always keeps it off.
- * This applies respectively for the horizontal and vertical scrollbars.
- * Default is #ELM_SCROLLER_POLICY_AUTO
- *
- * @deprecated Use elm_scroller_policy_set() instead.
- *
- * @see elm_scroller_policy_set()
- *
- * @ingroup Genlist
- */
-EINA_DEPRECATED EAPI void elm_genlist_scroller_policy_set(Evas_Object *obj, Elm_Scroller_Policy policy_h, Elm_Scroller_Policy policy_v);
-
-/**
- * Get the scrollbar policy
- *
- * @param obj The genlist object
- * @param policy_h Pointer to store the horizontal scrollbar policy.
- * @param policy_v Pointer to store the vertical scrollbar policy.
- *
- * @deprecated Use elm_scroller_policy_get() instead.
- *
- * @see elm_scroller_policy_get()
- *
- * @ingroup Genlist
- */
-EINA_DEPRECATED EAPI void elm_genlist_scroller_policy_get(const Evas_Object *obj, Elm_Scroller_Policy *policy_h, Elm_Scroller_Policy *policy_v);
-
-/**
- * This sets the entry's scrollbar policy (i.e. enabling/disabling
- * them).
- *
- * Setting an entry to single-line mode with elm_entry_single_line_set()
- * will automatically disable the display of scrollbars when the entry
- * moves inside its scroller.
- *
- * @param obj The entry object
- * @param h The horizontal scrollbar policy to apply
- * @param v The vertical scrollbar policy to apply
- *
- * @deprecated Use elm_scroller_policy_set() instead.
- *
- * @ingroup Entry
- */
-EINA_DEPRECATED EAPI void elm_entry_scrollbar_policy_set(Evas_Object *obj, Elm_Scroller_Policy h, Elm_Scroller_Policy v);
-
-/**
- * This enables/disables bouncing within the entry.
- *
- * This function sets whether the entry will bounce when scrolling reaches
- * the end of the contained entry.
- *
- * @param obj The entry object
- * @param h_bounce The horizontal bounce state
- * @param v_bounce The vertical bounce state
- *
- * @deprecated Use elm_scroller_bounce_set() instead.
- *
- * @ingroup Entry
- */
-EINA_DEPRECATED EAPI void elm_entry_bounce_set(Evas_Object *obj, Eina_Bool h_bounce, Eina_Bool v_bounce);
-
-/**
- * Get the bounce mode
- *
- * @param obj The Entry object
- * @param h_bounce Allow bounce horizontally
- * @param v_bounce Allow bounce vertically
- *
- * @deprecated Use elm_scroller_bounce_get() instead.
- *
- * @ingroup Entry
- */
-EINA_DEPRECATED EAPI void elm_entry_bounce_get(const Evas_Object *obj, Eina_Bool *h_bounce, Eina_Bool *v_bounce);
-
-/**
- * @brief Set the photocam scrolling bouncing.
- *
- * @param obj The photocam object
- * @param h_bounce set this to @c EINA_TRUE for horizontal bouncing
- * @param v_bounce set this to @c EINA_TRUE for vertical bouncing
- *
- * @deprecated Use elm_scroller_bounce_set() instead.
- *
- * @ingroup Photocam
- */
-EINA_DEPRECATED EAPI void elm_photocam_bounce_set(Evas_Object *obj, Eina_Bool h_bounce, Eina_Bool v_bounce);
-
-/**
- * @brief Get the photocam scrolling bouncing.
- *
- * @param obj The photocam object
- * @param h_bounce horizontal bouncing
- * @param v_bounce vertical bouncing
- *
- * @see elm_photocam_bounce_set()
- *
- * @deprecated Use elm_scroller_bounce_get() instead.
- *
- * @ingroup Photocam
- */
-EINA_DEPRECATED EAPI void elm_photocam_bounce_get(const Evas_Object *obj, Eina_Bool *h_bounce, Eina_Bool *v_bounce);
-
-/**
- * Set bouncing behaviour when the scrolled content reaches an edge.
- *
- * Tell the internal scroller object whether it should bounce or not
- * when it reaches the respective edges for each axis.
- *
- * @param obj The list object
- * @param h_bounce Whether to bounce or not in the horizontal axis.
- * @param v_bounce Whether to bounce or not in the vertical axis.
- *
- * @deprecated Use elm_scroller_bounce_set() instead.
- *
- * @see elm_scroller_bounce_set()
- *
- * @ingroup List
- */
-EINA_DEPRECATED EAPI void elm_list_bounce_set(Evas_Object *obj, Eina_Bool h_bounce, Eina_Bool v_bounce);
-
-/**
- * Get the bouncing behaviour of the internal scroller.
- *
- * Get whether the internal scroller should bounce when the edge of each
- * axis is reached scrolling.
- *
- * @param obj The list object.
- * @param h_bounce Pointer to store the bounce state of the horizontal
- * axis.
- * @param v_bounce Pointer to store the bounce state of the vertical
- * axis.
- *
- * @deprecated Use elm_scroller_bounce_get() instead.
- *
- * @see elm_scroller_bounce_get()
- * @see elm_list_bounce_set()
- *
- * @ingroup List
- */
-EINA_DEPRECATED EAPI void elm_list_bounce_get(const Evas_Object *obj, Eina_Bool *h_bounce, Eina_Bool *v_bounce);
-
-/**
- * Set the scrollbar policy.
- *
- * @param obj The list object
- * @param policy_h Horizontal scrollbar policy.
- * @param policy_v Vertical scrollbar policy.
- *
- * This sets the scrollbar visibility policy for the given
- * scroller. #ELM_SCROLLER_POLICY_AUTO means the scrollbar is made
- * visible if it is needed, and otherwise kept
- * hidden. #ELM_SCROLLER_POLICY_ON turns it on all the time, and
- * #ELM_SCROLLER_POLICY_OFF always keeps it off. This applies
- * respectively for the horizontal and vertical scrollbars.
- *
- * The both are disabled by default, i.e., are set to
- * #ELM_SCROLLER_POLICY_OFF.
- *
- * @deprecated Use elm_scroller_policy_set() instead.
- *
- * @ingroup List
- */
-EINA_DEPRECATED EAPI void elm_list_scroller_policy_set(Evas_Object *obj, Elm_Scroller_Policy policy_h, Elm_Scroller_Policy policy_v);
-
-/**
- * Get the scrollbar policy.
- *
- * @see elm_list_scroller_policy_get() for details.
- *
- * @param obj The list object.
- * @param policy_h Pointer to store horizontal scrollbar policy.
- * @param policy_v Pointer to store vertical scrollbar policy.
- *
- * @deprecated Use elm_scroller_policy_get() instead.
- *
- * @ingroup List
- */
-EINA_DEPRECATED EAPI void elm_list_scroller_policy_get(const Evas_Object *obj, Elm_Scroller_Policy *policy_h, Elm_Scroller_Policy *policy_v);
-
-/**
- * @brief Set custom theme elements for the scroller
- *
- * @param obj The scroller object
- * @param widget The widget name to use (default is "scroller")
- * @param base The base name to use (default is "base")
- *
- * @deprecated Use elm_layout_theme_set() instead.
- *
- * @ingroup Scroller
- */
-EINA_DEPRECATED EAPI void elm_scroller_custom_widget_base_theme_set(Evas_Object *obj, const char *widget, const char *base);
-
-/**
- * Set bouncing behaviour when the scrolled content reaches an edge.
- *
- * Tell the internal scroller object whether it should bounce or not
- * when it reaches the respective edges for each axis.
- *
- * @param obj The diskselector object.
- * @param h_bounce Whether to bounce or not in the horizontal axis.
- * @param v_bounce Whether to bounce or not in the vertical axis.
- *
- * @deprecated Use elm_scroller_bounce_set() instead.
- *
- * @see elm_scroller_bounce_set()
- *
- * @ingroup Diskselector
- */
-EINA_DEPRECATED EAPI void elm_diskselector_bounce_set(Evas_Object *obj, Eina_Bool h_bounce, Eina_Bool v_bounce);
-
-/**
- * Get the bouncing behaviour of the internal scroller.
- *
- * Get whether the internal scroller should bounce when the edge of each
- * axis is reached scrolling.
- *
- * @param obj The diskselector object.
- * @param h_bounce Pointer to store the bounce state of the horizontal
- * axis.
- * @param v_bounce Pointer to store the bounce state of the vertical
- * axis.
- *
- * @deprecated Use elm_scroller_bounce_get() instead.
- *
- * @see elm_scroller_bounce_get()
- * @see elm_diskselector_bounce_set()
- *
- * @ingroup Diskselector
- */
-EINA_DEPRECATED EAPI void elm_diskselector_bounce_get(const Evas_Object *obj, Eina_Bool *h_bounce, Eina_Bool *v_bounce);
-
-/**
- * Get the scrollbar policy.
- *
- * @see elm_diskselector_scroller_policy_get() for details.
- *
- * @param obj The diskselector object.
- * @param policy_h Pointer to store horizontal scrollbar policy.
- * @param policy_v Pointer to store vertical scrollbar policy.
- *
- * @deprecated Use elm_scroller_policy_get() instead.
- *
- * @see elm_scroller_policy_get()
- *
- * @ingroup Diskselector
- */
-EINA_DEPRECATED EAPI void elm_diskselector_scroller_policy_get(const Evas_Object *obj, Elm_Scroller_Policy *policy_h, Elm_Scroller_Policy *policy_v);
-
-/**
- * Set the scrollbar policy.
- *
- * @param obj The diskselector object.
- * @param policy_h Horizontal scrollbar policy.
- * @param policy_v Vertical scrollbar policy.
- *
- * This sets the scrollbar visibility policy for the given
- * scroller. #ELM_SCROLLER_POLICY_AUTO means the scrollbar is made visible if
- * it is needed, and otherwise kept hidden. #ELM_SCROLLER_POLICY_ON turns
- * it on all the time, and #ELM_SCROLLER_POLICY_OFF always keeps it off.
- * This applies respectively for the horizontal and vertical scrollbars.
- *
- * The both are disabled by default, i.e., are set to #ELM_SCROLLER_POLICY_OFF.
- *
- * @deprecated Use elm_scroller_policy_set() instead.
- *
- * @see elm_scroller_policy_set()
- *
- * @ingroup Diskselector
- */
-EINA_DEPRECATED EAPI void elm_diskselector_scroller_policy_set(Evas_Object *obj, Elm_Scroller_Policy policy_h, Elm_Scroller_Policy policy_v);
-
-/**
- * Set the file that will be used as icon.
- *
- * @param obj The icon object
- * @param file The path to file that will be used as icon image
- * @param group The group that the icon belongs to an edje file
- *
- * @return (@c EINA_TRUE = success, @c EINA_FALSE = error)
- *
- * @note The icon image set by this function can be changed by
- * elm_icon_standard_set().
- *
- * @see elm_icon_file_get()
- *
- * @deprecated Use elm_image_file_set() instead.
- *
- * @ingroup Icon
- */
-EINA_DEPRECATED EAPI Eina_Bool elm_icon_file_set(Evas_Object *obj, const char *file, const char *group);
-
-/**
- * Set a location in memory to be used as an icon
- *
- * @param obj The icon object
- * @param img The binary data that will be used as an image
- * @param size The size of binary data @p img
- * @param format Optional format of @p img to pass to the image loader
- * @param key Optional key of @p img to pass to the image loader (eg. if @p img is an edje file)
- *
- * The @p format string should be something like "png", "jpg", "tga",
- * "tiff", "bmp" etc. if it is provided (NULL if not). This improves
- * the loader performance as it tries the "correct" loader first before
- * trying a range of other possible loaders until one succeeds.
- *
- * @return (@c EINA_TRUE = success, @c EINA_FALSE = error)
- *
- * @note The icon image set by this function can be changed by
- * elm_icon_standard_set().
- *
- * @deprecated Use elm_image_memfile_set() instead.
- *
- * @ingroup Icon
- */
-EINA_DEPRECATED EAPI Eina_Bool elm_icon_memfile_set(Evas_Object *obj, const void *img, size_t size, const char *format, const char *key);
-
-/**
- * Get the file that will be used as icon.
- *
- * @param obj The icon object
- * @param file The path to file that will be used as the icon image
- * @param group The group that the icon belongs to, in edje file
- *
- * @see elm_image_file_set()
- *
- * @deprecated Use elm_image_file_get() instead.
- *
- * @ingroup Icon
- */
-EINA_DEPRECATED EAPI void elm_icon_file_get(const Evas_Object *obj, const char **file, const char **group);
-
-/**
- * Set the smooth scaling for an icon object.
- *
- * @param obj The icon object
- * @param smooth @c EINA_TRUE if smooth scaling should be used, @c EINA_FALSE
- * otherwise. Default is @c EINA_TRUE.
- *
- * Set the scaling algorithm to be used when scaling the icon image. Smooth
- * scaling provides a better resulting image, but is slower.
- *
- * The smooth scaling should be disabled when making animations that change
- * the icon size, since they will be faster. Animations that don't require
- * resizing of the icon can keep the smooth scaling enabled (even if the icon
- * is already scaled, since the scaled icon image will be cached).
- *
- * @see elm_icon_smooth_get()
- *
- * @deprecated Use elm_image_smooth_set() instead.
- *
- * @ingroup Icon
- */
-EINA_DEPRECATED EAPI void elm_icon_smooth_set(Evas_Object *obj, Eina_Bool smooth);
-
-/**
- * Get whether smooth scaling is enabled for an icon object.
- *
- * @param obj The icon object
- * @return @c EINA_TRUE if smooth scaling is enabled, @c EINA_FALSE otherwise.
- *
- * @see elm_icon_smooth_set()
- *
- * @deprecated Use elm_image_smooth_get() instead.
- *
- * @ingroup Icon
- */
-EINA_DEPRECATED EAPI Eina_Bool elm_icon_smooth_get(const Evas_Object *obj);
-
-/**
- * Disable scaling of this object.
- *
- * @param obj The icon object.
- * @param no_scale @c EINA_TRUE if the object is not scalable, @c EINA_FALSE
- * otherwise. Default is @c EINA_FALSE.
- *
- * This function disables scaling of the icon object through the function
- * elm_object_scale_set(). However, this does not affect the object
- * size/resize in any way. For that effect, take a look at
- * elm_icon_resizable_set().
- *
- * @see elm_icon_no_scale_get()
- * @see elm_icon_resizable_set()
- * @see elm_object_scale_set()
- *
- * @deprecated Use elm_image_no_scale_set() instead.
- *
- * @ingroup Icon
- */
-EINA_DEPRECATED EAPI void elm_icon_no_scale_set(Evas_Object *obj, Eina_Bool no_scale);
-
-/**
- * Get whether scaling is disabled on the object.
- *
- * @param obj The icon object
- * @return @c EINA_TRUE if scaling is disabled, @c EINA_FALSE otherwise
- *
- * @see elm_icon_no_scale_set()
- *
- * @deprecated Use elm_image_no_scale_get() instead.
- *
- * @ingroup Icon
- */
-EINA_DEPRECATED EAPI Eina_Bool elm_icon_no_scale_get(const Evas_Object *obj);
-
-/**
- * Set if the object is (up/down) resizable.
- *
- * @param obj The icon object
- * @param size_up A bool to set if the object is resizable up. Default is
- * @c EINA_TRUE.
- * @param size_down A bool to set if the object is resizable down. Default
- * is @c EINA_TRUE.
- *
- * This function limits the icon object resize ability. If @p size_up is set to
- * @c EINA_FALSE, the object can't have its height or width resized to a value
- * higher than the original icon size. Same is valid for @p size_down.
- *
- * @see elm_icon_resizable_get()
- *
- * @deprecated Use elm_image_resizable_set() instead.
- *
- * @ingroup Icon
- */
-EINA_DEPRECATED EAPI void elm_icon_resizable_set(Evas_Object *obj, Eina_Bool size_up, Eina_Bool size_down);
-
-/**
- * Get if the object is (up/down) resizable.
- *
- * @param obj The icon object
- * @param size_up A bool to set if the object is resizable up
- * @param size_down A bool to set if the object is resizable down
- *
- * @see elm_icon_resizable_set()
- *
- * @deprecated Use elm_image_resizable_get() instead.
- *
- * @ingroup Icon
- */
-EINA_DEPRECATED EAPI void elm_icon_resizable_get(const Evas_Object *obj, Eina_Bool *size_up, Eina_Bool *size_down);
-
-/**
- * Get the object's image size
- *
- * @param obj The icon object
- * @param w A pointer to store the width in
- * @param h A pointer to store the height in
- *
- * @deprecated Use elm_image_object_size_get() instead.
- *
- * @ingroup Icon
- */
-EINA_DEPRECATED EAPI void elm_icon_size_get(const Evas_Object *obj, int *w, int *h);
-
-/**
- * Set if the icon fill the entire object area.
- *
- * @param obj The icon object
- * @param fill_outside @c EINA_TRUE if the object is filled outside,
- * @c EINA_FALSE otherwise. Default is @c EINA_FALSE.
- *
- * When the icon object is resized to a different aspect ratio from the
- * original icon image, the icon image will still keep its aspect. This flag
- * tells how the image should fill the object's area. They are: keep the
- * entire icon inside the limits of height and width of the object (@p
- * fill_outside is @c EINA_FALSE) or let the extra width or height go outside
- * of the object, and the icon will fill the entire object (@p fill_outside
- * is @c EINA_TRUE).
- *
- * @note Unlike @ref Image, there's no option in icon to set the aspect ratio
- * retain property to false. Thus, the icon image will always keep its
- * original aspect ratio.
- *
- * @see elm_icon_fill_outside_get()
- *
- * @deprecated Use elm_image_fill_outside_set() instead.
- *
- * @ingroup Icon
- */
-EINA_DEPRECATED EAPI void elm_icon_fill_outside_set(Evas_Object *obj, Eina_Bool fill_outside);
-
-/**
- * Get if the object is filled outside.
- *
- * @param obj The icon object
- * @return @c EINA_TRUE if the object is filled outside, @c EINA_FALSE
- * otherwise.
- *
- * @see elm_icon_fill_outside_set()
- *
- * @deprecated Use elm_image_fill_outside_get() instead.
- *
- * @ingroup Icon
- */
-EINA_DEPRECATED EAPI Eina_Bool elm_icon_fill_outside_get(const Evas_Object *obj);
-
-/**
- * Set the prescale size for the icon.
- *
- * @param obj The icon object
- * @param size The prescale size. This value is used for both width and
- * height.
- *
- * This function sets a new size for pixmap representation of the given
- * icon. It allows the icon to be loaded already in the specified size,
- * reducing the memory usage and load time when loading a big icon with load
- * size set to a smaller size.
- *
- * It's equivalent to the elm_bg_load_size_set() function for bg.
- *
- * @note this is just a hint, the real size of the pixmap may differ
- * depending on the type of icon being loaded, being bigger than requested.
- *
- * @see elm_icon_prescale_get()
- * @see elm_bg_load_size_set()
- *
- * @deprecated Use elm_image_prescale_set() instead.
- *
- * @ingroup Icon
- */
-EINA_DEPRECATED EAPI void elm_icon_prescale_set(Evas_Object *obj, int size);
-
-/**
- * Get the prescale size for the icon.
- *
- * @param obj The icon object
- * @return The prescale size
- *
- * @see elm_icon_prescale_set()
- *
- * @deprecated Use elm_image_prescale_get() instead.
- *
- * @ingroup Icon
- */
-EINA_DEPRECATED EAPI int elm_icon_prescale_get(const Evas_Object *obj);
-
-/**
- * Get the image object of the icon. DO NOT MODIFY THIS.
- *
- * @param obj The icon object
- * @return The internal icon object
- *
- * @deprecated Use elm_image_object_get() instead.
- *
- * @ingroup Icon
- */
-EINA_DEPRECATED EAPI Evas_Object *elm_icon_object_get(Evas_Object *obj);
-
-/**
- * Enable or disable preloading of the icon
- *
- * @param obj The icon object
- * @param disabled If EINA_TRUE, preloading will be disabled
- * @ingroup Icon
- *
- * @deprecated Use elm_image_preload_disabled_set() instead.
- *
- */
-EINA_DEPRECATED EAPI void elm_icon_preload_disabled_set(Evas_Object *obj, Eina_Bool disabled);
-
-/**
- * Get if the icon supports animation or not.
- *
- * @param obj The icon object
- * @return @c EINA_TRUE if the icon supports animation,
- * @c EINA_FALSE otherwise.
- *
- * Return if this elm icon's image can be animated. Currently Evas only
- * supports gif animation. If the return value is EINA_FALSE, other
- * elm_icon_animated_xxx APIs won't work.
- * @ingroup Icon
- *
- * @deprecated Use elm_image_animated_available_get() instead.
- *
- */
-EINA_DEPRECATED EAPI Eina_Bool elm_icon_animated_available_get(const Evas_Object *obj);
-
-/**
- * Set animation mode of the icon.
- *
- * @param obj The icon object
- * @param animated @c EINA_TRUE if the object do animation job,
- * @c EINA_FALSE otherwise. Default is @c EINA_FALSE.
- *
- * Since the default animation mode is set to EINA_FALSE,
- * the icon is shown without animation. Files like animated GIF files
- * can animate, and this is supported if you enable animated support
- * on the icon.
- * Set it to EINA_TRUE when the icon needs to be animated.
- * @ingroup Icon
- *
- * @deprecated Use elm_image_animated_set() instead.
- *
- */
-EINA_DEPRECATED EAPI void elm_icon_animated_set(Evas_Object *obj, Eina_Bool animated);
-
-/**
- * Get animation mode of the icon.
- *
- * @param obj The icon object
- * @return The animation mode of the icon object
- * @see elm_icon_animated_set
- * @ingroup Icon
- *
- * @deprecated Use elm_image_animated_get() instead.
- *
- */
-EINA_DEPRECATED EAPI Eina_Bool elm_icon_animated_get(const Evas_Object *obj);
-
-/**
- * Set animation play mode of the icon.
- *
- * @param obj The icon object
- * @param play @c EINA_TRUE the object play animation images,
- * @c EINA_FALSE otherwise. Default is @c EINA_FALSE.
- *
- * To play elm icon's animation, set play to EINA_TRUE.
- * For example, you make gif player using this set/get API and click event.
- * This literally lets you control current play or paused state. To have
- * this work with animated GIF files for example, you first, before
- * setting the file have to use elm_icon_animated_set() to enable animation
- * at all on the icon.
- *
- * 1. Click event occurs
- * 2. Check play flag using elm_icon_animated_play_get
- * 3. If elm icon was playing, set play to EINA_FALSE.
- * Then animation will be stopped and vice versa
- * @ingroup Icon
- *
- * @deprecated Use elm_image_animated_play_set() instead.
- *
- */
-EINA_DEPRECATED EAPI void elm_icon_animated_play_set(Evas_Object *obj, Eina_Bool play);
-
-/**
- * Get animation play mode of the icon.
- *
- * @param obj The icon object
- * @return The play mode of the icon object
- *
- * @see elm_icon_animated_play_get
- * @ingroup Icon
- *
- * @deprecated Use elm_image_animated_play_get() instead.
- *
- */
-EINA_DEPRECATED EAPI Eina_Bool elm_icon_animated_play_get(const Evas_Object *obj);
-
-/**
- * Set whether the original aspect ratio of the icon should be kept on resize.
- *
- * @param obj The icon object.
- * @param fixed @c EINA_TRUE if the icon should retain the aspect,
- * @c EINA_FALSE otherwise.
- *
- * The original aspect ratio (width / height) of the icon is usually
- * distorted to match the object's size. Enabling this option will retain
- * this original aspect, and the way that the icon is fit into the object's
- * area depends on the option set by elm_icon_fill_outside_set().
- *
- * @see elm_icon_aspect_fixed_get()
- * @see elm_icon_fill_outside_set()
- *
- * @ingroup Icon
- *
- * @deprecated Use elm_image_aspect_fixed_set() instead.
- *
- */
-EINA_DEPRECATED EAPI void elm_icon_aspect_fixed_set(Evas_Object *obj, Eina_Bool fixed);
-
-/**
- * Get if the object retains the original aspect ratio.
- *
- * @param obj The icon object.
- * @return @c EINA_TRUE if the object keeps the original aspect, @c EINA_FALSE
- * otherwise.
- *
- * @deprecated Use elm_image_aspect_fixed_get() instead.
- *
- * @ingroup Icon
- */
-EINA_DEPRECATED EAPI Eina_Bool elm_icon_aspect_fixed_get(const Evas_Object *obj);
-
-/**
- * Set the initial file system path for a given file selector
- * button widget
- *
- * @param obj The file selector button widget
- * @param path The path string
- *
- * It must be a <b>directory</b> path, which will have the contents
- * displayed initially in the file selector's view, when invoked
- * from @p obj. The default initial path is the @c "HOME"
- * environment variable's value.
- *
- * @see elm_fileselector_path_get()
- *
- * @deprecated Use elm_fileselector_path_set() instead.
- *
- * @ingroup File_Selector_Button
- */
-EINA_DEPRECATED EAPI void elm_fileselector_button_path_set(Evas_Object *obj, const char *path);
-
-/**
- * Get the initial file system path set for a given file selector
- * button widget
- *
- * @param obj The file selector button widget
- * @return path The path string
- *
- * @see elm_fileselector_path_set() for more details
- *
- * @deprecated Use elm_fileselector_path_get() instead.
- *
- * @ingroup File_Selector_Button
- */
-EINA_DEPRECATED EAPI const char *elm_fileselector_button_path_get(const Evas_Object *obj);
-
-/**
- * Enable/disable a tree view in the given file selector button
- * widget's internal file selector
- *
- * @param obj The file selector button widget
- * @param value @c EINA_TRUE to enable tree view, @c EINA_FALSE to
- * disable
- *
- * This has the same effect as elm_fileselector_expandable_set(),
- * but now applied to a file selector button's internal file
- * selector.
- *
- * @note There's no way to put a file selector button's internal
- * file selector in "grid mode", as one may do with "pure" file
- * selectors.
- *
- * @see elm_fileselector_expandable_get()
- *
- * @deprecated Use elm_fileselector_expandable_set() instead.
- *
- * @ingroup File_Selector_Button
- */
-EINA_DEPRECATED EAPI void elm_fileselector_button_expandable_set(Evas_Object *obj, Eina_Bool value);
-
-/**
- * Get whether tree view is enabled for the given file selector
- * button widget's internal file selector
- *
- * @param obj The file selector button widget
- * @return @c EINA_TRUE if @p obj widget's internal file selector
- * is in tree view, @c EINA_FALSE otherwise (and or errors)
- *
- * @see elm_fileselector_expandable_set() for more details
- *
- * @deprecated Use elm_fileselector_expandable_get() instead.
- *
- * @ingroup File_Selector_Button
- */
-EINA_DEPRECATED EAPI Eina_Bool elm_fileselector_button_expandable_get(const Evas_Object *obj);
-
-/**
- * Set whether a given file selector button widget's internal file
- * selector is to display folders only or the directory contents,
- * as well.
- *
- * @param obj The file selector button widget
- * @param value @c EINA_TRUE to make @p obj widget's internal file
- * selector only display directories, @c EINA_FALSE to make files
- * to be displayed in it too
- *
- * This has the same effect as elm_fileselector_folder_only_set(),
- * but now applied to a file selector button's internal file
- * selector.
- *
- * @see elm_fileselector_folder_only_get()
- *
- * @deprecated Use elm_fileselector_folder_only_set() instead.
- *
- * @ingroup File_Selector_Button
- */
-EINA_DEPRECATED EAPI void elm_fileselector_button_folder_only_set(Evas_Object *obj, Eina_Bool value);
-
-/**
- * Get whether a given file selector button widget's internal file
- * selector is displaying folders only or the directory contents,
- * as well.
- *
- * @param obj The file selector button widget
- * @return @c EINA_TRUE if @p obj widget's internal file
- * selector is only displaying directories, @c EINA_FALSE if files
- * are being displayed in it too (and on errors)
- *
- * @see elm_fileselector_folder_only_set() for more details
- *
- * @deprecated Use elm_fileselector_folder_only_get() instead.
- *
- * @ingroup File_Selector_Button
- */
-EINA_DEPRECATED EAPI Eina_Bool elm_fileselector_button_folder_only_get(const Evas_Object *obj);
-
-/**
- * Enable/disable the file name entry box where the user can type
- * in a name for a file, in a given file selector button widget's
- * internal file selector.
- *
- * @param obj The file selector button widget
- * @param value @c EINA_TRUE to make @p obj widget's internal
- * file selector a "saving dialog", @c EINA_FALSE otherwise
- *
- * This has the same effect as elm_fileselector_is_save_set(),
- * but now applied to a file selector button's internal file
- * selector.
- *
- * @see elm_fileselector_is_save_get()
- *
- * @deprecated Use elm_fileselector_is_save_set() instead.
- *
- * @ingroup File_Selector_Button
- */
-EINA_DEPRECATED EAPI void elm_fileselector_button_is_save_set(Evas_Object *obj, Eina_Bool value);
-
-/**
- * Get whether the given file selector button widget's internal
- * file selector is in "saving dialog" mode
- *
- * @param obj The file selector button widget
- * @return @c EINA_TRUE, if @p obj widget's internal file selector
- * is in "saving dialog" mode, @c EINA_FALSE otherwise (and on
- * errors)
- *
- * @see elm_fileselector_is_save_set() for more details
- *
- * @deprecated Use elm_fileselector_is_save_get() instead.
- *
- * @ingroup File_Selector_Button
- */
-EINA_DEPRECATED EAPI Eina_Bool elm_fileselector_button_is_save_get(const Evas_Object *obj);
-
-/**
- * Set the initial file system path and the entry's path string for
- * a given file selector entry widget
- *
- * @param obj The file selector entry widget
- * @param path The path string
- *
- * It must be a <b>directory</b> path, which will have the contents
- * displayed initially in the file selector's view, when invoked
- * from @p obj. The default initial path is the @c "HOME"
- * environment variable's value.
- *
- * @see elm_fileselector_path_get()
- *
- * @deprecated Use elm_fileselector_path_set() instead.
- *
- * @ingroup File_Selector_Entry
- */
-EINA_DEPRECATED EAPI void elm_fileselector_entry_path_set(Evas_Object *obj, const char *path);
-
-/**
- * Get the entry's path string for a given file selector entry
- * widget
- *
- * @param obj The file selector entry widget
- * @return path The path string
- *
- * @see elm_fileselector_path_set() for more details
- *
- * @deprecated Use elm_fileselector_path_get() instead.
- * @ingroup File_Selector_Entry
- */
-EINA_DEPRECATED EAPI const char *elm_fileselector_entry_path_get(const Evas_Object *obj);
-
-/**
- * Enable/disable a tree view in the given file selector entry
- * widget's internal file selector
- *
- * @param obj The file selector entry widget
- * @param value @c EINA_TRUE to enable tree view, @c EINA_FALSE to disable
- *
- * This has the same effect as elm_fileselector_expandable_set(),
- * but now applied to a file selector entry's internal file
- * selector.
- *
- * @note There's no way to put a file selector entry's internal
- * file selector in "grid mode", as one may do with "pure" file
- * selectors.
- *
- * @see elm_fileselector_expandable_get()
- *
- * @deprecated Use elm_fileselector_expandable_set() instead.
- *
- * @ingroup File_Selector_Entry
- */
-EINA_DEPRECATED EAPI void elm_fileselector_entry_expandable_set(Evas_Object *obj, Eina_Bool value);
-
-/**
- * Get whether tree view is enabled for the given file selector
- * entry widget's internal file selector
- *
- * @param obj The file selector entry widget
- * @return @c EINA_TRUE if @p obj widget's internal file selector
- * is in tree view, @c EINA_FALSE otherwise (and or errors)
- *
- * @see elm_fileselector_expandable_set() for more details
- *
- * @deprecated Use elm_fileselector_expandable_get() instead.
- *
- * @ingroup File_Selector_Entry
- */
-EINA_DEPRECATED EAPI Eina_Bool elm_fileselector_entry_expandable_get(const Evas_Object *obj);
-
-/**
- * Set whether a given file selector entry widget's internal file
- * selector is to display folders only or the directory contents,
- * as well.
- *
- * @param obj The file selector entry widget
- * @param value @c EINA_TRUE to make @p obj widget's internal file
- * selector only display directories, @c EINA_FALSE to make files
- * to be displayed in it too
- *
- * This has the same effect as elm_fileselector_folder_only_set(),
- * but now applied to a file selector entry's internal file
- * selector.
- *
- * @see elm_fileselector_folder_only_get()
- *
- * @deprecated Use elm_fileselector_folder_only_set() instead.
- *
- * @ingroup File_Selector_Entry
- */
-EINA_DEPRECATED EAPI void elm_fileselector_entry_folder_only_set(Evas_Object *obj, Eina_Bool value);
-
-/**
- * Get whether a given file selector entry widget's internal file
- * selector is displaying folders only or the directory contents,
- * as well.
- *
- * @param obj The file selector entry widget
- * @return @c EINA_TRUE if @p obj widget's internal file
- * selector is only displaying directories, @c EINA_FALSE if files
- * are being displayed in it too (and on errors)
- *
- * @see elm_fileselector_folder_only_set() for more details
- *
- * @deprecated Use elm_fileselector_folder_only_get() instead.
- *
- * @ingroup File_Selector_Entry
- */
-EINA_DEPRECATED EAPI Eina_Bool elm_fileselector_entry_folder_only_get(const Evas_Object *obj);
-
-/**
- * Enable/disable the file name entry box where the user can type
- * in a name for a file, in a given file selector entry widget's
- * internal file selector.
- *
- * @param obj The file selector entry widget
- * @param value @c EINA_TRUE to make @p obj widget's internal
- * file selector a "saving dialog", @c EINA_FALSE otherwise
- *
- * This has the same effect as elm_fileselector_is_save_set(),
- * but now applied to a file selector entry's internal file
- * selector.
- *
- * @see elm_fileselector_is_save_get()
- *
- * @deprecated Use elm_fileselector_is_save_set() instead.
- *
- * @ingroup File_Selector_Entry
- */
-EINA_DEPRECATED EAPI void elm_fileselector_entry_is_save_set(Evas_Object *obj, Eina_Bool value);
-
-/**
- * Get whether the given file selector entry widget's internal
- * file selector is in "saving dialog" mode
- *
- * @param obj The file selector entry widget
- * @return @c EINA_TRUE, if @p obj widget's internal file selector
- * is in "saving dialog" mode, @c EINA_FALSE otherwise (and on
- * errors)
- *
- * @see elm_fileselector_is_save_set() for more details
- *
- * @deprecated Use elm_fileselector_is_save_get() instead.
- *
- * @ingroup File_Selector_Entry
- */
-EINA_DEPRECATED EAPI Eina_Bool elm_fileselector_entry_is_save_get(const Evas_Object *obj);
-
-/**
- * Set the initial file system path for a given file selector entry
- * widget
- *
- * @param obj The file selector entry widget
- * @param path The path string
- *
- * It must be a <b>directory</b> path, which will have the contents
- * displayed initially in the file selector's view, when invoked
- * from @p obj. The default initial path is the @c "HOME"
- * environment variable's value.
- *
- * @see elm_fileselector_path_get()
- *
- * @deprecated Use elm_fileselector_selected_set() instead.
- *
- * @ingroup File_Selector_Entry
- */
-EINA_DEPRECATED EAPI void elm_fileselector_entry_selected_set(Evas_Object *obj, const char *path);
-
-/**
- * Get the parent directory's path to the latest file selection on
- * a given filer selector entry widget
- *
- * @param obj The file selector object
- * @return The (full) path of the directory of the last selection
- * on @p obj widget, a @b stringshared string
- *
- * @see elm_fileselector_path_set()
- *
- * @deprecated Use elm_fileselector_selected_get() instead.
- *
- * @ingroup File_Selector_Entry
- */
-EINA_DEPRECATED EAPI const char *elm_fileselector_entry_selected_get(const Evas_Object *obj);
-
-//TODO: remvoe below - use elm_access_text_set(); or elm_access_cb_set();
-EINA_DEPRECATED EAPI void elm_access_external_info_set(Evas_Object *obj, const char *text);
-EINA_DEPRECATED EAPI char *elm_access_external_info_get(const Evas_Object *obj);
diff --git a/src/lib/elm_diskselector.h b/src/lib/elm_diskselector.h
index 3f0a431d0..10935968c 100644
--- a/src/lib/elm_diskselector.h
+++ b/src/lib/elm_diskselector.h
@@ -1,4 +1,5 @@
/**
+ * @internal
* @defgroup Diskselector Diskselector
* @ingroup Elementary
*
@@ -9,70 +10,401 @@
* @image latex img/widget/diskselector/preview-00.eps
*
* A diskselector is a kind of list widget. It scrolls horizontally,
- * and can contain label and icon objects. Three items are displayed
+ * and can contain labels and icon objects. Three items are displayed
* with the selected one in the middle.
*
- * It can act like a circular list with round mode and labels can be
+ * It can act like a circular list with a round mode and labels can be
* reduced for a defined length for side items.
*
- * This widget implements the @b @ref elm-scrollable-interface
+ * This widget implements the @ref elm-scrollable-interface
* interface, so that all (non-deprecated) functions for the base @ref
* Scroller widget also work for diskselectors.
*
* Some calls on the diskselector's API are marked as @b deprecated,
- * as they just wrap the scrollable widgets counterpart functions. Use
- * the ones we point you to, for each case of deprecation here,
- * instead -- eventually the deprecated ones will be discarded (next
+ * as they just wrap the scrollable widget's counterpart functions. Use
+ * the ones mentioned here for each case of deprecation.
+ * Eventually, the deprecated ones are discarded (next
* major release).
*
* This widget emits the following signals, besides the ones sent from
- * @ref Layout:
- * @li @c "selected" - when item is selected, i.e. scroller stops.
- * @li @c "clicked" - This is called when a user clicks an item (since 1.8)
- * @li @c "scroll,anim,start" - scrolling animation has started
- * @li @c "scroll,anim,stop" - scrolling animation has stopped
- * @li @c "scroll,drag,start" - dragging the diskselector has started
- * @li @c "scroll,drag,stop" - dragging the diskselector has stopped
- * @li @c "focused" - When the diskselector has received focus. (since 1.8)
- * @li @c "unfocused" - When the diskselector has lost focus. (since 1.8)
- * @li @c "language,changed" - the program's language changed (since 1.9)
- *
- * @note The "scroll,anim,*" and "scroll,drag,*" signals are only emitted by
+ * @ref Layout :
+ * @li @c "selected" - When the item is selected, i.e. scroller stops.
+ * @li @c "clicked" - This is called when a user clicks an item (@since 1.8).
+ * @li @c "scroll,anim,start" - Scrolling animation has started.
+ * @li @c "scroll,anim,stop" - Scrolling animation has stopped.
+ * @li @c "scroll,drag,start" - Dragging the diskselector has started.
+ * @li @c "scroll,drag,stop" - Dragging the diskselector has stopped.
+ * @remarks The "scroll,anim,*" and "scroll,drag,*" signals are only emitted by
* user intervention.
*
* Available styles for it:
* - @c "default"
*
- * Default content parts of the diskselector items that you can use for are:
- * @li "icon" - An icon in the diskselector item
+ * The default content parts of the diskselector items that you can use are:
+ * @li "icon" - An icon in the diskselector item.
*
- * Default text parts of the diskselector items that you can use for are:
- * @li "default" - A label of the diskselector item
+ * The default text parts of the diskselector items that you can use are:
+ * @li "default" - The label of the diskselector item.
*
- * Supported elm_object_item common APIs.
- * @li @ref elm_object_item_del
+ * Supported common elm_object_item APIs.
* @li @ref elm_object_item_part_text_set
* @li @ref elm_object_item_part_text_get
* @li @ref elm_object_item_part_content_set
* @li @ref elm_object_item_part_content_get
*
- * List of examples:
- * @li @ref diskselector_example_01
- * @li @ref diskselector_example_02
+ * @{
*/
/**
- * @addtogroup Diskselector
- * @{
+ * @brief Adds a new diskselector widget to the given parent Elementary
+ * (container) object.
+ *
+ * @details This function inserts a new diskselector widget on the canvas.
+ *
+ * @param[in] parent The parent object
+ * @return A new diskselector widget handle, otherwise @c NULL in case of an error
+ */
+EAPI Evas_Object *elm_diskselector_add(Evas_Object *parent);
+
+/**
+ * @brief Enables or disables the round mode.
+ *
+ * @remarks This is disabled by default. If the round mode is enabled, the items list
+ * works like a circular list, so when the user reaches the last item,
+ * the first one pops up.
+ *
+ * @param[in] obj The diskselector object
+ * @param[in] enabled If @c EINA_TRUE the round mode is enabled, otherwise @c EINA_FALSE to disable it
+ *
+ * @see elm_diskselector_round_enabled_get()
+ */
+EAPI void elm_diskselector_round_enabled_set(Evas_Object *obj, Eina_Bool enabled);
+
+/**
+ * @brief Gets a value that indicates whether the round mode is enabled.
+ *
+ * @param[in] obj The diskselector object
+ * @return @c EINA_TRUE if the round mode is enabled, otherwise @c EINA_FALSE if it is disabled \n
+ * If @a obj is @c NULL, @c EINA_FALSE is returned.
+ *
+ * @see elm_diskselector_round_enabled_set()
+ */
+EAPI Eina_Bool elm_diskselector_round_enabled_get(const Evas_Object *obj);
+
+/**
+ * @brief Gets the side labels maximum length.
+ *
+ * @param[in] obj The diskselector object
+ * @return The maximum length defined for side labels, otherwise @c 0 if it is not a valid diskselector
+ *
+ * @see elm_diskselector_side_text_max_length_set()
+ */
+EAPI int elm_diskselector_side_text_max_length_get(const Evas_Object *obj);
+
+/**
+ * @brief Sets the side labels maximum length.
+ *
+ * @remarks Length is the number of characters of items' label that are
+ * visible when it's set on side positions. It just crops
+ * the string after the defined size. E.g.:
+ *
+ * An item with label "January" would be displayed on the side position as
+ * "Jan" if the maximum length is set to @c 3, or "Janu", if this property
+ * is set to @c 4.
+ *
+ * @remarks When it's selected, the entire label is displayed, except for the
+ * width restrictions. In this case, the label is cropped and "..."
+ * is concatenated.
+ *
+ * @remarks The default side label maximum length is 3.
+ *
+ * @remarks This property is applied over all items, included before or
+ * after this function call.
+ *
+ * @param[in] obj The diskselector object
+ * @param[in] len The maximum length defined for side labels
+ */
+EAPI void elm_diskselector_side_text_max_length_set(Evas_Object *obj, int len);
+
+/**
+ * @brief Sets the number of items to be displayed.
+ *
+ * @remarks The default value is @c 3, and also it's the minimum value. If @a num is less
+ * than @c 3, it is set to @c 3.
+ *
+ * @remarks Also, it can be set on the theme, using data item @c display_item_num
+ * on the group "elm/diskselector/item/X", where X is the style set.
+ * E.g.:
+ *
+ * group { name: "elm/diskselector/item/X";
+ * data {
+ * item: "display_item_num" "5";
+ * }
+ *
+ * @param[in] obj The diskselector object
+ * @param[in] num The number of items the diskselector displays
+ */
+EAPI void elm_diskselector_display_item_num_set(Evas_Object *obj, int num);
+
+/**
+ * @brief Gets the number of items in the diskselector object.
+ *
+ * @param[in] obj The diskselector object
+ */
+EAPI int elm_diskselector_display_item_num_get(const Evas_Object *obj);
+
+/**
+ * @brief Sets the bouncing behaviour when the scrolled content reaches an edge.
+ *
+ * @details This tells the internal scroller object whether it should bounce or not
+ * when it reaches the respective edges of each axis.
+ *
+ * @param[in] obj The diskselector object
+ * @param[in] h_bounce The boolean value that indicates whether to bounce in the horizontal axis
+ * @param[in] v_bounce The boolean value that indicates whether to bounce in the vertical axis
+ *
+ * @deprecated Use elm_scroller_bounce_set() instead.
+ *
+ * @see elm_scroller_bounce_set()
+ */
+EINA_DEPRECATED EAPI void elm_diskselector_bounce_set(Evas_Object *obj, Eina_Bool h_bounce, Eina_Bool v_bounce);
+
+/**
+ * @brief Gets the bouncing behaviour of the internal scroller.
+ *
+ * @details This sets whether the internal scroller should bounce when the edge of each
+ * axis is reached by scrolling.
+ *
+ * @param[in] obj The diskselector object
+ * @param[in] h_bounce The pointer to store the bounce state of the horizontal axis
+ * @param[in] v_bounce The pointer to store the bounce state of the vertical axis
+ *
+ * @deprecated Use elm_scroller_bounce_get() instead.
+ *
+ * @see elm_scroller_bounce_get()
+ * @see elm_diskselector_bounce_set()
+ */
+EINA_DEPRECATED EAPI void elm_diskselector_bounce_get(const Evas_Object *obj, Eina_Bool *h_bounce, Eina_Bool *v_bounce);
+
+/**
+ * @brief Gets the scrollbar policy.
+ *
+ * @param[in] obj The diskselector object
+ * @param[out] policy_h The pointer to store the horizontal scrollbar policy
+ * @param[out] policy_v The pointer to store the vertical scrollbar policy
+ *
+ * @deprecated Use elm_scroller_policy_get() instead.
+ *
+ * @see elm_diskselector_scroller_policy_get()
+ * @see elm_scroller_policy_get()
+ */
+EINA_DEPRECATED EAPI void elm_diskselector_scroller_policy_get(const Evas_Object *obj, Elm_Scroller_Policy *policy_h, Elm_Scroller_Policy *policy_v);
+
+/**
+ * @brief Sets the scrollbar policy.
+ *
+ * @details This sets the scrollbar visibility policy for the given
+ * scroller. #ELM_SCROLLER_POLICY_AUTO means the scrollbar is made visible if
+ * needed, and otherwise kept hidden. #ELM_SCROLLER_POLICY_ON turns
+ * it on at all times, and #ELM_SCROLLER_POLICY_OFF always keeps it off.
+ * This applies for the horizontal and vertical scrollbars respectively.
+ *
+ * @remarks Both are disabled by default, i.e., they are set to #ELM_SCROLLER_POLICY_OFF.
+ *
+ * @param[in] obj The diskselector object
+ * @param[in] policy_h The horizontal scrollbar policy
+ * @param[in] policy_v The vertical scrollbar policy
+ *
+ * @deprecated Use elm_scroller_policy_set() instead.
+ *
+ * @see elm_scroller_policy_set()
+ */
+EINA_DEPRECATED EAPI void elm_diskselector_scroller_policy_set(Evas_Object *obj, Elm_Scroller_Policy policy_h, Elm_Scroller_Policy policy_v);
+
+/**
+ * @brief Removes all the diskselector items.
+ *
+ * @param[in] obj The diskselector object
+ *
+ * @see elm_object_item_del()
+ * @see elm_diskselector_item_append()
+ */
+EAPI void elm_diskselector_clear(Evas_Object *obj);
+
+/**
+ * @brief Gets a list of all the diskselector items.
+ *
+ * @param[in] obj The diskselector object
+ * @return An @c Eina_List of diskselector items, #Elm_Object_Item, otherwise @c NULL on failure
+ *
+ * @see elm_diskselector_item_append()
+ * @see elm_object_item_del()
+ * @see elm_diskselector_clear()
+ */
+EAPI const Eina_List *elm_diskselector_items_get(const Evas_Object *obj);
+
+/**
+ * @brief Appends a new item to the diskselector object.
+ *
+ * @remarks A new item is created and appended to the diskselector, i.e., it is
+ * set as the last item. Also, if there is no selected item, it is
+ * selected. This always happens for the first appended item.
+ *
+ * @remarks If no icon is set, the label is centered at the item position, otherwise
+ * the icon is placed on the left of the label, that is shifted
+ * to the right.
+ *
+ * @remarks Items created with this method can be deleted with
+ * elm_object_item_del().
+ *
+ * @remarks Associated @a data can be properly freed when the item is deleted if a
+ * callback function is set with elm_object_item_del_cb_set().
+ *
+ * @remarks If a function is passed as an argument, it is called every time this item
+ * is selected, i.e., the user stops the diskselector with this
+ * item at the center position. If such a function isn't needed, just passing
+ * @c NULL as @a func is enough. The same should be done for @a data.
+ *
+ * Simple example (with no function callback or data is associated):
+ * @code
+ * disk = elm_diskselector_add(win);
+ * ic = elm_icon_add(win);
+ * elm_image_file_set(ic, "path/to/image", NULL);
+ * elm_icon_resizable_set(ic, EINA_TRUE, EINA_TRUE);
+ * elm_diskselector_item_append(disk, "label", ic, NULL, NULL);
+ * @endcode
+ *
+ * @param[in] obj The diskselector object
+ * @param[in] label The label of the diskselector item
+ * @param[in] icon The icon object to use on the left side of the item \n
+ * An icon can be any Evas object, but usually it is an icon created with elm_icon_add().
+ * @param[in] func The function to call when the item is selected
+ * @param[in] data The data to associate with the item for related callbacks
+ *
+ * @return The created item, otherwise @c NULL on failure
+ *
+ * @see elm_object_item_del()
+ * @see elm_diskselector_clear()
+ * @see elm_icon_add()
+ */
+EAPI Elm_Object_Item *elm_diskselector_item_append(Evas_Object *obj, const char *label, Evas_Object *icon, Evas_Smart_Cb func, const void *data);
+
+/**
+ * @brief Gets the selected item.
+ *
+ * @remarks The selected item can be unselected with function
+ * elm_diskselector_item_selected_set(), and the first item of the
+ * diskselector is selected.
+ *
+ * @remarks The selected item is always centered on the diskselector, with the
+ * entire label displayed, i.e., maximum length set to side labels won't
+ * apply on the selected item. For more details, see
+ * elm_diskselector_side_text_max_length_set().
+ *
+ * @param[in] obj The diskselector object
+ * @return The selected diskselector item
+ */
+EAPI Elm_Object_Item *elm_diskselector_selected_item_get(const Evas_Object *obj);
+
+/**
+ * @brief Sets the selected state of an item.
+ *
+ * @details This sets the selected state of the given item @a it.
+ * @c EINA_TRUE for selected, @c EINA_FALSE for not selected.
+ *
+ * @remarks If a new item is selected the previously selected is unselected.
+ * Previously selected item can be obtained with the function
+ * elm_diskselector_selected_item_get().
+ *
+ * @remarks If the item @a it is unselected, the first item of diskselector is selected.
+ *
+ * @remarks Selected items are visible at the center position of the diskselector.
+ * So if it is at another position before getting selected, or is invisible,
+ * the diskselector animates the items until the selected item reaches the center
+ * position.
+ *
+ * @param[in] it The diskselector item
+ * @param[in] selected The selected state
+ *
+ * @see elm_diskselector_item_selected_get()
+ * @see elm_diskselector_selected_item_get()
+ */
+EAPI void elm_diskselector_item_selected_set(Elm_Object_Item *it, Eina_Bool selected);
+
+/**
+ * @brief Gets whether the @a item is selected.
+ *
+ * @param[in] it The diskselector item
+ * @return @c EINA_TRUE indicates that the item is selected, otherwise @c EINA_FALSE if it is not \n
+ * If @a obj is @c NULL, @c EINA_FALSE is returned.
+ *
+ * @see elm_diskselector_selected_item_set()
+ * @see elm_diskselector_item_selected_get()
+ */
+EAPI Eina_Bool elm_diskselector_item_selected_get(const Elm_Object_Item *it);
+
+/**
+ * @brief Gets the first item of the diskselector.
+ *
+ * @remarks The list of items follows an append order. So it returns the first
+ * item appended to the widget that isn't deleted.
+ *
+ * @param[in] obj The diskselector object
+ * @return The first item, otherwise @c NULL if none are present
+ *
+ * @see elm_diskselector_item_append()
+ * @see elm_diskselector_items_get()
+ */
+EAPI Elm_Object_Item *elm_diskselector_first_item_get(const Evas_Object *obj);
+
+/**
+ * @brief Gets the last item of the diskselector.
+ *
+ * @remarks The list of items follows an append order. So it returns the last
+ * item appended to the widget that isn't deleted.
+ *
+ * @param[in] obj The diskselector object
+ * @return The last item, otherwise @c NULL if none are present
+ *
+ * @see elm_diskselector_item_append()
+ * @see elm_diskselector_items_get()
+ */
+EAPI Elm_Object_Item *elm_diskselector_last_item_get(const Evas_Object *obj);
+
+/**
+ * @brief Gets the item before @a item in the diskselector.
+ *
+ * @remarks The list of items follows an append order. So it returns the item appended
+ * just before @a item which isn't deleted.
+ *
+ * @remarks If it is the first item, @c NULL is returned.
+ * First item can be obtained by elm_diskselector_first_item_get().
+ *
+ * @param[in] it The diskselector item
+ * @return The item before @a item, otherwise @c NULL if none are present or on failure
+ *
+ * @see elm_diskselector_item_append()
+ * @see elm_diskselector_items_get()
+ */
+EAPI Elm_Object_Item *elm_diskselector_item_prev_get(const Elm_Object_Item *it);
+
+/**
+ * @brief Gets the item after @a item in the diskselector.
+ *
+ * @remarks The list of items follows an append order. So it returns the item appended
+ * just after @a item which isn't deleted.
+ *
+ * @remarks If it is the last item, @c NULL is returned.
+ * Last item can be obtained by elm_diskselector_last_item_get().
+ *
+ * @param[in] it The diskselector item
+ * @return The item after @a item, otherwise @c NULL if none are present or on failure
+ *
+ * @see elm_diskselector_item_append()
+ * @see elm_diskselector_items_get()
*/
+EAPI Elm_Object_Item *elm_diskselector_item_next_get(const Elm_Object_Item *it);
-#include "elm_diskselector_common.h"
-#ifdef EFL_EO_API_SUPPORT
-#include "elm_diskselector_eo.h"
-#endif
-#ifndef EFL_NOLEGACY_API_SUPPORT
-#include "elm_diskselector_legacy.h"
-#endif
/**
* @}
*/
diff --git a/src/lib/elm_entry.h b/src/lib/elm_entry.h
index c38adf801..55e570990 100644
--- a/src/lib/elm_entry.h
+++ b/src/lib/elm_entry.h
@@ -1,165 +1,133 @@
/**
* @defgroup Entry Entry
- * @ingroup Elementary
+ * @ingroup elm_widget_group
*
* @image html entry_inheritance_tree.png
* @image latex entry_inheritance_tree.eps
*
- * @image html img/widget/entry/preview-00.png
- * @image latex img/widget/entry/preview-00.eps width=\textwidth
- * @image html img/widget/entry/preview-01.png
- * @image latex img/widget/entry/preview-01.eps width=\textwidth
- * @image html img/widget/entry/preview-02.png
- * @image latex img/widget/entry/preview-02.eps width=\textwidth
- * @image html img/widget/entry/preview-03.png
- * @image latex img/widget/entry/preview-03.eps width=\textwidth
+ * @brief An entry is a convenience widget that shows a box in which the user
+ * can enter text.
*
- * An entry is a convenience widget which shows a box that the user can
- * enter text into. Entries by default don't scroll, so they grow to
- * accommodate the entire text, resizing the parent window as needed. This
- * can be changed with the elm_entry_scrollable_set() function.
+ * Entries by default don't scroll, so they grow to accommodate the entire
+ * text, resizing the parent window as needed. This can be changed with the
+ * elm_entry_scrollable_set() function.
*
* They can also be single line or multi line (the default) and when set
- * to multi line mode they support text wrapping in any of the modes
+ * to the multi line mode they support text wrapping in any of the modes
* indicated by #Elm_Wrap_Type.
*
- * Other features include password mode, filtering of inserted text with
+ * Other features include the password mode, filtering of inserted text with
* elm_entry_markup_filter_append() and related functions, inline "items" and
* formatted markup text.
*
* This widget inherits from the @ref Layout one, so that all the
- * functions acting on it also work for entry objects (since 1.8).
+ * functions acting on it also work for entry objects (@since 1.8).
*
- * This widget implements the @b @ref elm-scrollable-interface
+ * This widget implements the elm-scrollable-interface
* interface, so that all (non-deprecated) functions for the base
- * @ref Scroller widget also work for entries (since 1.8).
+ * @ref Scroller widget also work for entries (@since 1.8).
*
* Some calls on the entry's API are marked as @b deprecated, as they
* just wrap the scrollable widgets counterpart functions. Use the
- * ones we point you to, for each case of deprecation here, instead --
- * eventually the deprecated ones will be discarded (next major
+ * ones mentioned for each case of deprecation here.
+ * Eventually the deprecated ones are discarded (next major
* release).
*
* @section entry-markup Formatted text
*
* The markup tags supported by the Entry are defined by the theme, but
- * even when writing new themes or extensions it's a good idea to stick to
+ * even while writing new themes or extensions it's a good idea to stick to
* a sane default, to maintain coherency and avoid application breakages.
- * Currently defined by the default theme are the following tags:
+ * Currently the tags defined by the default theme are as follows:
* @li \<br\>: Inserts a line break.
* @li \<ps\>: Inserts a paragraph separator. This is preferred over line
* breaks.
* @li \<tab\>: Inserts a tab.
- * @li \<em\>...\</em\>: Emphasis. Sets the @em oblique style for the
+ * @li \<em\>...\</em\>: Emphasizes text. Sets the @em oblique style for the
* enclosed text.
* @li \<b\>...\</b\>: Sets the @b bold style for the enclosed text.
* @li \<link\>...\</link\>: Underlines the enclosed text.
* @li \<hilight\>...\</hilight\>: Highlights the enclosed text.
- * @li \<title\>...\</title\>: Main title.
- * @li \<subtitle\>...\</subtitle\>: Secondary level title.
- * @li \<bigger\>...\</bigger\>: A really big text, not so big as the titles.
- * @li \<big\>...\</big\>: Big text.
- * @li \<small\>...\</small\>: Small text.
- * @li \<smaller\>...\</smaller\>: Really small text, at the point of unreadability.
- *
- * Entry also support tags for code syntax highlight. Note that this does not
- * mean that the entry will automatically perform code highlight, application
- * are responsable of applying the correct tag to code blocks.
- * The default theme define the following tags:
- * @li \<code\>...\</code\>: Monospace font without shadows.
- * @li \<comment\>...\</comment\>: Code comments.
- * @li \<string\>...\</string\>: Strings of text.
- * @li \<number\>...\</number\>: Numeric expression (ex: 1, 2, 0.34, etc)
- * @li \<brace\>...\</brace\>: Braces used for code syntax.
- * @li \<type\>...\</type\>: Variables types (ex: int, float, char, Evas_Object, etc)
- * @li \<class\>...\</class\>: Class names, when defined, not when used.
- * @li \<function\>...\</function\>: Function names, when defined, not called.
- * @li \<param\>...\</param\>: Generic parameters.
- * @li \<keyword\>...\</keyword\>: Language keywords (ex: return, NULL, while, for, etc)
- * @li \<preprocessor\>...\</preprocessor\>: Preprocessors definitions.
- * @li \<line_added\>...\</line_added\>: Diff addeded lines.
- * @li \<line_removed\>...\</line_removed\>: Diff removed lines.
- * @li \<line_changed\>...\</line_changed\>: Diff changed lines.
*
* @section entry-special Special markups
*
* Besides those used to format text, entries support two special markup
- * tags used to insert click-able portions of text or items inlined within
- * the text.
+ * tags used to insert clickable portions of text or items inlined within
+ * text.
*
* @subsection entry-anchors Anchors
*
* Anchors are similar to HTML anchors. Text can be surrounded by \<a\> and
- * \</a\> tags and an event will be generated when this text is clicked,
- * like this:
+ * \</a\> and an event is generated when this text is clicked,
+ * for example:
*
* @code
* This text is outside <a href=anc-01>but this one is an anchor</a>
* @endcode
*
- * The @c href attribute in the opening tag gives the name that will be
- * used to identify the anchor and it can be any valid utf8 string.
+ * The @c href attribute in the opening tag gives the name that is
+ * used to identify the anchor. It can be any valid UTF8 string.
*
* When an anchor is clicked, an @c "anchor,clicked" signal is emitted with
- * an #Elm_Entry_Anchor_Info in the @p event_info parameter for the
- * callback function. The same applies for "anchor,in" (mouse in), "anchor,out"
+ * #Elm_Entry_Anchor_Info in the @a event_info parameter for the
+ * callback function. The same applies for the "anchor,in" (mouse in), "anchor,out"
* (mouse out), "anchor,down" (mouse down), and "anchor,up" (mouse up) events on
* an anchor.
*
* @subsection entry-items Items
*
* Inlined in the text, any other @c Evas_Object can be inserted by using
- * \<item\> tags this way:
+ * \<item\> tags, for example:
*
* @code
* <item size=16x16 vsize=full href=emoticon/haha></item>
* @endcode
*
- * Just like with anchors, the @c href identifies each item, but these need,
- * in addition, to indicate their size, which is done using any one of
- * @c size, @c absize or @c relsize attributes. These attributes take their
- * value in the WxH format, where W is the width and H the height of the
+ * Just like with anchors, the @c href identifies each item. However, these need
+ * to additionally indicate their size, which is done using either the
+ * @c size, @c absize, or @c relsize attribute. These attributes take their
+ * value in the WxH format, where W is the width and H is the height of the
* item.
*
- * @li absize: Absolute pixel size for the item. Whatever value is set will
- * be the item's size regardless of any scale value the object may have
- * been set to. The final line height will be adjusted to fit larger items.
+ * @li absize: Absolute pixel size for the item. Whatever value is set
+ * becomes the item's size regardless of any scale value the object may have
+ * been set to. The final line height is adjusted to fit larger items.
* @li size: Similar to @c absize, but it's adjusted to the scale value set
* for the object.
* @li relsize: Size is adjusted for the item to fit within the current
* line height.
*
- * Besides their size, items are specified a @c vsize value that affects
- * how their final size and position are calculated. The possible values
+ * Besides their size, items are given a @c vsize value that affects
+ * how their final size and position is calculated. The possible values
* are:
- * @li ascent: Item will be placed within the line's baseline and its
+ * @li ascent: Item is placed within the line's baseline and its
* ascent. That is, the height between the line where all characters are
* positioned and the highest point in the line. For @c size and @c absize
- * items, the descent value will be added to the total line height to make
- * them fit. @c relsize items will be adjusted to fit within this space.
- * @li full: Items will be placed between the descent and ascent, or the
- * lowest point in the line and its highest.
+ * items, the descent value is added to the total line height to make
+ * them fit. @c relsize items are adjusted to fit within this space.
+ * @li full: Items are placed between the descent and ascent, or the
+ * lowest and highest point in the line.
*
* The next image shows different configurations of items and how
* the previously mentioned options affect their sizes. In all cases,
- * the green line indicates the ascent, blue for the baseline and red for
+ * the green line indicates the ascent, blue indicates the baseline, and red indicates
* the descent.
*
* @image html entry_item.png
- * @image latex entry_item.eps width=\textwidth
+ * @image latex entry_item.eps "entry item" width=\textwidth
*
- * And another one to show how size differs from absize. In the first one,
- * the scale value is set to 1.0, while the second one is using one of 2.0.
+ * And another one to show how size differs from @c absize. In the first one,
+ * the scale value is set to @c 1.0, while the second one is using @c 2.0.
*
* @image html entry_item_scale.png
- * @image latex entry_item_scale.eps width=\textwidth
+ * @image latex entry_item_scale.eps "entry item scale" width=\textwidth
*
- * After the size for an item is calculated, the entry will request an
+ * After the size for an item is calculated, the entry requests an
* object to place in its space. For this, the functions set with
- * elm_entry_item_provider_append() and related functions will be called
- * in order until one of them returns a @c non-NULL value. If no providers
+ * elm_entry_item_provider_append() and other related functions are called
+ * in order until one of them returns a non-NULL value. If no providers
* are available, or all of them return @c NULL, then the entry falls back
- * to one of the internal defaults, provided the name matches with one of
+ * to one of the internal defaults, provided the name matches one of
* them.
*
* All of the following are currently supported:
@@ -206,84 +174,75 @@
* - emoticon/wtf
*
* Alternatively, an item may reference an image by its path, using
- * the URI form @c file:///path/to/an/image.png and the entry will then
- * use that image for the item.
+ * the URI form @c file:///path/to/an/image.png and the entry then
+ * uses that image for the item.
*
* @section entry-style-set Setting entry's style
*
* There are 2 major ways to change the entry's style:
- * - Theme - set the "base" field to the desired style.
- * - User style - Pushing overrides to the theme style to the textblock object by using evas_object_textblock_style_user_push().
+ * - Theme - Set the "base" field to the desired style.
+ * - User style - Pushing overrides the theme style to the textblock object by using evas_object_textblock_style_user_push().
*
- * You should modify the theme when you would like to change the style for
- * aesthetic reasons. While the user style should be changed when you would
- * like to change the style to something specific defined at run-time, e.g,
+ * You should modify the theme when you want to change the style for
+ * aesthetic reasons. While the user style should be changed when you want
+ * to change the style to something specifically defined at run-time, e.g,
* setting font or font size in a text editor.
*
* @section entry-files Loading and saving files
*
* Entries have convenience functions to load text from a file and save
* changes back to it after a short delay. The automatic saving is enabled
- * by default, but can be disabled with elm_entry_autosave_set() and files
- * can be loaded directly as plain text or have any markup in them
- * recognized. See elm_entry_file_set() for more details.
+ * by default, but can be disabled with elm_entry_autosave_set(). Files
+ * can be loaded directly as plain text or can have any recognized markup in them.
+ * See elm_entry_file_set() for more details.
*
* @section entry-signals Emitted signals
*
* This widget emits the following signals, besides the ones sent from
- * @ref Layout:
- * @li "aborted": The escape key was pressed on a single line entry. (since 1.7)
- * @li "activated": The enter key was pressed on a single line entry.
- * @li "anchor,clicked": An anchor has been clicked. The event_info
- * parameter for the callback will be an #Elm_Entry_Anchor_Info.
- * @li "anchor,down": Mouse button has been pressed on an anchor. The event_info
- * parameter for the callback will be an #Elm_Entry_Anchor_Info.
- * @li "anchor,hover,opened": The anchor is clicked.
- * @li "anchor,in": Mouse cursor has moved into an anchor. The event_info
- * parameter for the callback will be an #Elm_Entry_Anchor_Info.
- * @li "anchor,out": Mouse cursor has moved out of an anchor. The event_info
- * parameter for the callback will be an #Elm_Entry_Anchor_Info.
- * @li "anchor,up": Mouse button has been unpressed on an anchor. The event_info
- * parameter for the callback will be an #Elm_Entry_Anchor_Info.
- * @li "changed": The text within the entry was changed.
- * @li "changed,user": The text within the entry was changed because of user interaction.
+ * @ref Layout :
+ * @li "changed": The text within the entry is changed.
+ * @li "changed,user": The text within the entry is changed because of user interaction.
+ * @li "activated": The enter key is pressed on a single line entry.
+ * @li "aborted": The escape key is pressed on a single line entry. (since 1.7)
+ * @li "press": A mouse button has been pressed on the entry.
+ * @li "longpressed": A mouse button has been pressed and held for a couple of
+ * seconds.
* @li "clicked": The entry has been clicked (mouse press and release).
* @li "clicked,double": The entry has been double clicked.
* @li "clicked,triple": The entry has been triple clicked.
- * @li "cursor,changed": The cursor has changed position.
- * @li "cursor,changed,manual": The cursor has changed position manually.
* @li "focused": The entry has received focus.
* @li "unfocused": The entry has lost focus.
- * @li "language,changed": Program language changed.
- * @li "longpressed": A mouse button has been pressed and held for a couple
- * @li "maxlength,reached": Called when a maximum length is reached.
- * @li "preedit,changed": The preedit string has changed.
- * @li "press": A mouse button has been pressed on the entry.
- * seconds.
- * @li "redo,request": Called on redo request.
- * @li "selection,changed": The current selection has changed.
- * @li "selection,cleared": The current selection has been cleared.
- * @li "selection,copy": A copy of the selected text into the clipboard was
+ * @li "selection,paste": A paste of the clipboard contents has been requested.
+ * @li "selection,copy": A copy of the selected text into the clipboard has been
* requested.
- * @li "selection,cut": A cut of the selected text into the clipboard was
+ * @li "selection,cut": A cut of the selected text into the clipboard has been
* requested.
- * @li "selection,paste": A paste of the clipboard contents was requested.
* @li "selection,start": A selection has begun and no previous selection
* existed.
- * @li "text,set,done": Whole text has been set to the entry.
- * @li "theme,changed": Called when the theme is changed.
- * @li "undo,request": Called on undo request.
- * @li "rejected": Called when some of inputs are rejected by the filter. (since 1.9)
+ * @li "selection,changed": The current selection has changed.
+ * @li "selection,cleared": The current selection has been cleared.
+ * @li "cursor,changed": The cursor has changed position.
+ * @li "anchor,clicked": An anchor has been clicked. The @a event_info
+ * parameter for the callback is #Elm_Entry_Anchor_Info.
+ * @li "anchor,in": The mouse cursor has moved into an anchor. The @a event_info
+ * parameter for the callback is #Elm_Entry_Anchor_Info.
+ * @li "anchor,out": The mouse cursor has moved out of an anchor. The @a event_info
+ * parameter for the callback is #Elm_Entry_Anchor_Info.
+ * @li "anchor,up": The mouse button has been unpressed on an anchor. The @a event_info
+ * parameter for the callback is #Elm_Entry_Anchor_Info.
+ * @li "anchor,down": The muse button has been pressed on an anchor. The @a event_info
+ * parameter for the callback is #Elm_Entry_Anchor_Info.
+ * @li "preedit,changed": The preedit string has changed.
+ * @li "language,changed": The program language has changed.
*
- * Default content parts of the entry items that you can use for are:
+ * The default content parts of the entry items that you can use are:
* @li "icon" - An icon in the entry
- * @li "end" - A content in the end of the entry
+ * @li "end" - Content at the end of the entry
*
- * Default text parts of the entry that you can use for are:
- * @li "default" - A text of the entry
- * @li "guide" - A placeholder of the entry
+ * The default text parts of the entry that you can use are:
+ * @li "default" - Text of the entry
*
- * Supported elm_object common APIs.
+ * Supported common elm_object APIs.
* @li @ref elm_object_signal_emit
* @li @ref elm_object_part_text_set
* @li @ref elm_object_part_text_get
@@ -295,20 +254,1924 @@
* @li @ref elm_object_disabled_set
* @li @ref elm_object_disabled_get
*
- * @section entry-examples
+ * @{
+ */
+
+/**
+ * @typedef Elm_Text_Format
+ *
+ * @brief Enumeration that defines the text format types.
*
- * An overview of the Entry API can be seen in @ref entry_example
+ * @see elm_entry_file_set()
+ */
+typedef enum
+{
+ ELM_TEXT_FORMAT_PLAIN_UTF8, /**< Plain UTF8 type */
+ ELM_TEXT_FORMAT_MARKUP_UTF8 /**< Markup UTF8 type */
+} Elm_Text_Format;
+
+/**
+ * @typedef Elm_Wrap_Type
*
- * @{
+ * @brief Enumeration that defines the line wrapping types.
+ *
+ * @see elm_entry_line_wrap_set()
+ */
+typedef enum
+{
+ ELM_WRAP_NONE = 0, /**< No wrap - value is zero */
+ ELM_WRAP_CHAR, /**< Char wrap - wrap between characters */
+ ELM_WRAP_WORD, /**< Word wrap - wrap within the allowed wrapping points (as defined in the unicode standard) */
+ ELM_WRAP_MIXED, /**< Mixed wrap - Word wrap, if that fails, char wrap */
+ ELM_WRAP_LAST
+} Elm_Wrap_Type; /**< Type of word or character wrapping to use */
+
+/**
+ * @typedef Elm_Input_Panel_Layout
+ *
+ * @brief Enumeration that defines the input panel (virtual keyboard) layout types.
+ *
+ * @see elm_entry_input_panel_layout_set()
+ */
+typedef enum
+{
+ ELM_INPUT_PANEL_LAYOUT_NORMAL, /**< Default layout */
+ ELM_INPUT_PANEL_LAYOUT_NUMBER, /**< Number layout */
+ ELM_INPUT_PANEL_LAYOUT_EMAIL, /**< Email layout */
+ ELM_INPUT_PANEL_LAYOUT_URL, /**< URL layout */
+ ELM_INPUT_PANEL_LAYOUT_PHONENUMBER, /**< Phone number layout */
+ ELM_INPUT_PANEL_LAYOUT_IP, /**< IP layout */
+ ELM_INPUT_PANEL_LAYOUT_MONTH, /**< Month layout */
+ ELM_INPUT_PANEL_LAYOUT_NUMBERONLY, /**< Number only layout */
+ ELM_INPUT_PANEL_LAYOUT_INVALID, /**< Invalid layout(not recommended) */
+ ELM_INPUT_PANEL_LAYOUT_HEX, /**< Hexadecimal layout */
+ ELM_INPUT_PANEL_LAYOUT_TERMINAL, /**< Command-line terminal layout including the esc, alt, ctrl key and so on (no auto-correct, no auto-capitalization) */
+ ELM_INPUT_PANEL_LAYOUT_PASSWORD, /**< Like normal, but no auto-correct, no auto-capitalization */
+ ELM_INPUT_PANEL_LAYOUT_DATETIME, /**< Date and time layout @since 1.8 */
+ ELM_INPUT_PANEL_LAYOUT_EMOTICON /**< Emoticon layout @since 1.10 */
+} Elm_Input_Panel_Layout; /**< Type of input panel (virtual keyboard) to use - this is a hint and may not provide exactly what is desired */
+
+/**
+ * @typedef Elm_Input_Hints
+ * @brief Enumeration that defines the types of Input Hints.
+ * @since 1.12
+ */
+typedef enum
+{
+ ELM_INPUT_HINT_NONE = 0, /**< No active hints @since 1.12 */
+ ELM_INPUT_HINT_AUTO_COMPLETE = 1 << 0, /**< suggest word auto completion @since 1.12 */
+ ELM_INPUT_HINT_SENSITIVE_DATA = 1 << 1, /**< typed text should not be stored. @since 1.12 */
+} Elm_Input_Hints;
+
+enum
+{
+ ELM_INPUT_PANEL_LAYOUT_NORMAL_VARIATION_NORMAL, /**< The plain normal layout @since 1.12 */
+ ELM_INPUT_PANEL_LAYOUT_NORMAL_VARIATION_FILENAME, /**< Filename layout. Symbols such as '/' should be disabled. @since 1.12 */
+ ELM_INPUT_PANEL_LAYOUT_NORMAL_VARIATION_PERSON_NAME /**< The name of a person. @since 1.12 */
+};
+
+enum
+{
+ ELM_INPUT_PANEL_LAYOUT_NUMBERONLY_VARIATION_NORMAL, /**< The plain normal number layout @since 1.8 */
+ ELM_INPUT_PANEL_LAYOUT_NUMBERONLY_VARIATION_SIGNED, /**< The number layout to allow a positive or negative sign at the start @since 1.8 */
+ ELM_INPUT_PANEL_LAYOUT_NUMBERONLY_VARIATION_DECIMAL, /**< The number layout to allow decimal point to provide fractional value @since 1.8 */
+ ELM_INPUT_PANEL_LAYOUT_NUMBERONLY_VARIATION_SIGNED_AND_DECIMAL /**< The number layout to allow decimal point and negative sign @since 1.8 */
+};
+
+enum
+{
+ ELM_INPUT_PANEL_LAYOUT_PASSWORD_VARIATION_NORMAL, /**< The normal password layout @since 1.12 */
+ ELM_INPUT_PANEL_LAYOUT_PASSWORD_VARIATION_NUMBERONLY /**< The password layout to allow only number @since 1.12 */
+};
+
+/**
+ * @typedef Elm_Input_Panel_Lang
+ *
+ * @brief Enumeration that defines the input panel (virtual keyboard) language modes.
+ *
+ * @see elm_entry_input_panel_language_set()
+ */
+typedef enum
+{
+ ELM_INPUT_PANEL_LANG_AUTOMATIC, /**< Automatic language mode */
+ ELM_INPUT_PANEL_LANG_ALPHABET /**< Alphabet language mode */
+} Elm_Input_Panel_Lang;
+
+/**
+ * @typedef Elm_Autocapital_Type
+ *
+ * @brief Enumeration that defines the autocapitalization types.
+ *
+ * @see elm_entry_autocapital_type_set()
+ */
+typedef enum
+{
+ ELM_AUTOCAPITAL_TYPE_NONE, /**< No autocapitalization when typing */
+ ELM_AUTOCAPITAL_TYPE_WORD, /**< Autocapitalize each typed word */
+ ELM_AUTOCAPITAL_TYPE_SENTENCE, /**< Autocapitalize the start of each sentence */
+ ELM_AUTOCAPITAL_TYPE_ALLCHARACTER, /**< Autocapitalize all letters */
+} Elm_Autocapital_Type; /**< Choose a method of autocapitalization */
+
+/**
+ * @typedef Elm_Input_Panel_Return_Key_Type
+ *
+ * @brief Enumeration that defines the "Return" key types on the input panel (virtual keyboard).
+ *
+ * @see elm_entry_input_panel_return_key_type_set()
+ */
+typedef enum
+{
+ ELM_INPUT_PANEL_RETURN_KEY_TYPE_DEFAULT, /**< Default key type */
+ ELM_INPUT_PANEL_RETURN_KEY_TYPE_DONE, /**< Done key type */
+ ELM_INPUT_PANEL_RETURN_KEY_TYPE_GO, /**< Go key type */
+ ELM_INPUT_PANEL_RETURN_KEY_TYPE_JOIN, /**< Join key type */
+ ELM_INPUT_PANEL_RETURN_KEY_TYPE_LOGIN, /**< Login key type */
+ ELM_INPUT_PANEL_RETURN_KEY_TYPE_NEXT, /**< Next key type */
+ ELM_INPUT_PANEL_RETURN_KEY_TYPE_SEARCH, /**< Search string or magnifier icon key type */
+ ELM_INPUT_PANEL_RETURN_KEY_TYPE_SEND, /**< Send key type */
+ ELM_INPUT_PANEL_RETURN_KEY_TYPE_SIGNIN /**< Sign-in key type @since 1.8 */
+} Elm_Input_Panel_Return_Key_Type;
+
+/**
+ * @typedef Elm_Entry_Anchor_Info
+ *
+ * @brief The information sent in the callback for the "anchor,clicked" signals emitted
+ * by entries.
+ */
+typedef struct _Elm_Entry_Anchor_Info Elm_Entry_Anchor_Info;
+
+/**
+ * @struct _Elm_Entry_Anchor_Info
+ *
+ * @brief The information sent in the callback for the "anchor,clicked" signals emitted
+ * by entries.
+ */
+struct _Elm_Entry_Anchor_Info
+{
+ const char *name; /**< Name of the anchor, as stated in its href */
+ int button; /**< Mouse button used to click on it */
+ Evas_Coord x, /**< Anchor geometry, relative to canvas */
+ y, /**< Anchor geometry, relative to canvas */
+ w, /**< Anchor geometry, relative to canvas */
+ h; /**< Anchor geometry, relative to canvas */
+};
+
+/**
+ * @typedef Elm_Entry_Anchor_Hover_Info
+ *
+ * @brief The information sent in the callback for "anchor,clicked" signals emitted by
+ * the Anchor_Hover widget.
+ */
+typedef struct _Elm_Entry_Anchor_Hover_Info Elm_Entry_Anchor_Hover_Info;
+
+/**
+ * @struct _Elm_Entry_Anchor_Hover_Info
+ *
+ * @brief The information sent in the callback for "anchor,clicked" signals emitted by
+ * the Anchor_Hover widget.
+ */
+struct _Elm_Entry_Anchor_Hover_Info
+{
+ const Elm_Entry_Anchor_Info *anchor_info; /**< Actual anchor info */
+ Evas_Object *hover; /**< Hover object to use for the popup */
+ struct
+ {
+ Evas_Coord x, y, w, h;
+ } hover_parent; /**< Geometry of the object used as the parent by the
+ hover */
+ Eina_Bool hover_left : 1; /**< Hint indicating whether there's space
+ for content on the left side of
+ the hover. Before calling the
+ callback, the widget makes the
+ necessary calculations to check
+ which sides are fit to be set with
+ content, based on the position where
+ hover is activated and its distance
+ to the edges of its parent object
+ */
+ Eina_Bool hover_right : 1; /**< Hint indicating whether content fits on
+ the right side of the hover.
+ See @ref hover_left */
+ Eina_Bool hover_top : 1; /**< Hint indicating whether content fits on top
+ of the hover. See @ref hover_left */
+ Eina_Bool hover_bottom : 1; /**< Hint indicating whether content fits
+ below the hover. See @ref
+ hover_left */
+};
+
+/**
+ * @typedef Elm_Entry_Item_Provider_Cb
+ * @brief Called to provide items.
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks If it returns an object handle other than @c NULL (it should create an
+ * object to do this), then this object is used to replace the current item.
+ * If not, then the next provider is called until it provides an item object, or the
+ * default provider in entry does.
+ *
+ * @param[in] data The data specified as the last parameter when adding the provider
+ * @param[in] entry The entry object
+ * @param[in] text A pointer to the item href string in the text
+ *
+ * @return The object to be placed in the entry like an icon, or another element
+ *
+ * @see elm_entry_item_provider_append
+ * @see elm_entry_item_provider_prepend
+ * @see elm_entry_item_provider_remove
+ */
+typedef Evas_Object * (*Elm_Entry_Item_Provider_Cb)(void *data, Evas_Object *entry, const char *item);
+
+/**
+ * @typedef Elm_Entry_Filter_Cb
+ * @brief Called by entry filters to modify text.
+ *
+ * @since_tizen 2.3
+ *
+ * @param data The data specified as the last parameter when adding the filter
+ * @param entry The entry object
+ * @param text A pointer to the location of the text being filtered \n
+ * The type of text is always markup \n
+ * This data can be modified, but any additional allocations must be managed by the user.
+ *
+ * @see elm_entry_markup_filter_append
+ * @see elm_entry_markup_filter_prepend
+ * @see elm_entry_markup_filter_remove
+ */
+typedef void (*Elm_Entry_Filter_Cb)(void *data, Evas_Object *entry, char **text);
+
+/**
+ * @internal
+ * @remarks Tizen Only Feature (20140625)
+ *
+ * @typedef Elm_Entry_Anchor_Access_Provider_Cb
+ * @brief This callback type is used to provide TTS string of an anchor.
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks If it returns a string other than NULL,
+ * then this string is used to replace the current anchor's TTS string.
+ * @remarks If not the next provider is called until one provides a string, or the
+ * default string will be read.
+ *
+ * @param data The data specified as the last param when adding the provider
+ * @param entry The entry object
+ * @param name A pointer to the anchor href string in the text
+ * @param text A pointer to the text inside of the anchor's range.
+ * @return TTS string for the anchor.
+ *
+ * @see elm_entry_anchor_access_provider_append
+ * @see elm_entry_anchor_access_provider_prepend
+ * @see elm_entry_anchor_access_provider_remove
+ */
+typedef char * (*Elm_Entry_Anchor_Access_Provider_Cb)(void *data, Evas_Object * entry, const char *name, const char *text);
+
+/**
+ * @typedef Elm_Entry_Change_Info
+ * @brief This corresponds to Edje_Entry_Change_Info. It includes information about
+ * a change in the entry.
+ */
+typedef Edje_Entry_Change_Info Elm_Entry_Change_Info;
+
+/**
+ * @brief Adds an entry to the @a parent object.
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks By default, entries are as follows:
+ * @li not scrolled
+ * @li multi-line
+ * @li word wrapped
+ * @li autosave is enabled
+ *
+ * @param[in] parent The parent object
+ * @return The new object, otherwise @c NULL if it cannot be created
+ */
+EAPI Evas_Object *elm_entry_add(Evas_Object *parent);
+
+/**
+ * @brief Pushes the style to the top of the user style stack.
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks If there are styles in the user style stack, the properties in the top style
+ * of the user style stack replace the properties in the current theme.
+ * The input style is specified in the format tag='property=value' (i.e. DEFAULT='font=Sans font_size=60'hilight=' + font_weight=Bold').
+ *
+ * @param[in] obj The entry object
+ * @param[in] style The style user to push
+ *
+ * @since 1.7
+ */
+EAPI void elm_entry_text_style_user_push(Evas_Object *obj, const char *style);
+
+/**
+ * @brief Removes the style at the top of the user style stack.
+ *
+ * @since 1.7
+ *
+ * @since_tizen 2.3
+ *
+ * @param [in] obj The entry object
+ *
+ * @see elm_entry_text_style_user_push()
+ */
+EAPI void elm_entry_text_style_user_pop(Evas_Object *obj);
+
+/**
+ * @brief Retrieves the style on the top of the user style stack.
+ *
+ * @since 1.7
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The entry object
+ * @return The style on the top of the user style stack if it exists, otherwise @c NULL
+ *
+ * @see elm_entry_text_style_user_push()
+ */
+EAPI const char* elm_entry_text_style_user_peek(const Evas_Object *obj);
+
+/**
+ * @brief Sets the entry to the single line mode.
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks In the single line mode, entries don't wrap when the text reaches the
+ * edge, instead they keep growing horizontally. Pressing the Enter
+ * key generates an @c "activate" event instead of adding a new line.
+ *
+ * @remarks When @a single_line is @c EINA_FALSE, line wrapping takes effect again
+ * and pressing enter breaks the text into a different line
+ * without generating any events.
+ *
+ * @param[in] obj The entry object
+ * @param[in] single_line If @c true, the text in the entry is on a single line,
+ * otherwise @c false
+ */
+EAPI void elm_entry_single_line_set(Evas_Object *obj, Eina_Bool single_line);
+
+/**
+ * @brief Gets whether the entry is set to be on a single line.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The entry object
+ * @return single_line @c true if the text in the entry is set to display on a single line,
+ * otherwise @c false
+ *
+ * @see elm_entry_single_line_set()
+ */
+EAPI Eina_Bool elm_entry_single_line_get(const Evas_Object *obj);
+
+/**
+ * @brief Sets the entry to the password mode.
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks In the password mode, entries are implicitly on a single line and the display of
+ * any text in them is replaced with asterisks (*).
+ *
+ * @param[in] obj The entry object
+ * @param[in] password If @c true the password mode is enabled,
+ * otherwise @c false to disable it
+ */
+EAPI void elm_entry_password_set(Evas_Object *obj, Eina_Bool password);
+
+/**
+ * @brief Gets whether the entry is set to the password mode.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The entry object
+ * @return @c true if the entry is set to display all characters
+ * as asterisks (*), otherwise @c false
+ *
+ * @see elm_entry_password_set()
+ */
+EAPI Eina_Bool elm_entry_password_get(const Evas_Object *obj);
+
+/**
+ * @brief Sets the text displayed within the entry to @a entry.
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks Using this function bypasses text filters
+ *
+ * @param[in] obj The entry object
+ * @param[in] entry The text to be displayed
+ */
+EAPI void elm_entry_entry_set(Evas_Object *obj, const char *entry);
+
+/**
+ * @brief Returns the text currently shown in the object @a entry.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The entry object
+ * @return The currently displayed text, otherwise @c NULL on failure
+ *
+ * @see elm_entry_entry_set()
+ */
+EAPI const char *elm_entry_entry_get(const Evas_Object *obj);
+
+/**
+ * @brief Appends @a entry to the text of the entry.
+ *
+ * @details This adds the text in @a entry to the end of any text already present in the
+ * widget.
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks The appended text is subject to any filters set for the widget.
+ *
+ * @param[in] obj The entry object
+ * @param[in] entry The text to be displayed
+ *
+ * @see elm_entry_markup_filter_append()
+ */
+EAPI void elm_entry_entry_append(Evas_Object *obj, const char *entry);
+
+/**
+ * @brief Gets whether the entry is empty.
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks Empty means no text at all. If there are any markup tags, like an item
+ * tag for which no provider finds anything, and no text is displayed, this
+ * function still returns @c EINA_FALSE.
+ *
+ * @param[in] obj The entry object
+ * @return @c EINA_TRUE if the entry is empty, otherwise @c EINA_FALSE
+ */
+EAPI Eina_Bool elm_entry_is_empty(const Evas_Object *obj);
+
+/**
+ * @brief Gets any selected text within the entry.
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks If there's any selected text in the entry, this function returns it as
+ * a string in the markup format. @c NULL is returned if no selection exists or
+ * if an error occurs.
+ *
+ * @remarks The returned value points to an internal string should not be freed
+ * or modified in any way. If the @a entry object is deleted or its
+ * contents are changed, the returned pointer should be considered invalid.
+ *
+ * @param[in] obj The entry object
+ * @return The selected text within the entry, otherwise @c NULL on failure
+ */
+EAPI const char *elm_entry_selection_get(const Evas_Object *obj);
+
+/**
+ * @brief Returns the actual textblock object of the entry.
+ *
+ * @details This function exposes the internal textblock object that actually
+ * contains and draws the text. This should be used for low-level
+ * manipulations that are otherwise not possible.
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks Changing the textblock directly from here does not notify edje/elm to
+ * recalculate the textblock size automatically, so any modifications
+ * done to the textblock and returned by this function should be followed by
+ * a call to elm_entry_calc_force().
+ *
+ * @remarks The return value is marked as const so as to serve as an additional warning.
+ * One should not use the returned object with any of the generic evas
+ * functions (geometry_get/resize/move and so on), but only with the textblock
+ * functions; the former either does not work at all, or breaks the correct
+ * functionality.
+ *
+ * @remarks IMPORTANT: Many functions may change (i.e delete and create a new one)
+ * the internal textblock object. Do NOT cache the returned object, and try
+ * not to mix calls on this object with regular elm_entry calls (which may
+ * change the internal textblock object). This applies to all cursors
+ * returned from textblock calls, and all the other derivative values.
+ *
+ * @param[in] obj The entry object
+ * @return The textblock object
+ */
+EAPI Evas_Object * elm_entry_textblock_get(Evas_Object *obj);
+
+/**
+ * @brief Forces calculation of the entry size and text layouting.
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks This should be used after modifying the textblock object directly. See
+ * elm_entry_textblock_get() for more information.
+ *
+ * @param[in] obj The entry object
+ *
+ * @see elm_entry_textblock_get()
+ */
+EAPI void elm_entry_calc_force(Evas_Object *obj);
+
+/**
+ * @brief Inserts the given text into the entry at the current cursor position.
+ *
+ * @details This inserts text at the cursor position as if it is typed
+ * by the user (note that this also allows markup which a user
+ * can't just "type" as it would be converted to escaped text, so this
+ * call can be used to insert things like emoticon items or bold push/pop
+ * tags, other font and color change tags etc.)
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks If any selection exists, it is replaced by the inserted text.
+ *
+ * @remarks The inserted text is subject to any filters set for the widget.
+ *
+ * @param[in] obj The entry object
+ * @param[in] entry The text to insert
+ *
+ * @see elm_entry_markup_filter_append()
+ */
+EAPI void elm_entry_entry_insert(Evas_Object *obj, const char *entry);
+
+/**
+ * @brief Sets the line wrap type to use on multi-line entries.
+ *
+ * @details This sets the wrap type used by the entry of any of the specified
+ * Elm_Wrap_Type. This tells how the text is implicitly cut into a new
+ * line (without inserting a line break or paragraph separator) when it
+ * reaches the far edge of the widget.
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks Note that this only makes sense for multi-line entries. A widget set
+ * to be a single line never wraps.
+ *
+ * @param[in] obj The entry object
+ * @param[in] wrap The wrap mode to use \n
+ * For more details, see Elm_Wrap_Type
+ */
+EAPI void elm_entry_line_wrap_set(Evas_Object *obj, Elm_Wrap_Type wrap);
+
+/**
+ * @brief Gets the wrap mode that the entry is set to use.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The entry object
+ * @return The wrap type
+ *
+ * @see elm_entry_line_wrap_set()
+ */
+EAPI Elm_Wrap_Type elm_entry_line_wrap_get(const Evas_Object *obj);
+
+/**
+ * @brief Sets whether the entry is editable.
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks By default, entries are editable and when focused, any text input by the
+ * user is inserted at the current cursor position. But calling this
+ * function with @a editable as @c EINA_FALSE prevents the user from
+ * inputing text into the entry.
+ *
+ * @remarks The only way to change the text of a non-editable entry is to use
+ * elm_object_text_set(), elm_entry_entry_insert(), and other related
+ * functions.
+ *
+ * @param[in] obj The entry object
+ * @param[in] editable If @c EINA_TRUE user input is inserted in the entry,
+ * otherwise @c EINA_FALSE if the entry is read-only and no user input is allowed
+ */
+EAPI void elm_entry_editable_set(Evas_Object *obj, Eina_Bool editable);
+
+/**
+ * @brief Gets whether the entry is editable.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The entry object
+ * @return @c true if the entry is editable by the user,
+ * otherwise @ false if it is not editable by the user
+ *
+ * @see elm_entry_editable_set()
+ */
+EAPI Eina_Bool elm_entry_editable_get(const Evas_Object *obj);
+
+/**
+ * @brief Drops any existing text selection within the entry.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The entry object
+ */
+EAPI void elm_entry_select_none(Evas_Object *obj);
+
+/**
+ * @brief Selects all the text within the entry.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The entry object
+ */
+EAPI void elm_entry_select_all(Evas_Object *obj);
+
+/**
+ * @brief Moves the cursor by one position to the right within the entry.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The entry object
+ * @return @c EINA_TRUE on success, otherwise @c EINA_FALSE on failure
+ */
+EAPI Eina_Bool elm_entry_cursor_next(Evas_Object *obj);
+
+/**
+ * @brief Moves the cursor one place to the left within the entry.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The entry object
+ * @return @c EINA_TRUE on success, otherwise @c EINA_FALSE on failure
+ */
+EAPI Eina_Bool elm_entry_cursor_prev(Evas_Object *obj);
+
+/**
+ * @brief Moves the cursor one line up within the entry.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The entry object
+ * @return @c EINA_TRUE on success, otherwise @c EINA_FALSE on failure
+ */
+EAPI Eina_Bool elm_entry_cursor_up(Evas_Object *obj);
+
+/**
+ * @brief Moves the cursor one line down within the entry.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The entry object
+ * @return @c EINA_TRUE on success, otherwise @c EINA_FALSE on failure
+ */
+EAPI Eina_Bool elm_entry_cursor_down(Evas_Object *obj);
+
+/**
+ * @brief Moves the cursor to the beginning of the entry.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The entry object
+ */
+EAPI void elm_entry_cursor_begin_set(Evas_Object *obj);
+
+/**
+ * @brief Moves the cursor to the end of the entry.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The entry object
+ */
+EAPI void elm_entry_cursor_end_set(Evas_Object *obj);
+
+/**
+ * @brief Moves the cursor to the beginning of the current line.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The entry object
+ */
+EAPI void elm_entry_cursor_line_begin_set(Evas_Object *obj);
+
+/**
+ * @brief Moves the cursor to the end of the current line.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The entry object
+ */
+EAPI void elm_entry_cursor_line_end_set(Evas_Object *obj);
+
+/**
+ * @brief Begins a selection within the entry as though
+ * the user were holding down the mouse button to make a selection.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The entry object
+ */
+EAPI void elm_entry_cursor_selection_begin(Evas_Object *obj);
+
+/**
+ * @brief Ends a selection within the entry as though
+ * the user had just released the mouse button while making a selection.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The entry object
+ */
+EAPI void elm_entry_cursor_selection_end(Evas_Object *obj);
+
+/**
+ * @brief Gets whether a format node exists at the current cursor position.
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks A format node is anything that defines how the text is rendered. It can
+ * be a visible format node, such as a line break or a paragraph separator,
+ * or an invisible one, such as bold begin or end tag.
+ * This function returns whether any format node exists at the current
+ * cursor position.
+ *
+ * @param[in] obj The entry object
+ * @return @c EINA_TRUE if the current cursor position contains a format node,
+ * otherwise @c EINA_FALSE
+ *
+ * @see elm_entry_cursor_is_visible_format_get()
+ */
+EAPI Eina_Bool elm_entry_cursor_is_format_get(const Evas_Object *obj);
+
+/**
+ * @brief Gets if the current cursor position holds a visible format node.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The entry object
+ * @return @c EINA_TRUE if the current cursor is a visible format,
+ * otherwise @c EINA_FALSE if it's an invisible one or no format exists
+ *
+ * @see elm_entry_cursor_is_format_get()
+ */
+EAPI Eina_Bool elm_entry_cursor_is_visible_format_get(const Evas_Object *obj);
+
+/**
+ * @brief Gets the character pointed by the cursor at its current position.
+ *
+ * @details This function returns a string with the UTF8 character stored at the
+ * current cursor position.
+ * Only the text is returned, any format that may exist is not going to be a part
+ * of the return value. The string must be released with free() by you.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The entry object
+ * @return The text pointed by the cursor
+ */
+EAPI char *elm_entry_cursor_content_get(const Evas_Object *obj);
+
+/**
+ * @brief Returns the geometry of the cursor.
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks It's useful if you want to draw something on the cursor (or where it is),
+ * or for example in case of a scrolled entry where you want to show the
+ * cursor.
+ *
+ * @param[in] obj The entry object
+ * @param[out] x The returned geometry
+ * @param[out] y The returned geometry
+ * @param[out] w The returned geometry
+ * @param[out] h The returned geometry
+ * @return @c EINA_TRUE upon success, otherwise @c EINA_FALSE on failure
+ */
+EAPI Eina_Bool elm_entry_cursor_geometry_get(const Evas_Object *obj, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h);
+
+/**
+ * @brief Sets the cursor position in the entry to the given value.
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks The value in @a pos is the index of the character position within the
+ * content of the string as returned by elm_entry_cursor_pos_get().
+ *
+ * @param[in] obj The entry object
+ * @param[in] pos The position of the cursor
+ */
+EAPI void elm_entry_cursor_pos_set(Evas_Object *obj, int pos);
+
+/**
+ * @brief Retrieves the current position of the cursor in the entry.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The entry object
+ * @return The cursor position
+ */
+EAPI int elm_entry_cursor_pos_get(const Evas_Object *obj);
+
+/**
+ * @brief Executes a "cut" action on the selected text in the entry.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The entry object
+ */
+EAPI void elm_entry_selection_cut(Evas_Object *obj);
+
+/**
+ * @brief Executes a "copy" action on the selected text in the entry.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The entry object
+ */
+EAPI void elm_entry_selection_copy(Evas_Object *obj);
+
+/**
+ * @brief Executes a "paste" action in the entry.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The entry object
+ */
+EAPI void elm_entry_selection_paste(Evas_Object *obj);
+
+/**
+ * @brief Clears and frees the items in a entry's contextual (longpress)
+ * menu.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The entry object
+ *
+ * @see elm_entry_context_menu_item_add()
+ */
+EAPI void elm_entry_context_menu_clear(Evas_Object *obj);
+
+/**
+ * @brief Adds an item to the entry's contextual menu.
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks A longpress on an entry makes the contextual menu show up, if this
+ * hasn't been disabled with elm_entry_context_menu_disabled_set().
+ * By default, this menu provides a few options like enabling the selection mode,
+ * which is useful on embedded devices that need to be explicit about it,
+ * and when a selection exists, it also shows the copy and cut actions.
+ *
+ * @remarks With this function, developers can add other options to this menu to
+ * perform any action they deem necessary.
+ *
+ * @param[in] obj The entry object
+ * @param[in] label The item's text label
+ * @param[in] icon_file The item's icon file
+ * @param[in] icon_type The item's icon type
+ * @param[in] func The callback to execute when the item is clicked
+ * @param[in] data The data to associate with the item for related functions
+ */
+EAPI void elm_entry_context_menu_item_add(Evas_Object *obj, const char *label, const char *icon_file, Elm_Icon_Type icon_type, Evas_Smart_Cb func, const void *data);
+
+/**
+ * @brief Disables the entry's contextual (longpress) menu.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The entry object
+ * @param[in] disabled If @c true the menu is disabled,
+ * otherwise @c false to enable it
+ */
+EAPI void elm_entry_context_menu_disabled_set(Evas_Object *obj, Eina_Bool disabled);
+
+/**
+ * @brief Returns whether the entry's contextual (longpress) menu is
+ * disabled.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The entry object
+ * @return @c true if the menu is disabled,
+ * otherwise @c false
+ */
+EAPI Eina_Bool elm_entry_context_menu_disabled_get(const Evas_Object *obj);
+
+/**
+ * @brief Appends a custom item provider to the list for that entry.
+ *
+ * @details This appends the given callback. The list is walked through from beginning till the end
+ * with each function being called, given the item href string in the text. If the
+ * function returns an object handle other than @c NULL (it should create an
+ * object to do this), then this object is used to replace that item. If
+ * not, then the next provider is called until it provides an item object, or the
+ * default provider in the entry does.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The entry object
+ * @param[in] func The function that is called to provide the item object
+ * @param[in] data The data passed to @a func
+ *
+ * @see @ref entry-items
+ */
+EAPI void elm_entry_item_provider_append(Evas_Object *obj, Elm_Entry_Item_Provider_Cb func, void *data);
+
+/**
+ * @brief Prepends a custom item provider to the list for that entry.
+ *
+ * @details This prepends the given callback. For more details, see elm_entry_item_provider_append().
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The entry object
+ * @param[in] func The function that is called to provide the item object
+ * @param[in] data The data passed to @a func
+ *
+ * @see elm_entry_item_provider_append()
+ */
+EAPI void elm_entry_item_provider_prepend(Evas_Object *obj, Elm_Entry_Item_Provider_Cb func, void *data);
+
+/**
+ * @brief Removes a custom item provider to the list for that entry.
+ *
+ * @details This removes the given callback. For more details, see elm_entry_item_provider_append().
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The entry object
+ * @param[in] func The function that is called to provide the item object
+ * @param[in] data The data passed to @a func
+ */
+EAPI void elm_entry_item_provider_remove(Evas_Object *obj, Elm_Entry_Item_Provider_Cb func, void *data);
+
+/**
+ * @brief Appends a markup filter function for text inserted in the entry.
+ *
+ * @details This appends the given callback to the list. This functions is called
+ * whenever any text is inserted into the entry, provided the text to be inserted
+ * is a parameter. The type of the given text is always markup.
+ * The callback function is free to alter the text in any way it wants, but
+ * it must remember to free the given pointer and update it.
+ * If the new text is to be discarded, the function can free it and set its
+ * text parameter to @c NULL. This prevents any future filters from
+ * being called.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The entry object
+ * @param[in] func The function to use as a text filter
+ * @param[in] data The data to pass to @a func
+ */
+EAPI void elm_entry_markup_filter_append(Evas_Object *obj, Elm_Entry_Filter_Cb func, void *data);
+
+/**
+ * @brief Prepends a markup filter function for text inserted in the entry.
+ *
+ * @details This prepends the given callback to the list. For more details, see elm_entry_markup_filter_append().
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The entry object
+ * @param[in] func The function to use as a text filter
+ * @param[in] data The data to pass to @a func
+ */
+EAPI void elm_entry_markup_filter_prepend(Evas_Object *obj, Elm_Entry_Filter_Cb func, void *data);
+
+/**
+ * @brief Removes a markup filter from the list.
+ *
+ * @details This removes the given callback from the filter list. For more details,
+ * see elm_entry_markup_filter_append().
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The entry object
+ * @param[in] func The filter function to remove
+ * @param[in] data The data to pass to @a func
+ */
+EAPI void elm_entry_markup_filter_remove(Evas_Object *obj, Elm_Entry_Filter_Cb func, void *data);
+
+/**
+ * @brief Converts a markup (HTML-like) string into UTF-8.
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks The returned string is a malloc'ed buffer and it should be freed when
+ * not needed.
+ *
+ * @param[in] s The string (in markup) to be converted
+ * @return The converted string (in UTF-8) \n
+ * It should be freed.
*/
+EAPI char *elm_entry_markup_to_utf8(const char *s);
+
+/**
+ * @brief Converts a UTF-8 string into markup (HTML-like).
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks The returned string is a malloc'ed buffer and it should be freed when
+ * not needed.
+ *
+ * @param[in] s The string (in UTF-8) to be converted
+ * @return The converted string (in markup) \n
+ * It should be freed.
+ */
+EAPI char *elm_entry_utf8_to_markup(const char *s);
+
+/**
+ * @brief Sets the file (and implicitly loads it) for the text to display and
+ * then allow edit. All changes are written back to the file after a short delay if
+ * the entry object is set to autosave (which is the default).
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks If the entry has any other file set previously, any changes made to it
+ * are saved if the autosave feature is enabled, otherwise, the file
+ * is silently discarded and any non-saved changes are lost.
+ *
+ * @param[in] obj The entry object
+ * @param[in] file The path to the file to load and save
+ * @param[in] format The file format
+ * @return @c EINA_TRUE on success, otherwise @c EINA_FALSE on failure
+ */
+EAPI Eina_Bool elm_entry_file_set(Evas_Object *obj, const char *file, Elm_Text_Format format);
+
+/**
+ * @brief Gets the file being edited by the entry.
+ *
+ * @details This function can be used to retrieve any file set on the entry for
+ * edition, along with the format used to load and save it.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The entry object
+ * @param[out] file The path to the file to load and save
+ * @param[out] format The file format
+ */
+EAPI void elm_entry_file_get(const Evas_Object *obj, const char **file, Elm_Text_Format *format);
+
+/**
+ * @brief Writes any changes made to the file that is set by
+ * elm_entry_file_set().
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The entry object
+ */
+EAPI void elm_entry_file_save(Evas_Object *obj);
+
+/**
+ * @brief Sets the entry object to 'autosave' the loaded text file.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The entry object
+ * @param[in] autosave The boolean value that indicates whether the loaded file is autosaved
+ *
+ * @see elm_entry_file_set()
+ */
+EAPI void elm_entry_autosave_set(Evas_Object *obj, Eina_Bool autosave);
+
+/**
+ * @brief Gets the entry object's 'autosave' status.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The entry object
+ * @return The boolean value that indicates whether the loaded file is autosaved
+ *
+ * @see elm_entry_file_set()
+ */
+EAPI Eina_Bool elm_entry_autosave_get(const Evas_Object *obj);
+
+/**
+ * @brief Enables or disables scrolling in the entry.
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks Normally, the entry is not scrollable unless you enable it with this call.
+ *
+ * @param[in] obj The entry object
+ * @param[in] scroll If @c EINA_TRUE it is scrollable, otherwise @c EINA_FALSE
+ */
+EAPI void elm_entry_scrollable_set(Evas_Object *obj, Eina_Bool scroll);
+
+/**
+ * @brief Gets the scrollable state of the entry.
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks Normally, the entry is not scrollable. This gets the scrollable state
+ * of the entry. For more details, see elm_entry_scrollable_set().
+ *
+ * @param[in] obj The entry object
+ * @return The scrollable state
+ */
+EAPI Eina_Bool elm_entry_scrollable_get(const Evas_Object *obj);
+
+/**
+ * @brief Sets the visibility of the left-side widget of the entry that is
+ * set by elm_object_part_content_set().
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The entry object
+ * @param[in] setting If @c EINA_TRUE the object should be displayed,
+ * otherwise @c EINA_FALSE if not
+ */
+EAPI void elm_entry_icon_visible_set(Evas_Object *obj, Eina_Bool setting);
+
+/**
+ * @internal
+ * @remarks This API is unusable.
+ *
+ * @brief Sets the visibility of the end widget of the entry, set by
+ * elm_object_part_content_set(ent, "end", content).
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The entry object
+ * @param[in] setting @c EINA_TRUE if the object should be displayed,
+ * otherwise @c EINA_FALSE if not
+ */
+EAPI void elm_entry_end_visible_set(Evas_Object *obj, Eina_Bool setting);
+
+/**
+ * @internal
+ *
+ * @brief Sets the entry's scrollbar policy (i.e. enabling/disabling
+ * them).
+ *
+ * @remarks Setting an entry to the single-line mode with elm_entry_single_line_set()
+ * automatically disables the display of scrollbars when the entry
+ * moves inside its scroller.
+ *
+ * @param obj The entry object
+ * @param h The horizontal scrollbar policy to apply
+ * @param v The vertical scrollbar policy to apply
+ *
+ * @deprecated Use elm_scroller_policy_set() instead.
+ */
+EINA_DEPRECATED EAPI void elm_entry_scrollbar_policy_set(Evas_Object *obj, Elm_Scroller_Policy h, Elm_Scroller_Policy v);
+
+/**
+ * @internal
+ *
+ * @brief Enables or disables bouncing within the entry.
+ *
+ * @remarks This function sets whether the entry bounces when scrolling reaches
+ * the end of the contained entry.
+ *
+ * @param obj The entry object
+ * @param h_bounce The horizontal bounce state
+ * @param v_bounce The vertical bounce state
+ *
+ * @deprecated Use elm_scroller_bounce_set() instead.
+ */
+EINA_DEPRECATED EAPI void elm_entry_bounce_set(Evas_Object *obj, Eina_Bool h_bounce, Eina_Bool v_bounce);
+
+/**
+ * @internal
+ *
+ * @brief Gets the bounce mode.
+ *
+ * @param obj The entry object
+ * @param h_bounce The boolean value that indicates whether horizontal bounce is allowed
+ * @param v_bounce The boolean value that indicates whether vertical bounce is allowed
+ *
+ * @deprecated Use elm_scroller_bounce_get() instead.
+ */
+EINA_DEPRECATED EAPI void elm_entry_bounce_get(const Evas_Object *obj, Eina_Bool *h_bounce, Eina_Bool *v_bounce);
+
+/**
+ * @brief Sets the input panel layout of the entry.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The entry object
+ * @param[in] layout The layout type
+ */
+EAPI void elm_entry_input_panel_layout_set(Evas_Object *obj, Elm_Input_Panel_Layout layout);
+
+/**
+ * @brief Gets the input panel layout of the entry.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The entry object
+ * @return The layout type
+ *
+ * @see elm_entry_input_panel_layout_set
+ */
+EAPI Elm_Input_Panel_Layout elm_entry_input_panel_layout_get(const Evas_Object *obj);
+
+/**
+ * @brief Sets the input panel layout variation of the entry.
+ *
+ * @since 1.8
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The entry object
+ * @param[in] variation The layout variation type
+ */
+EAPI void elm_entry_input_panel_layout_variation_set(Evas_Object *obj, int variation);
+
+/**
+ * @brief Gets the input panel layout variation of the entry.
+ *
+ * @since 1.8
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The entry object
+ * @return The layout variation type
+ *
+ * @see elm_entry_input_panel_layout_variation_set
+ */
+EAPI int elm_entry_input_panel_layout_variation_get(const Evas_Object *obj);
+
+
+/**
+ * @brief Sets the autocapitalization type on the immodule.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The entry object
+ * @param[in] autocapital_type The type of autocapitalization
+ */
+EAPI void elm_entry_autocapital_type_set(Evas_Object *obj, Elm_Autocapital_Type autocapital_type);
+
+/**
+ * @brief Retrieves the autocapitalization type on the immodule.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The entry object
+ * @return The autocapitalization type
+ */
+EAPI Elm_Autocapital_Type elm_entry_autocapital_type_get(const Evas_Object *obj);
+
+/**
+ * @brief Sets the attribute to show the input panel automatically.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The entry object
+ * @param[in] enabled If @c true the input panel appears when the entry is clicked or has focus,
+ * otherwise @c false
+ */
+EAPI void elm_entry_input_panel_enabled_set(Evas_Object *obj, Eina_Bool enabled);
+
+/**
+ * @brief Retrieves the attribute to show the input panel automatically.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The entry object
+ * @return @c EINA_TRUE if the input panel appears when the entry is clicked or has a focus,
+ * otherwise @c EINA_FALSE
+ */
+EAPI Eina_Bool elm_entry_input_panel_enabled_get(const Evas_Object *obj);
+
+/**
+ * @brief Shows the input panel (virtual keyboard) based on the input panel property of the entry such as layout, autocapital types, and so on.
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks Note that the input panel is shown or hidden automatically according to the focus state of the entry widget.
+ * This API can be used in case of manually controlling by using elm_entry_input_panel_enabled_set(en, EINA_FALSE).
+ *
+ * @param[in] obj The entry object
+ */
+EAPI void elm_entry_input_panel_show(Evas_Object *obj);
+
+/**
+ * @brief Hides the input panel (virtual keyboard).
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks Note that the input panel is shown or hidden automatically according to the focus state of the entry widget.
+ * This API can be used in case of manually controlling by using elm_entry_input_panel_enabled_set(en, EINA_FALSE)
+ *
+ * @param[in] obj The entry object
+ */
+EAPI void elm_entry_input_panel_hide(Evas_Object *obj);
+
+/**
+ * @brief Sets the language mode of the input panel.
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks This API can be used if you want to show the alphabet keyboard mode.
+ *
+ * @param[in] obj The entry object
+ * @param[in] lang The language to be set for the input panel
+ */
+EAPI void elm_entry_input_panel_language_set(Evas_Object *obj, Elm_Input_Panel_Lang lang);
+
+/**
+ * @brief Gets the language mode of the input panel.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The entry object
+ * @return The input panel language type
+ *
+ * @see @ref elm_entry_input_panel_language_set
+ */
+EAPI Elm_Input_Panel_Lang elm_entry_input_panel_language_get(const Evas_Object *obj);
+
+/**
+ * @brief Sets the input panel specific data to deliver to the input panel.
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks This API is used by applications to deliver specific data to the input panel.
+ * The data format MUST be negotiated by both the application and the input panel.
+ * The size and format of data is defined by the input panel.
+ *
+ * @param[in] obj The entry object
+ * @param[in] data The specific data to be set for the input panel
+ * @param[in] len The length of the data, in bytes, to send to the input panel
+ */
+EAPI void elm_entry_input_panel_imdata_set(Evas_Object *obj, const void *data, int len);
+
+/**
+ * @brief Gets the specific data of the current input panel.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The entry object
+ * @param[out] data The specific data to be obtained from the input panel
+ * @param[out] len The length of the data
+ *
+ * @see @ref elm_entry_input_panel_imdata_set
+ */
+EAPI void elm_entry_input_panel_imdata_get(const Evas_Object *obj, void *data, int *len);
+
+/**
+ * @brief Sets the "return" key type. This type is used to set the string or icon on the "return" key of the input panel.
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks An input panel displays the string or icon associated with this type.
+ *
+ * @param[in] obj The entry object
+ * @param[in] return_key_type The type of "return" key on the input panel
+ */
+EAPI void elm_entry_input_panel_return_key_type_set(Evas_Object *obj, Elm_Input_Panel_Return_Key_Type return_key_type);
+
+/**
+ * @brief Gets the "return" key type.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The entry object
+ * @return The type of "return" key on the input panel
+ *
+ * @see elm_entry_input_panel_return_key_type_set()
+ */
+EAPI Elm_Input_Panel_Return_Key_Type elm_entry_input_panel_return_key_type_get(const Evas_Object *obj);
+
+/**
+ * @brief Sets the return key to be disabled on the input panel.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The entry object
+ * @param[in] disabled If @c EINA_TRUE the return key is disabled,
+ * otherwise @c EINA_FALSE if it is enabled
+ */
+EAPI void elm_entry_input_panel_return_key_disabled_set(Evas_Object *obj, Eina_Bool disabled);
+
+/**
+ * @brief Gets whether the return key on the input panel should be disabled.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The entry object
+ * @return @c EINA_TRUE if the return key should be disabled,
+ * otherwise @c EINA_FALSE
+ */
+EAPI Eina_Bool elm_entry_input_panel_return_key_disabled_get(const Evas_Object *obj);
+
+/**
+ * @brief Sets whether the return key on the input panel is disabled automatically when the entry has no text.
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks If @a enabled is @c EINA_TRUE, the return key on the input panel is disabled when the entry has no text.
+ * The return key on the input panel is automatically enabled when the entry has text.
+ * The default value is @c EINA_FALSE.
+ *
+ * @param[in] obj The entry object
+ * @param[in] enabled If @a enabled is @c EINA_TRUE, the return key is automatically disabled when the entry has no text,
+ * otherwise @c EINA_FALSE
+ */
+EAPI void elm_entry_input_panel_return_key_autoenabled_set(Evas_Object *obj, Eina_Bool enabled);
+
+/**
+ * @brief Sets the attribute to show the input panel in case of a user's explicit Mouse Up event.
+ *
+ * @since 1.8
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks It doesn't request to show the input panel even though it has focus.
+ * @param[in] obj The entry object
+ * @param[in] ondemand If @c true, the input panel is shown in case of a Mouse up event
+ * (Focus event is ignored), otherwise @c false
+ */
+EAPI void elm_entry_input_panel_show_on_demand_set(Evas_Object *obj, Eina_Bool ondemand);
+
+/**
+ * @brief Gets the attribute to show the input panel in case of a user's explicit Mouse Up event.
+ *
+ * @since 1.8
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The entry object
+ * @return @c EINA_TRUE if the input panel is shown in case of a Mouse up event,
+ * otherwise @c EINA_FALSE
+ */
+EAPI Eina_Bool elm_entry_input_panel_show_on_demand_get(const Evas_Object *obj);
+
+/**
+ * @brief Sets the input hint which allows input methods to fine-tune their behavior.
+ *
+ * @since 1.12
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The entry object
+ * @param[in] hints input hint
+ */
+EAPI void elm_entry_input_hint_set(Evas_Object *obj, Elm_Input_Hints hints);
+
+/**
+ * @brief Gets the value of input hint.
+ *
+ * @since 1.12
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The entry object
+ * @return the value of input hint.
+ */
+EAPI Elm_Input_Hints elm_entry_input_hint_get(const Evas_Object *obj);
+
+/**
+ * @brief Resets the input method context of the entry if needed.
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks This can be necessary in a case where modifying the buffer would confuse an on-going input method behavior.
+ * This typically causes the Input Method Context to clear the pre-edit state.
+ *
+ * @param[in] obj The entry object
+ */
+EAPI void elm_entry_imf_context_reset(Evas_Object *obj);
+
+/**
+ * @brief Sets whether the entry should allow the use of text prediction.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The entry object
+ * @param[in] prediction The boolean value that indicates whether the entry should allow the use of text prediction
+ */
+EAPI void elm_entry_prediction_allow_set(Evas_Object *obj, Eina_Bool prediction);
+
+/**
+ * @brief Gets whether the entry should allow the use of text prediction.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The entry object
+ * @return @c EINA_TRUE if it allows the use of text prediction,
+ * otherwise @c EINA_FALSE
+ */
+EAPI Eina_Bool elm_entry_prediction_allow_get(const Evas_Object *obj);
+
+/* Pre-made filters for entries */
+
+/**
+ * @typedef Elm_Entry_Filter_Limit_Size
+ *
+ * @brief The data for the elm_entry_filter_limit_size() entry filter.
+ */
+typedef struct _Elm_Entry_Filter_Limit_Size Elm_Entry_Filter_Limit_Size;
+
+/**
+ * @struct _Elm_Entry_Filter_Limit_Size
+ *
+ * @brief The data for the elm_entry_filter_limit_size() entry filter.
+ */
+struct _Elm_Entry_Filter_Limit_Size
+{
+ int max_char_count; /**< Maximum number of characters allowed */
+ int max_byte_count; /**< Maximum number of bytes allowed */
+};
+
+/**
+ * @brief Filters the inserted text based on user defined character and byte limits.
+ *
+ * @details This adds this filter to an entry to limit the characters that it accepts
+ * based on the content of the provided #Elm_Entry_Filter_Limit_Size.
+ * The function works on the UTF-8 representation of the string, converting
+ * it from the set markup, thus not accounting for any format in it.
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks The user must create an #Elm_Entry_Filter_Limit_Size structure and pass
+ * it as data when setting the filter. Within it, it's possible to set limits
+ * based character count or bytes (any of them is disabled if @c 0), and both can
+ * be set at the same time. In that case, it first checks for characters,
+ * then bytes. The #Elm_Entry_Filter_Limit_Size structure must be alive and
+ * valid for as long as the entry is alive AND the elm_entry_filter_limit_size
+ * filter is set.
+ *
+ * @remarks The function cuts the inserted text in order to allow only the first
+ * few characters that are still allowed. The cut is made in
+ * characters, even when limiting by bytes, in order to always contain
+ * valid ones and avoid half unicode characters.
+ *
+ * @remarks This filter, like any other, does not apply when setting the entry text
+ * directly using elm_object_text_set().
+ *
+ * @remarks Do not call this function directly. This function should be used for
+ * parameterfor as Elm_Entry_Filter_Cb.
+ *
+ * @param data The data specified as the last parameter when adding the filter
+ * @param entry The entry object
+ * @param text A pointer to the location of the text being filtered \n
+ * The type of text is always markup \n
+ * This data can be modified, but any additional allocations must be managed by the user
+ *
+ * @see elm_entry_markup_filter_append()
+ */
+EAPI void elm_entry_filter_limit_size(void *data, Evas_Object *entry, char **text);
+
+/**
+ * @typedef Elm_Entry_Filter_Accept_Set
+ *
+ * @brief The data for the elm_entry_filter_accept_set() entry filter.
+ */
+typedef struct _Elm_Entry_Filter_Accept_Set Elm_Entry_Filter_Accept_Set;
+
+/**
+ * @struct _Elm_Entry_Filter_Accept_Set
+ *
+ * @brief The data for the elm_entry_filter_accept_set() entry filter.
+ */
+struct _Elm_Entry_Filter_Accept_Set
+{
+ const char *accepted; /**< Set of characters accepted in the entry */
+ const char *rejected; /**< Set of characters rejected from the entry */
+};
+
+/**
+ * @brief Filters inserted text based on accepted or rejected sets of characters.
+ *
+ * @details This adds this filter to an entry to restrict the set of accepted characters
+ * based on sets in the provided #Elm_Entry_Filter_Accept_Set.
+ * This structure contains both accepted and rejected sets, but they are
+ * mutually exclusive. This structure must be available for as long as
+ * the entry is alive AND the elm_entry_filter_accept_set is being used.
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks The @c accepted set takes preference, so if it is set, the filter
+ * only works based on the accepted characters, ignoring anything in the
+ * @c rejected value. If @c accepted is @c NULL, then @c rejected is used.
+ *
+ * @remarks In both cases, the function filters by matching UTF8 characters with the
+ * raw markup text, so it can be used to remove formatted tags.
+ *
+ * @remarks This filter, like any other, does not apply when setting the entry text
+ * directly using elm_object_text_set().
+ *
+ * @remarks Do not call this function directly. This function should be used for
+ * parameterfor as Elm_Entry_Filter_Cb.
+ *
+ * @param data The data specified as the last parameter when adding the filter
+ * @param entry The entry object
+ * @param text A pointer to the location of the text being filtered \n
+ * The type of text is always markup \n
+ * This data can be modified, but any additional allocations must be managed by the user
+ *
+ * @see elm_entry_markup_filter_append()
+ */
+EAPI void elm_entry_filter_accept_set(void *data, Evas_Object *entry, char **text);
+
+/**
+ * @brief Returns the input method context of the entry.
+ *
+ * @details This function exposes the internal input method context.
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks IMPORTANT: Many functions may change (i.e delete and create a new one)
+ * the internal input method context. Do NOT cache the returned object.
+ *
+ * @param[in] obj The entry object
+ * @return The input method context (Ecore_IMF_Context *) in the entry
+ */
+EAPI void *elm_entry_imf_context_get(Evas_Object *obj);
+
+/**
+ * @typedef Elm_Cnp_Mode
+ * @brief Enumeration that defines the entry's copy & paste policy.
+ *
+ * @see elm_entry_cnp_mode_set()
+ * @see elm_entry_cnp_mode_get()
+ */
+typedef enum {
+ ELM_CNP_MODE_MARKUP, /**< Copy & paste text with markup tag */
+ ELM_CNP_MODE_NO_IMAGE, /**< Copy & paste text without item(image) tag */
+ ELM_CNP_MODE_PLAINTEXT /**< Copy & paste text without markup tag */
+} Elm_Cnp_Mode;
+
+/**
+ * @brief Controls pasting of text and images for the widget.
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks Normally the entry allows both text and images to be pasted.
+ * Setting cnp_mode to #ELM_CNP_MODE_NO_IMAGE, prevents images from being copied or pasted.
+ * Setting cnp_mode to #ELM_CNP_MODE_PLAINTEXT, removes all tags in the text.
+ *
+ * @param[in] obj The entry object
+ * @param[in] cnp_mode One #Elm_Cnp_Mode: #ELM_CNP_MODE_MARKUP, #ELM_CNP_MODE_NO_IMAGE, #ELM_CNP_MODE_PLAINTEXT
+ *
+ * @remarks This only changes the behaviour of the text.
+ */
+EAPI void elm_entry_cnp_mode_set(Evas_Object *obj, Elm_Cnp_Mode cnp_mode);
+
+/**
+ * @brief Gets the elm_entry text paste/drop mode.
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks Normally the entry allows both text and images to be pasted.
+ * This gets the copy & paste mode of the entry.
+ *
+ * @param[in] obj The entry object
+ * @return mode One #Elm_Cnp_Mode: #ELM_CNP_MODE_MARKUP, #ELM_CNP_MODE_NO_IMAGE, #ELM_CNP_MODE_PLAINTEXT.
+ */
+EAPI Elm_Cnp_Mode elm_entry_cnp_mode_get(const Evas_Object *obj);
+
+/**
+ * @brief Sets the parent of the hover popup.
+ *
+ * @details This sets the parent object to use the hover created by the entry
+ * when an anchor is clicked.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The entry object
+ * @param[in] parent The object to use as a parent for the hover
+ *
+ * @see Hover
+ */
+EAPI void elm_entry_anchor_hover_parent_set(Evas_Object *obj, Evas_Object *parent);
+
+/**
+ * @brief Gets the parent of the hover popup.
+ *
+ * @details This gets the object used as parent for the hover created by the entry
+ * widget.
+ * If no parent is set, the same entry object is used.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The entry object
+ * @return The object used as parent for the hover, otherwise @c NULL if none are set
+ * @see Hover
+ */
+EAPI Evas_Object *elm_entry_anchor_hover_parent_get(const Evas_Object *obj);
+
+/**
+ * @brief Sets the style that the hover should use.
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks When creating the popup hover, the entry requests that it be
+ * themed according to @a style.
+ *
+ * @remarks Setting @a style to @c NULL means disabling automatic hover.
+ *
+ * @param[in] obj The entry object
+ * @param[in] style The style to use for the underlying hover
+ *
+ * @see elm_object_style_set()
+ */
+EAPI void elm_entry_anchor_hover_style_set(Evas_Object *obj, const char *style);
+
+/**
+ * @brief Gets the style that the hover should use.
+ *
+ * @details This gets the style that the hover created by the entry uses.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The entry object
+ * @return The style to use by the hover \n
+ * @c NULL means the default is used.
+ *
+ * @see elm_object_style_set()
+ */
+EAPI const char *elm_entry_anchor_hover_style_get(const Evas_Object *obj);
+
+/**
+ * @brief Ends the hover popup in the entry.
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks When an anchor is clicked, the entry widget creates a hover
+ * object to use as a popup with user provided content. This function
+ * terminates this popup, returning the entry to its normal state.
+ *
+ * @param[in] obj The entry object
+ */
+EAPI void elm_entry_anchor_hover_end(Evas_Object *obj);
+
+/**
+ * @internal
+ * @remarks Tizen Only Feature
+ *
+ * @brief Enables selection in the entry.
+ *
+ * @param obj The entry object
+ * @param allow If @c true selection is enabled,
+ * otherwise @c false if selection is disabled
+ */
+EAPI void elm_entry_select_allow_set(Evas_Object *obj, Eina_Bool allow);
+
+/**
+ * @internal
+ * @remarks Tizen Only Feature
+ *
+ * @brief Returns whether selection in the entry is allowed.
+ *
+ * @param obj The entry object
+ * @return @c true if selection is enabled,
+ * otherwise @c false if selection is disabled
+ */
+EAPI Eina_Bool elm_entry_select_allow_get(const Evas_Object *obj);
+
+/**
+ * @internal
+ * @remarks Tizen Only Feature
+ *
+ * @brief Disables the entry's cursor handler.
+ *
+ * @param obj The entry object
+ * @param disabled If @c true the cursor handler is disabled,
+ * otherwise @c false to enable it
+ */
+EAPI void elm_entry_cursor_handler_disabled_set(Evas_Object *obj, Eina_Bool disabled);
+
+/**
+ * @internal
+ * @remarks Tizen Only Feature
+ *
+ * @brief Returns whether the entry's cursor handler is disabled.
+ *
+ * @param obj The entry object
+ * @return @c true if the cursor handler is disabled,
+ * otherwise @c false
+ */
+EAPI Eina_Bool elm_entry_cursor_handler_disabled_get(const Evas_Object *obj);
+
+/**
+ * @internal
+ * @remarks Tizen Only Feature
+ *
+ * @brief Disables the entry's magnifier feature.
+ *
+ * @param obj The entry object
+ * @param disabled If @c true the magnifier is not displayed,
+ * otherwise @c false
+ */
+EAPI void elm_entry_magnifier_disabled_set(Evas_Object *obj, Eina_Bool disabled);
+/**
+ * @internal
+ * @remarks Tizen Only Feature
+ *
+ * @brief Returns whether the entry's magnifier feature is disabled.
+ *
+ * @param obj The entry object
+ * @return @c true if the feature is disabled,
+ * otherwise @c false
+ */
+EAPI Eina_Bool elm_entry_magnifier_disabled_get(const Evas_Object *obj);
+
+/**
+ * @internal
+ * @remarks Tizen Only Feature
+ *
+ * @brief Disables the default drag action in the entry.
+ *
+ * @param obj The entry object
+ * @param disabled If @c true, disable the default drag action in the entry,
+ * otherwise @c false
+ */
+EAPI void elm_entry_drag_disabled_set(Evas_Object *obj, Eina_Bool disabled);
+
+/**
+ * @internal
+ * @remarks Tizen Only Feature
+ *
+ * @brief Gets whether the default drag action in the entry is disabled.
+ *
+ * @param obj The entry object
+ * @return @c true if the default drag action in the entry is disabled,
+ * otherwise @c false
+ */
+EAPI Eina_Bool elm_entry_drag_disabled_get(const Evas_Object *obj);
+
+/**
+ * @internal
+ * @remarks Tizen Only Feature
+ *
+ * @brief Disables the default drop callback in the entry.
+ *
+ * @param obj The entry object
+ * @param disabled If @c true the default drop callback in the entry is disabled,
+ * otherwise @c false
+ */
+EAPI void elm_entry_drop_disabled_set(Evas_Object *obj, Eina_Bool disabled);
+
+/**
+ * @internal
+ * @remarks Tizen Only Feature
+ *
+ * @brief Gets whether the default drop callback in the entry is disabled.
+ *
+ * @param obj The entry object
+ * @return @c true if the default drop callback in the entry is disabled,
+ * otherwise @c false
+ */
+EAPI Eina_Bool elm_entry_drop_disabled_get(Evas_Object *obj);
+
+/**
+ * @internal
+ * @remarks Tizen Only Feature (20140625)
+ *
+ * This appends a custom anchor access provider to the list for that entry
+ *
+ * This appends the given callback. The list is walked from beginning to end
+ * with each function called given the anchor href string in the text. If the
+ * function returns a string other than NULL, then this string is used
+ * to replace that TTS string.
+ * If not the next provider is called until one provides a string, or the
+ * default TTS string will be read.
+ *
+ * @param obj The entry object
+ * @param func The function called to provide the TTS string
+ * @param data The data passed to @p func
+ *
+ * @see @ref entry-anchors
+ */
+EAPI void elm_entry_anchor_access_provider_append(Evas_Object *obj, Elm_Entry_Anchor_Access_Provider_Cb func, void *data);
+
+/**
+ * @internal
+ * @remarks Tizen Only Feature (20140625)
+ *
+ * @brief This prepends a custom anchor access provider to the list for that entry
+ *
+ * @remarks This prepends the given callback.
+ *
+ * @see elm_entry_anchor_access_provider_append()
+ *
+ * @param obj The entry object
+ * @param func The function called to provide the TTS string
+ * @param data The data passed to @p func
+ */
+EAPI void elm_entry_anchor_access_provider_prepend(Evas_Object *obj, Elm_Entry_Anchor_Access_Provider_Cb func, void *data);
+
+/**
+ * @internal
+ * @remarks Tizen Only Feature(20140625)
+ *
+ * @brief This removes a custom anchor access provider to the list for that entry
+ *
+ * @remarks This removes the given callback.
+ *
+ * @see elm_entry_anchor_access_provider_append()
+ *
+ * @param obj The entry object
+ * @param func The function called to provide the TTS string
+ * @param data The data passed to @p func
+ */
+EAPI void elm_entry_anchor_access_provider_remove(Evas_Object *obj, Elm_Entry_Anchor_Access_Provider_Cb func, void *data);
+
+/**
+ * @brief This selects a region of text within the entry.
+ *
+ * @ingroup Entry
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The entry object
+ * @param[in] start The starting position
+ * @param[in] end The end position
+ *
+ */
+EAPI void elm_entry_select_region_set(Evas_Object *obj, int start, int end);
+
-#include "elm_entry_common.h"
-#ifdef EFL_EO_API_SUPPORT
-#include "elm_entry_eo.h"
-#endif
-#ifndef EFL_NOLEGACY_API_SUPPORT
-#include "elm_entry_legacy.h"
-#endif
/**
* @}
*/
diff --git a/src/lib/elm_entry_common.h b/src/lib/elm_entry_common.h
index 4b5215d36..013f5c31d 100644
--- a/src/lib/elm_entry_common.h
+++ b/src/lib/elm_entry_common.h
@@ -1,9 +1,14 @@
/**
- * @typedef Elm_Text_Format
+ * @addtogroup Entry
*
+ * @{
+ */
+
+/**
* Text Format types.
*
* @see elm_entry_file_set()
+ * @ingroup Entry
*/
typedef enum
{
@@ -12,11 +17,11 @@ typedef enum
} Elm_Text_Format;
/**
- * @typedef Elm_Wrap_Type
- *
- * Line wrapping types.
- *
+ * @enum Elm_Wrap_Type
+ * aAbrief Line wrapping types.
+ * @details Type of word or character wrapping to use
* @see elm_entry_line_wrap_set()
+ * @ingroup Entry
*/
typedef enum
{
@@ -24,12 +29,10 @@ typedef enum
ELM_WRAP_CHAR, /**< Char wrap - wrap between characters */
ELM_WRAP_WORD, /**< Word wrap - wrap in allowed wrapping points (as defined in the unicode standard) */
ELM_WRAP_MIXED, /**< Mixed wrap - Word wrap, and if that fails, char wrap. */
- ELM_WRAP_LAST
-} Elm_Wrap_Type; /**< Type of word or character wrapping to use */
+ ELM_WRAP_LAST /**< WTF */
+} Elm_Wrap_Type;
/**
- * @typedef Elm_Input_Panel_Layout
- *
* Input panel (virtual keyboard) layout types.
*
* @see elm_entry_input_panel_layout_set()
@@ -74,8 +77,6 @@ enum
};
/**
- * @typedef Elm_Input_Panel_Lang
- *
* Input panel (virtual keyboard) language modes.
*
* @see elm_entry_input_panel_language_set()
@@ -87,8 +88,6 @@ typedef enum
} Elm_Input_Panel_Lang;
/**
- * @typedef Elm_Autocapital_Type
- *
* Autocapitalization Types.
*
* @see elm_entry_autocapital_type_set()
@@ -102,8 +101,6 @@ typedef enum
} Elm_Autocapital_Type; /**< Choose method of auto-capitalization */
/**
- * @typedef Elm_Input_Panel_Return_Key_Type
- *
* "Return" Key types on the input panel (virtual keyboard).
*
* @see elm_entry_input_panel_return_key_type_set()
@@ -121,10 +118,16 @@ typedef enum
ELM_INPUT_PANEL_RETURN_KEY_TYPE_SIGNIN /**< Sign-in @since 1.8 */
} Elm_Input_Panel_Return_Key_Type;
+
+/**
+ * @}
+ */
+
/**
- * @typedef Elm_Input_Hints
* @brief Enumeration that defines the types of Input Hints.
* @since 1.12
+ *
+ * @ingroup Entry
*/
typedef enum
{
@@ -134,18 +137,18 @@ typedef enum
} Elm_Input_Hints;
/**
- * @typedef Elm_Entry_Anchor_Info
- *
* The info sent in the callback for the "anchor,clicked" signals emitted
* by entries.
+ *
+ * @ingroup Entry
*/
typedef struct _Elm_Entry_Anchor_Info Elm_Entry_Anchor_Info;
/**
- * @struct _Elm_Entry_Anchor_Info
- *
* The info sent in the callback for the "anchor,clicked" signals emitted
* by entries.
+ *
+ * @ingroup Entry
*/
struct _Elm_Entry_Anchor_Info
{
@@ -158,26 +161,26 @@ struct _Elm_Entry_Anchor_Info
};
/**
- * @typedef Elm_Entry_Anchor_Hover_Info
- *
* The info sent in the callback for "anchor,clicked" signals emitted by
* the Anchor_Hover widget.
+ *
+ * @ingroup Entry
*/
typedef struct _Elm_Entry_Anchor_Hover_Info Elm_Entry_Anchor_Hover_Info;
/**
- * @typedef Elm_Entry_Context_Menu_Item
- *
* Type of contextual item that can be added in to long press menu.
* @since 1.8
+ *
+ * @ingroup Entry
*/
typedef struct _Elm_Entry_Context_Menu_Item Elm_Entry_Context_Menu_Item;
/**
- * @struct _Elm_Entry_Anchor_Hover_Info
- *
* The info sent in the callback for "anchor,clicked" signals emitted by
* the Anchor_Hover widget.
+ *
+ * @ingroup Entry
*/
struct _Elm_Entry_Anchor_Hover_Info
{
@@ -209,7 +212,6 @@ struct _Elm_Entry_Anchor_Hover_Info
};
/**
- * @typedef Elm_Entry_Item_Provider_Cb
* This callback type is used to provide items.
* If it returns an object handle other than NULL (it should create an
* object to do this), then this object is used to replace the current item.
@@ -222,11 +224,12 @@ struct _Elm_Entry_Anchor_Hover_Info
* @see elm_entry_item_provider_append
* @see elm_entry_item_provider_prepend
* @see elm_entry_item_provider_remove
+ *
+ * @ingroup Entry
*/
typedef Evas_Object * (*Elm_Entry_Item_Provider_Cb)(void *data, Evas_Object * entry, const char *item);
/**
- * @typedef Elm_Entry_Filter_Cb
* This callback type is used by entry filters to modify text.
* @param data The data specified as the last param when adding the filter
* @param entry The entry object
@@ -234,13 +237,16 @@ typedef Evas_Object * (*Elm_Entry_Item_Provider_Cb)(void *data, Evas_Object * en
* @see elm_entry_markup_filter_append
* @see elm_entry_markup_filter_prepend
* @see elm_entry_markup_filter_remove
+ *
+ * @ingroup Entry
*/
typedef void (*Elm_Entry_Filter_Cb)(void *data, Evas_Object *entry, char **text);
/**
- * @typedef Elm_Entry_Change_Info
* This corresponds to Edje_Entry_Change_Info. Includes information about
* a change in the entry.
+ *
+ * @ingroup Entry
*/
typedef Edje_Entry_Change_Info Elm_Entry_Change_Info;
@@ -280,16 +286,16 @@ EAPI char *elm_entry_utf8_to_markup(const char *s);
/* pre-made filters for entries */
/**
- * @typedef Elm_Entry_Filter_Limit_Size
- *
* Data for the elm_entry_filter_limit_size() entry filter.
+ *
+ * @ingroup Entry
*/
typedef struct _Elm_Entry_Filter_Limit_Size Elm_Entry_Filter_Limit_Size;
/**
- * @struct _Elm_Entry_Filter_Limit_Size
- *
* Data for the elm_entry_filter_limit_size() entry filter.
+ *
+ * @ingroup Entry
*/
struct _Elm_Entry_Filter_Limit_Size
{
@@ -326,16 +332,16 @@ struct _Elm_Entry_Filter_Limit_Size
EAPI void elm_entry_filter_limit_size(void *data, Evas_Object *entry, char **text);
/**
- * @typedef Elm_Entry_Filter_Accept_Set
- *
* Data for the elm_entry_filter_accept_set() entry filter.
+ *
+ * @ingroup Entry
*/
typedef struct _Elm_Entry_Filter_Accept_Set Elm_Entry_Filter_Accept_Set;
/**
- * @struct _Elm_Entry_Filter_Accept_Set
- *
* Data for the elm_entry_filter_accept_set() entry filter.
+ *
+ * @ingroup Entry
*/
struct _Elm_Entry_Filter_Accept_Set
{
@@ -367,11 +373,12 @@ struct _Elm_Entry_Filter_Accept_Set
EAPI void elm_entry_filter_accept_set(void *data, Evas_Object *entry, char **text);
/**
- * @typedef Elm_Cnp_Mode
* Enum of entry's copy & paste policy.
*
* @see elm_entry_cnp_mode_set()
* @see elm_entry_cnp_mode_get()
+ *
+ * @ingroup Entry
*/
typedef enum {
ELM_CNP_MODE_MARKUP, /**< copy & paste text with markup tag */
@@ -380,22 +387,19 @@ typedef enum {
} Elm_Cnp_Mode;
/**
- * Get the text of the contextual menu item.
- *
* Get the text of the contextual menu item of entry.
*
* @param item The item to get the label
* @return The text of contextual menu item
*
* @see elm_entry_context_menu_item_add()
- * @ingroup Entry
* @since 1.8
+ *
+ * @ingroup Entry
*/
EAPI const char *elm_entry_context_menu_item_label_get(const Elm_Entry_Context_Menu_Item *item);
/**
- * Get the icon object of the contextual menu item.
- *
* Get the icon object packed in the contextual menu item of entry.
*
* @param item The item to get the icon from
@@ -406,8 +410,9 @@ EAPI const char *elm_entry_context_menu_item_label_get(const El
* @param icon_type The icon type
*
* @see elm_entry_context_menu_item_add()
- * @ingroup Entry
* @since 1.8
+ *
+ * @ingroup Entry
*/
EAPI void elm_entry_context_menu_item_icon_get(const Elm_Entry_Context_Menu_Item *item, const char **icon_file, const char **icon_group, Elm_Icon_Type *icon_type);
diff --git a/src/lib/elm_finger.h b/src/lib/elm_finger.h
index 17d3be5d9..1e140e2e5 100644
--- a/src/lib/elm_finger.h
+++ b/src/lib/elm_finger.h
@@ -1,42 +1,39 @@
/**
* @defgroup Fingers Fingers
- * @ingroup Elementary
+ * @ingroup elm_infra_group
*
- * Elementary is designed to be finger-friendly for touchscreens,
- * and so in addition to scaling for display resolution, it can
- * also scale based on finger "resolution" (or size). You can then
- * customize the granularity of the areas meant to receive clicks
- * on touchscreens.
+ * @brief Elementary is designed to be finger-friendly for touchscreens,
+ * and so in addition to scaling for display resolution, it can
+ * also scale based on finger "resolution" (or size). You can then
+ * customize the granularity of the areas meant to receive clicks
+ * on touchscreens.
*
- * Different profiles may have pre-set values for finger sizes.
- *
- * @ref general_functions_example_page "This" example contemplates
- * some of these functions.
+ * @remarks Different profiles may have pre-set values for finger sizes.
*
* @{
*/
/**
- * Adjust size of an element for finger usage.
- *
- * @param times_w How many fingers should fit horizontally
- * @param w Pointer to the width size to adjust
- * @param times_h How many fingers should fit vertically
- * @param h Pointer to the height size to adjust
- *
- * This takes width and height sizes (in pixels) as input and a
- * size multiple (which is how many fingers you want to place
- * within the area, being "finger" the size set by
- * elm_config_finger_size_set()), and adjusts the size to be large enough
- * to accommodate the resulting size -- if it doesn't already
- * accommodate it. On return the @p w and @p h sizes pointed to by
- * these parameters will be modified, on those conditions.
- *
- * @note This is kind of low level Elementary call, most useful
- * on size evaluation times for widgets. An external user wouldn't
- * be calling, most of the time.
- *
- * @ingroup Fingers
+ * @brief Adjusts the size of an element for finger usage.
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks This takes width and height sizes (in pixels) as input and a
+ * size multiple (which is how many fingers you want to place
+ * within the area, with "finger" as the size set by
+ * elm_finger_size_set()), and adjusts the size to be large enough
+ * to accommodate the resulting size, if it doesn't already
+ * accommodate it. On return the @a w and @a h sizes pointed to by
+ * these parameters are modified, on those conditions.
+ *
+ * @remarks This is a kind of low level Elementary call, most useful
+ * on size evaluation times for widgets. An external user wouldn't
+ * be calling, most of the time.
+ *
+ * @param[in] times_w The number of fingers that fit horizontally
+ * @param[out] w A pointer to the width size to adjust
+ * @param[in] times_h The number of fingers that fit vertically
+ * @param[out] h A pointer to the height size to adjust
*/
EAPI void elm_coords_finger_size_adjust(int times_w, Evas_Coord *w, int times_h, Evas_Coord *h);
diff --git a/src/lib/elm_flip.h b/src/lib/elm_flip.h
index 7a38602b3..b66fd357b 100644
--- a/src/lib/elm_flip.h
+++ b/src/lib/elm_flip.h
@@ -1,50 +1,315 @@
/**
* @defgroup Flip Flip
- * @ingroup Elementary
+ * @ingroup elm_widget_group
*
* @image html flip_inheritance_tree.png
* @image latex flip_inheritance_tree.eps
*
- * @image html img/widget/flip/preview-00.png
- * @image latex img/widget/flip/preview-00.eps
+ * @brief This widget holds @c 2 content objects(Evas_Object): one on the front
+ * and one on the back. It allows you to flip from front to back and
+ * vice-versa using various animations.
*
- * This widget holds 2 content objects(Evas_Object): one on the front and one
- * on the back. It allows you to flip from front to back and vice-versa using
- * various animations.
- *
- * If either the front or back contents are not set the flip will treat that
- * as transparent. So if you wore to set the front content but not the back,
+ * If either the front or back contents are not set, the flip treats that
+ * as transparent. So if you were to set the front content but not the back,
* and then call elm_flip_go() you would see whatever is below the flip.
*
* For a list of supported animations see elm_flip_go().
*
* Signals that you can add callbacks for are:
- * "animate,begin" - when a flip animation was started
- * "animate,done" - when a flip animation is finished
+ * "animate,begin" - When a flip animation is started
+ * "animate,done" - When a flip animation is finished
*
- * Default content parts of the flip widget that you can use for are:
- * @li "front" - A front content of the flip
- * @li "back" - A back content of the flip
+ * The default content parts of the flip widget that you can use are:
+ * @li "front" - The front content of the flip.
+ * @li "back" - The back content of the flip.
*
- * This widget inherits from @ref elm-container-class, so that the
- * functions meant to act on it will work for mapbuf objects:
+ * The functions meant to act on it works for mapbuf objects:
*
* @li @ref elm_object_part_content_set
* @li @ref elm_object_part_content_get
* @li @ref elm_object_part_content_unset
*
- * @ref tutorial_flip show how to use most of the API.
- *
* @{
*/
+typedef enum
+{
+ ELM_FLIP_ROTATE_Y_CENTER_AXIS,
+ ELM_FLIP_ROTATE_X_CENTER_AXIS,
+ ELM_FLIP_ROTATE_XZ_CENTER_AXIS,
+ ELM_FLIP_ROTATE_YZ_CENTER_AXIS,
+ ELM_FLIP_CUBE_LEFT,
+ ELM_FLIP_CUBE_RIGHT,
+ ELM_FLIP_CUBE_UP,
+ ELM_FLIP_CUBE_DOWN,
+ ELM_FLIP_PAGE_LEFT,
+ ELM_FLIP_PAGE_RIGHT,
+ ELM_FLIP_PAGE_UP,
+ ELM_FLIP_PAGE_DOWN
+} Elm_Flip_Mode;
+
+typedef enum
+{
+ ELM_FLIP_INTERACTION_NONE,
+ ELM_FLIP_INTERACTION_ROTATE,
+ ELM_FLIP_INTERACTION_CUBE,
+ ELM_FLIP_INTERACTION_PAGE
+} Elm_Flip_Interaction;
+
+/**
+ * Enumeration of Elm Flip Direction type
+ */
+typedef enum
+{
+ ELM_FLIP_DIRECTION_UP, /**< Allows interaction with the top of the widget */
+ ELM_FLIP_DIRECTION_DOWN, /**< Allows interaction with the bottom of the widget */
+ ELM_FLIP_DIRECTION_LEFT, /**< Allows interaction with the left portion of the widget */
+ ELM_FLIP_DIRECTION_RIGHT /**< Allows interaction with the right portion of the widget */
+} Elm_Flip_Direction;
+
+/**
+ * @brief Adds a new flip to the parent.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] parent The parent object
+ * @return The new object, otherwise @c NULL if it cannot be created
+ */
+EAPI Evas_Object *elm_flip_add(Evas_Object *parent);
+
+/**
+ * @brief Gets the flip front visibility state.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The flip object
+ * @return @c EINA_TRUE if the front is showing, otherwise @c EINA_FALSE if the back is
+ * showing
+ */
+Eina_Bool elm_flip_front_visible_get(const Evas_Object *obj);
+
+/**
+ * @brief Sets the flip perspective.
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks This function currently does nothing.
+ *
+ * @param[in] obj The flip object
+ * @param[in] foc The coordinate to set the focus on
+ * @param[in] x The X coordinate
+ * @param[in] y The Y coordinate
+ */
+EAPI void elm_flip_perspective_set(Evas_Object *obj, Evas_Coord foc, Evas_Coord x, Evas_Coord y);
+
+/**
+ * @brief Runs the flip animation.
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks Flips the front and back contents using the @a mode animation. This
+ * effectively hides the currently visible content and shows the hidden one.
+ *
+ * @remarks There are a number of possible animations to use for flipping:
+ * @li ELM_FLIP_ROTATE_X_CENTER_AXIS - Rotates the currently visible content
+ * around a horizontal axis in the middle of its height, the other content
+ * is shown as the other side of the flip.
+ * @li ELM_FLIP_ROTATE_Y_CENTER_AXIS - Rotates the currently visible content
+ * around a vertical axis in the middle of its width, the other content is
+ * shown as the other side of the flip.
+ * @li ELM_FLIP_ROTATE_XZ_CENTER_AXIS - Rotates the currently visible content
+ * around a diagonal axis in the middle of its width, the other content is
+ * shown as the other side of the flip.
+ * @li ELM_FLIP_ROTATE_YZ_CENTER_AXIS - Rotates the currently visible content
+ * around a diagonal axis in the middle of its height, the other content is
+ * shown as the other side of the flip.
+ * @li ELM_FLIP_CUBE_LEFT - Rotates the currently visible content to the left
+ * as if the flip is a cube, the other content is shown as the right face of
+ * the cube.
+ * @li ELM_FLIP_CUBE_RIGHT - Rotates the currently visible content to the
+ * right as if the flip is a cube, the other content is shown as the left
+ * face of the cube.
+ * @li ELM_FLIP_CUBE_UP - Rotates the currently visible content up as if the
+ * flip is a cube, the other content is shown as the bottom face of the cube.
+ * @li ELM_FLIP_CUBE_DOWN - Rotates the currently visible content down as if
+ * the flip is a cube, the other content is shown as the upper face of the
+ * cube.
+ * @li ELM_FLIP_PAGE_LEFT - Moves the currently visible content to the left as
+ * if the flip is a book, the other content is shown as the page below that.
+ * @li ELM_FLIP_PAGE_RIGHT - Moves the currently visible content to the right
+ * as if the flip is a book, the other content is shown as the page below
+ * that.
+ * @li ELM_FLIP_PAGE_UP - Moves the currently visible content up as if the
+ * flip is a book, the other content is shown as the page below that.
+ * @li ELM_FLIP_PAGE_DOWN - Moves the currently visible content down as if the
+ * flip is a book, the other content is shown as the page below that.
+ *
+ * @image html elm_flip.png
+ * @image latex elm_flip.eps "elm flip" width=\textwidth
+ *
+ * @param[in] obj The flip object
+ * @param[in] mode The mode type
+ *
+ * @see elm_flip_go_to()
+ */
+EAPI void elm_flip_go(Evas_Object *obj, Elm_Flip_Mode mode);
+
+/**
+ * @brief Runs the flip animation to the front or back.
+ *
+ * @since 1.7
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks Flips the front and back contents using the @a mode animation. This
+ * effectively hides the currently visible content and shows the hidden one.
+ *
+ * @remarks There are a number of possible animations to use for flipping:
+ * @li ELM_FLIP_ROTATE_X_CENTER_AXIS - Rotates the currently visible content
+ * around a horizontal axis in the middle of its height, the other content
+ * is shown as the other side of the flip.
+ * @li ELM_FLIP_ROTATE_Y_CENTER_AXIS - Rotates the currently visible content
+ * around a vertical axis in the middle of its width, the other content is
+ * shown as the other side of the flip.
+ * @li ELM_FLIP_ROTATE_XZ_CENTER_AXIS - Rotates the currently visible content
+ * around a diagonal axis in the middle of its width, the other content is
+ * shown as the other side of the flip.
+ * @li ELM_FLIP_ROTATE_YZ_CENTER_AXIS - Rotates the currently visible content
+ * around a diagonal axis in the middle of its height, the other content is
+ * shown as the other side of the flip.
+ * @li ELM_FLIP_CUBE_LEFT - Rotates the currently visible content to the left
+ * as if the flip is a cube, the other content is shown as the right face of
+ * the cube.
+ * @li ELM_FLIP_CUBE_RIGHT - Rotates the currently visible content to the
+ * right as if the flip is a cube, the other content is shown as the left
+ * face of the cube.
+ * @li ELM_FLIP_CUBE_UP - Rotates the currently visible content up as if the
+ * flip is a cube, the other content is shown as the bottom face of the cube.
+ * @li ELM_FLIP_CUBE_DOWN - Rotates the currently visible content down as if
+ * the flip is a cube, the other content is shown as the upper face of the
+ * cube.
+ * @li ELM_FLIP_PAGE_LEFT - Moves the currently visible content to the left as
+ * if the flip is a book, the other content is shown as the page below that.
+ * @li ELM_FLIP_PAGE_RIGHT - Moves the currently visible content to the right
+ * as if the flip is a book, the other content is shown as the page below
+ * that.
+ * @li ELM_FLIP_PAGE_UP - Moves the currently visible content up as if the
+ * flip is a book, the other content is shown as the page below that.
+ * @li ELM_FLIP_PAGE_DOWN - Moves the currently visible content down as if the
+ * flip is a book, the other content is shown as the page below that.
+ *
+ * @image html elm_flip.png
+ * @image latex elm_flip.eps "elm flip" width=\textwidth
+ *
+ * @param[in] obj The flip object
+ * @param[in] front If @c EINA_TRUE it makes the front visible,
+ * otherwise @c EINA_FALSE to make the back visible
+ * @param[in] mode The mode type
+ */
+EAPI void elm_flip_go_to(Evas_Object *obj, Eina_Bool front, Elm_Flip_Mode mode);
+
+/**
+ * @brief Sets the interactive flip mode.
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks This sets if the flip should be interactive (allow a user to click and
+ * drag a side of the flip to reveal the back page and cause it to flip).
+ * By default a flip is not interactive. You may also need to set which
+ * sides of the flip are "active" for flipping and how much space they use
+ * (a minimum of a finger size) with elm_flip_interaction_direction_enabled_set()
+ * and elm_flip_interaction_direction_hitsize_set().
+ *
+ * @remarks The four available modes of interaction are:
+ * @li ELM_FLIP_INTERACTION_NONE - No interaction is allowed.
+ * @li ELM_FLIP_INTERACTION_ROTATE - Interaction causes rotate animation.
+ * @li ELM_FLIP_INTERACTION_CUBE - Interaction causes cube animation.
+ * @li ELM_FLIP_INTERACTION_PAGE - Interaction causes page animation.
+ *
+ * @remarks ELM_FLIP_INTERACTION_ROTATE won't cause
+ * ELM_FLIP_ROTATE_XZ_CENTER_AXIS or ELM_FLIP_ROTATE_YZ_CENTER_AXIS to
+ * happen, they can only be achieved with elm_flip_go().
+ *
+ * @param[in] obj The flip object
+ * @param[in] mode The interactive flip mode to use
+ */
+EAPI void elm_flip_interaction_set(Evas_Object *obj, Elm_Flip_Interaction mode);
+
+/**
+ * @brief Gets the interactive flip mode.
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks This returns the interactive flip mode set by elm_flip_interaction_set().
+ *
+ * @param[in] obj The flip object
+ * @return The interactive flip mode
+ */
+EAPI Elm_Flip_Interaction elm_flip_interaction_get(const Evas_Object *obj);
+
+/**
+ * @brief Sets which directions of the flip respond to the interactive flip.
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks By default, all the directions are disabled, so you may want to enable the
+ * desired directions for flipping if you need interactive flipping. You must
+ * call this function once for each direction that should be enabled.
+ *
+ * @param[in] obj The flip object
+ * @param[in] dir The direction to change
+ * @param[in] enabled The boolean value that indicates whether that direction is enabled
+ *
+ * @see elm_flip_interaction_set()
+ */
+EAPI void elm_flip_interaction_direction_enabled_set(Evas_Object *obj, Elm_Flip_Direction dir, Eina_Bool enabled);
+
+/**
+ * @brief Gets the enabled state of that flip direction.
+ *
+ * @details This gets the enabled state set by elm_flip_interaction_direction_enabled_set().
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The flip object
+ * @param[in] dir The direction to check
+ * @return The boolean value that indicates whether that direction is enabled
+ *
+ * @see elm_flip_interaction_set()
+ */
+EAPI Eina_Bool elm_flip_interaction_direction_enabled_get(Evas_Object *obj, Elm_Flip_Direction dir);
+
+/**
+ * @brief Sets the amount of the flip that is sensitive to the interactive flip.
+ *
+ * @details This sets the amount of the flip that is sensitive to the interactive flip, with @c 0
+ * representing no area in the flip and @c 1 representing the entire flip. There
+ * is however a consideration to be made. Basically, the area should never be
+ * smaller than the finger size set(as set in your Elementary configuration).
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The flip object
+ * @param[in] dir The direction to modify
+ * @param[in] hitsize The amount of that dimension (@c 0.0 to @c 1.0) to use
+ *
+ * @see elm_flip_interaction_set()
+ */
+EAPI void elm_flip_interaction_direction_hitsize_set(Evas_Object *obj, Elm_Flip_Direction dir, double hitsize);
+
+/**
+ * @brief Gets the amount of the flip that is sensitive to the interactive flip.
+ *
+ * @details This returns the amount of sensitive area set by
+ * elm_flip_interaction_direction_hitsize_set().
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The flip object
+ * @param[in] dir The direction to check
+ * @return The size set for that direction
+ */
+EAPI double elm_flip_interaction_direction_hitsize_get(Evas_Object *obj, Elm_Flip_Direction dir);
-#include "elm_flip_common.h"
-#ifdef EFL_EO_API_SUPPORT
-#include "elm_flip_eo.h"
-#endif
-#ifndef EFL_NOLEGACY_API_SUPPORT
-#include "elm_flip_legacy.h"
-#endif
/**
* @}
*/
diff --git a/src/lib/elm_flipselector.h b/src/lib/elm_flipselector.h
index c63a3de4e..134bfba02 100644
--- a/src/lib/elm_flipselector.h
+++ b/src/lib/elm_flipselector.h
@@ -1,4 +1,5 @@
/**
+ * @internal
* @defgroup Flipselector Flip Selector
* @ingroup Elementary
*
@@ -11,11 +12,11 @@
* A flip selector is a widget to show a set of @b text items, one
* at a time, with the same sheet switching style as the @ref Clock
* "clock" widget, when one changes the current displaying sheet
- * (thus, the "flip" in the name).
+ * (thus, the word "flip" in the name).
*
- * User clicks to flip sheets which are @b held for some time will
+ * User clicks to flip sheets which are @b held for some time which
* make the flip selector to flip continuously and automatically for
- * the user. The interval between flips will keep growing in time,
+ * the user. The interval between flips keep growing with time,
* so that it helps the user to reach an item which is distant from
* the current selection.
*
@@ -23,49 +24,289 @@
* functions acting on it also work for flip selector objects.
*
* This widget emits the following signals, besides the ones sent from
- * @ref Layout:
- * - @c "selected" - when the widget's selected text item is changed. The @c
- * event_info parameter is the item that was selected.
- * - @c "overflowed" - when the widget's current selection is changed
- * from the first item in its list to the last
- * - @c "underflowed" - when the widget's current selection is changed
- * from the last item in its list to the first
- * - @c "focused" - When the flip selector has received focus. (since 1.8)
- * - @c "unfocused" - When the flip selector has lost focus. (since 1.8)
- * - @c "language,changed" - the program's language changed (since 1.9)
+ * @ref Layout :
+ * - @c "selected" - When the widget's selected text item is changed.
+ * - @c "overflowed" - When the widget's current selection is changed
+ * from the first item in its list to the last.
+ * - @c "underflowed" - When the widget's current selection is changed
+ * from the last item in its list to the first.
*
* Available styles for it:
* - @c "default"
*
- * Default text parts of the flipselector items that you can use for are:
- * @li "default" - A label of the flipselector item
+ * The default text parts of the flipselector items that you can use are:
+ * @li "default" - Label of the flipselector item.
*
- * Supported elm_object common APIs.
+ * Supported common elm_object APIs.
* @li @ref elm_object_disabled_set
* @li @ref elm_object_disabled_get
*
- * Supported elm_object_item common APIs.
- * @li @ref elm_object_item_del
+ * Supported common elm_object_item APIs.
+ * @li @ref elm_object_item_text_set
* @li @ref elm_object_item_part_text_set
- * @li @ref elm_object_item_part_text_get
* @li @ref elm_object_item_signal_emit
*
- * Here is an example on its usage:
- * @li @ref flipselector_example
+ * @{
*/
/**
- * @addtogroup Flipselector
- * @{
+ * @brief Adds a new flip selector widget to the given parent Elementary
+ * (container) widget.
+ *
+ * @details This function inserts a new flip selector widget on the canvas.
+ *
+ * @param[in] parent The parent object
+ * @return A new flip selector widget handle, otherwise @c NULL in case of an error
+ *
+ * @ingroup Flipselector
+ */
+EAPI Evas_Object *elm_flipselector_add(Evas_Object *parent);
+
+/**
+ * @brief Programmatically selects the next item of a flip selector widget.
+ *
+ * @remarks The selection is animated. Also, if it reaches the
+ * end of its list of member items, it continues with the first
+ * one onwards.
+ *
+ * @param[in] obj The flipselector object
+ *
+ * @ingroup Flipselector
+ */
+EAPI void elm_flipselector_flip_next(Evas_Object *obj);
+
+/**
+ * @brief Programmatically selects the previous item of a flip selector
+ * widget.
+ *
+ * @remarks The selection is animated. Also, if it reaches the
+ * beginning of its list of member items, it continues with the
+ * last one backwards.
+ *
+ * @param[in] obj The flipselector object
+ *
+ * @ingroup Flipselector
+ */
+EAPI void elm_flipselector_flip_prev(Evas_Object *obj);
+
+/**
+ * @brief Appends a (text) item to a flip selector widget.
+ *
+ * @remarks The widget's list of labels to show are appended with the
+ * given value. If the user wishes so, a callback function pointer
+ * can be passed, which gets called when this same item is
+ * selected.
+ *
+ * @remarks The current selection @b won't be modified by appending an
+ * element to the list.
+ *
+ * @remarks 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.
+ *
+ * @param[in] obj The flipselector object
+ * @param[in] label The (text) label of the new item
+ * @param[in] func The convenience callback function to take place when the
+ * item is selected
+ * @param[in] data The data passed to @a func mentioned above
+ * @return A handle to the item added, otherwise @c NULL in case of an error
+ *
+ * @ingroup Flipselector
+ */
+EAPI Elm_Object_Item *elm_flipselector_item_append(Evas_Object *obj, const char *label, Evas_Smart_Cb func, void *data);
+
+/**
+ * @brief Prepends a (text) item to a flip selector widget.
+ *
+ * @remarks The widget's list of labels to show are prepended with the
+ * given value. If the user wishes so, a callback function pointer
+ * can be passed, which gets called when this same item is
+ * selected.
+ *
+ * @remarks The current selection @b won't be modified by prepending
+ * an element to the list.
+ *
+ * @remarks 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.
+ *
+ * @param[in] obj The flipselector object
+ * @param[in] label The (text) label of the new item
+ * @param[in] func The convenience callback function to take place when the
+ * item is selected
+ * @param[in] data The data passed to @a func mentioned above
+ * @return A handle to the item added, otherwise @c NULL in case of an error
+ *
+ * @ingroup Flipselector
+ */
+EAPI Elm_Object_Item *elm_flipselector_item_prepend(Evas_Object *obj, const char *label, Evas_Smart_Cb func, void *data);
+
+/**
+ * @brief Gets the internal list of items in a given flip selector widget.
+ *
+ * @remarks This list is @b not to be modified in any way and must not be
+ * freed. Use the list members with functions like
+ * elm_object_item_text_set(),
+ * elm_object_item_text_get(),
+ * elm_object_item_del(),
+ * elm_flipselector_item_selected_get(),
+ * elm_flipselector_item_selected_set().
+ *
+ * @remarks This list is only valid until @a obj object's internal
+ * items list is changed. It should be fetched again with another
+ * call to this function when changes happen.
+ *
+ * @param[in] obj The flipselector object
+ * @return The list of items (#Elm_Object_Item as data),
+ * otherwise @c NULL on errors
+ *
+ * @ingroup Flipselector
+ */
+EAPI const Eina_List *elm_flipselector_items_get(const Evas_Object *obj);
+
+/**
+ * @brief Gets the first item in the given flip selector widget's list of
+ * items.
+ *
+ * @param[in] obj The flipselector object
+ * @return The first item, otherwise @c NULL if it has no items (and on
+ * errors)
+ *
+ * @see elm_flipselector_item_append()
+ * @see elm_flipselector_last_item_get()
+ *
+ * @ingroup Flipselector
+ */
+EAPI Elm_Object_Item *elm_flipselector_first_item_get(const Evas_Object *obj);
+
+/**
+ * @brief Gets the last item in the given flip selector widget's list of
+ * items.
+ *
+ * @param[in] obj The flipselector object
+ * @return The last item, otherwise @c NULL if it has no items (and on
+ * errors)
+ *
+ * @see elm_flipselector_item_prepend()
+ * @see elm_flipselector_first_item_get()
+ *
+ * @ingroup Flipselector
+ */
+EAPI Elm_Object_Item *elm_flipselector_last_item_get(const Evas_Object *obj);
+
+/**
+ * @brief Gets the currently selected item in a flip selector widget.
+ *
+ * @param[in] obj The flipselector object
+ * @return The selected item, otherwise @c NULL if the widget has no items
+ * (and on errors)
+ *
+ * @ingroup Flipselector
+ */
+EAPI Elm_Object_Item *elm_flipselector_selected_item_get(const Evas_Object *obj);
+
+/**
+ * @brief Sets whether a given flip selector widget's item should be the
+ * currently selected one.
+ *
+ * @details This sets whether @a it is or is not the selected (thus, under
+ * display) one. If @a it is different from the one under display,
+ * the latter is unselected. If the @a it is set to be
+ * unselected, on the other hand, the @b first item in the widget's
+ * internal members list is the new selected one.
+ *
+ * @param[in] it The flip selector item
+ * @param[in] selected If @c EINA_TRUE it is selected, otherwise @c EINA_FALSE to unselect it
+ *
+ * @see elm_flipselector_item_selected_get()
+ *
+ * @ingroup Flipselector
+ */
+EAPI void elm_flipselector_item_selected_set(Elm_Object_Item *it, Eina_Bool selected);
+
+/**
+ * @brief Gets whether a given flip selector widget's item is the currently
+ * selected one.
+ *
+ * @param[in] it The flip selector item
+ * @return @c EINA_TRUE if it's selected, otherwise @c EINA_FALSE
+ * (or on errors)
+ *
+ * @see elm_flipselector_item_selected_set()
+ *
+ * @ingroup Flipselector
+ */
+EAPI Eina_Bool elm_flipselector_item_selected_get(const Elm_Object_Item *it);
+
+/**
+ * @brief Gets the item before @a it in a flip selector widget's internal list of
+ * items.
+ *
+ * @param[in] it The item to fetch previous from
+ * @return The item before the @a it, in its parent's list \n
+ * If there is no previous item for @a it or there's an error, @c NULL is returned.
+ *
+ * @see elm_flipselector_item_next_get()
+ *
+ * @ingroup Flipselector
+ */
+EAPI Elm_Object_Item *elm_flipselector_item_prev_get(const Elm_Object_Item *it);
+
+/**
+ * @brief Gets the item after @a it in a flip selector widget's
+ * internal list of items.
+ *
+ * @param[in] it The item to fetch next from
+ * @return The item after the @a it, in its parent's list \n
+ * If there is no next item for @a it or there's an error, @c NULL is returned.
+ *
+ * @see elm_flipselector_item_prev_get()
+ *
+ * @ingroup Flipselector
+ */
+EAPI Elm_Object_Item *elm_flipselector_item_next_get(const Elm_Object_Item *it);
+
+/**
+ * @brief Sets the interval on time updates for a user's mouse button hold
+ * on a flip selector widget.
+ *
+ * @remarks This interval value is @b decreased while the user holds the
+ * mouse pointer either by flipping up or flipping down a given flip
+ * selector.
+ *
+ * @remarks This helps the user to get to a given item, which is distant from the
+ * current one, in an easier/faster way, as it start to flip quicker and
+ * quicker on mouse button holds.
+ *
+ * @remarks The calculation for the next flip interval value, starting from
+ * the one set with this call, is the previous interval divided by
+ * @c 1.05, so it decreases a little bit.
+ *
+ * @remarks The default starting interval value for automatic flips is
+ * @b 0.85 seconds.
+ *
+ * @param[in] obj The flip selector object
+ * @param[in] interval The (first) interval value in seconds
+ *
+ * @see elm_flipselector_first_interval_get()
+ *
+ * @ingroup Flipselector
+ */
+EAPI void elm_flipselector_first_interval_set(Evas_Object *obj, double interval);
+
+/**
+ * @brief Gets the interval on time updates for a user's mouse button hold
+ * on a flip selector widget.
+ *
+ * @param[in] obj The flip selector object
+ * @return The (first) interval value, in seconds, set on it
+ *
+ * @see elm_flipselector_first_interval_set()
+ *
+ * @ingroup Flipselector
*/
+EAPI double elm_flipselector_first_interval_get(const Evas_Object *obj);
-#include "elm_flipselector_common.h"
-#ifdef EFL_EO_API_SUPPORT
-#include "elm_flipselector_eo.h"
-#endif
-#ifndef EFL_NOLEGACY_API_SUPPORT
-#include "elm_flipselector_legacy.h"
-#endif
/**
* @}
*/
diff --git a/src/lib/elm_focus.h b/src/lib/elm_focus.h
index 3aad5e94c..4f160cc1e 100644
--- a/src/lib/elm_focus.h
+++ b/src/lib/elm_focus.h
@@ -1,6 +1,7 @@
/**
* @defgroup Focus Focus
- * @ingroup Elementary
+ * @ingroup elm_infra_group
+ * @brief This group provides functions to handle Elementary Focus.
*
* An Elementary application has, at all times, one (and only one)
* @b focused object. This is what determines where the input
@@ -11,327 +12,293 @@
* Elementary applications also have the concept of <b>focus
* chain</b>: one can cycle through all the windows' focusable
* objects by input (tab key) or programmatically. The default
- * focus chain for an application is the one define by the order in
- * which the widgets where added in code. One will cycle through
- * top level widgets, and, for each one containing sub-objects, cycle
+ * focus chain for an application is the one defined by the order in
+ * which the widgets are added in the code. One cycles through the
+ * top level widgets, and, for each one containing sub-object, cycle
* through them all, before returning to the level
* above. Elementary also allows one to set @b custom focus chains
* for their applications.
*
- * Besides the focused decoration a widget may exhibit, when it
+ * Besides the focused decoration that a widget may exhibit, when it
* gets focus, Elementary has a @b global focus highlight object
* that can be enabled for a window. If one chooses to do so, this
- * extra highlight effect will surround the current focused object,
+ * extra highlight effect surrounds the current focused object,
* too.
*
- * @note Some Elementary widgets are @b unfocusable, after
+ * @remarks Some Elementary widgets are @b unfocusable, after
* creation, by their very nature: they are not meant to be
* interacted with input events, but are there just for visual
- * purposes.
+ * purposes. *
*
- * @ref general_functions_example_page "This" example contemplates
- * some of these functions.
+ * @{
*/
/**
- * Focus directions.
- *
- * @ingroup Focus
+ * @brief Enumeration that defines the focus directions.
*/
typedef enum
{
- ELM_FOCUS_PREVIOUS, /**< previous direction */
- ELM_FOCUS_NEXT, /**< next direction */
- ELM_FOCUS_UP, /**< up direction */
- ELM_FOCUS_DOWN, /**< down direction */
- ELM_FOCUS_RIGHT, /**< right direction */
- ELM_FOCUS_LEFT /**< left direction */
+ ELM_FOCUS_PREVIOUS, /**< Previous direction */
+ ELM_FOCUS_NEXT, /**< Next direction */
+ ELM_FOCUS_UP, /**< Up direction */
+ ELM_FOCUS_DOWN, /**< Down direction */
+ ELM_FOCUS_RIGHT, /**< Right direction */
+ ELM_FOCUS_LEFT, /**< Left direction */
+ ELM_FOCUS_NONE
} Elm_Focus_Direction;
/**
- * Get the whether an Elementary object has the focus or not.
+ * @typedef Elm_Focus_Info
*
- * @param obj The Elementary object to get the information from
- * @return @c EINA_TRUE, if the object is focused, @c EINA_FALSE if
- * not (and on errors).
+ * @brief The structure type containing the info sent in the callback for the "focused" signals.
+ */
+typedef struct _Elm_Focus_Info Elm_Focus_Info;
+
+struct _Elm_Focus_Info
+{
+ Evas_Object *prev_focused;
+ Elm_Focus_Direction dir;
+};
+
+/**
+ * @brief Gets whether an Elementary object has the focus.
*
- * @see elm_object_focus_set()
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The Elementary object to get the information from
+ * @return @c EINA_TRUE if the object is focused, otherwise @c EINA_FALSE if
+ * not (and on errors)
*
- * @ingroup Focus
+ * @see elm_object_focus_set()
*/
EAPI Eina_Bool elm_object_focus_get(const Evas_Object *obj);
/**
- * Set/unset focus to a given Elementary object.
+ * @brief Sets or unsets focus to a given Elementary object.
*
- * @param obj The Elementary object to operate on.
- * @param focus @c EINA_TRUE Set focus to a given object,
- * @c EINA_FALSE Unset focus to a given object.
+ * @since_tizen 2.3
*
- * @note When you set focus to this object, if it can handle focus, will
- * take the focus away from the one who had it previously and will, for
- * now on, be the one receiving input events. Unsetting focus will remove
- * the focus from @p obj, passing it back to the previous element in the
- * focus chain list.
+ * @remarks When you set focus to this object, if it can handle focus, it
+ * takes the focus away from the one who had it previously and, from
+ * now on, becomes the one receiving input events. Unsetting focus removes
+ * the focus from @a obj, passing it back to the previous element in the
+ * focus chain list.
*
- * @warning Only visible object can get a focus. Call evas_object_show(o) before
- * calling this API, if you want to give a focus to the evas object.
+ * @param[in] obj The Elementary object to operate on
+ * @param[in] focus If @c EINA_TRUE the focus to a given object is set,
+ * otherwise @c EINA_FALSE to unset the focus to a given object
*
- * @see elm_object_focus_get(), elm_object_focus_custom_chain_get()
- *
- * @ingroup Focus
+ * @see elm_object_focus_get()
+ * @see elm_object_focus_custom_chain_get()
*/
EAPI void elm_object_focus_set(Evas_Object *obj, Eina_Bool focus);
/**
- * Set the ability for an Elementary object to be focused
+ * @brief Sets the ability for an Elementary object to be focused.
*
- * @param obj The Elementary object to operate on
- * @param enable @c EINA_TRUE if the object can be focused, @c
- * EINA_FALSE if not (and on errors)
+ * @details This sets whether the object @a obj is able to take focus or
+ * not. Unfocusable objects do nothing when programmatically
+ * focused, being the nearest focusable parent object, the one
+ * really getting focus. Also, when they receive mouse input, they
+ * get the event, but do not take away the focus from where it
+ * is previously.
*
- * This sets whether the object @p obj is able to take focus or
- * not. Unfocusable objects do nothing when programmatically
- * focused, being the nearest focusable parent object the one
- * really getting focus. Also, when they receive mouse input, they
- * will get the event, but not take away the focus from where it
- * was previously.
+ * @since_tizen 2.3
*
- * @ingroup Focus
+ * @param[in] obj The Elementary object to operate on
+ * @param[in] enable If @c EINA_TRUE the object can be focused,
+ * otherwise @c EINA_FALSE if it cannot (and on errors)
*/
EAPI void elm_object_focus_allow_set(Evas_Object *obj, Eina_Bool enable);
/**
- * Get whether an Elementary object is focusable or not
+ * @brief Gets whether an Elementary object is focusable.
*
- * @param obj The Elementary object to operate on
- * @return @c EINA_TRUE if the object is allowed to be focused, @c
- * EINA_FALSE if not (and on errors)
+ * @since_tizen 2.3
*
- * @note Objects which are meant to be interacted with by input
- * events are created able to be focused, by default. All the
- * others are not.
+ * @remarks Objects which are meant to be interacted with by input
+ * events are created to be able to be focused, by default. All the
+ * others are not.
*
- * @ingroup Focus
+ * @param[in] obj The Elementary object to operate on
+ * @return @c EINA_TRUE if the object is allowed to be focused,
+ * otherwise @c EINA_FALSE if it is not (and on errors)
*/
EAPI Eina_Bool elm_object_focus_allow_get(const Evas_Object *obj);
/**
- * Set custom focus chain.
+ * @brief Sets the custom focus chain.
+ *
+ * @details This function overwrites any previous custom focus chain within
+ * the list of objects. The previous list is deleted and this list
+ * is managed by elementary. After it is set, don't modify it.
*
- * This function overwrites any previous custom focus chain within
- * the list of objects. The previous list will be deleted and this list
- * will be managed by elementary. After it is set, don't modify it.
+ * @since_tizen 2.3
*
- * @note On focus cycle, only will be evaluated children of this container.
+ * @remarks On the focus cycle, there are only evaluated children of this container.
*
- * @param obj The container object
- * @param objs Chain of objects to pass focus
- * @ingroup Focus
+ * @param[in] obj The container object
+ * @param[in] objs The chain of objects to pass focus to
*/
EAPI void elm_object_focus_custom_chain_set(Evas_Object *obj, Eina_List *objs);
/**
- * Unset a custom focus chain on a given Elementary widget
+ * @brief Unsets a custom focus chain on a given Elementary widget.
*
- * @param obj The container object to remove focus chain from
+ * @since_tizen 2.3
*
- * Any focus chain previously set on @p obj (for its child objects)
- * is removed entirely after this call.
+ * @remarks Any focus chain previously set on @a obj (for its child objects)
+ * is removed entirely after this call.
*
- * @ingroup Focus
+ * @param[in] obj The container object to remove the focus chain from
*/
EAPI void elm_object_focus_custom_chain_unset(Evas_Object *obj);
/**
- * Get custom focus chain
+ * @brief Gets the custom focus chain.
*
- * @param obj The container object
- * @ingroup Focus
+ * @since_tizen 2.3
+ *
+ * @param[in] obj The container object
+ * @return The focus custom chain list
*/
EAPI const Eina_List *elm_object_focus_custom_chain_get(const Evas_Object *obj);
/**
- * Append object to custom focus chain.
+ * @brief Appends an object to the custom focus chain.
+ *
+ * @since_tizen 2.3
*
- * @note If relative_child equal to NULL or not in custom chain, the object
- * will be added in end.
+ * @remarks If @a relative_child is equal to @c NULL or not in the custom chain, the object
+ * is added in the end.
*
- * @note On focus cycle, only will be evaluated children of this container.
+ * @remarks On the focus cycle, there are only evaluated children of this container.
*
- * @param obj The container object
- * @param child The child to be added in custom chain
- * @param relative_child The relative object to position the child
- * @ingroup Focus
+ * @param[in] obj The container object
+ * @param[in] child The child to be added in the custom chain
+ * @param[in] relative_child The relative object to position the child
*/
EAPI void elm_object_focus_custom_chain_append(Evas_Object *obj, Evas_Object *child, Evas_Object *relative_child);
/**
- * Prepend object to custom focus chain.
+ * @brief Prepends an object to the custom focus chain.
+ *
+ * @since_tizen 2.3
*
- * @note If relative_child equal to NULL or not in custom chain, the object
- * will be added in begin.
+ * @remarks If @a relative_child is equal to @c NULL or not in custom chain, the object
+ * is added in the beginning.
*
- * @note On focus cycle, only will be evaluated children of this container.
+ * @remarks On the focus cycle, there are only evaluated children of this container.
*
- * @param obj The container object
- * @param child The child to be added in custom chain
- * @param relative_child The relative object to position the child
- * @ingroup Focus
+ * @param[in] obj The container object
+ * @param[in] child The child to be added in the custom chain
+ * @param[in] relative_child The relative object to position the child
*/
EAPI void elm_object_focus_custom_chain_prepend(Evas_Object *obj, Evas_Object *child, Evas_Object *relative_child);
/**
- * Give focus to next object in object tree.
+ * @brief Gives focus to the next object in the object tree.
*
- * Give focus to next object in focus chain of one object sub-tree.
- * If the last object of chain already have focus, the focus will go to the
- * first object of chain.
+ * @details This gives focus to the next object in the focus chain of one the object sub-tree.
+ * If the last object of the chain already has focus, the focus goes to the
+ * first object of the chain.
*
- * @param obj The object root of sub-tree
- * @param dir Direction to move the focus
+ * @param[in] obj The object root of the sub-tree
+ * @param[in] dir The direction to move the focus
*
- * @see elm_object_focus_next_object_get(), elm_object_focus_next_object_set()
- *
- * @ingroup Focus
+ * @see elm_object_focus_next_object_get()
+ * @see elm_object_focus_next_object_set()
*/
EAPI void elm_object_focus_next(Evas_Object *obj, Elm_Focus_Direction dir);
/**
- * Get next object which was set with specific focus direction.
+ * @brief Gets the next object that is set with a specific focus direction.
*
- * Get next object which was set by elm_object_focus_next_object_set
- * with specific focus direction.
+ * @details This gets the next object that is set by elm_object_focus_next_object_set()
+ * with a specific focus direction.
*
- * @param obj The Elementary object
- * @param dir Focus direction
- * @return Focus next object or @c NULL, if there is no focus next object.
+ * @since 1.8
*
- * @see elm_object_focus_next_object_set(), elm_object_focus_next()
+ * @since_tizen 2.3
*
- * @since 1.8
+ * @param[in] obj The Elementary object
+ * @param[in] dir The focus direction
+ * @return The focus next object, otherwise @c NULL if there is no focus next object
*
- * @ingroup Focus
+ * @see elm_object_focus_next_object_set()
+ * @see elm_object_focus_next()
*/
EAPI Evas_Object * elm_object_focus_next_object_get(const Evas_Object *obj, Elm_Focus_Direction dir);
/**
- * Set next object with specific focus direction.
+ * @brief Sets the next object with a specific focus direction.
*
- * When focus next object is set with specific focus direction, this object
- * will be the first candidate when finding next focusable object.
- * Focus next object can be registered with six directions that are previous,
- * next, up, down, right, and left.
+ * @since 1.8
*
- * @param obj The Elementary object
- * @param next Focus next object
- * @param dir Focus direction
+ * @since_tizen 2.3
*
- * @see elm_object_focus_next_object_get(), elm_object_focus_next()
+ * @remarks When the focus next object is set with a specific focus direction, this object
+ * is the first candidate when finding the next focusable object.
+ * The focus next object can be registered with six directions that are previous,
+ * next, up, down, right, and left.
*
- * @since 1.8
+ * @param[in] obj The Elementary object
+ * @param[in] next The focus next object
+ * @param[in] dir The focus direction
*
- * @ingroup Focus
+ * @see elm_object_focus_next_object_get()
+ * @see elm_object_focus_next()
*/
EAPI void elm_object_focus_next_object_set(Evas_Object *obj, Evas_Object *next, Elm_Focus_Direction dir);
/**
- * Get focused object in object tree.
- *
- * This function returns current focused object in one object sub-tree.
+ * @brief Gets the focused object in the object tree.
*
- * @param obj The object root of sub-tree
- * @return Current focused or @c NULL, if there is no focused object.
+ * @details This function returns the current focused object in one object sub-tree.
*
* @since 1.8
*
- * @ingroup Focus
+ * @param obj The object root of the sub-tree
+ * @return The current focused object, otherwise @c NULL if there is no focused object
*/
EAPI Evas_Object *elm_object_focused_object_get(const Evas_Object *obj);
/**
- * Make the elementary object and its children to be focusable
- * (or unfocusable).
+ * @brief Makes the elementary object and its children to be focusable
+ * (or unfocusable).
*
- * @param obj The Elementary object to operate on
- * @param focusable @c EINA_TRUE for focusable,
- * @c EINA_FALSE for unfocusable.
+ * @details This sets whether the object @a obj and its children objects
+ * are able to take focus or not. If the tree is set as unfocusable, the
+ * newest focused object which is not in this tree gets focus.
+ * This API can be helpful for an object to be deleted.
+ * When an object is deleted soon, the object and its children may not
+ * want to get focus (by focus reverting or by other focus controls).
+ * Then, just use this API before deleting.
*
- * This sets whether the object @p obj and its children objects
- * are able to take focus or not. If the tree is set as unfocusable,
- * newest focused object which is not in this tree will get focus.
- * This API can be helpful for an object to be deleted.
- * When an object will be deleted soon, it and its children may not
- * want to get focus (by focus reverting or by other focus controls).
- * Then, just use this API before deleting.
+ * @since_tizen 2.3
*
- * @see elm_object_tree_focus_allow_get()
+ * @param[in] obj The Elementary object to operate on
+ * @param[in] focusable If @c EINA_TRUE it is focusable,
+ * otherwise @c EINA_FALSE if it is unfocusable
*
- * @ingroup Focus
+ * @see elm_object_tree_focus_allow_get()
*
*/
EAPI void elm_object_tree_focus_allow_set(Evas_Object *obj, Eina_Bool focusable);
/**
- * Get whether an Elementary object and its children are focusable or not.
+ * @brief Gets whether an Elementary object and its children are focusable.
*
- * @param obj The Elementary object to get the information from
+ * @since_tizen 2.3