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

📄 gui_scenario.c

📁 网络爬虫程序
💻 C
字号:
/***************************************************************************//*    This code is part of WWW grabber called pavuk                        *//*    Copyright (c) 1997 - 2001 Stefan Ondrejicka                          *//*    Distributed under GPL 2 or later                                     *//***************************************************************************/#include "config.h"#include "gui.h"#include <string.h>#ifdef GTK_FACE#include "ainterface.h"#include "uconfig.h"#include "net.h"static void SaveScn(GtkObject * object, gpointer func_data){  const char *fn =    gtk_file_selection_get_filename(GTK_FILE_SELECTION(gui_cfg.      scn_save_shell));  if(fn && *fn)  {    cfg_dump(fn);    gtk_widget_hide(gui_cfg.scn_save_shell);  }  else    gdk_beep();}void gui_build_scenario_saver(int popup){  if(gui_cfg.scn_save_shell)  {    if(popup)    {      gtk_widget_show_all(gui_cfg.scn_save_shell);      if(GTK_WIDGET_REALIZED(gui_cfg.scn_save_shell))        gdk_window_raise(gui_cfg.scn_save_shell->window);    }    return;  }  gui_cfg.scn_save_shell =    gtk_file_selection_new(gettext("Pavuk: Scenario saver"));  gtk_signal_connect(GTK_OBJECT(gui_cfg.scn_save_shell), "destroy",    GTK_SIGNAL_FUNC(gtk_widget_destroyed), &gui_cfg.scn_save_shell);  gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(gui_cfg.scn_save_shell)->      ok_button), "clicked", GTK_SIGNAL_FUNC(SaveScn),    gui_cfg.scn_save_shell);  gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(gui_cfg.scn_save_shell)->      cancel_button), "clicked", GTK_SIGNAL_FUNC(guitl_PopdownW),    gui_cfg.scn_save_shell);  if(popup)    gtk_widget_show(gui_cfg.scn_save_shell);}static void LoadScn(GtkObject * object, gpointer func_data){  const char *fn =    gtk_file_selection_get_filename(GTK_FILE_SELECTION(gui_cfg.      scn_load_shell));  if(fn && *fn)  {    int rv;    LOCK_GCFG;    cfg_set_all_to_default();    cfg.xi_face = TRUE;    rv = cfg_load(fn);    _MT_CFGSTAMP;    UNLOCK_GCFG;    memset(&cfg.local_ip_addr, '\0', sizeof(cfg.local_ip_addr));    if(cfg.local_ip &&      (net_host_to_in_addr(cfg.local_ip, &cfg.local_ip_addr)))    {      xherror(cfg.local_ip);    }    if(rv)      gdk_beep();    else    {      gtk_check_menu_item_set_state(GTK_CHECK_MENU_ITEM(gui_cfg.modegr[cfg.            mode]), TRUE);      if(!cfg.processing)      {        gtk_widget_set_sensitive(gui_cfg.bt_start, FALSE);        gtk_widget_set_sensitive(gui_cfg.mea_start, FALSE);        gtk_widget_set_sensitive(gui_cfg.mtb_start, FALSE);        free_all();        cfg.total_cnt = 0;        cfg.urlstack = NULL;        cfg.mode_started = FALSE;      }      if(gui_cfg.cfg_limits)        xset_cfg_values_lim();      if(gui_cfg.config_shell)        xset_cfg_values_comm();#ifdef DEBUG      gui_set_debug_level_mi();      gtk_check_menu_item_set_state(GTK_CHECK_MENU_ITEM(gui_cfg.me_debug),        cfg.debug);#endif#ifdef HAVE_MT      gtk_check_menu_item_set_state(GTK_CHECK_MENU_ITEM(gui_cfg.immessages),        cfg.immessages);#endif      gtk_check_menu_item_set_state(GTK_CHECK_MENU_ITEM(gui_cfg.me_quiet),        cfg.quiet);      gtk_widget_hide(gui_cfg.scn_load_shell);    }  }  else    gdk_beep();}void gui_build_scenario_loader(int popup){  if(gui_cfg.scn_load_shell)  {    if(popup)    {      gtk_widget_show_all(gui_cfg.scn_load_shell);      if(GTK_WIDGET_REALIZED(gui_cfg.scn_load_shell))        gdk_window_raise(gui_cfg.scn_load_shell->window);    }    return;  }  gui_cfg.scn_load_shell =    gtk_file_selection_new(gettext("Pavuk: Scenario loader"));  gtk_signal_connect(GTK_OBJECT(gui_cfg.scn_load_shell), "destroy",    GTK_SIGNAL_FUNC(gtk_widget_destroyed), &gui_cfg.scn_load_shell);  gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(gui_cfg.scn_load_shell)->      ok_button), "clicked", GTK_SIGNAL_FUNC(LoadScn),    gui_cfg.scn_load_shell);  gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(gui_cfg.scn_load_shell)->      cancel_button), "clicked", GTK_SIGNAL_FUNC(guitl_PopdownW),    gui_cfg.scn_load_shell);  if(popup)    gtk_widget_show(gui_cfg.scn_load_shell);}static void AddScn(GtkObject * object, gpointer func_data){  const char *fn =    gtk_file_selection_get_filename(GTK_FILE_SELECTION(gui_cfg.      scn_add_shell));  if(fn && *fn)  {    int rv;    LOCK_GCFG;    rv = cfg_load(fn);    _MT_CFGSTAMP;    UNLOCK_GCFG;    memset(&cfg.local_ip_addr, '\0', sizeof(cfg.local_ip_addr));    if(cfg.local_ip &&      (net_host_to_in_addr(cfg.local_ip, &cfg.local_ip_addr)))    {      xherror(cfg.local_ip);    }    if(rv)      gdk_beep();    else    {      gtk_check_menu_item_set_state(GTK_CHECK_MENU_ITEM(gui_cfg.modegr[cfg.            mode]), TRUE);      if(!cfg.processing)      {        gtk_widget_set_sensitive(gui_cfg.bt_start, FALSE);        gtk_widget_set_sensitive(gui_cfg.mea_start, FALSE);        gtk_widget_set_sensitive(gui_cfg.mtb_start, FALSE);        free_all();        cfg.total_cnt = 0;        cfg.urlstack = NULL;        cfg.mode_started = FALSE;      }      if(gui_cfg.cfg_limits)        xset_cfg_values_lim();      if(gui_cfg.config_shell)        xset_cfg_values_comm();#ifdef DEBUG      gui_set_debug_level_mi();      gtk_check_menu_item_set_state(GTK_CHECK_MENU_ITEM(gui_cfg.me_debug),        cfg.debug);#endif#ifdef HAVE_MT      gtk_check_menu_item_set_state(GTK_CHECK_MENU_ITEM(gui_cfg.immessages),        cfg.immessages);#endif      gtk_check_menu_item_set_state(GTK_CHECK_MENU_ITEM(gui_cfg.me_quiet),        cfg.quiet);      gtk_widget_hide(gui_cfg.scn_add_shell);    }  }  else    gdk_beep();}void gui_build_scenario_adder(int popup){  if(gui_cfg.scn_add_shell)  {    if(popup)    {      gtk_widget_show_all(gui_cfg.scn_add_shell);      if(GTK_WIDGET_REALIZED(gui_cfg.scn_add_shell))        gdk_window_raise(gui_cfg.scn_add_shell->window);    }    return;  }  gui_cfg.scn_add_shell =    gtk_file_selection_new(gettext("Pavuk: Scenario add"));  gtk_signal_connect(GTK_OBJECT(gui_cfg.scn_add_shell), "destroy",    GTK_SIGNAL_FUNC(gtk_widget_destroyed), &gui_cfg.scn_add_shell);  gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(gui_cfg.scn_add_shell)->      ok_button), "clicked", GTK_SIGNAL_FUNC(AddScn), gui_cfg.scn_add_shell);  gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(gui_cfg.scn_add_shell)->      cancel_button), "clicked", GTK_SIGNAL_FUNC(guitl_PopdownW),    gui_cfg.scn_add_shell);  if(popup)    gtk_widget_show(gui_cfg.scn_add_shell);}#endif /* GTK_FACE */

⌨️ 快捷键说明

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