📄 gui_main.c
字号:
gtk_widget_realize(smenu); gtk_signal_connect(GTK_OBJECT(smenu), "show", GTK_SIGNAL_FUNC(BrowserMenuPopup), (gpointer) NULL); mi = menu_item(gettext("Fetch URL from browser")); gaccel_bind_widget("file/browser_url", "activate", mi, NULL, gui_cfg.toplevel); gtk_menu_item_set_submenu(GTK_MENU_ITEM(mi), smenu); gtk_menu_append(GTK_MENU(menu), mi); gtk_widget_show(mi);#endif mi = gtk_menu_item_new(); gtk_menu_append(GTK_MENU(menu), mi); gtk_widget_show(mi); mi = menu_item(gettext("Load scenario ...")); gaccel_bind_widget("file/load_scn", "activate", mi, NULL, gui_cfg.toplevel); gtk_menu_append(GTK_MENU(menu), mi); gtk_widget_show(mi); gtk_signal_connect(GTK_OBJECT(mi), "activate", GTK_SIGNAL_FUNC(gui_PopupW), (gpointer) PAVUK_SCNLD); mi = menu_item(gettext("Add scenario ...")); gaccel_bind_widget("file/add_scn", "activate", mi, NULL, gui_cfg.toplevel); gtk_menu_append(GTK_MENU(menu), mi); gtk_widget_show(mi); gtk_signal_connect(GTK_OBJECT(mi), "activate", GTK_SIGNAL_FUNC(gui_PopupW), (gpointer) PAVUK_SCNADD); mi = menu_item(gettext("Save scenario ...")); gaccel_bind_widget("file/save_scn", "activate", mi, NULL, gui_cfg.toplevel); gtk_menu_append(GTK_MENU(menu), mi); gtk_widget_show(mi); gtk_signal_connect(GTK_OBJECT(mi), "activate", GTK_SIGNAL_FUNC(gui_PopupW), (gpointer) PAVUK_SCNSV); mi = menu_item(gettext("Save settings to ~/.pavukrc")); gaccel_bind_widget("file/save_pavukrc", "activate", mi, NULL, gui_cfg.toplevel); gtk_menu_append(GTK_MENU(menu), mi); gtk_widget_show(mi); gtk_signal_connect(GTK_OBJECT(mi), "activate", GTK_SIGNAL_FUNC(Save_rc), (gpointer) NULL); mi = gtk_menu_item_new(); gtk_menu_append(GTK_MENU(menu), mi); gtk_widget_show(mi); mi = menu_item(gettext("Schedule ...")); gaccel_bind_widget("file/schedule", "activate", mi, NULL, gui_cfg.toplevel); gtk_menu_append(GTK_MENU(menu), mi); gtk_widget_show(mi); gtk_signal_connect(GTK_OBJECT(mi), "activate", GTK_SIGNAL_FUNC(gui_PopupW), (gpointer) PAVUK_CFGSCH); mi = menu_item(gettext("Auth. info editor ...")); gaccel_bind_widget("file/auth_edit", "activate", mi, NULL, gui_cfg.toplevel); gtk_menu_append(GTK_MENU(menu), mi); gtk_widget_show(mi); gtk_signal_connect(GTK_OBJECT(mi), "activate", GTK_SIGNAL_FUNC(gauthinfo_run), (gpointer) NULL); mi = gtk_menu_item_new(); gtk_menu_append(GTK_MENU(menu), mi); gtk_widget_show(mi); mi = menu_item(gettext("E_xit")); gaccel_bind_widget("file/exit", "activate", mi, NULL, gui_cfg.toplevel); gtk_menu_append(GTK_MENU(menu), mi); gtk_widget_show(mi); gtk_signal_connect(GTK_OBJECT(mi), "activate", GTK_SIGNAL_FUNC(Quit), (gpointer) NULL); mbb = menu_item(gettext("_File")); gtk_widget_show(mbb); gtk_menu_bar_append(GTK_MENU_BAR(mbar), mbb); gtk_menu_item_set_submenu(GTK_MENU_ITEM(mbb), menu);/*** VIEW MENU ***/ menu = gtk_menu_new(); gtk_widget_realize(menu); mi = gtk_tearoff_menu_item_new(); gtk_menu_append(GTK_MENU(menu), mi); gtk_widget_show(mi);#ifdef WITH_TREE mi = menu_item(gettext("Document _Tree ...")); gaccel_bind_widget("view/doc_tree", "activate", mi, NULL, gui_cfg.toplevel); gtk_menu_append(GTK_MENU(menu), mi); gtk_widget_show(mi); gtk_signal_connect(GTK_OBJECT(mi), "activate", GTK_SIGNAL_FUNC(gui_PopupW), (gpointer) PAVUK_TREE);#endif mi = menu_item(gettext("Status page ...")); gaccel_bind_widget("view/status_page", "activate", mi, NULL, gui_cfg.toplevel); gtk_menu_append(GTK_MENU(menu), mi); gtk_widget_show(mi); gtk_signal_connect(GTK_OBJECT(mi), "activate", GTK_SIGNAL_FUNC(stats_show), (gpointer) NULL); mi = menu_item(gettext("HTML forms editor ...")); gaccel_bind_widget("view/form_editor", "activate", mi, NULL, gui_cfg.toplevel); gtk_menu_append(GTK_MENU(menu), mi); gtk_widget_show(mi); gtk_signal_connect(GTK_OBJECT(mi), "activate", GTK_SIGNAL_FUNC(form_edit_dlg), (gpointer) NULL);#ifdef HAVE_MOZJS mi = menu_item(gettext("Javascript console ...")); gaccel_bind_widget("view/js_console", "activate", mi, NULL, gui_cfg.toplevel); gtk_menu_append(GTK_MENU(menu), mi); gtk_widget_show(mi); gtk_signal_connect(GTK_OBJECT(mi), "activate", GTK_SIGNAL_FUNC(gui_PopupW), (gpointer) PAVUK_JSCONS);#endif mi = gtk_menu_item_new(); gtk_menu_append(GTK_MENU(menu), mi); gtk_widget_show(mi); mi = menu_item(gettext("Clear log window")); gaccel_bind_widget("view/clear_log", "activate", mi, NULL, gui_cfg.toplevel); gtk_menu_append(GTK_MENU(menu), mi); gtk_widget_show(mi); gtk_signal_connect(GTK_OBJECT(mi), "activate", GTK_SIGNAL_FUNC(ClearLog), (gpointer) NULL); mbb = menu_item(gettext("_View")); gtk_widget_show(mbb); gtk_menu_bar_append(GTK_MENU_BAR(mbar), mbb); gtk_menu_item_set_submenu(GTK_MENU_ITEM(mbb), menu);/*** MODE MENU ***/ menu = gtk_menu_new(); gtk_widget_realize(menu); mi = gtk_tearoff_menu_item_new(); gtk_menu_append(GTK_MENU(menu), mi); gtk_widget_show(mi); rg = NULL; mi = gtk_radio_menu_item_new_with_label(rg, gettext("normal recurse")); gaccel_bind_widget("mode/normal_recurse", "activate", mi, NULL, gui_cfg.toplevel); rg = gtk_radio_menu_item_group(GTK_RADIO_MENU_ITEM(mi)); gtk_menu_append(GTK_MENU(menu), mi); gtk_widget_show(mi); gtk_signal_connect(GTK_OBJECT(mi), "toggled", GTK_SIGNAL_FUNC(SwitchMode), (gpointer) MODE_NORMAL); gui_cfg.modegr[MODE_NORMAL] = mi; mi = gtk_radio_menu_item_new_with_label(rg, gettext("synchronize")); gaccel_bind_widget("mode/synchronize", "activate", mi, NULL, gui_cfg.toplevel); rg = gtk_radio_menu_item_group(GTK_RADIO_MENU_ITEM(mi)); gtk_menu_append(GTK_MENU(menu), mi); gtk_widget_show(mi); gtk_signal_connect(GTK_OBJECT(mi), "toggled", GTK_SIGNAL_FUNC(SwitchMode), (gpointer) MODE_SYNC); gui_cfg.modegr[MODE_SYNC] = mi; mi = gtk_radio_menu_item_new_with_label(rg, gettext("mirror")); gaccel_bind_widget("mode/mirror", "activate", mi, NULL, gui_cfg.toplevel); rg = gtk_radio_menu_item_group(GTK_RADIO_MENU_ITEM(mi)); gtk_menu_append(GTK_MENU(menu), mi); gtk_widget_show(mi); gtk_signal_connect(GTK_OBJECT(mi), "toggled", GTK_SIGNAL_FUNC(SwitchMode), (gpointer) MODE_MIRROR); gui_cfg.modegr[MODE_MIRROR] = mi; mi = gtk_radio_menu_item_new_with_label(rg, gettext("single page")); gaccel_bind_widget("mode/single_page", "activate", mi, NULL, gui_cfg.toplevel); rg = gtk_radio_menu_item_group(GTK_RADIO_MENU_ITEM(mi)); gtk_menu_append(GTK_MENU(menu), mi); gtk_widget_show(mi); gtk_signal_connect(GTK_OBJECT(mi), "activate", GTK_SIGNAL_FUNC(SwitchMode), (gpointer) MODE_SINGLE); gui_cfg.modegr[MODE_SINGLE] = mi; mi = gtk_radio_menu_item_new_with_label(rg, gettext("update local links")); gaccel_bind_widget("mode/update_local", "activate", mi, NULL, gui_cfg.toplevel); rg = gtk_radio_menu_item_group(GTK_RADIO_MENU_ITEM(mi)); gtk_menu_append(GTK_MENU(menu), mi); gtk_widget_show(mi); gtk_signal_connect(GTK_OBJECT(mi), "toggled", GTK_SIGNAL_FUNC(SwitchMode), (gpointer) MODE_LNUPD); gui_cfg.modegr[MODE_LNUPD] = mi; mi = gtk_radio_menu_item_new_with_label(rg, gettext("resume files")); gaccel_bind_widget("mode/resume_files", "activate", mi, NULL, gui_cfg.toplevel); rg = gtk_radio_menu_item_group(GTK_RADIO_MENU_ITEM(mi)); gtk_menu_append(GTK_MENU(menu), mi); gtk_widget_show(mi); gtk_signal_connect(GTK_OBJECT(mi), "toggled", GTK_SIGNAL_FUNC(SwitchMode), (gpointer) MODE_RESUME); gui_cfg.modegr[MODE_RESUME] = mi; mi = gtk_radio_menu_item_new_with_label(rg, gettext("unlimited reget")); gaccel_bind_widget("mode/unlimited_reget", "activate", mi, NULL, gui_cfg.toplevel); rg = gtk_radio_menu_item_group(GTK_RADIO_MENU_ITEM(mi)); gtk_menu_append(GTK_MENU(menu), mi); gtk_widget_show(mi); gtk_signal_connect(GTK_OBJECT(mi), "toggled", GTK_SIGNAL_FUNC(SwitchMode), (gpointer) MODE_SREGET); gui_cfg.modegr[MODE_SREGET] = mi; mi = gtk_radio_menu_item_new_with_label(rg, gettext("transfer but don't store")); gaccel_bind_widget("mode/nostore", "activate", mi, NULL, gui_cfg.toplevel); rg = gtk_radio_menu_item_group(GTK_RADIO_MENU_ITEM(mi)); gtk_menu_append(GTK_MENU(menu), mi); gtk_widget_show(mi); gtk_signal_connect(GTK_OBJECT(mi), "toggled", GTK_SIGNAL_FUNC(SwitchMode), (gpointer) MODE_NOSTORE); gui_cfg.modegr[MODE_NOSTORE] = mi; mi = gtk_radio_menu_item_new_with_label(rg, gettext("reminder")); gaccel_bind_widget("mode/reminder", "activate", mi, NULL, gui_cfg.toplevel); rg = gtk_radio_menu_item_group(GTK_RADIO_MENU_ITEM(mi)); gtk_menu_append(GTK_MENU(menu), mi); gtk_widget_show(mi); gtk_signal_connect(GTK_OBJECT(mi), "toggled", GTK_SIGNAL_FUNC(SwitchMode), (gpointer) MODE_REMIND); gui_cfg.modegr[MODE_REMIND] = mi; mi = gtk_radio_menu_item_new_with_label(rg, gettext("list ftp directory")); gaccel_bind_widget("mode/ftpdir", "activate", mi, NULL, gui_cfg.toplevel); rg = gtk_radio_menu_item_group(GTK_RADIO_MENU_ITEM(mi)); gtk_menu_append(GTK_MENU(menu), mi); gtk_widget_show(mi); gtk_signal_connect(GTK_OBJECT(mi), "toggled", GTK_SIGNAL_FUNC(SwitchMode), (gpointer) MODE_FTPDIR); gui_cfg.modegr[MODE_FTPDIR] = mi; mbb = menu_item(gettext("_Mode")); gtk_widget_show(mbb); gtk_menu_bar_append(GTK_MENU_BAR(mbar), mbb); gtk_menu_item_set_submenu(GTK_MENU_ITEM(mbb), menu); gtk_check_menu_item_set_state(GTK_CHECK_MENU_ITEM(gui_cfg.modegr[cfg.mode]), TRUE);/*** CONFIG MENU ***/ gui_cfg.cfg_menu = menu = gtk_menu_new(); gtk_widget_realize(menu); mi = gtk_tearoff_menu_item_new(); gtk_menu_append(GTK_MENU(menu), mi); gtk_widget_show(mi); mi = menu_item(gettext("C_ommon ...")); gaccel_bind_widget("config/common_cfg", "activate", mi, NULL, gui_cfg.toplevel); gtk_menu_append(GTK_MENU(menu), mi); gtk_widget_show(mi); gtk_signal_connect(GTK_OBJECT(mi), "activate", GTK_SIGNAL_FUNC(gui_PopupW), (gpointer) PAVUK_CFGCOMM); mi = menu_item(gettext("_Limitations ...")); gaccel_bind_widget("config/limit_cfg", "activate", mi, NULL, gui_cfg.toplevel); gtk_menu_append(GTK_MENU(menu), mi); gtk_widget_show(mi); gtk_signal_connect(GTK_OBJECT(mi), "activate", GTK_SIGNAL_FUNC(gui_PopupW), (gpointer) PAVUK_CFGLIM); mi = menu_item(gettext("Reset configuration")); gaccel_bind_widget("config/reset_cfg", "activate", mi, NULL, gui_cfg.toplevel); gtk_menu_append(GTK_MENU(menu), mi); gtk_widget_show(mi); gtk_signal_connect(GTK_OBJECT(mi), "activate", GTK_SIGNAL_FUNC(ResetCfg), (gpointer) NULL);/*** toolbar menu ***/ mi = gtk_menu_item_new(); gtk_menu_append(GTK_MENU(menu), mi); gtk_widget_show(mi); mi = menu_item(gettext("Toolbar")); gtk_menu_append(GTK_MENU(menu), mi); gtk_widget_show(mi); smenu = gtk_menu_new(); gtk_menu_item_set_submenu(GTK_MENU_ITEM(mi), smenu); gtk_widget_show(menu); mi = gtk_check_menu_item_new_with_label(gettext("Toggle toolbar")); gaccel_bind_widget("config/tb_toggle", "activate", mi, NULL, gui_cfg.toplevel); gtk_menu_append(GTK_MENU(smenu), mi); gtk_widget_show(mi); gtk_signal_connect(GTK_OBJECT(mi), "activate", (GtkSignalFunc) toolbar_onoff, (gpointer) NULL); if(gprop_get_bool_t("tb_onoff", &i)) { gtk_check_menu_item_set_state(GTK_CHECK_MENU_ITEM(mi), i); toolbar_onoff(mi, NULL); } else { gtk_check_menu_item_set_state(GTK_CHECK_MENU_ITEM(mi), TRUE); toolbar_onoff(mi, NULL); } mi = gtk_menu_item_new(); gtk_menu_append(GTK_MENU(smenu), mi); gtk_widget_show(mi); rg = NULL;#define TBSET_ME(label, tb_style)\ mi = gtk_radio_menu_item_new_with_label(rg, gettext(label));\ rg = gtk_radio_menu_item_group (GTK_RADIO_MENU_ITEM (mi));\ gtk_menu_append(GTK_MENU(smenu), mi);\ gtk_widget_show (mi);\ gtk_signal_connect(GTK_OBJECT(mi), "activate",\ (GtkSignalFunc) toolbar_set,\ (gpointer)tb_style); for(i = 0; i < (sizeof(tbar_setup_rec) / sizeof(tbar_setup_rec[0])); i++) { int rv; TBSET_ME(tbar_setup_rec[i].label, i); gaccel_bind_widget(tbar_setup_rec[i].accel, "activate", mi, NULL, gui_cfg.toplevel); if(gprop_get_bool_t(tbar_setup_rec[i].prope, &rv)) gtk_check_menu_item_set_state(GTK_CHECK_MENU_ITEM(mi), rv); }/*** toolbar menu end ***/#ifdef HAVE_MT/*** status bar menu start ***/#define SBSET_ME(label, cn)\ mi = gtk_check_menu_item_new_with_label(gettext(label));\ gtk_check_menu_item_set_state(GTK_CHECK_MENU_ITEM(mi), TRUE);\ gtk_menu_append(GTK_MENU(smenu), mi);\ gtk_widget_show (mi);\ gtk_signal_connect(GTK_OBJECT(mi), "activate",\ (GtkSignalFunc) statusbar_col_set,\ (gpointer)cn); mi = menu_item(gettext("Progressbar")); gtk_menu_append(GTK_MENU(menu), mi); gtk_widget_show(mi); smenu = gtk_menu_new(); gtk_menu_item_set_submenu(GTK_MENU_ITEM(mi), smenu); gtk_widget_show(menu); for(i = 1; i < (sizeof(statusbar_col_rec) / sizeof(statusbar_col_rec[0])); i++) { int rv; SBSET_ME(statusbar_col_rec[i].label, i); gaccel_bind_widget(statusbar_col_rec[i].accel, "activate", mi, NULL, gui_cfg.toplevel); if(gprop_get_bool_t(statusbar_col_rec[i].prope, &rv)) gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(mi), rv); }/*** status bar menu end ***/#endif /* HAVE_MT */#ifdef GETTEXT_NLS { static char **al = NULL; if(al || (al = get_available_languages())) { mi = gtk_menu_item_new(); gtk_menu_append(GTK_MENU(menu), mi); gtk_widget_show(mi); mi = gtk_menu_item_new_with_label(gettext("Language")); gtk_menu_append(GTK_MENU(menu), mi); gtk_widget_show(mi); smenu = gtk_menu_new(); gtk_menu_item_set_submenu(GTK_MENU_ITEM(mi), smenu); rg = NULL; mi = gtk_radio_menu_item_new_with_label(rg, gettext_nop("English")); gaccel_bind_widget("lang/en", "activate", mi, NULL, gui_cfg.toplevel); rg = gtk_radio_menu_item_group(GTK_RADIO_MENU_ITEM(mi)); gtk_menu_append(GTK_MENU(smenu), mi); gtk_widget_show(mi); if(!last_lang) gtk_check_menu_item_set_state(GTK_CHECK_MENU_ITEM(mi), TRUE); gtk_signal_connect(GTK_OBJECT(mi), "activate", GTK_SIGNAL_FUNC(ChangeLang), (gpointer) "C"); for(i = 0; al[i]; i++) { gchar idstr[256]; const char *name; name = nls_langcat_name(al[i]); mi = gtk_radio_menu_item_new_with_label(rg, name ? name : al[i]); snprintf(idstr, sizeof(idstr), "lang/%s", al[i]); gaccel_bind_widget(idstr, "activate", mi, NULL, gui_cfg.toplevel); rg = gtk_radio_menu_item_group(GTK_RADIO_MENU_ITEM(mi)); gtk_menu_append(GTK_MENU(smenu), mi); gtk_widget_show(mi); if(last_lang && !strcmp(al[i], last_lang)) gtk_check_menu_item_set_state(GTK_CHECK_MENU_ITEM(mi), TRUE); gtk_signal_connect(GTK_OBJECT(mi), "activate", GTK_SIGNAL_FUNC(ChangeLang), (gpointer) al[i]); } } }#endif mi = gtk_menu_item_new(); gtk_menu_append(GTK_MENU(menu), mi); gtk_widget_show(mi);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -