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 synchronizes
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 unless 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 successful. @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 successful. @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);
44 * Flush all config settings then apply those settings to all applications
45 * using elementary on the current display.
46 * Following functions will update the config settings
48 * @li elm_finger_size_set()
49 * @li elm_profile_set()
50 * @li elm_font_overlay_set()
51 * @li elm_cache_flush_interval_set()
52 * @li elm_cache_flush_enabled_set()
53 * @li elm_font_cache_set()
54 * @li elm_image_cache_set()
55 * @li elm_edje_file_cache_set()
56 * @li elm_edje_collection_cache_set()
57 * @li elm_scroll_bounce_enabled_set()
58 * @li elm_scroll_bounce_friction_set()
59 * @li elm_scroll_page_scroll_friction_set()
60 * @li elm_scroll_bring_in_scroll_friction_set()
61 * @li elm_scroll_zoom_friction_set()
62 * @li elm_scroll_thumbscroll_enabled_set()
63 * @li elm_scroll_thumbscroll_threshold_set()
64 * @li elm_scroll_thumbscroll_momentum_threshold_set()
65 * @li elm_scroll_thumbscroll_friction_set()
66 * @li elm_scroll_thumbscroll_border_friction_set()
67 * @li elm_scroll_thumbscroll_sensitivity_friction_set()
73 EAPI void elm_config_all_flush(void);
80 * @defgroup Profile Elementary Profile
82 * Profiles are pre-set options that affect the whole look-and-feel of
83 * Elementary-based applications. There are, for example, profiles
84 * aimed at desktop computer applications and others aimed at mobile,
85 * touchscreen-based ones. You most probably don't want to use the
86 * functions in this group unless you're writing an elementary
87 * configuration manager.
93 * Get Elementary's profile in use.
95 * This gets the global profile that is applied to all Elementary
98 * @return The profile's name
101 EAPI const char *elm_profile_current_get(void);
104 * Get an Elementary's profile directory path in the filesystem. One
105 * may want to fetch a system profile's dir or an user one (fetched
108 * @param profile The profile's name
109 * @param is_user Whether to lookup for an user profile (@c EINA_TRUE)
110 * or a system one (@c EINA_FALSE)
111 * @return The profile's directory path.
114 * @note You must free it with elm_profile_dir_free().
116 EAPI const char *elm_profile_dir_get(const char *profile, Eina_Bool is_user);
119 * Free an Elementary's profile directory path, as returned by
120 * elm_profile_dir_get().
122 * @param p_dir The profile's path
126 EAPI void elm_profile_dir_free(const char *p_dir);
129 * Get Elementary's list of available profiles.
131 * @return The profiles list. List node data are the profile name
135 * @note One must free this list, after usage, with the function
136 * elm_profile_list_free().
138 EAPI Eina_List *elm_profile_list_get(void);
141 * Free Elementary's list of available profiles.
143 * @param l The profiles list, as returned by elm_profile_list_get().
147 EAPI void elm_profile_list_free(Eina_List *l);
150 * Set Elementary's profile.
152 * This sets the global profile that is applied to Elementary
153 * applications. Just the process the call comes from will be
156 * @param profile The profile's name
160 EAPI void elm_profile_set(const char *profile);
163 * Set Elementary's profile.
165 * This sets the global profile that is applied to all Elementary
166 * applications. All running Elementary windows will be affected.
168 * @param profile The profile's name
172 EAPI void elm_profile_all_set(const char *profile);
179 * @defgroup Scrolling Scrolling
181 * These are functions setting how scrollable views in Elementary
182 * widgets should behave on user interaction.
188 * Get whether scrollers should bounce when they reach their
189 * viewport's edge during a scroll.
191 * @return the thumb scroll bouncing state
193 * This is the default behavior for touch screens, in general.
196 EAPI Eina_Bool elm_scroll_bounce_enabled_get(void);
199 * Set whether scrollers should bounce when they reach their
200 * viewport's edge during a scroll.
202 * @param enabled the thumb scroll bouncing state
204 * @see elm_thumbscroll_bounce_enabled_get()
207 EAPI void elm_scroll_bounce_enabled_set(Eina_Bool enabled);
210 * Set whether scrollers should bounce when they reach their
211 * viewport's edge during a scroll, for all Elementary application
214 * @param enabled the thumb scroll bouncing state
216 * @see elm_thumbscroll_bounce_enabled_get()
219 // XXX: deprecate and replace with elm_config_all_flush()
220 EAPI void elm_scroll_bounce_enabled_all_set(Eina_Bool enabled);
223 * Get the amount of inertia a scroller will impose at bounce
226 * @return the thumb scroll bounce friction
230 EAPI double elm_scroll_bounce_friction_get(void);
233 * Set the amount of inertia a scroller will impose at bounce
236 * @param friction the thumb scroll bounce friction
238 * @see elm_thumbscroll_bounce_friction_get()
241 EAPI void elm_scroll_bounce_friction_set(double friction);
244 * Set the amount of inertia a scroller will impose at bounce
245 * animations, for all Elementary application windows.
247 * @param friction the thumb scroll bounce friction
249 * @see elm_thumbscroll_bounce_friction_get()
252 // XXX: deprecate and replace with elm_config_all_flush()
253 EAPI void elm_scroll_bounce_friction_all_set(double friction);
256 * Get the amount of inertia a <b>paged</b> scroller will impose at
257 * page fitting animations.
259 * @return the page scroll friction
263 EAPI double elm_scroll_page_scroll_friction_get(void);
266 * Set the amount of inertia a <b>paged</b> scroller will impose at
267 * page fitting animations.
269 * @param friction the page scroll friction
271 * @see elm_thumbscroll_page_scroll_friction_get()
274 EAPI void elm_scroll_page_scroll_friction_set(double friction);
277 * Set the amount of inertia a <b>paged</b> scroller will impose at
278 * page fitting animations, for all Elementary application windows.
280 * @param friction the page scroll friction
282 * @see elm_thumbscroll_page_scroll_friction_get()
285 // XXX: deprecate and replace with elm_config_all_flush()
286 EAPI void elm_scroll_page_scroll_friction_all_set(double friction);
289 * Get the amount of inertia a scroller will impose at region bring
292 * @return the bring in scroll friction
296 EAPI double elm_scroll_bring_in_scroll_friction_get(void);
299 * Set the amount of inertia a scroller will impose at region bring
302 * @param friction the bring in scroll friction
304 * @see elm_thumbscroll_bring_in_scroll_friction_get()
307 EAPI void elm_scroll_bring_in_scroll_friction_set(double friction);
310 * Set the amount of inertia a scroller will impose at region bring
311 * animations, for all Elementary application windows.
313 * @param friction the bring in scroll friction
315 * @see elm_thumbscroll_bring_in_scroll_friction_get()
318 // XXX: deprecate and replace with elm_config_all_flush()
319 EAPI void elm_scroll_bring_in_scroll_friction_all_set(double friction);
322 * Get the amount of inertia scrollers will impose at animations
323 * triggered by Elementary widgets' zooming API.
325 * @return the zoom friction
329 EAPI double elm_scroll_zoom_friction_get(void);
332 * Set the amount of inertia scrollers will impose at animations
333 * triggered by Elementary widgets' zooming API.
335 * @param friction the zoom friction
337 * @see elm_thumbscroll_zoom_friction_get()
340 EAPI void elm_scroll_zoom_friction_set(double friction);
343 * Set the amount of inertia scrollers will impose at animations
344 * triggered by Elementary widgets' zooming API, for all Elementary
345 * application windows.
347 * @param friction the zoom friction
349 * @see elm_thumbscroll_zoom_friction_get()
352 // XXX: deprecate and replace with elm_config_all_flush()
353 EAPI void elm_scroll_zoom_friction_all_set(double friction);
356 * Get whether scrollers should be draggable from any point in their
359 * @return the thumb scroll state
361 * @note This is the default behavior for touch screens, in general.
362 * @note All other functions namespaced with "thumbscroll" will only
363 * have effect if this mode is enabled.
367 EAPI Eina_Bool elm_scroll_thumbscroll_enabled_get(void);
370 * Set whether scrollers should be draggable from any point in their
373 * @param enabled the thumb scroll state
375 * @see elm_thumbscroll_enabled_get()
378 EAPI void elm_scroll_thumbscroll_enabled_set(Eina_Bool enabled);
381 * Set whether scrollers should be draggable from any point in their
382 * views, for all Elementary application windows.
384 * @param enabled the thumb scroll state
386 * @see elm_thumbscroll_enabled_get()
389 // XXX: deprecate and replace with elm_config_all_flush()
390 EAPI void elm_scroll_thumbscroll_enabled_all_set(Eina_Bool enabled);
393 * Get the number of pixels one should travel while dragging a
394 * scroller's view to actually trigger scrolling.
396 * @return the thumb scroll threshold
398 * One would use higher values for touch screens, in general, because
399 * of their inherent imprecision.
402 EAPI unsigned int elm_scroll_thumbscroll_threshold_get(void);
405 * Set the number of pixels one should travel while dragging a
406 * scroller's view to actually trigger scrolling.
408 * @param threshold the thumb scroll threshold
410 * @see elm_thumbscroll_threshold_get()
413 EAPI void elm_scroll_thumbscroll_threshold_set(unsigned int threshold);
416 * Set the number of pixels one should travel while dragging a
417 * scroller's view to actually trigger scrolling, for all Elementary
418 * application windows.
420 * @param threshold the thumb scroll threshold
422 * @see elm_thumbscroll_threshold_get()
425 // XXX: deprecate and replace with elm_config_all_flush()
426 EAPI void elm_scroll_thumbscroll_threshold_all_set(unsigned int threshold);
429 * Get the minimum speed of mouse cursor movement which will trigger
430 * list self scrolling animation after a mouse up event
433 * @return the thumb scroll momentum threshold
437 EAPI double elm_scroll_thumbscroll_momentum_threshold_get(void);
440 * Set the minimum speed of mouse cursor movement which will trigger
441 * list self scrolling animation after a mouse up event
444 * @param threshold the thumb scroll momentum threshold
446 * @see elm_thumbscroll_momentum_threshold_get()
449 EAPI void elm_scroll_thumbscroll_momentum_threshold_set(double threshold);
452 * Set the minimum speed of mouse cursor movement which will trigger
453 * list self scrolling animation after a mouse up event
454 * (pixels/second), for all Elementary application windows.
456 * @param threshold the thumb scroll momentum threshold
458 * @see elm_thumbscroll_momentum_threshold_get()
461 // XXX: deprecate and replace with elm_config_all_flush()
462 EAPI void elm_scroll_thumbscroll_momentum_threshold_all_set(double threshold);
465 * Get the amount of inertia a scroller will impose at self scrolling
468 * @return the thumb scroll friction
472 EAPI double elm_scroll_thumbscroll_friction_get(void);
475 * Set the amount of inertia a scroller will impose at self scrolling
478 * @param friction the thumb scroll friction
480 * @see elm_thumbscroll_friction_get()
483 EAPI void elm_scroll_thumbscroll_friction_set(double friction);
486 * Set the amount of inertia a scroller will impose at self scrolling
487 * animations, for all Elementary application windows.
489 * @param friction the thumb scroll friction
491 * @see elm_thumbscroll_friction_get()
494 // XXX: deprecate and replace with elm_config_all_flush()
495 EAPI void elm_scroll_thumbscroll_friction_all_set(double friction);
498 * Get the amount of lag between your actual mouse cursor dragging
499 * movement and a scroller's view movement itself, while pushing it
500 * into bounce state manually.
502 * @return the thumb scroll border friction
506 EAPI double elm_scroll_thumbscroll_border_friction_get(void);
509 * Set the amount of lag between your actual mouse cursor dragging
510 * movement and a scroller's view movement itself, while pushing it
511 * into bounce state manually.
513 * @param friction the thumb scroll border friction. @c 0.0 for
514 * perfect synchrony between two movements, @c 1.0 for maximum
517 * @see elm_thumbscroll_border_friction_get()
518 * @note parameter value will get bound to 0.0 - 1.0 interval, always
522 EAPI void elm_scroll_thumbscroll_border_friction_set(double friction);
525 * Set the amount of lag between your actual mouse cursor dragging
526 * movement and a scroller's view movement itself, while pushing it
527 * into bounce state manually, for all Elementary application windows.
529 * @param friction the thumb scroll border friction. @c 0.0 for
530 * perfect synchrony between two movements, @c 1.0 for maximum
533 * @see elm_thumbscroll_border_friction_get()
534 * @note parameter value will get bound to 0.0 - 1.0 interval, always
538 // XXX: deprecate and replace with elm_config_all_flush()
539 EAPI void elm_scroll_thumbscroll_border_friction_all_set(double friction);
542 * Get the sensitivity amount which is be multiplied by the length of
545 * @return the thumb scroll sensitivity friction
549 EAPI double elm_scroll_thumbscroll_sensitivity_friction_get(void);
552 * Set the sensitivity amount which is be multiplied by the length of
555 * @param friction the thumb scroll sensitivity friction. @c 0.1 for
556 * minimum sensitivity, @c 1.0 for maximum sensitivity. 0.25
559 * @see elm_thumbscroll_sensitivity_friction_get()
560 * @note parameter value will get bound to 0.1 - 1.0 interval, always
564 EAPI void elm_scroll_thumbscroll_sensitivity_friction_set(double friction);
567 * Set the sensitivity amount which is be multiplied by the length of
568 * mouse dragging, for all Elementary application windows.
570 * @param friction the thumb scroll sensitivity friction. @c 0.1 for
571 * minimum sensitivity, @c 1.0 for maximum sensitivity. 0.25
574 * @see elm_thumbscroll_sensitivity_friction_get()
575 * @note parameter value will get bound to 0.1 - 1.0 interval, always
579 // XXX: deprecate and replace with elm_config_all_flush()
580 EAPI void elm_scroll_thumbscroll_sensitivity_friction_all_set(double friction);
587 * Get the duration for occurring long press event.
589 * @return Timeout for long press event
592 EAPI double elm_longpress_timeout_get(void);
595 * Set the duration for occurring long press event.
597 * @param lonpress_timeout Timeout for long press event
600 EAPI void elm_longpress_timeout_set(double longpress_timeout);