3 #include "e_mod_main.h"
5 static const char *profile = NULL;
6 static Evas_Object *textblock = NULL;
9 _profile_change(void *data __UNUSED__, Evas_Object *obj __UNUSED__)
13 Efreet_Desktop *desk = NULL;
15 e_prefix_data_snprintf(buf, sizeof(buf), "data/config/%s", profile);
19 e_widget_textblock_markup_set(textblock, _("Unknown"));
22 snprintf(buf, sizeof(buf), "%s/profile.desktop", dir);
23 desk = efreet_desktop_new(buf);
25 e_widget_textblock_markup_set(textblock, desk->comment);
27 e_widget_textblock_markup_set(textblock, _("Unknown"));
28 if (desk) efreet_desktop_free(desk);
30 // enable next once you choose a profile
31 e_wizard_button_next_enable_set(1);
35 wizard_page_init(E_Wizard_Page *pg __UNUSED__)
41 wizard_page_shutdown(E_Wizard_Page *pg __UNUSED__)
47 wizard_page_show(E_Wizard_Page *pg)
49 Evas_Object *o, *of, *ob;
50 Eina_List *l, *profiles;
54 o = e_widget_list_add(pg->evas, 1, 0);
55 e_wizard_title_set(_("Profile"));
56 of = e_widget_framelist_add(pg->evas, _("Select one"), 0);
58 ob = e_widget_ilist_add(pg->evas, 32 * e_scale, 32 * e_scale, &profile);
59 e_widget_size_min_set(ob, 140 * e_scale, 70 * e_scale);
61 e_widget_on_change_hook_set(ob, _profile_change, NULL);
63 e_widget_ilist_freeze(ob);
65 profiles = e_config_profile_list();
66 for (i = 0, l = profiles; l; l = l->next, i++)
68 Efreet_Desktop *desk = NULL;
69 char buf[PATH_MAX], *prof;
70 const char *label, *dir;
74 if (e_config_profile_get())
76 if (!strcmp(prof, e_config_profile_get()))
82 e_prefix_data_snprintf(buf, sizeof(buf), "data/config/%s", prof);
83 // if it's not a system profile - don't offer it
84 if (!ecore_file_is_dir(buf))
95 snprintf(buf, sizeof(buf), "%s/profile.desktop", dir);
96 desk = efreet_desktop_new(buf);
98 if ((desk) && (desk->name)) label = desk->name;
99 snprintf(buf, sizeof(buf), "%s/icon.edj", dir);
100 if ((desk) && (desk->icon))
101 snprintf(buf, sizeof(buf), "%s/%s", dir, desk->icon);
103 e_prefix_data_concat_static(buf, "data/images/enlightenment.png");
104 ic = e_util_icon_add(buf, pg->evas);
105 e_widget_ilist_append(ob, ic, label, NULL, NULL, prof);
107 if (desk) efreet_desktop_free(desk);
109 if (profiles) eina_list_free(profiles);
111 e_widget_ilist_go(ob);
112 e_widget_ilist_thaw(ob);
114 e_widget_framelist_object_append(of, ob);
116 ob = e_widget_textblock_add(pg->evas);
117 e_widget_size_min_set(ob, 140 * e_scale, 70 * e_scale);
118 e_widget_textblock_markup_set(ob, _("Select a profile"));
121 e_widget_framelist_object_append(of, ob);
123 e_widget_list_object_append(o, of, 1, 1, 0.5);
125 if (sel >= 0) e_widget_ilist_selected_set(ilist, sel);
127 evas_object_show(ob);
128 evas_object_show(of);
129 e_wizard_page_show(o);
131 e_wizard_button_next_enable_set(0);
132 return 1; /* 1 == show ui, and wait for user, 0 == just continue */
136 wizard_page_hide(E_Wizard_Page *pg)
138 evas_object_del(pg->data);
139 // actually apply profile
140 if (e_config_profile_get())
143 if (e_user_dir_snprintf(buf, sizeof(buf), "config/%s",
144 e_config_profile_get()) >= sizeof(buf))
146 ecore_file_recursive_rm(buf);
148 if (!profile) profile = "standard";
149 e_config_profile_set(profile);
154 wizard_page_apply(E_Wizard_Page *pg __UNUSED__)
156 // no need. done in page_070's wizard_page_show()