Added per-window profile to support multi-head display.
[framework/uifw/elementary.git] / src / lib / elm_config.h
1 /**
2  * @defgroup Config Elementary Config
3  * @ingroup Elementary
4  *
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.
11  *
12  * @{
13  */
14
15 /**
16  * Save back Elementary's configuration, so that it will persist on
17  * future sessions.
18  *
19  * @return @c EINA_TRUE, when successful. @c EINA_FALSE, otherwise.
20  * @ingroup Config
21  *
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
25  * configuration file.
26  *
27  */
28 EAPI Eina_Bool elm_config_save(void);
29
30 /**
31  * Reload Elementary's configuration, bounded to current selected
32  * profile.
33  *
34  * @return @c EINA_TRUE, when successful. @c EINA_FALSE, otherwise.
35  * @ingroup Config
36  *
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.
40  *
41  */
42 EAPI void      elm_config_reload(void);
43
44 /**
45  * Flush all config settings then apply those settings to all applications
46  * using elementary on the current display.
47  *
48  * @ingroup Config
49  */
50 EAPI void      elm_config_all_flush(void);
51
52 /**
53  * @}
54  */
55
56 /**
57  * @defgroup Profile Elementary Profile
58  * @ingroup Elementary
59  *
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.
66  *
67  * @{
68  */
69
70 /**
71  * Get Elementary's profile in use.
72  *
73  * This gets the global profile that is applied to all Elementary
74  * applications.
75  *
76  * @return The profile's name
77  * @ingroup Profile
78  */
79 EAPI const char *elm_config_profile_get(void);
80
81 /**
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
84  * inside $HOME).
85  *
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.
90  * @ingroup Profile
91  *
92  * @note You must free it with elm_config_profile_dir_free().
93  */
94 EAPI const char *elm_config_profile_dir_get(const char *profile, Eina_Bool is_user);
95
96 /**
97  * Free an Elementary's profile directory path, as returned by
98  * elm_config_profile_dir_get().
99  *
100  * @param p_dir The profile's path
101  * @ingroup Profile
102  *
103  */
104 EAPI void        elm_config_profile_dir_free(const char *p_dir);
105
106 /**
107  * Get Elementary's list of available profiles.
108  *
109  * @return The profiles list. List node data are the profile name
110  *         strings.
111  * @ingroup Profile
112  *
113  * @note One must free this list, after usage, with the function
114  *       elm_config_profile_list_free().
115  */
116 EAPI Eina_List  *elm_config_profile_list_get(void);
117
118 /**
119  * Free Elementary's list of available profiles.
120  *
121  * @param l The profiles list, as returned by elm_config_profile_list_get().
122  * @ingroup Profile
123  *
124  */
125 EAPI void        elm_config_profile_list_free(Eina_List *l);
126
127 /**
128  * Set Elementary's profile.
129  *
130  * This sets the global profile that is applied to Elementary
131  * applications. Just the process the call comes from will be
132  * affected.
133  *
134  * @param profile The profile's name
135  * @ingroup Profile
136  *
137  */
138 EAPI void        elm_config_profile_set(const char *profile);
139
140 /**
141  * Check if the given Elementary's profile exists.
142  *
143  * @param profile The profile's name
144  * @return EINA_TRUE if the profile exists, EINA_FALSE otherwise.
145  *
146  * @ingroup Profile
147  */
148 EAPI Eina_Bool   elm_config_profile_exists(const char *profile);
149
150 /**
151  * @}
152  */
153
154 /**
155  * @defgroup Scrolling Elementary Scrolling
156  * @ingroup Elementary
157  *
158  * These are functions setting how scrollable views in Elementary
159  * widgets should behave on user interaction.
160  *
161  * @{
162  */
163
164 /**
165  * Get whether scrollers should bounce when they reach their
166  * viewport's edge during a scroll.
167  *
168  * @return the thumb scroll bouncing state
169  *
170  * This is the default behavior for touch screens, in general.
171  * @ingroup Scrolling
172  */
173 EAPI Eina_Bool    elm_config_scroll_bounce_enabled_get(void);
174
175 /**
176  * Set whether scrollers should bounce when they reach their
177  * viewport's edge during a scroll.
178  *
179  * @param enabled the thumb scroll bouncing state
180  *
181  * @see elm_config_scroll_bounce_enabled_get()
182  * @ingroup Scrolling
183  */
184 EAPI void         elm_config_scroll_bounce_enabled_set(Eina_Bool enabled);
185
186 /**
187  * Get the amount of inertia a scroller will impose at bounce
188  * animations.
189  *
190  * @return the thumb scroll bounce friction
191  *
192  * @ingroup Scrolling
193  */
194 EAPI double       elm_config_scroll_bounce_friction_get(void);
195
196 /**
197  * Set the amount of inertia a scroller will impose at bounce
198  * animations.
199  *
200  * @param friction the thumb scroll bounce friction
201  *
202  * @see elm_config_scroll_bounce_friction_get()
203  * @ingroup Scrolling
204  */
205 EAPI void         elm_config_scroll_bounce_friction_set(double friction);
206
207 /**
208  * Get the amount of inertia a <b>paged</b> scroller will impose at
209  * page fitting animations.
210  *
211  * @return the page scroll friction
212  *
213  * @ingroup Scrolling
214  */
215 EAPI double       elm_config_scroll_page_scroll_friction_get(void);
216
217 /**
218  * Set the amount of inertia a <b>paged</b> scroller will impose at
219  * page fitting animations.
220  *
221  * @param friction the page scroll friction
222  *
223  * @see elm_config_scroll_page_scroll_friction_get()
224  * @ingroup Scrolling
225  */
226 EAPI void         elm_config_scroll_page_scroll_friction_set(double friction);
227
228 /**
229  * Get the amount of inertia a scroller will impose at region bring
230  * animations.
231  *
232  * @return the bring in scroll friction
233  *
234  * @ingroup Scrolling
235  */
236 EAPI double       elm_config_scroll_bring_in_scroll_friction_get(void);
237
238 /**
239  * Set the amount of inertia a scroller will impose at region bring
240  * animations.
241  *
242  * @param friction the bring in scroll friction
243  *
244  * @see elm_config_scroll_bring_in_scroll_friction_get()
245  * @ingroup Scrolling
246  */
247 EAPI void         elm_config_scroll_bring_in_scroll_friction_set(double friction);
248
249 /**
250  * Get the amount of inertia scrollers will impose at animations
251  * triggered by Elementary widgets' zooming API.
252  *
253  * @return the zoom friction
254  *
255  * @ingroup Scrolling
256  */
257 EAPI double       elm_config_scroll_zoom_friction_get(void);
258
259 /**
260  * Set the amount of inertia scrollers will impose at animations
261  * triggered by Elementary widgets' zooming API.
262  *
263  * @param friction the zoom friction
264  *
265  * @see elm_config_scroll_zoom_friction_get()
266  * @ingroup Scrolling
267  */
268 EAPI void         elm_config_scroll_zoom_friction_set(double friction);
269
270 /**
271  * Get whether scrollers should be draggable from any point in their
272  * views.
273  *
274  * @return the thumb scroll state
275  *
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.
279  *
280  * @ingroup Scrolling
281  */
282 EAPI Eina_Bool    elm_config_scroll_thumbscroll_enabled_get(void);
283
284 /**
285  * Set whether scrollers should be draggable from any point in their
286  * views.
287  *
288  * @param enabled the thumb scroll state
289  *
290  * @see elm_config_scroll_thumbscroll_enabled_get()
291  * @ingroup Scrolling
292  */
293 EAPI void         elm_config_scroll_thumbscroll_enabled_set(Eina_Bool enabled);
294
295 /**
296  * Get the number of pixels one should travel while dragging a
297  * scroller's view to actually trigger scrolling.
298  *
299  * @return the thumb scroll threshold
300  *
301  * One would use higher values for touch screens, in general, because
302  * of their inherent imprecision.
303  * @ingroup Scrolling
304  */
305 EAPI unsigned int elm_config_scroll_thumbscroll_threshold_get(void);
306
307 /**
308  * Set the number of pixels one should travel while dragging a
309  * scroller's view to actually trigger scrolling.
310  *
311  * @param threshold the thumb scroll threshold
312  *
313  * @see elm_config_thumbscroll_threshold_get()
314  * @ingroup Scrolling
315  */
316 EAPI void         elm_config_scroll_thumbscroll_threshold_set(unsigned int threshold);
317
318 /**
319  * Get the minimum speed of mouse cursor movement which will trigger
320  * list self scrolling animation after a mouse up event
321  * (pixels/second).
322  *
323  * @return the thumb scroll momentum threshold
324  *
325  * @ingroup Scrolling
326  */
327 EAPI double       elm_config_scroll_thumbscroll_momentum_threshold_get(void);
328
329 /**
330  * Set the minimum speed of mouse cursor movement which will trigger
331  * list self scrolling animation after a mouse up event
332  * (pixels/second).
333  *
334  * @param threshold the thumb scroll momentum threshold
335  *
336  * @see elm_config_thumbscroll_momentum_threshold_get()
337  * @ingroup Scrolling
338  */
339 EAPI void         elm_config_scroll_thumbscroll_momentum_threshold_set(double threshold);
340
341 /**
342  * Get the amount of inertia a scroller will impose at self scrolling
343  * animations.
344  *
345  * @return the thumb scroll friction
346  *
347  * @ingroup Scrolling
348  */
349 EAPI double       elm_config_scroll_thumbscroll_friction_get(void);
350
351 /**
352  * Set the amount of inertia a scroller will impose at self scrolling
353  * animations.
354  *
355  * @param friction the thumb scroll friction
356  *
357  * @see elm_config_thumbscroll_friction_get()
358  * @ingroup Scrolling
359  */
360 EAPI void         elm_config_scroll_thumbscroll_friction_set(double friction);
361
362 /**
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.
366  *
367  * @return the thumb scroll border friction
368  *
369  * @ingroup Scrolling
370  */
371 EAPI double       elm_config_scroll_thumbscroll_border_friction_get(void);
372
373 /**
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.
377  *
378  * @param friction the thumb scroll border friction. @c 0.0 for
379  *        perfect synchrony between two movements, @c 1.0 for maximum
380  *        lag.
381  *
382  * @see elm_config_thumbscroll_border_friction_get()
383  * @note parameter value will get bound to 0.0 - 1.0 interval, always
384  *
385  * @ingroup Scrolling
386  */
387 EAPI void         elm_config_scroll_thumbscroll_border_friction_set(double friction);
388
389 /**
390  * Get the sensitivity amount which is be multiplied by the length of
391  * mouse dragging.
392  *
393  * @return the thumb scroll sensitivity friction
394  *
395  * @ingroup Scrolling
396  */
397 EAPI double       elm_config_scroll_thumbscroll_sensitivity_friction_get(void);
398
399 /**
400  * Set the sensitivity amount which is be multiplied by the length of
401  * mouse dragging.
402  *
403  * @param friction the thumb scroll sensitivity friction. @c 0.1 for
404  *        minimum sensitivity, @c 1.0 for maximum sensitivity. 0.25
405  *        is proper.
406  *
407  * @see elm_config_thumbscroll_sensitivity_friction_get()
408  * @note parameter value will get bound to 0.1 - 1.0 interval, always
409  *
410  * @ingroup Scrolling
411  */
412 EAPI void         elm_config_scroll_thumbscroll_sensitivity_friction_set(double friction);
413
414 /**
415  * @}
416  */
417
418 /**
419  * Get the duration for occurring long press event.
420  *
421  * @return Timeout for long press event
422  * @ingroup Longpress
423  */
424 EAPI double       elm_config_longpress_timeout_get(void);
425
426 /**
427  * Set the duration for occurring long press event.
428  *
429  * @param lonpress_timeout Timeout for long press event
430  * @ingroup Longpress
431  */
432 EAPI void         elm_config_longpress_timeout_set(double longpress_timeout);
433
434 /**
435  * Get the duration after which tooltip will be shown.
436  *
437  * @return Duration after which tooltip will be shown.
438  */
439 EAPI double      elm_config_tooltip_delay_get(void);
440
441 /**
442  * Set the duration after which tooltip will be shown.
443  *
444  * @return EINA_TRUE if value is set.
445  */
446 EAPI void        elm_config_tooltip_delay_set(double delay);
447
448 /**
449  * Get the configured cursor engine only usage
450  *
451  * This gets the globally configured exclusive usage of engine cursors.
452  *
453  * @return 1 if only engine cursors should be used
454  * @ingroup Cursors
455  */
456 EAPI Eina_Bool   elm_config_cursor_engine_only_get(void);
457
458 /**
459  * Set the configured cursor engine only usage
460  *
461  * This sets the globally configured exclusive usage of engine cursors.
462  * It won't affect cursors set before changing this value.
463  *
464  * @param engine_only If 1 only engine cursors will be enabled, if 0 will
465  * look for them on theme before.
466  * @ingroup Cursors
467  */
468 EAPI void        elm_config_cursor_engine_only_set(Eina_Bool engine_only);
469
470 /**
471  * Get the global scaling factor
472  *
473  * This gets the globally configured scaling factor that is applied to all
474  * objects.
475  *
476  * @return The scaling factor
477  * @ingroup Scaling
478  */
479 EAPI double elm_config_scale_get(void);
480 EAPI double elm_scale_get(void);
481
482 /**
483  * Set the global scaling factor
484  *
485  * This sets the globally configured scaling factor that is applied to all
486  * objects.
487  *
488  * @param scale The scaling factor to set
489  * @ingroup Scaling
490  */
491 EAPI void   elm_config_scale_set(double scale);
492 EAPI void elm_scale_set(double scale);
493
494 /**
495  * @defgroup Password_last_show Password show last
496  * @ingroup Elementary
497  *
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.
503  *
504  * @{
505  */
506
507 /**
508  * Get the "show last" setting of password mode.
509  *
510  * This gets the "show last" setting of password mode which might be
511  * enabled or disabled.
512  *
513  * @return @c EINA_TRUE, if the "show last" setting is enabled,
514  * @c EINA_FALSE  if it's disabled.
515  *
516  * @ingroup Password_last_show
517  */
518 EAPI Eina_Bool elm_config_password_show_last_get(void);
519
520 /**
521  * Set show last setting in password mode.
522  *
523  * This enables or disables show last setting of password mode.
524  *
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
528  */
529 EAPI void      elm_config_password_show_last_set(Eina_Bool password_show_last);
530
531 /**
532  * Gets the timeout value in "show last" password mode.
533  *
534  * This gets the time out value for which the last input entered in password
535  * mode will be visible.
536  *
537  * @return The timeout value of "show last" password mode.
538  * @ingroup Password_last_show
539  */
540 EAPI double    elm_config_password_show_last_timeout_get(void);
541
542 /**
543  * Set's the timeout value in "show last" password mode.
544  *
545  * This sets the time out value for which the last input entered in password
546  * mode will be visible.
547  *
548  * @param password_show_last_timeout The timeout value.
549  * @see elm_config_password_show_last_set()
550  * @ingroup Password_last_show
551  */
552 EAPI void      elm_config_password_show_last_timeout_set(double password_show_last_timeout);
553
554 /**
555  * @}
556  */
557
558 /**
559  * @defgroup Engine Elementary Engine
560  * @ingroup Elementary
561  *
562  * These are functions setting and querying which rendering engine
563  * Elementary will use for drawing its windows' pixels.
564  *
565  * The following are the available engines:
566  * @li "software_x11"
567  * @li "fb"
568  * @li "directfb"
569  * @li "software_16_x11"
570  * @li "software_8_x11"
571  * @li "xrender_x11"
572  * @li "opengl_x11"
573  * @li "software_gdi"
574  * @li "software_16_wince_gdi"
575  * @li "sdl"
576  * @li "software_16_sdl"
577  * @li "opengl_sdl"
578  * @li "buffer"
579  * @li "ews"
580  * @li "opengl_cocoa"
581  * @li "psl1ght"
582  *
583  * @{
584  */
585
586 /**
587  * @brief Get Elementary's rendering engine in use.
588  *
589  * @return The rendering engine's name
590  * @note there's no need to free the returned string, here.
591  *
592  * This gets the global rendering engine that is applied to all Elementary
593  * applications.
594  *
595  * @see elm_config_engine_set()
596  */
597 EAPI const char *elm_config_engine_get(void);
598
599 /**
600  * @brief Set Elementary's rendering engine for use.
601  *
602  * @param engine The rendering engine's name
603  *
604  * Note that it will take effect only to Elementary windows created after
605  * this is called.
606  *
607  * @see elm_win_add()
608  */
609 EAPI void        elm_config_engine_set(const char *engine);
610
611 /**
612  * @brief Get Elementary's preferred engine to use.
613  *
614  * @return The rendering engine's name
615  * @note there's no need to free the returned string, here.
616  *
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.
620  *
621  * @see elm_config_preferred_engine_set()
622  */
623 EAPI const char *elm_config_preferred_engine_get(void);
624
625 /**
626  * @brief Set Elementary's preferred rendering engine for use.
627  *
628  * @param engine The rendering engine's name
629  *
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.
633  *
634  * @see elm_win_add()
635  */
636 EAPI void        elm_config_preferred_engine_set(const char *engine);
637
638 typedef struct _Elm_Text_Class
639 {
640    const char *name;
641    const char *desc;
642 } Elm_Text_Class;
643
644 typedef struct _Elm_Font_Overlay
645 {
646    const char    *text_class;
647    const char    *font;
648    Evas_Font_Size size;
649 } Elm_Font_Overlay;
650
651 /**
652  * Get Elementary's list of supported text classes.
653  *
654  * @return The text classes list, with @c Elm_Text_Class blobs as data.
655  * @ingroup Fonts
656  *
657  * Release the list with elm_text_classes_list_free().
658  */
659 EAPI Eina_List *elm_config_text_classes_list_get(void);
660
661 /**
662  * Free Elementary's list of supported text classes.
663  *
664  * @ingroup Fonts
665  *
666  * @see elm_config_text_classes_list_get().
667  */
668 EAPI void elm_config_text_classes_list_free(Eina_List *list);
669
670 /**
671  * Get Elementary's list of font overlays, set with
672  * elm_config_font_overlay_set().
673  *
674  * @return The font overlays list, with @c Elm_Font_Overlay blobs as
675  * data.
676  *
677  * @ingroup Fonts
678  *
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.
682  *
683  * @see elm_config_font_overlay_set() and elm_config_font_overlay_unset().
684  */
685 EAPI const Eina_List *elm_config_font_overlay_list_get(void);
686
687 /**
688  * Set a font overlay for a given Elementary text class.
689  *
690  * @param text_class Text class name
691  * @param font Font name and style string
692  * @param size Font size
693  *
694  * @ingroup Fonts
695  *
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().
699  */
700 EAPI void             elm_config_font_overlay_set(const char *text_class, const char *font, Evas_Font_Size size);
701
702 /**
703  * Unset a font overlay for a given Elementary text class.
704  *
705  * @param text_class Text class name
706  *
707  * @ingroup Fonts
708  *
709  * This will bring back text elements belonging to text class
710  * @p text_class back to their default font settings.
711  */
712 EAPI void             elm_config_font_overlay_unset(const char *text_class);
713
714 /**
715  * Apply the changes made with elm_config_font_overlay_set() and
716  * elm_config_font_overlay_unset() on the current Elementary window.
717  *
718  * @ingroup Fonts
719  *
720  * This applies all font overlays set to all objects in the UI.
721  */
722 EAPI void             elm_config_font_overlay_apply(void);
723
724 /**
725  * Get the configured "finger size"
726  *
727  * @return The finger size
728  *
729  * This gets the globally configured finger size, <b>in pixels</b>
730  *
731  * @ingroup Fingers
732  */
733 EAPI Evas_Coord elm_config_finger_size_get(void);
734 // WRAPPER: Temperary Added.
735 EAPI Evas_Coord elm_finger_size_get(void);
736
737 /**
738  * Set the configured finger size
739  *
740  * This sets the globally configured finger size in pixels
741  *
742  * @param size The finger size
743  * @ingroup Fingers
744  */
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);
748
749
750 /**
751  * Get the configured cache flush interval time
752  *
753  * This gets the globally configured cache flush interval time, in
754  * ticks
755  *
756  * @return The cache flush interval time
757  * @ingroup Caches
758  *
759  * @see elm_cache_all_flush()
760  */
761 EAPI int       elm_config_cache_flush_interval_get(void);
762
763 /**
764  * Set the configured cache flush interval time
765  *
766  * This sets the globally configured cache flush interval time, in ticks
767  *
768  * @param size The cache flush interval time
769  * @ingroup Caches
770  *
771  * @see elm_cache_all_flush()
772  */
773 EAPI void      elm_config_cache_flush_interval_set(int size);
774
775 /**
776  * Get the configured cache flush enabled state
777  *
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.
785  *
786  * @return The cache flush state
787  * @ingroup Caches
788  *
789  * @see elm_cache_all_flush()
790  */
791 EAPI Eina_Bool elm_config_cache_flush_enabled_get(void);
792
793 /**
794  * Set the configured cache flush enabled state
795  *
796  * This sets the globally configured cache flush enabled state.
797  *
798  * @param enabled The cache flush enabled state
799  * @ingroup Caches
800  *
801  * @see elm_cache_all_flush()
802  */
803 EAPI void      elm_config_cache_flush_enabled_set(Eina_Bool enabled);
804
805 /**
806  * Get the configured font cache size
807  *
808  * This gets the globally configured font cache size, in bytes.
809  *
810  * @return The font cache size
811  * @ingroup Caches
812  */
813 EAPI int       elm_config_cache_font_cache_size_get(void);
814
815 /**
816  * Set the configured font cache size
817  *
818  * This sets the globally configured font cache size, in bytes
819  *
820  * @param size The font cache size
821  * @ingroup Caches
822  */
823 EAPI void      elm_config_cache_font_cache_size_set(int size);
824
825 /**
826  * Get the configured image cache size
827  *
828  * This gets the globally configured image cache size, in bytes
829  *
830  * @return The image cache size
831  * @ingroup Caches
832  */
833 EAPI int       elm_config_cache_image_cache_size_get(void);
834
835 /**
836  * Set the configured image cache size
837  *
838  * This sets the globally configured image cache size, in bytes
839  *
840  * @param size The image cache size
841  * @ingroup Caches
842  */
843 EAPI void       elm_config_cache_image_cache_size_set(int size);
844
845
846 /**
847  * Get the configured edje file cache size.
848  *
849  * This gets the globally configured edje file cache size, in number
850  * of files.
851  *
852  * @return The edje file cache size
853  * @ingroup Caches
854  */
855 EAPI int       elm_config_cache_edje_file_cache_size_get(void);
856
857 /**
858  * Set the configured edje file cache size
859  *
860  * This sets the globally configured edje file cache size, in number
861  * of files.
862  *
863  * @param size The edje file cache size
864  * @ingroup Caches
865  */
866 EAPI void       elm_config_cache_edje_file_cache_size_set(int size);
867
868 /**
869  * Get the configured edje collections (groups) cache size.
870  *
871  * This gets the globally configured edje collections cache size, in
872  * number of collections.
873  *
874  * @return The edje collections cache size
875  * @ingroup Caches
876  */
877 EAPI int       elm_config_cache_edje_collection_cache_size_get(void);
878
879 /**
880  * Set the configured edje collections (groups) cache size
881  *
882  * This sets the globally configured edje collections cache size, in
883  * number of collections.
884  *
885  * @param size The edje collections cache size
886  * @ingroup Caches
887  */
888 EAPI void       elm_config_cache_edje_collection_cache_size_set(int size);
889
890 /**
891  * Get the enable status of the focus highlight
892  *
893  * This gets whether the highlight on focused objects is enabled or not
894  *
895  * @see elm_config_focus_highlight_enabled_set()
896  * @ingroup Focus
897  */
898 EAPI Eina_Bool            elm_config_focus_highlight_enabled_get(void);
899
900 /**
901  * Set the enable status of the focus highlight
902  *
903  * @param enable Enable highlight if EINA_TRUE, disable otherwise
904  *
905  * Set whether to show or not the highlight on focused objects
906  *
907  * Note that it will take effect only to Elementary windows created after
908  * this is called.
909  *
910  * @see elm_win_add()
911  *
912  * @ingroup Focus
913  */
914 EAPI void                 elm_config_focus_highlight_enabled_set(Eina_Bool enable);
915
916 /**
917  * Get the enable status of the highlight animation
918  *
919  * @return The focus highlight mode set
920  *
921  * Get whether the focus highlight, if enabled, will animate its switch from
922  * one object to the next
923  *
924  * @ingroup Focus
925  */
926 EAPI Eina_Bool            elm_config_focus_highlight_animate_get(void);
927
928 /**
929  * Set the enable status of the highlight animation
930  *
931  * @param animate Enable animation if EINA_TRUE, disable otherwise
932  *
933  * Set whether the focus highlight, if enabled, will animate its switch from
934  * one object to the next
935  *
936  * Note that it will take effect only to Elementary windows created after
937  * this is called.
938  *
939  * @see elm_win_add()
940  *
941  * @ingroup Focus
942  */
943 EAPI void                 elm_config_focus_highlight_animate_set(Eina_Bool animate);
944
945 /**
946  * Get the system mirrored mode. This determines the default mirrored mode
947  * of widgets.
948  *
949  * @return EINA_TRUE if mirrored is set, EINA_FALSE otherwise
950  */
951 EAPI Eina_Bool elm_config_mirrored_get(void);
952
953 /**
954  * Set the system mirrored mode. This determines the default mirrored mode
955  * of widgets.
956  *
957  * @param mirrored EINA_TRUE to set mirrored mode, EINA_FALSE to unset it.
958  */
959 EAPI void      elm_config_mirrored_set(Eina_Bool mirrored);
960
961 /**
962  * @}
963  */