2 * @defgroup Config Elementary Config
5 * Elementary configuration is formed by a set options bounded to a
6 * given @ref Profile profile, like @ref Theme theme, @ref Fingers
7 * "finger size", etc. These are functions with which one synchronizes
8 * changes made to those values to the configuration storing files, de
9 * facto. You most probably don't want to use the functions in this
10 * group unless you're writing an elementary configuration manager.
16 * Save back Elementary's configuration, so that it will persist on
19 * @return @c EINA_TRUE, when successful. @c EINA_FALSE, otherwise.
22 * This function will take effect -- thus, do I/O -- immediately. Use
23 * it when you want to save all configuration changes at once. The
24 * current configuration set will get saved onto the current profile
28 EAPI Eina_Bool elm_config_save(void);
31 * Reload Elementary's configuration, bounded to current selected
34 * @return @c EINA_TRUE, when successful. @c EINA_FALSE, otherwise.
37 * Useful when you want to force reloading of configuration values for
38 * a profile. If one removes user custom configuration directories,
39 * for example, it will force a reload with system values instead.
42 EAPI void elm_config_reload(void);
45 * Flush all config settings then apply those settings to all applications
46 * using elementary on the current display.
50 EAPI void elm_config_all_flush(void);
57 * @defgroup Profile Elementary Profile
60 * Profiles are pre-set options that affect the whole look-and-feel of
61 * Elementary-based applications. There are, for example, profiles
62 * aimed at desktop computer applications and others aimed at mobile,
63 * touchscreen-based ones. You most probably don't want to use the
64 * functions in this group unless you're writing an elementary
65 * configuration manager.
71 * Get Elementary's profile in use.
73 * This gets the global profile that is applied to all Elementary
76 * @return The profile's name
79 EAPI const char *elm_config_profile_get(void);
82 * Get an Elementary's profile directory path in the filesystem. One
83 * may want to fetch a system profile's dir or a user one (fetched
86 * @param profile The profile's name
87 * @param is_user Whether to lookup for a user profile (@c EINA_TRUE)
88 * or a system one (@c EINA_FALSE)
89 * @return The profile's directory path.
92 * @note You must free it with elm_config_profile_dir_free().
94 EAPI const char *elm_config_profile_dir_get(const char *profile, Eina_Bool is_user);
97 * Free an Elementary's profile directory path, as returned by
98 * elm_config_profile_dir_get().
100 * @param p_dir The profile's path
104 EAPI void elm_config_profile_dir_free(const char *p_dir);
107 * Get Elementary's list of available profiles.
109 * @return The profiles list. List node data are the profile name
113 * @note One must free this list, after usage, with the function
114 * elm_config_profile_list_free().
116 EAPI Eina_List *elm_config_profile_list_get(void);
119 * Free Elementary's list of available profiles.
121 * @param l The profiles list, as returned by elm_config_profile_list_get().
125 EAPI void elm_config_profile_list_free(Eina_List *l);
128 * Set Elementary's profile.
130 * This sets the global profile that is applied to Elementary
131 * applications. Just the process the call comes from will be
134 * @param profile The profile's name
138 EAPI void elm_config_profile_set(const char *profile);
141 * Check if the given Elementary's profile exists.
143 * @param profile The profile's name
144 * @return EINA_TRUE if the profile exists, EINA_FALSE otherwise.
148 EAPI Eina_Bool elm_config_profile_exists(const char *profile);
155 * @defgroup Scrolling Elementary Scrolling
156 * @ingroup Elementary
158 * These are functions setting how scrollable views in Elementary
159 * widgets should behave on user interaction.
165 * Get whether scrollers should bounce when they reach their
166 * viewport's edge during a scroll.
168 * @return the thumb scroll bouncing state
170 * This is the default behavior for touch screens, in general.
173 EAPI Eina_Bool elm_config_scroll_bounce_enabled_get(void);
176 * Set whether scrollers should bounce when they reach their
177 * viewport's edge during a scroll.
179 * @param enabled the thumb scroll bouncing state
181 * @see elm_config_scroll_bounce_enabled_get()
184 EAPI void elm_config_scroll_bounce_enabled_set(Eina_Bool enabled);
187 * Get the amount of inertia a scroller will impose at bounce
190 * @return the thumb scroll bounce friction
194 EAPI double elm_config_scroll_bounce_friction_get(void);
197 * Set the amount of inertia a scroller will impose at bounce
200 * @param friction the thumb scroll bounce friction
202 * @see elm_config_scroll_bounce_friction_get()
205 EAPI void elm_config_scroll_bounce_friction_set(double friction);
208 * Get the amount of inertia a <b>paged</b> scroller will impose at
209 * page fitting animations.
211 * @return the page scroll friction
215 EAPI double elm_config_scroll_page_scroll_friction_get(void);
218 * Set the amount of inertia a <b>paged</b> scroller will impose at
219 * page fitting animations.
221 * @param friction the page scroll friction
223 * @see elm_config_scroll_page_scroll_friction_get()
226 EAPI void elm_config_scroll_page_scroll_friction_set(double friction);
229 * Get the amount of inertia a scroller will impose at region bring
232 * @return the bring in scroll friction
236 EAPI double elm_config_scroll_bring_in_scroll_friction_get(void);
239 * Set the amount of inertia a scroller will impose at region bring
242 * @param friction the bring in scroll friction
244 * @see elm_config_scroll_bring_in_scroll_friction_get()
247 EAPI void elm_config_scroll_bring_in_scroll_friction_set(double friction);
250 * Get the amount of inertia scrollers will impose at animations
251 * triggered by Elementary widgets' zooming API.
253 * @return the zoom friction
257 EAPI double elm_config_scroll_zoom_friction_get(void);
260 * Set the amount of inertia scrollers will impose at animations
261 * triggered by Elementary widgets' zooming API.
263 * @param friction the zoom friction
265 * @see elm_config_scroll_zoom_friction_get()
268 EAPI void elm_config_scroll_zoom_friction_set(double friction);
271 * Get whether scrollers should be draggable from any point in their
274 * @return the thumb scroll state
276 * @note This is the default behavior for touch screens, in general.
277 * @note All other functions namespaced with "thumbscroll" will only
278 * have effect if this mode is enabled.
282 EAPI Eina_Bool elm_config_scroll_thumbscroll_enabled_get(void);
285 * Set whether scrollers should be draggable from any point in their
288 * @param enabled the thumb scroll state
290 * @see elm_config_scroll_thumbscroll_enabled_get()
293 EAPI void elm_config_scroll_thumbscroll_enabled_set(Eina_Bool enabled);
296 * Get the number of pixels one should travel while dragging a
297 * scroller's view to actually trigger scrolling.
299 * @return the thumb scroll threshold
301 * One would use higher values for touch screens, in general, because
302 * of their inherent imprecision.
305 EAPI unsigned int elm_config_scroll_thumbscroll_threshold_get(void);
308 * Set the number of pixels one should travel while dragging a
309 * scroller's view to actually trigger scrolling.
311 * @param threshold the thumb scroll threshold
313 * @see elm_config_thumbscroll_threshold_get()
316 EAPI void elm_config_scroll_thumbscroll_threshold_set(unsigned int threshold);
319 * Get the minimum speed of mouse cursor movement which will trigger
320 * list self scrolling animation after a mouse up event
323 * @return the thumb scroll momentum threshold
327 EAPI double elm_config_scroll_thumbscroll_momentum_threshold_get(void);
330 * Set the minimum speed of mouse cursor movement which will trigger
331 * list self scrolling animation after a mouse up event
334 * @param threshold the thumb scroll momentum threshold
336 * @see elm_config_thumbscroll_momentum_threshold_get()
339 EAPI void elm_config_scroll_thumbscroll_momentum_threshold_set(double threshold);
342 * Get the amount of inertia a scroller will impose at self scrolling
345 * @return the thumb scroll friction
349 EAPI double elm_config_scroll_thumbscroll_friction_get(void);
352 * Set the amount of inertia a scroller will impose at self scrolling
355 * @param friction the thumb scroll friction
357 * @see elm_config_thumbscroll_friction_get()
360 EAPI void elm_config_scroll_thumbscroll_friction_set(double friction);
363 * Get the amount of lag between your actual mouse cursor dragging
364 * movement and a scroller's view movement itself, while pushing it
365 * into bounce state manually.
367 * @return the thumb scroll border friction
371 EAPI double elm_config_scroll_thumbscroll_border_friction_get(void);
374 * Set the amount of lag between your actual mouse cursor dragging
375 * movement and a scroller's view movement itself, while pushing it
376 * into bounce state manually.
378 * @param friction the thumb scroll border friction. @c 0.0 for
379 * perfect synchrony between two movements, @c 1.0 for maximum
382 * @see elm_config_thumbscroll_border_friction_get()
383 * @note parameter value will get bound to 0.0 - 1.0 interval, always
387 EAPI void elm_config_scroll_thumbscroll_border_friction_set(double friction);
390 * Get the sensitivity amount which is be multiplied by the length of
393 * @return the thumb scroll sensitivity friction
397 EAPI double elm_config_scroll_thumbscroll_sensitivity_friction_get(void);
400 * Set the sensitivity amount which is be multiplied by the length of
403 * @param friction the thumb scroll sensitivity friction. @c 0.1 for
404 * minimum sensitivity, @c 1.0 for maximum sensitivity. 0.25
407 * @see elm_config_thumbscroll_sensitivity_friction_get()
408 * @note parameter value will get bound to 0.1 - 1.0 interval, always
412 EAPI void elm_config_scroll_thumbscroll_sensitivity_friction_set(double friction);
419 * Get the duration for occurring long press event.
421 * @return Timeout for long press event
424 EAPI double elm_config_longpress_timeout_get(void);
427 * Set the duration for occurring long press event.
429 * @param lonpress_timeout Timeout for long press event
432 EAPI void elm_config_longpress_timeout_set(double longpress_timeout);
435 * Get the duration after which tooltip will be shown.
437 * @return Duration after which tooltip will be shown.
439 EAPI double elm_config_tooltip_delay_get(void);
442 * Set the duration after which tooltip will be shown.
444 * @return EINA_TRUE if value is set.
446 EAPI void elm_config_tooltip_delay_set(double delay);
449 * Get the configured cursor engine only usage
451 * This gets the globally configured exclusive usage of engine cursors.
453 * @return 1 if only engine cursors should be used
456 EAPI Eina_Bool elm_config_cursor_engine_only_get(void);
459 * Set the configured cursor engine only usage
461 * This sets the globally configured exclusive usage of engine cursors.
462 * It won't affect cursors set before changing this value.
464 * @param engine_only If 1 only engine cursors will be enabled, if 0 will
465 * look for them on theme before.
468 EAPI void elm_config_cursor_engine_only_set(Eina_Bool engine_only);
471 * Get the global scaling factor
473 * This gets the globally configured scaling factor that is applied to all
476 * @return The scaling factor
479 EAPI double elm_config_scale_get(void);
480 EAPI double elm_scale_get(void);
483 * Set the global scaling factor
485 * This sets the globally configured scaling factor that is applied to all
488 * @param scale The scaling factor to set
491 EAPI void elm_config_scale_set(double scale);
492 EAPI void elm_scale_set(double scale);
495 * @defgroup Password_last_show Password show last
496 * @ingroup Elementary
498 * Show last feature of password mode enables user to view
499 * the last input entered for few seconds before masking it.
500 * These functions allow to set this feature in password mode
501 * of entry widget and also allow to manipulate the duration
502 * for which the input has to be visible.
508 * Get the "show last" setting of password mode.
510 * This gets the "show last" setting of password mode which might be
511 * enabled or disabled.
513 * @return @c EINA_TRUE, if the "show last" setting is enabled,
514 * @c EINA_FALSE if it's disabled.
516 * @ingroup Password_last_show
518 EAPI Eina_Bool elm_config_password_show_last_get(void);
521 * Set show last setting in password mode.
523 * This enables or disables show last setting of password mode.
525 * @param password_show_last If EINA_TRUE enables "show last" in password mode.
526 * @see elm_config_password_show_last_timeout_set()
527 * @ingroup Password_last_show
529 EAPI void elm_config_password_show_last_set(Eina_Bool password_show_last);
532 * Gets the timeout value in "show last" password mode.
534 * This gets the time out value for which the last input entered in password
535 * mode will be visible.
537 * @return The timeout value of "show last" password mode.
538 * @ingroup Password_last_show
540 EAPI double elm_config_password_show_last_timeout_get(void);
543 * Set's the timeout value in "show last" password mode.
545 * This sets the time out value for which the last input entered in password
546 * mode will be visible.
548 * @param password_show_last_timeout The timeout value.
549 * @see elm_config_password_show_last_set()
550 * @ingroup Password_last_show
552 EAPI void elm_config_password_show_last_timeout_set(double password_show_last_timeout);
559 * @defgroup Engine Elementary Engine
560 * @ingroup Elementary
562 * These are functions setting and querying which rendering engine
563 * Elementary will use for drawing its windows' pixels.
565 * The following are the available engines:
569 * @li "software_16_x11"
570 * @li "software_8_x11"
574 * @li "software_16_wince_gdi"
576 * @li "software_16_sdl"
587 * @brief Get Elementary's rendering engine in use.
589 * @return The rendering engine's name
590 * @note there's no need to free the returned string, here.
592 * This gets the global rendering engine that is applied to all Elementary
595 * @see elm_config_engine_set()
597 EAPI const char *elm_config_engine_get(void);
600 * @brief Set Elementary's rendering engine for use.
602 * @param engine The rendering engine's name
604 * Note that it will take effect only to Elementary windows created after
609 EAPI void elm_config_engine_set(const char *engine);
612 * @brief Get Elementary's preferred engine to use.
614 * @return The rendering engine's name
615 * @note there's no need to free the returned string, here.
617 * This gets the global rendering engine that is applied to all Elementary
618 * applications and is PREFERRED by the application. This can (and will)
619 * override the engine configured for all applications which.
621 * @see elm_config_preferred_engine_set()
623 EAPI const char *elm_config_preferred_engine_get(void);
626 * @brief Set Elementary's preferred rendering engine for use.
628 * @param engine The rendering engine's name
630 * Note that it will take effect only to Elementary windows created after
631 * this is called. This overrides the engine set by configuration at
632 * application startup. Note that it is a hint and may not be honored.
636 EAPI void elm_config_preferred_engine_set(const char *engine);
638 typedef struct _Elm_Text_Class
644 typedef struct _Elm_Font_Overlay
646 const char *text_class;
652 * Get Elementary's list of supported text classes.
654 * @return The text classes list, with @c Elm_Text_Class blobs as data.
657 * Release the list with elm_text_classes_list_free().
659 EAPI Eina_List *elm_config_text_classes_list_get(void);
662 * Free Elementary's list of supported text classes.
666 * @see elm_config_text_classes_list_get().
668 EAPI void elm_config_text_classes_list_free(Eina_List *list);
671 * Get Elementary's list of font overlays, set with
672 * elm_config_font_overlay_set().
674 * @return The font overlays list, with @c Elm_Font_Overlay blobs as
679 * For each text class, one can set a <b>font overlay</b> for it,
680 * overriding the default font properties for that class coming from
681 * the theme in use. There is no need to free this list.
683 * @see elm_config_font_overlay_set() and elm_config_font_overlay_unset().
685 EAPI const Eina_List *elm_config_font_overlay_list_get(void);
688 * Set a font overlay for a given Elementary text class.
690 * @param text_class Text class name
691 * @param font Font name and style string
692 * @param size Font size
696 * @p font has to be in the format returned by
697 * elm_font_fontconfig_name_get(). @see elm_config_font_overlay_list_get()
698 * and elm_config_font_overlay_unset().
700 EAPI void elm_config_font_overlay_set(const char *text_class, const char *font, Evas_Font_Size size);
703 * Unset a font overlay for a given Elementary text class.
705 * @param text_class Text class name
709 * This will bring back text elements belonging to text class
710 * @p text_class back to their default font settings.
712 EAPI void elm_config_font_overlay_unset(const char *text_class);
715 * Apply the changes made with elm_config_font_overlay_set() and
716 * elm_config_font_overlay_unset() on the current Elementary window.
720 * This applies all font overlays set to all objects in the UI.
722 EAPI void elm_config_font_overlay_apply(void);
725 * Get the configured "finger size"
727 * @return The finger size
729 * This gets the globally configured finger size, <b>in pixels</b>
733 EAPI Evas_Coord elm_config_finger_size_get(void);
734 // WRAPPER: Temperary Added.
735 EAPI Evas_Coord elm_finger_size_get(void);
738 * Set the configured finger size
740 * This sets the globally configured finger size in pixels
742 * @param size The finger size
745 EAPI void elm_config_finger_size_set(Evas_Coord size);
746 // WRAPPER: Temperary Added.
747 EAPI void elm_finger_size_set(Evas_Coord size);
751 * Get the configured cache flush interval time
753 * This gets the globally configured cache flush interval time, in
756 * @return The cache flush interval time
759 * @see elm_cache_all_flush()
761 EAPI int elm_config_cache_flush_interval_get(void);
764 * Set the configured cache flush interval time
766 * This sets the globally configured cache flush interval time, in ticks
768 * @param size The cache flush interval time
771 * @see elm_cache_all_flush()
773 EAPI void elm_config_cache_flush_interval_set(int size);
776 * Get the configured cache flush enabled state
778 * This gets the globally configured cache flush state - if it is enabled
779 * or not. When cache flushing is enabled, elementary will regularly
780 * (see elm_config_cache_flush_interval_get() ) flush caches and dump data out of
781 * memory and allow usage to re-seed caches and data in memory where it
782 * can do so. An idle application will thus minimize its memory usage as
783 * data will be freed from memory and not be re-loaded as it is idle and
784 * not rendering or doing anything graphically right now.
786 * @return The cache flush state
789 * @see elm_cache_all_flush()
791 EAPI Eina_Bool elm_config_cache_flush_enabled_get(void);
794 * Set the configured cache flush enabled state
796 * This sets the globally configured cache flush enabled state.
798 * @param enabled The cache flush enabled state
801 * @see elm_cache_all_flush()
803 EAPI void elm_config_cache_flush_enabled_set(Eina_Bool enabled);
806 * Get the configured font cache size
808 * This gets the globally configured font cache size, in bytes.
810 * @return The font cache size
813 EAPI int elm_config_cache_font_cache_size_get(void);
816 * Set the configured font cache size
818 * This sets the globally configured font cache size, in bytes
820 * @param size The font cache size
823 EAPI void elm_config_cache_font_cache_size_set(int size);
826 * Get the configured image cache size
828 * This gets the globally configured image cache size, in bytes
830 * @return The image cache size
833 EAPI int elm_config_cache_image_cache_size_get(void);
836 * Set the configured image cache size
838 * This sets the globally configured image cache size, in bytes
840 * @param size The image cache size
843 EAPI void elm_config_cache_image_cache_size_set(int size);
847 * Get the configured edje file cache size.
849 * This gets the globally configured edje file cache size, in number
852 * @return The edje file cache size
855 EAPI int elm_config_cache_edje_file_cache_size_get(void);
858 * Set the configured edje file cache size
860 * This sets the globally configured edje file cache size, in number
863 * @param size The edje file cache size
866 EAPI void elm_config_cache_edje_file_cache_size_set(int size);
869 * Get the configured edje collections (groups) cache size.
871 * This gets the globally configured edje collections cache size, in
872 * number of collections.
874 * @return The edje collections cache size
877 EAPI int elm_config_cache_edje_collection_cache_size_get(void);
880 * Set the configured edje collections (groups) cache size
882 * This sets the globally configured edje collections cache size, in
883 * number of collections.
885 * @param size The edje collections cache size
888 EAPI void elm_config_cache_edje_collection_cache_size_set(int size);
891 * Get the enable status of the focus highlight
893 * This gets whether the highlight on focused objects is enabled or not
895 * @see elm_config_focus_highlight_enabled_set()
898 EAPI Eina_Bool elm_config_focus_highlight_enabled_get(void);
901 * Set the enable status of the focus highlight
903 * @param enable Enable highlight if EINA_TRUE, disable otherwise
905 * Set whether to show or not the highlight on focused objects
907 * Note that it will take effect only to Elementary windows created after
914 EAPI void elm_config_focus_highlight_enabled_set(Eina_Bool enable);
917 * Get the enable status of the highlight animation
919 * @return The focus highlight mode set
921 * Get whether the focus highlight, if enabled, will animate its switch from
922 * one object to the next
926 EAPI Eina_Bool elm_config_focus_highlight_animate_get(void);
929 * Set the enable status of the highlight animation
931 * @param animate Enable animation if EINA_TRUE, disable otherwise
933 * Set whether the focus highlight, if enabled, will animate its switch from
934 * one object to the next
936 * Note that it will take effect only to Elementary windows created after
943 EAPI void elm_config_focus_highlight_animate_set(Eina_Bool animate);
946 * Get the system mirrored mode. This determines the default mirrored mode
949 * @return EINA_TRUE if mirrored is set, EINA_FALSE otherwise
951 EAPI Eina_Bool elm_config_mirrored_get(void);
954 * Set the system mirrored mode. This determines the default mirrored mode
957 * @param mirrored EINA_TRUE to set mirrored mode, EINA_FALSE to unset it.
959 EAPI void elm_config_mirrored_set(Eina_Bool mirrored);