static Evas_Object * _basic_create_widgets (E_Config_Dialog * cfd, Evas * evas, E_Config_Dialog_Data * cfdata) { Evas_Object *o, *of, *ob, *hostname_entry, *port_entry; o = e_widget_list_add (evas, 0, 0); of = e_widget_frametable_add (evas, D_ ("Configuration"), 1); ob = e_widget_label_add (evas, D_ ("Poll Time:")); e_widget_frametable_object_append (of, ob, 0, 0, 1, 1, 1, 0, 1, 0); ob = e_widget_slider_add (evas, 1, 0, D_ ("%1.0f seconds"), 1, 60, 1, 0, NULL, &(cfdata->poll_time), 100); e_widget_frametable_object_append (of, ob, 0, 1, 1, 1, 1, 0, 1, 0); ob = e_widget_label_add (evas, D_ ("Hostname:")); e_widget_frametable_object_append (of, ob, 0, 2, 1, 1, 1, 0, 1, 0); hostname_entry = e_widget_entry_add (evas, &cfdata->hostname, NULL, NULL, NULL); e_widget_size_min_set (hostname_entry, 150, 1); e_widget_frametable_object_append (of, hostname_entry, 0, 3, 1, 1, 1, 0, 1, 0); ob = e_widget_label_add (evas, D_ ("Port:")); e_widget_frametable_object_append (of, ob, 0, 4, 1, 1, 1, 0, 1, 0); port_entry = e_widget_entry_add (evas, &cfdata->port, NULL, NULL, NULL); e_widget_size_min_set (hostname_entry, 150, 1); e_widget_frametable_object_append (of, port_entry, 0, 5, 1, 1, 1, 0, 1, 0); e_widget_list_object_append (o, of, 1, 1, 0.5); ob = e_widget_check_add(evas, D_("Show Popup"), &(cfdata->show_popup)); e_widget_frametable_object_append(of, ob, 0, 6, 1, 1, 1, 0, 1, 0); return o; }
EAPI void e_widget_button_icon_set(Evas_Object *obj, Evas_Object *icon) { E_Widget_Data *wd; int mw, mh; wd = e_widget_data_get(obj); if (wd->o_icon) { e_widget_sub_object_del(obj, wd->o_icon); evas_object_hide(wd->o_icon); edje_object_part_unswallow(wd->o_button, wd->o_icon); evas_object_del(wd->o_icon); wd->o_icon = NULL; } if (icon) { wd->o_icon = icon; edje_object_part_swallow(wd->o_button, "e.swallow.icon", icon); evas_object_pass_events_set(icon, 1); evas_object_show(icon); e_widget_sub_object_add(obj, icon); wd->type |= E_WIDGET_BUTTON_ICON; } else wd->type = ~(wd->type & E_WIDGET_BUTTON_ICON); _e_wid_button_state_send(wd); edje_object_size_min_calc(wd->o_button, &mw, &mh); e_widget_size_min_set(obj, mw, mh); }
/* externally accessible functions */ EAPI Evas_Object * e_widget_frametable_add(Evas *evas, const char *label, int homogenous) { 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 = calloc(1, sizeof(E_Widget_Data)); e_widget_data_set(obj, wd); o = edje_object_add(evas); wd->o_frame = o; e_theme_edje_object_set(o, "base/theme/widgets", "e/widgets/frame"); edje_object_part_text_set(o, "e.text.label", label); evas_object_show(o); e_widget_sub_object_add(obj, o); e_widget_resize_object_set(obj, o); o = e_table_add(evas); wd->o_table = o; e_table_homogenous_set(o, homogenous); edje_object_part_swallow(wd->o_frame, "e.swallow.content", o); e_widget_sub_object_add(obj, o); evas_object_show(o); edje_object_size_min_calc(wd->o_frame, &mw, &mh); e_widget_size_min_set(obj, mw, mh); return obj; }
/* E_API int wizard_page_init(E_Wizard_Page *pg EINA_UNUSED, Eina_Bool *need_xdg_desktops EINA_UNUSED, Eina_Bool *need_xdg_icons EINA_UNUSED) { return 1; } E_API int wizard_page_shutdown(E_Wizard_Page *pg EINA_UNUSED) { return 1; } */ E_API int wizard_page_show(E_Wizard_Page *pg) { Evas_Object *o, *of, *ob; o = e_widget_list_add(pg->evas, 1, 0); e_wizard_title_set(_("Taskbar")); of = e_widget_framelist_add(pg->evas, _("Information"), 0); ob = e_widget_textblock_add(pg->evas); e_widget_size_min_set(ob, 260 * e_scale, 200 * e_scale); e_widget_textblock_markup_set (ob, _("A taskbar can be added to<br>" "show open windows and applications." ) ); e_widget_framelist_object_append(of, ob); ob = e_widget_check_add(pg->evas, _("Enable Taskbar"), &(do_tasks)); e_widget_framelist_object_append(of, ob); e_widget_list_object_append(o, of, 0, 0, 0.5); evas_object_show(of); e_wizard_page_show(o); return 1; /* 1 == show ui, and wait for user, 0 == just continue */ }
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); }
/* externally accessible functions */ EAPI Evas_Object * e_widget_label_add(Evas *evas, const char *label) { Evas_Object *obj, *o; Evas_Coord mw, mh; E_Widget_Data *wd; 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 = calloc(1, sizeof(E_Widget_Data)); e_widget_data_set(obj, wd); o = edje_object_add(evas); e_theme_edje_object_set(o, "base/theme/widgets", "e/widgets/label"); wd->text = o; edje_object_part_text_set(o, "e.text.label", label); evas_object_show(o); edje_object_size_min_calc(o, &mw, &mh); e_widget_can_focus_set(obj, 0); e_widget_size_min_set(obj, mw, mh); e_widget_sub_object_add(obj, o); e_widget_resize_object_set(obj, o); return obj; }
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); }
/* externally accessible functions */ EAPI Evas_Object * e_widget_slider_add(Evas *evas, int horiz, int rev, const char *fmt, double min, double max, double step, int count, double *dval, int *ival, Evas_Coord size) { 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_focus_hook_set(obj, _e_wid_focus_hook); e_widget_disable_hook_set(obj, _e_wid_disable_hook); wd = calloc(1, sizeof(E_Widget_Data)); e_widget_data_set(obj, wd); wd->o_widget = obj; o = e_slider_add(evas); wd->o_slider = o; evas_object_show(o); e_widget_sub_object_add(obj, o); e_widget_resize_object_set(obj, o); evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_DOWN, _e_wid_focus_steal, obj); e_slider_orientation_set(o, horiz); e_slider_direction_set(o, rev); e_slider_value_range_set(o, min, max); e_slider_value_format_display_set(o, fmt); e_slider_value_step_count_set(o, count); e_slider_value_step_size_set(o, step); if (dval) e_slider_value_set(o, *dval); else if (ival) e_slider_value_set(o, *ival); e_slider_size_min_get(o, &mw, &mh); if (horiz) e_widget_size_min_set(obj, mw + size, mh); else e_widget_size_min_set(obj, mw, mh + size); wd->dval = dval; wd->ival = ival; evas_object_smart_callback_add(o, "changed", _e_wid_cb_changed, wd); return obj; }
Evas_Object * e_widget_spectrum_add(Evas *evas, E_Color_Component mode, E_Color *cv) { 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_focus_hook_set(obj, _e_wid_focus_hook); e_widget_disable_hook_set(obj, _e_wid_disable_hook); wd = calloc(1, sizeof(E_Widget_Data)); e_widget_data_set(obj, wd); wd->cv = cv; wd->mode = mode; o = edje_object_add(evas); wd->o_edje = o; e_theme_edje_object_set(o, "base/theme/widgets", "e/widgets/spectrum"); evas_object_show(o); edje_object_size_min_calc(o, &mw, &mh); e_widget_size_min_set(obj, mw, mh); e_widget_sub_object_add(obj, o); evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_DOWN, _e_wid_focus_steal, obj); e_widget_resize_object_set(obj, o); evas_object_intercept_resize_callback_add(o, _e_wid_resize, wd); evas_object_intercept_move_callback_add(o, _e_wid_move, wd); o = e_spectrum_add(evas); e_spectrum_color_value_set(o, cv); e_spectrum_mode_set(o, mode); e_widget_sub_object_add(obj, o); evas_object_show(o); wd->o_spectrum = o; edje_object_part_swallow(wd->o_edje, "e.swallow.content", o); o = evas_object_rectangle_add(evas); evas_object_repeat_events_set(o, EINA_TRUE); evas_object_color_set(o, 0, 0, 0, 0); e_widget_sub_object_add(obj, o); evas_object_show(o); evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_DOWN, _e_wid_cb_down, obj); evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_MOVE, _e_wid_cb_move, obj); evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_UP, _e_wid_cb_up, obj); wd->o_event = o; e_widget_spectrum_update(obj, 0); return obj; }
/** * Creates a new entry widget * * @param evas the evas where to add the new entry widget * @param text_location the location where to store the text of the entry. * @param func DOCUMENT ME! * @param data DOCUMENT ME! * @param data2 DOCUMENT ME! * The current value will be used to initialize the entry * @return Returns the new entry widget */ EAPI Evas_Object * e_widget_entry_add(Evas *evas, char **text_location, void (*func)(void *data, void *data2), void *data, void *data2) { Evas_Object *obj, *o; E_Widget_Data *wd; Evas_Coord minw, minh; obj = e_widget_add(evas); e_widget_del_hook_set(obj, _e_wid_del_hook); e_widget_focus_hook_set(obj, _e_wid_focus_hook); e_widget_disable_hook_set(obj, _e_wid_disable_hook); wd = calloc(1, sizeof(E_Widget_Data)); e_widget_data_set(obj, wd); wd->text_location = text_location; o = e_entry_add(evas); wd->o_entry = o; e_widget_sub_object_add(obj, o); e_widget_resize_object_set(obj, o); evas_object_show(o); evas_object_event_callback_add(o, EVAS_CALLBACK_KEY_DOWN, _e_wid_keydown, obj); evas_object_event_callback_add(o, EVAS_CALLBACK_MOVE, _e_wid_movresz, obj); evas_object_event_callback_add(o, EVAS_CALLBACK_RESIZE, _e_wid_movresz, obj); o = evas_object_rectangle_add(evas); wd->o_inout = o; evas_object_repeat_events_set(o, EINA_TRUE); evas_object_color_set(o, 0, 0, 0, 0); e_widget_sub_object_add(obj, o); evas_object_smart_member_add(o, obj); evas_object_show(o); evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_DOWN, _e_wid_focus_steal, obj); evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_IN, _e_wid_in, obj); evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_OUT, _e_wid_out, obj); o = wd->o_entry; if ((text_location) && (*text_location)) e_entry_text_set(o, *text_location); e_entry_size_min_get(o, &minw, &minh); e_widget_size_min_set(obj, minw, minh); evas_object_size_hint_min_set(obj, minw, minh); wd->func = func; wd->data = data; wd->data2 = data2; evas_object_smart_callback_add(o, "changed", _e_wid_changed_cb, obj); return obj; }
/* externally accessible functions */ EAPI Evas_Object * e_widget_button_add(Evas *evas, const char *label, const char *icon, void (*func) (void *data, void *data2), void *data, void *data2) { 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_focus_hook_set(obj, _e_wid_focus_hook); e_widget_activate_hook_set(obj, _e_wid_activate_hook); e_widget_disable_hook_set(obj, _e_wid_disable_hook); wd = calloc(1, sizeof(E_Widget_Data)); wd->func = func; wd->data = data; wd->data2 = data2; e_widget_data_set(obj, wd); o = edje_object_add(evas); wd->o_button = o; e_theme_edje_object_set(o, "base/theme/widgets", "e/widgets/button"); edje_object_signal_callback_add(o, "e,action,click", "", _e_wid_signal_cb1, obj); if ((label) && (label[0] != 0)) { edje_object_part_text_set(o, "e.text.label", label); wd->type |= E_WIDGET_BUTTON_TEXT; } e_widget_sub_object_add(obj, o); evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_DOWN, _e_wid_focus_steal, obj); e_widget_resize_object_set(obj, o); evas_object_show(o); if (icon) { o = e_icon_add(evas); wd->o_icon = o; e_util_icon_theme_set(o, icon); edje_object_part_swallow(wd->o_button, "e.swallow.icon", o); e_widget_sub_object_add(obj, o); evas_object_show(o); wd->type |= E_WIDGET_BUTTON_ICON; } _e_wid_button_state_send(wd); edje_object_size_min_calc(wd->o_button, &mw, &mh); e_widget_size_min_set(obj, mw, mh); return obj; }
E_API void e_widget_preview_vsize_set(Evas_Object *obj, Evas_Coord w, Evas_Coord h) { E_Widget_Data *wd; wd = e_widget_data_get(obj); e_livethumb_vsize_set(wd->img, w, h); e_widget_size_min_set(wd->obj, w, h); evas_object_smart_callback_call(wd->obj, "preview_update", NULL); e_widget_change(wd->obj); }
/** * Changes the text for the label * * @param the label widget * @param text to assign to the widget */ EAPI void e_widget_label_text_set(Evas_Object *obj, const char *text) { E_Widget_Data *wd; Evas_Coord mw, mh; wd = e_widget_data_get(obj); edje_object_part_text_set(wd->text, "e.text.label", text); edje_object_size_min_calc(wd->text, &mw, &mh); edje_extern_object_min_size_set(wd->text, mw, mh); e_widget_size_min_set(obj, mw, mh); }
E_API void e_widget_preview_size_set(Evas_Object *obj, int minw, int minh) { E_Widget_Data *wd; int mw, mh; wd = e_widget_data_get(obj); e_livethumb_vsize_set(wd->img, minw * 2, minh * 2); evas_object_size_hint_min_set(wd->img, minw, minh); edje_object_size_min_calc(wd->o_frame, &mw, &mh); e_widget_size_min_set(obj, mw, mh); }
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); }
EAPI void e_widget_button_label_set(Evas_Object *obj, const char *label) { E_Widget_Data *wd; int mw, mh; wd = e_widget_data_get(obj); edje_object_part_text_set(wd->o_button, "e.text.label", label); if ((label) && (label[0] != 0)) wd->type |= E_WIDGET_BUTTON_TEXT; else wd->type = ~(wd->type & E_WIDGET_BUTTON_TEXT); _e_wid_button_state_send(wd); edje_object_size_min_calc(wd->o_button, &mw, &mh); e_widget_size_min_set(obj, mw, mh); }
static Evas_Object * _basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata) { Evas_Object *o, *of, *ob; E_Radio_Group *dg; char buf[4096]; o = e_widget_list_add(evas, 0, 0); of = e_widget_framelist_add(evas, D_("Display Settings"), 0); ob = e_widget_label_add(evas, D_("Poll Time")); e_widget_framelist_object_append(of, ob); ob = e_widget_slider_add(evas, 1, 0, D_("%2.0f minutes"), 15.0, 60.0, 1.0, 0, &(cfdata->poll_time), NULL, 40); e_widget_framelist_object_append(of, ob); ob = e_widget_check_add(evas, D_("Show Description"), &(cfdata->show_text)); e_widget_framelist_object_append(of, ob); ob = e_widget_check_add(evas, D_("Popup on mouse over"), &(cfdata->popup_on_hover)); e_widget_framelist_object_append(of, ob); e_widget_list_object_append(o, of, 1, 1, 0.5); of = e_widget_framelist_add(evas, D_("Unit Settings"), 0); dg = e_widget_radio_group_new(&(cfdata->degrees)); ob = e_widget_radio_add(evas, D_("Celsius"), DEGREES_C, dg); e_widget_framelist_object_append(of, ob); ob = e_widget_radio_add(evas, D_("Fahrenheit"), DEGREES_F, dg); e_widget_framelist_object_append(of, ob); e_widget_list_object_append(o, of, 1, 1, 0.5); of = e_widget_frametable_add(evas, D_("Weather.com Forecasts Code"), 0); ob = e_widget_label_add(evas, D_("Forecasts Code/US Zip Code")); e_widget_frametable_object_append(of, ob, 0, 0, 1, 1, 1, 0, 1, 0); ob = e_widget_entry_add(evas, &cfdata->code, NULL, NULL, NULL); e_widget_size_min_set(ob, 100, 20); e_widget_frametable_object_append(of, ob, 1, 0, 1, 1, 1, 0, 1, 0); ob = e_widget_label_add(evas, D_("To find the code for your area, go to:")); e_widget_frametable_object_append(of, ob, 0, 1, 1, 1, 1, 0, 1, 0); snprintf(buf, sizeof(buf), D_("%s, find your area, and look at the URL"), "http://www.weather.com"); ob = e_widget_label_add(evas, buf); e_widget_frametable_object_append(of, ob, 0, 2, 2, 1, 1, 0, 1, 0); e_widget_list_object_append(o, of, 1, 1, 0.5); return o; }
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); }
EAPI void e_widget_frametable_object_append_full(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 align_x, double align_y, Evas_Coord min_w, Evas_Coord min_h, Evas_Coord max_w, Evas_Coord max_h) { E_Widget_Data *wd = e_widget_data_get(obj); Evas_Coord mw = 0, mh = 0; e_table_pack(wd->o_table, sobj, col, row, colspan, rowspan); e_table_pack_options_set(sobj, fill_w, fill_h, expand_w, expand_h, align_x, align_y, min_w, min_h, max_w, max_h ); 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); }
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); }
/* externally accessible functions */ EAPI Evas_Object * e_widget_preview_add(Evas *evas, int minw, int minh) { Evas_Object *obj; E_Widget_Data *wd; Evas_Coord mw, mh; obj = e_widget_add(evas); e_widget_del_hook_set(obj, _e_wid_del_hook); wd = E_NEW(E_Widget_Data, 1); if (!wd) return NULL; wd->obj = obj; wd->o_frame = edje_object_add(evas); e_theme_edje_object_set(wd->o_frame, "base/theme/widgets", "e/widgets/preview"); evas_object_show(wd->o_frame); e_widget_sub_object_add(obj, wd->o_frame); e_widget_resize_object_set(obj, wd->o_frame); wd->img = e_livethumb_add(evas); e_livethumb_vsize_set(wd->img, minw * 2, minh * 2); edje_extern_object_min_size_set(wd->img, minw, minh); /* Why do we set max size? This prevents from being nicely resized. */ /* edje_extern_object_max_size_set(o, minw, minh); */ // evas_object_show(wd->img); edje_object_part_swallow(wd->o_frame, "e.swallow.content", wd->img); e_widget_sub_object_add(obj, wd->img); e_widget_data_set(obj, wd); e_widget_can_focus_set(obj, 0); edje_object_size_min_calc(wd->o_frame, &mw, &mh); e_widget_size_min_set(obj, mw, mh); return obj; }
/* externally accessible functions */ EAPI Evas_Object * e_widget_font_preview_add(Evas *evas, const char *text) { Evas_Object *obj, *o; E_Widget_Data *wd; obj = e_widget_add(evas); e_widget_del_hook_set(obj, _e_wid_del_hook); wd = calloc(1, sizeof(E_Widget_Data)); e_widget_data_set(obj, wd); /* Add Scrollpane */ o = e_scrollframe_add(evas); wd->o_scrollframe = o; e_scrollframe_policy_set(o, E_SCROLLFRAME_POLICY_OFF, E_SCROLLFRAME_POLICY_OFF); evas_object_show(o); e_widget_sub_object_add(obj, o); e_widget_resize_object_set(obj, o); evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_DOWN, _e_wid_focus_steal, obj); /* Add Text */ o = edje_object_add(evas); wd->o_text = o; e_theme_edje_object_set(o, "base/theme/widgets", "e/widgets/fontpreview"); evas_object_event_callback_add(wd->o_scrollframe, EVAS_CALLBACK_RESIZE, _e_wid_cb_scrollframe_resize, wd); e_scrollframe_child_set(wd->o_scrollframe, o); e_widget_sub_object_add(obj, o); evas_object_show(o); edje_object_part_text_set(wd->o_text, "e.fontpreview.text", text); evas_object_resize(obj, 40, 40); e_widget_size_min_set(obj, 40, 40); return obj; }
static Evas_Object * _basic_create_widgets (E_Config_Dialog * cfd, Evas * evas, E_Config_Dialog_Data * cfdata) { Evas_Object *o, *of, *ob, *player_entry; o = e_widget_list_add (evas, 0, 0); of = e_widget_frametable_add (evas, D_ ("Configuration"), 1); ob = e_widget_label_add (evas, D_ ("Player:")); e_widget_frametable_object_append (of, ob, 0, 0, 1, 1, 1, 0, 1, 0); player_entry = e_widget_entry_add (evas, &cfdata->player, NULL, NULL, NULL); e_widget_frametable_object_append (of, player_entry, 0, 1, 1, 1, 1, 0, 1, 0); e_widget_size_min_set (player_entry, 150, 1); ob = e_widget_check_add(evas, D_("Show Popup:"), &(cfdata->show_popup)); e_widget_frametable_object_append(of, ob, 0, 4, 1, 1, 1, 0, 1, 0); e_widget_list_object_append (o, of, 1, 1, 0.5); return o; }
/** * Creates a check box widget * * @param evas pointer * @param label the text to asign to check widget * @param val pointer to int where changes are stored * @return the newly created evas object */ EAPI Evas_Object * e_widget_check_add(Evas *evas, const char *label, int *val) { 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_focus_hook_set(obj, _e_wid_focus_hook); e_widget_activate_hook_set(obj, _e_wid_activate_hook); e_widget_disable_hook_set(obj, _e_wid_disable_hook); wd = calloc(1, sizeof(E_Widget_Data)); wd->valptr = val; e_widget_data_set(obj, wd); o = edje_object_add(evas); wd->o_check = o; e_theme_edje_object_set(o, "base/theme/widgets", "e/widgets/check"); edje_object_signal_callback_add(o, "e,action,toggle", "*", _e_wid_signal_cb1, obj); edje_object_part_text_set(o, "e.text.label", label); evas_object_show(o); edje_object_size_min_calc(o, &mw, &mh); e_widget_size_min_set(obj, mw, mh); if (wd->valptr) { if (*(wd->valptr)) edje_object_signal_emit(o, "e,state,checked", "e"); } e_widget_sub_object_add(obj, o); evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_DOWN, _e_wid_focus_steal, obj); e_widget_resize_object_set(obj, o); return obj; }
static Evas_Object * _basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata) { Evas_Object *o, *ob, *ol; Population *pop; pop = cfd->data; o = e_widget_list_add(evas, 0, 0); ob = e_widget_label_add(evas, D_("Number of penguins:")); e_widget_list_object_append(o, ob, 1, 1, 0.5); ob = e_widget_slider_add(evas, 1, 0, D_("%1.0f"), 1, 200, 1, 0, NULL, &(cfdata->penguins_count), 200); e_widget_list_object_append(o, ob, 1, 1, 0.5); ob = e_widget_label_add(evas, D_("Zoom factor:")); e_widget_list_object_append(o, ob, 1, 1, 0.5); ob = e_widget_slider_add(evas, 1, 0, D_("%1.1f X"), 0.2, 3, 0.2, 0, &(cfdata->zoom), NULL, 200); e_widget_list_object_append(o, ob, 1, 1, 0.5); ob = e_widget_label_add(evas, D_("Transparency:")); e_widget_list_object_append(o, ob, 1, 1, 0.5); ob = e_widget_slider_add(evas, 1, 0, D_("%1.0f"), 50, 255, 1, 0, NULL, &(cfdata->alpha), 200); e_widget_list_object_append(o, ob, 1, 1, 0.5); //Lista ob = e_widget_label_add(evas, D_("Select population:")); e_widget_list_object_append(o, ob, 1, 1, 0.5); ol = e_widget_ilist_add(evas, 24, 24, &(cfdata->theme)); e_widget_ilist_clear(ol); Eina_List *l; int count; l = pop->themes; count = 0; while (l) { char *theme; char *name; Evas_Object *oi; theme = l->data; name = edje_file_data_get(theme, "PopulationName"); if (name) { oi = edje_object_add(evas); edje_object_file_set(oi, theme, "icon"); //printf("TEMA: %s (%s)\n", name, cfdata->theme); e_widget_ilist_append(ol, oi, name, NULL, theme, theme); if (strcmp(theme, cfdata->theme) == 0) { e_widget_ilist_selected_set(ol, count); } count++; } l = eina_list_next(l); } e_widget_ilist_go(ol); e_widget_size_min_set(ol, 155, 250); e_widget_list_object_append(o, ol, 1, 1, 0.5); return o; }
/** * Creates a check box widget with icon * * @param evas pointer * @param label the text to asign to check widget * @param icon the path to the icon file * @param icon_w the minimum wdith of the icon * @param icon_h the minumum height of the icon * @param val pointer to int where changes are stored * @return the newly created evas object */ EAPI Evas_Object * e_widget_check_icon_add(Evas *evas, const char *label, const char *icon, int icon_w, int icon_h, int *val) { Evas_Object *obj, *o, *o2; 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_focus_hook_set(obj, _e_wid_focus_hook); e_widget_activate_hook_set(obj, _e_wid_activate_hook); e_widget_disable_hook_set(obj, _e_wid_disable_hook); wd = calloc(1, sizeof(E_Widget_Data)); wd->valptr = val; e_widget_data_set(obj, wd); o = edje_object_add(evas); wd->o_check = o; e_theme_edje_object_set(o, "base/theme/widgets", "e/widgets/check_icon"); edje_object_signal_callback_add(o, "e,action,toggle", "*", _e_wid_signal_cb1, obj); edje_object_part_text_set(o, "e.text.label", label); evas_object_show(o); if (label) { edje_object_signal_emit(o, "e,state,labeled", "e"); edje_object_message_signal_process(o); } if (icon) { if (icon[0] == '/') { o2 = e_icon_add(evas); e_icon_file_set(o2, icon); } else { o2 = edje_object_add(evas); e_util_edje_icon_set(o2, icon); } evas_object_size_hint_min_set(o2, icon_w, icon_h); edje_object_part_swallow(wd->o_check, "e.swallow.icon", o2); evas_object_show(o2); e_widget_sub_object_add(obj, o2); wd->o_icon = o2; } edje_object_size_min_calc(o, &mw, &mh); e_widget_size_min_set(obj, mw, mh); if (wd->valptr) { if (*(wd->valptr)) edje_object_signal_emit(o, "e,state,checked", "e"); } e_widget_sub_object_add(obj, o); evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_DOWN, _e_wid_focus_steal, obj); e_widget_resize_object_set(obj, o); return obj; }
EAPI Evas_Object * e_widget_flist_add(Evas *evas) { Evas_Object *obj, *o; E_Widget_Data *wd; wd = E_NEW(E_Widget_Data, 1); if (!wd) return NULL; obj = e_widget_add(evas); e_widget_del_hook_set(obj, _e_wid_del_hook); e_widget_focus_hook_set(obj, _e_wid_focus_hook); e_widget_data_set(obj, wd); o = e_scrollframe_add(evas); wd->o_scroll = o; evas_object_show(o); e_widget_sub_object_add(obj, o); e_widget_resize_object_set(obj, o); evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_DOWN, _e_wid_focus_steal, obj); o = e_fm2_add(evas); wd->o_fm = o; memset(&wd->fmc, 0, sizeof(E_Fm2_Config)); wd->fmc.view.mode = E_FM2_VIEW_MODE_LIST; wd->fmc.view.open_dirs_in_place = 1; wd->fmc.view.selector = 1; wd->fmc.view.single_click = 0; wd->fmc.view.no_subdir_jump = 0; wd->fmc.icon.list.w = 48; wd->fmc.icon.list.h = 48; wd->fmc.icon.fixed.w = 1; wd->fmc.icon.fixed.h = 1; wd->fmc.icon.extension.show = 0; wd->fmc.icon.key_hint = NULL; wd->fmc.list.sort.no_case = 1; wd->fmc.list.sort.dirs.first = 0; wd->fmc.list.sort.dirs.last = 0; wd->fmc.selection.single = 1; wd->fmc.selection.windows_modifiers = 0; e_fm2_config_set(wd->o_fm, &wd->fmc); e_fm2_icon_menu_flags_set(wd->o_fm, E_FM2_MENU_NO_SHOW_HIDDEN); evas_object_smart_callback_add(wd->o_fm, "dir_changed", _e_wid_cb_dir_changed, obj); evas_object_smart_callback_add(wd->o_fm, "selection_change", _e_wid_cb_selected, obj); evas_object_smart_callback_add(wd->o_fm, "changed", _e_wid_cb_changed, obj); evas_object_smart_callback_add(wd->o_fm, "files_deleted", _e_wid_cb_file_deleted, obj); e_scrollframe_key_navigation_set(wd->o_scroll, EINA_FALSE); e_scrollframe_extern_pan_set(wd->o_scroll, o, e_fm2_pan_set, e_fm2_pan_get, e_fm2_pan_max_get, e_fm2_pan_child_size_get); e_widget_sub_object_add(obj, o); evas_object_show(o); evas_object_smart_callback_add(o, "selected", _e_wid_cb_selected, obj); evas_object_resize(obj, 32, 32); e_widget_size_min_set(obj, 32, 32); return obj; }
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); }
/* EAPI int wizard_page_init(E_Wizard_Page *pg __UNUSED__, Eina_Bool *need_xdg_desktops __UNUSED__, Eina_Bool *need_xdg_icons __UNUSED__) { return 1; } EAPI int wizard_page_shutdown(E_Wizard_Page *pg __UNUSED__) { return 1; } */ EAPI int wizard_page_show(E_Wizard_Page *pg) { Evas_Object *o, *of, *ob; Ecore_Evas *ee; Ecore_X_Window_Attributes att; if (!ecore_x_composite_query()) return 0; if (!ecore_x_damage_query()) return 0; memset((&att), 0, sizeof(Ecore_X_Window_Attributes)); ecore_x_window_attributes_get(ecore_x_window_root_first_get(), &att); if ((att.depth <= 8)) return 0; ee = ecore_evas_gl_x11_new(NULL, 0, 0, 0, 320, 240); if (ee) { ecore_evas_free(ee); if ( (match_xorg_log("*(II)*NVIDIA*: Creating default Display*")) || (match_xorg_log("*(II)*intel*: Creating default Display*")) || (match_xorg_log("*(II)*NOUVEAU*: Creating default Display*")) || (match_xorg_log("*(II)*RADEON*: Creating default Display*")) ) { do_gl = 1; do_vsync = 1; } } o = e_widget_list_add(pg->evas, 1, 0); e_wizard_title_set(_("Compositing")); of = e_widget_framelist_add(pg->evas, _("Transparent windows and effects"), 0); ob = e_widget_textblock_add(pg->evas); e_widget_size_min_set(ob, 260 * e_scale, 200 * e_scale); e_widget_textblock_markup_set (ob, _("Compositing provides translucency<br>" "for windows, window effects like<br>" "fading in and out and zooming<br>" "when they appear and dissapear.<br>" "It is highly recommended to<br>" "enable this for a better<br>" "experience, but it comes at a<br>" "cost. It requires extra CPU<br>" "or a GLSL Shader capable GPU<br>" "with well written drivers.<br>" "It also will add between 10 to<br>" "100 MB to the memory needed<br>" "for Enlightenment." ) ); e_widget_framelist_object_append(of, ob); ob = e_widget_check_add(pg->evas, _("Enable Compositing"), &(do_comp)); e_widget_framelist_object_append(of, ob); if (ecore_evas_engine_type_supported_get(ECORE_EVAS_ENGINE_OPENGL_X11)) { ob = e_widget_check_add(pg->evas, _("Hardware Accelerated (OpenGL)"), &(do_gl)); e_widget_framelist_object_append(of, ob); ob = e_widget_check_add(pg->evas, _("Tear-free Rendering (OpenGL only)"), &(do_vsync)); e_widget_framelist_object_append(of, ob); } e_widget_list_object_append(o, of, 0, 0, 0.5); evas_object_show(of); e_wizard_page_show(o); // pg->data = o; return 1; /* 1 == show ui, and wait for user, 0 == just continue */ }