2 * @defgroup Config Elementary Config
4 * Elementary configuration is formed by a set options bounded to a
5 * given @ref Profile profile, like @ref Theme theme, @ref Fingers
6 * "finger size", etc. These are functions with which one syncronizes
7 * changes made to those values to the configuration storing files, de
8 * facto. You most probably don't want to use the functions in this
9 * group unlees you're writing an elementary configuration manager.
15 * Save back Elementary's configuration, so that it will persist on
18 * @return @c EINA_TRUE, when sucessful. @c EINA_FALSE, otherwise.
21 * This function will take effect -- thus, do I/O -- immediately. Use
22 * it when you want to apply all configuration changes at once. The
23 * current configuration set will get saved onto the current profile
27 EAPI Eina_Bool elm_config_save(void);
30 * Reload Elementary's configuration, bounded to current selected
33 * @return @c EINA_TRUE, when sucessful. @c EINA_FALSE, otherwise.
36 * Useful when you want to force reloading of configuration values for
37 * a profile. If one removes user custom configuration directories,
38 * for example, it will force a reload with system values instead.
41 EAPI void elm_config_reload(void);
48 * @defgroup Profile Elementary Profile
50 * Profiles are pre-set options that affect the whole look-and-feel of
51 * Elementary-based applications. There are, for example, profiles
52 * aimed at desktop computer applications and others aimed at mobile,
53 * touchscreen-based ones. You most probably don't want to use the
54 * functions in this group unlees you're writing an elementary
55 * configuration manager.
61 * Get Elementary's profile in use.
63 * This gets the global profile that is applied to all Elementary
66 * @return The profile's name
69 EAPI const char *elm_profile_current_get(void);
72 * Get an Elementary's profile directory path in the filesystem. One
73 * may want to fetch a system profile's dir or an user one (fetched
76 * @param profile The profile's name
77 * @param is_user Whether to lookup for an user profile (@c EINA_TRUE)
78 * or a system one (@c EINA_FALSE)
79 * @return The profile's directory path.
82 * @note You must free it with elm_profile_dir_free().
84 EAPI const char *elm_profile_dir_get(const char *profile, Eina_Bool is_user);
87 * Free an Elementary's profile directory path, as returned by
88 * elm_profile_dir_get().
90 * @param p_dir The profile's path
94 EAPI void elm_profile_dir_free(const char *p_dir);
97 * Get Elementary's list of available profiles.
99 * @return The profiles list. List node data are the profile name
103 * @note One must free this list, after usage, with the function
104 * elm_profile_list_free().
106 EAPI Eina_List *elm_profile_list_get(void);
109 * Free Elementary's list of available profiles.
111 * @param l The profiles list, as returned by elm_profile_list_get().
115 EAPI void elm_profile_list_free(Eina_List *l);
118 * Set Elementary's profile.
120 * This sets the global profile that is applied to Elementary
121 * applications. Just the process the call comes from will be
124 * @param profile The profile's name
128 EAPI void elm_profile_set(const char *profile);
131 * Set Elementary's profile.
133 * This sets the global profile that is applied to all Elementary
134 * applications. All running Elementary windows will be affected.
136 * @param profile The profile's name
140 EAPI void elm_profile_all_set(const char *profile);
147 * @defgroup Scrolling Scrolling
149 * These are functions setting how scrollable views in Elementary
150 * widgets should behave on user interaction.
156 * Get whether scrollers should bounce when they reach their
157 * viewport's edge during a scroll.
159 * @return the thumb scroll bouncing state
161 * This is the default behavior for touch screens, in general.
164 EAPI Eina_Bool elm_scroll_bounce_enabled_get(void);
167 * Set whether scrollers should bounce when they reach their
168 * viewport's edge during a scroll.
170 * @param enabled the thumb scroll bouncing state
172 * @see elm_thumbscroll_bounce_enabled_get()
175 EAPI void elm_scroll_bounce_enabled_set(Eina_Bool enabled);
178 * Set whether scrollers should bounce when they reach their
179 * viewport's edge during a scroll, for all Elementary application
182 * @param enabled the thumb scroll bouncing state
184 * @see elm_thumbscroll_bounce_enabled_get()
187 // XXX: deprecate and replace with elm_config_all_flush()
188 EAPI void elm_scroll_bounce_enabled_all_set(Eina_Bool enabled);
191 * Get the amount of inertia a scroller will impose at bounce
194 * @return the thumb scroll bounce friction
198 EAPI double elm_scroll_bounce_friction_get(void);
201 * Set the amount of inertia a scroller will impose at bounce
204 * @param friction the thumb scroll bounce friction
206 * @see elm_thumbscroll_bounce_friction_get()
209 EAPI void elm_scroll_bounce_friction_set(double friction);
212 * Set the amount of inertia a scroller will impose at bounce
213 * animations, for all Elementary application windows.
215 * @param friction the thumb scroll bounce friction
217 * @see elm_thumbscroll_bounce_friction_get()
220 // XXX: deprecate and replace with elm_config_all_flush()
221 EAPI void elm_scroll_bounce_friction_all_set(double friction);
224 * Get the amount of inertia a <b>paged</b> scroller will impose at
225 * page fitting animations.
227 * @return the page scroll friction
231 EAPI double elm_scroll_page_scroll_friction_get(void);
234 * Set the amount of inertia a <b>paged</b> scroller will impose at
235 * page fitting animations.
237 * @param friction the page scroll friction
239 * @see elm_thumbscroll_page_scroll_friction_get()
242 EAPI void elm_scroll_page_scroll_friction_set(double friction);
245 * Set the amount of inertia a <b>paged</b> scroller will impose at
246 * page fitting animations, for all Elementary application windows.
248 * @param friction the page scroll friction
250 * @see elm_thumbscroll_page_scroll_friction_get()
253 // XXX: deprecate and replace with elm_config_all_flush()
254 EAPI void elm_scroll_page_scroll_friction_all_set(double friction);
257 * Get the amount of inertia a scroller will impose at region bring
260 * @return the bring in scroll friction
264 EAPI double elm_scroll_bring_in_scroll_friction_get(void);
267 * Set the amount of inertia a scroller will impose at region bring
270 * @param friction the bring in scroll friction
272 * @see elm_thumbscroll_bring_in_scroll_friction_get()
275 EAPI void elm_scroll_bring_in_scroll_friction_set(double friction);
278 * Set the amount of inertia a scroller will impose at region bring
279 * animations, for all Elementary application windows.
281 * @param friction the bring in scroll friction
283 * @see elm_thumbscroll_bring_in_scroll_friction_get()
286 // XXX: deprecate and replace with elm_config_all_flush()
287 EAPI void elm_scroll_bring_in_scroll_friction_all_set(double friction);
290 * Get the amount of inertia scrollers will impose at animations
291 * triggered by Elementary widgets' zooming API.
293 * @return the zoom friction
297 EAPI double elm_scroll_zoom_friction_get(void);
300 * Set the amount of inertia scrollers will impose at animations
301 * triggered by Elementary widgets' zooming API.
303 * @param friction the zoom friction
305 * @see elm_thumbscroll_zoom_friction_get()
308 EAPI void elm_scroll_zoom_friction_set(double friction);
311 * Set the amount of inertia scrollers will impose at animations
312 * triggered by Elementary widgets' zooming API, for all Elementary
313 * application windows.
315 * @param friction the zoom friction
317 * @see elm_thumbscroll_zoom_friction_get()
320 // XXX: deprecate and replace with elm_config_all_flush()
321 EAPI void elm_scroll_zoom_friction_all_set(double friction);
324 * Get whether scrollers should be draggable from any point in their
327 * @return the thumb scroll state
329 * @note This is the default behavior for touch screens, in general.
330 * @note All other functions namespaced with "thumbscroll" will only
331 * have effect if this mode is enabled.
335 EAPI Eina_Bool elm_scroll_thumbscroll_enabled_get(void);
338 * Set whether scrollers should be draggable from any point in their
341 * @param enabled the thumb scroll state
343 * @see elm_thumbscroll_enabled_get()
346 EAPI void elm_scroll_thumbscroll_enabled_set(Eina_Bool enabled);
349 * Set whether scrollers should be draggable from any point in their
350 * views, for all Elementary application windows.
352 * @param enabled the thumb scroll state
354 * @see elm_thumbscroll_enabled_get()
357 // XXX: deprecate and replace with elm_config_all_flush()
358 EAPI void elm_scroll_thumbscroll_enabled_all_set(Eina_Bool enabled);
361 * Get the number of pixels one should travel while dragging a
362 * scroller's view to actually trigger scrolling.
364 * @return the thumb scroll threshould
366 * One would use higher values for touch screens, in general, because
367 * of their inherent imprecision.
370 EAPI unsigned int elm_scroll_thumbscroll_threshold_get(void);
373 * Set the number of pixels one should travel while dragging a
374 * scroller's view to actually trigger scrolling.
376 * @param threshold the thumb scroll threshould
378 * @see elm_thumbscroll_threshould_get()
381 EAPI void elm_scroll_thumbscroll_threshold_set(unsigned int threshold);
384 * Set the number of pixels one should travel while dragging a
385 * scroller's view to actually trigger scrolling, for all Elementary
386 * application windows.
388 * @param threshold the thumb scroll threshould
390 * @see elm_thumbscroll_threshould_get()
393 // XXX: deprecate and replace with elm_config_all_flush()
394 EAPI void elm_scroll_thumbscroll_threshold_all_set(unsigned int threshold);
397 * Get the minimum speed of mouse cursor movement which will trigger
398 * list self scrolling animation after a mouse up event
401 * @return the thumb scroll momentum threshould
405 EAPI double elm_scroll_thumbscroll_momentum_threshold_get(void);
408 * Set the minimum speed of mouse cursor movement which will trigger
409 * list self scrolling animation after a mouse up event
412 * @param threshold the thumb scroll momentum threshould
414 * @see elm_thumbscroll_momentum_threshould_get()
417 EAPI void elm_scroll_thumbscroll_momentum_threshold_set(double threshold);
420 * Set the minimum speed of mouse cursor movement which will trigger
421 * list self scrolling animation after a mouse up event
422 * (pixels/second), for all Elementary application windows.
424 * @param threshold the thumb scroll momentum threshould
426 * @see elm_thumbscroll_momentum_threshould_get()
429 // XXX: deprecate and replace with elm_config_all_flush()
430 EAPI void elm_scroll_thumbscroll_momentum_threshold_all_set(double threshold);
433 * Get the amount of inertia a scroller will impose at self scrolling
436 * @return the thumb scroll friction
440 EAPI double elm_scroll_thumbscroll_friction_get(void);
443 * Set the amount of inertia a scroller will impose at self scrolling
446 * @param friction the thumb scroll friction
448 * @see elm_thumbscroll_friction_get()
451 EAPI void elm_scroll_thumbscroll_friction_set(double friction);
454 * Set the amount of inertia a scroller will impose at self scrolling
455 * animations, for all Elementary application windows.
457 * @param friction the thumb scroll friction
459 * @see elm_thumbscroll_friction_get()
462 // XXX: deprecate and replace with elm_config_all_flush()
463 EAPI void elm_scroll_thumbscroll_friction_all_set(double friction);
466 * Get the amount of lag between your actual mouse cursor dragging
467 * movement and a scroller's view movement itself, while pushing it
468 * into bounce state manually.
470 * @return the thumb scroll border friction
474 EAPI double elm_scroll_thumbscroll_border_friction_get(void);
477 * Set the amount of lag between your actual mouse cursor dragging
478 * movement and a scroller's view movement itself, while pushing it
479 * into bounce state manually.
481 * @param friction the thumb scroll border friction. @c 0.0 for
482 * perfect synchrony between two movements, @c 1.0 for maximum
485 * @see elm_thumbscroll_border_friction_get()
486 * @note parameter value will get bound to 0.0 - 1.0 interval, always
490 EAPI void elm_scroll_thumbscroll_border_friction_set(double friction);
493 * Set the amount of lag between your actual mouse cursor dragging
494 * movement and a scroller's view movement itself, while pushing it
495 * into bounce state manually, for all Elementary application windows.
497 * @param friction the thumb scroll border friction. @c 0.0 for
498 * perfect synchrony between two movements, @c 1.0 for maximum
501 * @see elm_thumbscroll_border_friction_get()
502 * @note parameter value will get bound to 0.0 - 1.0 interval, always
506 // XXX: deprecate and replace with elm_config_all_flush()
507 EAPI void elm_scroll_thumbscroll_border_friction_all_set(double friction);
510 * Get the sensitivity amount which is be multiplied by the length of
513 * @return the thumb scroll sensitivity friction
517 EAPI double elm_scroll_thumbscroll_sensitivity_friction_get(void);
520 * Set the sensitivity amount which is be multiplied by the length of
523 * @param friction the thumb scroll sensitivity friction. @c 0.1 for
524 * minimun sensitivity, @c 1.0 for maximum sensitivity. 0.25
527 * @see elm_thumbscroll_sensitivity_friction_get()
528 * @note parameter value will get bound to 0.1 - 1.0 interval, always
532 EAPI void elm_scroll_thumbscroll_sensitivity_friction_set(double friction);
535 * Set the sensitivity amount which is be multiplied by the length of
536 * mouse dragging, for all Elementary application windows.
538 * @param friction the thumb scroll sensitivity friction. @c 0.1 for
539 * minimun sensitivity, @c 1.0 for maximum sensitivity. 0.25
542 * @see elm_thumbscroll_sensitivity_friction_get()
543 * @note parameter value will get bound to 0.1 - 1.0 interval, always
547 // XXX: deprecate and replace with elm_config_all_flush()
548 EAPI void elm_scroll_thumbscroll_sensitivity_friction_all_set(double friction);
555 * Get the duration for occuring long press event.
557 * @return Timeout for long press event
560 EAPI double elm_longpress_timeout_get(void);
563 * Set the duration for occuring long press event.
565 * @param lonpress_timeout Timeout for long press event
568 EAPI void elm_longpress_timeout_set(double longpress_timeout);