⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 menu.c

📁 ELinks is an advanced and well-established feature-rich text mode web (HTTP/FTP/..) browser. ELinks
💻 C
📖 第 1 页 / 共 5 页
字号:
	TEXT(T_SOCKS_4A_PROXY__USER_HOST_PORT),	TEXT(T_ONLY_PROXIES),};#define N_N	3void proxy_fn(struct dialog_data *dlg){	struct terminal *term = dlg->win->term;	int max = 0, min = 0;	int w, rw;	int y = gf_val(-1, -G_BFU_FONT_SIZE);	if (dlg->win->term->spec->braille) y += gf_val(1, G_BFU_FONT_SIZE);	max_text_width(term, proxy_msg[0], &max, AL_LEFT);	min_text_width(term, proxy_msg[0], &min, AL_LEFT);	max_text_width(term, proxy_msg[1], &max, AL_LEFT);	min_text_width(term, proxy_msg[1], &min, AL_LEFT);	max_text_width(term, proxy_msg[2], &max, AL_LEFT);	min_text_width(term, proxy_msg[2], &min, AL_LEFT);	max_group_width(term, proxy_msg + N_N, dlg->items + N_N, dlg->n - 2 - N_N, &max);	min_group_width(term, proxy_msg + N_N, dlg->items + N_N, dlg->n - 2 - N_N, &min);	max_buttons_width(term, dlg->items + dlg->n - 2, 2, &max);	min_buttons_width(term, dlg->items + dlg->n - 2, 2, &min);	w = dlg->win->term->x * 9 / 10 - 2 * DIALOG_LB;	if (w > max) w = max;	if (w < min) w = min;	if (w > dlg->win->term->x - 2 * DIALOG_LB) w = dlg->win->term->x - 2 * DIALOG_LB;	if (w < 1) w = 1;	rw = 0;	dlg_format_text_and_field(dlg, NULL, proxy_msg[0], &dlg->items[0], 0, &y, w, &rw, COLOR_DIALOG_TEXT, AL_LEFT);	if (!dlg->win->term->spec->braille) y += gf_val(1, G_BFU_FONT_SIZE * 1);	dlg_format_text_and_field(dlg, NULL, proxy_msg[1], &dlg->items[1], 0, &y, w, &rw, COLOR_DIALOG_TEXT, AL_LEFT);	if (!dlg->win->term->spec->braille) y += gf_val(1, G_BFU_FONT_SIZE * 1);	dlg_format_text_and_field(dlg, NULL, proxy_msg[2], &dlg->items[2], 0, &y, w, &rw, COLOR_DIALOG_TEXT, AL_LEFT);	if (!dlg->win->term->spec->braille) y += gf_val(1, G_BFU_FONT_SIZE * 1);	dlg_format_group(dlg, NULL, proxy_msg + N_N, dlg->items + N_N, dlg->n - 2 - N_N, 0, &y, w, &rw);	y += gf_val(1, G_BFU_FONT_SIZE);	dlg_format_buttons(dlg, NULL, dlg->items + dlg->n - 2, 2, 0, &y, w, &rw, AL_CENTER);	w = rw;	dlg->xw = w + 2 * DIALOG_LB;	dlg->yw = y + 2 * DIALOG_TB;	center_dlg(dlg);	draw_dlg(dlg);	y = dlg->y + DIALOG_TB;	if (dlg->win->term->spec->braille) y += gf_val(1, G_BFU_FONT_SIZE);	dlg_format_text_and_field(dlg, term, proxy_msg[0], &dlg->items[0], dlg->x + DIALOG_LB, &y, w, NULL, COLOR_DIALOG_TEXT, AL_LEFT);	if (!dlg->win->term->spec->braille) y += gf_val(1, G_BFU_FONT_SIZE);	dlg_format_text_and_field(dlg, term, proxy_msg[1], &dlg->items[1], dlg->x + DIALOG_LB, &y, w, NULL, COLOR_DIALOG_TEXT, AL_LEFT);	if (!dlg->win->term->spec->braille) y += gf_val(1, G_BFU_FONT_SIZE);	dlg_format_text_and_field(dlg, term, proxy_msg[2], &dlg->items[2], dlg->x + DIALOG_LB, &y, w, NULL, COLOR_DIALOG_TEXT, AL_LEFT);	if (!dlg->win->term->spec->braille) y += gf_val(1, G_BFU_FONT_SIZE);	dlg_format_group(dlg, term, proxy_msg + N_N, &dlg->items[N_N], dlg->n - 2 - N_N, dlg->x + DIALOG_LB, &y, w, NULL);	y += gf_val(1, G_BFU_FONT_SIZE);	dlg_format_buttons(dlg, term, &dlg->items[dlg->n - 2], 2, dlg->x + DIALOG_LB, &y, w, NULL, AL_CENTER);}int dlg_proxy_options(struct dialog_data *dlg, struct dialog_item_data *di){	struct proxies *p = (struct proxies *)di->cdata;	struct dialog *d;	snprint(max_c_str, 3, max_connections);	snprint(max_cth_str, 3, max_connections_to_host);	snprint(max_t_str, 3, max_tries);	snprint(time_str, 5, receive_timeout);	snprint(unrtime_str, 5, unrestartable_receive_timeout);	d = mem_calloc(sizeof(struct dialog) + 7 * sizeof(struct dialog_item));	d->title = TEXT(T_PROXIES);	d->fn = proxy_fn;	d->refresh = (void (*)(void *))refresh_net;	d->items[0].type = D_FIELD;	d->items[0].dlen = MAX_STR_LEN;	d->items[0].data = p->http_proxy;	d->items[1].type = D_FIELD;	d->items[1].dlen = MAX_STR_LEN;	d->items[1].data = p->ftp_proxy;	d->items[2].type = D_FIELD;	d->items[2].dlen = MAX_STR_LEN;	d->items[2].data = p->socks_proxy;	d->items[3].type = D_CHECKBOX;	d->items[3].data = (unsigned char *)&p->only_proxies;	d->items[3].dlen = sizeof(int);	d->items[4].type = D_BUTTON;	d->items[4].gid = B_ENTER;	d->items[4].fn = ok_dialog;	d->items[4].text = TEXT(T_OK);	d->items[5].type = D_BUTTON;	d->items[5].gid = B_ESC;	d->items[5].fn = cancel_dialog;	d->items[5].text = TEXT(T_CANCEL);	d->items[6].type = D_END;	do_dialog(dlg->win->term, d, getml(d, NULL));	return 0;}unsigned char *net_msg[] = {	TEXT(T_MAX_CONNECTIONS),	TEXT(T_MAX_CONNECTIONS_TO_ONE_HOST),	TEXT(T_RETRIES),	TEXT(T_RECEIVE_TIMEOUT_SEC),	TEXT(T_TIMEOUT_WHEN_UNRESTARTABLE),	TEXT(T_ASYNC_DNS_LOOKUP),	TEXT(T_SET_TIME_OF_DOWNLOADED_FILES),	"",	"",	"",};void net_options(struct terminal *term, void *xxx, void *yyy){	struct dialog *d;	snprint(max_c_str, 3, max_connections);	snprint(max_cth_str, 3, max_connections_to_host);	snprint(max_t_str, 3, max_tries);	snprint(time_str, 5, receive_timeout);	snprint(unrtime_str, 5, unrestartable_receive_timeout);	d = mem_calloc(sizeof(struct dialog) + 12 * sizeof(struct dialog_item));	d->title = TEXT(T_NETWORK_OPTIONS);	d->fn = group_fn;	d->udata = net_msg;	d->refresh = (void (*)(void *))refresh_net;	d->items[0].type = D_FIELD;	d->items[0].data = max_c_str;	d->items[0].dlen = 3;	d->items[0].fn = check_number;	d->items[0].gid = 1;	d->items[0].gnum = 99;	d->items[1].type = D_FIELD;	d->items[1].data = max_cth_str;	d->items[1].dlen = 3;	d->items[1].fn = check_number;	d->items[1].gid = 1;	d->items[1].gnum = 99;	d->items[2].type = D_FIELD;	d->items[2].data = max_t_str;	d->items[2].dlen = 3;	d->items[2].fn = check_number;	d->items[2].gid = 0;	d->items[2].gnum = 16;	d->items[3].type = D_FIELD;	d->items[3].data = time_str;	d->items[3].dlen = 5;	d->items[3].fn = check_number;	d->items[3].gid = 1;	d->items[3].gnum = 1800;	d->items[4].type = D_FIELD;	d->items[4].data = unrtime_str;	d->items[4].dlen = 5;	d->items[4].fn = check_number;	d->items[4].gid = 1;	d->items[4].gnum = 1800;	d->items[5].type = D_CHECKBOX;	d->items[5].data = (unsigned char *)&async_lookup;	d->items[5].dlen = sizeof(int);	d->items[6].type = D_CHECKBOX;	d->items[6].data = (unsigned char *)&download_utime;	d->items[6].dlen = sizeof(int);	d->items[7].type = D_BUTTON;	d->items[7].gid = 0;	d->items[7].fn = dlg_proxy_options;	d->items[7].text = TEXT(T_PROXIES);	d->items[7].data = (unsigned char *)&proxies;	d->items[7].dlen = sizeof(struct proxies);	d->items[8].type = D_BUTTON;	d->items[8].gid = 0;	d->items[8].fn = dlg_http_options;	d->items[8].text = TEXT(T_HTTP_OPTIONS);	d->items[8].data = (unsigned char *)&http_bugs;	d->items[8].dlen = sizeof(struct http_bugs);	d->items[9].type = D_BUTTON;	d->items[9].gid = 0;	d->items[9].fn = dlg_ftp_options;	d->items[9].text = TEXT(T_FTP_OPTIONS);	d->items[9].data = (unsigned char *)&ftp_options;	d->items[9].dlen = sizeof(struct ftp_options);	d->items[10].type = D_BUTTON;	d->items[10].gid = B_ENTER;	d->items[10].fn = ok_dialog;	d->items[10].text = TEXT(T_OK);	d->items[11].type = D_BUTTON;	d->items[11].gid = B_ESC;	d->items[11].fn = cancel_dialog;	d->items[11].text = TEXT(T_CANCEL);	d->items[12].type = D_END;	do_dialog(term, d, getml(d, NULL));}#undef N_Nunsigned char *prg_msg[] = {	TEXT(T_MAILTO_PROG),	TEXT(T_TELNET_PROG),	TEXT(T_TN3270_PROG),	TEXT(T_MMS_PROG),	TEXT(T_SHELL_PROG),	""};void netprog_fn(struct dialog_data *dlg){	struct terminal *term = dlg->win->term;	int max = 0, min = 0;	int w, rw;	int y = gf_val(-1, -G_BFU_FONT_SIZE);	int a;	a=0;	max_text_width(term, prg_msg[a], &max, AL_LEFT);	min_text_width(term, prg_msg[a++], &min, AL_LEFT);	max_text_width(term, prg_msg[a], &max, AL_LEFT);	min_text_width(term, prg_msg[a++], &min, AL_LEFT);	max_text_width(term, prg_msg[a], &max, AL_LEFT);	min_text_width(term, prg_msg[a++], &min, AL_LEFT);	max_text_width(term, prg_msg[a], &max, AL_LEFT);	min_text_width(term, prg_msg[a++], &min, AL_LEFT);#ifdef G	if (F && drv->exec) {		max_text_width(term, prg_msg[a], &max, AL_LEFT);		min_text_width(term, prg_msg[a++], &min, AL_LEFT);	}#endif	max_buttons_width(term, dlg->items + a, 2, &max);	min_buttons_width(term, dlg->items + a, 2, &min);	w = dlg->win->term->x * 9 / 10 - 2 * DIALOG_LB;	if (w > max) w = max;	if (w < min) w = min;	if (w > dlg->win->term->x - 2 * DIALOG_LB) w = dlg->win->term->x - 2 * DIALOG_LB;	if (w < 1) w = 1;	rw = 0;	a=0;	if (term->spec->braille) y += gf_val(1, G_BFU_FONT_SIZE);	dlg_format_text_and_field(dlg, NULL, prg_msg[a], &dlg->items[a], 0, &y, w, &rw, COLOR_DIALOG_TEXT, AL_LEFT);	a++;	if (!term->spec->braille) y += gf_val(1, G_BFU_FONT_SIZE);	dlg_format_text_and_field(dlg, NULL, prg_msg[a], &dlg->items[a], 0, &y, w, &rw, COLOR_DIALOG_TEXT, AL_LEFT);	a++;	if (!term->spec->braille) y += gf_val(1, G_BFU_FONT_SIZE);	dlg_format_text_and_field(dlg, NULL, prg_msg[a], &dlg->items[a], 0, &y, w, &rw, COLOR_DIALOG_TEXT, AL_LEFT);	a++;	if (!term->spec->braille) y += gf_val(1, G_BFU_FONT_SIZE);	dlg_format_text_and_field(dlg, NULL, prg_msg[a], &dlg->items[a], 0, &y, w, &rw, COLOR_DIALOG_TEXT, AL_LEFT);	a++;	if (!term->spec->braille) y += gf_val(1, G_BFU_FONT_SIZE);#ifdef G	if (F && drv->exec) {		dlg_format_text_and_field(dlg, NULL, prg_msg[a], &dlg->items[a], 0, &y, w, &rw, COLOR_DIALOG_TEXT, AL_LEFT);		a++;		if (!term->spec->braille) y += gf_val(1, G_BFU_FONT_SIZE);	}#endif	if (term->spec->braille) y += gf_val(1, G_BFU_FONT_SIZE);	dlg_format_buttons(dlg, NULL, dlg->items + a, 2, 0, &y, w, &rw, AL_CENTER);	w = rw;	dlg->xw = w + 2 * DIALOG_LB;	dlg->yw = y + 2 * DIALOG_TB;	center_dlg(dlg);	draw_dlg(dlg);	y = dlg->y + DIALOG_TB;	if (term->spec->braille) y += gf_val(1, G_BFU_FONT_SIZE);	a=0;	dlg_format_text_and_field(dlg, term, prg_msg[a], &dlg->items[a], dlg->x + DIALOG_LB, &y, w, NULL, COLOR_DIALOG_TEXT, AL_LEFT);	a++;	if (!term->spec->braille) y += gf_val(1, G_BFU_FONT_SIZE);	dlg_format_text_and_field(dlg, term, prg_msg[a], &dlg->items[a], dlg->x + DIALOG_LB, &y, w, NULL, COLOR_DIALOG_TEXT, AL_LEFT);	a++;	if (!term->spec->braille) y += gf_val(1, G_BFU_FONT_SIZE);	dlg_format_text_and_field(dlg, term, prg_msg[a], &dlg->items[a], dlg->x + DIALOG_LB, &y, w, NULL, COLOR_DIALOG_TEXT, AL_LEFT);	a++;	if (!term->spec->braille) y += gf_val(1, G_BFU_FONT_SIZE);	dlg_format_text_and_field(dlg, term, prg_msg[a], &dlg->items[a], dlg->x + DIALOG_LB, &y, w, NULL, COLOR_DIALOG_TEXT, AL_LEFT);	a++;	if (!term->spec->braille) y += gf_val(1, G_BFU_FONT_SIZE);#ifdef G	if (F && drv->exec) {			dlg_format_text_and_field(dlg, term, prg_msg[a], &dlg->items[a], dlg->x + DIALOG_LB, &y, w, NULL, COLOR_DIALOG_TEXT, AL_LEFT);		a++;		if (!term->spec->braille) y += gf_val(1, G_BFU_FONT_SIZE);	}#endif	if (term->spec->braille) y += gf_val(1, G_BFU_FONT_SIZE);	dlg_format_buttons(dlg, term, &dlg->items[a], 2, dlg->x + DIALOG_LB, &y, w, NULL, AL_CENTER);}void net_programs(struct terminal *term, void *xxx, void *yyy){	struct dialog *d;	int a;	d = mem_calloc(sizeof(struct dialog) + 8 * sizeof(struct dialog_item));#ifdef G	if (F && drv->exec) d->title = TEXT(T_MAIL_TELNET_AND_SHELL_PROGRAMS);	else#endif		d->title = TEXT(T_MAIL_AND_TELNET_PROGRAMS);	d->fn = netprog_fn;	d->items[a=0].type = D_FIELD;	d->items[a].dlen = MAX_STR_LEN;	d->items[a++].data = get_prog(&mailto_prog);	d->items[a].type = D_FIELD;	d->items[a].dlen = MAX_STR_LEN;	d->items[a++].data = get_prog(&telnet_prog);	d->items[a].type = D_FIELD;	d->items[a].dlen = MAX_STR_LEN;	d->items[a++].data = get_prog(&tn3270_prog);	d->items[a].type = D_FIELD;	d->items[a].dlen = MAX_STR_LEN;	d->items[a++].data = get_prog(&mms_prog);#ifdef G	if (F && drv->exec) {		d->items[a].type = D_FIELD;		d->items[a].dlen = MAX_STR_LEN;		d->items[a++].data = drv->shell;	}#endif	d->items[a].type = D_BUTTON;	d->items[a].gid = B_ENTER;	d->items[a].fn = ok_dialog;	d->items[a++].text = TEXT(T_OK);	d->items[a].type = D_BUTTON;	d->items[a].gid = B_ESC;	d->items[a].fn = cancel_dialog;	d->items[a++].text = TEXT(T_CANCEL);	d->items[a].type = D_END;	do_dialog(term, d, getml(d, NULL));}/*void net_opt_ask(struct terminal *term, void *xxx, void *yyy){	if (list_empty(downloads)) {		net_options(term, xxx, yyy);		return;	}	msg_box(term, NULL, _("Network options"), AL_CENTER, _("Warning: configuring network will terminate all running downloads. Do you really want to configure network?"), term, 2, _("Yes"), (void (*)(void *))net_options, B_ENTER, _("No"), NULL, B_ESC);}*/unsigned char mc_str[8];#ifdef Gunsigned char ic_str[8];#endifunsigned char doc_str[4];void cache_refresh(void *xxx){	memory_cache_size = atoi(mc_str) * 1024;#ifdef G	if (F) image_cache_size = atoi(ic_str) * 1024;#endif	max_format_cache_entries = atoi(doc_str);	shrink_memory(SH_CHECK_QUOTA);}unsigned char *cache_texts[] = { TEXT(T_MEMORY_CACHE_SIZE__KB), TEXT(T_NUMBER_OF_FORMATTED_DOCUMENTS), TEXT(T_AGGRESSIVE_CACHE) };#ifdef Gunsigned char *g_cache_texts[] = { TEXT(T_MEMORY_CACHE_SIZE__KB), TEXT(T_IMAGE_CACHE_SIZE__KB), TEXT(T_NUMBER_OF_FORMATTED_DOCUMENTS), TEXT(T_AGGRESSIVE_CACHE) };#endifvoid cache_opt(struct terminal *term, void *xxx, void *yyy){	struct dialog *d;	int a;	snprint(mc_str, 8, memory_cache_size / 1024);#ifdef G	if(F)snprint(ic_str, 8, image_cache_size / 1024);#endif	snprint(doc_str, 4, max_format_cache_entries);#ifdef G	if (F)	{		d = mem_calloc(sizeof(struct dialog) + 7 * sizeof(struct dialog_item));	}else#endif	{		d = mem_calloc(sizeof(struct dialog) + 6 * sizeof(struct dialog_item));	}	a=0;	d->title = TEXT(T_CACHE_OPTIONS);	d->fn = group_fn;#ifdef G	if (F) d->udata = g_cache_texts;	else#endif	d->udata = cache_texts;	d->refresh = (void (*)(void *))cache_refresh;	d->items[a].type = D_FIELD;	d->items[a].dlen = 8;	d->items[a].data = mc_str;	d->items[a].fn = check_number;	d->items[a].gid = 0;	d->items[a].gnum = MAXINT;	a++;#ifdef G	if (F)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -