2 # include "elementary_config.h"
6 #include <dlfcn.h> /* dlopen,dlclose,etc */
9 #ifdef HAVE_CRT_EXTERNS_H
10 # include <crt_externs.h>
17 #include <Elementary.h>
20 #define SEMI_BROKEN_QUICKLAUNCH 1
22 static Elm_Version _version = { VMAJ, VMIN, VMIC, VREV };
23 EAPI Elm_Version *elm_version = &_version;
26 _elm_dangerous_call_check(const char *call)
31 snprintf(buf, sizeof(buf), "%i.%i.%i.%i", VMAJ, VMIN, VMIC, VREV);
32 eval = getenv("ELM_NO_FINGER_WAGGLING");
33 if ((eval) && (!strcmp(eval, buf)))
35 printf("ELEMENTARY FINGER WAGGLE!!!!!!!!!!\n"
38 "PLEASE see the API documentation for this function. This call\n"
39 "should almost never be used. Only in very special cases.\n"
41 "To remove this warning please set the environment variable:\n"
42 " ELM_NO_FINGER_WAGGLING\n"
43 "To the value of the Elementary version + revision number. e.g.:\n"
51 static Eina_Bool _elm_signal_exit(void *data,
55 static Eina_Prefix *pfx = NULL;
56 char *_elm_appname = NULL;
57 const char *_elm_data_dir = NULL;
58 const char *_elm_lib_dir = NULL;
59 int _elm_log_dom = -1;
61 EAPI int ELM_EVENT_POLICY_CHANGED = 0;
63 static int _elm_init_count = 0;
64 static int _elm_sub_init_count = 0;
65 static int _elm_ql_init_count = 0;
66 static int _elm_policies[ELM_POLICY_LAST];
67 static Ecore_Event_Handler *_elm_exit_handler = NULL;
68 static Eina_Bool quicklaunch_on = 0;
71 _elm_signal_exit(void *data __UNUSED__,
72 int ev_type __UNUSED__,
76 return ECORE_CALLBACK_PASS_ON;
82 edje_scale_set(_elm_config->scale);
83 _elm_win_rescale(NULL, EINA_FALSE);
84 _elm_ews_wm_rescale(NULL, EINA_FALSE);
87 static void *app_mainfunc = NULL;
88 static const char *app_domain = NULL;
89 static const char *app_checkfile = NULL;
91 static const char *app_compile_bin_dir = NULL;
92 static const char *app_compile_lib_dir = NULL;
93 static const char *app_compile_data_dir = NULL;
94 static const char *app_compile_locale_dir = NULL;
95 static const char *app_prefix_dir = NULL;
96 static const char *app_bin_dir = NULL;
97 static const char *app_lib_dir = NULL;
98 static const char *app_data_dir = NULL;
99 static const char *app_locale_dir = NULL;
101 static Eina_Prefix *app_pfx = NULL;
108 const char *dirs[4] = { NULL, NULL, NULL, NULL };
109 char *caps = NULL, *p1, *p2;
112 if (!app_domain) return;
114 ecore_app_args_get(&argc, &argv);
115 if (argc < 1) return;
117 dirs[0] = app_compile_bin_dir;
118 dirs[1] = app_compile_lib_dir;
119 dirs[2] = app_compile_data_dir;
120 dirs[3] = app_compile_locale_dir;
122 if (!dirs[1]) dirs[1] = dirs[0];
123 if (!dirs[0]) dirs[0] = dirs[1];
124 if (!dirs[3]) dirs[3] = dirs[2];
125 if (!dirs[2]) dirs[2] = dirs[3];
129 caps = alloca(strlen(app_domain) + 1);
130 for (p1 = (char *)app_domain, p2 = caps; *p1; p1++, p2++)
134 app_pfx = eina_prefix_new(argv[0], app_mainfunc, caps, app_domain,
135 app_checkfile, dirs[0], dirs[1], dirs[2], dirs[3]);
139 _prefix_shutdown(void)
141 if (app_pfx) eina_prefix_free(app_pfx);
142 if (app_domain) eina_stringshare_del(app_domain);
143 if (app_checkfile) eina_stringshare_del(app_checkfile);
144 if (app_compile_bin_dir) eina_stringshare_del(app_compile_bin_dir);
145 if (app_compile_lib_dir) eina_stringshare_del(app_compile_lib_dir);
146 if (app_compile_data_dir) eina_stringshare_del(app_compile_data_dir);
147 if (app_compile_locale_dir) eina_stringshare_del(app_compile_locale_dir);
148 if (app_prefix_dir) eina_stringshare_del(app_prefix_dir);
149 if (app_bin_dir) eina_stringshare_del(app_bin_dir);
150 if (app_lib_dir) eina_stringshare_del(app_lib_dir);
151 if (app_data_dir) eina_stringshare_del(app_data_dir);
152 if (app_locale_dir) eina_stringshare_del(app_locale_dir);
155 app_checkfile = NULL;
156 app_compile_bin_dir = NULL;
157 app_compile_lib_dir = NULL;
158 app_compile_data_dir = NULL;
159 app_compile_locale_dir = NULL;
160 app_prefix_dir = NULL;
164 app_locale_dir = NULL;
173 if (_elm_init_count > 1) return _elm_init_count;
174 elm_quicklaunch_init(argc, argv);
175 elm_quicklaunch_sub_init(argc, argv);
177 return _elm_init_count;
184 if (_elm_init_count > 0) return _elm_init_count;
186 while (_elm_win_deferred_free) ecore_main_loop_iterate();
188 // _prefix_shutdown();
189 elm_quicklaunch_sub_shutdown();
190 elm_quicklaunch_shutdown();
191 return _elm_init_count;
195 elm_app_info_set(void *mainfunc, const char *dom, const char *checkfile)
197 app_mainfunc = mainfunc;
198 eina_stringshare_replace(&app_domain, dom);
199 eina_stringshare_replace(&app_checkfile, checkfile);
203 elm_app_compile_bin_dir_set(const char *dir)
205 eina_stringshare_replace(&app_compile_bin_dir, dir);
209 elm_app_compile_lib_dir_set(const char *dir)
211 eina_stringshare_replace(&app_compile_lib_dir, dir);
215 elm_app_compile_data_dir_set(const char *dir)
217 eina_stringshare_replace(&app_compile_data_dir, dir);
221 elm_app_compile_locale_set(const char *dir)
223 eina_stringshare_replace(&app_compile_locale_dir, dir);
227 elm_app_prefix_dir_get(void)
229 if (app_prefix_dir) return app_prefix_dir;
231 if (!app_pfx) return "";
232 app_prefix_dir = eina_prefix_get(app_pfx);
233 return app_prefix_dir;
237 elm_app_bin_dir_get(void)
239 if (app_bin_dir) return app_bin_dir;
241 if (!app_pfx) return "";
242 app_bin_dir = eina_prefix_bin_get(app_pfx);
247 elm_app_lib_dir_get(void)
249 if (app_lib_dir) return app_lib_dir;
251 if (!app_pfx) return "";
252 app_lib_dir = eina_prefix_lib_get(app_pfx);
257 elm_app_data_dir_get(void)
259 if (app_data_dir) return app_data_dir;
261 if (!app_pfx) return "";
262 app_data_dir = eina_prefix_data_get(app_pfx);
267 elm_app_locale_dir_get(void)
269 if (app_locale_dir) return app_locale_dir;
271 if (!app_pfx) return "";
272 app_locale_dir = eina_prefix_locale_get(app_pfx);
273 return app_locale_dir;
277 static int _elm_need_e_dbus = 0;
280 elm_need_e_dbus(void)
283 if (_elm_need_e_dbus++) return EINA_TRUE;
292 _elm_unneed_e_dbus(void)
295 if (--_elm_need_e_dbus) return;
297 _elm_need_e_dbus = 0;
303 static int _elm_need_efreet = 0;
306 elm_need_efreet(void)
309 if (_elm_need_efreet++) return EINA_TRUE;
317 list = efreet_icon_extra_list_get();
320 e_user_dir_concat_static(buf, "icons");
321 *list = eina_list_prepend(*list, (void *)eina_stringshare_add(buf));
322 e_prefix_data_concat_static(buf, "data/icons");
323 *list = eina_list_prepend(*list, (void *)eina_stringshare_add(buf));
334 _elm_unneed_efreet(void)
337 if (--_elm_need_efreet) return;
339 _elm_need_efreet = 0;
340 efreet_trash_shutdown();
341 efreet_mime_shutdown();
347 elm_quicklaunch_mode_set(Eina_Bool ql_on)
349 quicklaunch_on = ql_on;
353 elm_quicklaunch_mode_get(void)
355 return quicklaunch_on;
359 elm_quicklaunch_init(int argc,
362 _elm_ql_init_count++;
363 if (_elm_ql_init_count > 1) return _elm_ql_init_count;
365 _elm_log_dom = eina_log_domain_register("elementary", EINA_COLOR_LIGHTBLUE);
368 EINA_LOG_ERR("could not register elementary log domain.");
369 _elm_log_dom = EINA_LOG_DOMAIN_GLOBAL;
375 #ifdef HAVE_ELEMENTARY_EMAP
378 ecore_app_args_set(argc, (const char **)argv);
380 memset(_elm_policies, 0, sizeof(_elm_policies));
381 if (!ELM_EVENT_POLICY_CHANGED)
382 ELM_EVENT_POLICY_CHANGED = ecore_event_type_new();
386 _elm_exit_handler = ecore_event_handler_add(ECORE_EVENT_SIGNAL_EXIT, _elm_signal_exit, NULL);
388 if (argv) _elm_appname = strdup(ecore_file_file_get(argv[0]));
390 pfx = eina_prefix_new(argv ? argv[0] : NULL, elm_quicklaunch_init,
391 "ELM", "elementary", "config/profile.cfg",
392 PACKAGE_LIB_DIR, /* don't have a bin dir currently */
398 _elm_data_dir = eina_stringshare_add(eina_prefix_data_get(pfx));
399 _elm_lib_dir = eina_stringshare_add(eina_prefix_lib_get(pfx));
401 if (!_elm_data_dir) _elm_data_dir = eina_stringshare_add("/");
402 if (!_elm_lib_dir) _elm_lib_dir = eina_stringshare_add("/");
405 return _elm_ql_init_count;
409 elm_quicklaunch_sub_init(int argc,
412 _elm_sub_init_count++;
413 if (_elm_sub_init_count > 1) return _elm_sub_init_count;
416 #ifdef SEMI_BROKEN_QUICKLAUNCH
417 return _elm_sub_init_count;
422 ecore_app_args_set(argc, (const char **)argv);
426 _elm_config_sub_init();
427 ecore_evas_init(); // FIXME: check errors
428 #ifdef HAVE_ELEMENTARY_ECORE_IMF
431 #ifdef HAVE_ELEMENTARY_ECORE_CON
433 ecore_con_url_init();
437 return _elm_sub_init_count;
441 elm_quicklaunch_sub_shutdown(void)
443 _elm_sub_init_count--;
444 if (_elm_sub_init_count > 0) return _elm_sub_init_count;
447 #ifdef SEMI_BROKEN_QUICKLAUNCH
448 return _elm_sub_init_count;
454 _elm_module_shutdown();
455 _elm_ews_wm_shutdown();
456 #ifdef HAVE_ELEMENTARY_ECORE_CON
457 ecore_con_url_shutdown();
458 ecore_con_shutdown();
460 #ifdef HAVE_ELEMENTARY_ECORE_IMF
461 ecore_imf_shutdown();
463 ecore_evas_shutdown();
464 _elm_config_sub_shutdown();
465 #define ENGINE_COMPARE(name) (!strcmp(_elm_config->engine, name))
466 if (ENGINE_COMPARE(ELM_SOFTWARE_X11) ||
467 ENGINE_COMPARE(ELM_SOFTWARE_16_X11) ||
468 ENGINE_COMPARE(ELM_XRENDER_X11) ||
469 ENGINE_COMPARE(ELM_OPENGL_X11) ||
470 ENGINE_COMPARE(ELM_SOFTWARE_SDL) ||
471 ENGINE_COMPARE(ELM_SOFTWARE_16_SDL) ||
472 ENGINE_COMPARE(ELM_OPENGL_SDL) ||
473 ENGINE_COMPARE(ELM_OPENGL_COCOA) ||
474 ENGINE_COMPARE(ELM_SOFTWARE_WIN32) ||
475 ENGINE_COMPARE(ELM_SOFTWARE_16_WINCE) ||
476 ENGINE_COMPARE(ELM_EWS))
477 #undef ENGINE_COMPARE
478 evas_cserve_disconnect();
482 return _elm_sub_init_count;
486 elm_quicklaunch_shutdown(void)
488 _elm_ql_init_count--;
489 if (_elm_ql_init_count > 0) return _elm_ql_init_count;
490 if (pfx) eina_prefix_free(pfx);
492 eina_stringshare_del(_elm_data_dir);
493 _elm_data_dir = NULL;
494 eina_stringshare_del(_elm_lib_dir);
500 _elm_config_shutdown();
502 ecore_event_handler_del(_elm_exit_handler);
503 _elm_exit_handler = NULL;
505 _elm_theme_shutdown();
506 _elm_unneed_efreet();
507 _elm_unneed_e_dbus();
508 _elm_unneed_ethumb();
510 ecore_file_shutdown();
512 #ifdef HAVE_ELEMENTARY_EMAP
519 if ((_elm_log_dom > -1) && (_elm_log_dom != EINA_LOG_DOMAIN_GLOBAL))
521 eina_log_domain_unregister(_elm_log_dom);
525 _elm_widget_type_clear();
528 return _elm_ql_init_count;
532 elm_quicklaunch_seed(void)
534 #ifndef SEMI_BROKEN_QUICKLAUNCH
537 Evas_Object *win, *bg, *bt;
539 win = elm_win_add(NULL, "seed", ELM_WIN_BASIC);
540 bg = elm_bg_add(win);
541 elm_win_resize_object_add(win, bg);
542 evas_object_show(bg);
543 bt = elm_button_add(win);
544 elm_button_label_set(bt, " abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789~-_=+\\|]}[{;:'\",<.>/?");
545 elm_win_resize_object_add(win, bt);
546 ecore_main_loop_iterate();
547 evas_object_del(win);
548 ecore_main_loop_iterate();
549 #define ENGINE_COMPARE(name) (!strcmp(_elm_config->engine, name))
550 if (ENGINE_COMPARE(ELM_SOFTWARE_X11) ||
551 ENGINE_COMPARE(ELM_SOFTWARE_16_X11) ||
552 ENGINE_COMPARE(ELM_XRENDER_X11) ||
553 ENGINE_COMPARE(ELM_OPENGL_X11))
554 #undef ENGINE_COMPARE
556 # ifdef HAVE_ELEMENTARY_X
560 ecore_main_loop_iterate();
566 static void *qr_handle = NULL;
568 static int (*qr_main)(int argc,
572 elm_quicklaunch_prepare(int argc __UNUSED__,
576 char *exe = elm_quicklaunch_exe_path_get(argv[0]);
579 ERR("requested quicklaunch binary '%s' does not exist\n", argv[0]);
587 exe2 = malloc(strlen(exe) + 1 + 10);
589 p = strrchr(exe2, '/');
592 exename = alloca(strlen(p) + 1);
595 strcat(p, "../lib/");
598 if (!access(exe2, R_OK | X_OK))
606 qr_handle = dlopen(exe, RTLD_NOW | RTLD_GLOBAL);
609 fprintf(stderr, "dlerr: %s\n", dlerror());
610 WRN("dlopen('%s') failed: %s", exe, dlerror());
614 INF("dlopen('%s') = %p", exe, qr_handle);
615 qr_main = dlsym(qr_handle, "elm_main");
616 INF("dlsym(%p, 'elm_main') = %p", qr_handle, qr_main);
619 WRN("not quicklauncher capable: no elm_main in '%s'", exe);
638 extern char **environ;
643 for (i = 0, size = 0; environ[i]; i++)
644 size += strlen(environ[i]) + 1;
646 p = malloc((i + 1) * sizeof(char *));
651 for (i = 0; oldenv[i]; i++)
652 environ[i] = strdup(oldenv[i]);
659 elm_quicklaunch_fork(int argc,
662 void (postfork_func) (void *data),
672 // need to accept current environment from elementary_run
679 if (child > 0) return EINA_TRUE;
682 perror("could not fork");
687 perror("could not chdir");
688 args = alloca((argc + 1) * sizeof(char *));
689 for (i = 0; i < argc; i++) args[i] = argv[i];
691 WRN("%s not quicklaunch capable, fallback...", argv[0]);
692 execvp(argv[0], args);
693 ERR("failed to execute '%s': %s", argv[0], strerror(errno));
697 if (child > 0) return EINA_TRUE;
700 perror("could not fork");
703 if (postfork_func) postfork_func(postfork_data);
707 #ifdef SEMI_BROKEN_QUICKLAUNCH
708 ecore_app_args_set(argc, (const char **)argv);
711 _elm_config_sub_init();
712 #define ENGINE_COMPARE(name) (!strcmp(_elm_config->engine, name))
713 if (ENGINE_COMPARE(ELM_SOFTWARE_X11) ||
714 ENGINE_COMPARE(ELM_SOFTWARE_16_X11) ||
715 ENGINE_COMPARE(ELM_XRENDER_X11) ||
716 ENGINE_COMPARE(ELM_OPENGL_X11))
717 #undef ENGINE_COMPARE
719 # ifdef HAVE_ELEMENTARY_X
723 ecore_evas_init(); // FIXME: check errors
731 perror("could not chdir");
732 // FIXME: this is very linux specific. it changes argv[0] of the process
733 // so ps etc. report what you'd expect. for other unixes and os's this
740 ecore_app_args_get(&real_argc, &real_argv);
741 lastarg = real_argv[real_argc - 1] + strlen(real_argv[real_argc - 1]);
742 for (p = real_argv[0]; p < lastarg; p++) *p = 0;
743 strcpy(real_argv[0], argv[0]);
745 ecore_app_args_set(argc, (const char **)argv);
746 ret = qr_main(argc, argv);
760 elm_quicklaunch_cleanup(void)
773 elm_quicklaunch_fallback(int argc,
777 elm_quicklaunch_init(argc, argv);
778 elm_quicklaunch_sub_init(argc, argv);
779 elm_quicklaunch_prepare(argc, argv);
780 ret = qr_main(argc, argv);
786 elm_quicklaunch_exe_path_get(const char *exe)
788 static char *path = NULL;
789 static Eina_List *pathlist = NULL;
793 if (exe[0] == '/') return strdup(exe);
794 if ((exe[0] == '.') && (exe[1] == '/')) return strdup(exe);
795 if ((exe[0] == '.') && (exe[1] == '.') && (exe[2] == '/')) return strdup(exe);
800 path = getenv("PATH");
801 buf2 = alloca(strlen(path) + 1);
806 if ((*p == ':') || (!*p))
811 strncpy(buf2, pp, len);
813 pathlist = eina_list_append(pathlist, eina_stringshare_add(buf2));
825 EINA_LIST_FOREACH(pathlist, l, pathitr)
827 snprintf(buf, sizeof(buf), "%s/%s", pathitr, exe);
828 if (!access(buf, R_OK | X_OK)) return strdup(buf);
836 ecore_main_loop_begin();
842 ecore_main_loop_quit();
846 elm_policy_set(unsigned int policy,
849 Elm_Event_Policy_Changed *ev;
851 if (policy >= ELM_POLICY_LAST)
854 if (value == _elm_policies[policy])
857 /* TODO: validade policy? */
859 ev = malloc(sizeof(*ev));
861 ev->new_value = value;
862 ev->old_value = _elm_policies[policy];
864 _elm_policies[policy] = value;
866 ecore_event_add(ELM_EVENT_POLICY_CHANGED, ev, NULL, NULL);
872 elm_policy_get(unsigned int policy)
874 if (policy >= ELM_POLICY_LAST)
876 return _elm_policies[policy];
880 elm_language_set(const char *lang)
882 setlocale(LC_ALL, lang);
883 _elm_win_translate();
887 elm_object_mirrored_get(const Evas_Object *obj)
889 EINA_SAFETY_ON_NULL_RETURN_VAL(obj, EINA_FALSE);
890 return elm_widget_mirrored_get(obj);
894 elm_object_mirrored_set(Evas_Object *obj, Eina_Bool mirrored)
896 EINA_SAFETY_ON_NULL_RETURN(obj);
897 elm_widget_mirrored_set(obj, mirrored);
901 elm_object_mirrored_automatic_get(const Evas_Object *obj)
903 EINA_SAFETY_ON_NULL_RETURN_VAL(obj, EINA_FALSE);
904 return elm_widget_mirrored_automatic_get(obj);
908 elm_object_mirrored_automatic_set(Evas_Object *obj, Eina_Bool automatic)
910 EINA_SAFETY_ON_NULL_RETURN(obj);
911 elm_widget_mirrored_automatic_set(obj, automatic);
919 elm_object_scale_set(Evas_Object *obj,
922 EINA_SAFETY_ON_NULL_RETURN(obj);
923 elm_widget_scale_set(obj, scale);
927 elm_object_scale_get(const Evas_Object *obj)
929 EINA_SAFETY_ON_NULL_RETURN_VAL(obj, 0.0);
930 return elm_widget_scale_get(obj);
934 elm_object_text_part_set(Evas_Object *obj, const char *part, const char *label)
936 EINA_SAFETY_ON_NULL_RETURN(obj);
937 elm_widget_text_part_set(obj, part, label);
941 elm_object_text_part_get(const Evas_Object *obj, const char *part)
943 EINA_SAFETY_ON_NULL_RETURN_VAL(obj, NULL);
944 return elm_widget_text_part_get(obj, part);
948 elm_object_part_text_set(Evas_Object *obj, const char *part, const char *label)
950 EINA_SAFETY_ON_NULL_RETURN(obj);
951 elm_widget_text_part_set(obj, part, label);
955 elm_object_part_text_get(const Evas_Object *obj, const char *part)
957 EINA_SAFETY_ON_NULL_RETURN_VAL(obj, NULL);
958 return elm_widget_text_part_get(obj, part);
962 elm_object_domain_translatable_text_part_set(Evas_Object *obj, const char *part, const char *domain, const char *text)
964 EINA_SAFETY_ON_NULL_RETURN(obj);
965 elm_widget_domain_translatable_text_part_set(obj, part, domain, text);
969 elm_object_translatable_text_part_get(const Evas_Object *obj, const char *part)
971 EINA_SAFETY_ON_NULL_RETURN_VAL(obj, NULL);
972 return elm_widget_translatable_text_part_get(obj, part);
976 elm_object_part_content_set(Evas_Object *obj, const char *part, Evas_Object *content)
978 EINA_SAFETY_ON_NULL_RETURN(obj);
979 elm_widget_content_part_set(obj, part, content);
983 elm_object_content_part_set(Evas_Object *obj, const char *part, Evas_Object *content)
985 EINA_SAFETY_ON_NULL_RETURN(obj);
986 elm_widget_content_part_set(obj, part, content);
991 elm_object_part_content_get(const Evas_Object *obj, const char *part)
993 EINA_SAFETY_ON_NULL_RETURN_VAL(obj, NULL);
994 return elm_widget_content_part_get(obj, part);
998 elm_object_content_part_get(const Evas_Object *obj, const char *part)
1000 EINA_SAFETY_ON_NULL_RETURN_VAL(obj, NULL);
1001 return elm_widget_content_part_get(obj, part);
1005 elm_object_part_content_unset(Evas_Object *obj, const char *part)
1007 EINA_SAFETY_ON_NULL_RETURN_VAL(obj, NULL);
1008 return elm_widget_content_part_unset(obj, part);
1013 elm_object_content_part_unset(Evas_Object *obj, const char *part)
1015 EINA_SAFETY_ON_NULL_RETURN_VAL(obj, NULL);
1016 return elm_widget_content_part_unset(obj, part);
1022 return _elm_config->scale;
1026 elm_scale_set(double scale)
1028 if (_elm_config->scale == scale) return;
1029 _elm_config->scale = scale;
1034 elm_password_show_last_get(void)
1036 return _elm_config->password_show_last;
1040 elm_password_show_last_set(Eina_Bool password_show_last)
1042 if (_elm_config->password_show_last == password_show_last) return;
1043 _elm_config->password_show_last = password_show_last;
1044 edje_password_show_last_set(_elm_config->password_show_last);
1048 elm_password_show_last_timeout_get(void)
1050 return _elm_config->password_show_last_timeout;
1054 elm_password_show_last_timeout_set(double password_show_last_timeout)
1056 if (_elm_config->password_show_last_timeout == password_show_last_timeout) return;
1057 _elm_config->password_show_last_timeout = password_show_last_timeout;
1058 edje_password_show_last_timeout_set(_elm_config->password_show_last_timeout);
1062 elm_object_style_set(Evas_Object *obj,
1065 EINA_SAFETY_ON_NULL_RETURN(obj);
1066 elm_widget_style_set(obj, style);
1070 elm_object_style_get(const Evas_Object *obj)
1072 EINA_SAFETY_ON_NULL_RETURN_VAL(obj, NULL);
1073 return elm_widget_style_get(obj);
1077 elm_object_disabled_set(Evas_Object *obj,
1080 EINA_SAFETY_ON_NULL_RETURN(obj);
1081 elm_widget_disabled_set(obj, disabled);
1085 elm_object_disabled_get(const Evas_Object *obj)
1087 EINA_SAFETY_ON_NULL_RETURN_VAL(obj, EINA_FALSE);
1088 return elm_widget_disabled_get(obj);
1092 elm_config_save(void)
1094 return _elm_config_save();
1098 elm_config_reload(void)
1100 _elm_config_reload();
1104 elm_profile_current_get(void)
1106 return _elm_config_current_profile_get();
1110 elm_profile_dir_get(const char *profile,
1113 return _elm_config_profile_dir_get(profile, is_user);
1117 elm_profile_dir_free(const char *p_dir)
1119 free((void *)p_dir);
1123 elm_profile_list_get(void)
1125 return _elm_config_profiles_list();
1129 elm_profile_list_free(Eina_List *l)
1133 EINA_LIST_FREE(l, dir)
1134 eina_stringshare_del(dir);
1138 elm_profile_set(const char *profile)
1140 EINA_SAFETY_ON_NULL_RETURN(profile);
1141 _elm_config_profile_set(profile);
1145 elm_engine_get(void)
1147 return _elm_config->engine;
1151 elm_engine_set(const char *engine)
1153 EINA_SAFETY_ON_NULL_RETURN(engine);
1155 _elm_config_engine_set(engine);
1159 elm_text_classes_list_get(void)
1161 return _elm_config_text_classes_get();
1165 elm_text_classes_list_free(Eina_List *list)
1167 _elm_config_text_classes_free(list);
1170 EAPI const Eina_List *
1171 elm_font_overlay_list_get(void)
1173 return _elm_config_font_overlays_list();
1177 elm_font_overlay_set(const char *text_class,
1179 Evas_Font_Size size)
1181 EINA_SAFETY_ON_NULL_RETURN(text_class);
1182 _elm_config_font_overlay_set(text_class, font, size);
1186 elm_font_overlay_unset(const char *text_class)
1188 EINA_SAFETY_ON_NULL_RETURN(text_class);
1189 _elm_config_font_overlay_remove(text_class);
1193 elm_font_overlay_apply(void)
1195 _elm_config_font_overlay_apply();
1198 EAPI Elm_Font_Properties *
1199 elm_font_properties_get(const char *font)
1201 EINA_SAFETY_ON_NULL_RETURN_VAL(font, NULL);
1202 return _elm_font_properties_get(NULL, font);
1206 elm_font_properties_free(Elm_Font_Properties *efp)
1210 EINA_SAFETY_ON_NULL_RETURN(efp);
1211 EINA_LIST_FREE(efp->styles, str)
1212 if (str) eina_stringshare_del(str);
1213 if (efp->name) eina_stringshare_del(efp->name);
1218 elm_font_fontconfig_name_get(const char *name,
1223 EINA_SAFETY_ON_NULL_RETURN_VAL(name, NULL);
1224 if (!style || style[0] == 0) return (char *) eina_stringshare_add(name);
1225 snprintf(buf, 256, "%s" ELM_FONT_TOKEN_STYLE "%s", name, style);
1226 return (char *) eina_stringshare_add(buf);
1230 elm_font_fontconfig_name_free(char *name)
1232 eina_stringshare_del(name);
1236 elm_font_available_hash_add(Eina_List *list)
1238 Eina_Hash *font_hash;
1244 /* populate with default font families */
1245 //FIXME: Need to check whether fonts are being added multiple times.
1246 font_hash = _elm_font_available_hash_add(font_hash, "Sans:style=Regular");
1247 font_hash = _elm_font_available_hash_add(font_hash, "Sans:style=Bold");
1248 font_hash = _elm_font_available_hash_add(font_hash, "Sans:style=Oblique");
1249 font_hash = _elm_font_available_hash_add(font_hash,
1250 "Sans:style=Bold Oblique");
1252 font_hash = _elm_font_available_hash_add(font_hash, "Serif:style=Regular");
1253 font_hash = _elm_font_available_hash_add(font_hash, "Serif:style=Bold");
1254 font_hash = _elm_font_available_hash_add(font_hash, "Serif:style=Oblique");
1255 font_hash = _elm_font_available_hash_add(font_hash,
1256 "Serif:style=Bold Oblique");
1258 font_hash = _elm_font_available_hash_add(font_hash,
1259 "Monospace:style=Regular");
1260 font_hash = _elm_font_available_hash_add(font_hash,
1261 "Monospace:style=Bold");
1262 font_hash = _elm_font_available_hash_add(font_hash,
1263 "Monospace:style=Oblique");
1264 font_hash = _elm_font_available_hash_add(font_hash,
1265 "Monospace:style=Bold Oblique");
1267 EINA_LIST_FOREACH(list, l, key)
1268 if (key) _elm_font_available_hash_add(font_hash, key);
1274 elm_font_available_hash_del(Eina_Hash *hash)
1276 _elm_font_available_hash_del(hash);
1280 elm_finger_size_get(void)
1282 return _elm_config->finger_size;
1286 elm_finger_size_set(Evas_Coord size)
1288 if (_elm_config->finger_size == size) return;
1289 _elm_config->finger_size = size;
1294 elm_coords_finger_size_adjust(int times_w,
1299 if ((w) && (*w < (_elm_config->finger_size * times_w)))
1300 *w = _elm_config->finger_size * times_w;
1301 if ((h) && (*h < (_elm_config->finger_size * times_h)))
1302 *h = _elm_config->finger_size * times_h;
1306 elm_cache_all_flush(void)
1311 edje_file_cache_flush();
1312 edje_collection_cache_flush();
1314 EINA_LIST_FOREACH(_elm_win_list, l, obj)
1316 Evas *e = evas_object_evas_get(obj);
1317 evas_image_cache_flush(e);
1318 evas_font_cache_flush(e);
1319 evas_render_dump(e);
1323 EINA_DEPRECATED EAPI void
1326 elm_cache_all_flush();
1330 elm_cache_flush_interval_get(void)
1332 return _elm_config->cache_flush_poll_interval;
1336 elm_cache_flush_interval_set(int size)
1338 if (_elm_config->cache_flush_poll_interval == size) return;
1339 _elm_config->cache_flush_poll_interval = size;
1345 elm_cache_flush_enabled_get(void)
1347 return _elm_config->cache_flush_enable;
1351 elm_cache_flush_enabled_set(Eina_Bool enabled)
1353 enabled = !!enabled;
1354 if (_elm_config->cache_flush_enable == enabled) return;
1355 _elm_config->cache_flush_enable = enabled;
1361 elm_font_cache_get(void)
1363 return _elm_config->font_cache;
1367 elm_font_cache_set(int size)
1369 if (_elm_config->font_cache == size) return;
1370 _elm_config->font_cache = size;
1376 elm_image_cache_get(void)
1378 return _elm_config->image_cache;
1382 elm_image_cache_set(int size)
1384 if (_elm_config->image_cache == size) return;
1385 _elm_config->image_cache = size;
1391 elm_edje_file_cache_get(void)
1393 return _elm_config->edje_cache;
1397 elm_edje_file_cache_set(int size)
1399 if (_elm_config->edje_cache == size) return;
1400 _elm_config->edje_cache = size;
1406 elm_edje_collection_cache_get(void)
1408 return _elm_config->edje_collection_cache;
1412 elm_edje_collection_cache_set(int size)
1414 if (_elm_config->edje_collection_cache == size) return;
1415 _elm_config->edje_collection_cache = size;
1421 elm_object_focus_get(const Evas_Object *obj)
1423 EINA_SAFETY_ON_NULL_RETURN_VAL(obj, EINA_FALSE);
1424 return elm_widget_focus_get(obj);
1428 elm_object_focus_set(Evas_Object *obj,
1431 EINA_SAFETY_ON_NULL_RETURN(obj);
1433 if (focus == elm_widget_focus_get(obj)) return;
1436 elm_widget_focus_cycle(obj, ELM_FOCUS_NEXT);
1438 elm_widget_focused_object_clear(obj);
1442 elm_object_focus(Evas_Object *obj)
1444 EINA_SAFETY_ON_NULL_RETURN(obj);
1445 elm_object_focus_set(obj, EINA_TRUE);
1449 elm_object_unfocus(Evas_Object *obj)
1451 EINA_SAFETY_ON_NULL_RETURN(obj);
1452 elm_object_focus_set(obj, EINA_FALSE);
1456 elm_object_focus_allow_set(Evas_Object *obj,
1459 EINA_SAFETY_ON_NULL_RETURN(obj);
1460 elm_widget_can_focus_set(obj, enable);
1461 /*FIXME: According to the elm_object_focus_allow_get(), child_can_focus field
1462 of the parent should be updated. Otherwise, the checking of it's child focus allow states should not be in elm_object_focus_allow_get() */
1466 elm_object_focus_allow_get(const Evas_Object *obj)
1468 EINA_SAFETY_ON_NULL_RETURN_VAL(obj, EINA_FALSE);
1469 return (elm_widget_can_focus_get(obj)) || (elm_widget_child_can_focus_get(obj));
1473 elm_object_focus_custom_chain_set(Evas_Object *obj,
1476 EINA_SAFETY_ON_NULL_RETURN(obj);
1477 elm_widget_focus_custom_chain_set(obj, objs);
1481 elm_object_focus_custom_chain_unset(Evas_Object *obj)
1483 EINA_SAFETY_ON_NULL_RETURN(obj);
1484 elm_widget_focus_custom_chain_unset(obj);
1487 EAPI const Eina_List *
1488 elm_object_focus_custom_chain_get(const Evas_Object *obj)
1490 EINA_SAFETY_ON_NULL_RETURN_VAL(obj, NULL);
1491 return elm_widget_focus_custom_chain_get(obj);
1495 elm_object_focus_custom_chain_append(Evas_Object *obj,
1497 Evas_Object *relative_child)
1499 EINA_SAFETY_ON_NULL_RETURN(obj);
1500 elm_widget_focus_custom_chain_append(obj, child, relative_child);
1504 elm_object_focus_custom_chain_prepend(Evas_Object *obj,
1506 Evas_Object *relative_child)
1508 EINA_SAFETY_ON_NULL_RETURN(obj);
1509 elm_widget_focus_custom_chain_prepend(obj, child, relative_child);
1513 elm_object_focus_cycle(Evas_Object *obj,
1514 Elm_Focus_Direction dir)
1516 EINA_SAFETY_ON_NULL_RETURN(obj);
1517 elm_widget_focus_cycle(obj, dir);
1521 elm_object_focus_direction_go(Evas_Object *obj,
1525 EINA_SAFETY_ON_NULL_RETURN(obj);
1526 elm_widget_focus_direction_go(obj, x, y);
1530 elm_object_tree_unfocusable_set(Evas_Object *obj,
1531 Eina_Bool tree_unfocusable)
1533 EINA_SAFETY_ON_NULL_RETURN(obj);
1534 elm_widget_tree_unfocusable_set(obj, tree_unfocusable);
1538 elm_object_tree_unfocusable_get(const Evas_Object *obj)
1540 EINA_SAFETY_ON_NULL_RETURN_VAL(obj, EINA_FALSE);
1541 return elm_widget_tree_unfocusable_get(obj);
1545 elm_focus_highlight_enabled_get(void)
1547 return _elm_config->focus_highlight_enable;
1551 elm_focus_highlight_enabled_set(Eina_Bool enable)
1553 _elm_config->focus_highlight_enable = !!enable;
1557 elm_focus_highlight_animate_get(void)
1559 return _elm_config->focus_highlight_animate;
1563 elm_focus_highlight_animate_set(Eina_Bool animate)
1565 _elm_config->focus_highlight_animate = !!animate;
1569 elm_scroll_bounce_enabled_get(void)
1571 return _elm_config->thumbscroll_bounce_enable;
1575 elm_scroll_bounce_enabled_set(Eina_Bool enabled)
1577 _elm_config->thumbscroll_bounce_enable = enabled;
1581 elm_scroll_bounce_friction_get(void)
1583 return _elm_config->thumbscroll_bounce_friction;
1587 elm_scroll_bounce_friction_set(double friction)
1589 _elm_config->thumbscroll_bounce_friction = friction;
1593 elm_scroll_page_scroll_friction_get(void)
1595 return _elm_config->page_scroll_friction;
1599 elm_scroll_page_scroll_friction_set(double friction)
1601 _elm_config->page_scroll_friction = friction;
1605 elm_scroll_bring_in_scroll_friction_get(void)
1607 return _elm_config->bring_in_scroll_friction;
1611 elm_scroll_bring_in_scroll_friction_set(double friction)
1613 _elm_config->bring_in_scroll_friction = friction;
1617 elm_scroll_zoom_friction_get(void)
1619 return _elm_config->zoom_friction;
1623 elm_scroll_zoom_friction_set(double friction)
1625 _elm_config->zoom_friction = friction;
1629 elm_scroll_thumbscroll_enabled_get(void)
1631 return _elm_config->thumbscroll_enable;
1635 elm_scroll_thumbscroll_enabled_set(Eina_Bool enabled)
1637 _elm_config->thumbscroll_enable = enabled;
1641 elm_scroll_thumbscroll_threshold_get(void)
1643 return _elm_config->thumbscroll_threshold;
1647 elm_scroll_thumbscroll_threshold_set(unsigned int threshold)
1649 _elm_config->thumbscroll_threshold = threshold;
1653 elm_scroll_thumbscroll_momentum_threshold_get(void)
1655 return _elm_config->thumbscroll_momentum_threshold;
1659 elm_scroll_thumbscroll_momentum_threshold_set(double threshold)
1661 _elm_config->thumbscroll_momentum_threshold = threshold;
1665 elm_scroll_thumbscroll_friction_get(void)
1667 return _elm_config->thumbscroll_friction;
1671 elm_scroll_thumbscroll_friction_set(double friction)
1673 _elm_config->thumbscroll_friction = friction;
1677 elm_scroll_thumbscroll_border_friction_get(void)
1679 return _elm_config->thumbscroll_border_friction;
1683 elm_scroll_thumbscroll_border_friction_set(double friction)
1685 if (friction < 0.0) friction = 0.0;
1686 if (friction > 1.0) friction = 1.0;
1687 _elm_config->thumbscroll_friction = friction;
1691 elm_scroll_thumbscroll_sensitivity_friction_get(void)
1693 return _elm_config->thumbscroll_sensitivity_friction;
1697 elm_scroll_thumbscroll_sensitivity_friction_set(double friction)
1699 if (friction < 0.1) friction = 0.1;
1700 if (friction > 1.0) friction = 1.0;
1701 _elm_config->thumbscroll_friction = friction;
1705 elm_scroll_thumbscroll_sensitivity_friction_all_set(double friction)
1707 elm_scroll_thumbscroll_sensitivity_friction_set(friction);
1708 elm_config_all_flush();
1712 elm_object_scroll_hold_push(Evas_Object *obj)
1714 EINA_SAFETY_ON_NULL_RETURN(obj);
1715 elm_widget_scroll_hold_push(obj);
1719 elm_object_scroll_hold_pop(Evas_Object *obj)
1721 EINA_SAFETY_ON_NULL_RETURN(obj);
1722 elm_widget_scroll_hold_pop(obj);
1726 elm_object_scroll_freeze_push(Evas_Object *obj)
1728 EINA_SAFETY_ON_NULL_RETURN(obj);
1729 elm_widget_scroll_freeze_push(obj);
1733 elm_object_scroll_lock_x_set(Evas_Object *obj,
1736 EINA_SAFETY_ON_NULL_RETURN(obj);
1737 elm_widget_drag_lock_x_set(obj, lock);
1741 elm_object_scroll_lock_y_set(Evas_Object *obj,
1744 EINA_SAFETY_ON_NULL_RETURN(obj);
1745 elm_widget_drag_lock_y_set(obj, lock);
1749 elm_object_scroll_lock_x_get(const Evas_Object *obj)
1751 EINA_SAFETY_ON_NULL_RETURN_VAL(obj, EINA_FALSE);
1752 return elm_widget_drag_lock_x_get(obj);
1756 elm_object_scroll_lock_y_get(const Evas_Object *obj)
1758 EINA_SAFETY_ON_NULL_RETURN_VAL(obj, EINA_FALSE);
1759 return elm_widget_drag_lock_y_get(obj);
1763 elm_object_scroll_freeze_pop(Evas_Object *obj)
1765 EINA_SAFETY_ON_NULL_RETURN(obj);
1766 elm_widget_scroll_freeze_pop(obj);
1770 elm_object_widget_check(const Evas_Object *obj)
1772 EINA_SAFETY_ON_NULL_RETURN_VAL(obj, EINA_FALSE);
1773 return elm_widget_is(obj);
1777 elm_object_parent_widget_get(const Evas_Object *obj)
1779 EINA_SAFETY_ON_NULL_RETURN_VAL(obj, NULL);
1780 return elm_widget_parent_widget_get(obj);
1784 elm_object_top_widget_get(const Evas_Object *obj)
1786 EINA_SAFETY_ON_NULL_RETURN_VAL(obj, NULL);
1787 return elm_widget_top_get(obj);
1791 elm_object_widget_type_get(const Evas_Object *obj)
1793 EINA_SAFETY_ON_NULL_RETURN_VAL(obj, NULL);
1794 return elm_widget_type_get(obj);
1798 elm_object_signal_emit(Evas_Object *obj,
1799 const char *emission,
1802 EINA_SAFETY_ON_NULL_RETURN(obj);
1803 elm_widget_signal_emit(obj, emission, source);
1807 elm_object_signal_callback_add(Evas_Object *obj, const char *emission, const char *source, Edje_Signal_Cb func, void *data)
1809 EINA_SAFETY_ON_NULL_RETURN(obj);
1810 EINA_SAFETY_ON_NULL_RETURN(func);
1811 elm_widget_signal_callback_add(obj, emission, source, func, data);
1815 elm_object_signal_callback_del(Evas_Object *obj, const char *emission, const char *source, Edje_Signal_Cb func)
1817 EINA_SAFETY_ON_NULL_RETURN_VAL(obj, NULL);
1818 EINA_SAFETY_ON_NULL_RETURN_VAL(func, NULL);
1819 return elm_widget_signal_callback_del(obj, emission, source, func);
1823 elm_object_event_callback_add(Evas_Object *obj, Elm_Event_Cb func, const void *data)
1825 EINA_SAFETY_ON_NULL_RETURN(obj);
1826 EINA_SAFETY_ON_NULL_RETURN(func);
1827 elm_widget_event_callback_add(obj, func, data);
1831 elm_object_event_callback_del(Evas_Object *obj, Elm_Event_Cb func, const void *data)
1833 EINA_SAFETY_ON_NULL_RETURN_VAL(obj, NULL);
1834 EINA_SAFETY_ON_NULL_RETURN_VAL(func, NULL);
1835 return elm_widget_event_callback_del(obj, func, data);
1839 elm_object_tree_dump(const Evas_Object *top)
1842 elm_widget_tree_dump(top);
1850 elm_object_tree_dot_dump(const Evas_Object *top,
1854 FILE *f = fopen(file, "wb");
1855 elm_widget_tree_dot_dump(top, f);
1865 elm_longpress_timeout_set(double longpress_timeout)
1867 _elm_config->longpress_timeout = longpress_timeout;
1871 elm_longpress_timeout_get(void)
1873 return _elm_config->longpress_timeout;
1877 elm_object_item_widget_get(const Elm_Object_Item *it)
1883 elm_object_item_content_part_set(Elm_Object_Item *it,
1885 Evas_Object *content)
1887 _elm_widget_item_content_part_set((Elm_Widget_Item *) it, part, content);
1891 elm_object_item_part_content_set(Elm_Object_Item *it,
1893 Evas_Object *content)
1895 _elm_widget_item_content_part_set((Elm_Widget_Item *) it, part, content);
1899 elm_object_item_content_part_get(const Elm_Object_Item *it,
1902 return _elm_widget_item_content_part_get((Elm_Widget_Item *) it, part);
1906 elm_object_item_part_content_get(const Elm_Object_Item *it,
1909 return _elm_widget_item_content_part_get((Elm_Widget_Item *) it, part);
1913 elm_object_item_content_part_unset(Elm_Object_Item *it, const char *part)
1915 return _elm_widget_item_content_part_unset((Elm_Widget_Item *) it, part);
1919 elm_object_item_part_content_unset(Elm_Object_Item *it, const char *part)
1921 return _elm_widget_item_content_part_unset((Elm_Widget_Item *) it, part);
1925 elm_object_item_text_part_set(Elm_Object_Item *it,
1929 _elm_widget_item_text_part_set((Elm_Widget_Item *) it, part, label);
1933 elm_object_item_part_text_set(Elm_Object_Item *it,
1937 _elm_widget_item_text_part_set((Elm_Widget_Item *) it, part, label);
1941 elm_object_item_text_part_get(const Elm_Object_Item *it, const char *part)
1943 return _elm_widget_item_text_part_get((Elm_Widget_Item *) it, part);
1947 elm_object_item_part_text_get(const Elm_Object_Item *it, const char *part)
1949 return _elm_widget_item_text_part_get((Elm_Widget_Item *) it, part);
1953 elm_object_access_info_set(Evas_Object *obj, const char *txt)
1955 elm_widget_access_info_set(obj, txt);
1959 elm_object_name_find(const Evas_Object *obj, const char *name, int recurse)
1961 return elm_widget_name_find(obj, name, recurse);
1965 elm_object_item_access_info_set(Elm_Object_Item *it, const char *txt)
1967 _elm_widget_item_access_info_set((Elm_Widget_Item *) it, txt);
1971 elm_object_item_data_get(const Elm_Object_Item *it)
1973 return elm_widget_item_data_get(it);
1977 elm_object_item_data_set(Elm_Object_Item *it, void *data)
1979 elm_widget_item_data_set(it, data);
1983 elm_object_item_signal_emit(Elm_Object_Item *it, const char *emission, const char *source)
1985 _elm_widget_item_signal_emit((Elm_Widget_Item *) it, emission, source);
1988 EAPI void elm_object_item_disabled_set(Elm_Object_Item *it, Eina_Bool disabled)
1990 _elm_widget_item_disabled_set((Elm_Widget_Item *) it, disabled);
1993 EAPI Eina_Bool elm_object_item_disabled_get(const Elm_Object_Item *it)
1995 return _elm_widget_item_disabled_get((Elm_Widget_Item *) it);
1998 EAPI void elm_object_item_del_cb_set(Elm_Object_Item *it, Evas_Smart_Cb del_cb)
2000 _elm_widget_item_del_cb_set((Elm_Widget_Item *) it, del_cb);
2003 EAPI void elm_object_item_del(Elm_Object_Item *it)
2005 _elm_widget_item_del((Elm_Widget_Item *) it);
2009 elm_object_item_tooltip_text_set(Elm_Object_Item *it, const char *text)
2011 elm_widget_item_tooltip_text_set(it, text);
2015 elm_object_item_tooltip_content_cb_set(Elm_Object_Item *it, Elm_Tooltip_Item_Content_Cb func, const void *data, Evas_Smart_Cb del_cb)
2017 elm_widget_item_tooltip_content_cb_set(it, func, data, del_cb);
2021 elm_object_item_tooltip_unset(Elm_Object_Item *it)
2023 elm_widget_item_tooltip_unset(it);
2027 elm_object_item_tooltip_window_mode_set(Elm_Object_Item *it, Eina_Bool disable)
2029 return elm_widget_item_tooltip_window_mode_set(it, disable);
2033 elm_object_item_tooltip_window_mode_get(const Elm_Object_Item *it)
2035 return elm_widget_item_tooltip_window_mode_get(it);
2039 elm_object_item_tooltip_style_set(Elm_Object_Item *it, const char *style)
2041 elm_widget_item_tooltip_style_set(it, style);
2045 elm_object_item_tooltip_style_get(const Elm_Object_Item *it)
2047 return elm_widget_item_tooltip_style_get(it);
2050 EINA_DEPRECATED EAPI Evas_Object *
2051 elm_object_item_object_get(const Elm_Object_Item *it)
2053 return elm_object_item_widget_get(it);
2057 elm_object_item_cursor_set(Elm_Object_Item *it, const char *cursor)
2059 elm_widget_item_cursor_set(it, cursor);
2063 elm_object_item_cursor_get(const Elm_Object_Item *it)
2065 return elm_widget_item_cursor_get(it);
2069 elm_object_item_cursor_unset(Elm_Object_Item *it)
2071 elm_widget_item_cursor_unset(it);
2075 elm_object_item_cursor_style_set(Elm_Object_Item *it, const char *style)
2077 elm_widget_item_cursor_style_set(it, style);
2081 elm_object_item_cursor_style_get(const Elm_Object_Item *it)
2083 return elm_widget_item_cursor_style_get(it);
2087 elm_object_item_cursor_engine_only_set(Elm_Object_Item *it, Eina_Bool engine_only)
2089 elm_widget_item_cursor_engine_only_set(it, engine_only);
2093 elm_object_item_cursor_engine_only_get(const Elm_Object_Item *it)
2095 return elm_widget_item_cursor_engine_only_get(it);