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

📄 gui_main.c

📁 网络爬虫程序
💻 C
📖 第 1 页 / 共 5 页
字号:
  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 + -