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 #define ENGINE_COMPARE(name) (!strcmp(_elm_config->engine, name))
428 if (ENGINE_COMPARE(ELM_SOFTWARE_X11) ||
429 ENGINE_COMPARE(ELM_SOFTWARE_16_X11) ||
430 ENGINE_COMPARE(ELM_XRENDER_X11) ||
431 ENGINE_COMPARE(ELM_OPENGL_X11))
432 #undef ENGINE_COMPARE
434 #ifdef HAVE_ELEMENTARY_X
438 ecore_evas_init(); // FIXME: check errors
439 #ifdef HAVE_ELEMENTARY_ECORE_IMF
442 #ifdef HAVE_ELEMENTARY_ECORE_CON
444 ecore_con_url_init();
448 return _elm_sub_init_count;
452 elm_quicklaunch_sub_shutdown(void)
454 _elm_sub_init_count--;
455 if (_elm_sub_init_count > 0) return _elm_sub_init_count;
458 #ifdef SEMI_BROKEN_QUICKLAUNCH
459 return _elm_sub_init_count;
465 _elm_module_shutdown();
466 _elm_ews_wm_shutdown();
467 #ifdef HAVE_ELEMENTARY_ECORE_CON
468 ecore_con_url_shutdown();
469 ecore_con_shutdown();
471 #ifdef HAVE_ELEMENTARY_ECORE_IMF
472 ecore_imf_shutdown();
474 ecore_evas_shutdown();
475 _elm_config_sub_shutdown();
476 #define ENGINE_COMPARE(name) (!strcmp(_elm_config->engine, name))
477 if (ENGINE_COMPARE(ELM_SOFTWARE_X11) ||
478 ENGINE_COMPARE(ELM_SOFTWARE_16_X11) ||
479 ENGINE_COMPARE(ELM_XRENDER_X11) ||
480 ENGINE_COMPARE(ELM_OPENGL_X11) ||
481 ENGINE_COMPARE(ELM_SOFTWARE_SDL) ||
482 ENGINE_COMPARE(ELM_SOFTWARE_16_SDL) ||
483 ENGINE_COMPARE(ELM_OPENGL_SDL) ||
484 ENGINE_COMPARE(ELM_OPENGL_COCOA) ||
485 ENGINE_COMPARE(ELM_SOFTWARE_WIN32) ||
486 ENGINE_COMPARE(ELM_SOFTWARE_16_WINCE) ||
487 ENGINE_COMPARE(ELM_EWS))
488 #undef ENGINE_COMPARE
489 evas_cserve_disconnect();
493 return _elm_sub_init_count;
497 elm_quicklaunch_shutdown(void)
499 _elm_ql_init_count--;
500 if (_elm_ql_init_count > 0) return _elm_ql_init_count;
501 if (pfx) eina_prefix_free(pfx);
503 eina_stringshare_del(_elm_data_dir);
504 _elm_data_dir = NULL;
505 eina_stringshare_del(_elm_lib_dir);
511 _elm_config_shutdown();
513 ecore_event_handler_del(_elm_exit_handler);
514 _elm_exit_handler = NULL;
516 _elm_theme_shutdown();
517 _elm_unneed_efreet();
518 _elm_unneed_e_dbus();
519 _elm_unneed_ethumb();
521 ecore_file_shutdown();
523 #ifdef HAVE_ELEMENTARY_EMAP
530 if ((_elm_log_dom > -1) && (_elm_log_dom != EINA_LOG_DOMAIN_GLOBAL))
532 eina_log_domain_unregister(_elm_log_dom);
536 _elm_widget_type_clear();
539 return _elm_ql_init_count;
543 elm_quicklaunch_seed(void)
545 #ifndef SEMI_BROKEN_QUICKLAUNCH
548 Evas_Object *win, *bg, *bt;
550 win = elm_win_add(NULL, "seed", ELM_WIN_BASIC);
551 bg = elm_bg_add(win);
552 elm_win_resize_object_add(win, bg);
553 evas_object_show(bg);
554 bt = elm_button_add(win);
555 elm_button_label_set(bt, " abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789~-_=+\\|]}[{;:'\",<.>/?");
556 elm_win_resize_object_add(win, bt);
557 ecore_main_loop_iterate();
558 evas_object_del(win);
559 ecore_main_loop_iterate();
560 #define ENGINE_COMPARE(name) (!strcmp(_elm_config->engine, name))
561 if (ENGINE_COMPARE(ELM_SOFTWARE_X11) ||
562 ENGINE_COMPARE(ELM_SOFTWARE_16_X11) ||
563 ENGINE_COMPARE(ELM_XRENDER_X11) ||
564 ENGINE_COMPARE(ELM_OPENGL_X11))
565 #undef ENGINE_COMPARE
567 # ifdef HAVE_ELEMENTARY_X
571 ecore_main_loop_iterate();
577 static void *qr_handle = NULL;
579 static int (*qr_main)(int argc,
583 elm_quicklaunch_prepare(int argc __UNUSED__,
587 char *exe = elm_quicklaunch_exe_path_get(argv[0]);
590 ERR("requested quicklaunch binary '%s' does not exist\n", argv[0]);
598 exe2 = malloc(strlen(exe) + 1 + 10);
600 p = strrchr(exe2, '/');
603 exename = alloca(strlen(p) + 1);
606 strcat(p, "../lib/");
609 if (!access(exe2, R_OK | X_OK))
617 qr_handle = dlopen(exe, RTLD_NOW | RTLD_GLOBAL);
620 fprintf(stderr, "dlerr: %s\n", dlerror());
621 WRN("dlopen('%s') failed: %s", exe, dlerror());
625 INF("dlopen('%s') = %p", exe, qr_handle);
626 qr_main = dlsym(qr_handle, "elm_main");
627 INF("dlsym(%p, 'elm_main') = %p", qr_handle, qr_main);
630 WRN("not quicklauncher capable: no elm_main in '%s'", exe);
649 extern char **environ;
654 for (i = 0, size = 0; environ[i]; i++)
655 size += strlen(environ[i]) + 1;
657 p = malloc((i + 1) * sizeof(char *));
662 for (i = 0; oldenv[i]; i++)
663 environ[i] = strdup(oldenv[i]);
670 elm_quicklaunch_fork(int argc,
673 void (postfork_func) (void *data),
683 // need to accept current environment from elementary_run
690 if (child > 0) return EINA_TRUE;
693 perror("could not fork");
698 perror("could not chdir");
699 args = alloca((argc + 1) * sizeof(char *));
700 for (i = 0; i < argc; i++) args[i] = argv[i];
702 WRN("%s not quicklaunch capable, fallback...", argv[0]);
703 execvp(argv[0], args);
704 ERR("failed to execute '%s': %s", argv[0], strerror(errno));
708 if (child > 0) return EINA_TRUE;
711 perror("could not fork");
714 if (postfork_func) postfork_func(postfork_data);
718 #ifdef SEMI_BROKEN_QUICKLAUNCH
719 ecore_app_args_set(argc, (const char **)argv);
722 _elm_config_sub_init();
723 #define ENGINE_COMPARE(name) (!strcmp(_elm_config->engine, name))
724 if (ENGINE_COMPARE(ELM_SOFTWARE_X11) ||
725 ENGINE_COMPARE(ELM_SOFTWARE_16_X11) ||
726 ENGINE_COMPARE(ELM_XRENDER_X11) ||
727 ENGINE_COMPARE(ELM_OPENGL_X11))
728 #undef ENGINE_COMPARE
730 # ifdef HAVE_ELEMENTARY_X
734 ecore_evas_init(); // FIXME: check errors
742 perror("could not chdir");
743 // FIXME: this is very linux specific. it changes argv[0] of the process
744 // so ps etc. report what you'd expect. for other unixes and os's this
751 ecore_app_args_get(&real_argc, &real_argv);
752 lastarg = real_argv[real_argc - 1] + strlen(real_argv[real_argc - 1]);
753 for (p = real_argv[0]; p < lastarg; p++) *p = 0;
754 strcpy(real_argv[0], argv[0]);
756 ecore_app_args_set(argc, (const char **)argv);
757 ret = qr_main(argc, argv);
771 elm_quicklaunch_cleanup(void)
784 elm_quicklaunch_fallback(int argc,
788 elm_quicklaunch_init(argc, argv);
789 elm_quicklaunch_sub_init(argc, argv);
790 elm_quicklaunch_prepare(argc, argv);
791 ret = qr_main(argc, argv);
797 elm_quicklaunch_exe_path_get(const char *exe)
799 static char *path = NULL;
800 static Eina_List *pathlist = NULL;
804 if (exe[0] == '/') return strdup(exe);
805 if ((exe[0] == '.') && (exe[1] == '/')) return strdup(exe);
806 if ((exe[0] == '.') && (exe[1] == '.') && (exe[2] == '/')) return strdup(exe);
811 path = getenv("PATH");
812 buf2 = alloca(strlen(path) + 1);
817 if ((*p == ':') || (!*p))
822 strncpy(buf2, pp, len);
824 pathlist = eina_list_append(pathlist, eina_stringshare_add(buf2));
836 EINA_LIST_FOREACH(pathlist, l, pathitr)
838 snprintf(buf, sizeof(buf), "%s/%s", pathitr, exe);
839 if (!access(buf, R_OK | X_OK)) return strdup(buf);
847 ecore_main_loop_begin();
853 ecore_main_loop_quit();
857 elm_policy_set(unsigned int policy,
860 Elm_Event_Policy_Changed *ev;
862 if (policy >= ELM_POLICY_LAST)
865 if (value == _elm_policies[policy])
868 /* TODO: validade policy? */
870 ev = malloc(sizeof(*ev));
872 ev->new_value = value;
873 ev->old_value = _elm_policies[policy];
875 _elm_policies[policy] = value;
877 ecore_event_add(ELM_EVENT_POLICY_CHANGED, ev, NULL, NULL);
883 elm_policy_get(unsigned int policy)
885 if (policy >= ELM_POLICY_LAST)
887 return _elm_policies[policy];
891 elm_language_set(const char *lang)
893 setlocale(LC_ALL, lang);
894 _elm_win_translate();
898 elm_object_mirrored_get(const Evas_Object *obj)
900 EINA_SAFETY_ON_NULL_RETURN_VAL(obj, EINA_FALSE);
901 return elm_widget_mirrored_get(obj);
905 elm_object_mirrored_set(Evas_Object *obj, Eina_Bool mirrored)
907 EINA_SAFETY_ON_NULL_RETURN(obj);
908 elm_widget_mirrored_set(obj, mirrored);
912 elm_object_mirrored_automatic_get(const Evas_Object *obj)
914 EINA_SAFETY_ON_NULL_RETURN_VAL(obj, EINA_FALSE);
915 return elm_widget_mirrored_automatic_get(obj);
919 elm_object_mirrored_automatic_set(Evas_Object *obj, Eina_Bool automatic)
921 EINA_SAFETY_ON_NULL_RETURN(obj);
922 elm_widget_mirrored_automatic_set(obj, automatic);
930 elm_object_scale_set(Evas_Object *obj,
933 EINA_SAFETY_ON_NULL_RETURN(obj);
934 elm_widget_scale_set(obj, scale);
938 elm_object_scale_get(const Evas_Object *obj)
940 EINA_SAFETY_ON_NULL_RETURN_VAL(obj, 0.0);
941 return elm_widget_scale_get(obj);
945 elm_object_text_part_set(Evas_Object *obj, const char *part, const char *label)
947 EINA_SAFETY_ON_NULL_RETURN(obj);
948 elm_widget_text_part_set(obj, part, label);
952 elm_object_text_part_get(const Evas_Object *obj, const char *part)
954 EINA_SAFETY_ON_NULL_RETURN_VAL(obj, NULL);
955 return elm_widget_text_part_get(obj, part);
959 elm_object_part_text_set(Evas_Object *obj, const char *part, const char *label)
961 EINA_SAFETY_ON_NULL_RETURN(obj);
962 elm_widget_text_part_set(obj, part, label);
966 elm_object_part_text_get(const Evas_Object *obj, const char *part)
968 EINA_SAFETY_ON_NULL_RETURN_VAL(obj, NULL);
969 return elm_widget_text_part_get(obj, part);
973 elm_object_domain_translatable_text_part_set(Evas_Object *obj, const char *part, const char *domain, const char *text)
975 EINA_SAFETY_ON_NULL_RETURN(obj);
976 elm_widget_domain_translatable_text_part_set(obj, part, domain, text);
980 elm_object_translatable_text_part_get(const Evas_Object *obj, const char *part)
982 EINA_SAFETY_ON_NULL_RETURN_VAL(obj, NULL);
983 return elm_widget_translatable_text_part_get(obj, part);
987 elm_object_part_content_set(Evas_Object *obj, const char *part, Evas_Object *content)
989 EINA_SAFETY_ON_NULL_RETURN(obj);
990 elm_widget_content_part_set(obj, part, content);
994 elm_object_content_part_set(Evas_Object *obj, const char *part, Evas_Object *content)
996 EINA_SAFETY_ON_NULL_RETURN(obj);
997 elm_widget_content_part_set(obj, part, content);
1002 elm_object_part_content_get(const Evas_Object *obj, const char *part)
1004 EINA_SAFETY_ON_NULL_RETURN_VAL(obj, NULL);
1005 return elm_widget_content_part_get(obj, part);
1009 elm_object_content_part_get(const Evas_Object *obj, const char *part)
1011 EINA_SAFETY_ON_NULL_RETURN_VAL(obj, NULL);
1012 return elm_widget_content_part_get(obj, part);
1016 elm_object_part_content_unset(Evas_Object *obj, const char *part)
1018 EINA_SAFETY_ON_NULL_RETURN_VAL(obj, NULL);
1019 return elm_widget_content_part_unset(obj, part);
1024 elm_object_content_part_unset(Evas_Object *obj, const char *part)
1026 EINA_SAFETY_ON_NULL_RETURN_VAL(obj, NULL);
1027 return elm_widget_content_part_unset(obj, part);
1033 return _elm_config->scale;
1037 elm_scale_set(double scale)
1039 if (_elm_config->scale == scale) return;
1040 _elm_config->scale = scale;
1045 elm_scale_all_set(double scale)
1047 elm_scale_set(scale);
1048 _elm_config_all_update();
1052 elm_password_show_last_get(void)
1054 return _elm_config->password_show_last;
1058 elm_password_show_last_set(Eina_Bool password_show_last)
1060 if (_elm_config->password_show_last == password_show_last) return;
1061 _elm_config->password_show_last = password_show_last;
1062 edje_password_show_last_set(_elm_config->password_show_last);
1066 elm_password_show_last_timeout_get(void)
1068 return _elm_config->password_show_last_timeout;
1072 elm_password_show_last_timeout_set(double password_show_last_timeout)
1074 if (_elm_config->password_show_last_timeout == password_show_last_timeout) return;
1075 _elm_config->password_show_last_timeout = password_show_last_timeout;
1076 edje_password_show_last_timeout_set(_elm_config->password_show_last_timeout);
1080 elm_object_style_set(Evas_Object *obj,
1083 EINA_SAFETY_ON_NULL_RETURN(obj);
1084 elm_widget_style_set(obj, style);
1088 elm_object_style_get(const Evas_Object *obj)
1090 EINA_SAFETY_ON_NULL_RETURN_VAL(obj, NULL);
1091 return elm_widget_style_get(obj);
1095 elm_object_disabled_set(Evas_Object *obj,
1098 EINA_SAFETY_ON_NULL_RETURN(obj);
1099 elm_widget_disabled_set(obj, disabled);
1103 elm_object_disabled_get(const Evas_Object *obj)
1105 EINA_SAFETY_ON_NULL_RETURN_VAL(obj, EINA_FALSE);
1106 return elm_widget_disabled_get(obj);
1110 elm_config_save(void)
1112 return _elm_config_save();
1116 elm_config_reload(void)
1118 _elm_config_reload();
1122 elm_profile_current_get(void)
1124 return _elm_config_current_profile_get();
1128 elm_profile_dir_get(const char *profile,
1131 return _elm_config_profile_dir_get(profile, is_user);
1135 elm_profile_dir_free(const char *p_dir)
1137 free((void *)p_dir);
1141 elm_profile_list_get(void)
1143 return _elm_config_profiles_list();
1147 elm_profile_list_free(Eina_List *l)
1151 EINA_LIST_FREE(l, dir)
1152 eina_stringshare_del(dir);
1156 elm_profile_set(const char *profile)
1158 EINA_SAFETY_ON_NULL_RETURN(profile);
1159 _elm_config_profile_set(profile);
1163 elm_profile_all_set(const char *profile)
1165 _elm_config_profile_set(profile);
1166 _elm_config_all_update();
1170 elm_engine_current_get(void)
1172 return _elm_config->engine;
1176 elm_engine_set(const char *engine)
1178 EINA_SAFETY_ON_NULL_RETURN(engine);
1180 _elm_config_engine_set(engine);
1183 EAPI const Eina_List *
1184 elm_text_classes_list_get(void)
1186 return _elm_config_text_classes_get();
1190 elm_text_classes_list_free(const Eina_List *list)
1192 _elm_config_text_classes_free((Eina_List *)list);
1195 EAPI const Eina_List *
1196 elm_font_overlay_list_get(void)
1198 return _elm_config_font_overlays_list();
1202 elm_font_overlay_set(const char *text_class,
1204 Evas_Font_Size size)
1206 _elm_config_font_overlay_set(text_class, font, size);
1210 elm_font_overlay_unset(const char *text_class)
1212 _elm_config_font_overlay_remove(text_class);
1216 elm_font_overlay_apply(void)
1218 _elm_config_font_overlay_apply();
1222 elm_font_overlay_all_apply(void)
1224 elm_font_overlay_apply();
1225 _elm_config_all_update();
1228 EAPI Elm_Font_Properties *
1229 elm_font_properties_get(const char *font)
1231 EINA_SAFETY_ON_NULL_RETURN_VAL(font, NULL);
1232 return _elm_font_properties_get(NULL, font);
1236 elm_font_properties_free(Elm_Font_Properties *efp)
1240 EINA_SAFETY_ON_NULL_RETURN(efp);
1241 EINA_LIST_FREE(efp->styles, str)
1242 if (str) eina_stringshare_del(str);
1243 if (efp->name) eina_stringshare_del(efp->name);
1248 elm_font_fontconfig_name_get(const char *name,
1253 EINA_SAFETY_ON_NULL_RETURN_VAL(name, NULL);
1254 if (!style || style[0] == 0) return eina_stringshare_add(name);
1255 snprintf(buf, 256, "%s" ELM_FONT_TOKEN_STYLE "%s", name, style);
1256 return eina_stringshare_add(buf);
1260 elm_font_fontconfig_name_free(const char *name)
1262 eina_stringshare_del(name);
1266 elm_font_available_hash_add(Eina_List *list)
1268 Eina_Hash *font_hash;
1274 /* populate with default font families */
1275 font_hash = _elm_font_available_hash_add(font_hash, "Sans:style=Regular");
1276 font_hash = _elm_font_available_hash_add(font_hash, "Sans:style=Bold");
1277 font_hash = _elm_font_available_hash_add(font_hash, "Sans:style=Oblique");
1278 font_hash = _elm_font_available_hash_add(font_hash,
1279 "Sans:style=Bold Oblique");
1281 font_hash = _elm_font_available_hash_add(font_hash, "Serif:style=Regular");
1282 font_hash = _elm_font_available_hash_add(font_hash, "Serif:style=Bold");
1283 font_hash = _elm_font_available_hash_add(font_hash, "Serif:style=Oblique");
1284 font_hash = _elm_font_available_hash_add(font_hash,
1285 "Serif:style=Bold Oblique");
1287 font_hash = _elm_font_available_hash_add(font_hash,
1288 "Monospace:style=Regular");
1289 font_hash = _elm_font_available_hash_add(font_hash,
1290 "Monospace:style=Bold");
1291 font_hash = _elm_font_available_hash_add(font_hash,
1292 "Monospace:style=Oblique");
1293 font_hash = _elm_font_available_hash_add(font_hash,
1294 "Monospace:style=Bold Oblique");
1296 EINA_LIST_FOREACH(list, l, key)
1297 font_hash = _elm_font_available_hash_add(font_hash, key);
1303 elm_font_available_hash_del(Eina_Hash *hash)
1305 _elm_font_available_hash_del(hash);
1309 elm_finger_size_get(void)
1311 return _elm_config->finger_size;
1315 elm_finger_size_set(Evas_Coord size)
1317 if (_elm_config->finger_size == size) return;
1318 _elm_config->finger_size = size;
1323 elm_finger_size_all_set(Evas_Coord size)
1325 elm_finger_size_set(size);
1326 _elm_config_all_update();
1330 elm_coords_finger_size_adjust(int times_w,
1335 if ((w) && (*w < (_elm_config->finger_size * times_w)))
1336 *w = _elm_config->finger_size * times_w;
1337 if ((h) && (*h < (_elm_config->finger_size * times_h)))
1338 *h = _elm_config->finger_size * times_h;
1347 edje_file_cache_flush();
1348 edje_collection_cache_flush();
1350 EINA_LIST_FOREACH(_elm_win_list, l, obj)
1352 Evas *e = evas_object_evas_get(obj);
1353 evas_image_cache_flush(e);
1354 evas_font_cache_flush(e);
1355 evas_render_dump(e);
1360 elm_cache_flush_interval_get(void)
1362 return _elm_config->cache_flush_poll_interval;
1366 elm_cache_flush_interval_set(int size)
1368 if (_elm_config->cache_flush_poll_interval == size) return;
1369 _elm_config->cache_flush_poll_interval = size;
1375 elm_cache_flush_interval_all_set(int size)
1377 elm_cache_flush_interval_set(size);
1378 _elm_config_all_update();
1382 elm_cache_flush_enabled_get(void)
1384 return _elm_config->cache_flush_enable;
1388 elm_cache_flush_enabled_set(Eina_Bool enabled)
1390 enabled = !!enabled;
1391 if (_elm_config->cache_flush_enable == enabled) return;
1392 _elm_config->cache_flush_enable = enabled;
1398 elm_cache_flush_enabled_all_set(Eina_Bool enabled)
1400 elm_cache_flush_enabled_set(enabled);
1401 _elm_config_all_update();
1405 elm_font_cache_get(void)
1407 return _elm_config->font_cache;
1411 elm_font_cache_set(int size)
1413 if (_elm_config->font_cache == size) return;
1414 _elm_config->font_cache = size;
1420 elm_font_cache_all_set(int size)
1422 elm_font_cache_set(size);
1423 _elm_config_all_update();
1427 elm_image_cache_get(void)
1429 return _elm_config->image_cache;
1433 elm_image_cache_set(int size)
1435 if (_elm_config->image_cache == size) return;
1436 _elm_config->image_cache = size;
1442 elm_image_cache_all_set(int size)
1444 elm_image_cache_set(size);
1445 _elm_config_all_update();
1449 elm_edje_file_cache_get(void)
1451 return _elm_config->edje_cache;
1455 elm_edje_file_cache_set(int size)
1457 if (_elm_config->edje_cache == size) return;
1458 _elm_config->edje_cache = size;
1464 elm_edje_file_cache_all_set(int size)
1466 elm_edje_file_cache_set(size);
1467 _elm_config_all_update();
1471 elm_edje_collection_cache_get(void)
1473 return _elm_config->edje_collection_cache;
1477 elm_edje_collection_cache_set(int size)
1479 if (_elm_config->edje_collection_cache == size) return;
1480 _elm_config->edje_collection_cache = size;
1486 elm_edje_collection_cache_all_set(int size)
1488 elm_edje_collection_cache_set(size);
1489 _elm_config_all_update();
1493 elm_object_focus_get(const Evas_Object *obj)
1495 EINA_SAFETY_ON_NULL_RETURN_VAL(obj, EINA_FALSE);
1496 return elm_widget_focus_get(obj);
1500 elm_object_focus_set(Evas_Object *obj,
1503 EINA_SAFETY_ON_NULL_RETURN(obj);
1506 if (elm_widget_focus_get(obj)) return;
1507 elm_widget_focus_cycle(obj, ELM_FOCUS_NEXT);
1511 if (!elm_widget_can_focus_get(obj)) return;
1512 elm_widget_focused_object_clear(obj);
1517 elm_object_focus(Evas_Object *obj)
1519 EINA_SAFETY_ON_NULL_RETURN(obj);
1520 elm_object_focus_set(obj, EINA_TRUE);
1524 elm_object_unfocus(Evas_Object *obj)
1526 EINA_SAFETY_ON_NULL_RETURN(obj);
1527 elm_object_focus_set(obj, EINA_FALSE);
1531 elm_object_focus_allow_set(Evas_Object *obj,
1534 EINA_SAFETY_ON_NULL_RETURN(obj);
1535 elm_widget_can_focus_set(obj, enable);
1539 elm_object_focus_allow_get(const Evas_Object *obj)
1541 EINA_SAFETY_ON_NULL_RETURN_VAL(obj, EINA_FALSE);
1542 return (elm_widget_can_focus_get(obj)) || (elm_widget_child_can_focus_get(obj));
1546 elm_object_focus_custom_chain_set(Evas_Object *obj,
1549 EINA_SAFETY_ON_NULL_RETURN(obj);
1550 elm_widget_focus_custom_chain_set(obj, objs);
1554 elm_object_focus_custom_chain_unset(Evas_Object *obj)
1556 EINA_SAFETY_ON_NULL_RETURN(obj);
1557 elm_widget_focus_custom_chain_unset(obj);
1560 EAPI const Eina_List *
1561 elm_object_focus_custom_chain_get(const Evas_Object *obj)
1563 EINA_SAFETY_ON_NULL_RETURN_VAL(obj, NULL);
1564 return elm_widget_focus_custom_chain_get(obj);
1568 elm_object_focus_custom_chain_append(Evas_Object *obj,
1570 Evas_Object *relative_child)
1572 EINA_SAFETY_ON_NULL_RETURN(obj);
1573 EINA_SAFETY_ON_NULL_RETURN(child);
1574 elm_widget_focus_custom_chain_append(obj, child, relative_child);
1578 elm_object_focus_custom_chain_prepend(Evas_Object *obj,
1580 Evas_Object *relative_child)
1582 EINA_SAFETY_ON_NULL_RETURN(obj);
1583 EINA_SAFETY_ON_NULL_RETURN(child);
1584 elm_widget_focus_custom_chain_prepend(obj, child, relative_child);
1588 elm_object_focus_cycle(Evas_Object *obj,
1589 Elm_Focus_Direction dir)
1591 EINA_SAFETY_ON_NULL_RETURN(obj);
1592 elm_widget_focus_cycle(obj, dir);
1596 elm_object_focus_direction_go(Evas_Object *obj,
1600 EINA_SAFETY_ON_NULL_RETURN(obj);
1601 elm_widget_focus_direction_go(obj, x, y);
1605 elm_object_tree_unfocusable_set(Evas_Object *obj,
1606 Eina_Bool tree_unfocusable)
1608 EINA_SAFETY_ON_NULL_RETURN(obj);
1609 elm_widget_tree_unfocusable_set(obj, tree_unfocusable);
1613 elm_object_tree_unfocusable_get(const Evas_Object *obj)
1615 EINA_SAFETY_ON_NULL_RETURN_VAL(obj, EINA_FALSE);
1616 return elm_widget_tree_unfocusable_get(obj);
1620 elm_focus_highlight_enabled_get(void)
1622 return _elm_config->focus_highlight_enable;
1626 elm_focus_highlight_enabled_set(Eina_Bool enable)
1628 _elm_config->focus_highlight_enable = !!enable;
1632 elm_focus_highlight_animate_get(void)
1634 return _elm_config->focus_highlight_animate;
1638 elm_focus_highlight_animate_set(Eina_Bool animate)
1640 _elm_config->focus_highlight_animate = !!animate;
1644 elm_scroll_bounce_enabled_get(void)
1646 return _elm_config->thumbscroll_bounce_enable;
1650 elm_scroll_bounce_enabled_set(Eina_Bool enabled)
1652 _elm_config->thumbscroll_bounce_enable = enabled;
1656 elm_scroll_bounce_enabled_all_set(Eina_Bool enabled)
1658 elm_scroll_bounce_enabled_set(enabled);
1659 _elm_config_all_update();
1663 elm_scroll_bounce_friction_get(void)
1665 return _elm_config->thumbscroll_bounce_friction;
1669 elm_scroll_bounce_friction_set(double friction)
1671 _elm_config->thumbscroll_bounce_friction = friction;
1675 elm_scroll_bounce_friction_all_set(double friction)
1677 elm_scroll_bounce_friction_set(friction);
1678 _elm_config_all_update();
1682 elm_scroll_page_scroll_friction_get(void)
1684 return _elm_config->page_scroll_friction;
1688 elm_scroll_page_scroll_friction_set(double friction)
1690 _elm_config->page_scroll_friction = friction;
1694 elm_scroll_page_scroll_friction_all_set(double friction)
1696 elm_scroll_page_scroll_friction_set(friction);
1697 _elm_config_all_update();
1701 elm_scroll_bring_in_scroll_friction_get(void)
1703 return _elm_config->bring_in_scroll_friction;
1707 elm_scroll_bring_in_scroll_friction_set(double friction)
1709 _elm_config->bring_in_scroll_friction = friction;
1713 elm_scroll_bring_in_scroll_friction_all_set(double friction)
1715 elm_scroll_bring_in_scroll_friction_set(friction);
1716 _elm_config_all_update();
1720 elm_scroll_zoom_friction_get(void)
1722 return _elm_config->zoom_friction;
1726 elm_scroll_zoom_friction_set(double friction)
1728 _elm_config->zoom_friction = friction;
1732 elm_scroll_zoom_friction_all_set(double friction)
1734 elm_scroll_zoom_friction_set(friction);
1735 _elm_config_all_update();
1739 elm_scroll_thumbscroll_enabled_get(void)
1741 return _elm_config->thumbscroll_enable;
1745 elm_scroll_thumbscroll_enabled_set(Eina_Bool enabled)
1747 _elm_config->thumbscroll_enable = enabled;
1751 elm_scroll_thumbscroll_enabled_all_set(Eina_Bool enabled)
1753 elm_scroll_thumbscroll_enabled_set(enabled);
1754 _elm_config_all_update();
1758 elm_scroll_thumbscroll_threshold_get(void)
1760 return _elm_config->thumbscroll_threshold;
1764 elm_scroll_thumbscroll_threshold_set(unsigned int threshold)
1766 _elm_config->thumbscroll_threshold = threshold;
1770 elm_scroll_thumbscroll_threshold_all_set(unsigned int threshold)
1772 elm_scroll_thumbscroll_threshold_set(threshold);
1773 _elm_config_all_update();
1777 elm_scroll_thumbscroll_momentum_threshold_get(void)
1779 return _elm_config->thumbscroll_momentum_threshold;
1783 elm_scroll_thumbscroll_momentum_threshold_set(double threshold)
1785 _elm_config->thumbscroll_momentum_threshold = threshold;
1789 elm_scroll_thumbscroll_momentum_threshold_all_set(double threshold)
1791 elm_scroll_thumbscroll_momentum_threshold_set(threshold);
1792 _elm_config_all_update();
1796 elm_scroll_thumbscroll_friction_get(void)
1798 return _elm_config->thumbscroll_friction;
1802 elm_scroll_thumbscroll_friction_set(double friction)
1804 _elm_config->thumbscroll_friction = friction;
1808 elm_scroll_thumbscroll_friction_all_set(double friction)
1810 elm_scroll_thumbscroll_friction_set(friction);
1811 _elm_config_all_update();
1815 elm_scroll_thumbscroll_border_friction_get(void)
1817 return _elm_config->thumbscroll_border_friction;
1821 elm_scroll_thumbscroll_border_friction_set(double friction)
1823 if (friction < 0.0) friction = 0.0;
1824 if (friction > 1.0) friction = 1.0;
1825 _elm_config->thumbscroll_friction = friction;
1829 elm_scroll_thumbscroll_border_friction_all_set(double friction)
1831 elm_scroll_thumbscroll_border_friction_set(friction);
1832 _elm_config_all_update();
1836 elm_scroll_thumbscroll_sensitivity_friction_get(void)
1838 return _elm_config->thumbscroll_sensitivity_friction;
1842 elm_scroll_thumbscroll_sensitivity_friction_set(double friction)
1844 if (friction < 0.1) friction = 0.1;
1845 if (friction > 1.0) friction = 1.0;
1846 _elm_config->thumbscroll_friction = friction;
1850 elm_scroll_thumbscroll_sensitivity_friction_all_set(double friction)
1852 elm_scroll_thumbscroll_sensitivity_friction_set(friction);
1853 _elm_config_all_update();
1857 elm_object_scroll_hold_push(Evas_Object *obj)
1859 EINA_SAFETY_ON_NULL_RETURN(obj);
1860 elm_widget_scroll_hold_push(obj);
1864 elm_object_scroll_hold_pop(Evas_Object *obj)
1866 EINA_SAFETY_ON_NULL_RETURN(obj);
1867 elm_widget_scroll_hold_pop(obj);
1871 elm_object_scroll_freeze_push(Evas_Object *obj)
1873 EINA_SAFETY_ON_NULL_RETURN(obj);
1874 elm_widget_scroll_freeze_push(obj);
1878 elm_object_scroll_lock_x_set(Evas_Object *obj,
1881 EINA_SAFETY_ON_NULL_RETURN(obj);
1882 elm_widget_drag_lock_x_set(obj, lock);
1886 elm_object_scroll_lock_y_set(Evas_Object *obj,
1889 EINA_SAFETY_ON_NULL_RETURN(obj);
1890 elm_widget_drag_lock_y_set(obj, lock);
1894 elm_object_scroll_lock_x_get(const Evas_Object *obj)
1896 EINA_SAFETY_ON_NULL_RETURN_VAL(obj, EINA_FALSE);
1897 return elm_widget_drag_lock_x_get(obj);
1901 elm_object_scroll_lock_y_get(const Evas_Object *obj)
1903 EINA_SAFETY_ON_NULL_RETURN_VAL(obj, EINA_FALSE);
1904 return elm_widget_drag_lock_y_get(obj);
1908 elm_object_scroll_freeze_pop(Evas_Object *obj)
1910 EINA_SAFETY_ON_NULL_RETURN(obj);
1911 elm_widget_scroll_freeze_pop(obj);
1915 elm_object_widget_check(const Evas_Object *obj)
1917 EINA_SAFETY_ON_NULL_RETURN_VAL(obj, EINA_FALSE);
1918 return elm_widget_is(obj);
1922 elm_object_parent_widget_get(const Evas_Object *obj)
1924 EINA_SAFETY_ON_NULL_RETURN_VAL(obj, NULL);
1925 return elm_widget_parent_widget_get(obj);
1929 elm_object_top_widget_get(const Evas_Object *obj)
1931 EINA_SAFETY_ON_NULL_RETURN_VAL(obj, NULL);
1932 return elm_widget_top_get(obj);
1936 elm_object_widget_type_get(const Evas_Object *obj)
1938 EINA_SAFETY_ON_NULL_RETURN_VAL(obj, NULL);
1939 return elm_widget_type_get(obj);
1943 elm_object_signal_emit(Evas_Object *obj,
1944 const char *emission,
1947 EINA_SAFETY_ON_NULL_RETURN(obj);
1948 elm_widget_signal_emit(obj, emission, source);
1952 elm_object_signal_callback_add(Evas_Object *obj, const char *emission, const char *source, Edje_Signal_Cb func, void *data)
1954 EINA_SAFETY_ON_NULL_RETURN(obj);
1955 EINA_SAFETY_ON_NULL_RETURN(func);
1956 elm_widget_signal_callback_add(obj, emission, source, func, data);
1960 elm_object_signal_callback_del(Evas_Object *obj, const char *emission, const char *source, Edje_Signal_Cb func)
1962 EINA_SAFETY_ON_NULL_RETURN_VAL(obj, NULL);
1963 EINA_SAFETY_ON_NULL_RETURN_VAL(func, NULL);
1964 return elm_widget_signal_callback_del(obj, emission, source, func);
1968 elm_object_event_callback_add(Evas_Object *obj, Elm_Event_Cb func, const void *data)
1970 EINA_SAFETY_ON_NULL_RETURN(obj);
1971 EINA_SAFETY_ON_NULL_RETURN(func);
1972 elm_widget_event_callback_add(obj, func, data);
1976 elm_object_event_callback_del(Evas_Object *obj, Elm_Event_Cb func, const void *data)
1978 EINA_SAFETY_ON_NULL_RETURN_VAL(obj, NULL);
1979 EINA_SAFETY_ON_NULL_RETURN_VAL(func, NULL);
1980 return elm_widget_event_callback_del(obj, func, data);
1984 elm_object_tree_dump(const Evas_Object *top)
1987 elm_widget_tree_dump(top);
1995 elm_object_tree_dot_dump(const Evas_Object *top,
1999 FILE *f = fopen(file, "wb");
2000 elm_widget_tree_dot_dump(top, f);
2010 elm_longpress_timeout_set(double longpress_timeout)
2012 _elm_config->longpress_timeout = longpress_timeout;
2016 elm_longpress_timeout_get(void)
2018 return _elm_config->longpress_timeout;
2022 elm_object_item_widget_get(const Elm_Object_Item *it)
2028 elm_object_item_content_part_set(Elm_Object_Item *it,
2030 Evas_Object *content)
2032 _elm_widget_item_content_part_set((Elm_Widget_Item *) it, part, content);
2036 elm_object_item_part_content_set(Elm_Object_Item *it,
2038 Evas_Object *content)
2040 _elm_widget_item_content_part_set((Elm_Widget_Item *) it, part, content);
2044 elm_object_item_content_part_get(const Elm_Object_Item *it,
2047 return _elm_widget_item_content_part_get((Elm_Widget_Item *) it, part);
2051 elm_object_item_part_content_get(const Elm_Object_Item *it,
2054 return _elm_widget_item_content_part_get((Elm_Widget_Item *) it, part);
2058 elm_object_item_content_part_unset(Elm_Object_Item *it, const char *part)
2060 return _elm_widget_item_content_part_unset((Elm_Widget_Item *) it, part);
2064 elm_object_item_part_content_unset(Elm_Object_Item *it, const char *part)
2066 return _elm_widget_item_content_part_unset((Elm_Widget_Item *) it, part);
2070 elm_object_item_text_part_set(Elm_Object_Item *it,
2074 _elm_widget_item_text_part_set((Elm_Widget_Item *) it, part, label);
2078 elm_object_item_part_text_set(Elm_Object_Item *it,
2082 _elm_widget_item_text_part_set((Elm_Widget_Item *) it, part, label);
2086 elm_object_item_text_part_get(const Elm_Object_Item *it, const char *part)
2088 return _elm_widget_item_text_part_get((Elm_Widget_Item *) it, part);
2092 elm_object_item_part_text_get(const Elm_Object_Item *it, const char *part)
2094 return _elm_widget_item_text_part_get((Elm_Widget_Item *) it, part);
2098 elm_object_access_info_set(Evas_Object *obj, const char *txt)
2100 elm_widget_access_info_set(obj, txt);
2104 elm_object_name_find(const Evas_Object *obj, const char *name, int recurse)
2106 return elm_widget_name_find(obj, name, recurse);
2110 elm_object_item_access_info_set(Elm_Object_Item *it, const char *txt)
2112 _elm_widget_item_access_info_set((Elm_Widget_Item *) it, txt);
2116 elm_object_item_data_get(const Elm_Object_Item *it)
2118 return elm_widget_item_data_get(it);
2122 elm_object_item_data_set(Elm_Object_Item *it, void *data)
2124 elm_widget_item_data_set(it, data);
2128 elm_object_item_signal_emit(Elm_Object_Item *it, const char *emission, const char *source)
2130 _elm_widget_item_signal_emit((Elm_Widget_Item *) it, emission, source);
2133 EAPI void elm_object_item_disabled_set(Elm_Object_Item *it, Eina_Bool disabled)
2135 _elm_widget_item_disabled_set((Elm_Widget_Item *) it, disabled);
2138 EAPI Eina_Bool elm_object_item_disabled_get(const Elm_Object_Item *it)
2140 return _elm_widget_item_disabled_get((Elm_Widget_Item *) it);
2143 EAPI void elm_object_item_del_cb_set(Elm_Object_Item *it, Evas_Smart_Cb del_cb)
2145 _elm_widget_item_del_cb_set((Elm_Widget_Item *) it, del_cb);
2148 EAPI void elm_object_item_del(Elm_Object_Item *it)
2150 _elm_widget_item_del((Elm_Widget_Item *) it);
2154 elm_object_item_tooltip_text_set(Elm_Object_Item *item, const char *text)
2156 elm_widget_item_tooltip_text_set(item, text);
2160 elm_object_item_tooltip_content_cb_set(Elm_Object_Item *item, Elm_Tooltip_Item_Content_Cb func, const void *data, Evas_Smart_Cb del_cb)
2162 elm_widget_item_tooltip_content_cb_set(item, func, data, del_cb);
2166 elm_object_item_tooltip_unset(Elm_Object_Item *item)
2168 elm_widget_item_tooltip_unset(item);
2172 elm_object_item_tooltip_window_mode_set(Elm_Object_Item *item, Eina_Bool disable)
2174 return elm_widget_item_tooltip_window_mode_set(item, disable);
2178 elm_object_item_tooltip_window_mode_get(const Elm_Object_Item *item)
2180 return elm_widget_item_tooltip_window_mode_get(item);
2184 elm_object_item_tooltip_style_set(Elm_Object_Item *item, const char *style)
2186 elm_widget_item_tooltip_style_set(item, style);
2190 elm_object_item_tooltip_style_get(const Elm_Object_Item *item)
2192 return elm_widget_item_tooltip_style_get(item);
2195 EINA_DEPRECATED EAPI Evas_Object *
2196 elm_object_item_object_get(const Elm_Object_Item *it)
2198 return elm_object_item_widget_get(it);
2202 elm_object_item_cursor_set(Elm_Object_Item *item, const char *cursor)
2204 elm_widget_item_tooltip_style_set(item, cursor);
2208 elm_object_item_cursor_get(const Elm_Object_Item *item)
2210 return elm_widget_item_cursor_get(item);
2214 elm_object_item_cursor_unset(Elm_Object_Item *item)
2216 elm_widget_item_cursor_unset(item);
2220 elm_object_item_cursor_style_set(Elm_Object_Item *item, const char *style)
2222 elm_widget_item_cursor_style_set(item, style);
2226 elm_object_item_cursor_style_get(const Elm_Object_Item *item)
2228 return elm_widget_item_cursor_style_get(item);
2232 elm_object_item_cursor_engine_only_set(Elm_Object_Item *item, Eina_Bool engine_only)
2234 elm_widget_item_cursor_engine_only_set(item, engine_only);
2238 elm_object_item_cursor_engine_only_get(const Elm_Object_Item *item)
2240 return elm_widget_item_cursor_engine_only_get(item);