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

📄 gui_common.c

📁 网络爬虫程序
💻 C
📖 第 1 页 / 共 5 页
字号:
  rg = gtk_radio_button_group(GTK_RADIO_BUTTON(gui_cfg.post_update));  gtk_widget_show(gui_cfg.post_update);  gtk_box_pack_start(GTK_BOX(brow2), gui_cfg.post_update, FALSE, TRUE, 1);/***/  frame = gtk_frame_new(gettext("Tuning of HTML rewriting engine"));  gtk_widget_show(frame);  gtk_table_attach(GTK_TABLE(brow), frame, 1, 2, 0, 1,    GTK_FILL, GTK_FILL, 2, 2);  ptab = gtk_table_new(2, 4, FALSE);  gtk_container_add(GTK_CONTAINER(frame), ptab);  gtk_widget_show(ptab);  gui_cfg.dont_touch_url_pattern = guitl_tab_add_edit_entry(ptab,    gettext("Don't touch URL wildcard pattern: "), NULL, 0, 0, FALSE);#ifdef HAVE_REGEX  gui_cfg.dont_touch_url_rpattern = guitl_tab_add_edit_entry(ptab,    gettext("Don't touch URL RE pattern: "), NULL, 0, 1, TRUE);  gui_cfg.dont_touch_tag_rpattern = guitl_tab_add_edit_entry(ptab,    gettext("Don't touch HTML tag RE pattern: "), NULL, 0, 2, TRUE);#endif}/*** NET ***/static void FTPHSSelectRow(void){  char *p;  int row = GPOINTER_TO_INT(GTK_CLIST(gui_cfg.ftp_login_hs)->selection->data);  gtk_clist_get_text(GTK_CLIST(gui_cfg.ftp_login_hs), row, 0, &p);  gtk_entry_set_text(GTK_ENTRY(gui_cfg.ftp_login_hs_host), p);  gtk_clist_get_text(GTK_CLIST(gui_cfg.ftp_login_hs), row, 1, &p);  gtk_entry_set_text(GTK_ENTRY(gui_cfg.ftp_login_hs_handshake), p);}static void FTPHSNew(int row){  char *pp[2];  ftp_handshake_info *fhi;  pp[0] = (gchar *) gtk_entry_get_text(GTK_ENTRY(gui_cfg.ftp_login_hs_host));  pp[1] =    (gchar *) gtk_entry_get_text(GTK_ENTRY(gui_cfg.ftp_login_hs_handshake));  if(!(fhi = ftp_handshake_info_parse(pp[0], pp[1])))  {    gdk_beep();    return;  }  ftp_handshake_info_free(fhi);  if(row < 0)    gtk_clist_append(GTK_CLIST(gui_cfg.ftp_login_hs), pp);  else  {    int i;    for(i = 0; i < 2; i++)      gtk_clist_set_text(GTK_CLIST(gui_cfg.ftp_login_hs), row, i, pp[i]);  }}static void FTPHSModify(void){  if(!GTK_CLIST(gui_cfg.ftp_login_hs)->selection)  {    gdk_beep();    return;  }  FTPHSNew(GPOINTER_TO_INT(GTK_CLIST(gui_cfg.ftp_login_hs)->selection->data));}static void FTPHSAppend(void){  FTPHSNew(-1);}static void cfgtab_net(GtkWidget * notebook){  GtkWidget *col, *brow, *box, *frame, *label, *rb, *vbox;  GtkWidget *swin, *ptab, *bbox, *button;  GSList *rg;  const char *hssamples[] = {    "",    "user %u\\331\\pass %p\\230",    "user %u@%h %s\\331\\pass %p\\230",    "user %U\\331\\pass %P\\230\\user %u@%h %s\\331\\pass %p\\230",    NULL,  };  box = gtk_hbox_new(0, 5);  gtk_widget_show(box);  label = gtk_label_new(gettext("Net"));  gtk_notebook_append_page(GTK_NOTEBOOK(notebook), box, label);  col = gtk_table_new(11, 3, FALSE);  gtk_widget_show(col);  gtk_container_add(GTK_CONTAINER(box), col);  frame = gtk_frame_new(gettext("Allowed protocols"));  gtk_widget_show(frame);  gtk_table_attach(GTK_TABLE(col), frame, 1, 2, 0, 1,    GTK_FILL, GTK_FILL, 5, 5);  brow = gtk_table_new(3, 2, FALSE);  gtk_widget_show(brow);  gtk_container_add(GTK_CONTAINER(frame), brow);  gui_cfg.http_sw = gtk_check_button_new_with_label(gettext("HTTP"));  gtk_widget_show(gui_cfg.http_sw);  gtk_table_attach(GTK_TABLE(brow), gui_cfg.http_sw, 0, 1, 0, 1,    GTK_FILL, GTK_FILL, 5, 5);  gui_cfg.ftp_sw = gtk_check_button_new_with_label(gettext("FTP"));  gtk_widget_show(gui_cfg.ftp_sw);  gtk_table_attach(GTK_TABLE(brow), gui_cfg.ftp_sw, 0, 1, 1, 2,    GTK_FILL, GTK_FILL, 5, 5);  gui_cfg.gopher_sw = gtk_check_button_new_with_label(gettext("Gopher"));  gtk_widget_show(gui_cfg.gopher_sw);  gtk_table_attach(GTK_TABLE(brow), gui_cfg.gopher_sw, 1, 2, 0, 1,    GTK_FILL, GTK_FILL, 5, 5);#ifdef USE_SSL  gui_cfg.https_sw = gtk_check_button_new_with_label(gettext("HTTPS"));  gtk_widget_show(gui_cfg.https_sw);  gtk_table_attach(GTK_TABLE(brow), gui_cfg.https_sw, 1, 2, 1, 2,    GTK_FILL, GTK_FILL, 5, 5);  gui_cfg.ftps_sw = gtk_check_button_new_with_label(gettext("FTPS"));  gtk_widget_show(gui_cfg.ftps_sw);  gtk_table_attach(GTK_TABLE(brow), gui_cfg.ftps_sw, 2, 3, 0, 1,    GTK_FILL, GTK_FILL, 5, 5);#endif  frame = gtk_frame_new(gettext("FTP data connection type "));  gtk_widget_show(frame);  gtk_table_attach(GTK_TABLE(col), frame, 0, 1, 0, 1,    GTK_FILL, GTK_FILL, 5, 5);  brow = gtk_table_new(2, 1, FALSE);  gtk_widget_show(brow);  gtk_container_add(GTK_CONTAINER(frame), brow);  rb = gtk_radio_button_new_with_label(NULL, gettext("Active"));  rg = gtk_radio_button_group(GTK_RADIO_BUTTON(rb));  gtk_widget_show(rb);  gtk_table_attach(GTK_TABLE(brow), rb, 0, 1, 0, 1, GTK_FILL, GTK_FILL, 5, 5);  gui_cfg.ftpmodegr[1] = rb;  rb = gtk_radio_button_new_with_label(rg, gettext("Passive"));  rg = gtk_radio_button_group(GTK_RADIO_BUTTON(rb));  gtk_widget_show(rb);  gtk_table_attach(GTK_TABLE(brow), rb, 0, 1, 1, 2, GTK_FILL, GTK_FILL, 5, 5);  gui_cfg.ftpmodegr[0] = rb;  label = gtk_label_new(gettext("Communication timeout: "));  gtk_table_attach(GTK_TABLE(col), label, 0, 1, 1, 2,    GTK_FILL, GTK_FILL, 2, 5);  gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);  gtk_widget_show(label);  gui_cfg.timeout_label = gtk_spin_button_new(    (GtkAdjustment *) gtk_adjustment_new(0.0, 0.0, 9999, 1.0, 10.0, 0.0),    0, 2);  gtk_table_attach(GTK_TABLE(col), gui_cfg.timeout_label, 1, 2, 1, 2,    GTK_FILL, GTK_FILL, 2, 5);  gtk_widget_show(gui_cfg.timeout_label);  label = gtk_label_new(gettext(" min."));  gtk_table_attach(GTK_TABLE(col), label, 2, 3, 1, 2,    GTK_FILL, GTK_FILL, 2, 5);  gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);  gtk_widget_show(label);  label = gtk_label_new(gettext("Maximal transfer rate: "));  gtk_table_attach(GTK_TABLE(col), label, 0, 1, 3, 4,    GTK_FILL, GTK_FILL, 2, 5);  gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);  gtk_widget_show(label);  gui_cfg.maxrate = gtk_spin_button_new(    (GtkAdjustment *) gtk_adjustment_new(0.0, 0.0, 1000000.0, 1.0, 10.0, 0.0),    0, 3);  gtk_table_attach(GTK_TABLE(col), gui_cfg.maxrate, 1, 2, 3, 4,    GTK_FILL, GTK_FILL, 2, 5);  gtk_widget_show(gui_cfg.maxrate);  label = gtk_label_new(gettext(" kB/s"));  gtk_table_attach(GTK_TABLE(col), label, 2, 3, 3, 4,    GTK_FILL, GTK_FILL, 2, 5);  gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);  gtk_widget_show(label);  label = gtk_label_new(gettext("Minimal transfer rate: "));  gtk_table_attach(GTK_TABLE(col), label, 0, 1, 4, 5,    GTK_FILL, GTK_FILL, 2, 5);  gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);  gtk_widget_show(label);  gui_cfg.minrate = gtk_spin_button_new(    (GtkAdjustment *) gtk_adjustment_new(0.0, 0.0, 1000000.0, 1.0, 10.0, 0.0),    0, 3);  gtk_table_attach(GTK_TABLE(col), gui_cfg.minrate, 1, 2, 4, 5,    GTK_FILL, GTK_FILL, 2, 5);  gtk_widget_show(gui_cfg.minrate);  label = gtk_label_new(gettext(" kB/s"));  gtk_table_attach(GTK_TABLE(col), label, 2, 3, 4, 5,    GTK_FILL, GTK_FILL, 2, 5);  gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);  gtk_widget_show(label);  label = gtk_label_new(gettext("Local interface address: "));  gtk_table_attach(GTK_TABLE(col), label, 0, 1, 5, 6,    GTK_FILL, GTK_FILL, 2, 5);  gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);  gtk_widget_show(label);  gui_cfg.local_ip = gtk_entry_new();  gtk_table_attach(GTK_TABLE(col), gui_cfg.local_ip, 1, 3, 5, 6,    GTK_FILL, GTK_FILL, 2, 5);  gtk_widget_show(gui_cfg.local_ip);  label = gtk_label_new(gettext("Additional HTTP headers: "));  gtk_table_attach(GTK_TABLE(col), label, 0, 1, 6, 7,    GTK_FILL, GTK_FILL, 2, 5);  gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);  gtk_widget_show(label);  gui_cfg.http_headers = gtk_entry_new();  gtk_table_attach(GTK_TABLE(col), gui_cfg.http_headers, 1, 3, 6, 7,    GTK_FILL, GTK_FILL, 2, 5);  gtk_widget_show(gui_cfg.http_headers);  label = gtk_label_new(gettext("Additional FTP list options: "));  gtk_table_attach(GTK_TABLE(col), label, 0, 1, 7, 8,    GTK_FILL, GTK_FILL, 2, 5);  gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);  gtk_widget_show(label);  gui_cfg.ftp_list_options = gtk_entry_new();  gtk_table_attach(GTK_TABLE(col), gui_cfg.ftp_list_options, 1, 3, 7, 8,    GTK_FILL, GTK_FILL, 2, 5);  gtk_widget_show(gui_cfg.ftp_list_options);  gui_cfg.ftp_list =    gtk_check_button_new_with_label(gettext    ("Use wide listing of FTP directories"));  gtk_widget_show(gui_cfg.ftp_list);  gtk_table_attach(GTK_TABLE(col), gui_cfg.ftp_list, 0, 3, 8, 9,    GTK_FILL, GTK_FILL, 5, 5);  gui_cfg.fix_wuftpd =    gtk_check_button_new_with_label(gettext    ("Fix detection of nonexisting FTP directories on WuFTPD FTP servers"));  gtk_widget_show(gui_cfg.fix_wuftpd);  gtk_table_attach(GTK_TABLE(col), gui_cfg.fix_wuftpd, 0, 3, 9, 10,    GTK_FILL, GTK_FILL, 5, 5);  gui_cfg.use_http11 =    gtk_check_button_new_with_label(gettext    ("Use HTTP/1.1 protocol for HTTP communication"));  gtk_widget_show(gui_cfg.use_http11);  gtk_table_attach(GTK_TABLE(col), gui_cfg.use_http11, 0, 3, 10, 11,    GTK_FILL, GTK_FILL, 5, 5);/*******/  frame = gtk_frame_new(gettext("FTP login handshake rules"));  gtk_box_pack_start(GTK_BOX(box), frame, FALSE, FALSE, 1);  gtk_widget_show(frame);  vbox = gtk_vbox_new(0, 5);  gtk_container_add(GTK_CONTAINER(frame), vbox);  gtk_widget_show(vbox);  swin = gtk_scrolled_window_new(NULL, NULL);  gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(swin),    GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);  gtk_box_pack_start(GTK_BOX(vbox), swin, TRUE, TRUE, 5);  gtk_widget_show(swin);  gui_cfg.ftp_login_hs = gtk_clist_new(2);  gtk_clist_set_column_title(GTK_CLIST(gui_cfg.ftp_login_hs), 0,    gettext("Host"));  gtk_clist_set_column_title(GTK_CLIST(gui_cfg.ftp_login_hs), 1,    gettext("Login handshake"));  gtk_clist_column_titles_show(GTK_CLIST(gui_cfg.ftp_login_hs));  gtk_clist_set_reorderable(GTK_CLIST(gui_cfg.ftp_login_hs), TRUE);  gtk_clist_set_column_auto_resize(GTK_CLIST(gui_cfg.ftp_login_hs), 0, TRUE);  gtk_clist_set_column_auto_resize(GTK_CLIST(gui_cfg.ftp_login_hs), 1, TRUE);  gtk_signal_connect(GTK_OBJECT(gui_cfg.ftp_login_hs), "select_row",    GTK_SIGNAL_FUNC(FTPHSSelectRow), NULL);  gtk_container_add(GTK_CONTAINER(swin), gui_cfg.ftp_login_hs);  gtk_widget_show(gui_cfg.ftp_login_hs);  ptab = gtk_table_new(2, 5, FALSE);  gtk_box_pack_start(GTK_BOX(vbox), ptab, FALSE, TRUE, 2);  gtk_widget_show(ptab);  gui_cfg.ftp_login_hs_host = guitl_tab_add_entry(ptab,    gettext("Host: "), 0, 0, FALSE);  gui_cfg.ftp_login_hs_handshake = guitl_tab_add_enum(ptab,    gettext("Handshake: "), 0, 1, hssamples, TRUE);  bbox = gtk_hbutton_box_new();  gtk_widget_show(bbox);  gtk_button_box_set_layout(GTK_BUTTON_BOX(bbox), GTK_BUTTONBOX_SPREAD);  gtk_box_pack_start(GTK_BOX(vbox), bbox, FALSE, TRUE, 5);  button = guitl_pixmap_button(append_xpm, NULL, gettext("Append"));  gtk_container_add(GTK_CONTAINER(bbox), button);  gtk_widget_show(button);  gtk_signal_connect(GTK_OBJECT(button), "clicked",    GTK_SIGNAL_FUNC(FTPHSAppend), NULL);  button = guitl_pixmap_button(modify_xpm, NULL, gettext("Modify"));  gtk_container_add(GTK_CONTAINER(bbox), button);  gtk_widget_show(button);  gtk_signal_connect(GTK_OBJECT(button), "clicked",    GTK_SIGNAL_FUNC(FTPHSModify), NULL);  button = guitl_pixmap_button(clear_xpm, NULL, gettext("Clear"));  gtk_container_add(GTK_CONTAINER(bbox), button);  gtk_widget_show(button);  gtk_signal_connect(GTK_OBJECT(button), "clicked",    GTK_SIGNAL_FUNC(guitl_ListClear), gui_cfg.js_transform);  button = guitl_pixmap_button(delete_xpm, NULL, gettext("Delete"));  gtk_container_add(GTK_CONTAINER(bbox), button);  gtk_widget_show(button);  gtk_signal_connect(GTK_OBJECT(button), "clicked",    GTK_SIGNAL_FUNC(guitl_ListDeleteSelected), gui_cfg.js_transform);}/*** PROXY ***/static void cfgtab_proxy(GtkWidget * notebook){  GtkWidget *col, *brow, *label, *box, *frame;  box = gtk_vbox_new(0, 5);  gtk_widget_show(box);  label = gtk_label_new(gettext("Proxy"));  gtk_notebook_append_page(GTK_NOTEBOOK(notebook), box, label);  col = gtk_table_new(3, 2, FALSE);  gtk_widget_show(col);  gtk_container_add(GTK_CONTAINER(box), col);  frame = gtk_frame_new(gettext("Gopher proxy"));  gtk_widget_show(frame);  gtk_table_attach(GTK_TABLE(col), frame, 0, 1, 0, 1,    GTK_FILL, GTK_FILL, 5, 5);  brow = gtk_table_new(3, 2, FALSE);  gtk_widget_show(brow);  gtk_container_add(GTK_CONTAINER(frame), brow);  gui_cfg.gopher_proxyh_label = guitl_tab_add_entry(brow,    gettext("Host: "), 0, 0, FALSE);  gui_cfg.gopher_proxyp_label = guitl_tab_add_numentry(brow,    gettext("Port: "), 0, 1, USHRT_MAX);  gui_cfg.gopher_httpgw =    gtk_check_button_new_with_label(gettext("Gopher via HTTP proxy"));  gtk_widget_show(gui_cfg.gopher_httpgw);  gtk_table_attach(GTK_TABLE(brow), gui_cfg.gopher_httpgw, 0, 2, 2, 3,    GTK_FILL, GTK_FILL, 5, 5);  frame = gtk_frame_new(gettext("FTP proxy"));  gtk_widget_show(frame);  gtk_table_attach(GTK_TABLE(col), frame, 1, 2, 0, 1,    GTK_FILL, GTK_FILL, 5, 5);  brow = gtk_table_new(4, 2, FALSE);  gtk_widget_show(brow);  gtk_container_add(GTK_CONTAINER(frame), brow);  gui_cfg.ftp_proxyh_label = guitl_tab_add_entry(brow,    gettext("Host: "), 0, 0, FALSE);  gui_cfg.ftp_proxyp_label = guitl_tab_add_numentry(brow,    gettext("Port: "), 0, 1, USHRT_MAX);  gui_cfg.ftp_httpgw =    gtk_check_button_new_with_label(gettext("FTP

⌨️ 快捷键说明

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