summaryrefslogtreecommitdiff
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
parentb79f923652a67b4c83954af4677fa595729807b9 (diff)
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 @@
1/** 1/**
2 * @defgroup Ctxpopup Ctxpopup 2 * @defgroup Ctxpopup Ctxpopup
3 * @ingroup Elementary 3 * @ingroup elm_widget_group
4 * 4 *
5 * @image html ctxpopup_inheritance_tree.png 5 * @image html ctxpopup_inheritance_tree.png
6 * @image latex ctxpopup_inheritance_tree.eps 6 * @image latex ctxpopup_inheritance_tree.eps
7 * 7 *
8 * @image html img/widget/ctxpopup/preview-00.png 8 * @brief A ctxpopup is a widget that, when shown, pops up a list of items.
9 * @image latex img/widget/ctxpopup/preview-00.eps
10 * 9 *
11 * @brief Context popup widget.
12 *
13 * A ctxpopup is a widget that, when shown, pops up a list of items.
14 * It automatically chooses an area inside its parent object's view 10 * It automatically chooses an area inside its parent object's view
15 * (set via elm_ctxpopup_add() and elm_ctxpopup_hover_parent_set()) to 11 * (set via elm_ctxpopup_add() and elm_ctxpopup_hover_parent_set()) to
16 * optimally fit into it. In the default theme, it will also point an 12 * optimally fit into it. In the default theme, it will also point an
@@ -18,19 +14,16 @@
18 * items have a label and/or an icon. It is intended for a small 14 * items have a label and/or an icon. It is intended for a small
19 * number of items (hence the use of list, not genlist). 15 * number of items (hence the use of list, not genlist).
20 * 16 *
21 * This widget inherits from the Layout one, so that all the 17 * This widget inherits from the @ref Layout one, so that all the
22 * functions acting on it also work for context popup objects (since 1.8). 18 * functions acting on it also work for context popup objects
19 * (@since 1.8).
23 * 20 *
24 * This widget emits the following signals, besides the ones sent from 21 * This widget emits the following signals, besides the ones sent from
25 * @ref Layout: 22 * @ref Layout :
26 * - @c "dismissed" - This is called when 1. the outside of ctxpopup was clicked 23 * - @c "dismissed" - this is called when the outside of ctxpopup was clicked or
27 * or 2. its parent area is changed or 3. the language is changed and also when 24 * it's parent area is changed or the language is changed. and then ctxpopup is
28 * 4. the parent object is resized due to the window rotation. Then ctxpopup is
29 * dismissed. 25 * dismissed.
30 * - @c "language,changed" - This is called when the program's language is 26 *
31 * changed.
32 * - @c "focused" - When the ctxpopup has received focus. (since 1.8)
33 * - @c "unfocused" - When the ctxpopup has lost focus. (since 1.8)
34 * Default content parts of the ctxpopup widget that you can use for are: 27 * Default content parts of the ctxpopup widget that you can use for are:
35 * @li "default" - A content of the ctxpopup 28 * @li "default" - A content of the ctxpopup
36 * 29 *
@@ -38,14 +31,13 @@
38 * @li "icon" - An icon in the title area 31 * @li "icon" - An icon in the title area
39 * 32 *
40 * Default text parts of the ctxpopup items that you can use for are: 33 * Default text parts of the ctxpopup items that you can use for are:
41 * @li "default" - A title label in the title area 34 * @li "default" - Title label in the title area
42 * 35 *
43 * Supported elm_object common APIs. 36 * Supported elm_object common APIs.
44 * @li @ref elm_object_disabled_set 37 * @li @ref elm_object_disabled_set
45 * @li @ref elm_object_disabled_get 38 * @li @ref elm_object_disabled_get
46 * 39 *
47 * Supported elm_object_item common APIs. 40 * Supported elm_object_item common APIs.
48 * @li @ref elm_object_item_del
49 * @li @ref elm_object_item_disabled_set 41 * @li @ref elm_object_item_disabled_set
50 * @li @ref elm_object_item_disabled_get 42 * @li @ref elm_object_item_disabled_get
51 * @li @ref elm_object_item_part_text_set 43 * @li @ref elm_object_item_part_text_set
@@ -54,17 +46,201 @@
54 * @li @ref elm_object_item_part_content_get 46 * @li @ref elm_object_item_part_content_get
55 * @li @ref elm_object_item_signal_emit 47 * @li @ref elm_object_item_signal_emit
56 * 48 *
57 * @ref tutorial_ctxpopup shows the usage of a good deal of the API.
58 * @{ 49 * @{
59 */ 50 */
60 51
61#include "elc_ctxpopup_common.h" 52/**
62#ifdef EFL_EO_API_SUPPORT 53 * @brief Enumeration of ctxpopup direction type
63#include "elc_ctxpopup_eo.h" 54 */
64#endif 55typedef enum
65#ifndef EFL_NOLEGACY_API_SUPPORT 56{
66#include "elc_ctxpopup_legacy.h" 57 ELM_CTXPOPUP_DIRECTION_DOWN, /**< ctxpopup show appear below clicked area */
67#endif 58 ELM_CTXPOPUP_DIRECTION_RIGHT, /**< ctxpopup show appear to the right of the clicked area */
59 ELM_CTXPOPUP_DIRECTION_LEFT, /**< ctxpopup show appear to the left of the clicked area */
60 ELM_CTXPOPUP_DIRECTION_UP, /**< ctxpopup show appear above the clicked area */
61 ELM_CTXPOPUP_DIRECTION_UNKNOWN, /**< ctxpopup does not determine it's direction yet*/
62} Elm_Ctxpopup_Direction; /**< Direction in which to show the popup */
63
64/**
65 * @brief Add a new Ctxpopup object to the parent.
66 *
67 * @since_tizen 2.3
68 *
69 * @param[in] parent Parent object
70 * @return New object or @c NULL, if it cannot be created
71 */
72EAPI Evas_Object *elm_ctxpopup_add(Evas_Object *parent);
73
74/**
75 * @brief Set the Ctxpopup's parent object
76 *
77 * @since_tizen 2.3
78 *
79 * @remarks elm_ctxpopup_add() will automatically call this function
80 * with its @c parent argument.
81 *
82 * @param[in] obj The ctxpopup object
83 * @param[in] parent The parent to use
84 *
85 * @see elm_ctxpopup_add()
86 * @see elm_hover_parent_set()
87 */
88EAPI void elm_ctxpopup_hover_parent_set(Evas_Object *obj, Evas_Object *parent);
89
90/**
91 * @brief Get the Ctxpopup's parent
92 *
93 * @since_tizen 2.3
94 *
95 * @param[in] obj The ctxpopup object
96 * @return The parent object
97 *
98 * @see elm_ctxpopup_hover_parent_set() for more information
99 */
100EAPI Evas_Object *elm_ctxpopup_hover_parent_get(const Evas_Object *obj);
101
102/**
103 * @brief Clear all items in the given ctxpopup object.
104 *
105 * @since_tizen 2.3
106 *
107 * @param[in] obj Ctxpopup object
108 */
109EAPI void elm_ctxpopup_clear(Evas_Object *obj);
110
111/**
112 * @brief Change the ctxpopup's orientation to horizontal or vertical.
113 *
114 * @since_tizen 2.3
115 *
116 * @param[in] obj Ctxpopup object
117 * @param[in] horizontal @c EINA_TRUE for horizontal mode, @c EINA_FALSE for vertical
118 */
119EAPI void elm_ctxpopup_horizontal_set(Evas_Object *obj, Eina_Bool horizontal);
120
121/**
122 * @brief Get the value of current ctxpopup object's orientation.
123 *
124 * @since_tizen 2.3
125 *
126 * @param[in] obj Ctxpopup object
127 * @return @c EINA_TRUE for horizontal mode, @c EINA_FALSE for vertical mode (or errors)
128 *
129 * @see elm_ctxpopup_horizontal_set()
130 */
131EAPI Eina_Bool elm_ctxpopup_horizontal_get(const Evas_Object *obj);
132
133/**
134 * @brief Add a new item to a ctxpopup object.
135 *
136 * @since_tizen 2.3
137 *
138 * @param[in] obj Ctxpopup object
139 * @param[in] label The Label of the new item
140 * @param[in] icon Icon to be set on new item
141 * @param[in] func Convenience function called when item selected
142 * @param[in] data Data passed to @p func
143 * @return A handle to the item added or @c NULL, on errors
144 *
145 * @warning Ctxpopup can't hold both an item list and a content at the same
146 * time. When an item is added, any previous content will be removed.
147 *
148 * @see elm_object_content_set()
149 */
150EAPI Elm_Object_Item *elm_ctxpopup_item_append(Evas_Object *obj, const char *label, Evas_Object *icon, Evas_Smart_Cb func, const void *data);
151
152/**
153 * @brief Set the direction priority of a ctxpopup.
154 *
155 * @since_tizen 2.3
156 *
157 * @param[in] obj Ctxpopup object
158 * @param[in] first 1st priority of direction
159 * @param[in] second 2nd priority of direction
160 * @param[in] third 3th priority of direction
161 * @param[in] fourth 4th priority of direction
162 *
163 * This functions gives a chance to user to set the priority of ctxpopup
164 * showing direction. This doesn't guarantee the ctxpopup will appear in the
165 * requested direction.
166 *
167 * @see Elm_Ctxpopup_Direction
168 */
169EAPI 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);
170
171/**
172 * @brief Get the direction priority of a ctxpopup.
173 *
174 * @since_tizen 2.3
175 *
176 * @param[in] obj Ctxpopup object
177 * @param[out] first 1st priority of direction to be returned
178 * @param[out] second 2nd priority of direction to be returned
179 * @param[out] third 3th priority of direction to be returned
180 * @param[out] fourth 4th priority of direction to be returned
181 *
182 * @see elm_ctxpopup_direction_priority_set() for more information.
183 */
184EAPI 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);
185
186/**
187 * @brief Get the current direction of a ctxpopup.
188 *
189 * @since_tizen 2.3
190 *
191 * @param[in] obj Ctxpopup object
192 * @return current direction of a ctxpopup
193 *
194 * @warning Once the ctxpopup showed up, the direction would be determined
195 */
196EAPI Elm_Ctxpopup_Direction elm_ctxpopup_direction_get(const Evas_Object *obj);
197
198/**
199 * @brief Dismiss a ctxpopup object
200 *
201 * @since_tizen 2.3
202 *
203 * @param[in] obj The ctxpopup object
204 * Use this function to simulate clicking outside the ctxpopup to dismiss it.
205 * In this way, the ctxpopup will be hidden and the "clicked" signal will be
206 * emitted.
207 */
208EAPI void elm_ctxpopup_dismiss(Evas_Object *obj);
209
210/**
211 * brief Get the possibility that the direction would be available
212 *
213 * @since_tizen 2.3
214 *
215 * @param[in] obj The ctxpopup object
216 * @param[in] direction A direction user wants to check
217 *
218 * Use this function to check whether input direction is proper for ctxpopup.
219 * If ctxpopup cannot be at the direction since there is no sufficient area it can be,
220 *
221 * @return @c EINA_FALSE if you cannot put it in the direction.
222 * @c EINA_TRUE if it's possible.
223 */
224EAPI Eina_Bool elm_ctxpopup_direction_available_get(Evas_Object *obj, Elm_Ctxpopup_Direction direction);
225
226/**
227 * @brief Set whether ctxpopup hide automatically or not when parent of ctxpopup is resized
228 *
229 * @since_tizen 2.3
230 *
231 * @param[in] obj Ctxpopup object
232 * @param[in] disabled @c EINA_TRUE for not hiding, @c EINA_FALSE for hiding automatically
233 *
234 * Use this function when user wants ctxpopup not to hide automatically.
235 * In default, ctxpopup is dismissed whenever mouse clicked its background area, language is changed,
236 * and its parent geometry is updated(changed).
237 * Not to hide ctxpopup automatically, disable auto hide function by calling this API,
238 * then ctxpopup won't be dismissed in those scenarios.
239 *
240 * Default value of disabled is EINA_FALSE.
241 */
242EAPI void elm_ctxpopup_auto_hide_disabled_set(Evas_Object *obj, Eina_Bool disabled);
243
68/** 244/**
69 * @} 245 * @}
70 */ 246 */
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 @@
1/** 1/**
2 * @internal
2 * @defgroup Fileselector File Selector 3 * @defgroup Fileselector File Selector
3 * @ingroup Elementary 4 * @ingroup elm_widget_group
4 * 5 *
5 * @image html fileselector_inheritance_tree.png 6 * @image html fileselector_inheritance_tree.png
6 * @image latex fileselector_inheritance_tree.eps 7 * @image latex fileselector_inheritance_tree.eps
@@ -34,47 +35,279 @@
34 * library, the second form of view will display preview thumbnails 35 * library, the second form of view will display preview thumbnails
35 * of files which it supports. 36 * of files which it supports.
36 * 37 *
37 * This widget inherits from the Layout one, so that all the 38 * This widget inherits from the @ref Layout one, so that all the
38 * functions acting on it also work for file selector objects. 39 * functions acting on it also work for file selector objects.
39 * 40 *
40 * This widget emits the following signals, besides the ones sent from 41 * This widget emits the following signals, besides the ones sent from
41 * @ref Layout: 42 * @ref Layout :
42 * - @c "activated" - the user activated a file. This can happen by
43 * double-clicking or pressing Enter key. (@p event_info is a
44 * pointer to the activated file path)
45 * - @c "selected" - the user has clicked on a file (when not in 43 * - @c "selected" - the user has clicked on a file (when not in
46 * folders-only mode) or directory (when in folders-only mode) 44 * folders-only mode) or directory (when in folders-only mode)
47 * - @c "selected,invalid" - the user has tried to access wrong path
48 * which does not exist.
49 * - @c "directory,open" - the list has been populated with new 45 * - @c "directory,open" - the list has been populated with new
50 * content (@p event_info is a pointer to the directory's 46 * content (@c event_info is a pointer to the directory's
51 * path, a @b stringshared string) 47 * path, a @b stringshared string)
52 * - @c "done" - the user has clicked on the "ok" or "cancel" 48 * - @c "done" - the user has clicked on the "ok" or "cancel"
53 * buttons (@p event_info is a pointer to the selection's 49 * buttons (@c event_info is a pointer to the selection's
54 * path, a @b stringshared string) 50 * path, a @b stringshared string)
55 * - @c "focused" - When the fileselector has received focus. (since 1.9)
56 * - @c "unfocused" - When the fileselector has lost focus. (since 1.9)
57 * 51 *
58 * For text, elm_layout_text_set() will work here on: 52 * @{
59 * @li @c "ok" - OK button label if the ok button is set. @since 1.8 53 */
60 * @li @c "cancel" - Cancel button label if the cancel button is set. @since 1.8 54
55/**
56 * Defines how a file selector widget is to layout its contents
57 * (file system entries).
58 */
59typedef enum
60{
61 ELM_FILESELECTOR_LIST = 0, /**< layout as a list */
62 ELM_FILESELECTOR_GRID, /**< layout as a grid */
63 ELM_FILESELECTOR_LAST /**< sentinel (helper) value, not used */
64} Elm_Fileselector_Mode;
65
66/**
67 * Add a new file selector widget to the given parent Elementary
68 * (container) object
61 * 69 *
62 * Here is an example on its usage: 70 * @param[in] parent The parent object
63 * @li @ref fileselector_example 71 * @return a new file selector widget handle or @c NULL, on errors
72 *
73 * This function inserts a new file selector widget on the canvas.
74 *
75 * @ingroup Fileselector
64 */ 76 */
77EAPI Evas_Object *elm_fileselector_add(Evas_Object *parent);
65 78
66/** 79/**
67 * @addtogroup Fileselector 80 * Enable/disable the file name entry box where the user can type
68 * @{ 81 * in a name for a file, in a given file selector widget
82 *
83 * @param[in] obj The file selector object
84 * @param[in] is_save @c EINA_TRUE to make the file selector a "saving
85 * dialog", @c EINA_FALSE otherwise
86 *
87 * Having the entry editable is useful on file saving dialogs on
88 * applications, where one gives a file name to save contents to,
89 * in a given directory in the system. This custom file name will
90 * be reported on the @c "done" smart callback.
91 *
92 * @see elm_fileselector_is_save_get()
93 *
94 * @ingroup Fileselector
95 */
96EAPI void elm_fileselector_is_save_set(Evas_Object *obj, Eina_Bool is_save);
97
98/**
99 * Get whether the given file selector is in "saving dialog" mode
100 *
101 * @param[in] obj The file selector object
102 * @return @c EINA_TRUE, if the file selector is in "saving dialog"
103 * mode, @c EINA_FALSE otherwise (and on errors)
104 *
105 * @see elm_fileselector_is_save_set() for more details
106 *
107 * @ingroup Fileselector
108 */
109EAPI Eina_Bool elm_fileselector_is_save_get(const Evas_Object *obj);
110
111/**
112 * Enable/disable folder-only view for a given file selector widget
113 *
114 * @param[in] obj The file selector object
115 * @param[in] only @c EINA_TRUE to make @p obj only display
116 * directories, @c EINA_FALSE to make files to be displayed in it
117 * too
118 *
119 * If enabled, the widget's view will only display folder items,
120 * naturally.
121 *
122 * @see elm_fileselector_folder_only_get()
123 *
124 * @ingroup Fileselector
125 */
126EAPI void elm_fileselector_folder_only_set(Evas_Object *obj, Eina_Bool only);
127
128/**
129 * Get whether folder-only view is set for a given file selector
130 * widget
131 *
132 * @param[in] obj The file selector object
133 * @return only @c EINA_TRUE if @p obj is only displaying
134 * directories, @c EINA_FALSE if files are being displayed in it
135 * too (and on errors)
136 *
137 * @see elm_fileselector_folder_only_get()
138 *
139 * @ingroup Fileselector
140 */
141EAPI Eina_Bool elm_fileselector_folder_only_get(const Evas_Object *obj);
142
143/**
144 * Enable/disable the "ok" and "cancel" buttons on a given file
145 * selector widget
146 *
147 * @param[in] obj The file selector object
148 * @param[in] buttons @c EINA_TRUE to show buttons, @c EINA_FALSE to hide.
149 *
150 * @note A file selector without those buttons will never emit the
151 * @c "done" smart event, and is only usable if one is just hooking
152 * to the other two events.
153 *
154 * @see elm_fileselector_buttons_ok_cancel_get()
155 *
156 * @ingroup Fileselector
157 */
158EAPI void elm_fileselector_buttons_ok_cancel_set(Evas_Object *obj, Eina_Bool buttons);
159
160/**
161 * Get whether the "ok" and "cancel" buttons on a given file
162 * selector widget are being shown.
163 *
164 * @param[in] obj The file selector object
165 * @return @c EINA_TRUE if they are being shown, @c EINA_FALSE
166 * otherwise (and on errors)
167 *
168 * @see elm_fileselector_buttons_ok_cancel_set() for more details
169 *
170 * @ingroup Fileselector
171 */
172EAPI Eina_Bool elm_fileselector_buttons_ok_cancel_get(const Evas_Object *obj);
173
174/**
175 * Enable/disable a tree view in the given file selector widget,
176 * <b>if it's in @c #ELM_FILESELECTOR_LIST mode</b>
177 *
178 * @param[in] obj The file selector object
179 * @param[in] expand @c EINA_TRUE to enable tree view, @c EINA_FALSE to
180 * disable
181 *
182 * In a tree view, arrows are created on the sides of directories,
183 * allowing them to expand in place.
184 *
185 * @note If it's in other mode, the changes made by this function
186 * will only be visible when one switches back to "list" mode.
187 *
188 * @see elm_fileselector_expandable_get()
189 *
190 * @ingroup Fileselector
191 */
192EAPI void elm_fileselector_expandable_set(Evas_Object *obj, Eina_Bool expand);
193
194/**
195 * Get whether tree view is enabled for the given file selector
196 * widget
197 *
198 * @param[in] obj The file selector object
199 * @return @c EINA_TRUE if @p obj is in tree view, @c EINA_FALSE
200 * otherwise (and or errors)
201 *
202 * @see elm_fileselector_expandable_set() for more details
203 *
204 * @ingroup Fileselector
205 */
206EAPI Eina_Bool elm_fileselector_expandable_get(const Evas_Object *obj);
207
208/**
209 * Set, programmatically, the @b directory that a given file
210 * selector widget will display contents from
211 *
212 * @param[in] obj The file selector object
213 * @param[in] path The path to display in @p obj
214 *
215 * This will change the @b directory that @p obj is displaying. It
216 * will also clear the text entry area on the @p obj object, which
217 * displays select files' names.
218 *
219 * @see elm_fileselector_path_get()
220 *
221 * @ingroup Fileselector
222 */
223EAPI void elm_fileselector_path_set(Evas_Object *obj, const char *path);
224
225/**
226 * Get the parent directory's path that a given file selector
227 * widget is displaying
228 *
229 * @param[in] obj The file selector object
230 * @return The (full) path of the directory the file selector is
231 * displaying, a @b stringshared string
232 *
233 * @see elm_fileselector_path_set()
234 *
235 * @ingroup Fileselector
236 */
237EAPI const char *elm_fileselector_path_get(const Evas_Object *obj);
238
239/**
240 * Set, programmatically, the currently selected file/directory in
241 * the given file selector widget
242 *
243 * @param[in] obj The file selector object
244 * @param[in] path The (full) path to a file or directory
245 * @return @c EINA_TRUE on success, @c EINA_FALSE on failure. The
246 * latter case occurs if the directory or file pointed to do not
247 * exist.
248 *
249 * @see elm_fileselector_selected_get()
250 *
251 * @ingroup Fileselector
252 */
253EAPI Eina_Bool elm_fileselector_selected_set(Evas_Object *obj, const char *path);
254
255/**
256 * Get the currently selected item's (full) path, in the given file
257 * selector widget
258 *
259 * @param[in] obj The file selector object
260 * @return The absolute path of the selected item, a @b
261 * stringshared string
262 *
263 * @note Custom editions on @p obj object's text entry, if made,
264 * will appear on the return string of this function, naturally.
265 *
266 * @see elm_fileselector_selected_set() for more details
267 *
268 * @ingroup Fileselector
269 */
270EAPI const char *elm_fileselector_selected_get(const Evas_Object *obj);
271
272/**
273 * Set the mode in which a given file selector widget will display
274 * (layout) file system entries in its view
275 *
276 * @param[in] obj The file selector object
277 * @param[in] mode The mode of the fileselector, being it one of #ELM_FILESELECTOR_LIST
278 * (default) or #ELM_FILESELECTOR_GRID. The first one, naturally, will display
279 * the files in a list. The latter will make the widget to display its entries
280 * in a grid form.
281 *
282 * @note By using elm_fileselector_expandable_set(), the user may
283 * trigger a tree view for that list.
284 *
285 * @note If Elementary is built with support of the Ethumb
286 * thumbnailing library, the second form of view will display
287 * preview thumbnails of files which it supports. You must have
288 * elm_need_ethumb() called in your Elementary for thumbnailing to
289 * work, though.
290 *
291 * @see elm_fileselector_expandable_set().
292 * @see elm_fileselector_mode_get().
293 *
294 * @ingroup Fileselector
295 */
296EAPI void elm_fileselector_mode_set(Evas_Object *obj, Elm_Fileselector_Mode mode);
297
298/**
299 * Get the mode in which a given file selector widget is displaying
300 * (layouting) file system entries in its view
301 *
302 * @param[in] obj The fileselector object
303 * @return The mode in which the fileselector is at
304 *
305 * @see elm_fileselector_mode_set() for more details
306 *
307 * @ingroup Fileselector
69 */ 308 */
309EAPI Elm_Fileselector_Mode elm_fileselector_mode_get(const Evas_Object *obj);
70 310
71#include "elc_fileselector_common.h"
72#ifdef EFL_EO_API_SUPPORT
73#include "elc_fileselector_eo.h"
74#endif
75#ifndef EFL_NOLEGACY_API_SUPPORT
76#include "elc_fileselector_legacy.h"
77#endif
78/** 311/**
79 * @} 312 * @}
80 */ 313 */
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 @@
1/** 1/**
2 * @internal
2 * @defgroup File_Selector_Button File Selector Button 3 * @defgroup File_Selector_Button File Selector Button
3 * @ingroup Elementary 4 * @ingroup elm_widget_group
4 * 5 *
5 * @image html fileselector_button_inheritance_tree.png 6 * @image html fileselector_button_inheritance_tree.png
6 * @image latex fileselector_button_inheritance_tree.eps 7 * @image latex fileselector_button_inheritance_tree.eps
@@ -16,7 +17,7 @@
16 * window (or inner window) <b> with a @ref Fileselector "file 17 * window (or inner window) <b> with a @ref Fileselector "file
17 * selector widget" within</b>. When a file is chosen, the (inner) 18 * selector widget" within</b>. When a file is chosen, the (inner)
18 * window is closed and the button emits a signal having the 19 * window is closed and the button emits a signal having the
19 * selected file as it's @p event_info. 20 * selected file as it's @c event_info.
20 * 21 *
21 * This widget encapsulates operations on its internal file 22 * This widget encapsulates operations on its internal file
22 * selector on its own API. There is less control over its file 23 * selector on its own API. There is less control over its file
@@ -32,17 +33,15 @@
32 * functions acting on it also work for file selector button objects. 33 * functions acting on it also work for file selector button objects.
33 * 34 *
34 * This widget emits the following signals, besides the ones sent from 35 * This widget emits the following signals, besides the ones sent from
35 * @ref Button: 36 * @ref Button :
36 * - @c "file,chosen" - the user has selected a path, whose string 37 * - @c "file,chosen" - the user has selected a path, whose string
37 * pointer comes as the @p event_info data (a stringshared 38 * pointer comes as the @c event_info data (a stringshared
38 * string) 39 * string)
39 * - @c "language,changed" - the program's language changed 40 * - @c "language,changed" - the program's language changed
40 * - @c "focused" - When the fileselector button has received focus. (since 1.8)
41 * - @c "unfocused" - When the fileselector button has lost focus. (since 1.8)
42 * 41 *
43 * Default text parts of the fileselector_button widget that you can use for 42 * Default text parts of the fileselector_button widget that you can use for
44 * are: 43 * are:
45 * @li "default" - A label of the fileselector_button 44 * @li "default" - Label of the fileselector_button
46 * 45 *
47 * Default content parts of the fileselector_button widget that you can use for 46 * Default content parts of the fileselector_button widget that you can use for
48 * are: 47 * are:
@@ -57,19 +56,257 @@
57 * @li @ref elm_object_disabled_set 56 * @li @ref elm_object_disabled_set
58 * @li @ref elm_object_disabled_get 57 * @li @ref elm_object_disabled_get
59 * 58 *
60 * Here is an example on its usage:
61 * @li @ref fileselector_button_example
62 *
63 * @see @ref File_Selector_Entry for a similar widget. 59 * @see @ref File_Selector_Entry for a similar widget.
64 * @{ 60 * @{
65 */ 61 */
66 62
67#ifdef EFL_EO_API_SUPPORT 63/**
68#include "elc_fileselector_button_eo.h" 64 * Add a new file selector button widget to the given parent
69#endif 65 * Elementary (container) object
70#ifndef EFL_NOLEGACY_API_SUPPORT 66 *
71#include "elc_fileselector_button_legacy.h" 67 * @param[in] parent The parent object
72#endif 68 * @return a new file selector button widget handle or @c NULL, on
69 * errors
70 *
71 * @ingroup File_Selector_Button
72 */
73EAPI Evas_Object *elm_fileselector_button_add(Evas_Object *parent);
74
75/**
76 * Set the title for a given file selector button widget's window
77 *
78 * @param[in] obj The file selector button widget
79 * @param[in] title The title string
80 *
81 * This will change the popup window's title, when the file selector pops
82 * out after a click on the button. Those windows have the default
83 * (unlocalized) value of @c "Select a file" as titles.
84 *
85 * @note It will only take effect if the file selector
86 * button widget is @b not under "inwin mode".
87 *
88 * @see elm_fileselector_button_window_title_get()
89 *
90 * @ingroup File_Selector_Button
91 */
92EAPI void elm_fileselector_button_window_title_set(Evas_Object *obj, const char *title);
93
94/**
95 * Get the title for a given file selector button widget's
96 * window
97 *
98 * @param[in] obj The file selector button widget
99 * @return Title of the file selector button's window
100 *
101 * @see elm_fileselector_button_window_title_set() for more details
102 *
103 * @ingroup File_Selector_Button
104 */
105EAPI const char *elm_fileselector_button_window_title_get(const Evas_Object *obj);
106
107/**
108 * Set the size of a given file selector button widget's window,
109 * holding the file selector itself.
110 *
111 * @param[in] obj The file selector button widget
112 * @param[in] width The window's width
113 * @param[in] height The window's height
114 *
115 * @note it will only take any effect if the file selector button
116 * widget is @b not under "inwin mode". The default size for the
117 * window (when applicable) is 400x400 pixels.
118 *
119 * @see elm_fileselector_button_window_size_get()
120 *
121 * @ingroup File_Selector_Button
122 */
123EAPI void elm_fileselector_button_window_size_set(Evas_Object *obj, Evas_Coord width, Evas_Coord height);
124
125/**
126 * Get the size of a given file selector button widget's window,
127 * holding the file selector itself.
128 *
129 * @param[in] obj The file selector button widget
130 * @param[out] width Pointer into which to store the width value
131 * @param[out] height Pointer into which to store the height value
132 *
133 * @note Use @c NULL pointers on the size values you're not
134 * interested in: they'll be ignored by the function.
135 *
136 * @see elm_fileselector_button_window_size_set(), for more details
137 *
138 * @ingroup File_Selector_Button
139 */
140EAPI void elm_fileselector_button_window_size_get(const Evas_Object *obj, Evas_Coord *width, Evas_Coord *height);
141
142/**
143 * Set the initial file system path for a given file selector
144 * button widget
145 *
146 * @param[in] obj The file selector button widget
147 * @param[in] path The path string
148 *
149 * It must be a <b>directory</b> path, which will have the contents
150 * displayed initially in the file selector's view, when invoked
151 * from @p obj. The default initial path is the @c "HOME"
152 * environment variable's value.
153 *
154 * @see elm_fileselector_button_path_get()
155 *
156 * @ingroup File_Selector_Button
157 */
158EAPI void elm_fileselector_button_path_set(Evas_Object *obj, const char *path);
159
160/**
161 * Get the initial file system path set for a given file selector
162 * button widget
163 *
164 * @param[in] obj The file selector button widget
165 * @return path The path string
166 *
167 * @see elm_fileselector_button_path_set() for more details
168 *
169 * @ingroup File_Selector_Button
170 */
171EAPI const char *elm_fileselector_button_path_get(const Evas_Object *obj);
172
173/**
174 * Enable/disable a tree view in the given file selector button
175 * widget's internal file selector
176 *
177 * @param[in] obj The file selector button widget
178 * @param[in] value @c EINA_TRUE to enable tree view, @c EINA_FALSE to
179 * disable
180 *
181 * This has the same effect as elm_fileselector_expandable_set(),
182 * but now applied to a file selector button's internal file
183 * selector.
184 *
185 * @note There's no way to put a file selector button's internal
186 * file selector in "grid mode", as one may do with "pure" file
187 * selectors.
188 *
189 * @see elm_fileselector_expandable_get()
190 *
191 * @ingroup File_Selector_Button
192 */
193EAPI void elm_fileselector_button_expandable_set(Evas_Object *obj, Eina_Bool value);
194
195/**
196 * Get whether tree view is enabled for the given file selector
197 * button widget's internal file selector
198 *
199 * @param[in] obj The file selector button widget
200 * @return @c EINA_TRUE if @p obj widget's internal file selector
201 * is in tree view, @c EINA_FALSE otherwise (and or errors)
202 *
203 * @see elm_fileselector_expandable_set() for more details
204 *
205 * @ingroup File_Selector_Button
206 */
207EAPI Eina_Bool elm_fileselector_button_expandable_get(const Evas_Object *obj);
208
209/**
210 * Set whether a given file selector button widget's internal file
211 * selector is to display folders only or the directory contents,
212 * as well.
213 *
214 * @param[in] obj The file selector button widget
215 * @param[in] value @c EINA_TRUE to make @p obj widget's internal file
216 * selector only display directories, @c EINA_FALSE to make files
217 * to be displayed in it too
218 *
219 * This has the same effect as elm_fileselector_folder_only_set(),
220 * but now applied to a file selector button's internal file
221 * selector.
222 *
223 * @see elm_fileselector_folder_only_get()
224 *
225 * @ingroup File_Selector_Button
226 */
227EAPI void elm_fileselector_button_folder_only_set(Evas_Object *obj, Eina_Bool value);
228
229/**
230 * Get whether a given file selector button widget's internal file
231 * selector is displaying folders only or the directory contents,
232 * as well.
233 *
234 * @param[in] obj The file selector button widget
235 * @return @c EINA_TRUE if @p obj widget's internal file
236 * selector is only displaying directories, @c EINA_FALSE if files
237 * are being displayed in it too (and on errors)
238 *
239 * @see elm_fileselector_button_folder_only_set() for more details
240 *
241 * @ingroup File_Selector_Button
242 */
243EAPI Eina_Bool elm_fileselector_button_folder_only_get(const Evas_Object *obj);
244
245/**
246 * Enable/disable the file name entry box where the user can type
247 * in a name for a file, in a given file selector button widget's
248 * internal file selector.
249 *
250 * @param[in] obj The file selector button widget
251 * @param[in] value @c EINA_TRUE to make @p obj widget's internal
252 * file selector a "saving dialog", @c EINA_FALSE otherwise
253 *
254 * This has the same effect as elm_fileselector_is_save_set(),
255 * but now applied to a file selector button's internal file
256 * selector.
257 *
258 * @see elm_fileselector_is_save_get()
259 *
260 * @ingroup File_Selector_Button
261 */
262EAPI void elm_fileselector_button_is_save_set(Evas_Object *obj, Eina_Bool value);
263
264/**
265 * Get whether the given file selector button widget's internal
266 * file selector is in "saving dialog" mode
267 *
268 * @param[in] obj The file selector button widget
269 * @return @c EINA_TRUE, if @p obj widget's internal file selector
270 * is in "saving dialog" mode, @c EINA_FALSE otherwise (and on
271 * errors)
272 *
273 * @see elm_fileselector_button_is_save_set() for more details
274 *
275 * @ingroup File_Selector_Button
276 */
277EAPI Eina_Bool elm_fileselector_button_is_save_get(const Evas_Object *obj);
278
279/**
280 * Set whether a given file selector button widget's internal file
281 * selector will raise an Elementary "inner window", instead of a
282 * dedicated Elementary window. By default, it won't.
283 *
284 * @param[in] obj The file selector button widget
285 * @param[in] value @c EINA_TRUE to make it use an inner window, @c
286 * EINA_TRUE to make it use a dedicated window
287 *
288 * @see elm_win_inwin_add() for more information on inner windows
289 * @see elm_fileselector_button_inwin_mode_get()
290 *
291 * @ingroup File_Selector_Button
292 */
293EAPI void elm_fileselector_button_inwin_mode_set(Evas_Object *obj, Eina_Bool value);
294
295/**
296 * Get whether a given file selector button widget's internal file
297 * selector will raise an Elementary "inner window", instead of a
298 * dedicated Elementary window.
299 *
300 * @param[in] obj The file selector button widget
301 * @return @c EINA_TRUE if will use an inner window, @c EINA_TRUE
302 * if it will use a dedicated window
303 *
304 * @see elm_fileselector_button_inwin_mode_set() for more details
305 *
306 * @ingroup File_Selector_Button
307 */
308EAPI Eina_Bool elm_fileselector_button_inwin_mode_get(const Evas_Object *obj);
309
73/** 310/**
74 * @} 311 * @}
75 */ 312 */
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 @@
1/** 1/**
2 * @internal
2 * @defgroup File_Selector_Entry File Selector Entry 3 * @defgroup File_Selector_Entry File Selector Entry
3 * @ingroup Elementary 4 * @ingroup elm_widget_group
4 * 5 *
5 * @image html fileselector_entry_inheritance_tree.png 6 * @image html fileselector_entry_inheritance_tree.png
6 * @image latex fileselector_entry_inheritance_tree.eps 7 * @image latex fileselector_entry_inheritance_tree.eps
@@ -21,7 +22,8 @@
21 * a smart event and as the new text on the entry. 22 * a smart event and as the new text on the entry.
22 * 23 *
23 * This widget inherits from the @ref Layout one, so that all the 24 * This widget inherits from the @ref Layout one, so that all the
24 * functions acting on it also work for file selector entry objects (since 1.8). 25 * functions acting on it also work for file selector entry objects
26 * (@since 1.8).
25 * 27 *
26 * This widget encapsulates operations on its internal file 28 * This widget encapsulates operations on its internal file
27 * selector on its own API. There is less control over its file 29 * selector on its own API. There is less control over its file
@@ -36,8 +38,8 @@
36 * couple seconds 38 * couple seconds
37 * - @c "clicked" - The entry has been clicked 39 * - @c "clicked" - The entry has been clicked
38 * - @c "clicked,double" - The entry has been double clicked 40 * - @c "clicked,double" - The entry has been double clicked
39 * - @c "focused" - The entry has received focus (since 1.8) 41 * - @c "focused" - The entry has received focus
40 * - @c "unfocused" - The entry has lost focus (since 1.8) 42 * - @c "unfocused" - The entry has lost focus
41 * - @c "selection,paste" - A paste action has occurred on the 43 * - @c "selection,paste" - A paste action has occurred on the
42 * entry 44 * entry
43 * - @c "selection,copy" - A copy action has occurred on the entry 45 * - @c "selection,copy" - A copy action has occurred on the entry
@@ -46,16 +48,16 @@
46 * after being pressed. 48 * after being pressed.
47 * - @c "file,chosen" - The user has selected a path via the file 49 * - @c "file,chosen" - The user has selected a path via the file
48 * selector entry's internal file selector, whose string pointer 50 * selector entry's internal file selector, whose string pointer
49 * comes as the @p event_info data (a stringshared string) 51 * comes as the @c event_info data (a stringshared string)
50 * - @c "language,changed" - the program's language changed 52 * - @c "language,changed" - the program's language changed
51 * 53 *
52 * Default text parts of the fileselector_button widget that you can use for 54 * Default text parts of the fileselector_button widget that you can use for
53 * are: 55 * are:
54 * @li "default" - A label of the fileselector_button 56 * @li "default" - Label of the fileselector_button
55 * 57 *
56 * Default content parts of the fileselector_entry widget that you can use for 58 * Default content parts of the fileselector_entry widget that you can use for
57 * are: 59 * are:
58 * @li "button icon" - A button icon of the fileselector_entry 60 * @li "button icon" - Button icon of the fileselector_entry
59 * 61 *
60 * Supported elm_object common APIs. 62 * Supported elm_object common APIs.
61 * @li @ref elm_object_part_text_set 63 * @li @ref elm_object_part_text_set
@@ -66,19 +68,288 @@
66 * @li @ref elm_object_disabled_set 68 * @li @ref elm_object_disabled_set
67 * @li @ref elm_object_disabled_get 69 * @li @ref elm_object_disabled_get
68 * 70 *
69 * Here is an example on its usage:
70 * @li @ref fileselector_entry_example
71 *
72 * @see @ref File_Selector_Button for a similar widget. 71 * @see @ref File_Selector_Button for a similar widget.
73 * @{ 72 * @{
74 */ 73 */
75 74
76#ifdef EFL_EO_API_SUPPORT 75/**
77#include "elc_fileselector_entry_eo.h" 76 * Add a new file selector entry widget to the given parent
78#endif 77 * Elementary (container) object
79#ifndef EFL_NOLEGACY_API_SUPPORT 78 *
80#include "elc_fileselector_entry_legacy.h" 79 * @param[in] parent The parent object
81#endif 80 * @return a new file selector entry widget handle or @c NULL, on
81 * errors
82 *
83 * @ingroup File_Selector_Entry
84 */
85EAPI Evas_Object *elm_fileselector_entry_add(Evas_Object *parent);
86
87/**
88 * @brief Set the title for a given file selector entry widget's window
89 *
90 * @param[in] obj The fileselector entry object
91 * @param[in] title The title string
92 *
93 * This will change the window's title, when the file selector pops
94 * out after a click on the entry's button. Those windows have the
95 * default (unlocalized) value of @c "Select a file" as titles.
96 *
97 * @note It will only take any effect if the file selector
98 * entry widget is @b not under "inwin mode".
99 *
100 * @see elm_fileselector_entry_window_title_get()
101 *
102 * @ingroup File_Selector_Entry
103 */
104EAPI void elm_fileselector_entry_window_title_set(Evas_Object *obj, const char *title);
105
106/**
107 * Get the title set for a given file selector entry widget's
108 * window
109 *
110 * @param[in] obj The file selector entry widget
111 * @return Title of the file selector entry's window
112 *
113 * @see elm_fileselector_entry_window_title_get() for more details
114 *
115 * @ingroup File_Selector_Entry
116 */
117EAPI const char *elm_fileselector_entry_window_title_get(const Evas_Object *obj);
118
119/**
120 * Set the size of a given file selector entry widget's window,
121 * holding the file selector itself.
122 *
123 * @param[in] obj The file selector entry widget
124 * @param[in] width The window's width
125 * @param[in] height The window's height
126 *
127 * @note it will only take any effect if the file selector entry
128 * widget is @b not under "inwin mode". The default size for the
129 * window (when applicable) is 400x400 pixels.
130 *
131 * @see elm_fileselector_entry_window_size_get()
132 *
133 * @ingroup File_Selector_Entry
134 */
135EAPI void elm_fileselector_entry_window_size_set(Evas_Object *obj, Evas_Coord width, Evas_Coord height);
136
137/**
138 * Get the size of a given file selector entry widget's window,
139 * holding the file selector itself.
140 *
141 * @param[in] obj The file selector entry widget
142 * @param[out] width Pointer into which to store the width value
143 * @param[out] height Pointer into which to store the height value
144 *
145 * @note Use @c NULL pointers on the size values you're not
146 * interested in: they'll be ignored by the function.
147 *
148 * @see elm_fileselector_entry_window_size_set(), for more details
149 *
150 * @ingroup File_Selector_Entry
151 */
152EAPI void elm_fileselector_entry_window_size_get(const Evas_Object *obj, Evas_Coord *width, Evas_Coord *height);
153
154/**
155 * Set the initial file system path and the entry's path string for
156 * a given file selector entry widget
157 *
158 * @param[in] obj The file selector entry widget
159 * @param[in] path The path string
160 *
161 * It must be a <b>directory</b> path, which will have the contents
162 * displayed initially in the file selector's view, when invoked
163 * from @p obj. The default initial path is the @c "HOME"
164 * environment variable's value.
165 *
166 * @see elm_fileselector_entry_path_get()
167 *
168 * @ingroup File_Selector_Entry
169 */
170EAPI void elm_fileselector_entry_path_set(Evas_Object *obj, const char *path);
171
172/**
173 * Get the entry's path string for a given file selector entry
174 * widget
175 *
176 * @param[in] obj The file selector entry widget
177 * @return path The path string
178 *
179 * @see elm_fileselector_entry_path_set() for more details
180 *
181 * @ingroup File_Selector_Entry
182 */
183EAPI const char *elm_fileselector_entry_path_get(const Evas_Object *obj);
184
185/**
186 * Enable/disable a tree view in the given file selector entry
187 * widget's internal file selector
188 *
189 * @param[in] obj The file selector entry widget
190 * @param[in] value @c EINA_TRUE to enable tree view, @c EINA_FALSE to disable
191 *
192 * This has the same effect as elm_fileselector_expandable_set(),
193 * but now applied to a file selector entry's internal file
194 * selector.
195 *
196 * @note There's no way to put a file selector entry's internal
197 * file selector in "grid mode", as one may do with "pure" file
198 * selectors.
199 *
200 * @see elm_fileselector_expandable_get()
201 *
202 * @ingroup File_Selector_Entry
203 */
204EAPI void elm_fileselector_entry_expandable_set(Evas_Object *obj, Eina_Bool value);
205
206/**
207 * Get whether tree view is enabled for the given file selector
208 * entry widget's internal file selector
209 *
210 * @param[in] obj The file selector entry widget
211 * @return @c EINA_TRUE if @p obj widget's internal file selector
212 * is in tree view, @c EINA_FALSE otherwise (and or errors)
213 *
214 * @see elm_fileselector_expandable_set() for more details
215 *
216 * @ingroup File_Selector_Entry
217 */
218EAPI Eina_Bool elm_fileselector_entry_expandable_get(const Evas_Object *obj);
219
220/**
221 * Set whether a given file selector entry widget's internal file
222 * selector is to display folders only or the directory contents,
223 * as well.
224 *
225 * @param[in] obj The file selector entry widget
226 * @param[in] value @c EINA_TRUE to make @p obj widget's internal file
227 * selector only display directories, @c EINA_FALSE to make files
228 * to be displayed in it too
229 *
230 * This has the same effect as elm_fileselector_folder_only_set(),
231 * but now applied to a file selector entry's internal file
232 * selector.
233 *
234 * @see elm_fileselector_folder_only_get()
235 *
236 * @ingroup File_Selector_Entry
237 */
238EAPI void elm_fileselector_entry_folder_only_set(Evas_Object *obj, Eina_Bool value);
239
240/**
241 * Get whether a given file selector entry widget's internal file
242 * selector is displaying folders only or the directory contents,
243 * as well.
244 *
245 * @param[in] obj The file selector entry widget
246 * @return @c EINA_TRUE if @p obj widget's internal file
247 * selector is only displaying directories, @c EINA_FALSE if files
248 * are being displayed in it too (and on errors)
249 *
250 * @see elm_fileselector_entry_folder_only_set() for more details
251 *
252 * @ingroup File_Selector_Entry
253 */
254EAPI Eina_Bool elm_fileselector_entry_folder_only_get(const Evas_Object *obj);
255
256/**
257 * Enable/disable the file name entry box where the user can type
258 * in a name for a file, in a given file selector entry widget's
259 * internal file selector.
260 *
261 * @param[in] obj The file selector entry widget
262 * @param[in] value @c EINA_TRUE to make @p obj widget's internal
263 * file selector a "saving dialog", @c EINA_FALSE otherwise
264 *
265 * This has the same effect as elm_fileselector_is_save_set(),
266 * but now applied to a file selector entry's internal file
267 * selector.
268 *
269 * @see elm_fileselector_is_save_get()
270 *
271 * @ingroup File_Selector_Entry
272 */
273EAPI void elm_fileselector_entry_is_save_set(Evas_Object *obj, Eina_Bool value);
274
275/**
276 * Get whether the given file selector entry widget's internal
277 * file selector is in "saving dialog" mode
278 *
279 * @param[in] obj The file selector entry widget
280 * @return @c EINA_TRUE, if @p obj widget's internal file selector
281 * is in "saving dialog" mode, @c EINA_FALSE otherwise (and on
282 * errors)
283 *
284 * @see elm_fileselector_entry_is_save_set() for more details
285 *
286 * @ingroup File_Selector_Entry
287 */
288EAPI Eina_Bool elm_fileselector_entry_is_save_get(const Evas_Object *obj);
289
290/**
291 * Set whether a given file selector entry widget's internal file
292 * selector will raise an Elementary "inner window", instead of a
293 * dedicated Elementary window. By default, it won't.
294 *
295 * @param[in] obj The file selector entry widget
296 * @param[in] value @c EINA_TRUE to make it use an inner window, @c
297 * EINA_TRUE to make it use a dedicated window
298 *
299 * @see elm_win_inwin_add() for more information on inner windows
300 * @see elm_fileselector_entry_inwin_mode_get()
301 *
302 * @ingroup File_Selector_Entry
303 */
304EAPI void elm_fileselector_entry_inwin_mode_set(Evas_Object *obj, Eina_Bool value);
305
306/**
307 * Get whether a given file selector entry widget's internal file
308 * selector will raise an Elementary "inner window", instead of a
309 * dedicated Elementary window.
310 *
311 * @param[in] obj The file selector entry widget
312 * @return @c EINA_TRUE if will use an inner window, @c EINA_TRUE
313 * if it will use a dedicated window
314 *
315 * @see elm_fileselector_entry_inwin_mode_set() for more details
316 *
317 * @ingroup File_Selector_Entry
318 */
319EAPI Eina_Bool elm_fileselector_entry_inwin_mode_get(const Evas_Object *obj);
320
321/**
322 * Set the initial file system path for a given file selector entry
323 * widget
324 *
325 * @param[in] obj The file selector entry widget
326 * @param[in] path The path string
327 *
328 * It must be a <b>directory</b> path, which will have the contents
329 * displayed initially in the file selector's view, when invoked
330 * from @p obj. The default initial path is the @c "HOME"
331 * environment variable's value.
332 *
333 * @see elm_fileselector_entry_path_get()
334 *
335 * @ingroup File_Selector_Entry
336 */
337EAPI void elm_fileselector_entry_selected_set(Evas_Object *obj, const char *path);
338
339/**
340 * Get the parent directory's path to the latest file selection on
341 * a given filer selector entry widget
342 *
343 * @param[in] obj The file selector object
344 * @return The (full) path of the directory of the last selection
345 * on @p obj widget, a @b stringshared string
346 *
347 * @see elm_fileselector_entry_path_set()
348 *
349 * @ingroup File_Selector_Entry
350 */
351EAPI const char *elm_fileselector_entry_selected_get(const Evas_Object *obj);
352
82/** 353/**
83 * @} 354 * @}
84 */ 355 */
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 @@
1/** 1/**
2 * @internal
2 * @defgroup Hoversel Hoversel 3 * @defgroup Hoversel Hoversel
3 * @ingroup Elementary 4 * @ingroup elm_widget_group
4 * 5 *
5 * @image html hoversel_inheritance_tree.png 6 * @image html hoversel_inheritance_tree.png
6 * @image latex hoversel_inheritance_tree.eps 7 * @image latex hoversel_inheritance_tree.eps
@@ -19,22 +20,18 @@
19 * functions acting on it also work for hoversel objects. 20 * functions acting on it also work for hoversel objects.
20 * 21 *
21 * This widget emits the following signals, besides the ones sent from 22 * This widget emits the following signals, besides the ones sent from
22 * @ref Button: 23 * @ref Button :
23 * - @c "clicked" - the user clicked the hoversel button and popped up 24 * - @c "clicked" - the user clicked the hoversel button and popped up
24 * the sel 25 * the sel
25 * - @c "selected" - an item in the hoversel list is selected. event_info 26 * - @c "selected" - an item in the hoversel list is selected. event_info
26 * is the selected item 27 * is the item
27 * - @c "dismissed" - the hover is dismissed 28 * - @c "dismissed" - the hover is dismissed
28 * - @c "expanded" - This is called on clicking hoversel and elm_hoversel_hover_begin().
29 * - @c "language,changed" - the program's language changed (since 1.9)
30 * - @c "item,focused" - When the hoversel item has received focus. (since 1.10)
31 * - @c "item,unfocused" - When the hoversel item has lost focus. (since 1.10)
32 * 29 *
33 * Default content parts of the hoversel widget that you can use for are: 30 * Default content parts of the hoversel widget that you can use for are:
34 * @li "icon" - An icon of the hoversel 31 * @li "icon" - An icon of the hoversel
35 * 32 *
36 * Default text parts of the hoversel widget that you can use for are: 33 * Default text parts of the hoversel widget that you can use for are:
37 * @li "default" - A label of the hoversel 34 * @li "default" - Label of the hoversel
38 * 35 *
39 * Supported elm_object common APIs. 36 * Supported elm_object common APIs.
40 * @li @ref elm_object_disabled_set 37 * @li @ref elm_object_disabled_set
@@ -45,22 +42,192 @@
45 * @li @ref elm_object_part_content_unset 42 * @li @ref elm_object_part_content_unset
46 * 43 *
47 * Supported elm_object_item common APIs. 44 * Supported elm_object_item common APIs.
48 * @li elm_object_item_del
49 * @li elm_object_item_part_text_get 45 * @li elm_object_item_part_text_get
50 * @li elm_object_item_signal_emit - this works only when the item is created.
51 * @li elm_object_item_style_set - this works only when the item is created.
52 * @li elm_object_item_style_get - this works only when the item is created.
53 * 46 *
54 * See @ref tutorial_hoversel for an example.
55 * @{ 47 * @{
56 */ 48 */
57 49
58#ifdef EFL_EO_API_SUPPORT 50/**
59#include "elc_hoversel_eo.h" 51 * @brief Add a new Hoversel object
60#endif 52 *
61#ifndef EFL_NOLEGACY_API_SUPPORT 53 * @param[in] parent The parent object
62#include "elc_hoversel_legacy.h" 54 * @return The new object or NULL if it cannot be created
63#endif 55 *
56 * @ingroup Hoversel
57 */
58EAPI Evas_Object *elm_hoversel_add(Evas_Object *parent);
59
60/**
61 * @brief This sets the hoversel to expand horizontally.
62 *
63 * @param[in] obj The hoversel object
64 * @param[in] horizontal If true, the hover will expand horizontally to the
65 * right.
66 *
67 * @note The initial button will display horizontally regardless of this
68 * setting.
69 *
70 * @ingroup Hoversel
71 */
72EAPI void elm_hoversel_horizontal_set(Evas_Object *obj, Eina_Bool horizontal);
73
74/**
75 * @brief This returns whether the hoversel is set to expand horizontally.
76 *
77 * @param[in] obj The hoversel object
78 * @return If true, the hover will expand horizontally to the right.
79 *
80 * @see elm_hoversel_horizontal_set()
81 *
82 * @ingroup Hoversel
83 */
84EAPI Eina_Bool elm_hoversel_horizontal_get(const Evas_Object *obj);
85
86/**
87 * @brief Set the Hover parent
88 *
89 * @param[in] obj The hoversel object
90 * @param[in] parent The parent to use
91 *
92 * Sets the hover parent object, the area that will be darkened when the
93 * hoversel is clicked. Should probably be the window that the hoversel is
94 * in. See @ref Hover objects for more information.
95 *
96 * @ingroup Hoversel
97 */
98EAPI void elm_hoversel_hover_parent_set(Evas_Object *obj, Evas_Object *parent);
99
100/**
101 * @brief Get the Hover parent
102 *
103 * @param[in] obj The hoversel object
104 * @return The used parent
105 *
106 * Gets the hover parent object.
107 *
108 * @see elm_hoversel_hover_parent_set()
109 *
110 * @ingroup Hoversel
111 */
112EAPI Evas_Object *elm_hoversel_hover_parent_get(const Evas_Object *obj);
113
114/**
115 * @brief This triggers the hoversel popup from code, the same as if the user
116 * had clicked the button.
117 *
118 * @param[in] obj The hoversel object
119 *
120 * @ingroup Hoversel
121 */
122EAPI void elm_hoversel_hover_begin(Evas_Object *obj);
123
124/**
125 * @brief This dismisses the hoversel popup as if the user had clicked
126 * outside the hover.
127 *
128 * @param[in] obj The hoversel object
129 *
130 * @ingroup Hoversel
131 */
132EAPI void elm_hoversel_hover_end(Evas_Object *obj);
133
134/**
135 * @brief Returns whether the hoversel is expanded.
136 *
137 * @param[in] obj The hoversel object
138 * @return This will return EINA_TRUE if the hoversel is expanded or
139 * EINA_FALSE if it is not expanded.
140 *
141 * @ingroup Hoversel
142 */
143EAPI Eina_Bool elm_hoversel_expanded_get(const Evas_Object *obj);
144
145/**
146 * @brief This will remove all the children items from the hoversel.
147 *
148 * @param[in] obj The hoversel object
149 *
150 * @warning Should @b not be called while the hoversel is active; use
151 * elm_hoversel_expanded_get() to check first.
152 *
153 * @see elm_object_item_del()
154 *
155 * @ingroup Hoversel
156 */
157EAPI void elm_hoversel_clear(Evas_Object *obj);
158
159/**
160 * @brief Get the list of items within the given hoversel.
161 *
162 * @param[in] obj The hoversel object
163 * @return Returns a list of Elm_Object_Item*
164 *
165 * @see elm_hoversel_item_add()
166 *
167 * @ingroup Hoversel
168 */
169EAPI const Eina_List *elm_hoversel_items_get(const Evas_Object *obj);
170
171/**
172 * @brief Add an item to the hoversel button
173 *
174 * @param[in] obj The hoversel object
175 * @param[in] label The text label to use for the item (NULL if not desired)
176 * @param[in] icon_file An image file path on disk to use for the icon or standard
177 * icon name (NULL if not desired)
178 * @param[in] icon_type The icon type if relevant
179 * @param[in] func Convenience function to call when this item is selected
180 * @param[in] data Data to pass to item-related functions
181 * @return A handle to the item added.
182 *
183 * This adds an item to the hoversel to show when it is clicked. Note: if you
184 * need to use an icon from an edje file then use
185 * elm_hoversel_item_icon_set() right after this function, and set
186 * icon_file to NULL here.
187 *
188 * For more information on what @p icon_file and @p icon_type are, see the
189 * @ref Icon "icon documentation".
190 *
191 * @ingroup Hoversel
192 */
193EAPI 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);
194
195/**
196 * @brief This sets the icon for the given hoversel item.
197 *
198 * @param[in] it The item to set the icon
199 * @param[in] icon_file An image file path on disk to use for the icon or standard
200 * icon name
201 * @param[in] icon_group The edje group to use if @p icon_file is an edje file. Set this
202 * to NULL if the icon is not an edje file
203 * @param[in] icon_type The icon type
204 *
205 * The icon can be loaded from the standard set, from an image file, or from
206 * an edje file.
207 *
208 * @see elm_hoversel_item_add()
209 *
210 * @ingroup Hoversel
211 */
212EAPI void elm_hoversel_item_icon_set(Elm_Object_Item *it, const char *icon_file, const char *icon_group, Elm_Icon_Type icon_type);
213
214/**
215 * @brief Get the icon object of the hoversel item
216 *
217 * @param[in] it The item to get the icon from
218 * @param[out] icon_file The image file path on disk used for the icon or standard
219 * icon name
220 * @param[out] icon_group The edje group used if @p icon_file is an edje file. NULL
221 * if the icon is not an edje file
222 * @param[out] icon_type The icon type
223 *
224 * @see elm_hoversel_item_icon_set()
225 * @see elm_hoversel_item_add()
226 *
227 * @ingroup Hoversel
228 */
229EAPI void elm_hoversel_item_icon_get(const Elm_Object_Item *it, const char **icon_file, const char **icon_group, Elm_Icon_Type *icon_type);
230
64/** 231/**
65 * @} 232 * @}
66 */ 233 */
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 @@
1/** 1/**
2 * @defgroup Multibuttonentry Multibuttonentry 2 * @defgroup Multibuttonentry Multibuttonentry
3 * @ingroup Elementary 3 * @ingroup elm_widget_group
4 * 4 *
5 * @image html multibuttonentry_inheritance_tree.png 5 * @image html multibuttonentry_inheritance_tree.png
6 * @image latex multibuttonentry_inheritance_tree.eps 6 * @image latex multibuttonentry_inheritance_tree.eps
7 * 7 *
8 * A multi-button entry is a widget letting an user enter text and 8 * @brief A multi-button entry is a widget letting an user enter text and
9 * each chunk of text managed as a set of buttons. Each text button is 9 * each chunk of text managed as a set of buttons.
10 * inserted by pressing the "return" key. If there is no space in the 10 *
11 * current row, a new button is added to the next row. When a text 11 * Each text button is inserted by pressing the "return" key. If there is no
12 * space in the current row, a new button is added to the next row. When a text
12 * button is pressed, it will become focused. Backspace removes the 13 * button is pressed, it will become focused. Backspace removes the
13 * focus. When the multi-button entry loses focus, items longer than 14 * focus. When the multi-button entry loses focus, items longer than
14 * one line are shrunk to one line. 15 * one line are shrunk to one line.
@@ -18,10 +19,11 @@
18 * that can be clicked for further actions. 19 * that can be clicked for further actions.
19 * 20 *
20 * This widget inherits from the @ref Layout one, so that all the 21 * This widget inherits from the @ref Layout one, so that all the
21 * functions acting on it also work for multi-button entry objects (since 1.8). 22 * functions acting on it also work for multi-button entry objects
23 * (@since 1.8).
22 * 24 *
23 * This widget emits the following signals, besides the ones sent from 25 * This widget emits the following signals, besides the ones sent from
24 * @ref Layout: 26 * @ref Layout :
25 * - @c "item,selected" - this is called when an item is selected by 27 * - @c "item,selected" - this is called when an item is selected by
26 * api, user interaction, and etc. this is also called when a 28 * api, user interaction, and etc. this is also called when a
27 * user press back space while cursor is on the first field of 29 * user press back space while cursor is on the first field of
@@ -37,6 +39,7 @@
37 * - @c "contracted" - when multi-button entry is contracted. 39 * - @c "contracted" - when multi-button entry is contracted.
38 * - @c "expand,state,changed" - when shrink mode state of 40 * - @c "expand,state,changed" - when shrink mode state of
39 * multi-button entry is changed. 41 * multi-button entry is changed.
42 * - @c "longpressed" - when multi-button entry is pressed for a long time.
40 * 43 *
41 * Default text parts of the multi-button entry widget that you can use are: 44 * Default text parts of the multi-button entry widget that you can use are:
42 * @li "default" - A label of the multi-button entry 45 * @li "default" - A label of the multi-button entry
@@ -45,24 +48,315 @@
45 * @li "default" - A label of the multi-button entry item 48 * @li "default" - A label of the multi-button entry item
46 * 49 *
47 * Supported elm_object_item common APIs. 50 * Supported elm_object_item common APIs.
48 * @li @ref elm_object_item_del
49 * @li @ref elm_object_item_part_text_set 51 * @li @ref elm_object_item_part_text_set
50 * @li @ref elm_object_item_part_text_get 52 * @li @ref elm_object_item_part_text_get
53 *
54 * @{
51 */ 55 */
52 56
57/**
58 * @brief Callback to be invoked when an item is added to the multibuttonentry.
59 *
60 * @since_tizen 2.3
61 *
62 * @param[in] obj The parent object
63 * @param[in] item_label The label corresponding to the added item.
64 * @param[in] item_data data specific to this item.
65 * @param[in] data data specific to the multibuttonentry.
66 *
67 * @return EINA_TRUE
68 * EINA_FALSE otherwise.
69 */
70typedef Eina_Bool (*Elm_Multibuttonentry_Item_Filter_Cb)(Evas_Object *obj, const char *item_label, const void *item_data, const void *data);
53 71
54/** 72/**
55 * @addtogroup Multibuttonentry 73 * @brief Add a new multibuttonentry to the parent
56 * @{ 74 *
75 * @since_tizen 2.3
76 *
77 * @param[in] parent The parent object
78 * @return The new object or NULL if it cannot be created
79 */
80EAPI Evas_Object *elm_multibuttonentry_add(Evas_Object *parent);
81
82
83/**
84 * @brief Get the entry of the multibuttonentry object
85 *
86 * @since_tizen 2.3
87 *
88 * @param[in] obj The multibuttonentry object
89 * @return The entry object, or NULL if none
90 */
91EAPI Evas_Object *elm_multibuttonentry_entry_get(const Evas_Object *obj);
92
93/**
94 * @brief Get the value of expanded state.
95 *
96 e @since_tizen 2.3
97 *
98 * @remarks In expanded state, the complete entry will be displayed.
99 * Otherwise, only single line of the entry will be displayed.
100 *
101 * @param[in] obj The multibuttonentry object
102 * @return EINA_TRUE if the widget is in expanded state. EINA_FALSE if not.
103 */
104EAPI Eina_Bool elm_multibuttonentry_expanded_get(const Evas_Object *obj);
105
106/**
107 * @brief Set/Unset the multibuttonentry to expanded state.
108 *
109 * @since_tizen 2.3
110 *
111 * @remarks In expanded state, the complete entry will be displayed.
112 * Otherwise, only single line of the entry will be displayed.
113 *
114 * @param[in] obj The multibuttonentry object
115 * @param[in] expanded the value of expanded state.
116 * Set this to EINA_TRUE for expanded state.
117 * Set this to EINA_FALSE for single line state.
118 */
119EAPI void elm_multibuttonentry_expanded_set(Evas_Object *obj, Eina_Bool expanded);
120
121/**
122 * @brief Prepend a new item to the multibuttonentry
123 *
124 * @since_tizen 2.3
125 *
126 * @param[in] obj The multibuttonentry object
127 * @param[in] label The label of new item
128 * @param[in] func The callback function to be invoked when this item is pressed.
129 * @param[in] data The pointer to the data to be attached
130 * @return A handle to the item added or NULL if not possible
131 *
132 * @see Use elm_object_item_del() to delete the item.
133 */
134EAPI Elm_Object_Item *elm_multibuttonentry_item_prepend(Evas_Object *obj, const char *label, Evas_Smart_Cb func, const void *data);
135
136/**
137 * @brief Append a new item to the multibuttonentry
138 *
139 * @since_tizen 2.3
140 *
141 * @param[in] obj The multibuttonentry object
142 * @param[in] label The label of new item
143 * @param[in] func The callback function to be invoked when this item is pressed.
144 * @param[in] data The pointer to the data to be attached
145 * @return A handle to the item added or NULL if not possible
146 *
147 * @see Use elm_object_item_del() to delete the item.
148 */
149EAPI Elm_Object_Item *elm_multibuttonentry_item_append(Evas_Object *obj, const char *label, Evas_Smart_Cb func, const void *data);
150
151/**
152 * @brief Add a new item to the multibuttonentry before the indicated object
153 *
154 * @since_tizen 2.3
155 *
156 * @param[in] obj The multibuttonentry object
157 * @param[in] before The item before which to add it
158 * @param[in] label The label of new item
159 * @param[in] func The callback function to be invoked when this item is pressed.
160 * @param[in] data The pointer to the data to be attached
161 * @return A handle to the item added or NULL if not possible
162 *
163 * @see Use elm_object_item_del() to delete the item.
164 */
165EAPI 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);
166
167/**
168 * @brief Add a new item to the multibuttonentry after the indicated object
169 *
170 * @since_tizen 2.3
171 *
172 * @param[in] obj The multibuttonentry object
173 * @param[in] after The item after which to add it
174 * @param[in] label The label of new item
175 * @param[in] func The callback function to be invoked when this item is pressed.
176 * @param[in] data The pointer to the data to be attached
177 * @return A handle to the item added or NULL if not possible
178 *
179 * @see Use elm_object_item_del() to delete the item.
180 */
181EAPI 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);
182
183/**
184 * @brief Get a list of items in the multibuttonentry
185 *
186 * @since_tizen 2.3
187 *
188 * @param[in] obj The multibuttonentry object
189 * @return The list of items, or NULL if none
190 */
191EAPI const Eina_List *elm_multibuttonentry_items_get(const Evas_Object *obj);
192
193/**
194 * @internal
195 * @remarks Tizen only feature
196 *
197 * @brief Gets the base object of the item.
198 *
199 * @remarks Base object is the @c Evas_Object that represents that item.
200 *
201 * @param[in] it The multibuttonentry item
202 * @return The base object associated with @p item
203 */
204EAPI Evas_Object *elm_multibuttonentry_item_object_get(const Elm_Object_Item *it);
205
206/**
207 * @brief Get the first item in the multibuttonentry
208 *
209 * @since_tizen 2.3
210 *
211 * @param[in] obj The multibuttonentry object
212 * @return The first item, or NULL if none
213 */
214EAPI Elm_Object_Item *elm_multibuttonentry_first_item_get(const Evas_Object *obj);
215
216/**
217 * @brief Get the last item in the multibuttonentry
218 *
219 * @since_tizen 2.3
220 *
221 * @param[in] obj The multibuttonentry object
222 * @return The last item, or NULL if none
223 */
224EAPI Elm_Object_Item *elm_multibuttonentry_last_item_get(const Evas_Object *obj);
225
226/**
227 * @brief Get the selected item in the multibuttonentry
228 *
229 * @since_tizen 2.3
230 *
231 * @param[in] obj The multibuttonentry object
232 * @return The selected item, or NULL if none
233 */
234EAPI Elm_Object_Item *elm_multibuttonentry_selected_item_get(const Evas_Object *obj);
235
236/**
237 * @brief Set the selected state of an item
238 *
239 * @since_tizen 2.3
240 *
241 * @param[in] it The item
242 * @param[in] selected if it's EINA_TRUE, select the item otherwise, unselect the item
243 */
244EAPI void elm_multibuttonentry_item_selected_set(Elm_Object_Item *it, Eina_Bool selected);
245
246
247/**
248 * @brief Get the selected state of an item
249 *
250 * @since_tizen 2.3
251 *
252 * @param[in] it The item
253 * @return EINA_TRUE if the item is selected, EINA_FALSE otherwise.
254 */
255EAPI Eina_Bool elm_multibuttonentry_item_selected_get(const Elm_Object_Item *it);
256
257/**
258 * @brief Remove all items in the multibuttonentry.
259 *
260 * @since_tizen 2.3
261 *
262 * @param[in] obj The multibuttonentry object
263 */
264EAPI void elm_multibuttonentry_clear(Evas_Object *obj);
265
266/**
267 * @brief Get the previous item in the multibuttonentry
268 *
269 * @since_tizen 2.3
270 *
271 * @param[in] it The item
272 * @return The item before the item @p it
273 */
274EAPI Elm_Object_Item *elm_multibuttonentry_item_prev_get(const Elm_Object_Item *it);
275
276/**
277 * @brief Get the next item in the multibuttonentry
278 *
279 * @since_tizen 2.3
280 *
281 * @param[in] it The item
282 * @return The item after the item @p it
283 */
284EAPI Elm_Object_Item *elm_multibuttonentry_item_next_get(const Elm_Object_Item *it);
285
286/**
287 * @brief Append an item filter function for text inserted in the Multibuttonentry
288 *
289 * @since_tizen 2.3
290 *
291 * @remarks Append the given callback to the list. This functions will be
292 * called whenever any text is inserted into the Multibuttonentry,
293 * with the text to be inserted as a parameter. The callback function
294 * is free to alter the text in any way it wants, but it must remember
295 * to free the given pointer and update it. If the new text is to be
296 * discarded, the function can free it and set it text parameter
297 * to NULL. This will also prevent any following filters from being
298 * called.
299 *
300 * @param[in] obj The multibuttonentry object
301 * @param[in] func The function to use as item filter
302 * @param[in] data User data to pass to @p func
303 */
304EAPI void elm_multibuttonentry_item_filter_append(Evas_Object *obj, Elm_Multibuttonentry_Item_Filter_Cb func, const void *data);
305
306/**
307 * @brief Prepend a filter function for text inserted in the Multibuttonentry
308 *
309 * @details Prepend the given callback to the list.
310 *
311 * @since_tizen 2.3
312 *
313 * @see elm_multibuttonentry_item_filter_append()
314 *
315 * @param[in] obj The multibuttonentry object
316 * @param[in] func The function to use as text filter
317 * @param[in] data User data to pass to @p func
318 */
319EAPI void elm_multibuttonentry_item_filter_prepend(Evas_Object *obj, Elm_Multibuttonentry_Item_Filter_Cb func, const void *data);
320
321/**
322 * @brief Remove a filter from the list
323 *
324 * @details Removes the given callback from the filter list.
325 *
326 * @since_tizen 2.3
327 *
328 * @see elm_multibuttonentry_item_filter_append()
329 *
330 * @param[in] obj The multibuttonentry object
331 * @param[in] func The filter function to remove
332 * @param[in] data The user data passed when adding the function
333 */
334EAPI void elm_multibuttonentry_item_filter_remove(Evas_Object *obj, Elm_Multibuttonentry_Item_Filter_Cb func, const void *data);
335
336/**
337 * @brief Sets if the multibuttonentry is to be editable or not.
338 *
339 * @since_tizen 2.3
340 *
341 * @param[in] obj The multibuttonentry object
342 * @param[in] editable If EINA_TRUE, user can add/delete item in multibuttonentry, if not, the multibuttonentry is non-editable.
343 *
344 * @since 1.7
345 */
346EAPI void elm_multibuttonentry_editable_set(Evas_Object *obj, Eina_Bool editable);
347
348/**
349 * @brief Gets whether the multibuttonentry is editable or not.
350 *
351 * @since_tizen 2.3
352 *
353 * @param[in] obj The multibuttonentry object
354 * @return EINA_TRUE if the multibuttonentry is editable by the user. EINA_FALSE if not.
355 *
356 * @since 1.7
57 */ 357 */
358EAPI Eina_Bool elm_multibuttonentry_editable_get(const Evas_Object *obj);
58 359
59#include "elc_multibuttonentry_common.h"
60#ifdef EFL_EO_API_SUPPORT
61#include "elc_multibuttonentry_eo.h"
62#endif
63#ifndef EFL_NOLEGACY_API_SUPPORT
64#include "elc_multibuttonentry_legacy.h"
65#endif
66/** 360/**
67 * @} 361 * @}
68 */ 362 */
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 @@
1/** 1/**
2 * @defgroup Naviframe Naviframe 2 * @defgroup Naviframe Naviframe
3 * @ingroup Elementary 3 * @ingroup elm_widget_group
4 * 4 *
5 * @image html naviframe_inheritance_tree.png 5 * @image html naviframe_inheritance_tree.png
6 * @image latex naviframe_inheritance_tree.eps 6 * @image latex naviframe_inheritance_tree.eps
@@ -10,11 +10,9 @@
10 * 10 *
11 * A naviframe holds views (or pages) as its items. Those items are 11 * A naviframe holds views (or pages) as its items. Those items are
12 * organized in a stack, so that new items get pushed on top of the 12 * organized in a stack, so that new items get pushed on top of the
13 * old, and only the topmost view is displayed at one time. Due to the 13 * old, and only the topmost view is displayed at one time. The
14 * characteristics of a stack, even though you push a new item, previous item 14 * transition between views is animated, depending on the theme
15 * is not deleted. Previous item will be shown when you pop new item. The 15 * applied to the widget.
16 * transition between views is animated, depending on the theme applied to the
17 * widget.
18 * 16 *
19 * Naviframe views hold spaces to various elements, which are: 17 * Naviframe views hold spaces to various elements, which are:
20 * - back button, used to navigate to previous views, 18 * - back button, used to navigate to previous views,
@@ -24,10 +22,12 @@
24 * - title icon and 22 * - title icon and
25 * - content area. 23 * - content area.
26 * 24 *
27 * One can use @ref elm_object_item_part_content_set, 25 * This widget inherits from the @ref Layout one, so that all the
28 * @ref elm_object_item_part_content_get, 26 * functions acting on it also work for naviframe objects.
29 * @ref elm_object_item_part_content_unset functions to handle the contents. 27 *
30 * The swallow part name should be one of these: 28 * Because this widget is a layout, one places content on those areas
29 * by using elm_layout_content_set() on the right swallow part names
30 * expected for each, which are:
31 * @li @c "default" - The main content of the current page 31 * @li @c "default" - The main content of the current page
32 * @li @c "icon" - An icon in the title area of the current page 32 * @li @c "icon" - An icon in the title area of the current page
33 * @li @c "prev_btn" - A button of the current page to go to the 33 * @li @c "prev_btn" - A button of the current page to go to the
@@ -35,11 +35,10 @@
35 * @li @c "next_btn" - A button of the current page to go to the next 35 * @li @c "next_btn" - A button of the current page to go to the next
36 * page 36 * page
37 * 37 *
38 * One can use @ref elm_object_item_part_text_set, 38 * For text, elm_layout_text_set() will work here on:
39 * @ref elm_object_item_part_text_get to handle the text parts. 39 * @li @c "default" - Title label in the title area of the current
40 * The swallow part name should be one of these: 40 * page
41 * @li @c "default" - A title label in the title area of the current page 41 * @li @c "subtitle" - Sub-title label in the title area of the
42 * @li @c "subtitle" - A sub-title label in the title area of the
43 * current page 42 * current page
44 * 43 *
45 * Most of those content objects can be passed at the time of an item 44 * Most of those content objects can be passed at the time of an item
@@ -55,20 +54,16 @@
55 * 54 *
56 * 55 *
57 * This widget emits the following signals, besides the ones sent from 56 * This widget emits the following signals, besides the ones sent from
58 * @ref Layout: 57 * @ref Layout :
59 * @li @c "transition,finished" - When the transition is finished in 58 * @li @c "transition,finished" - When the transition is finished in
60 * changing the item 59 * changing the item
61 * @li @c "title,transition,finished" - When the title area's transition 60 * @li @c "title,transition,finished" - When the title transition is
62 * is finished in changing the state 61 * finished in changing enabled
63 * of the title 62 * state of the title
64 * @li @c "title,clicked" - User clicked title area 63 * @li @c "title,clicked" - User clicked title area
65 * @li @c "focused" - When the naviframe has received focus. (since 1.8)
66 * @li @c "unfocused" - When the naviframe has lost focus. (since 1.8)
67 * @li @c "language,changed" - the program's language changed (since 1.9)
68 * 64 *
69 * All the parts, for content and text, described here will also be 65 * All the parts, for content and text, described here will also be
70 * reachable by naviframe @b items direct calls: 66 * reachable by naviframe @b items direct calls:
71 * @li @ref elm_object_item_del
72 * @li @ref elm_object_item_part_text_set 67 * @li @ref elm_object_item_part_text_set
73 * @li @ref elm_object_item_part_text_get 68 * @li @ref elm_object_item_part_text_get
74 * @li @ref elm_object_item_part_content_set 69 * @li @ref elm_object_item_part_content_set
@@ -80,22 +75,396 @@
80 * widget's target layout, when accessed directly. Items lying below 75 * widget's target layout, when accessed directly. Items lying below
81 * the top one can be interacted with this way. 76 * the top one can be interacted with this way.
82 * 77 *
83 * Here is an example on its usage: 78 * @{
84 * @li @ref naviframe_example
85 */ 79 */
86 80
87/** 81/**
88 * @addtogroup Naviframe 82 * @typedef Elm_Naviframe_Item_Pop_Cb
89 * @{ 83 *
84 * @since_tizen 2.3
85 *
86 * Pop callback called when @c it is going to be popped. @c data is user
87 * specific data. If it returns the @c EINA_FALSE in the callback, item popping
88 * will be cancelled.
89 *
90 * @see elm_naviframe_item_pop_cb_set()
91 *
92 * @since 1.8
93 */
94typedef Eina_Bool (*Elm_Naviframe_Item_Pop_Cb)(void *data, Elm_Object_Item *it);
95
96/**
97 * @brief Add a new Naviframe object to the parent.
98 *
99 * @since_tizen 2.3
100 *
101 * @param[in] parent Parent object
102 * @return New object or @c NULL, if it cannot be created
103 */
104EAPI Evas_Object *elm_naviframe_add(Evas_Object *parent);
105
106/**
107 * @brief Push a new item to the top of the naviframe stack (and show it).
108 *
109 * @since_tizen 2.3
110 *
111 * @param[in] obj The naviframe object
112 * @param[in] title_label The label in the title area. The name of the title
113 * label part is "elm.text.title"
114 * @param[in] prev_btn The button to go to the previous item. If it is NULL,
115 * then naviframe will create a back button automatically. The name of
116 * the prev_btn part is "elm.swallow.prev_btn"
117 * @param[in] next_btn The button to go to the next item. Or It could be just an
118 * extra function button. The name of the next_btn part is
119 * "elm.swallow.next_btn"
120 * @param[in] content The main content object. The name of content part is
121 * "elm.swallow.content"
122 * @param[in] item_style The current item style name. @c NULL would be default.
123 * @return The created item or @c NULL upon failure.
124 *
125 * The item pushed becomes one page of the naviframe, this item will be
126 * deleted when it is popped.
127 *
128 * @see also elm_naviframe_item_style_set()
129 * @see also elm_naviframe_item_insert_before()
130 * @see also elm_naviframe_item_insert_after()
131 *
132 * The following styles are available for this item:
133 * @li @c "default"
134 */
135EAPI 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);
136
137/**
138 * @brief Insert a new item into the naviframe before item @p before.
139 *
140 * @since_tizen 2.3
141 *
142 * @param[in] obj The naviframe object
143 * @param[in] before The naviframe item to insert before.
144 * @param[in] title_label The label in the title area. The name of the title
145 * label part is "elm.text.title"
146 * @param[in] prev_btn The button to go to the previous item. If it is NULL,
147 * then naviframe will create a back button automatically. The name of
148 * the prev_btn part is "elm.swallow.prev_btn"
149 * @param[in] next_btn The button to go to the next item. Or It could be just an
150 * extra function button. The name of the next_btn part is
151 * "elm.swallow.next_btn"
152 * @param[in] content The main content object. The name of content part is
153 * "elm.swallow.content"
154 * @param[in] item_style The current item style name. @c NULL would be default.
155 * @return The created item or @c NULL upon failure.
156 *
157 * The item is inserted into the naviframe straight away without any
158 * transition operations. This item will be deleted when it is popped.
159 *
160 * @see also elm_naviframe_item_style_set()
161 * @see also elm_naviframe_item_push()
162 * @see also elm_naviframe_item_insert_after()
163 *
164 * The following styles are available for this item:
165 * @li @c "default"
166 */
167EAPI 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);
168
169/**
170 * @brief Insert a new item into the naviframe after item @p after.
171 *
172 * @since_tizen 2.3
173 *
174 * @param[in] obj The naviframe object
175 * @param[in] after The naviframe item to insert after.
176 * @param[in] title_label The label in the title area. The name of the title
177 * label part is "elm.text.title"
178 * @param[in] prev_btn The button to go to the previous item. If it is NULL,
179 * then naviframe will create a back button automatically. The name of
180 * the prev_btn part is "elm.swallow.prev_btn"
181 * @param[in] next_btn The button to go to the next item. Or It could be just an
182 * extra function button. The name of the next_btn part is
183 * "elm.swallow.next_btn"
184 * @param[in] content The main content object. The name of content part is
185 * "elm.swallow.content"
186 * @param[in] item_style The current item style name. @c NULL would be default.
187 * @return The created item or @c NULL upon failure.
188 *
189 * The item is inserted into the naviframe straight away without any
190 * transition operations. This item will be deleted when it is popped.
191 *
192 * @see also elm_naviframe_item_style_set()
193 * @see also elm_naviframe_item_push()
194 * @see also elm_naviframe_item_insert_before()
195 *
196 * The following styles are available for this item:
197 * @li @c "default"
198 */
199EAPI 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);
200
201/**
202 * @brief Pop an item that is on top of the stack
203 *
204 * @since_tizen 2.3
205 *
206 * @param[in] obj The naviframe object
207 * @return @c NULL or the content object(if the
208 * elm_naviframe_content_preserve_on_pop_get is true).
209 *
210 * This pops an item that is on the top(visible) of the naviframe, makes it
211 * disappear, then deletes the item. The item that was underneath it on the
212 * stack will become visible.
213 *
214 * @see also elm_naviframe_content_preserve_on_pop_get()
215 * @see also elm_naviframe_item_pop_cb_set()
216 */
217EAPI Evas_Object *elm_naviframe_item_pop(Evas_Object *obj);
218
219/**
220 * @brief Pop the items between the top and the above one on the given item.
221 *
222 * @since_tizen 2.3
223 *
224 * @param[in] it The naviframe item
225 */
226EAPI void elm_naviframe_item_pop_to(Elm_Object_Item *it);
227
228/**
229 * @brief Promote an item already in the naviframe stack to the top of the stack
230 *
231 * @since_tizen 2.3
232 *
233 * @remarks This will take the indicated item and promote it to the top of
234 * the stack as if it had been pushed there. The item must already
235 * be inside the naviframe stack to work.
236 *
237 * @param[in] it The naviframe item
238 */
239EAPI void elm_naviframe_item_promote(Elm_Object_Item *it);
240
241/**
242 * @brief preserve the content objects when items are popped.
243 *
244 * @since_tizen 2.3
245 *
246 * @param[in] obj The naviframe object
247 * @param[in] preserve Enable the preserve mode if EINA_TRUE, disable otherwise
248 *
249 * @see also elm_naviframe_content_preserve_on_pop_get()
250 */
251EAPI void elm_naviframe_content_preserve_on_pop_set(Evas_Object *obj, Eina_Bool preserve);
252
253/**
254 * @brief Get a value whether preserve mode is enabled or not.
255 *
256 * @since_tizen 2.3
257 *
258 * @param[in] obj The naviframe object
259 * @return If @c EINA_TRUE, preserve mode is enabled
260 *
261 * @see also elm_naviframe_content_preserve_on_pop_set()
262 */
263EAPI Eina_Bool elm_naviframe_content_preserve_on_pop_get(const Evas_Object *obj);
264
265/**
266 * @brief Get a top item on the naviframe stack
267 *
268 * @since_tizen 2.3
269 *
270 * @param[in] obj The naviframe object
271 * @return The top item on the naviframe stack or @c NULL, if the stack is
272 * empty
273 */
274EAPI Elm_Object_Item *elm_naviframe_top_item_get(const Evas_Object *obj);
275
276/**
277 * @brief Get a bottom item on the naviframe stack
278 *
279 * @since_tizen 2.3
280 *
281 * @param[in] obj The naviframe object
282 * @return The bottom item on the naviframe stack or @c NULL, if the stack is
283 * empty
90 */ 284 */
285EAPI Elm_Object_Item *elm_naviframe_bottom_item_get(const Evas_Object *obj);
91 286
92#include "elc_naviframe_common.h" 287/**
93#ifdef EFL_EO_API_SUPPORT 288 * @brief Set an item style
94#include "elc_naviframe_eo.h" 289 *
95#endif 290 * @since_tizen 2.3
96#ifndef EFL_NOLEGACY_API_SUPPORT 291 *
97#include "elc_naviframe_legacy.h" 292 * @remarks The following styles are available for this item: @li @c "default"
98#endif 293 *
294 * @param[in] it The naviframe item
295 * @param[in] item_style The current item style name. @c NULL would be default
296 *
297 * @see also elm_naviframe_item_style_get()
298 */
299EAPI void elm_naviframe_item_style_set(Elm_Object_Item *it, const char *item_style);
300
301/**
302 * @brief Get an item style
303 *
304 * @since_tizen 2.3
305 *
306 * @param[in] it The naviframe item
307 * @return The current item style name
308 *
309 * @see also elm_naviframe_item_style_set()
310 */
311EAPI const char *elm_naviframe_item_style_get(const Elm_Object_Item *it);
312
313/**
314 * @brief Enable/Disable the title area with transition effect
315 *
316 * @since_tizen 2.3
317 *
318 * @remarks When the title area is disabled, then the controls would be hidden
319 * so as to expand the content area to full-size.
320 *
321 * @param[in] it The naviframe item
322 * @param[in] enabled If @c EINA_TRUE, title area will be enabled, disabled
323 * otherwise
324 * @param[in] transition If @c EINA_TRUE, transition effect of the title will be
325 * visible, invisible otherwise
326 *
327 * @see also elm_naviframe_item_title_enabled_get()
328 * @see also elm_naviframe_item_title_visible_set()
329 */
330EAPI void elm_naviframe_item_title_enabled_set(Elm_Object_Item *it, Eina_Bool enabled, Eina_Bool transition);
331
332/**
333 * @brief Get a value whether title area is enabled or not.
334 *
335 * @since_tizen 2.3
336 *
337 * @param[in] it The naviframe item
338 * @return If @c EINA_TRUE, title area is enabled
339 *
340 * @see also elm_naviframe_item_title_enabled_set()
341 */
342EAPI Eina_Bool elm_naviframe_item_title_enabled_get(const Elm_Object_Item *it);
343
344/**
345 * @brief Set a function to be called when @c it of the naviframe is going to
346 * be popped.
347 *
348 * @since 1.8
349 *
350 * @since_tizen 2.3
351 *
352 * @remarks Don't set "clicked" callback to the prev button additionally if the
353 * function does a exact same logic with this @c func. When hardware back key is
354 * pressed then both callbacks will be called.
355 *
356 * @param[in] it The item to set the callback on
357 * @param[in] func the callback function.
358 * @param[in] data user data
359 */
360EAPI void elm_naviframe_item_pop_cb_set(Elm_Object_Item *it, Elm_Naviframe_Item_Pop_Cb func, void *data);
361
362/**
363 * @brief Set creating prev button automatically or not
364 *
365 * @since_tizen 2.3
366 *
367 * @param[in] obj The naviframe object
368 * @param[in] auto_pushed If @c EINA_TRUE, the previous button(back button) will
369 * be created internally when you pass the @c NULL to the prev_btn
370 * parameter in elm_naviframe_item_push
371 *
372 * @see also elm_naviframe_item_push()
373 */
374EAPI void elm_naviframe_prev_btn_auto_pushed_set(Evas_Object *obj, Eina_Bool auto_pushed);
375
376/**
377 * @brief Get a value whether prev button(back button) will be auto pushed or
378 * not.
379 *
380 * @since_tizen 2.3
381 *
382 * @param[in] obj The naviframe object
383 * @return If @c EINA_TRUE, prev button will be auto pushed.
384 *
385 * @see also elm_naviframe_item_push()
386 * elm_naviframe_prev_btn_auto_pushed_set()
387 */
388EAPI Eina_Bool elm_naviframe_prev_btn_auto_pushed_get(const Evas_Object *obj);
389
390/**
391 * @brief Get a list of all the naviframe items.
392 *
393 * @since_tizen 2.3
394 *
395 * @remarks The returned list MUST be freed.
396 *
397 * @param[in] obj The naviframe object
398 * @return An Eina_List of naviframe items, #Elm_Object_Item,
399 * or @c NULL on failure.
400 */
401EAPI Eina_List *elm_naviframe_items_get(const Evas_Object *obj) EINA_MALLOC EINA_WARN_UNUSED_RESULT;
402
403/**
404 * @brief Set the event enabled when pushing/popping items
405 *
406 * @since_tizen 2.3
407 *
408 * @remarks If @c enabled is EINA_TRUE, the contents of the naviframe item will
409 * receives events from mouse and keyboard during view changing such as
410 * item push/pop.
411 *
412 * @remarks Events will be blocked by calling evas_object_freeze_events_set()
413 * internally. So don't call the API whiling pushing/popping items.
414 *
415 * @param[in] obj The naviframe object
416 * @param[in] enabled Events are received when enabled is @c EINA_TRUE, and
417 * ignored otherwise.
418 *
419 * @see elm_naviframe_event_enabled_get()
420 * @see evas_object_freeze_events_set()
421 */
422EAPI void elm_naviframe_event_enabled_set(Evas_Object *obj, Eina_Bool enabled);
423
424/**
425 * @brief Get the value of event enabled status.
426 *
427 * @since_tizen 2.3
428 *
429 * @param[in] obj The naviframe object
430 * @return EINA_TRUE, when event is enabled
431 *
432 * @see elm_naviframe_event_enabled_set()
433 */
434EAPI Eina_Bool elm_naviframe_event_enabled_get(const Evas_Object *obj);
435
436/**
437 * @brief Simple version of item_push.
438 *
439 * @since_tizen 2.3
440 *
441 * @param[in] obj The naviframe object
442 * @param[in] content The main content object. The name of content part is
443 * "elm.swallow.content"
444 * @return The created item or @c NULL upon failure.
445 *
446 * @see elm_naviframe_item_push
447 */
448static inline Elm_Object_Item *
449elm_naviframe_item_simple_push(Evas_Object *obj, Evas_Object *content)
450{
451 Elm_Object_Item *it;
452 it = elm_naviframe_item_push(obj, NULL, NULL, NULL, content, NULL);
453 elm_naviframe_item_title_enabled_set(it, EINA_FALSE, EINA_FALSE);
454 return it;
455}
456
457/**
458 * @brief Simple version of item_promote.
459 *
460 * @since_tizen 2.3
461 * @param[in] obj The naviframe object
462 * @param[in] content The main content object. The name of content part is
463 * "elm.swallow.content"
464 *
465 * @see elm_naviframe_item_promote
466 */
467EAPI void elm_naviframe_item_simple_promote(Evas_Object *obj, Evas_Object *content);
99 468
100/** 469/**
101 * @} 470 * @}
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 @@
1/** 1/**
2 * @defgroup Popup Popup 2 * @defgroup Popup Popup
3 * @ingroup Elementary 3 * @ingroup elm_widget_group
4 * 4 *
5 * @image html popup_inheritance_tree.png 5 * @image html popup_inheritance_tree.png
6 * @image latex popup_inheritance_tree.eps 6 * @image latex popup_inheritance_tree.eps
7 * 7 *
8 * This widget is an enhancement of @ref Notify. In addition to 8 * @brief This widget is an enhancement of @ref Notify. In addition to
9 * content area, there are two optional sections, namely title area and 9 * content area, there are two optional sections, namely title area and
10 * action area. 10 * action area.
11 * 11 *
12 * The popup widget displays its content with a particular orientation in 12 * The popup widget displays its content with a particular orientation in
13 * the parent area. This orientation can be one among top, center, 13 * the parent area. This orientation can be one among top, center,
14 * bottom, left, top-left, top-right, bottom-left and bottom-right. 14 * bottom, left, top-left, top-right, bottom-left and bottom-right.
15 * Content part of Popup can be an Evas Object set by application or 15 * Content part of Popup can be an Evas Object set by application or
16 * it can be Text set by application or set of items containing an 16 * it can be Text set by application or set of items containing an
17 * icon and/or text. The content/item-list can be removed using 17 * icon and/or text. The content/item-list can be removed using
18 * elm_object_content_set with second parameter passed as NULL. 18 * elm_object_content_set with second parameter passed as NULL.
19 * 19 *
20 * The following figures show the textual layouts of popup in which Title 20 * The following figures show the textual layouts of popup in which Title
21 * Area and Action area are optional ones. Action area can have 21 * Area and Action area area are optional ones. Action area can have
22 * up to 3 buttons handled using elm_object common APIs mentioned 22 * up to 3 buttons handled using elm_object common APIs mentioned
23 * below. If user wants to have more than 3 buttons then these buttons 23 * below. If user wants to have more than 3 buttons then these buttons
24 * can be put inside the items of a list as content. User needs to 24 * can be put inside the items of a list as content. User needs to
25 * handle the clicked signal of these action buttons if required. No 25 * handle the clicked signal of these action buttons if required. No
26 * event is processed by the widget automatically when clicked on 26 * event is processed by the widget automatically when clicked on
27 * these action buttons. 27 * these action buttons.
28 * 28 *
@@ -52,34 +52,26 @@
52 * </pre> 52 * </pre>
53 * 53 *
54 * Timeout can be set on expiry of which popup instance hides and 54 * Timeout can be set on expiry of which popup instance hides and
55 * sends a smart signal "timeout" to the user. The visible region of 55 * sends a smart signal "timeout" to the user. The visible region of
56 * popup is surrounded by a translucent region called Blocked Event 56 * popup is surrounded by a translucent region called Blocked Event
57 * area. By clicking on Blocked Event area, the signal 57 * area. By clicking on Blocked Event area, the signal
58 * "block,clicked" is sent to the application. This block event area 58 * "block,clicked" is sent to the application. This block event area
59 * can be avoided by using API elm_popup_allow_events_set. When gets 59 * can be avoided by using API elm_popup_allow_events_set. When gets
60 * hidden, popup does not get destroyed automatically, application 60 * hidden, popup does not get destroyed automatically, application
61 * should destroy the popup instance after use. To control the 61 * should destroy the popup instance after use. To control the
62 * maximum height of the internal scroller for item, we use the height 62 * maximum height of the internal scroller for item, we use the height
63 * of the action area which is passed by theme based on the number of 63 * of the action area which is passed by theme based on the number of
64 * buttons currently set to popup. 64 * buttons currently set to popup.
65 * 65 *
66 * Popup sets the focus to itself when evas_object_show is called on popup.
67 * To set the focus into popup's contents and buttons automatically,
68 * evas_object_show on popup should be called after setting all the contents
69 * and buttons of popup.
70 *
71 * This widget inherits from the @ref Layout one, so that all the 66 * This widget inherits from the @ref Layout one, so that all the
72 * functions acting on it also work for popup objects (since 1.8). 67 * functions acting on it also work for popup objects (@since 1.8).
73 * 68 *
74 * This widget emits the following signals, besides the ones sent from 69 * This widget emits the following signals, besides the ones sent from
75 * @ref Layout: 70 * @ref Layout :
76 * @li @c "timeout" - whenever popup is closed as a result of timeout. 71 * @li @c "timeout" - whenever popup is closed as a result of timeout.
77 * @li @c "block,clicked" - whenever user taps on Blocked Event area. 72 * @li @c "block,clicked" - whenever user taps on Blocked Event area.
78 * @li @c "focused" - When the popup has received focus. (since 1.8) 73 * @li @c "language,changed" - The program's language changed. (@since 1.8)
79 * @li @c "unfocused" - When the popup has lost focus. (since 1.8) 74 * @li @c "show,finished" - When the popup transition is finished in showing.
80 * @li "language,changed" - the program's language changed (since 1.8)
81 * @li "item,focused" - When the popup item has recieved focus. (since 1.10)
82 * @li "item,unfocused" - When the popup item has lost focus. (since 1.10)
83 * 75 *
84 * Styles available for Popup 76 * Styles available for Popup
85 * @li "default" 77 * @li "default"
@@ -92,35 +84,257 @@
92 * @li "button3" - 3rd button of the action area 84 * @li "button3" - 3rd button of the action area
93 * 85 *
94 * Default text parts of the popup widget that you can use are: 86 * Default text parts of the popup widget that you can use are:
95 * @li "title,text" - A title area's label 87 * @li "title,text" - This operates on Title area's label
96 * @li "default" - A content-text set in the content area of the widget 88 * @li "default" - content-text set in the content area of the widget
97 * 89 *
98 * Default contents parts of the popup items that you can use are: 90 * Default contents parts of the popup items that you can use are:
99 * @li "default" - An item's icon 91 * @li "default" -Item's icon
100 * 92 *
101 * Default text parts of the popup items that you can use are: 93 * Default text parts of the popup items that you can use are:
102 * @li "default" - An item's label 94 * @li "default" - Item's label
103 * 95 *
104 * Supported elm_object_item common APIs. 96 * Supported elm_object_item common APIs.
97 * @li @ref elm_object_item_disabled_set
98 * @li @ref elm_object_item_disabled_get
105 * @li @ref elm_object_item_part_text_set 99 * @li @ref elm_object_item_part_text_set
106 * @li @ref elm_object_item_part_text_get 100 * @li @ref elm_object_item_part_text_get
107 * @li @ref elm_object_item_part_content_set 101 * @li @ref elm_object_item_part_content_set
108 * @li @ref elm_object_item_part_content_get 102 * @li @ref elm_object_item_part_content_get
109 * @li @ref elm_object_item_disabled_set
110 * @li @ref elm_object_item_disabled_get
111 * @li @ref elm_object_item_del
112 * @li @ref elm_object_item_signal_emit 103 * @li @ref elm_object_item_signal_emit
104 * @li @ref elm_object_item_del
105 *
106 * @{
107 */
108
109/**
110 * @brief Possible orient values for popup.
111 *
112 * These values should be used in conjunction to elm_popup_orient_set() to
113 * set the position in which the popup should appear(relative to its parent)
114 * and in conjunction with elm_popup_orient_get() to know where the popup
115 * is appearing.
116 */
117typedef enum
118{
119 ELM_POPUP_ORIENT_TOP = 0, /**< Popup should appear in the top of parent, default */
120 ELM_POPUP_ORIENT_CENTER, /**< Popup should appear in the center of parent */
121 ELM_POPUP_ORIENT_BOTTOM, /**< Popup should appear in the bottom of parent */
122 ELM_POPUP_ORIENT_LEFT, /**< Popup should appear in the left of parent */
123 ELM_POPUP_ORIENT_RIGHT, /**< Popup should appear in the right of parent */
124 ELM_POPUP_ORIENT_TOP_LEFT, /**< Popup should appear in the top left of parent */
125 ELM_POPUP_ORIENT_TOP_RIGHT, /**< Popup should appear in the top right of parent */
126 ELM_POPUP_ORIENT_BOTTOM_LEFT, /**< Popup should appear in the bottom left of parent */
127 ELM_POPUP_ORIENT_BOTTOM_RIGHT, /**< Notify should appear in the bottom right of parent */
128 ELM_POPUP_ORIENT_LAST /**< Sentinel value, @b don't use */
129 } Elm_Popup_Orient;
130
131/**
132 * @brief Adds a new Popup to the parent
133 *
134 * @since_tizen 2.3
135 *
136 * @param[in] parent The parent object
137 * @return The new object or NULL if it cannot be created
138 */
139EAPI Evas_Object *elm_popup_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
140
141/**
142 * @brief Add a new item to a Popup object
143 *
144 * @since_tizen 2.3
145 *
146 * @remarks Both an item list and a content could not be set at the same time!
147 * once you add an item, the previous content will be removed.
148 *
149 * @remarks When the first item is appended to popup object, any previous
150 * content of the content area is deleted. At a time, only one of
151 * content, content-text and item(s) can be there in a popup content
152 * area.
153 *
154 * @param[in] obj popup object
155 * @param[in] icon Icon to be set on new item
156 * @param[in] label The Label of the new item
157 * @param[in] func Convenience function called when item selected
158 * @param[in] data Data passed to @p func above
159 * @return A handle to the item added or @c NULL, on errors
160 */
161EAPI 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);
162
163/**
164 * @brief Sets the wrapping type of content text packed in content
165 * area of popup object.
166 *
167 * @since_tizen 2.3
168 *
169 * @param[in] obj The Popup object
170 * @param[in] wrap wrapping type of type Elm_Wrap_Type
171 * @see elm_popup_content_text_wrap_type_get()
172 */
173EAPI void elm_popup_content_text_wrap_type_set(Evas_Object *obj, Elm_Wrap_Type wrap) EINA_ARG_NONNULL(1);
174
175/**
176 * @brief Returns the wrapping type of content text packed in content area of
177 * popup object.
178 *
179 * @since_tizen 2.3
180 *
181 * @param[in] obj The Popup object
182 * @return wrap type of the content text
183 * @see elm_popup_content_text_wrap_type_set
184 */
185EAPI Elm_Wrap_Type elm_popup_content_text_wrap_type_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
186
187/**
188 * @brief Sets the orientation of the popup in the parent region
189 *
190 * @since_tizen 2.3
191 *
192 * @param[in] obj The popup object
193 * @param[in] orient the orientation of the popup
113 * 194 *
114 * Here are some sample code to illustrate Popup usage: 195 * Sets the position in which popup will appear in its parent
115 * @li @ref popup_example_01_c 196 * @see @ref Elm_Popup_Orient for possible values.
116 * @li @ref popup_example_02_c
117 * @li @ref popup_example_03_c
118 */ 197 */
198EAPI void elm_popup_orient_set(Evas_Object *obj, Elm_Popup_Orient orient) EINA_ARG_NONNULL(1);
119 199
120#include "elc_popup_common.h" 200/**
121#ifdef EFL_EO_API_SUPPORT 201 * @brief Returns the orientation of Popup
122#include "elc_popup_eo.h" 202 *
123#endif 203 * @since_tizen 2.3
124#ifndef EFL_NOLEGACY_API_SUPPORT 204 *
125#include "elc_popup_legacy.h" 205 * @param[in] obj The popup object
126#endif 206 * @return the orientation of the popup
207 *
208 * @see elm_popup_orient_set()
209 * @see Elm_Popup_Orient
210 */
211EAPI Elm_Popup_Orient elm_popup_orient_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
212
213/**
214 * @brief Sets a timeout to hide popup automatically
215 *
216 * @since_tizen 2.3
217 *
218 * @param[in] obj The popup object
219 * @param[in] timeout The timeout in seconds
220 *
221 * @details This function sets a timeout and starts the timer controlling when
222 * the popup is hidden.
223 *
224 * @remarks Since calling evas_object_show() on a popup restarts
225 * the timer controlling when it is hidden, setting this before the
226 * popup is shown will in effect mean starting the timer when the
227 * popup is shown. Smart signal "timeout" is called afterwards which
228 * can be handled if needed.
229 *
230 * @remarks Set a value <= 0.0 to disable a running timer.
231 *
232 * @remarks If the value > 0.0 and the popup is previously visible, the
233 * timer will be started with this value, canceling any running timer.
234 */
235EAPI void elm_popup_timeout_set(Evas_Object *obj, double timeout) EINA_ARG_NONNULL(1);
236
237/**
238 * @brief Returns the timeout value set to the popup (in seconds)
239 *
240 * @since_tizen 2.3
241 *
242 * @param[in] obj The popup object
243 * @return the timeout value
244 *
245 * @see elm_popup_timeout_set()
246 */
247EAPI double elm_popup_timeout_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
248
249/**
250 * @brief Sets whether events should be passed to by a click outside.
251 *
252 * @since_tizen 2.3
253 *
254 * @param[in] obj The popup object
255 * @param[in] allow EINA_TRUE Events are passed to lower objects, else not
256 *
257 * @remarks Enabling allow event will remove the Blocked event area and events
258 * will pass to the lower layer objects otherwise they are blocked.
259 *
260 * @remarks The default value is EINA_FALSE.
261 *
262 * @see elm_popup_allow_events_get()
263 */
264EAPI void elm_popup_allow_events_set(Evas_Object *obj, Eina_Bool allow);
265
266/**
267 * @brief Returns value indicating whether allow event is enabled or not
268 *
269 * @since_tizen 2.3
270 *
271 * @param[in] obj The popup object
272 * @return EINA_FALSE if Blocked event area is present else EINA_TRUE
273 *
274 * @see elm_popup_allow_events_set()
275 * @note By default the Blocked event area is present
276 */
277EAPI Eina_Bool elm_popup_allow_events_get(const Evas_Object *obj);
278
279/**
280 * @internal
281 * @remarks Tizen only feature
282 *
283 * @brief Set the popup's parent
284 *
285 * @param[in] obj The popup object
286 * @param[in] parent The new parent
287 *
288 * Once the parent object is set, a previously set one will be disconnected
289 * and replaced.
290 */
291EAPI void elm_popup_parent_set(Evas_Object *obj, Evas_Object *parent);
292
293/**
294 * @internal
295 * @remarks Tizen only feature
296 *
297 * @brief Get the popup's parent
298 *
299 * @param[in] obj The popup object
300 * @return The parent
301 *
302 * @see elm_popup_parent_set()
303 */
304EAPI Evas_Object *elm_popup_parent_get(Evas_Object *obj);
305
306/**
307 * @brief Set the alignment of the popup object
308 *
309 * @details Sets the alignment in which the popup will appear in its parent.
310 *
311 * @since 1.9
312 *
313 * @since_tizen 2.3
314 *
315 * @param[in] obj popup object
316 * @param[in] horizontal The horizontal alignment of the popup
317 * @param[in] vertical The vertical alignment of the popup
318 *
319 * @see elm_popup_align_get()
320 */
321EAPI void elm_popup_align_set(Evas_Object *obj, double horizontal, double vertical);
322
323/**
324 * @brief Get the alignment of the popup object
325 *
326 * @since 1.9
327 *
328 * @since_tizen 2.3
329 *
330 * @param[in] obj The popup object
331 * @param[out] horizontal The horizontal alignment of the popup
332 * @param[out] vertical The vertical alignment of the popup
333 *
334 * @see elm_popup_align_set()
335 */
336EAPI void elm_popup_align_get(const Evas_Object *obj, double *horizontal, double *vertical);
337
338/**
339 * @}
340 */
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 @@
1/** 1/**
2 * @internal
2 * @defgroup Access Access 3 * @defgroup Access Access
3 * @ingroup Elementary 4 * @ingroup elm_infra_group
4 *
5 * WARNING! this API is not finalized. It is unstable. - do not use it if
6 * you want no breaks in future.
7 * 5 *
8 * TODO: description 6 * TODO: description
9 * 7 *
8 * @{
10 */ 9 */
11 10
12#include "elm_access.eo.h" 11#define MSG_DOMAIN_CONTROL_ACCESS (int)ECORE_X_ATOM_E_ILLUME_ACCESS_CONTROL
13 12
14enum _Elm_Access_Info_Type 13enum _Elm_Access_Info_Type
15{ 14{
16 ELM_ACCESS_INFO_FIRST = -1, 15 ELM_ACCESS_INFO_FIRST = -1,
17 ELM_ACCESS_INFO, /* next read is info - this is 16 ELM_ACCESS_INFO, /* Next read is info - this is
18 * normally label */ 17 * normally the label */
19 ELM_ACCESS_TYPE, /* when reading out widget or item 18 ELM_ACCESS_TYPE, /* When reading out the widget or item
20 * this is read first */ 19 * this is read first */
21 ELM_ACCESS_STATE, /* if there is a state (eg checkbox) 20 ELM_ACCESS_STATE, /* If there is a state (eg checkbox)
22 * then read state out */ 21 * then read the state out */
23 ELM_ACCESS_CONTEXT_INFO, /* to give contextual information */ 22 ELM_ACCESS_CONTEXT_INFO, /* To give contextual information */
24 ELM_ACCESS_INFO_LAST 23 ELM_ACCESS_INFO_LAST
25}; 24};
26 25
27/** 26/**
28 * @since 1.8
29 * @typedef Elm_Access_Info_Type 27 * @typedef Elm_Access_Info_Type
30 */ 28 */
31typedef enum _Elm_Access_Info_Type Elm_Access_Info_Type; 29typedef enum _Elm_Access_Info_Type Elm_Access_Info_Type;
32 30
31typedef char *(*Elm_Access_Info_Cb)(void *data, Evas_Object *obj);
32typedef void (*Elm_Access_Activate_Cb)(void *data, Evas_Object *part_obj, Elm_Object_Item *item);
33
33/** 34/**
34 * @enum _Elm_Access_Action_Type 35 * @enum _Elm_Access_Action_Type
35 * Enum of supported access action types. 36 * @brief Enumerations of the supported access action types.
36 */ 37 */
37enum _Elm_Access_Action_Type 38enum _Elm_Access_Action_Type
38{ 39{
39 ELM_ACCESS_ACTION_FIRST = -1, 40 ELM_ACCESS_ACTION_FIRST = -1,
40 41
41 ELM_ACCESS_ACTION_HIGHLIGHT, /* highlight an object */ 42 ELM_ACCESS_ACTION_HIGHLIGHT, /**< Highlight an object */
42 ELM_ACCESS_ACTION_UNHIGHLIGHT, /* unhighlight an object */ 43 ELM_ACCESS_ACTION_UNHIGHLIGHT, /**< Unhighlight an object */
43 ELM_ACCESS_ACTION_HIGHLIGHT_NEXT, /* set highlight to next object */ 44 ELM_ACCESS_ACTION_HIGHLIGHT_NEXT, /**< Set highlight to the next object */
44 ELM_ACCESS_ACTION_HIGHLIGHT_PREV, /* set highlight to previous object */ 45 ELM_ACCESS_ACTION_HIGHLIGHT_PREV, /**< Set highlight to the previous object */
45 ELM_ACCESS_ACTION_ACTIVATE, /* activate a highlight object */ 46 ELM_ACCESS_ACTION_ACTIVATE, /**< Activate a highlight object */
46 ELM_ACCESS_ACTION_SCROLL, /* scroll if one of highlight object parents 47 ELM_ACCESS_ACTION_VALUE_CHANGE, /**< TODO: deprecate this */
48 ELM_ACCESS_ACTION_SCROLL, /**< Scroll if one of the highlight object parents
47 * is scrollable */ 49 * is scrollable */
48 ELM_ACCESS_ACTION_UP, /* change value up of highlight object */ 50 ELM_ACCESS_ACTION_ZOOM, /**< Send the signal of the zoom gesture
49 ELM_ACCESS_ACTION_DOWN, /* change value down of highlight object */ 51 * by a callback function */
50 ELM_ACCESS_ACTION_BACK, /* go back to a previous view 52 ELM_ACCESS_ACTION_MOUSE, /**< Give the mouse event to the highlight object */
53 ELM_ACCESS_ACTION_UP, /**< Change the value up of the highlight object */
54 ELM_ACCESS_ACTION_DOWN, /**< Change the value down of the highlight object */
55 ELM_ACCESS_ACTION_BACK, /**< Go back to a previous view
51 ex: pop naviframe item */ 56 ex: pop naviframe item */
52 ELM_ACCESS_ACTION_READ, /* highlight an object */ 57 ELM_ACCESS_ACTION_OVER, /**< Mouse over an object */
58 ELM_ACCESS_ACTION_READ, /**< Highlight an object */
59 ELM_ACCESS_ACTION_ENABLE, /**< Enable highlight and read ability */
60 ELM_ACCESS_ACTION_DISABLE, /**< Disable highlight and read ability */
53 61
54 ELM_ACCESS_ACTION_LAST 62 ELM_ACCESS_ACTION_LAST
55}; 63};
56 64
57/** 65/**
58 * @since 1.8
59 * @typedef Elm_Access_Action_Type 66 * @typedef Elm_Access_Action_Type
60 */ 67 */
61typedef enum _Elm_Access_Action_Type Elm_Access_Action_Type; 68typedef enum _Elm_Access_Action_Type Elm_Access_Action_Type;
62 69
70enum _Elm_Highlight_Direction
71{
72 ELM_HIGHLIGHT_DIR_FIRST = -1,
73 ELM_HIGHLIGHT_DIR_NEXT,
74 ELM_HIGHLIGHT_DIR_PREVIOUS
75};
76/**
77 * @typedef Elm_Access_Action_Type
78 */
79typedef enum _Elm_Highlight_Direction Elm_Highlight_Direction;
80
81enum _Elm_Access_Sound_Type
82{
83 ELM_ACCESS_SOUND_FIRST = -1,
84 ELM_ACCESS_SOUND_HIGHLIGHT,
85 ELM_ACCESS_SOUND_SCROLL,
86 ELM_ACCESS_SOUND_END,
87 ELM_ACCESS_SOUND_LAST
88};
89/**
90 * @typedef Elm_Access_Sound_Type
91 */
92typedef enum _Elm_Access_Sound_Type Elm_Access_Sound_Type;
93
63struct _Elm_Access_Action_Info 94struct _Elm_Access_Action_Info
64{ 95{
96 double zoom;
97 double angle;
65 Evas_Coord x; 98 Evas_Coord x;
66 Evas_Coord y; 99 Evas_Coord y;
67 unsigned int mouse_type; /* 0: mouse down 100 unsigned int mouse_type; /**< 0: mouse down
68 1: mouse move 101 1: mouse move
69 2: mouse up */ 102 2: mouse up */
70 103
71 Elm_Access_Action_Type action_type; 104 Elm_Access_Action_Type action_type;
72 Elm_Access_Action_Type action_by; 105 Elm_Access_Action_Type action_by;
73 Eina_Bool highlight_cycle : 1; 106 Eina_Bool highlight_cycle : 1;
107 Eina_Bool highlight_end : 1;
74}; 108};
75 109
76/**
77 * @since 1.8
78 * @typedef Elm_Access_Action_Info
79 */
80typedef struct _Elm_Access_Action_Info Elm_Access_Action_Info; 110typedef struct _Elm_Access_Action_Info Elm_Access_Action_Info;
81 111
82enum _Elm_Highlight_Direction
83{
84 ELM_HIGHLIGHT_DIR_FIRST = -1,
85 ELM_HIGHLIGHT_DIR_NEXT,
86 ELM_HIGHLIGHT_DIR_PREVIOUS
87};
88
89/** 112/**
90 * @since 1.8
91 * @typedef Elm_Highlight_Direction
92 */
93typedef enum _Elm_Highlight_Direction Elm_Highlight_Direction;
94
95/**
96 * @since 1.8
97 * @typedef Elm_Access_Action_Cb 113 * @typedef Elm_Access_Action_Cb
114 * @brief Called to make an access object do specific actions.
98 * 115 *
99 * User callback to make access object do specific action 116 * @param[in] data The user data
100 * 117 * @param[in] action_info The information to classify the action
101 * @param data user data 118 * @return @c EINA_TRUE on success, otherwise @c EINA FALSE
102 * @param action_info information to classify the action
103 * Returns @c EINA_TRUE on success, @c EINA FALSE otherwise
104 * 119 *
105 */ 120 */
106typedef Eina_Bool (*Elm_Access_Action_Cb)(void *data, Evas_Object *obj, Elm_Access_Action_Info *action_info); 121typedef Eina_Bool (*Elm_Access_Action_Cb)(void *data, Evas_Object *obj, Elm_Access_Action_Info *action_info);
107 122
108typedef char *(*Elm_Access_Info_Cb)(void *data, Evas_Object *obj);
109typedef void (*Elm_Access_Activate_Cb)(void *data, Evas_Object *part_obj, Elm_Object_Item *item);
110
111
112/** 123/**
113 * @brief Register evas object as an accessible object. 124 * @brief Registers the evas object as an accessible object.
114 * @since 1.8
115 * 125 *
116 * @param obj The evas object to register as an accessible object. 126 * @since 1.8
117 * @param parent The elementary object which is used for creating
118 * accessible object.
119 * 127 *
120 * @ingroup Access 128 * @param[in] obj The evas object to register as an accessible object
129 * @param[in] parent The elementary object which is used for creating
130 * an accessible object
121 */ 131 */
122EAPI Evas_Object *elm_access_object_register(Evas_Object *obj, Evas_Object *parent); 132EAPI Evas_Object *elm_access_object_register(Evas_Object *obj, Evas_Object *parent);
123 133
124/** 134/**
125 * @brief Unregister accessible object. 135 * @brief Unregister the accessible object.
126 * @since 1.8
127 * 136 *
128 * @param obj The Evas object to unregister accessible object. 137 * @since 1.8
129 * 138 *
130 * @ingroup Access 139 * @param[in] obj The Evas object to unregister an accessible object
131 */ 140 */
132EAPI void elm_access_object_unregister(Evas_Object *obj); 141EAPI void elm_access_object_unregister(Evas_Object *obj);
133 142
134/** 143/**
135 * @brief Get an accessible object of the evas object. 144 * @brief Gets an accessible object of the evas object.
136 * @since 1.8
137 * 145 *
138 * @param obj The evas object. 146 * @since 1.8
139 * @return Accessible object of the evas object or NULL for any error
140 * 147 *
141 * @ingroup Access 148 * @param[in] obj The evas object
149 * @return The accessible object of the evas object, otherwise @c NULL in case of an error
142 */ 150 */
143EAPI Evas_Object *elm_access_object_get(const Evas_Object *obj); 151EAPI Evas_Object *elm_access_object_get(const Evas_Object *obj);
144 152
145/** 153/**
146 * @brief Set text to give information for specific type. 154 * @brief Sets text to give information for a specific type.
155 *
147 * @since 1.8 156 * @since 1.8
148 * 157 *
149 * @param obj Accessible object. 158 * @param[in] obj The accessible object
150 * @param type The type of content that will be read 159 * @param[in] type The type of content that is read
151 * @param text The text information that will be read 160 * @param[in] text The text information that is read
152 * 161 *
153 * @see elm_access_info_cb_set 162 * @see elm_access_info_cb_set
154 * @ingroup Access
155 */ 163 */
156EAPI void elm_access_info_set(Evas_Object *obj, int type, const char *text); 164EAPI void elm_access_info_set(Evas_Object *obj, int type, const char *text);
157 165
158/** 166/**
159 * @brief Set text to give information for specific type. 167 * @brief Sets text to give information for a specific type.
168 *
160 * @since 1.8 169 * @since 1.8
161 * 170 *
162 * @param obj Accessible object. 171 * @param[in] obj The accessible object
163 * @param type The type of content that will be read 172 * @param[in] type The type of content that is read
164 * 173 *
165 * @see elm_access_info_cb_set 174 * @see elm_access_info_cb_set
166 * @ingroup Access
167 */ 175 */
168EAPI char *elm_access_info_get(const Evas_Object *obj, int type); 176EAPI char *elm_access_info_get(const Evas_Object *obj, int type);
169 177
170/** 178/**
171 * @brief Set content callback to give information for specific type. 179 * @brief Sets a content callback to give information for a specific type.
172 * @since 1.8
173 * 180 *
174 * @param obj Accessible object. 181 * @since 1.8
175 * @param type The type of content that will be read
176 * @param func The function to be called when the content is read
177 * @param data The data pointer to be passed to @p func
178 * 182 *
179 * The type would be one of ELM_ACCESS_TYPE, ELM_ACCESS_INFO, 183 * @remarks The type would be one from @c ELM_ACCESS_TYPE, @c ELM_ACCESS_INFO,
180 * ELM_ACCESS_STATE, ELM_ACCESS_CONTEXT_INFO. 184 * @c ELM_ACCESS_STATE, or @c ELM_ACCESS_CONTEXT_INFO.
181 * 185 *
182 * In the case of button widget, the content of ELM_ACCESS_TYPE would be 186 * @remarks In the case of button widget, the content of @c ELM_ACCESS_TYPE would be
183 * "button". The label of button such as "ok", "cancel" is for ELM_ACCESS_INFO. 187 * "button". The label of the button such as "ok", "cancel" is for @c ELM_ACCESS_INFO.
184 * If the button is disabled, content of ELM_ACCESS_STATE would be "disabled". 188 * If the button is disabled, content of @c ELM_ACCESS_STATE would be "disabled".
185 * And if there is contextual information, use ELM_ACCESS_CONTEXT_INFO. 189 * And if there is contextual information, use @c ELM_ACCESS_CONTEXT_INFO.
186 * 190 *
187 * @ingroup Access 191 * @param[in] obj The accessible object
192 * @param[in] type The type of content that is read
193 * @param[in] func The function to be called when the content is read
194 * @param[in] data The data pointer to be passed to @a func
188 */ 195 */
189EAPI void elm_access_info_cb_set(Evas_Object *obj, int type, Elm_Access_Info_Cb func, const void *data); 196EAPI void elm_access_info_cb_set(Evas_Object *obj, int type, Elm_Access_Info_Cb func, const void *data);
190 197
191/** 198/**
192 * @brief Set activate callback to activate highlight object. 199 * @brief Sets an activate callback to activate the highlight object.
193 * @since 1.8
194 * 200 *
195 * @param obj Accessible object. 201 * @since 1.8
196 * @param func The function to be called when the activate gesture is detected
197 * @param data The data pointer to be passed to @p func
198 * 202 *
199 * @ingroup Access 203 * @param[in] obj The accessible object
204 * @param[in] func The function to be called when the activate gesture is detected
205 * @param[in] data The data pointer to be passed to @a func
200 */ 206 */
201EAPI void elm_access_activate_cb_set(Evas_Object *obj, Elm_Access_Activate_Cb func, void *data); 207EAPI void elm_access_activate_cb_set(Evas_Object *obj, Elm_Access_Activate_Cb func, void *data);
202 208
203/** 209/**
204 * @brief Read out text information directly. 210 * @brief Reads out text information directly.
211 *
205 * @since 1.8 212 * @since 1.8
206 * 213 *
207 * @param text The text information that will be read 214 * @remarks This function does not free the @a text internally.
208 * 215 *
216 * @param[in] text The text information that is read
217 */
218EAPI void elm_access_say(const char *text);
219
220/**
221 * @brief Read out text information forcibly and directly.
222 * @since 1.11
223 *
224 * @param[in] text The text information that will be read
225 *
226 * This text isn't interupted any other elm_access_say.
227 * Don't use this API continuous and repeatedly
209 * This function will not free the @p text internally. 228 * This function will not free the @p text internally.
210 * 229 *
211 * @ingroup Access 230 * @ingroup Access
212 */ 231 */
213EAPI void elm_access_say(const char *text); 232EAPI void elm_access_force_say(const char *text);
214 233
215/** 234/**
216 * @brief Give the highlight to the object directly. 235 * @brief Gives the highlight to the object directly.
236 *
217 * @since 1.8 237 * @since 1.8
218 * 238 *
219 * @param obj The object that will have the highlight and its information be read. 239 * @remarks The object should be an elementary object or an access object.
220 * 240 *
221 * The object should be an elementary object or an access object. 241 * @param[in] obj The object that has the highlight and its information to be read
222 * 242 *
223 * @see elm_access_object_get 243 * @see elm_access_object_get
224 * @ingroup Access
225 */ 244 */
226EAPI void elm_access_highlight_set(Evas_Object* obj); 245EAPI void elm_access_highlight_set(Evas_Object* obj);
227 246
228/** 247/**
248 * @brief Gives the highlight to the item directly.
249 *
250 * @since 1.8
251 *
252 * @remarks This API works like elm_access_highlight_set().
253 * Just the given parameter is different.
254 *
255 * @param[in] item The item that has the highlight and its information to be read
256 *
257 * @see elm_access_highlight_set
258 */
259EAPI void elm_access_item_highlight_set(Elm_Object_Item *item);
260
261/**
262 * @brief Sets the next access object for the highlight.
263 *
264 * @since 1.8
265 *
266 * @remarks Currently the focus chain is used for accessing the highlight direction. Use this API
267 * to customize the focus chain. If the focus chain is already established, you can
268 * change one object's highlight chain and not break the other object's
269 * focus chain. If you use elm_object_focus_custom_chain_append(), it
270 * resets another object's custom chain also.
271 *
272 * @param[in] obj The object which is a previous access or widget object of the next object for highlight
273 * @param[in] dir The access direction which is same as the focus direction
274 * @param[in] next The object which is a next access object of @a obj for highlight
275 *
276 * @see elm_object_focus_custom_chain_append
277 */
278EAPI void
279elm_access_highlight_next_set(Evas_Object *obj, Elm_Highlight_Direction dir, Evas_Object *next);
280
281/**
282 * @brief Set the end of whole acces chain.
283 * @since 1.9
284 *
285 * @remarks If the access highlight reaches to start or end of an access chain,
286 * it should notice the situation. In some case, the application can change
287 * the order of access chain. In that case, the application have to set
288 * the end of access chain.
289 *
290 * @param[in] obj The object is in the end of access chain.
291 * @param[in] dir Access direction same as Focus direction
292 */
293EAPI void elm_access_chain_end_set(Evas_Object *obj, Elm_Highlight_Direction dir);
294
295/**
229 * @brief Do the accessibility action base on given object. 296 * @brief Do the accessibility action base on given object.
230 * @since 1.8 297 * @since 1.8
231 * 298 *
232 * @param obj The object that could be an any object. it would be useful to use a container widget. 299 * @param[in] obj The object that could be an any object. it would be useful to use a container widget.
233 * @param type The type of accessibility action. 300 * @param[in] type The type of accessibility action.
234 * @param action_info The action information of action @p type to give more specific information. 301 * @param[in] action_info The action information of action @p type to give more specific information.
235 * 302 *
236 * @return @c EINA_TRUE on success, @c EINA_FALSE otherwise 303 * @return @c EINA_TRUE on success, @c EINA_FALSE otherwise
237 * 304 *
238 * The return value would be useful, when the @p type is ELM_ACCESS_ACTION_HIGHLIGHT_NEXT 305 * The return value would be useful, when the @p type is ELM_ACCESS_ACTION_HIGHLIGHT_NEXT
239 * or ELM_ACCESS_ACTION_HIGHLIGHT_PREV. If there is no way to give a highlight, 306 * or ELM_ACCESS_ACTION_HIGHLIGHT_PREV. If there is no way to give a highlight,
240 * @c EINA_FALSE will be returned. 307 * @c EINA_FALSE will be returned.
241 *
242 * @ingroup Access
243 */ 308 */
244EAPI Eina_Bool elm_access_action(Evas_Object *obj, const Elm_Access_Action_Type type, Elm_Access_Action_Info *action_info); 309EAPI Eina_Bool elm_access_action(Evas_Object *obj, const Elm_Access_Action_Type type, void *action_info);
245 310
246/** 311/**
247 * @brief Set a callback function to a given accessibility action type 312 * @brief Set a callback function to a given accessibility action type
248 * @since 1.8 313 * @since 1.8
249 * 314 *
250 * @param obj The object to attach a callback to 315 * @param[in] obj The object to attach a callback to
251 * @param type The type of accessibility action. 316 * @param[in] type The type of accessibility action.
252 * @param cb The callback function to be called when the accessibility action is triggered. 317 * @param[in] cb The callback function to be called when the accessibility action is triggered.
253 * @param data The data pointer to be passed to @p cb 318 * @param[in] data The data pointer to be passed to @p cb
254 *
255 * @ingroup Access
256 */ 319 */
257EAPI void elm_access_action_cb_set(Evas_Object *obj, const Elm_Access_Action_Type type, const Elm_Access_Action_Cb cb, const void *data); 320EAPI void elm_access_action_cb_set(Evas_Object *obj, const Elm_Access_Action_Type type, const Elm_Access_Action_Cb cb, const void *data);
258 321
322//TODO: remvoe below - use elm_access_text_set(); or elm_access_cb_set();
323EINA_DEPRECATED EAPI void elm_access_external_info_set(Evas_Object *obj, const char *text);
324EINA_DEPRECATED EAPI char *elm_access_external_info_get(const Evas_Object *obj);
325
259/** 326/**
260 * @brief Set the next access object for highlight. 327 * @}
261 * @since 1.8
262 *
263 * @param obj The object is previous access object of next for hilight.
264 * @param dir Access direction same as Focus direction
265 * @param next The object is next access object of obj for hilight.
266 *
267 * Currently focus chain is used for access highlight chain. Use this API to
268 * customize highlight chain. If highlight chain is already established, you can
269 * change one object's highlight chain and do not break the other object's
270 * highlight chain.
271 *
272 * @ingroup Access
273 */ 328 */
274EAPI void
275elm_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 @@
1/** 1/**
2 * @addtogroup Actionslider Actionslider 2 * @internal
3 * @defgroup Actionslider Actionslider
3 * @ingroup Elementary 4 * @ingroup Elementary
4 * 5 *
5 * @image html actionslider_inheritance_tree.png 6 * @image html actionslider_inheritance_tree.png
@@ -8,10 +9,10 @@
8 * @image html img/widget/actionslider/preview-00.png 9 * @image html img/widget/actionslider/preview-00.png
9 * @image latex img/widget/actionslider/preview-00.eps 10 * @image latex img/widget/actionslider/preview-00.eps
10 * 11 *
11 * An actionslider is a switcher for 2 or 3 labels with customizable magnet 12 * An actionslider is a switcher for @c 2 or @c 3 labels with customizable magnet
12 * properties. The user drags and releases the indicator, to choose a label. 13 * properties. The user drags and releases the indicator, to choose a label.
13 * 14 *
14 * Labels occupy the following positions. 15 * Labels occupy the following positions:
15 * a. Left 16 * a. Left
16 * b. Right 17 * b. Right
17 * c. Center 18 * c. Center
@@ -20,43 +21,110 @@
20 * 21 *
21 * Magnets can be set on the above positions. 22 * Magnets can be set on the above positions.
22 * 23 *
23 * When the indicator is released, it will move to its nearest 24 * When the indicator is released, it moves to its nearest
24 * "enabled and magnetized" position. 25 * "enabled and magnetized" position.
25 * 26 *
26 * @note By default all positions are set as enabled. 27 * By default, all positions are set as enabled.
27 * 28 *
28 * This widget inherits from the @ref Layout one, so that all the 29 * This widget inherits from the @ref Layout one, so that all the
29 * functions acting on it also work for actionslider objects. 30 * functions acting on it also work for actionslider objects.
30 * 31 *
31 * This widget emits the following signals, besides the ones sent from 32 * This widget emits the following signals, besides the ones sent from
32 * @ref Layout: 33 * @ref Layout :
33 * @li @c "selected" - when user selects an enabled position (the 34 * @li @c "selected" - When the user selects an enabled position (the
34 * label is passed as event info). 35 * label is passed as event info).
35 * @li @c "pos_changed" - when the indicator reaches any of the 36 * @li @c "pos_changed" - When the indicator reaches any of the
36 * positions("left", "right" or "center"). 37 * positions("left", "right" or "center").
37 * @li @c "language,changed" - the program's language changed (since 1.9)
38 * 38 *
39 * Default text parts of the actionslider widget that you can use for are: 39 * The default text parts of the actionslider widget that you can use are:
40 * @li "indicator" - An indicator label of the actionslider 40 * @li "indicator" - An indicator label of the actionslider.
41 * @li "left" - A left label of the actionslider 41 * @li "left" - A left label of the actionslider.
42 * @li "right" - A right label of the actionslider 42 * @li "right" - A right label of the actionslider.
43 * @li "center" - A center label of the actionslider 43 * @li "center" - A center label of the actionslider.
44 * 44 *
45 * Supported elm_object common APIs. 45 * Supported common elm_object APIs.
46 * @li @ref elm_object_part_text_set 46 * @li @ref elm_object_part_text_set
47 * @li @ref elm_object_part_text_get 47 * @li @ref elm_object_part_text_get
48 * 48 *
49 * See an example of actionslider usage @ref actionslider_example_page "here"
50 * @{ 49 * @{
51 */ 50 */
51typedef enum
52{
53 ELM_ACTIONSLIDER_NONE = 0,
54 ELM_ACTIONSLIDER_LEFT = 1 << 0,
55 ELM_ACTIONSLIDER_CENTER = 1 << 1,
56 ELM_ACTIONSLIDER_RIGHT = 1 << 2,
57 ELM_ACTIONSLIDER_ALL = (1 << 3) - 1
58} Elm_Actionslider_Pos;
59
60/**
61 * @brief Adds a new actionslider to the parent.
62 *
63 * @param[in] parent The parent object
64 * @return The new actionslider object, otherwise @c NULL if it cannot be created
65 */
66EAPI Evas_Object *elm_actionslider_add(Evas_Object *parent);
67
68/**
69 * @brief Gets the actionslider selected label.
70 *
71 * @param[in] obj The actionslider object
72 * @return The selected label
73 */
74EAPI const char *elm_actionslider_selected_label_get(const Evas_Object *obj);
75
76/**
77 * @brief Sets the actionslider indicator position.
78 *
79 * @param[in] obj The actionslider object
80 * @param[in] pos The position of the indicator
81 */
82EAPI void elm_actionslider_indicator_pos_set(Evas_Object *obj, Elm_Actionslider_Pos pos);
83
84/**
85 * @brief Gets the actionslider indicator position.
86 *
87 * @param[in] obj The actionslider object
88 * @return The position of the indicator
89 */
90EAPI Elm_Actionslider_Pos elm_actionslider_indicator_pos_get(const Evas_Object *obj);
91
92/**
93 * @brief Sets the actionslider magnet position. To make multiple positions magnets as enabled @c or
94 * them together(e.g.: @c ELM_ACTIONSLIDER_LEFT | @c ELM_ACTIONSLIDER_RIGHT).
95 *
96 * @param[in] obj The actionslider object
97 * @param[in] pos The bit mask indicating the magnet positions
98 */
99EAPI void elm_actionslider_magnet_pos_set(Evas_Object *obj, Elm_Actionslider_Pos pos);
100
101/**
102 * @brief Gets the actionslider magnet position.
103 *
104 * @param[in] obj The actionslider object
105 * @return The positions with the magnet property
106 */
107EAPI Elm_Actionslider_Pos elm_actionslider_magnet_pos_get(const Evas_Object *obj);
108
109/**
110 * @brief Sets the actionslider enabled position. To set multiple positions as enabled OR
111 * them together(e.g.: @c ELM_ACTIONSLIDER_LEFT | @c ELM_ACTIONSLIDER_RIGHT).
112 *
113 * @remarks All the positions are enabled by default.
114 *
115 * @param[in] obj The actionslider object
116 * @param[in] pos The bit mask indicating the enabled positions
117 */
118EAPI void elm_actionslider_enabled_pos_set(Evas_Object *obj, Elm_Actionslider_Pos pos);
119
120/**
121 * @brief Gets the actionslider enabled position.
122 *
123 * @param[in] obj The actionslider object
124 * @return The enabled positions
125 */
126EAPI Elm_Actionslider_Pos elm_actionslider_enabled_pos_get(const Evas_Object *obj);
52 127
53#include "elm_actionslider_common.h"
54#ifdef EFL_EO_API_SUPPORT
55#include "elm_actionslider_eo.h"
56#endif
57#ifndef EFL_NOLEGACY_API_SUPPORT
58#include "elm_actionslider_legacy.h"
59#endif
60/** 128/**
61 * @} 129 * @}
62 */ 130 */
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 @@
1/** 1/**
2 * @defgroup App App 2 * @defgroup App App
3 * @ingroup Elementary 3 * @ingroup elm_infra_group
4 * Provide information in order to make Elementary determine the @b 4 * @brief This group provides functions to get the application information.
5 * run time location of the software in question, so other data files 5 *
6 * such as images, sound files, executable utilities, libraries,
7 * modules and locale files can be found.
8 */
9
10/**
11 * @addtogroup App
12 * @{ 6 * @{
13 */ 7 */
14 8
15/** 9/**
16 * Re-locate the application somewhere else after compilation, if the developer 10 * @brief Provides information in order to make Elementary determine the @b
17 * wishes for easier distribution of pre-compiled binaries. 11 * run time location of the software in question, so other data files
18 * 12 * such as images, sound files, executable utilities, libraries,
19 * @param mainfunc This is your application's main function name, 13 * modules and locale files can be found.
20 * whose binary's location is to be found. Providing @c NULL 14 *
21 * will make Elementary not to use it 15 * @since_tizen 2.3
22 * @param dom This will be used as the application's "domain", in the 16 *
23 * form of a prefix to any environment variables that may 17 * @remarks This function allows one to re-locate the application somewhere
24 * override prefix detection and the directory name, inside the 18 * else after compilation, if the developer wishes for easier
25 * standard share or data directories, where the software's 19 * distribution of pre-compiled binaries.
26 * data files will be looked for. 20 *
27 * @param checkfile This is an (optional) magic file's path to check 21 * @remarks The prefix system is designed to locate where the given software is
28 * for existence (and it must be located in the data directory, 22 * installed (under a common path prefix) at run time and then report
29 * under the share directory provided above). Its presence will 23 * specific locations of this prefix and common directories inside
30 * help determine the prefix found was correct. Pass @c NULL if 24 * this prefix like the binary, library, data, and locale directories,
31 * the check is not to be done. 25 * through the @c elm_app_*_get() family of functions.
32 * 26 *
33 * The prefix system is designed to locate where the given software is 27 * @remarks Call elm_app_info_set() early, before you change the working
34 * installed (under a common path prefix) at run time and then report 28 * directory or anything about @c argv[0], so it gets accurate
35 * specific locations of this prefix and common directories inside 29 * information.
36 * this prefix like the binary, library, data and locale directories, 30 *
37 * through the @c elm_app_*_get() family of functions. 31 * It then tries to trace back which file @a mainfunc comes from,
38 * 32 * if provided, to determine the application's prefix directory.
39 * Call elm_app_info_set() early on before you change working 33 *
40 * directory or anything about @c argv[0], so it gets accurate 34 * @remarks The @a dom parameter provides a string prefix to prepend before
41 * information. 35 * environment variables, allowing a fallback to @b specific
42 * 36 * environment variables to locate the software. You would most
43 * It will then try and trace back which file @p mainfunc comes from, 37 * probably provide a lowercase string there, because it also
44 * if provided, to determine the application's prefix directory. 38 * serves as the directory domain, explained next. For environment
45 * 39 * variables purposes, this string is made uppercase. For example if
46 * The @p dom parameter provides a string prefix to prepend before 40 * @c "myapp" is provided as the prefix, then the program would expect
47 * environment variables, allowing a fallback to @b specific 41 * @c "MYAPP_PREFIX" as a master environment variable to specify the
48 * environment variables to locate the software. You would most 42 * exact install prefix for the software, or more specific environment
49 * probably provide a lowercase string there, because it will also 43 * variables like @c "MYAPP_BIN_DIR", @c "MYAPP_LIB_DIR", @c
50 * serve as directory domain, explained next. For environment 44 * "MYAPP_DATA_DIR", and @c "MYAPP_LOCALE_DIR", which could be set by
51 * variables purposes, this string is made uppercase. For example if 45 * the user or scripts before launching. If not provided (@c NULL),
52 * @c "myapp" is provided as the prefix, then the program would expect 46 * environment variables are not used to override compiled-in
53 * @c "MYAPP_PREFIX" as a master environment variable to specify the 47 * defaults or auto detections.
54 * exact install prefix for the software, or more specific environment 48 *
55 * variables like @c "MYAPP_BIN_DIR", @c "MYAPP_LIB_DIR", @c 49 * The @a dom string also provides a subdirectory inside the system
56 * "MYAPP_DATA_DIR" and @c "MYAPP_LOCALE_DIR", which could be set by 50 * shared data directory for data files. For example, if the system
57 * the user or scripts before launching. If not provided (@c NULL), 51 * directory is @c /usr/local/share, then this directory name is
58 * environment variables will not be used to override compiled-in 52 * appended, creating @c /usr/local/share/myapp, if it @b is @c
59 * defaults or auto detections. 53 * "myapp". It is expected that the application installs data files in
60 * 54 * this directory.
61 * The @p dom string also provides a subdirectory inside the system 55 *
62 * shared data directory for data files. For example, if the system 56 * @remarks The @a checkfile is a file name or path of something inside the
63 * directory is @c /usr/local/share, then this directory name is 57 * share or data directory to be used to test if the prefix
64 * appended, creating @c /usr/local/share/myapp, if it @p was @c 58 * detection worked. For example, your app installs a wallpaper
65 * "myapp". It is expected that the application installs data files in 59 * image as @c /usr/local/share/myapp/images/wallpaper.jpg and so to
66 * this directory. 60 * check that this worked, provide @c "images/wallpaper.jpg" as the @a
67 * 61 * checkfile string.
68 * The @p checkfile is a file name or path of something inside the 62 *
69 * share or data directory to be used to test that the prefix 63 * @param[in] mainfunc This is your application's main function name,
70 * detection worked. For example, your app will install a wallpaper 64 * whose binary's location is to be found \n
71 * image as @c /usr/local/share/myapp/images/wallpaper.jpg and so to 65 * Providing @c NULL makes Elementary not use it
72 * check that this worked, provide @c "images/wallpaper.jpg" as the @p 66 * @param[in] dom This is used as the application's "domain", in the
73 * checkfile string. 67 * form of a prefix to any environment variables that may
68 * override prefix detection and the directory name, inside the
69 * standard share or data directories, where the software's
70 * data files are looked for
71 * @param[in] checkfile This is an (optional) magic file's path to check
72 * for existence (and it must be located in the data directory,
73 * under the share directory provided above) \n
74 * Its presence helps determine whther the prefix found is correct \n
75 * Pass @c NULL if the check is not to be done.
74 * 76 *
75 * @see elm_app_compile_bin_dir_set() 77 * @see elm_app_compile_bin_dir_set()
76 * @see elm_app_compile_lib_dir_set() 78 * @see elm_app_compile_lib_dir_set()
@@ -81,214 +83,183 @@
81 * @see elm_app_lib_dir_get() 83 * @see elm_app_lib_dir_get()
82 * @see elm_app_data_dir_get() 84 * @see elm_app_data_dir_get()
83 * @see elm_app_locale_dir_get() 85 * @see elm_app_locale_dir_get()
84 *
85 * @ingroup App
86 */ 86 */
87EAPI void elm_app_info_set(void *mainfunc, const char *dom, const char *checkfile); 87EAPI void elm_app_info_set(void *mainfunc, const char *dom, const char *checkfile);
88 88
89/** 89/**
90 * Set a formal name to be used with the elm application. 90 * @brief Set a formal name to be used with the elm application.
91 * 91 *
92 * @param name Application name. 92 * @since_tizen 2.3
93 * 93 *
94 * @ingroup App 94 * @param[in] name Application name.
95 * @since 1.8
96 */ 95 */
97EAPI void elm_app_name_set(const char *name); 96EAPI void elm_app_name_set(const char *name);
98 97
99/** 98/**
100 * Set the path to the '.desktop' file to be associated 99 * @brief Provides information on the @b fallback application's binaries
101 * with the elm application. 100 * directory, in scenarios where they get overridden by
102 * 101 * elm_app_info_set().
103 * @param path The path to the '.desktop' file
104 *
105 * @warning Since this path is very environment dependent,
106 * this will hold whatever value is passed to it.
107 *
108 * @ingroup App
109 * @since 1.8
110 */
111EAPI void elm_app_desktop_entry_set(const char *path);
112
113/**
114 * Provide information on the @b fallback application's binaries
115 * directory, in scenarios where they get overridden by
116 * elm_app_info_set().
117 * 102 *
118 * @param dir The pa