2 * @defgroup File_Selector_Button File Selector Button
4 * @image html img/widget/fileselector_button/preview-00.png
5 * @image latex img/widget/fileselector_button/preview-00.eps
6 * @image html img/widget/fileselector_button/preview-01.png
7 * @image latex img/widget/fileselector_button/preview-01.eps
8 * @image html img/widget/fileselector_button/preview-02.png
9 * @image latex img/widget/fileselector_button/preview-02.eps
11 * This is a button that, when clicked, creates an Elementary
12 * window (or inner window) <b> with a @ref Fileselector "file
13 * selector widget" within</b>. When a file is chosen, the (inner)
14 * window is closed and the button emits a signal having the
15 * selected file as it's @c event_info.
17 * This widget encapsulates operations on its internal file
18 * selector on its own API. There is less control over its file
19 * selector than that one would have instatiating one directly.
21 * The following styles are available for this button:
24 * @li @c "hoversel_vertical"
25 * @li @c "hoversel_vertical_entry"
27 * Smart callbacks one can register to:
28 * - @c "file,chosen" - the user has selected a path, whose string
29 * pointer comes as the @c event_info data (a stringshared
32 * Here is an example on its usage:
33 * @li @ref fileselector_button_example
35 * @see @ref File_Selector_Entry for a similar widget.
40 * Add a new file selector button widget to the given parent
41 * Elementary (container) object
43 * @param parent The parent object
44 * @return a new file selector button widget handle or @c NULL, on
48 elm_fileselector_button_add(Evas_Object *parent)
52 * Set the label for a given file selector button widget
54 * @param obj The file selector button widget
55 * @param label The text label to be displayed on @p obj
57 * @deprecated use elm_object_text_set() instead.
59 EINA_DEPRECATED EAPI void elm_fileselector_button_label_set(Evas_Object *obj, const char *label) EINA_ARG_NONNULL(1);
62 * Get the label set for a given file selector button widget
64 * @param obj The file selector button widget
65 * @return The button label
67 * @deprecated use elm_object_text_set() instead.
69 EINA_DEPRECATED EAPI const char *elm_fileselector_button_label_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
72 * Set the icon on a given file selector button widget
74 * @param obj The file selector button widget
75 * @param icon The icon object for the button
77 * Once the icon object is set, a previously set one will be
78 * deleted. If you want to keep the latter, use the
79 * elm_fileselector_button_icon_unset() function.
81 * @see elm_fileselector_button_icon_get()
83 EAPI void elm_fileselector_button_icon_set(Evas_Object *obj, Evas_Object *icon) EINA_ARG_NONNULL(1);
86 * Get the icon set for a given file selector button widget
88 * @param obj The file selector button widget
89 * @return The icon object currently set on @p obj or @c NULL, if
92 * @see elm_fileselector_button_icon_set()
94 EAPI Evas_Object *elm_fileselector_button_icon_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
97 * Unset the icon used in a given file selector button widget
99 * @param obj The file selector button widget
100 * @return The icon object that was being used on @p obj or @c
103 * Unparent and return the icon object which was set for this
106 * @see elm_fileselector_button_icon_set()
108 EAPI Evas_Object *elm_fileselector_button_icon_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
111 * Set the title for a given file selector button widget's window
113 * @param obj The file selector button widget
114 * @param title The title string
116 * This will change the window's title, when the file selector pops
117 * out after a click on the button. Those windows have the default
118 * (unlocalized) value of @c "Select a file" as titles.
120 * @note It will only take any effect if the file selector
121 * button widget is @b not under "inwin mode".
123 * @see elm_fileselector_button_window_title_get()
125 EAPI void elm_fileselector_button_window_title_set(Evas_Object *obj, const char *title) EINA_ARG_NONNULL(1);
128 * Get the title set for a given file selector button widget's
131 * @param obj The file selector button widget
132 * @return Title of the file selector button's window
134 * @see elm_fileselector_button_window_title_get() for more details
136 EAPI const char *elm_fileselector_button_window_title_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
139 * Set the size of a given file selector button widget's window,
140 * holding the file selector itself.
142 * @param obj The file selector button widget
143 * @param width The window's width
144 * @param height The window's height
146 * @note it will only take any effect if the file selector button
147 * widget is @b not under "inwin mode". The default size for the
148 * window (when applicable) is 400x400 pixels.
150 * @see elm_fileselector_button_window_size_get()
152 EAPI void elm_fileselector_button_window_size_set(Evas_Object *obj, Evas_Coord width, Evas_Coord height) EINA_ARG_NONNULL(1);
155 * Get the size of a given file selector button widget's window,
156 * holding the file selector itself.
158 * @param obj The file selector button widget
159 * @param width Pointer into which to store the width value
160 * @param height Pointer into which to store the height value
162 * @note Use @c NULL pointers on the size values you're not
163 * interested in: they'll be ignored by the function.
165 * @see elm_fileselector_button_window_size_set(), for more details
167 EAPI void elm_fileselector_button_window_size_get(const Evas_Object *obj, Evas_Coord *width, Evas_Coord *height) EINA_ARG_NONNULL(1);
170 * Set the initial file system path for a given file selector
173 * @param obj The file selector button widget
174 * @param path The path string
176 * It must be a <b>directory</b> path, which will have the contents
177 * displayed initially in the file selector's view, when invoked
178 * from @p obj. The default initial path is the @c "HOME"
179 * environment variable's value.
181 * @see elm_fileselector_button_path_get()
183 EAPI void elm_fileselector_button_path_set(Evas_Object *obj, const char *path) EINA_ARG_NONNULL(1);
186 * Get the initial file system path set for a given file selector
189 * @param obj The file selector button widget
190 * @return path The path string
192 * @see elm_fileselector_button_path_set() for more details
194 EAPI const char *elm_fileselector_button_path_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
197 * Enable/disable a tree view in the given file selector button
198 * widget's internal file selector
200 * @param obj The file selector button widget
201 * @param value @c EINA_TRUE to enable tree view, @c EINA_FALSE to
204 * This has the same effect as elm_fileselector_expandable_set(),
205 * but now applied to a file selector button's internal file
208 * @note There's no way to put a file selector button's internal
209 * file selector in "grid mode", as one may do with "pure" file
212 * @see elm_fileselector_expandable_get()
214 EAPI void elm_fileselector_button_expandable_set(Evas_Object *obj, Eina_Bool value) EINA_ARG_NONNULL(1);
217 * Get whether tree view is enabled for the given file selector
218 * button widget's internal file selector
220 * @param obj The file selector button widget
221 * @return @c EINA_TRUE if @p obj widget's internal file selector
222 * is in tree view, @c EINA_FALSE otherwise (and or errors)
224 * @see elm_fileselector_expandable_set() for more details
226 EAPI Eina_Bool elm_fileselector_button_expandable_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
229 * Set whether a given file selector button widget's internal file
230 * selector is to display folders only or the directory contents,
233 * @param obj The file selector button widget
234 * @param value @c EINA_TRUE to make @p obj widget's internal file
235 * selector only display directories, @c EINA_FALSE to make files
236 * to be displayed in it too
238 * This has the same effect as elm_fileselector_folder_only_set(),
239 * but now applied to a file selector button's internal file
242 * @see elm_fileselector_folder_only_get()
244 EAPI void elm_fileselector_button_folder_only_set(Evas_Object *obj, Eina_Bool value) EINA_ARG_NONNULL(1);
247 * Get whether a given file selector button widget's internal file
248 * selector is displaying folders only or the directory contents,
251 * @param obj The file selector button widget
252 * @return @c EINA_TRUE if @p obj widget's internal file
253 * selector is only displaying directories, @c EINA_FALSE if files
254 * are being displayed in it too (and on errors)
256 * @see elm_fileselector_button_folder_only_set() for more details
258 EAPI Eina_Bool elm_fileselector_button_folder_only_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
261 * Enable/disable the file name entry box where the user can type
262 * in a name for a file, in a given file selector button widget's
263 * internal file selector.
265 * @param obj The file selector button widget
266 * @param value @c EINA_TRUE to make @p obj widget's internal
267 * file selector a "saving dialog", @c EINA_FALSE otherwise
269 * This has the same effect as elm_fileselector_is_save_set(),
270 * but now applied to a file selector button's internal file
273 * @see elm_fileselector_is_save_get()
275 EAPI void elm_fileselector_button_is_save_set(Evas_Object *obj, Eina_Bool value) EINA_ARG_NONNULL(1);
278 * Get whether the given file selector button widget's internal
279 * file selector is in "saving dialog" mode
281 * @param obj The file selector button widget
282 * @return @c EINA_TRUE, if @p obj widget's internal file selector
283 * is in "saving dialog" mode, @c EINA_FALSE otherwise (and on
286 * @see elm_fileselector_button_is_save_set() for more details
288 EAPI Eina_Bool elm_fileselector_button_is_save_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
291 * Set whether a given file selector button widget's internal file
292 * selector will raise an Elementary "inner window", instead of a
293 * dedicated Elementary window. By default, it won't.
295 * @param obj The file selector button widget
296 * @param value @c EINA_TRUE to make it use an inner window, @c
297 * EINA_TRUE to make it use a dedicated window
299 * @see elm_win_inwin_add() for more information on inner windows
300 * @see elm_fileselector_button_inwin_mode_get()
302 EAPI void elm_fileselector_button_inwin_mode_set(Evas_Object *obj, Eina_Bool value) EINA_ARG_NONNULL(1);
305 * Get whether a given file selector button widget's internal file
306 * selector will raise an Elementary "inner window", instead of a
307 * dedicated Elementary window.
309 * @param obj The file selector button widget
310 * @return @c EINA_TRUE if will use an inner window, @c EINA_TRUE
311 * if it will use a dedicated window
313 * @see elm_fileselector_button_inwin_mode_set() for more details
315 EAPI Eina_Bool elm_fileselector_button_inwin_mode_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);