Merge remote-tracking branch 'remotes/origin/upstream'
[framework/uifw/elementary.git] / src / lib / elm_config.h
1 /**
2  * @defgroup Config Elementary Config
3  *
4  * Elementary configuration is formed by a set options bounded to a
5  * given @ref Profile profile, like @ref Theme theme, @ref Fingers
6 <<<<<<< HEAD
7  * "finger size", etc. These are functions with which one syncronizes
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 unlees you're writing an elementary configuration manager.
11 =======
12  * "finger size", etc. These are functions with which one synchronizes
13  * changes made to those values to the configuration storing files, de
14  * facto. You most probably don't want to use the functions in this
15  * group unless you're writing an elementary configuration manager.
16 >>>>>>> remotes/origin/upstream
17  *
18  * @{
19  */
20
21 /**
22  * Save back Elementary's configuration, so that it will persist on
23  * future sessions.
24  *
25 <<<<<<< HEAD
26  * @return @c EINA_TRUE, when sucessful. @c EINA_FALSE, otherwise.
27  * @ingroup Config
28  *
29  * This function will take effect -- thus, do I/O -- immediately. Use
30  * it when you want to apply all configuration changes at once. The
31 =======
32  * @return @c EINA_TRUE, when successful. @c EINA_FALSE, otherwise.
33  * @ingroup Config
34  *
35  * This function will take effect -- thus, do I/O -- immediately. Use
36  * it when you want to save all configuration changes at once. The
37 >>>>>>> remotes/origin/upstream
38  * current configuration set will get saved onto the current profile
39  * configuration file.
40  *
41  */
42 EAPI Eina_Bool elm_config_save(void);
43
44 /**
45  * Reload Elementary's configuration, bounded to current selected
46  * profile.
47  *
48 <<<<<<< HEAD
49  * @return @c EINA_TRUE, when sucessful. @c EINA_FALSE, otherwise.
50 =======
51  * @return @c EINA_TRUE, when successful. @c EINA_FALSE, otherwise.
52 >>>>>>> remotes/origin/upstream
53  * @ingroup Config
54  *
55  * Useful when you want to force reloading of configuration values for
56  * a profile. If one removes user custom configuration directories,
57  * for example, it will force a reload with system values instead.
58  *
59  */
60 EAPI void      elm_config_reload(void);
61
62 /**
63 <<<<<<< HEAD
64 =======
65  * Flush all config settings then apply those settings to all applications
66  * using elementary on the current display.
67  *  
68  * @ingroup Config
69  */
70 EAPI void      elm_config_all_flush(void);
71
72 /**
73 >>>>>>> remotes/origin/upstream
74  * @}
75  */
76
77 /**
78  * @defgroup Profile Elementary Profile
79  *
80  * Profiles are pre-set options that affect the whole look-and-feel of
81  * Elementary-based applications. There are, for example, profiles
82  * aimed at desktop computer applications and others aimed at mobile,
83  * touchscreen-based ones. You most probably don't want to use the
84 <<<<<<< HEAD
85  * functions in this group unlees you're writing an elementary
86 =======
87  * functions in this group unless you're writing an elementary
88 >>>>>>> remotes/origin/upstream
89  * configuration manager.
90  *
91  * @{
92  */
93
94 /**
95  * Get Elementary's profile in use.
96  *
97  * This gets the global profile that is applied to all Elementary
98  * applications.
99  *
100  * @return The profile's name
101  * @ingroup Profile
102  */
103 <<<<<<< HEAD
104 EAPI const char *elm_profile_current_get(void);
105
106 /**
107  * Get an Elementary's profile directory path in the filesystem. One
108  * may want to fetch a system profile's dir or an user one (fetched
109  * inside $HOME).
110  *
111  * @param profile The profile's name
112  * @param is_user Whether to lookup for an user profile (@c EINA_TRUE)
113 =======
114 EAPI const char *elm_config_profile_get(void);
115
116 /**
117  * Get an Elementary's profile directory path in the filesystem. One
118  * may want to fetch a system profile's dir or a user one (fetched
119  * inside $HOME).
120  *
121  * @param profile The profile's name
122  * @param is_user Whether to lookup for a user profile (@c EINA_TRUE)
123 >>>>>>> remotes/origin/upstream
124  *                or a system one (@c EINA_FALSE)
125  * @return The profile's directory path.
126  * @ingroup Profile
127  *
128 <<<<<<< HEAD
129  * @note You must free it with elm_profile_dir_free().
130  */
131 EAPI const char *elm_profile_dir_get(const char *profile, Eina_Bool is_user);
132
133 /**
134  * Free an Elementary's profile directory path, as returned by
135  * elm_profile_dir_get().
136 =======
137  * @note You must free it with elm_config_profile_dir_free().
138  */
139 EAPI const char *elm_config_profile_dir_get(const char *profile, Eina_Bool is_user);
140
141 /**
142  * Free an Elementary's profile directory path, as returned by
143  * elm_config_profile_dir_get().
144 >>>>>>> remotes/origin/upstream
145  *
146  * @param p_dir The profile's path
147  * @ingroup Profile
148  *
149  */
150 <<<<<<< HEAD
151 EAPI void        elm_profile_dir_free(const char *p_dir);
152 =======
153 EAPI void        elm_config_profile_dir_free(const char *p_dir);
154 >>>>>>> remotes/origin/upstream
155
156 /**
157  * Get Elementary's list of available profiles.
158  *
159  * @return The profiles list. List node data are the profile name
160  *         strings.
161  * @ingroup Profile
162  *
163  * @note One must free this list, after usage, with the function
164 <<<<<<< HEAD
165  *       elm_profile_list_free().
166  */
167 EAPI Eina_List  *elm_profile_list_get(void);
168 =======
169  *       elm_config_profile_list_free().
170  */
171 EAPI Eina_List  *elm_config_profile_list_get(void);
172 >>>>>>> remotes/origin/upstream
173
174 /**
175  * Free Elementary's list of available profiles.
176  *
177 <<<<<<< HEAD
178  * @param l The profiles list, as returned by elm_profile_list_get().
179  * @ingroup Profile
180  *
181  */
182 EAPI void        elm_profile_list_free(Eina_List *l);
183 =======
184  * @param l The profiles list, as returned by elm_config_profile_list_get().
185  * @ingroup Profile
186  *
187  */
188 EAPI void        elm_config_profile_list_free(Eina_List *l);
189 >>>>>>> remotes/origin/upstream
190
191 /**
192  * Set Elementary's profile.
193  *
194  * This sets the global profile that is applied to Elementary
195  * applications. Just the process the call comes from will be
196  * affected.
197  *
198  * @param profile The profile's name
199  * @ingroup Profile
200  *
201  */
202 <<<<<<< HEAD
203 EAPI void        elm_profile_set(const char *profile);
204
205 /**
206  * Set Elementary's profile.
207  *
208  * This sets the global profile that is applied to all Elementary
209  * applications. All running Elementary windows will be affected.
210  *
211  * @param profile The profile's name
212  * @ingroup Profile
213  *
214  */
215 EAPI void        elm_profile_all_set(const char *profile);
216 =======
217 EAPI void        elm_config_profile_set(const char *profile);
218 >>>>>>> remotes/origin/upstream
219
220 /**
221  * @}
222  */
223
224 /**
225  * @defgroup Scrolling Scrolling
226  *
227  * These are functions setting how scrollable views in Elementary
228  * widgets should behave on user interaction.
229  *
230  * @{
231  */
232
233 /**
234  * Get whether scrollers should bounce when they reach their
235  * viewport's edge during a scroll.
236  *
237  * @return the thumb scroll bouncing state
238  *
239  * This is the default behavior for touch screens, in general.
240  * @ingroup Scrolling
241  */
242 <<<<<<< HEAD
243 EAPI Eina_Bool    elm_scroll_bounce_enabled_get(void);
244 =======
245 EAPI Eina_Bool    elm_config_scroll_bounce_enabled_get(void);
246 >>>>>>> remotes/origin/upstream
247
248 /**
249  * Set whether scrollers should bounce when they reach their
250  * viewport's edge during a scroll.
251  *
252  * @param enabled the thumb scroll bouncing state
253  *
254 <<<<<<< HEAD
255  * @see elm_thumbscroll_bounce_enabled_get()
256  * @ingroup Scrolling
257  */
258 EAPI void         elm_scroll_bounce_enabled_set(Eina_Bool enabled);
259
260 /**
261  * Set whether scrollers should bounce when they reach their
262  * viewport's edge during a scroll, for all Elementary application
263  * windows.
264  *
265  * @param enabled the thumb scroll bouncing state
266  *
267  * @see elm_thumbscroll_bounce_enabled_get()
268  * @ingroup Scrolling
269  */
270 // XXX: deprecate and replace with elm_config_all_flush()
271 EAPI void         elm_scroll_bounce_enabled_all_set(Eina_Bool enabled);
272 =======
273  * @see elm_config_scroll_bounce_enabled_get()
274  * @ingroup Scrolling
275  */
276 EAPI void         elm_config_scroll_bounce_enabled_set(Eina_Bool enabled);
277 >>>>>>> remotes/origin/upstream
278
279 /**
280  * Get the amount of inertia a scroller will impose at bounce
281  * animations.
282  *
283  * @return the thumb scroll bounce friction
284  *
285  * @ingroup Scrolling
286  */
287 <<<<<<< HEAD
288 EAPI double       elm_scroll_bounce_friction_get(void);
289 =======
290 EAPI double       elm_config_scroll_bounce_friction_get(void);
291 >>>>>>> remotes/origin/upstream
292
293 /**
294  * Set the amount of inertia a scroller will impose at bounce
295  * animations.
296  *
297  * @param friction the thumb scroll bounce friction
298  *
299 <<<<<<< HEAD
300  * @see elm_thumbscroll_bounce_friction_get()
301  * @ingroup Scrolling
302  */
303 EAPI void         elm_scroll_bounce_friction_set(double friction);
304
305 /**
306  * Set the amount of inertia a scroller will impose at bounce
307  * animations, for all Elementary application windows.
308  *
309  * @param friction the thumb scroll bounce friction
310  *
311  * @see elm_thumbscroll_bounce_friction_get()
312  * @ingroup Scrolling
313  */
314 // XXX: deprecate and replace with elm_config_all_flush()
315 EAPI void         elm_scroll_bounce_friction_all_set(double friction);
316 =======
317  * @see elm_config_scroll_bounce_friction_get()
318  * @ingroup Scrolling
319  */
320 EAPI void         elm_config_scroll_bounce_friction_set(double friction);
321 >>>>>>> remotes/origin/upstream
322
323 /**
324  * Get the amount of inertia a <b>paged</b> scroller will impose at
325  * page fitting animations.
326  *
327  * @return the page scroll friction
328  *
329  * @ingroup Scrolling
330  */
331 <<<<<<< HEAD
332 EAPI double       elm_scroll_page_scroll_friction_get(void);
333 =======
334 EAPI double       elm_config_scroll_page_scroll_friction_get(void);
335 >>>>>>> remotes/origin/upstream
336
337 /**
338  * Set the amount of inertia a <b>paged</b> scroller will impose at
339  * page fitting animations.
340  *
341  * @param friction the page scroll friction
342  *
343 <<<<<<< HEAD
344  * @see elm_thumbscroll_page_scroll_friction_get()
345  * @ingroup Scrolling
346  */
347 EAPI void         elm_scroll_page_scroll_friction_set(double friction);
348
349 /**
350  * Set the amount of inertia a <b>paged</b> scroller will impose at
351  * page fitting animations, for all Elementary application windows.
352  *
353  * @param friction the page scroll friction
354  *
355  * @see elm_thumbscroll_page_scroll_friction_get()
356  * @ingroup Scrolling
357  */
358 // XXX: deprecate and replace with elm_config_all_flush()
359 EAPI void         elm_scroll_page_scroll_friction_all_set(double friction);
360 =======
361  * @see elm_config_scroll_page_scroll_friction_get()
362  * @ingroup Scrolling
363  */
364 EAPI void         elm_config_scroll_page_scroll_friction_set(double friction);
365 >>>>>>> remotes/origin/upstream
366
367 /**
368  * Get the amount of inertia a scroller will impose at region bring
369  * animations.
370  *
371  * @return the bring in scroll friction
372  *
373  * @ingroup Scrolling
374  */
375 <<<<<<< HEAD
376 EAPI double       elm_scroll_bring_in_scroll_friction_get(void);
377 =======
378 EAPI double       elm_config_scroll_bring_in_scroll_friction_get(void);
379 >>>>>>> remotes/origin/upstream
380
381 /**
382  * Set the amount of inertia a scroller will impose at region bring
383  * animations.
384  *
385  * @param friction the bring in scroll friction
386  *
387 <<<<<<< HEAD
388  * @see elm_thumbscroll_bring_in_scroll_friction_get()
389  * @ingroup Scrolling
390  */
391 EAPI void         elm_scroll_bring_in_scroll_friction_set(double friction);
392
393 /**
394  * Set the amount of inertia a scroller will impose at region bring
395  * animations, for all Elementary application windows.
396  *
397  * @param friction the bring in scroll friction
398  *
399  * @see elm_thumbscroll_bring_in_scroll_friction_get()
400  * @ingroup Scrolling
401  */
402 // XXX: deprecate and replace with elm_config_all_flush()
403 EAPI void         elm_scroll_bring_in_scroll_friction_all_set(double friction);
404 =======
405  * @see elm_config_scroll_bring_in_scroll_friction_get()
406  * @ingroup Scrolling
407  */
408 EAPI void         elm_config_scroll_bring_in_scroll_friction_set(double friction);
409 >>>>>>> remotes/origin/upstream
410
411 /**
412  * Get the amount of inertia scrollers will impose at animations
413  * triggered by Elementary widgets' zooming API.
414  *
415  * @return the zoom friction
416  *
417  * @ingroup Scrolling
418  */
419 <<<<<<< HEAD
420 EAPI double       elm_scroll_zoom_friction_get(void);
421 =======
422 EAPI double       elm_config_scroll_zoom_friction_get(void);
423 >>>>>>> remotes/origin/upstream
424
425 /**
426  * Set the amount of inertia scrollers will impose at animations
427  * triggered by Elementary widgets' zooming API.
428  *
429  * @param friction the zoom friction
430  *
431 <<<<<<< HEAD
432  * @see elm_thumbscroll_zoom_friction_get()
433  * @ingroup Scrolling
434  */
435 EAPI void         elm_scroll_zoom_friction_set(double friction);
436
437 /**
438  * Set the amount of inertia scrollers will impose at animations
439  * triggered by Elementary widgets' zooming API, for all Elementary
440  * application windows.
441  *
442  * @param friction the zoom friction
443  *
444  * @see elm_thumbscroll_zoom_friction_get()
445  * @ingroup Scrolling
446  */
447 // XXX: deprecate and replace with elm_config_all_flush()
448 EAPI void         elm_scroll_zoom_friction_all_set(double friction);
449 =======
450  * @see elm_config_scroll_zoom_friction_get()
451  * @ingroup Scrolling
452  */
453 EAPI void         elm_config_scroll_zoom_friction_set(double friction);
454 >>>>>>> remotes/origin/upstream
455
456 /**
457  * Get whether scrollers should be draggable from any point in their
458  * views.
459  *
460  * @return the thumb scroll state
461  *
462  * @note This is the default behavior for touch screens, in general.
463  * @note All other functions namespaced with "thumbscroll" will only
464  *       have effect if this mode is enabled.
465  *
466  * @ingroup Scrolling
467  */
468 <<<<<<< HEAD
469 EAPI Eina_Bool    elm_scroll_thumbscroll_enabled_get(void);
470 =======
471 EAPI Eina_Bool    elm_config_scroll_thumbscroll_enabled_get(void);
472 >>>>>>> remotes/origin/upstream
473
474 /**
475  * Set whether scrollers should be draggable from any point in their
476  * views.
477  *
478  * @param enabled the thumb scroll state
479  *
480 <<<<<<< HEAD
481  * @see elm_thumbscroll_enabled_get()
482  * @ingroup Scrolling
483  */
484 EAPI void         elm_scroll_thumbscroll_enabled_set(Eina_Bool enabled);
485
486 /**
487  * Set whether scrollers should be draggable from any point in their
488  * views, for all Elementary application windows.
489  *
490  * @param enabled the thumb scroll state
491  *
492  * @see elm_thumbscroll_enabled_get()
493  * @ingroup Scrolling
494  */
495 // XXX: deprecate and replace with elm_config_all_flush()
496 EAPI void         elm_scroll_thumbscroll_enabled_all_set(Eina_Bool enabled);
497 =======
498  * @see elm_config_scroll_thumbscroll_enabled_get()
499  * @ingroup Scrolling
500  */
501 EAPI void         elm_config_scroll_thumbscroll_enabled_set(Eina_Bool enabled);
502 >>>>>>> remotes/origin/upstream
503
504 /**
505  * Get the number of pixels one should travel while dragging a
506  * scroller's view to actually trigger scrolling.
507  *
508 <<<<<<< HEAD
509  * @return the thumb scroll threshould
510 =======
511  * @return the thumb scroll threshold
512 >>>>>>> remotes/origin/upstream
513  *
514  * One would use higher values for touch screens, in general, because
515  * of their inherent imprecision.
516  * @ingroup Scrolling
517  */
518 <<<<<<< HEAD
519 EAPI unsigned int elm_scroll_thumbscroll_threshold_get(void);
520 =======
521 EAPI unsigned int elm_config_scroll_thumbscroll_threshold_get(void);
522 >>>>>>> remotes/origin/upstream
523
524 /**
525  * Set the number of pixels one should travel while dragging a
526  * scroller's view to actually trigger scrolling.
527  *
528 <<<<<<< HEAD
529  * @param threshold the thumb scroll threshould
530  *
531  * @see elm_thumbscroll_threshould_get()
532  * @ingroup Scrolling
533  */
534 EAPI void         elm_scroll_thumbscroll_threshold_set(unsigned int threshold);
535
536 /**
537  * Set the number of pixels one should travel while dragging a
538  * scroller's view to actually trigger scrolling, for all Elementary
539  * application windows.
540  *
541  * @param threshold the thumb scroll threshould
542  *
543  * @see elm_thumbscroll_threshould_get()
544  * @ingroup Scrolling
545  */
546 // XXX: deprecate and replace with elm_config_all_flush()
547 EAPI void         elm_scroll_thumbscroll_threshold_all_set(unsigned int threshold);
548 =======
549  * @param threshold the thumb scroll threshold
550  *
551  * @see elm_config_thumbscroll_threshold_get()
552  * @ingroup Scrolling
553  */
554 EAPI void         elm_config_scroll_thumbscroll_threshold_set(unsigned int threshold);
555 >>>>>>> remotes/origin/upstream
556
557 /**
558  * Get the minimum speed of mouse cursor movement which will trigger
559  * list self scrolling animation after a mouse up event
560  * (pixels/second).
561  *
562 <<<<<<< HEAD
563  * @return the thumb scroll momentum threshould
564  *
565  * @ingroup Scrolling
566  */
567 EAPI double       elm_scroll_thumbscroll_momentum_threshold_get(void);
568 =======
569  * @return the thumb scroll momentum threshold
570  *
571  * @ingroup Scrolling
572  */
573 EAPI double       elm_config_scroll_thumbscroll_momentum_threshold_get(void);
574 >>>>>>> remotes/origin/upstream
575
576 /**
577  * Set the minimum speed of mouse cursor movement which will trigger
578  * list self scrolling animation after a mouse up event
579  * (pixels/second).
580  *
581 <<<<<<< HEAD
582  * @param threshold the thumb scroll momentum threshould
583  *
584  * @see elm_thumbscroll_momentum_threshould_get()
585  * @ingroup Scrolling
586  */
587 EAPI void         elm_scroll_thumbscroll_momentum_threshold_set(double threshold);
588
589 /**
590  * Set the minimum speed of mouse cursor movement which will trigger
591  * list self scrolling animation after a mouse up event
592  * (pixels/second), for all Elementary application windows.
593  *
594  * @param threshold the thumb scroll momentum threshould
595  *
596  * @see elm_thumbscroll_momentum_threshould_get()
597  * @ingroup Scrolling
598  */
599 // XXX: deprecate and replace with elm_config_all_flush()
600 EAPI void         elm_scroll_thumbscroll_momentum_threshold_all_set(double threshold);
601 =======
602  * @param threshold the thumb scroll momentum threshold
603  *
604  * @see elm_config_thumbscroll_momentum_threshold_get()
605  * @ingroup Scrolling
606  */
607 EAPI void         elm_config_scroll_thumbscroll_momentum_threshold_set(double threshold);
608 >>>>>>> remotes/origin/upstream
609
610 /**
611  * Get the amount of inertia a scroller will impose at self scrolling
612  * animations.
613  *
614  * @return the thumb scroll friction
615  *
616  * @ingroup Scrolling
617  */
618 <<<<<<< HEAD
619 EAPI double       elm_scroll_thumbscroll_friction_get(void);
620 =======
621 EAPI double       elm_config_scroll_thumbscroll_friction_get(void);
622 >>>>>>> remotes/origin/upstream
623
624 /**
625  * Set the amount of inertia a scroller will impose at self scrolling
626  * animations.
627  *
628  * @param friction the thumb scroll friction
629  *
630 <<<<<<< HEAD
631  * @see elm_thumbscroll_friction_get()
632  * @ingroup Scrolling
633  */
634 EAPI void         elm_scroll_thumbscroll_friction_set(double friction);
635
636 /**
637  * Set the amount of inertia a scroller will impose at self scrolling
638  * animations, for all Elementary application windows.
639  *
640  * @param friction the thumb scroll friction
641  *
642  * @see elm_thumbscroll_friction_get()
643  * @ingroup Scrolling
644  */
645 // XXX: deprecate and replace with elm_config_all_flush()
646 EAPI void         elm_scroll_thumbscroll_friction_all_set(double friction);
647 =======
648  * @see elm_config_thumbscroll_friction_get()
649  * @ingroup Scrolling
650  */
651 EAPI void         elm_config_scroll_thumbscroll_friction_set(double friction);
652 >>>>>>> remotes/origin/upstream
653
654 /**
655  * Get the amount of lag between your actual mouse cursor dragging
656  * movement and a scroller's view movement itself, while pushing it
657  * into bounce state manually.
658  *
659  * @return the thumb scroll border friction
660  *
661  * @ingroup Scrolling
662  */
663 <<<<<<< HEAD
664 EAPI double       elm_scroll_thumbscroll_border_friction_get(void);
665 =======
666 EAPI double       elm_config_scroll_thumbscroll_border_friction_get(void);
667 >>>>>>> remotes/origin/upstream
668
669 /**
670  * Set the amount of lag between your actual mouse cursor dragging
671  * movement and a scroller's view movement itself, while pushing it
672  * into bounce state manually.
673  *
674  * @param friction the thumb scroll border friction. @c 0.0 for
675  *        perfect synchrony between two movements, @c 1.0 for maximum
676  *        lag.
677  *
678 <<<<<<< HEAD
679  * @see elm_thumbscroll_border_friction_get()
680  * @note parameter value will get bound to 0.0 - 1.0 interval, always
681  *
682  * @ingroup Scrolling
683  */
684 EAPI void         elm_scroll_thumbscroll_border_friction_set(double friction);
685
686 /**
687  * Set the amount of lag between your actual mouse cursor dragging
688  * movement and a scroller's view movement itself, while pushing it
689  * into bounce state manually, for all Elementary application windows.
690  *
691  * @param friction the thumb scroll border friction. @c 0.0 for
692  *        perfect synchrony between two movements, @c 1.0 for maximum
693  *        lag.
694  *
695  * @see elm_thumbscroll_border_friction_get()
696 =======
697  * @see elm_config_thumbscroll_border_friction_get()
698 >>>>>>> remotes/origin/upstream
699  * @note parameter value will get bound to 0.0 - 1.0 interval, always
700  *
701  * @ingroup Scrolling
702  */
703 <<<<<<< HEAD
704 // XXX: deprecate and replace with elm_config_all_flush()
705 EAPI void         elm_scroll_thumbscroll_border_friction_all_set(double friction);
706 =======
707 EAPI void         elm_config_scroll_thumbscroll_border_friction_set(double friction);
708 >>>>>>> remotes/origin/upstream
709
710 /**
711  * Get the sensitivity amount which is be multiplied by the length of
712  * mouse dragging.
713  *
714  * @return the thumb scroll sensitivity friction
715  *
716  * @ingroup Scrolling
717  */
718 <<<<<<< HEAD
719 EAPI double       elm_scroll_thumbscroll_sensitivity_friction_get(void);
720 =======
721 EAPI double       elm_config_scroll_thumbscroll_sensitivity_friction_get(void);
722 >>>>>>> remotes/origin/upstream
723
724 /**
725  * Set the sensitivity amount which is be multiplied by the length of
726  * mouse dragging.
727  *
728  * @param friction the thumb scroll sensitivity friction. @c 0.1 for
729 <<<<<<< HEAD
730  *        minimun sensitivity, @c 1.0 for maximum sensitivity. 0.25
731  *        is proper.
732  *
733  * @see elm_thumbscroll_sensitivity_friction_get()
734 =======
735  *        minimum sensitivity, @c 1.0 for maximum sensitivity. 0.25
736  *        is proper.
737  *
738  * @see elm_config_thumbscroll_sensitivity_friction_get()
739 >>>>>>> remotes/origin/upstream
740  * @note parameter value will get bound to 0.1 - 1.0 interval, always
741  *
742  * @ingroup Scrolling
743  */
744 <<<<<<< HEAD
745 EAPI void         elm_scroll_thumbscroll_sensitivity_friction_set(double friction);
746
747 /**
748  * Set the sensitivity amount which is be multiplied by the length of
749  * mouse dragging, for all Elementary application windows.
750  *
751  * @param friction the thumb scroll sensitivity friction. @c 0.1 for
752  *        minimun sensitivity, @c 1.0 for maximum sensitivity. 0.25
753  *        is proper.
754  *
755  * @see elm_thumbscroll_sensitivity_friction_get()
756  * @note parameter value will get bound to 0.1 - 1.0 interval, always
757  *
758  * @ingroup Scrolling
759  */
760 // XXX: deprecate and replace with elm_config_all_flush()
761 EAPI void         elm_scroll_thumbscroll_sensitivity_friction_all_set(double friction);
762 =======
763 EAPI void         elm_config_scroll_thumbscroll_sensitivity_friction_set(double friction);
764
765 /**
766  * @}
767  */
768
769 /**
770  * Get the duration for occurring long press event.
771  *
772  * @return Timeout for long press event
773  * @ingroup Longpress
774  */
775 EAPI double       elm_config_longpress_timeout_get(void);
776
777 /**
778  * Set the duration for occurring long press event.
779  *
780  * @param lonpress_timeout Timeout for long press event
781  * @ingroup Longpress
782  */
783 EAPI void         elm_config_longpress_timeout_set(double longpress_timeout);
784
785 /**
786  * Get the duration after which tooltip will be shown.
787  *
788  * @return Duration after which tooltip will be shown.
789  */
790 EAPI double      elm_config_tooltip_delay_get(void);
791
792 /**
793  * Set the duration after which tooltip will be shown.
794  *
795  * @return EINA_TRUE if value is set.  
796  */
797 EAPI void        elm_config_tooltip_delay_set(double delay);
798
799 /**
800  * Get the configured cursor engine only usage
801  *
802  * This gets the globally configured exclusive usage of engine cursors.
803  *
804  * @return 1 if only engine cursors should be used
805  * @ingroup Cursors
806  */
807 EAPI Eina_Bool   elm_config_cursor_engine_only_get(void);
808
809 /**
810  * Set the configured cursor engine only usage
811  *
812  * This sets the globally configured exclusive usage of engine cursors.
813  * It won't affect cursors set before changing this value.
814  *
815  * @param engine_only If 1 only engine cursors will be enabled, if 0 will
816  * look for them on theme before.
817  * @ingroup Cursors
818  */
819 EAPI void        elm_config_cursor_engine_only_set(Eina_Bool engine_only);
820
821 /**
822  * Get the global scaling factor
823  *
824  * This gets the globally configured scaling factor that is applied to all
825  * objects.
826  *
827  * @return The scaling factor
828  * @ingroup Scaling
829  */
830 EAPI double elm_config_scale_get(void);
831
832 /**
833  * Set the global scaling factor
834  *
835  * This sets the globally configured scaling factor that is applied to all
836  * objects.
837  *
838  * @param scale The scaling factor to set
839  * @ingroup Scaling
840  */
841 EAPI void   elm_config_scale_set(double scale);
842
843 /**
844  * @defgroup Password_last_show Password show last
845  *
846  * Show last feature of password mode enables user to view
847  * the last input entered for few seconds before masking it.
848  * These functions allow to set this feature in password mode
849  * of entry widget and also allow to manipulate the duration
850  * for which the input has to be visible.
851  *
852  * @{
853  */
854
855 /**
856  * Get the "show last" setting of password mode.
857  *
858  * This gets the "show last" setting of password mode which might be
859  * enabled or disabled.
860  *
861  * @return @c EINA_TRUE, if the "show last" setting is enabled, 
862  * @c EINA_FALSE  if it's disabled.
863  *
864  * @ingroup Password_last_show
865  */
866 EAPI Eina_Bool elm_config_password_show_last_get(void);
867
868 /**
869  * Set show last setting in password mode.
870  *
871  * This enables or disables show last setting of password mode.
872  *
873  * @param password_show_last If EINA_TRUE enables "show last" in password mode.
874  * @see elm_config_password_show_last_timeout_set()
875  * @ingroup Password_last_show
876  */
877 EAPI void      elm_config_password_show_last_set(Eina_Bool password_show_last);
878
879 /**
880  * Gets the timeout value in "show last" password mode.
881  *
882  * This gets the time out value for which the last input entered in password
883  * mode will be visible.
884  *
885  * @return The timeout value of "show last" password mode.
886  * @ingroup Password_last_show
887  */
888 EAPI double    elm_config_password_show_last_timeout_get(void);
889
890 /**
891  * Set's the timeout value in "show last" password mode.
892  *
893  * This sets the time out value for which the last input entered in password
894  * mode will be visible.
895  *
896  * @param password_show_last_timeout The timeout value.
897  * @see elm_config_password_show_last_set()
898  * @ingroup Password_last_show
899  */
900 EAPI void      elm_config_password_show_last_timeout_set(double password_show_last_timeout);
901 >>>>>>> remotes/origin/upstream
902
903 /**
904  * @}
905  */
906
907 /**
908 <<<<<<< HEAD
909  * Get the duration for occuring long press event.
910  *
911  * @return Timeout for long press event
912  * @ingroup Longpress
913  */
914 EAPI double       elm_longpress_timeout_get(void);
915
916 /**
917  * Set the duration for occuring long press event.
918  *
919  * @param lonpress_timeout Timeout for long press event
920  * @ingroup Longpress
921  */
922 EAPI void         elm_longpress_timeout_set(double longpress_timeout);
923 =======
924  * @defgroup Engine Elementary Engine
925  *
926  * These are functions setting and querying which rendering engine
927  * Elementary will use for drawing its windows' pixels.
928  *
929  * The following are the available engines:
930  * @li "software_x11"
931  * @li "fb"
932  * @li "directfb"
933  * @li "software_16_x11"
934  * @li "software_8_x11"
935  * @li "xrender_x11"
936  * @li "opengl_x11"
937  * @li "software_gdi"
938  * @li "software_16_wince_gdi"
939  * @li "sdl"
940  * @li "software_16_sdl"
941  * @li "opengl_sdl"
942  * @li "buffer"
943  * @li "ews"
944  * @li "opengl_cocoa"
945  * @li "psl1ght"
946  *
947  * @{
948  */
949
950 /**
951  * @brief Get Elementary's rendering engine in use.
952  *
953  * @return The rendering engine's name
954  * @note there's no need to free the returned string, here.
955  *
956  * This gets the global rendering engine that is applied to all Elementary
957  * applications.
958  *
959  * @see elm_config_engine_set()
960  */
961 EAPI const char *elm_config_engine_get(void);
962
963 /**
964  * @brief Set Elementary's rendering engine for use.
965  *
966  * @param engine The rendering engine's name
967  *
968  * Note that it will take effect only to Elementary windows created after
969  * this is called.
970  *
971  * @see elm_win_add()
972  */
973 EAPI void        elm_config_engine_set(const char *engine);
974
975 /**
976  * @brief Get Elementary's preferred engine to use.
977  *
978  * @return The rendering engine's name
979  * @note there's no need to free the returned string, here.
980  *
981  * This gets the global rendering engine that is applied to all Elementary
982  * applications and is PREFERRED by the application. This can (and will)
983  * override the engine configured for all applications which.
984  *
985  * @see elm_config_preferred_engine_set()
986  */
987 EAPI const char *elm_config_preferred_engine_get(void);
988
989 /**
990  * @brief Set Elementary's preferred rendering engine for use.
991  *
992  * @param engine The rendering engine's name
993  *
994  * Note that it will take effect only to Elementary windows created after
995  * this is called. This overrides the engine set by configuration at
996  * application startup. Note that it is a hint and may not be honored.
997  *
998  * @see elm_win_add()
999  */
1000 EAPI void        elm_config_preferred_engine_set(const char *engine);
1001
1002 typedef struct _Elm_Text_Class
1003 {
1004    const char *name;
1005    const char *desc;
1006 } Elm_Text_Class;
1007
1008 typedef struct _Elm_Font_Overlay
1009 {
1010    const char    *text_class;
1011    const char    *font;
1012    Evas_Font_Size size;
1013 } Elm_Font_Overlay;
1014
1015 /**
1016  * Get Elementary's list of supported text classes.
1017  *
1018  * @return The text classes list, with @c Elm_Text_Class blobs as data.
1019  * @ingroup Fonts
1020  *
1021  * Release the list with elm_text_classes_list_free().
1022  */
1023 EAPI Eina_List *elm_config_text_classes_list_get(void);
1024
1025 /**
1026  * Free Elementary's list of supported text classes.
1027  *
1028  * @ingroup Fonts
1029  *
1030  * @see elm_config_text_classes_list_get().
1031  */
1032 EAPI void elm_config_text_classes_list_free(Eina_List *list);
1033
1034 /**
1035  * Get Elementary's list of font overlays, set with
1036  * elm_config_font_overlay_set().
1037  *
1038  * @return The font overlays list, with @c Elm_Font_Overlay blobs as
1039  * data.
1040  *
1041  * @ingroup Fonts
1042  *
1043  * For each text class, one can set a <b>font overlay</b> for it,
1044  * overriding the default font properties for that class coming from
1045  * the theme in use. There is no need to free this list.
1046  *
1047  * @see elm_config_font_overlay_set() and elm_config_font_overlay_unset().
1048  */
1049 EAPI const Eina_List *elm_config_font_overlay_list_get(void);
1050
1051 /**
1052  * Set a font overlay for a given Elementary text class.
1053  *
1054  * @param text_class Text class name
1055  * @param font Font name and style string
1056  * @param size Font size
1057  *
1058  * @ingroup Fonts
1059  *
1060  * @p font has to be in the format returned by
1061  * elm_font_fontconfig_name_get(). @see elm_config_font_overlay_list_get()
1062  * and elm_config_font_overlay_unset().
1063  */
1064 EAPI void             elm_config_font_overlay_set(const char *text_class, const char *font, Evas_Font_Size size);
1065
1066 /**
1067  * Unset a font overlay for a given Elementary text class.
1068  *
1069  * @param text_class Text class name
1070  *
1071  * @ingroup Fonts
1072  *
1073  * This will bring back text elements belonging to text class
1074  * @p text_class back to their default font settings.
1075  */
1076 EAPI void             elm_config_font_overlay_unset(const char *text_class);
1077
1078 /**
1079  * Apply the changes made with elm_config_font_overlay_set() and
1080  * elm_config_font_overlay_unset() on the current Elementary window.
1081  *
1082  * @ingroup Fonts
1083  *
1084  * This applies all font overlays set to all objects in the UI.
1085  */
1086 EAPI void             elm_config_font_overlay_apply(void);
1087
1088 /**
1089  * Get the configured "finger size"
1090  *
1091  * @return The finger size
1092  *
1093  * This gets the globally configured finger size, <b>in pixels</b>
1094  *
1095  * @ingroup Fingers
1096  */
1097 EAPI Evas_Coord elm_config_finger_size_get(void);
1098
1099 /**
1100  * Set the configured finger size
1101  *
1102  * This sets the globally configured finger size in pixels
1103  *
1104  * @param size The finger size
1105  * @ingroup Fingers
1106  */
1107 EAPI void       elm_config_finger_size_set(Evas_Coord size);
1108
1109
1110 /**
1111  * Get the configured cache flush interval time
1112  *
1113  * This gets the globally configured cache flush interval time, in
1114  * ticks
1115  *
1116  * @return The cache flush interval time
1117  * @ingroup Caches
1118  *
1119  * @see elm_cache_all_flush()
1120  */
1121 EAPI int       elm_config_cache_flush_interval_get(void);
1122
1123 /**
1124  * Set the configured cache flush interval time
1125  *
1126  * This sets the globally configured cache flush interval time, in ticks
1127  *
1128  * @param size The cache flush interval time
1129  * @ingroup Caches
1130  *
1131  * @see elm_cache_all_flush()
1132  */
1133 EAPI void      elm_config_cache_flush_interval_set(int size);
1134
1135 /**
1136  * Get the configured cache flush enabled state
1137  *
1138  * This gets the globally configured cache flush state - if it is enabled
1139  * or not. When cache flushing is enabled, elementary will regularly
1140  * (see elm_config_cache_flush_interval_get() ) flush caches and dump data out of
1141  * memory and allow usage to re-seed caches and data in memory where it
1142  * can do so. An idle application will thus minimize its memory usage as
1143  * data will be freed from memory and not be re-loaded as it is idle and
1144  * not rendering or doing anything graphically right now.
1145  *
1146  * @return The cache flush state
1147  * @ingroup Caches
1148  *
1149  * @see elm_cache_all_flush()
1150  */
1151 EAPI Eina_Bool elm_config_cache_flush_enabled_get(void);
1152
1153 /**
1154  * Set the configured cache flush enabled state
1155  *
1156  * This sets the globally configured cache flush enabled state.
1157  *
1158  * @param enabled The cache flush enabled state
1159  * @ingroup Caches
1160  *
1161  * @see elm_cache_all_flush()
1162  */
1163 EAPI void      elm_config_cache_flush_enabled_set(Eina_Bool enabled);
1164
1165 /**
1166  * Get the configured font cache size
1167  *
1168  * This gets the globally configured font cache size, in bytes.
1169  *
1170  * @return The font cache size
1171  * @ingroup Caches
1172  */
1173 EAPI int       elm_config_cache_font_cache_size_get(void);
1174
1175 /**
1176  * Set the configured font cache size
1177  *
1178  * This sets the globally configured font cache size, in bytes
1179  *
1180  * @param size The font cache size
1181  * @ingroup Caches
1182  */
1183 EAPI void      elm_config_cache_font_cache_size_set(int size);
1184
1185 /**
1186  * Get the configured image cache size
1187  *
1188  * This gets the globally configured image cache size, in bytes
1189  *
1190  * @return The image cache size
1191  * @ingroup Caches
1192  */
1193 EAPI int       elm_config_cache_image_cache_size_get(void);
1194
1195 /**
1196  * Set the configured image cache size
1197  *
1198  * This sets the globally configured image cache size, in bytes
1199  *
1200  * @param size The image cache size
1201  * @ingroup Caches
1202  */
1203 EAPI void       elm_config_cache_image_cache_size_set(int size);
1204
1205
1206 /**
1207  * Get the configured edje file cache size.
1208  *
1209  * This gets the globally configured edje file cache size, in number
1210  * of files.
1211  *
1212  * @return The edje file cache size
1213  * @ingroup Caches
1214  */
1215 EAPI int       elm_config_cache_edje_file_cache_size_get(void);
1216
1217 /**
1218  * Set the configured edje file cache size
1219  *
1220  * This sets the globally configured edje file cache size, in number
1221  * of files.
1222  *
1223  * @param size The edje file cache size
1224  * @ingroup Caches
1225  */
1226 EAPI void       elm_config_cache_edje_file_cache_size_set(int size);
1227
1228 /**
1229  * Get the configured edje collections (groups) cache size.
1230  *
1231  * This gets the globally configured edje collections cache size, in
1232  * number of collections.
1233  *
1234  * @return The edje collections cache size
1235  * @ingroup Caches
1236  */
1237 EAPI int       elm_config_cache_edje_collection_cache_size_get(void);
1238
1239 /**
1240  * Set the configured edje collections (groups) cache size
1241  *
1242  * This sets the globally configured edje collections cache size, in
1243  * number of collections.
1244  *
1245  * @param size The edje collections cache size
1246  * @ingroup Caches
1247  */
1248 EAPI void       elm_config_cache_edje_collection_cache_size_set(int size);
1249
1250 /**
1251  * Get the enable status of the focus highlight
1252  *
1253  * This gets whether the highlight on focused objects is enabled or not
1254  *
1255  * @see elm_config_focus_highlight_enabled_set()
1256  * @ingroup Focus
1257  */
1258 EAPI Eina_Bool            elm_config_focus_highlight_enabled_get(void);
1259
1260 /**
1261  * Set the enable status of the focus highlight
1262  *
1263  * @param enable Enable highlight if EINA_TRUE, disable otherwise
1264  * 
1265  * Set whether to show or not the highlight on focused objects
1266  *
1267  * Note that it will take effect only to Elementary windows created after
1268  * this is called.
1269  *
1270  * @see elm_win_add()
1271  *
1272  * @ingroup Focus
1273  */
1274 EAPI void                 elm_config_focus_highlight_enabled_set(Eina_Bool enable);
1275
1276 /**
1277  * Get the enable status of the highlight animation
1278  *
1279  * @return The focus highlight mode set
1280  * 
1281  * Get whether the focus highlight, if enabled, will animate its switch from
1282  * one object to the next
1283  * 
1284  * @ingroup Focus
1285  */
1286 EAPI Eina_Bool            elm_config_focus_highlight_animate_get(void);
1287
1288 /**
1289  * Set the enable status of the highlight animation
1290  *
1291  * @param animate Enable animation if EINA_TRUE, disable otherwise
1292  * 
1293  * Set whether the focus highlight, if enabled, will animate its switch from
1294  * one object to the next
1295  * 
1296  * Note that it will take effect only to Elementary windows created after
1297  * this is called.
1298  *
1299  * @see elm_win_add()
1300  *
1301  * @ingroup Focus
1302  */
1303 EAPI void                 elm_config_focus_highlight_animate_set(Eina_Bool animate);
1304
1305 /**
1306  * Get the system mirrored mode. This determines the default mirrored mode
1307  * of widgets.
1308  *
1309  * @return EINA_TRUE if mirrored is set, EINA_FALSE otherwise
1310  */
1311 EAPI Eina_Bool elm_config_mirrored_get(void);
1312
1313 /**
1314  * Set the system mirrored mode. This determines the default mirrored mode
1315  * of widgets.
1316  *
1317  * @param mirrored EINA_TRUE to set mirrored mode, EINA_FALSE to unset it.
1318  */
1319 EAPI void      elm_config_mirrored_set(Eina_Bool mirrored);
1320
1321 /**
1322  * @}
1323  */
1324
1325 >>>>>>> remotes/origin/upstream