aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/libraries/elementary/src/lib/elc_fileselector_button.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--libraries/elementary/src/lib/elc_fileselector_button.h306
1 files changed, 306 insertions, 0 deletions
diff --git a/libraries/elementary/src/lib/elc_fileselector_button.h b/libraries/elementary/src/lib/elc_fileselector_button.h
new file mode 100644
index 0000000..3eab292
--- /dev/null
+++ b/libraries/elementary/src/lib/elc_fileselector_button.h
@@ -0,0 +1,306 @@
1/**
2 * @defgroup File_Selector_Button File Selector Button
3 * @ingroup Elementary
4 *
5 * @image html img/widget/fileselector_button/preview-00.png
6 * @image latex img/widget/fileselector_button/preview-00.eps
7 * @image html img/widget/fileselector_button/preview-01.png
8 * @image latex img/widget/fileselector_button/preview-01.eps
9 * @image html img/widget/fileselector_button/preview-02.png
10 * @image latex img/widget/fileselector_button/preview-02.eps
11 *
12 * This is a button that, when clicked, creates an Elementary
13 * window (or inner window) <b> with a @ref Fileselector "file
14 * selector widget" within</b>. When a file is chosen, the (inner)
15 * window is closed and the button emits a signal having the
16 * selected file as it's @c event_info.
17 *
18 * This widget encapsulates operations on its internal file
19 * selector on its own API. There is less control over its file
20 * selector than that one would have instantiating one directly.
21 *
22 * The following styles are available for this button:
23 * @li @c "default"
24 * @li @c "anchor"
25 * @li @c "hoversel_vertical"
26 * @li @c "hoversel_vertical_entry"
27 *
28 * Smart callbacks one can register to:
29 * - @c "file,chosen" - the user has selected a path, whose string
30 * pointer comes as the @c event_info data (a stringshared
31 * string)
32 *
33 * Default text parts of the fileselector_button widget that you can use for
34 * are:
35 * @li "default" - Label of the fileselector_button
36 *
37 * Default content parts of the fileselector_button widget that you can use for
38 * are:
39 * @li "icon" - Icon of the fileselector_button
40 *
41 * Supported elm_object common APIs.
42 * @li @ref elm_object_part_text_set
43 * @li @ref elm_object_part_text_get
44 * @li @ref elm_object_part_content_set
45 * @li @ref elm_object_part_content_get
46 * @li @ref elm_object_part_content_unset
47 * @li @ref elm_object_disabled_set
48 * @li @ref elm_object_disabled_get
49 *
50 * Here is an example on its usage:
51 * @li @ref fileselector_button_example
52 *
53 * @see @ref File_Selector_Entry for a similar widget.
54 * @{
55 */
56
57/**
58 * Add a new file selector button widget to the given parent
59 * Elementary (container) object
60 *
61 * @param parent The parent object
62 * @return a new file selector button widget handle or @c NULL, on
63 * errors
64 *
65 * @ingroup File_Selector_Button
66 */
67EAPI Evas_Object *elm_fileselector_button_add(Evas_Object *parent);
68
69/**
70 * Set the title for a given file selector button widget's window
71 *
72 * @param obj The file selector button widget
73 * @param title The title string
74 *
75 * This will change the popup window's title, when the file selector pops
76 * out after a click on the button. Those windows have the default
77 * (unlocalized) value of @c "Select a file" as titles.
78 *
79 * @note It will only take effect if the file selector
80 * button widget is @b not under "inwin mode".
81 *
82 * @see elm_fileselector_button_window_title_get()
83 *
84 * @ingroup File_Selector_Button
85 */
86EAPI void elm_fileselector_button_window_title_set(Evas_Object *obj, const char *title);
87
88/**
89 * Get the title for a given file selector button widget's
90 * window
91 *
92 * @param obj The file selector button widget
93 * @return Title of the file selector button's window
94 *
95 * @see elm_fileselector_button_window_title_get() for more details
96 *
97 * @ingroup File_Selector_Button
98 */
99EAPI const char *elm_fileselector_button_window_title_get(const Evas_Object *obj);
100
101/**
102 * Set the size of a given file selector button widget's window,
103 * holding the file selector itself.
104 *
105 * @param obj The file selector button widget
106 * @param width The window's width
107 * @param height The window's height
108 *
109 * @note it will only take any effect if the file selector button
110 * widget is @b not under "inwin mode". The default size for the
111 * window (when applicable) is 400x400 pixels.
112 *
113 * @see elm_fileselector_button_window_size_get()
114 *
115 * @ingroup File_Selector_Button
116 */
117EAPI void elm_fileselector_button_window_size_set(Evas_Object *obj, Evas_Coord width, Evas_Coord height);
118
119/**
120 * Get the size of a given file selector button widget's window,
121 * holding the file selector itself.
122 *
123 * @param obj The file selector button widget
124 * @param width Pointer into which to store the width value
125 * @param height Pointer into which to store the height value
126 *
127 * @note Use @c NULL pointers on the size values you're not
128 * interested in: they'll be ignored by the function.
129 *
130 * @see elm_fileselector_button_window_size_set(), for more details
131 *
132 * @ingroup File_Selector_Button
133 */
134EAPI void elm_fileselector_button_window_size_get(const Evas_Object *obj, Evas_Coord *width, Evas_Coord *height);
135
136/**
137 * Set the initial file system path for a given file selector
138 * button widget
139 *
140 * @param obj The file selector button widget
141 * @param path The path string
142 *
143 * It must be a <b>directory</b> path, which will have the contents
144 * displayed initially in the file selector's view, when invoked
145 * from @p obj. The default initial path is the @c "HOME"
146 * environment variable's value.
147 *
148 * @see elm_fileselector_button_path_get()
149 *
150 * @ingroup File_Selector_Button
151 */
152EAPI void elm_fileselector_button_path_set(Evas_Object *obj, const char *path);
153
154/**
155 * Get the initial file system path set for a given file selector
156 * button widget
157 *
158 * @param obj The file selector button widget
159 * @return path The path string
160 *
161 * @see elm_fileselector_button_path_set() for more details
162 *
163 * @ingroup File_Selector_Button
164 */
165EAPI const char *elm_fileselector_button_path_get(const Evas_Object *obj);
166
167/**
168 * Enable/disable a tree view in the given file selector button
169 * widget's internal file selector
170 *
171 * @param obj The file selector button widget
172 * @param value @c EINA_TRUE to enable tree view, @c EINA_FALSE to
173 * disable
174 *
175 * This has the same effect as elm_fileselector_expandable_set(),
176 * but now applied to a file selector button's internal file
177 * selector.
178 *
179 * @note There's no way to put a file selector button's internal
180 * file selector in "grid mode", as one may do with "pure" file
181 * selectors.
182 *
183 * @see elm_fileselector_expandable_get()
184 *
185 * @ingroup File_Selector_Button
186 */
187EAPI void elm_fileselector_button_expandable_set(Evas_Object *obj, Eina_Bool value);
188
189/**
190 * Get whether tree view is enabled for the given file selector
191 * button widget's internal file selector
192 *
193 * @param obj The file selector button widget
194 * @return @c EINA_TRUE if @p obj widget's internal file selector
195 * is in tree view, @c EINA_FALSE otherwise (and or errors)
196 *
197 * @see elm_fileselector_expandable_set() for more details
198 *
199 * @ingroup File_Selector_Button
200 */
201EAPI Eina_Bool elm_fileselector_button_expandable_get(const Evas_Object *obj);
202
203/**
204 * Set whether a given file selector button widget's internal file
205 * selector is to display folders only or the directory contents,
206 * as well.
207 *
208 * @param obj The file selector button widget
209 * @param value @c EINA_TRUE to make @p obj widget's internal file
210 * selector only display directories, @c EINA_FALSE to make files
211 * to be displayed in it too
212 *
213 * This has the same effect as elm_fileselector_folder_only_set(),
214 * but now applied to a file selector button's internal file
215 * selector.
216 *
217 * @see elm_fileselector_folder_only_get()
218 *
219 * @ingroup File_Selector_Button
220 */
221EAPI void elm_fileselector_button_folder_only_set(Evas_Object *obj, Eina_Bool value);
222
223/**
224 * Get whether a given file selector button widget's internal file
225 * selector is displaying folders only or the directory contents,
226 * as well.
227 *
228 * @param obj The file selector button widget
229 * @return @c EINA_TRUE if @p obj widget's internal file
230 * selector is only displaying directories, @c EINA_FALSE if files
231 * are being displayed in it too (and on errors)
232 *
233 * @see elm_fileselector_button_folder_only_set() for more details
234 *
235 * @ingroup File_Selector_Button
236 */
237EAPI Eina_Bool elm_fileselector_button_folder_only_get(const Evas_Object *obj);
238
239/**
240 * Enable/disable the file name entry box where the user can type
241 * in a name for a file, in a given file selector button widget's
242 * internal file selector.
243 *
244 * @param obj The file selector button widget
245 * @param value @c EINA_TRUE to make @p obj widget's internal
246 * file selector a "saving dialog", @c EINA_FALSE otherwise
247 *
248 * This has the same effect as elm_fileselector_is_save_set(),
249 * but now applied to a file selector button's internal file
250 * selector.
251 *
252 * @see elm_fileselector_is_save_get()
253 *
254 * @ingroup File_Selector_Button
255 */
256EAPI void elm_fileselector_button_is_save_set(Evas_Object *obj, Eina_Bool value);
257
258/**
259 * Get whether the given file selector button widget's internal
260 * file selector is in "saving dialog" mode
261 *
262 * @param obj The file selector button widget
263 * @return @c EINA_TRUE, if @p obj widget's internal file selector
264 * is in "saving dialog" mode, @c EINA_FALSE otherwise (and on
265 * errors)
266 *
267 * @see elm_fileselector_button_is_save_set() for more details
268 *
269 * @ingroup File_Selector_Button
270 */
271EAPI Eina_Bool elm_fileselector_button_is_save_get(const Evas_Object *obj);
272
273/**
274 * Set whether a given file selector button widget's internal file
275 * selector will raise an Elementary "inner window", instead of a
276 * dedicated Elementary window. By default, it won't.
277 *
278 * @param obj The file selector button widget
279 * @param value @c EINA_TRUE to make it use an inner window, @c
280 * EINA_TRUE to make it use a dedicated window
281 *
282 * @see elm_win_inwin_add() for more information on inner windows
283 * @see elm_fileselector_button_inwin_mode_get()
284 *
285 * @ingroup File_Selector_Button
286 */
287EAPI void elm_fileselector_button_inwin_mode_set(Evas_Object *obj, Eina_Bool value);
288
289/**
290 * Get whether a given file selector button widget's internal file
291 * selector will raise an Elementary "inner window", instead of a
292 * dedicated Elementary window.
293 *
294 * @param obj The file selector button widget
295 * @return @c EINA_TRUE if will use an inner window, @c EINA_TRUE
296 * if it will use a dedicated window
297 *
298 * @see elm_fileselector_button_inwin_mode_set() for more details
299 *
300 * @ingroup File_Selector_Button
301 */
302EAPI Eina_Bool elm_fileselector_button_inwin_mode_get(const Evas_Object *obj);
303
304/**
305 * @}
306 */