#include "e.h" #include "e_int_config_theme.h" #include "e_int_config_theme_web.h" #ifdef HAVE_EXCHANGE #include typedef struct _Web Web; struct _Web { E_Config_Dialog *parent; E_Dialog *dia; }; #if 0 static void _web_pan_set(Evas_Object *obj, Evas_Coord x, Evas_Coord y) { Evas_Coord th, vh; evas_object_smart_callback_call(obj, "changed", NULL); evas_object_size_hint_min_get(obj, NULL, &th); evas_object_geometry_get(obj, NULL, NULL, NULL, &vh); if (y < 0) y = 0; if (y > th - vh) y = th - vh; exchange_smart_object_offset_set(obj, 0, y); } static void _web_pan_get(Evas_Object *obj, Evas_Coord *x, Evas_Coord *y) { if (!x || !y) return; exchange_smart_object_offset_get(obj, x, y); } static void _web_pan_max_get(Evas_Object *obj, Evas_Coord *x, Evas_Coord *y) { Evas_Coord tw, th, vw, vh; evas_object_size_hint_min_get(obj, &tw, &th); evas_object_geometry_get(obj, NULL, NULL, &vw, &vh); if (x) *x = tw - vw; if (y) *y = th - vh; } static void _web_pan_child_size_get(Evas_Object *obj, Evas_Coord *x, Evas_Coord *y) { Evas_Coord tw, th, vw, vh; evas_object_size_hint_min_get(obj, &tw, &th); evas_object_geometry_get(obj, NULL, NULL, &vw, &vh); if (x) *x = tw; if (y) *y = th; } void e_int_config_theme_web_del(E_Dialog *dia) { Web *web; web = dia->data; e_int_config_theme_web_done(web->parent); E_FREE(web); e_object_unref(E_OBJECT(dia)); } static void _web_del_cb(void *obj) { E_Dialog *dia = obj; e_int_config_theme_web_del(dia); } static void _web_close_cb(void *data, E_Dialog *dia) { e_int_config_theme_web_del(dia); } static void _web_apply(const char *path, void *data) { E_Action *a; E_Config_Theme *ct; ct = e_theme_config_get("theme"); if ((ct) && (!strcmp(ct->file, path))) return; e_theme_config_set("theme", path); e_config_save_queue(); a = e_action_find("restart"); if ((a) && (a->func.go)) a->func.go(NULL, NULL); } #endif E_Dialog * e_int_config_theme_web(E_Config_Dialog *parent) { #if 0 E_Dialog *dia; Web *web; Evas_Object *ol, *exsm, *sf; Evas_Coord mw, mh; E_Fm2_Config fmc; char usr_dir[PATH_MAX]; dia = e_dialog_new(parent->con, "E", "_theme_web_dialog"); if (!dia) return NULL; web = E_NEW(Web, 1); if (!web) return NULL; web->dia = dia; web->parent = parent; e_dialog_title_set(dia, _("Exchange themes")); e_dialog_border_icon_set(dia, "enlightenment/theme"); e_dialog_resizable_set(dia, 1); e_dialog_button_add(dia, _("Close"), NULL, _web_close_cb, web); dia->data = web; e_object_del_attach_func_set(E_OBJECT(dia), _web_del_cb); e_win_centered_set(dia->win, 1); ol = e_widget_list_add(e_win_evas_get(dia->win), 0, 1); // The Exchange Smart Object e_user_dir_concat_static(usr_dir, "themes"); exsm = exchange_smart_object_add(e_win_evas_get(dia->win)); exchange_smart_object_remote_group_set(exsm, "Border"); exchange_smart_object_local_path_set(exsm, usr_dir); exchange_smart_object_apply_cb_set(exsm, _web_apply, NULL); // The Scroll Frame sf = e_scrollframe_add(e_win_evas_get(dia->win)); e_scrollframe_extern_pan_set(sf, exsm, _web_pan_set, _web_pan_get, _web_pan_max_get, _web_pan_child_size_get); e_scrollframe_policy_set(sf, E_SCROLLFRAME_POLICY_OFF, E_SCROLLFRAME_POLICY_ON); e_scrollframe_thumbscroll_force(sf, 1); e_widget_list_object_append(ol, sf, 1, 1, 0.5); e_dialog_content_set(dia, ol, 500, 400); e_dialog_show(dia); exchange_smart_object_run(exsm); return dia; #endif return NULL; } #endif