/* Externally accesible functions */ EAPI E_Entry_Dialog * e_entry_dialog_show(const char *title, const char *icon, const char *text, const char *initial_text, const char *button_text, const char *button2_text, void (*ok_func)(void *data, char *text), void (*cancel_func)(void *data), void *data) { E_Entry_Dialog *ed; E_Dialog *dia; Evas_Object *o, *ob; Evas_Modifier_Mask mask; int w, h; ed = E_OBJECT_ALLOC(E_Entry_Dialog, E_ENTRY_DIALOG_TYPE, _e_entry_dialog_free); ed->ok.func = ok_func; ed->ok.data = data; ed->cancel.func = cancel_func; ed->cancel.data = data; if (initial_text) ed->text = strdup(initial_text); dia = e_dialog_new(e_container_current_get(e_manager_current_get()), "E", "_entry_dialog"); if (!dia) { e_object_del(E_OBJECT(ed)); return NULL; } dia->data = ed; ed->dia = dia; mask = 0; evas_object_key_ungrab(dia->event_object, "space", mask, ~mask); e_object_del_attach_func_set(E_OBJECT(dia), _e_entry_dia_del); e_win_delete_callback_set(dia->win, _e_entry_dialog_delete); if (title) e_dialog_title_set(dia, title); if (icon) e_dialog_icon_set(dia, icon, 64); o = e_widget_list_add(dia->win->evas, 0, 0); if (text) { ob = e_widget_label_add(dia->win->evas, text); e_widget_list_object_append(o, ob, 1, 0, 0.5); } ed->entry = e_widget_entry_add(dia->win->evas, &(ed->text), NULL, NULL, NULL); evas_object_smart_callback_add(ed->entry, "key_down", _e_entry_cb_key_down, ed); e_widget_list_object_append(o, ed->entry, 1, 1, 0.5); e_widget_size_min_get(o, &w, &h); e_dialog_content_set(dia, o, w, h); e_dialog_button_add(dia, !button_text ? _("OK") : button_text, NULL, _e_entry_dialog_ok, ed); e_dialog_button_add(dia, !button2_text ? _("Cancel") : button2_text, NULL, _e_entry_dialog_cancel, ed); e_win_centered_set(dia->win, 1); e_dialog_show(dia); e_widget_focus_set(ed->entry, 1); e_editable_select_all(e_widget_entry_editable_object_get(ed->entry)); return ed; }
EAPI void e_widget_frametable_object_append(Evas_Object *obj, Evas_Object *sobj, int col, int row, int colspan, int rowspan, int fill_w, int fill_h, int expand_w, int expand_h) { E_Widget_Data *wd; Evas_Coord mw = 0, mh = 0; wd = e_widget_data_get(obj); e_table_pack(wd->o_table, sobj, col, row, colspan, rowspan); e_widget_size_min_get(sobj, &mw, &mh); e_table_pack_options_set(sobj, fill_w, fill_h, /* fill */ expand_w, expand_h, /* expand */ 0.5, 0.5, /* align */ mw, mh, /* min */ 99999, 99999 /* max */ ); e_table_size_min_get(wd->o_table, &mw, &mh); edje_extern_object_min_size_set(wd->o_table, mw, mh); edje_object_part_swallow(wd->o_frame, "e.swallow.content", wd->o_table); edje_object_size_min_calc(wd->o_frame, &mw, &mh); e_widget_size_min_set(obj, mw, mh); e_widget_sub_object_add(obj, sobj); evas_object_show(sobj); }
void news_config_dialog_item_content_refresh_selected_feeds(News_Item *ni) { E_Config_Dialog_Data *cfdata; Evas_Object *ilist; int pos, iw, ih; if (!ni->config_dialog_content) return; cfdata = ni->config_dialog_content->cfdata; ilist = cfdata->ilist_selected_feeds; e_widget_ilist_freeze(ilist); /* disable the callback until we finish to refresh the list */ e_widget_on_change_hook_set(ilist, NULL, NULL); e_widget_ilist_clear(ilist); if (cfdata->button_rem) { e_widget_disabled_set(cfdata->button_rem, 1); e_widget_disabled_set(cfdata->button_up, 1); e_widget_disabled_set(cfdata->button_down, 1); } cfdata->ilist_selected_feeds_inrefresh = 1; pos = -1; NEWS_ITEM_FEEDS_FOREACH_BEG(ni); { Evas_Object *ic = NULL; char buf[1024]; if (_feed->icon && _feed->icon[0]) { ic = e_icon_add(evas_object_evas_get(ilist)); e_icon_file_set(ic, _feed->icon); } snprintf(buf, sizeof(buf), "%s%s", (_feed->important) ? "[i] " : "", _feed->name); e_widget_ilist_append(ilist, ic, buf, NULL, _feed, NULL); pos++; if (eina_list_data_find(cfdata->ilist_selected_feeds_sel, _feed)) e_widget_ilist_multi_select(ilist, pos); } NEWS_ITEM_FEEDS_FOREACH_END(); cfdata->ilist_selected_feeds_inrefresh = 0; e_widget_size_min_get(ilist, &iw, &ih); if (iw < 200) iw = 200; e_widget_size_min_set(ilist, iw, 250); e_widget_ilist_go(ilist); e_widget_ilist_thaw(ilist); _cb_selected_feed_change(cfdata, NULL); /* restore the callback */ e_widget_on_change_hook_set(ilist, _cb_selected_feed_change, cfdata); }
EAPI void e_widget_config_list_object_append(Evas_Object *obj, Evas_Object *sobj, int col, int row, int colspan, int rowspan, int fill_w, int fill_h, int expand_w, int expand_h) { E_Widget_Data *wd; Evas_Coord mw, mh; wd = e_widget_data_get(obj); e_widget_table_object_append(wd->gui.table, sobj, col, row, colspan, rowspan, fill_w, fill_h, expand_w, expand_h); e_widget_size_min_get(wd->gui.table, &mw, &mh); e_widget_size_min_set(obj, mw, mh); }
static void _fill_zone_config(E_Zone *zone, E_Config_Dialog_Data *cfdata) { E_Radio_Group *rg; Evas *evas = cfdata->evas; int i; /* Clear old entries first */ evas_object_del(cfdata->o_desklist); cfdata->o_desklist = e_widget_list_add(evas, 1, 0); e_scrollframe_child_set(e_widget_scrollframe_object_get(cfdata->o_deskscroll), cfdata->o_desklist); e_widget_sub_object_add(cfdata->o_deskscroll, cfdata->o_desklist); for (i = 0; i < zone->desk_y_count * zone->desk_x_count; i++) { E_Desk *desk = zone->desks[i]; if (!desk) continue; struct _E_Config_vdesk *vd = get_vdesk(cfdata, desk->x, desk->y, zone->num); if (!vd) { vd = malloc(sizeof(struct _E_Config_vdesk)); vd->x = desk->x; vd->y = desk->y; vd->zone_num = zone->num; vd->layout = TILE_NONE; cfdata->vdesks = eina_list_append(cfdata->vdesks, vd); } rg = e_widget_radio_group_new(&(vd->layout)); Evas_Object *radiolist = e_widget_list_add(evas, 0, 1); LIST_ADD(radiolist, e_widget_label_add(evas, desk->name)); LIST_ADD(radiolist, RADIO("None", TILE_NONE, rg)); LIST_ADD(radiolist, RADIO("Bigmain", TILE_BIGMAIN, rg)); LIST_ADD(radiolist, RADIO("Grid", TILE_GRID, rg)); LIST_ADD(cfdata->o_desklist, radiolist); } /* Get the correct sizes of desklist and scrollframe */ int mw, mh; e_widget_size_min_get(cfdata->o_desklist, &mw, &mh); evas_object_resize(cfdata->o_desklist, mw, mh); if (mh > 150) mh = 150; mw += 32; mh += 32; e_widget_size_min_set(cfdata->o_deskscroll, mw, mh); }
static void _e_gadcon_popup_size_recalc(E_Gadcon_Popup *pop, Evas_Object *obj) { Evas_Coord w = 0, h = 0; e_widget_size_min_get(obj, &w, &h); if ((!w) || (!h)) evas_object_size_hint_min_get(obj, &w, &h); if ((!w) || (!h)) { edje_object_size_min_get(obj, &w, &h); edje_object_size_min_restricted_calc(obj, &w, &h, w, h); } edje_extern_object_min_size_set(obj, w, h); edje_object_size_min_calc(pop->o_bg, &pop->w, &pop->h); evas_object_resize(pop->o_bg, pop->w, pop->h); if (pop->win->visible) _e_gadcon_popup_position(pop); }
EAPI void e_widget_table_object_repack(Evas_Object *obj, Evas_Object *sobj, int col, int row, int colspan, int rowspan, int fill_w, int fill_h, int expand_w, int expand_h) { E_Widget_Data *wd; Evas_Coord mw = 0, mh = 0; wd = e_widget_data_get(obj); e_table_unpack(sobj); e_table_pack(wd->o_table, sobj, col, row, colspan, rowspan); e_widget_size_min_get(sobj, &mw, &mh); e_table_pack_options_set(sobj, fill_w, fill_h, /* fill */ expand_w, expand_h, /* expand */ 0.5, 0.5, /* align */ mw, mh, /* min */ 99999, 99999 /* max */ ); e_table_size_min_get(wd->o_table, &mw, &mh); e_widget_size_min_set(obj, mw, mh); }
/** * Create a color selector dialog. * * @param c compositor to display on * @param color color to initialize to (or NULL for black). * @param alpha_enabled if set, uses alpha and let user edit it. */ E_Color_Dialog * e_color_dialog_new(E_Comp *c, const E_Color *color, Eina_Bool alpha_enabled) { E_Color_Dialog *dia; Evas_Object *o; Evas_Coord mw, mh; dia = E_OBJECT_ALLOC(E_Color_Dialog, E_COLOR_DIALOG_TYPE, _e_color_dialog_free); if (!dia) return NULL; dia->dia = e_dialog_new(c, "E", "_color_dialog"); e_dialog_title_set(dia->dia, _("Color Selector")); dia->color = calloc(1, sizeof(E_Color)); dia->initial = calloc(1, sizeof(E_Color)); if (color) e_color_copy(color, dia->color); if ((!color) || (!alpha_enabled)) dia->color->a = 255; e_color_copy(dia->color, dia->initial); o = e_widget_csel_add(dia->dia->win->evas, dia->color, alpha_enabled); evas_object_show(o); e_widget_size_min_get(o, &mw, &mh); e_dialog_content_set(dia->dia, o, mw, mh); e_widget_on_change_hook_set(o, _e_color_dialog_cb_csel_change, dia); /* buttons at the bottom */ e_dialog_button_add(dia->dia, _("Select"), NULL, _e_color_dialog_button1_click, dia); e_dialog_button_add(dia->dia, _("Cancel"), NULL, _e_color_dialog_button2_click, dia); e_win_centered_set(dia->dia->win, 1); dia->dia->data = dia; e_object_del_attach_func_set(E_OBJECT(dia->dia), _e_color_dialog_dia_del); return dia; }
EAPI void e_widget_table_object_align_append(Evas_Object *obj, Evas_Object *sobj, int col, int row, int colspan, int rowspan, int fill_w, int fill_h, int expand_w, int expand_h, double ax, double ay) { E_Widget_Data *wd; Evas_Coord mw = 0, mh = 0; wd = e_widget_data_get(obj); e_table_pack(wd->o_table, sobj, col, row, colspan, rowspan); e_widget_size_min_get(sobj, &mw, &mh); e_table_pack_options_set(sobj, fill_w, fill_h, /* fill */ expand_w, expand_h, /* expand */ ax, ay, /* align */ mw, mh, /* min */ 99999, 99999 /* max */ ); e_table_size_min_get(wd->o_table, &mw, &mh); e_widget_size_min_set(obj, mw, mh); e_widget_sub_object_add(obj, sobj); evas_object_show(sobj); }
static void _alarm_snooze(Alarm *al) { E_Dialog *dia; Evas_Object *o, *ob; Evas *evas; char buf[4096]; int w, h; if (al->snooze.dia) return; dia = e_dialog_new(e_container_current_get(e_manager_current_get()), "Alarm", "_e_modules_alarm_snooze_dialog"); if (!dia) return; evas = e_win_evas_get(dia->win); snprintf(buf, sizeof(buf), D_("Snooze %s"), al->name); e_dialog_title_set(dia, buf); o = e_widget_list_add(evas, 0, 0); ob = e_widget_slider_add(evas, 1, 0, D_("%1.0f hours"), 0.0, 24.0, 1.0, 0, NULL, &(al->snooze.hour), 100); e_widget_list_object_append(o, ob, 0, 0, 1.0); ob = e_widget_slider_add(evas, 1, 0, D_("%1.0f minutes"), 0.0, 60.0, 1.0, 0, NULL, &(al->snooze.minute), 100); e_widget_list_object_append(o, ob, 0, 0, 1.0); e_widget_size_min_get(o, &w, &h); e_dialog_content_set(dia, o, w, h); e_dialog_button_add(dia, D_("Ok"), NULL, _alarm_cb_dialog_snooze_ok, al); e_dialog_button_add(dia, D_("Close"), NULL, _alarm_cb_dialog_snooze_cancel, al); al->snooze.dia = dia; e_win_centered_set(dia->win, 1); e_dialog_show(dia); }
static void _forecasts_popup_content_create(Instance *inst) { Evas_Object *o, *ol, *of, *ob, *oi; Evas *evas; char buf[4096]; int row = 0, i; Evas_Coord w, h, mw, mh; if (!inst->location) return; inst->popup = e_gadcon_popup_new(inst->gcc); evas = inst->popup->win->evas; o = e_widget_list_add(evas, 0, 0); snprintf(buf, sizeof(buf), D_("%s: Current Conditions"), inst->location); of = e_widget_frametable_add(evas, buf, 0); snprintf(buf, sizeof(buf), "%s: %d°%c", inst->condition.desc, inst->condition.temp, inst->units.temp); ob = e_widget_label_add(evas, buf); e_widget_frametable_object_append(of, ob, 0, row, 2, 1, 0, 1, 1, 0); oi = _forecasts_popup_icon_create(inst->popup->win->evas, inst->condition.code); edje_object_size_max_get(oi, &w, &h); DEBUG("Icon size %dx%d", w, h); if (w > 160) w = 160; /* For now there is a limit to how big the icon should be */ if (h > 160) h = 160; /* In the future, the icon should be set from the theme, not part of the table */ ob = e_widget_image_add_from_object(evas, oi, w, h); e_widget_frametable_object_append(of, ob, 2, row, 1, 2, 1, 0, 1, 1); ob = e_widget_label_add(evas, D_("Wind Chill")); e_widget_frametable_object_append(of, ob, 0, ++row, 1, 1, 1, 0, 0, 0); snprintf(buf, sizeof(buf), "%d°%c", inst->details.wind.chill, inst->units.temp); ob = e_widget_label_add(evas, buf); e_widget_frametable_object_append(of, ob, 1, row, 1, 1, 1, 0, 0, 0); ob = e_widget_label_add(evas, D_("Wind Speed")); e_widget_frametable_object_append(of, ob, 0, ++row, 1, 1, 1, 0, 0, 0); snprintf(buf, sizeof(buf), "%d %s", inst->details.wind.speed, inst->units.speed); ob = e_widget_label_add(evas, buf); e_widget_frametable_object_append(of, ob, 1, row, 1, 1, 1, 0, 0, 0); ob = e_widget_label_add(evas, D_("Humidity")); e_widget_frametable_object_append(of, ob, 0, ++row, 1, 1, 1, 0, 0, 0); snprintf(buf, sizeof(buf), "%d %%", inst->details.atmosphere.humidity); ob = e_widget_label_add(evas, buf); e_widget_frametable_object_append(of, ob, 1, row, 1, 1, 1, 0, 0, 0); ob = e_widget_label_add(evas, D_("Visibility")); e_widget_frametable_object_append(of, ob, 0, ++row, 1, 1, 1, 0, 0, 0); snprintf(buf, sizeof(buf), "%.2f %s", inst->details.atmosphere.visibility, inst->units.distance); ob = e_widget_label_add(evas, buf); e_widget_frametable_object_append(of, ob, 1, row, 1, 1, 1, 0, 0, 0); ob = e_widget_label_add(evas, D_("Pressure")); e_widget_frametable_object_append(of, ob, 0, ++row, 1, 1, 1, 0, 0, 0); snprintf(buf, sizeof(buf), "%.2f %s", inst->details.atmosphere.pressure, inst->units.pressure); ob = e_widget_label_add(evas, buf); e_widget_frametable_object_append(of, ob, 1, row, 1, 1, 1, 0, 0, 0); if (inst->details.atmosphere.rising == 1) snprintf(buf, sizeof(buf), D_("Rising")); else if (inst->details.atmosphere.rising == 2) snprintf(buf, sizeof(buf), D_("Falling")); else snprintf(buf, sizeof(buf), D_("Steady")); ob = e_widget_label_add(evas, buf); e_widget_frametable_object_append(of, ob, 2, row, 1, 1, 1, 0, 1, 0); ob = e_widget_label_add(evas, D_("Sunrise / Sunset")); e_widget_frametable_object_append(of, ob, 0, ++row, 1, 1, 1, 0, 0, 0); snprintf(buf, sizeof(buf), "%s", inst->details.astronomy.sunrise); ob = e_widget_label_add(evas, buf); e_widget_frametable_object_append(of, ob, 1, row, 1, 1, 1, 0, 1, 0); snprintf(buf, sizeof(buf), "%s", inst->details.astronomy.sunset); ob = e_widget_label_add(evas, buf); e_widget_frametable_object_append(of, ob, 2, row, 1, 1, 1, 0, 1, 0); e_widget_list_object_append(o, of, 1, 1, 0.5); ol = e_widget_list_add(evas, 1, 1); for (i = 0; i < inst->ci->days / 5; i++) { int row = 0; if (!i) snprintf(buf, sizeof(buf), D_("Today")); else if (i == 1) snprintf(buf, sizeof(buf), D_("Tomorrow")); else snprintf(buf, sizeof(buf), "%s", inst->forecast[i].date); of = e_widget_frametable_add(evas, buf, 0); ob = e_widget_label_add(evas, inst->forecast[i].desc); e_widget_frametable_object_append(of, ob, 0, row, 3, 1, 0, 1, 1, 1); ob = e_widget_label_add(evas, D_("High")); e_widget_frametable_object_append(of, ob, 0, ++row, 1, 1, 1, 0, 1, 0); snprintf(buf, sizeof(buf), "%d°%c", inst->forecast[i].high, inst->units.temp); ob = e_widget_label_add(evas, buf); e_widget_frametable_object_append(of, ob, 1, row, 1, 1, 1, 0, 1, 0); ob = e_widget_image_add_from_object(evas, _forecasts_popup_icon_create(inst->popup->win->evas, inst->forecast[i].code), 0, 0); e_widget_frametable_object_append(of, ob, 2, row, 1, 2, 1, 1, 0, 0); ob = e_widget_label_add(evas, D_("Low")); e_widget_frametable_object_append(of, ob, 0, ++row, 1, 1, 1, 0, 1, 0); snprintf(buf, sizeof(buf), "%d°%c", inst->forecast[i].low, inst->units.temp); ob = e_widget_label_add(evas, buf); e_widget_frametable_object_append(of, ob, 1, row, 1, 1, 1, 0, 1, 0); e_widget_list_object_append(ol, of, 1, 1, 0.5); } e_widget_list_object_append(o, ol, 1, 1, 0.5); e_widget_size_min_get(o, &mw, &mh); if ((double)mw / mh > GOLDEN_RATIO) mh = mw / GOLDEN_RATIO; else if ((double)mw / mh < GOLDEN_RATIO - (double)1) mw = mh * (GOLDEN_RATIO - (double)1); e_widget_size_min_set(o, mw, mh); e_gadcon_popup_content_set(inst->popup, o); }
void news_config_dialog_item_content_refresh_feeds(News_Item *ni) { E_Config_Dialog_Data *cfdata; Eina_List *l, *l2; Evas_Object *ilist; int pos; int iw, ih; if (!ni->config_dialog_content) return; cfdata = ni->config_dialog_content->cfdata; ilist = cfdata->ilist_feeds; e_widget_ilist_freeze(ilist); /* disable the callback until we finish to refresh the list */ e_widget_on_change_hook_set(ilist, NULL, NULL); e_widget_ilist_clear(ilist); if (cfdata->button_add) e_widget_disabled_set(cfdata->button_add, 1); pos = -1; for(l=news->config->feed.categories; l; l=eina_list_next(l)) { News_Feed_Category *cat; Evas_Object *iccat = NULL; cat = eina_list_data_get(l); if (!cat->feeds_visible) continue; if (cat->icon) { iccat = e_icon_add(evas_object_evas_get(ilist)); e_icon_file_set(iccat, cat->icon); } e_widget_ilist_header_append(ilist, iccat, cat->name); pos++; for(l2=cat->feeds_visible; l2; l2=eina_list_next(l2)) { Evas_Object *ic = NULL; News_Feed *f; char buf[1024]; f = eina_list_data_get(l2); if (f->icon && f->icon[0]) { ic = e_icon_add(evas_object_evas_get(ilist)); e_icon_file_set(ic, f->icon); } snprintf(buf, sizeof(buf), "%s%s", (f->important) ? "[i] " : "", f->name); e_widget_ilist_append(ilist, ic, buf, NULL, f, NULL); pos++; if (eina_list_data_find(cfdata->ilist_feeds_sel, f)) e_widget_ilist_multi_select(ilist, pos); } } e_widget_ilist_thaw(ilist); e_widget_size_min_get(ilist, &iw, &ih); if (iw < 200) iw = 200; e_widget_size_min_set(ilist, iw, 250); e_widget_ilist_go(ilist); _cb_feed_change(cfdata, NULL); /* restore the callback */ e_widget_on_change_hook_set(ilist, _cb_feed_change, cfdata); }
E_Win * e_int_config_theme_import(E_Config_Dialog *parent) { Evas *evas; E_Win *win; Evas_Object *o, *ofm; Import *import; E_Config_Dialog_Data *cfdata; Evas_Modifier_Mask mask; Evas_Coord w, h; Eina_Bool kg; import = E_NEW(Import, 1); if (!import) return NULL; win = e_win_new(parent->con); if (!win) { E_FREE(import); return NULL; } evas = e_win_evas_get(win); cfdata = E_NEW(E_Config_Dialog_Data, 1); import->cfdata = cfdata; import->win = win; import->parent = parent; e_win_title_set(win, _("Select a Theme...")); e_win_delete_callback_set(win, _theme_import_cb_delete); e_win_resize_callback_set(win, _theme_import_cb_resize); e_win_dialog_set(win, 1); e_win_name_class_set(win, "E", "_theme_import_dialog"); o = edje_object_add(evas); import->bg_obj = o; e_theme_edje_object_set(o, "base/theme/dialog", "e/widgets/dialog/main"); evas_object_move(o, 0, 0); evas_object_show(o); o = e_widget_list_add(evas, 1, 1); e_widget_on_focus_hook_set(o, _theme_import_cb_wid_focus, import); import->box_obj = o; edje_object_part_swallow(import->bg_obj, "e.swallow.buttons", o); o = evas_object_rectangle_add(evas); import->event_obj = o; mask = 0; kg = evas_object_key_grab(o, "Tab", mask, ~mask, 0); if (!kg) fprintf(stderr, "ERROR: Unable to redirect \"Tab\" key events to object %p.\n", o); mask = evas_key_modifier_mask_get(evas, "Shift"); kg = evas_object_key_grab(o, "Tab", mask, ~mask, 0); if (!kg) fprintf(stderr, "ERROR: unable to redirect \"Tab\" key events to object %p.\n", o); mask = 0; kg = evas_object_key_grab(o, "Return", mask, ~mask, 0); if (!kg) fprintf(stderr, "ERROR: unable to redirect \"Return\" key events to object %p.\n", o); mask = 0; kg = evas_object_key_grab(o, "KP_Enter", mask, ~mask, 0); if (!kg) fprintf(stderr, "ERROR: unable to redirect \"KP_Enter\" key events to object %p.\n", o); evas_object_event_callback_add(o, EVAS_CALLBACK_KEY_DOWN, _theme_import_cb_key_down, import); o = e_widget_list_add(evas, 0, 0); import->content_obj = o; ofm = e_widget_fsel_add(evas, e_user_homedir_get(), "/", NULL, NULL, _theme_import_cb_selected, import, _theme_import_cb_changed, import, 1); import->fsel_obj = ofm; e_widget_list_object_append(o, ofm, 1, 1, 0.5); e_widget_size_min_get(o, &w, &h); evas_object_size_hint_min_set(o, w, h); edje_object_part_swallow(import->bg_obj, "e.swallow.content", o); evas_object_show(o); import->ok_obj = e_widget_button_add(evas, _("OK"), NULL, _theme_import_cb_ok, win, cfdata); e_widget_list_object_append(import->box_obj, import->ok_obj, 1, 0, 0.5); import->cancel_obj = e_widget_button_add(evas, _("Cancel"), NULL, _theme_import_cb_close, win, cfdata); e_widget_list_object_append(import->box_obj, import->cancel_obj, 1, 0, 0.5); e_widget_disabled_set(import->ok_obj, 1); e_win_centered_set(win, 1); o = import->box_obj; e_widget_size_min_get(o, &w, &h); evas_object_size_hint_min_set(o, w, h); edje_object_part_swallow(import->bg_obj, "e.swallow.buttons", o); edje_object_size_min_calc(import->bg_obj, &w, &h); evas_object_resize(import->bg_obj, w, h); e_win_resize(win, w, h); e_win_size_min_set(win, w, h); e_win_size_max_set(win, 99999, 99999); e_win_show(win); e_win_border_icon_set(win, "preferences-desktop-theme"); win->data = import; return win; }
/* Externally accessible functions */ EAPI Evas_Object * e_widget_config_list_add(Evas *evas, Evas_Object * (*func_entry_add)(Evas * evas, char **val, void (*func)(void *data, void *data2), void *data, void *data2), const char *label, int listspan __UNUSED__) { Evas_Object *obj, *o; E_Widget_Data *wd; Evas_Coord mw, mh; obj = e_widget_add(evas); e_widget_del_hook_set(obj, _e_wid_del_hook); e_widget_disable_hook_set(obj, _e_wid_disable_hook); wd = E_NEW(E_Widget_Data, 1); e_widget_data_set(obj, wd); o = e_widget_table_add(evas, 0); wd->gui.table = o; e_widget_sub_object_add(obj, o); o = e_widget_label_add(evas, label); e_widget_table_object_append(wd->gui.table, o, 0, 1, 2, 1, 1, 0, 1, 0); o = func_entry_add(evas, &(wd->cur_entry), NULL, NULL, NULL); wd->gui.entry = o; e_widget_disabled_set(o, 1); e_widget_size_min_set(o, 100, 25); e_widget_table_object_append(wd->gui.table, o, 0, 2, 2, 1, 1, 0, 1, 0); o = e_widget_button_add(evas, _("Add"), "list-add", _button_cb_add, wd, obj); wd->gui.add = o; e_widget_disabled_set(o, 1); e_widget_table_object_append(wd->gui.table, o, 0, 3, 1, 1, 1, 0, 1, 0); o = e_widget_button_add(evas, _("Remove"), "list-remove", _button_cb_remove, wd, obj); wd->gui.remove = o; e_widget_disabled_set(o, 1); e_widget_table_object_append(wd->gui.table, o, 1, 3, 1, 1, 1, 0, 1, 0); o = e_widget_ilist_add(evas, 0, 0, NULL); wd->gui.list = o; e_widget_disabled_set(o, 1); e_widget_size_min_set(o, 80, 40); e_widget_on_change_hook_set(o, _list_cb_change, wd); e_widget_ilist_go(o); e_widget_table_object_append(wd->gui.table, o, 0, 4, 2, 1, 1, 1, 1, 1); o = e_widget_button_add(evas, _("Up"), "go-up", _button_cb_up, wd, NULL); wd->gui.up = o; e_widget_disabled_set(o, 1); e_widget_table_object_append(wd->gui.table, o, 0, 5, 1, 1, 1, 0, 1, 0); o = e_widget_button_add(evas, _("Down"), "go-down", _button_cb_down, wd, NULL); wd->gui.down = o; e_widget_disabled_set(o, 1); e_widget_table_object_append(wd->gui.table, o, 1, 5, 1, 1, 1, 0, 1, 0); e_widget_size_min_get(wd->gui.table, &mw, &mh); e_widget_size_min_set(obj, mw, mh); e_widget_resize_object_set(obj, wd->gui.table); return obj; }