static void _eco_match_click_cb(void *data) { Eco_Option *opt; int sel; const char *match; /* remember changes to the last selected item */ opt = eco_config_option_list_nth(cfg_screen, str_effects, selected); if (opt) opt->intValue = effect; opt = eco_config_option_list_nth(cfg_screen, str_durations, selected); if (opt) opt->intValue = duration; opt = eco_config_option_list_nth(cfg_screen, str_matches, selected); match = e_widget_ilist_nth_label_get(o_matches, selected); if (opt && match) { eco_string_free(opt->stringValue); opt->stringValue = eina_stringshare_add(match); } /* set stored values for selected match */ sel = e_widget_ilist_selected_get(o_matches); opt = eco_config_option_list_nth(cfg_screen, str_durations, sel); if (opt) { e_widget_slider_value_int_set(o_duration, opt->intValue); e_widget_disabled_set(o_duration, 0); } opt = eco_config_option_list_nth(cfg_screen, str_effects, sel); if (opt) { e_widget_radio_toggle_set(o_effect[opt->intValue], 1); } selected = sel; }
/* * Load the data for the XPlanet tab. * Currently there's only one config allowed, but this will * be increased in future. */ static void _populate_xplanet_page(E_Config_Dialog_Data *cfdata, int config_index) { Xplanet_Config *xplanet_config; char text_value[256]; xplanet_config = eina_list_nth(eplanet_conf->xplanet_configs, config_index); if (xplanet_config) { cfdata->local_xplanet.body = xplanet_config->body; cfdata->local_xplanet.origin = xplanet_config->origin; cfdata->local_xplanet.source_type = xplanet_config->source_type; cfdata->local_xplanet.projection = xplanet_config->projection; cfdata->local_xplanet.viewpos_type = xplanet_config->viewpos_type; cfdata->local_xplanet.viewpos_lat = xplanet_config->viewpos_lat; cfdata->local_xplanet.viewpos_lon = xplanet_config->viewpos_lon; cfdata->local_xplanet.use_localtime = xplanet_config->use_localtime; cfdata->local_xplanet.localtime = xplanet_config->localtime; cfdata->local_xplanet.viewpos_file = xplanet_config->viewpos_file; cfdata->local_xplanet.show_label = xplanet_config->show_label; cfdata->local_xplanet.label_text = xplanet_config->label_text; cfdata->local_xplanet.label_time = xplanet_config->label_time; cfdata->local_xplanet.label_pos = xplanet_config->label_pos; cfdata->local_xplanet.label_pos_other = xplanet_config->label_pos_other; cfdata->local_xplanet.use_config = xplanet_config->use_config; cfdata->local_xplanet.config_name = xplanet_config->config_name; cfdata->local_xplanet.extra_options = xplanet_config->extra_options; if (cfdata->local_xplanet.localtime > 23) cfdata->local_xplanet.localtime = 12; _fill_planet_ilist(cfdata->gui.o_body_ilist, cfdata->local_xplanet.body, _cb_target, cfdata, &(cfdata->body_item)); if (cfdata->local_xplanet.source_type == SOURCE_ORIGIN) { _fill_planet_ilist(cfdata->gui.o_source_ilist, cfdata->local_xplanet.origin, _cb_source, cfdata, &(cfdata->source_item)); e_widget_radio_toggle_set(cfdata->gui.o_origin_toggle, 1); e_widget_radio_toggle_set(cfdata->gui.o_projection_toggle, 0); } else { _fill_projection_ilist(cfdata->gui.o_source_ilist, cfdata->local_xplanet.projection, cfdata, &(cfdata->source_item)); e_widget_radio_toggle_set(cfdata->gui.o_origin_toggle, 0); e_widget_radio_toggle_set(cfdata->gui.o_projection_toggle, 1); } e_widget_radio_toggle_set(cfdata->gui.o_viewpos_latlon, (cfdata->local_xplanet.viewpos_type == VIEWPOS_LATLON)); e_widget_radio_toggle_set(cfdata->gui.o_viewpos_random, (cfdata->local_xplanet.viewpos_type == VIEWPOS_RANDOM)); e_widget_radio_toggle_set(cfdata->gui.o_viewpos_file, (cfdata->local_xplanet.viewpos_type == VIEWPOS_FILE)); sprintf(text_value, "%1g", cfdata->local_xplanet.viewpos_lat); e_widget_entry_text_set(cfdata->gui.o_viewpos_lat, text_value); sprintf(text_value, "%1g", cfdata->local_xplanet.viewpos_lon); e_widget_entry_text_set(cfdata->gui.o_viewpos_lon, text_value); sprintf(text_value, "%s", cfdata->local_xplanet.viewpos_file); e_widget_entry_text_set(cfdata->gui.o_viewpos_file_val, text_value); e_widget_check_checked_set(cfdata->gui.o_use_localtime, cfdata->local_xplanet.use_localtime); e_widget_slider_value_int_set(cfdata->gui.o_localtime, cfdata->local_xplanet.localtime); cfdata->gui.show_label = cfdata->local_xplanet.show_label; e_widget_check_checked_set(cfdata->gui.o_show_label, cfdata->gui.show_label); if (cfdata->local_xplanet.label_text) sprintf(text_value, "%s", cfdata->local_xplanet.label_text); else sprintf(text_value, "%s", ""); e_widget_entry_text_set(cfdata->gui.o_label_text, text_value); e_widget_radio_toggle_set(cfdata->gui.o_label_time_local_toggle, (cfdata->local_xplanet.label_time == LABEL_TIME_LOCAL)); e_widget_radio_toggle_set(cfdata->gui.o_label_time_gmt_toggle, (cfdata->local_xplanet.label_time == LABEL_TIME_GMT)); e_widget_radio_toggle_set(cfdata->gui.o_label_pos_tl_toggle, (cfdata->local_xplanet.label_pos == LABEL_POS_TL)); e_widget_radio_toggle_set(cfdata->gui.o_label_pos_tr_toggle, (cfdata->local_xplanet.label_pos == LABEL_POS_TR)); e_widget_radio_toggle_set(cfdata->gui.o_label_pos_bl_toggle, (cfdata->local_xplanet.label_pos == LABEL_POS_BL)); e_widget_radio_toggle_set(cfdata->gui.o_label_pos_br_toggle, (cfdata->local_xplanet.label_pos == LABEL_POS_BR)); e_widget_radio_toggle_set(cfdata->gui.o_label_pos_other_toggle, (cfdata->local_xplanet.label_pos == LABEL_POS_OTHER)); if (cfdata->local_xplanet.label_pos_other) sprintf(text_value, "%s", cfdata->local_xplanet.label_pos_other); else sprintf(text_value, "%s", ""); e_widget_entry_text_set(cfdata->gui.o_label_pos_other_text, text_value); e_widget_check_checked_set(cfdata->gui.o_config_check, cfdata->local_xplanet.use_config); if (cfdata->local_xplanet.config_name) sprintf(text_value, "%s", cfdata->local_xplanet.config_name); else sprintf(text_value, "%s", ""); e_widget_entry_text_set(cfdata->gui.o_config_name, text_value); if (cfdata->local_xplanet.extra_options) sprintf(text_value, "%s", cfdata->local_xplanet.extra_options); else sprintf(text_value, "%s", ""); e_widget_entry_text_set(cfdata->gui.o_extra_options, text_value); _cb_source_type(cfdata, NULL, NULL); _cb_show_label(cfdata, NULL, NULL); _cb_label_pos(cfdata, NULL, NULL); _cb_set_localtime(cfdata, NULL, NULL); } }
/* Page creation functions */ static void eco_config_animation_page(void *data) { int val = 0; int max = 6; selected = -1; ECO_PAGE_BEGIN("animation"); ECO_PAGE_TABLE(_("Window Match")); ECO_CREATE_LIST_MATCH(0, str_matches, 0, 0); /* to remember previously selected item */ if (e_widget_ilist_count(o_matches) > 0) selected = 0; ECO_PAGE_TABLE_END; ECO_PAGE_TABLE(_("Animation duration")); o = e_widget_label_add(cfdata->evas, _("Duration")); e_widget_frametable_object_append(ta, o, 0, 0, 1, 1, 1, 0, 0, 0); o_duration = e_widget_slider_add(cfdata->evas, 1, 0, "%1.0f ms", 50, 2000, 1.0, 0, NULL, &duration, 0); e_widget_disabled_set(o_duration, 1); \ e_widget_frametable_object_append(ta, o_duration, 1, 0, 1, 1, 1, 0, 1, 0); opt = eco_config_option_list_nth(cfg_screen, str_durations, 0); if (opt) { e_widget_slider_value_int_set(o_duration, opt->intValue); e_widget_disabled_set(o_duration, 0); } ECO_PAGE_TABLE_END; ECO_PAGE_TABLE( _("Animation for selected match")); opt = eco_config_option_list_nth(cfg_screen, str_effects, 0); if (opt) effect = opt->intValue; group = e_widget_radio_group_new(&effect); for (i = 0; i < effect_cnt; i++) { o_effect[i] = e_widget_radio_add(cfdata->evas, effect_names[i], i, group); e_widget_frametable_object_append(ta, o_effect[i], (i/max), (i%max), 1, 1, 1, 0, 1, 0); if (effect == i) e_widget_radio_toggle_set(o_effect[i], 1); } ECO_PAGE_TABLE_END; ECO_PAGE_TABLE( _("Animation random pool")); opt = eco_config_option_get(cfg_screen, str_randoms); for (i = 0; i < effect_cnt; i++) random_effect[i] = 0; for (l = opt->listValue; l; l = l->next) { item = l->data; random_effect[item->intValue] = 1; } for (i = 0; i < effect_cnt; i++) { o = e_widget_check_add(cfdata->evas, effect_names[i], &random_effect[i]); e_widget_frametable_object_append(ta, o, (i/max), (i%max), 1, 1, 1, 0, 1, 0); } ECO_PAGE_TABLE_END; ECO_PAGE_END; }
static Evas_Object * _advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata) { Evas_Object *o, *o2, *of, *of2, *ob; E_Radio_Group *rg; o = e_widget_table_add(evas, 0); o2 = e_widget_list_add(evas, 0, 0); of = e_widget_frametable_add(evas, D_("Feeds"), 0); ob = e_widget_label_add(evas, D_("Timer")); e_widget_frametable_object_append(of, ob, 0, 0, 1, 1, 1, 1, 1, 0); ob = e_widget_slider_add(evas, 1, 0, D_("%1.0f min"), (float)NEWS_FEED_TIMER_MIN, (float)NEWS_FEED_TIMER_MAX, 1.0, 0, NULL, &(cfdata->feed.timer_m), 70); e_widget_frametable_object_append(of, ob, 1, 0, 1, 1, 1, 1, 1, 0); ob = e_widget_check_add(evas, D_("Sort lists by name (disable Move action)"), &(cfdata->feed.sort_name)); e_widget_frametable_object_append(of, ob, 0, 1, 2, 1, 1, 1, 1, 0); e_widget_list_object_append(o2, of, 1, 1, 0.5); of = e_widget_framelist_add(evas, D_("Browser"), 0); ob = e_widget_label_add(evas, D_("Uses xdg-open script, from freedesktop.org")); e_widget_framelist_object_append(of, ob); e_widget_list_object_append(o2, of, 1, 1, 0.5); of = e_widget_frametable_add(evas, D_("Popup On News"), 0); rg = e_widget_radio_group_new(&(cfdata->popup_news.active)); ob = e_widget_radio_add(evas, D_("Never"), NEWS_FEED_POPUP_NEWS_ACTIVE_NO, rg); //TODO: NOT IMPLEMENTED YET e_widget_radio_toggle_set(ob, 0); e_widget_disabled_set(ob, 1); e_widget_frametable_object_append(of, ob, 0, 0, 1, 1, 1, 1, 1, 0); ob = e_widget_radio_add(evas, D_("Only on urgent feeds"), NEWS_FEED_POPUP_NEWS_ACTIVE_URGENT, rg); //TODO: NOT IMPLEMENTED YET e_widget_radio_toggle_set(ob, 0); e_widget_disabled_set(ob, 1); e_widget_frametable_object_append(of, ob, 1, 0, 1, 1, 1, 1, 1, 0); ob = e_widget_radio_add(evas, D_("On all feeds"), NEWS_FEED_POPUP_NEWS_ACTIVE_ALL, rg); //TODO: NOT IMPLEMENTED YET e_widget_radio_toggle_set(ob, 0); e_widget_disabled_set(ob, 1); e_widget_frametable_object_append(of, ob, 1, 1, 1, 1, 1, 1, 1, 0); ob = e_widget_label_add(evas, D_("Timer")); e_widget_frametable_object_append(of, ob, 0, 2, 1, 1, 1, 1, 1, 0); ob = e_widget_slider_add(evas, 1, 0, D_("%1.0f s"), (float)NEWS_POPUP_TIMER_S_MIN, (float)NEWS_POPUP_TIMER_S_MAX, 1.0, 0, NULL, &(cfdata->popup_news.timer_s), 70); e_widget_frametable_object_append(of, ob, 1, 2, 1, 1, 1, 1, 1, 0); e_widget_list_object_append(o2, of, 1, 1, 0.5); of = e_widget_frametable_add(evas, D_("Popup On Warning / Error"), 0); //TODO: NOT IMPLEMENTED YET news->config->popup_other.on_timeout = 0; cfdata->popup_other.on_timeout = 0; ob = e_widget_check_add(evas, D_("Show on timeout ?"), &(cfdata->popup_other.on_timeout)); //TODO: NOT IMPLEMENTED YET e_widget_disabled_set(ob, 1); e_widget_frametable_object_append(of, ob, 0, 0, 2, 1, 1, 0, 1, 0); ob = e_widget_label_add(evas, D_("Timer")); e_widget_frametable_object_append(of, ob, 0, 1, 1, 1, 1, 1, 1, 0); ob = e_widget_slider_add(evas, 1, 0, D_("%1.0f s"), (float)NEWS_POPUP_TIMER_S_MIN, (float)NEWS_POPUP_TIMER_S_MAX, 1.0, 0, NULL, &(cfdata->popup_other.timer_s), 70); e_widget_frametable_object_append(of, ob, 1, 1, 1, 1, 1, 1, 1, 0); e_widget_list_object_append(o2, of, 1, 1, 0.5); e_widget_table_object_append(o, o2, 0, 0, 1, 1, 1, 1, 1, 1); o2 = e_widget_list_add(evas, 0, 0); of = e_widget_frametable_add(evas, D_("News Viewer"), 0); ob = e_widget_check_add(evas, D_("Unread feeds first"), &(cfdata->viewer.vfeeds.unread_first)); e_widget_frametable_object_append(of, ob, 0, 0, 1, 1, 1, 0, 1, 0); ob = e_widget_check_add(evas, D_("Unread articles first"), &(cfdata->viewer.varticles.unread_first)); e_widget_frametable_object_append(of, ob, 1, 0, 1, 1, 1, 0, 1, 0); ob = e_widget_check_add(evas, D_("Sort articles by date"), &(cfdata->viewer.varticles.sort_date)); e_widget_frametable_object_append(of, ob, 1, 1, 1, 1, 1, 0, 1, 0); of2 = e_widget_frametable_add(evas, D_("Font"), 0); ob = e_widget_slider_add(evas, 1, 0, D_("%1.0f"), NEWS_VIEWER_VCONTENT_FONT_SIZE_MIN, NEWS_VIEWER_VCONTENT_FONT_SIZE_MAX, 1.0, 0, NULL, &(cfdata->viewer.vcontent.font_size), 70); e_widget_frametable_object_append(of2, ob, 0, 0, 1, 1, 1, 0, 1, 0); ob = e_widget_color_well_add(evas, cfdata->viewer.vcontent.font_color, 1); cfdata->color_viewer_font = ob; e_widget_on_change_hook_set(ob, _cb_color_viewer_font_change, cfdata); e_widget_frametable_object_append(of2, ob, 0, 1, 1, 1, 1, 0, 1, 0); ob = e_widget_check_add(evas, D_("Font Shadow"), &cfdata->viewer.vcontent.font_shadow); e_widget_frametable_object_append(of2, ob, 1, 0, 1, 1, 1, 0, 1, 0); ob = e_widget_color_well_add(evas, cfdata->viewer.vcontent.font_shadow_color, 1); cfdata->color_viewer_font_shadow = ob; e_widget_on_change_hook_set(ob, _cb_color_viewer_font_shadow_change, cfdata); e_widget_frametable_object_append(of2, ob, 1, 1, 1, 1, 1, 0, 1, 0); e_widget_frametable_object_append(of, of2, 0, 2, 2, 1, 1, 0, 1, 0); e_widget_list_object_append(o2, of, 1, 1, 0.0); of = e_widget_frametable_add(evas, D_("Proxy"), 0); ob = e_widget_check_add(evas, D_("Enable"), &(cfdata->proxy.enable)); e_widget_frametable_object_append(of, ob, 0, 0, 2, 1, 1, 0, 0, 0); ob = e_widget_label_add(evas, D_("Host")); e_widget_frametable_object_append(of, ob, 0, 1, 1, 1, 1, 0, 0, 0); ob = e_widget_entry_add(evas, &(cfdata->proxy.host), NULL, NULL, NULL); e_widget_frametable_object_append(of, ob, 1, 1, 1, 1, 1, 0, 1, 0); ob = e_widget_label_add(evas, D_("Port")); e_widget_frametable_object_append(of, ob, 0, 2, 1, 1, 1, 0, 0, 0); ob = e_widget_entry_add(evas, &(cfdata->proxy.port), NULL, NULL, NULL); e_widget_frametable_object_append(of, ob, 1, 2, 1, 1, 1, 0, 1, 0); e_widget_list_object_append(o2, of, 1, 1, 1.0); e_widget_table_object_append(o, o2, 1, 0, 1, 1, 1, 1, 1, 1); return o; }