📄 menu.c
字号:
{ d->items[a].type = D_FIELD; d->items[a].dlen = 8; d->items[a].data = ic_str; d->items[a].fn = check_number; d->items[a].gid = 0; d->items[a].gnum = MAXINT; a++; }#endif d->items[a].type = D_FIELD; d->items[a].dlen = 4; d->items[a].data = doc_str; d->items[a].fn = check_number; d->items[a].gid = 0; d->items[a].gnum = 256; a++; d->items[a].type = D_CHECKBOX; d->items[a].gid = 0; d->items[a].dlen = sizeof(int); d->items[a].data = (void *)&http_bugs.aggressive_cache; a++; 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); a++; 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); a++; d->items[a].type = D_END; do_dialog(term, d, getml(d, NULL));}void menu_shell(struct terminal *term, void *xxx, void *yyy){ unsigned char *sh; if (!(sh = GETSHELL)) sh = DEFAULT_SHELL; exec_on_terminal(term, sh, "", 1);}void menu_kill_background_connections(struct terminal *term, void *xxx, void *yyy){ abort_background_connections();}void menu_kill_all_connections(struct terminal *term, void *xxx, void *yyy){ abort_all_connections();}void menu_save_html_options(struct terminal *term, void *xxx, struct session *ses){ memcpy(&dds, &ses->ds, sizeof(struct document_setup)); write_html_config(term);}unsigned char marg_str[2];#ifdef Gunsigned char html_font_str[4];unsigned char image_scale_str[6];#endifvoid html_refresh(struct session *ses){ ses->ds.margin = atoi(marg_str);#ifdef G if (F) { ses->ds.font_size = atoi(html_font_str); ses->ds.image_scale = atoi(image_scale_str); }#endif html_interpret_recursive(ses->screen); draw_formatted(ses);}#ifdef Gunsigned char *html_texts_g[] = { TEXT(T_DISPLAY_TABLES), TEXT(T_DISPLAY_FRAMES), TEXT(T_DISPLAY_LINKS_TO_IMAGES), TEXT(T_DISPLAY_IMAGE_FILENAMES), TEXT(T_DISPLAY_IMAGES), TEXT(T_AUTO_REFRESH), TEXT(T_TARGET_IN_NEW_WINDOW), TEXT(T_TEXT_MARGIN), "", TEXT(T_IGNORE_CHARSET_INFO_SENT_BY_SERVER), TEXT(T_USER_FONT_SIZE), TEXT(T_SCALE_ALL_IMAGES_BY), TEXT(T_PORN_ENABLE)};#endifunsigned char *html_texts[] = { TEXT(T_DISPLAY_TABLES), TEXT(T_DISPLAY_FRAMES), TEXT(T_DISPLAY_LINKS_TO_IMAGES), TEXT(T_DISPLAY_IMAGE_FILENAMES), TEXT(T_LINK_ORDER_BY_COLUMNS), TEXT(T_NUMBERED_LINKS), TEXT(T_AUTO_REFRESH), TEXT(T_TARGET_IN_NEW_WINDOW), TEXT(T_TEXT_MARGIN), "", TEXT(T_IGNORE_CHARSET_INFO_SENT_BY_SERVER) };int dlg_assume_cp(struct dialog_data *dlg, struct dialog_item_data *di){ charset_sel_list(dlg->win->term, dlg->dlg->udata2, (int *)di->cdata, 0); return 0;}int dlg_kb_cp(struct dialog_data *dlg, struct dialog_item_data *di){ charset_sel_list(dlg->win->term, dlg->dlg->udata2, (int *)di->cdata, 1); return 0;}void menu_html_options(struct terminal *term, void *xxx, struct session *ses){ struct dialog *d; int a; snprint(marg_str, 2, ses->ds.margin); if (!F){ d = mem_calloc(sizeof(struct dialog) + 14 * sizeof(struct dialog_item));#ifdef G }else{ d = mem_calloc(sizeof(struct dialog) + 17 * sizeof(struct dialog_item)); snprintf(html_font_str,4,"%d",ses->ds.font_size); snprintf(image_scale_str,6,"%d",ses->ds.image_scale);#endif } d->title = TEXT(T_HTML_OPTIONS); d->fn = group_fn; d->udata = gf_val(html_texts, html_texts_g); d->udata2 = ses; d->refresh = (void (*)(void *))html_refresh; d->refresh_data = ses; a=0; d->items[a].type = D_CHECKBOX; d->items[a].data = (unsigned char *) &ses->ds.tables; d->items[a].dlen = sizeof(int); a++; d->items[a].type = D_CHECKBOX; d->items[a].data = (unsigned char *) &ses->ds.frames; d->items[a].dlen = sizeof(int); a++; d->items[a].type = D_CHECKBOX; d->items[a].data = (unsigned char *) &ses->ds.images; d->items[a].dlen = sizeof(int); a++; d->items[a].type = D_CHECKBOX; d->items[a].data = (unsigned char *) &ses->ds.image_names; d->items[a].dlen = sizeof(int); a++;#ifdef G if (F) { d->items[a].type = D_CHECKBOX; d->items[a].data = (unsigned char *) &ses->ds.display_images; d->items[a].dlen = sizeof(int); a++; }#endif if (!F) { d->items[a].type = D_CHECKBOX; d->items[a].data = (unsigned char *) &ses->ds.table_order; d->items[a].dlen = sizeof(int); a++; d->items[a].type = D_CHECKBOX; d->items[a].data = (unsigned char *) &ses->ds.num_links; d->items[a].dlen = sizeof(int); a++; } d->items[a].type = D_CHECKBOX; d->items[a].data = (unsigned char *) &ses->ds.auto_refresh; d->items[a].dlen = sizeof(int); a++; d->items[a].type = D_CHECKBOX; d->items[a].data = (unsigned char *) &ses->ds.target_in_new_window; d->items[a].dlen = sizeof(int); a++; d->items[a].type = D_FIELD; d->items[a].dlen = 2; d->items[a].data = marg_str; d->items[a].fn = check_number; d->items[a].gid = 0; d->items[a].gnum = 9; a++; d->items[a].type = D_BUTTON; d->items[a].gid = 0; d->items[a].fn = dlg_assume_cp; d->items[a].text = TEXT(T_DEFAULT_CODEPAGE); d->items[a].data = (unsigned char *) &ses->ds.assume_cp; d->items[a].dlen = sizeof(int); a++; d->items[a].type = D_CHECKBOX; d->items[a].data = (unsigned char *) &ses->ds.hard_assume; d->items[a].dlen = sizeof(int); a++; if (!F){ 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); a++; 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); a++; d->items[a].type = D_END;#ifdef G }else{ d->items[a].type = D_FIELD; d->items[a].dlen = 4; d->items[a].data = html_font_str; d->items[a].fn = check_number; d->items[a].gid = 1; d->items[a].gnum = 999; a++; d->items[a].type = D_FIELD; d->items[a].dlen = 6; d->items[a].data = image_scale_str; d->items[a].fn = check_number; d->items[a].gid = 1; d->items[a].gnum = 500; a++; d->items[a].type = D_CHECKBOX; d->items[a].data = (unsigned char *) &ses->ds.porn_enable; d->items[a].dlen = sizeof(int); a++; 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); a++; 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); a++; d->items[a].type = D_END;#endif } do_dialog(term, d, getml(d, NULL));}static unsigned char new_bookmarks_file[MAX_STR_LEN];static int new_bookmarks_codepage;#ifdef Gstatic unsigned char menu_font_str[4];static unsigned char bg_color_str[7];static unsigned char fg_color_str[7];static unsigned char scroll_area_color_str[7];static unsigned char scroll_bar_color_str[7];static unsigned char scroll_frame_color_str[7];void refresh_misc(void *ignore){ if (F) { struct session *ses; menu_font_size=strtol(menu_font_str,0,10); G_BFU_FG_COLOR=strtol(fg_color_str,0,16); G_BFU_BG_COLOR=strtol(bg_color_str,0,16); G_SCROLL_BAR_AREA_COLOR=strtol(scroll_area_color_str,0,16); G_SCROLL_BAR_BAR_COLOR=strtol(scroll_bar_color_str,0,16); G_SCROLL_BAR_FRAME_COLOR=strtol(scroll_frame_color_str,0,16); shutdown_bfu(); init_bfu(); init_grview(); foreach(ses, sessions) { ses->term->dev->resize_handler(ses->term->dev); } } if (strcmp(new_bookmarks_file,bookmarks_file)||new_bookmarks_codepage!=bookmarks_codepage) { save_bookmarks(); strncpy(bookmarks_file,new_bookmarks_file,MAX_STR_LEN - 1); bookmarks_file[MAX_STR_LEN - 1] = 0; bookmarks_codepage=new_bookmarks_codepage; reinit_bookmarks(); }}unsigned char *miscopt_labels_g[] = { TEXT(T_MENU_FONT_SIZE), TEXT(T_ENTER_COLORS_AS_RGB_TRIPLETS), TEXT(T_MENU_FOREGROUND_COLOR), TEXT(T_MENU_BACKGROUND_COLOR), TEXT(T_SCROLL_BAR_AREA_COLOR), TEXT(T_SCROLL_BAR_BAR_COLOR), TEXT(T_SCROLL_BAR_FRAME_COLOR), TEXT(T_BOOKMARKS_FILE), NULL };#endifunsigned char *miscopt_labels[] = { TEXT(T_BOOKMARKS_FILE), NULL };void miscopt_fn(struct dialog_data *dlg){ struct terminal *term = dlg->win->term; unsigned char **labels=dlg->dlg->udata; int max = 0, min = 0; int w, rw; int y = 0; int a=0; int bmk=!anonymous;#ifdef G if (F&&((drv->flags)&GD_NEED_CODEPAGE))a=1;#endif max_text_width(term, labels[F?7:0], &max, AL_LEFT); min_text_width(term, labels[F?7:0], &min, AL_LEFT); if (F) { max_text_width(term, labels[1], &max, AL_LEFT); min_text_width(term, labels[1], &min, AL_LEFT); max_group_width(term, labels, dlg->items, 1, &max); min_group_width(term, labels, dlg->items, 1, &min); max_group_width(term, labels, dlg->items+2, 5, &max); min_group_width(term, labels, dlg->items+2, 5, &min); } if (bmk) { max_buttons_width(term, dlg->items + dlg->n - 3 - a, 1, &max); min_buttons_width(term, dlg->items + dlg->n - 3 - a, 1, &min); } if (a) { max_buttons_width(term, dlg->items + dlg->n - 3, 1, &max); min_buttons_width(term, dlg->items + dlg->n - 3, 1, &min); } max_buttons_width(term, dlg->items + dlg->n - 2, 2, &max); min_buttons_width(term, dlg->items + dlg->n - 2, 2, &min); w = term->x * 9 / 10 - 2 * DIALOG_LB; if (w > max) w = max; if (w < min) w = min; if (w > term->x - 2 * DIALOG_LB) w = term->x - 2 * DIALOG_LB; if (w < 5) w = 5; rw = 0; if (F) { dlg_format_group(dlg, NULL, labels, dlg->items,1,dlg->x + DIALOG_LB, &y, w, &rw); y += gf_val(1, G_BFU_FONT_SIZE); dlg_format_text(dlg, NULL, labels[1], dlg->x + DIALOG_LB, &y, w, &rw, COLOR_DIALOG_TEXT, AL_LEFT); y += gf_val(1, G_BFU_FONT_SIZE); dlg_format_group(dlg, NULL, labels+2, dlg->items+1,5,dlg->x + DIALOG_LB, &y, w, &rw); y += gf_val(1, G_BFU_FONT_SIZE); } if (bmk) { dlg_format_text_and_field(dlg, NULL, labels[F?7:0], dlg->items + dlg->n - 4 - a, 0, &y, w, &rw, COLOR_DIALOG_TEXT, AL_LEFT); } if (bmk) { y += gf_val(1, G_BFU_FONT_SIZE); dlg_format_buttons(dlg, NULL, dlg->items + dlg->n - 3 - a, 1, 0, &y, w, &rw, AL_LEFT); } if (a) dlg_format_buttons(dlg, NULL, dlg->items + dlg->n - 3, 1, 0, &y, w, &rw, AL_LEFT); 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 (F) { y += gf_val(1, G_BFU_FONT_SIZE); dlg_format_group(dlg, term, labels, dlg->items,1,dlg->x + DIALOG_LB, &y, w, NULL); y += gf_val(1, G_BFU_FONT_SIZE); dlg_format_text(dlg, term, labels[1], dlg->x + DIALOG_LB, &y, w, NULL, COLOR_DIALOG_TEXT, AL_LEFT); y += gf_val(1, G_BFU_FONT_SIZE); dlg_format_group(dlg, term, labels+2, dlg->items+1,5,dlg->x + DIALOG_LB, &y, w, NULL); y += gf_val(1, G_BFU_FONT_SIZE); } else y += gf_val(1, G_BFU_FONT_SIZE); if (bmk) { dlg_format_text_and_field(dlg, term, labels[F?7:0], dlg->items + dlg->n - 4 - a, dlg->x + DIALOG_LB, &y, w, NULL, COLOR_DIALOG_TEXT, AL_LEFT); y += gf_val(1, G_BFU_FONT_SIZE); dlg_format_buttons(dlg, term, dlg->items + dlg->n - 3 - a, 1, dlg->x + DIALOG_LB, &y, w, NULL, AL_CENTER); } if (a) dlg_format_buttons(dlg, term, dlg->items + dlg->n - 3, 1, dlg->x + DIALOG_LB, &y, w, NULL, AL_CENTER); dlg_format_buttons(dlg, term, dlg->items+dlg->n-2, 2, dlg->x + DIALOG_LB, &y, w, NULL, AL_CENTER);}void miscelaneous_options(struct terminal *term, void *xxx, struct session *ses){ struct dialog *d; int a=0; if (anonymous&&!F) return; /* if you add something into text mode (or both text and graphics), remove this (and enable also miscelaneous_options in setip_menu_anon) */ strncpy(new_bookmarks_file,bookmarks_file,MAX_STR_LEN); new_bookmarks_codepage=bookmarks_codepage; if (!F) { d = mem_calloc(sizeof(struct dialog) + 5 * sizeof(struct dialog_item));#ifdef G } else { d = mem_calloc(sizeof(struct dialog) + 12 * sizeof(struct dialog_item)); snprintf(menu_font_str,4,"%d",menu_font_size); snprintf(fg_color_str,7,"%06x",(unsigned) G_BFU_FG_COLOR); snprintf(bg_color_str,7,"%06x",(unsigned) G_BFU_BG_COLOR); snprintf(scroll_bar_color_str,7,"%06
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -