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

📄 options_dialog.c

📁 一个linux下的ftp程序。它是使用文件传输协议的一系列程序的集合。
💻 C
📖 第 1 页 / 共 4 页
字号:
    }  if (hosts)    {      if (hosts->domain)        gtk_entry_set_text (GTK_ENTRY (new_proxy_domain), hosts->domain);      else	{	  tempstr = g_strdup_printf ("%d", hosts->ipv4_network_address >> 24 & 0xff);	  gtk_entry_set_text (GTK_ENTRY (network1), tempstr);	  g_free (tempstr);	  tempstr = g_strdup_printf ("%d", hosts->ipv4_network_address >> 16 & 0xff);	  gtk_entry_set_text (GTK_ENTRY (network2), tempstr);	  g_free (tempstr);	  tempstr = g_strdup_printf ("%d", hosts->ipv4_network_address >> 8 & 0xff);	  gtk_entry_set_text (GTK_ENTRY (network3), tempstr);	  g_free (tempstr);	  tempstr = g_strdup_printf ("%d", hosts->ipv4_network_address & 0xff);	  gtk_entry_set_text (GTK_ENTRY (network4), tempstr);	  g_free (tempstr);	  tempstr = g_strdup_printf ("%d", hosts->ipv4_netmask >> 24 & 0xff);	  gtk_entry_set_text (GTK_ENTRY (netmask1), tempstr);	  g_free (tempstr);	  tempstr = g_strdup_printf ("%d", hosts->ipv4_netmask >> 16 & 0xff);	  gtk_entry_set_text (GTK_ENTRY (netmask2), tempstr);	  g_free (tempstr);	  tempstr = g_strdup_printf ("%d", hosts->ipv4_netmask >> 8 & 0xff);	  gtk_entry_set_text (GTK_ENTRY (netmask3), tempstr);	  g_free (tempstr);	  tempstr = g_strdup_printf ("%d", hosts->ipv4_netmask & 0xff);	  gtk_entry_set_text (GTK_ENTRY (netmask4), tempstr);	  g_free (tempstr);	}    }#if GTK_MAJOR_VERSION == 1  tempwid = gtk_button_new_with_label (_("OK"));  GTK_WIDGET_SET_FLAGS (tempwid, GTK_CAN_DEFAULT);  gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->action_area), tempwid,		      TRUE, TRUE, 0);  gtk_signal_connect (GTK_OBJECT (tempwid), "clicked",		      GTK_SIGNAL_FUNC (add_ok), (gpointer) templist);  gtk_signal_connect_object (GTK_OBJECT (tempwid), "clicked",			     GTK_SIGNAL_FUNC (gtk_widget_destroy),			     GTK_OBJECT (dialog));  gtk_widget_show (tempwid);  tempwid = gtk_button_new_with_label (_("  Cancel  "));  GTK_WIDGET_SET_FLAGS (tempwid, GTK_CAN_DEFAULT);  gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->action_area), tempwid,		      TRUE, TRUE, 0);  gtk_signal_connect_object (GTK_OBJECT (tempwid), "clicked",			     GTK_SIGNAL_FUNC (gtk_widget_destroy),			     GTK_OBJECT (dialog));  gtk_widget_show (tempwid);#else  g_signal_connect (GTK_OBJECT (dialog), "response",                    G_CALLBACK (proxyhosts_action), NULL);#endif  gtk_widget_show (dialog);}static voidmake_proxy_hosts_tab (GtkWidget * notebook){  GtkWidget *tempwid, *box, *hbox, *scroll;  gftp_config_list_vars * proxy_hosts;  char *add_data[2];  GList * templist;  add_data[0] = _("Network");  add_data[1] = _("Netmask");  box = gtk_vbox_new (FALSE, 6);  gtk_container_border_width (GTK_CONTAINER (box), 12);  gtk_widget_show (box);  tempwid = gtk_label_new (_("Local Hosts"));  gtk_widget_show (tempwid);  gtk_notebook_append_page (GTK_NOTEBOOK (notebook), box, tempwid);  scroll = gtk_scrolled_window_new (NULL, NULL);  gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scroll),				  GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);  gtk_box_pack_start (GTK_BOX (box), scroll, TRUE, TRUE, 0);  proxy_list = gtk_clist_new_with_titles (2, add_data);  gtk_container_add (GTK_CONTAINER (scroll), proxy_list);  gtk_clist_set_column_auto_resize (GTK_CLIST (proxy_list), 0, TRUE);  gtk_clist_set_column_auto_resize (GTK_CLIST (proxy_list), 1, TRUE);  gtk_widget_show (proxy_list);  gtk_widget_show (scroll);  gftp_lookup_global_option ("dont_use_proxy", &proxy_hosts);  new_proxy_hosts = gftp_copy_proxy_hosts (proxy_hosts->list);  for (templist = new_proxy_hosts;       templist != NULL;       templist = templist->next)    add_host_to_listbox (templist);  hbox = gtk_hbox_new (TRUE, 12);  gtk_box_pack_start (GTK_BOX (box), hbox, FALSE, FALSE, 0);  gtk_widget_show (hbox);#if GTK_MAJOR_VERSION == 1  tempwid = gtk_button_new_with_label (_("Add"));#else  tempwid = gtk_button_new_from_stock (GTK_STOCK_ADD);#endif  GTK_WIDGET_SET_FLAGS (tempwid, GTK_CAN_DEFAULT);  gtk_box_pack_start (GTK_BOX (hbox), tempwid, TRUE, TRUE, 0);  gtk_signal_connect (GTK_OBJECT (tempwid), "clicked",		      GTK_SIGNAL_FUNC (add_proxy_host), NULL);  gtk_widget_show (tempwid);#if GTK_MAJOR_VERSION == 1  tempwid = gtk_button_new_with_label (_("Edit"));#elif GTK_MAJOR_VERSION == 2 && GTK_MINOR_VERSION < 5  tempwid = gtk_button_new_with_mnemonic (_("_Edit"));#else  tempwid = gtk_button_new_from_stock (GTK_STOCK_EDIT);#endif  edit_button = tempwid;  GTK_WIDGET_SET_FLAGS (tempwid, GTK_CAN_DEFAULT);  gtk_box_pack_start (GTK_BOX (hbox), tempwid, TRUE, TRUE, 0);  gtk_signal_connect (GTK_OBJECT (tempwid), "clicked",		      GTK_SIGNAL_FUNC (add_proxy_host), (gpointer) 1);  gtk_widget_show (tempwid);#if GTK_MAJOR_VERSION == 1  tempwid = gtk_button_new_with_label (_("Delete"));#else  tempwid = gtk_button_new_from_stock (GTK_STOCK_DELETE);#endif  delete_button = tempwid;  GTK_WIDGET_SET_FLAGS (tempwid, GTK_CAN_DEFAULT);  gtk_box_pack_start (GTK_BOX (hbox), tempwid, TRUE, TRUE, 0);  gtk_signal_connect (GTK_OBJECT (tempwid), "clicked",		      GTK_SIGNAL_FUNC (delete_proxy_host), NULL);  gtk_widget_show (tempwid);  gtk_signal_connect (GTK_OBJECT (proxy_list), "select_row",                       GTK_SIGNAL_FUNC (buttons_toggle), (gpointer) 1);  gtk_signal_connect (GTK_OBJECT (proxy_list), "unselect_row",                       GTK_SIGNAL_FUNC (buttons_toggle), NULL);  buttons_toggle (NULL, 0, 0, 0, NULL);}static gftp_options_dialog_data *_init_option_data (void){  gftp_options_dialog_data * option_data;  option_data = g_malloc0 (sizeof (*option_data));  _setup_option (gftp_option_type_text, option_data,                  _print_option_type_text, _save_option_type_text, NULL);  _setup_option (gftp_option_type_textcombo, option_data,                  _print_option_type_textcombo, _save_option_type_textcombo,                  NULL);  _setup_option (gftp_option_type_textcomboedt, option_data,                  _print_option_type_textcomboedt,                  _save_option_type_textcomboedt,                 NULL);  _setup_option (gftp_option_type_hidetext, option_data,                  _print_option_type_hidetext, _save_option_type_text, NULL);  _setup_option (gftp_option_type_int, option_data,                  _print_option_type_int, _save_option_type_int, NULL);  _setup_option (gftp_option_type_checkbox, option_data,                  _print_option_type_checkbox, _save_option_type_checkbox, NULL);  _setup_option (gftp_option_type_float, option_data,                  _print_option_type_float, _save_option_type_float, NULL);  _setup_option (gftp_option_type_notebook, option_data,                  _print_option_type_notebook, NULL, NULL);  return (option_data);}voidoptions_dialog (gpointer data){  gftp_config_vars * cv;  GList * templist;  void *value;  int i;#if GTK_MAJOR_VERSION == 1  GtkWidget * tempwid;#endif  gftp_option_data = _init_option_data ();#if GTK_MAJOR_VERSION == 1  gftp_option_data->dialog = gtk_dialog_new ();  gtk_window_set_title (GTK_WINDOW (gftp_option_data->dialog), _("Options"));  gtk_container_border_width (GTK_CONTAINER (GTK_DIALOG (gftp_option_data->dialog)->action_area), 5);  gtk_box_set_spacing (GTK_BOX (GTK_DIALOG (gftp_option_data->dialog)->action_area), 15);  gtk_box_set_homogeneous (GTK_BOX (GTK_DIALOG (gftp_option_data->dialog)->action_area), TRUE);#else  gftp_option_data->dialog = gtk_dialog_new_with_buttons (_("Options"), NULL, 0,                                        GTK_STOCK_APPLY,                                        GTK_RESPONSE_APPLY,                                        GTK_STOCK_CANCEL,                                        GTK_RESPONSE_CANCEL,                                        GTK_STOCK_OK,                                        GTK_RESPONSE_OK,                                        NULL);  gtk_container_set_border_width (GTK_CONTAINER (gftp_option_data->dialog), 5);  gtk_dialog_set_has_separator (GTK_DIALOG (gftp_option_data->dialog), FALSE);  gtk_window_set_resizable (GTK_WINDOW (gftp_option_data->dialog), FALSE);#endif  gtk_window_set_wmclass (GTK_WINDOW(gftp_option_data->dialog),                          "options", "gFTP");  gtk_window_set_position (GTK_WINDOW (gftp_option_data->dialog),                           GTK_WIN_POS_MOUSE);#if GTK_MAJOR_VERSION == 1  gtk_container_border_width (GTK_CONTAINER (GTK_DIALOG (gftp_option_data->dialog)->vbox), 10);#endif  gtk_box_set_spacing (GTK_BOX (GTK_DIALOG (gftp_option_data->dialog)->vbox), 2);  gtk_widget_realize (gftp_option_data->dialog);  if (gftp_icon != NULL)    {      gdk_window_set_icon (gftp_option_data->dialog->window, NULL,                           gftp_icon->pixmap, gftp_icon->bitmap);      gdk_window_set_icon_name (gftp_option_data->dialog->window, gftp_version);    }  gftp_option_data->notebook = gtk_notebook_new ();  gtk_box_pack_start (GTK_BOX (GTK_DIALOG (gftp_option_data->dialog)->vbox),                       gftp_option_data->notebook, TRUE, TRUE, 0);  gtk_widget_show (gftp_option_data->notebook);#if GTK_MAJOR_VERSION > 1  gtk_container_border_width (GTK_CONTAINER (gftp_option_data->notebook), 5);#endif  cv = gftp_options_list->data;  gftp_option_data->last_option = cv[0].otype;  for (templist = gftp_options_list;        templist != NULL;        templist = templist->next)    {      cv = templist->data;      for (i=0; cv[i].key != NULL; i++)        {          if (!(cv[i].ports_shown & GFTP_PORT_GTK))            continue;          if (gftp_option_types[cv[i].otype].ui_print_function == NULL)            continue;          if (*cv[i].key != '\0')            gftp_lookup_global_option (cv[i].key, &value);          else            value = NULL;          cv[i].user_data = gftp_option_types[cv[i].otype].ui_print_function (&cv[i], gftp_option_types[cv[i].otype].user_data, value);          gftp_option_data->last_option = cv[i].otype;        }    }  make_proxy_hosts_tab (gftp_option_data->notebook);#if GTK_MAJOR_VERSION == 1  tempwid = gtk_button_new_with_label (_("OK"));  GTK_WIDGET_SET_FLAGS (tempwid, GTK_CAN_DEFAULT);  gtk_box_pack_start (GTK_BOX (GTK_DIALOG (gftp_option_data->dialog)->action_area),                       tempwid, TRUE, TRUE, 0);  gtk_signal_connect (GTK_OBJECT (tempwid), "clicked",                      GTK_SIGNAL_FUNC (apply_changes), NULL);  gtk_signal_connect_object (GTK_OBJECT (tempwid), "clicked",                             GTK_SIGNAL_FUNC (gtk_widget_destroy),                             GTK_OBJECT (gftp_option_data->dialog));  gtk_widget_show (tempwid);  tempwid = gtk_button_new_with_label (_("  Cancel  "));  GTK_WIDGET_SET_FLAGS (tempwid, GTK_CAN_DEFAULT);  gtk_box_pack_start (GTK_BOX (GTK_DIALOG (gftp_option_data->dialog)->action_area),                       tempwid, TRUE, TRUE, 0);  gtk_signal_connect (GTK_OBJECT (tempwid), "clicked",                      GTK_SIGNAL_FUNC (clean_old_changes), NULL);  gtk_signal_connect_object (GTK_OBJECT (tempwid), "clicked",                             GTK_SIGNAL_FUNC (gtk_widget_destroy),                             GTK_OBJECT (gftp_option_data->dialog));  gtk_widget_show (tempwid);  tempwid = gtk_button_new_with_label (_("Apply"));  GTK_WIDGET_SET_FLAGS (tempwid, GTK_CAN_DEFAULT);  gtk_box_pack_start (GTK_BOX (GTK_DIALOG (gftp_option_data->dialog)->action_area),                       tempwid, TRUE, TRUE, 0);  gtk_signal_connect (GTK_OBJECT (tempwid), "clicked",                      GTK_SIGNAL_FUNC (apply_changes), NULL);  gtk_widget_grab_default (tempwid);  gtk_widget_show (tempwid);#else  g_signal_connect (GTK_OBJECT (gftp_option_data->dialog), "response",                    G_CALLBACK (options_action), NULL);#endif  gtk_widget_show (gftp_option_data->dialog);}voidgftp_gtk_setup_bookmark_options (GtkWidget * notebook, gftp_bookmarks_var * bm){  gftp_config_vars * cv;  GList * templist;  void *value;  int i;  gftp_option_data = _init_option_data ();  gftp_option_data->bm = bm;  gftp_option_data->notebook = notebook;  cv = gftp_options_list->data;  gftp_option_data->last_option = cv[0].otype;  for (templist = gftp_options_list;        templist != NULL;        templist = templist->next)    {      cv = templist->data;      for (i=0; cv[i].key != NULL; i++)        {          if (!(cv[i].flags & GFTP_CVARS_FLAGS_SHOW_BOOKMARK))            continue;          if (gftp_option_types[cv[i].otype].ui_print_function == NULL)            continue;          if (*cv[i].key != '\0')            gftp_lookup_bookmark_option (bm, cv[i].key, &value);          else            value = NULL;          cv[i].user_data = gftp_option_types[cv[i].otype].ui_print_function (&cv[i], gftp_option_data, value);          gftp_option_data->last_option = cv[i].otype;        }    }}voidgftp_gtk_save_bookmark_options (gftp_bookmarks_var * bm){  gftp_config_vars * cv;  GList * templist;  int i;  for (templist = gftp_options_list;       templist != NULL;       templist = templist->next)    {      cv = templist->data;      for (i=0; cv[i].key != NULL; i++)        {          if (!(cv[i].flags & GFTP_CVARS_FLAGS_SHOW_BOOKMARK))            continue;          if (gftp_option_types[cv[i].otype].ui_save_function == NULL)            continue;          gftp_option_types[cv[i].otype].ui_save_function (&cv[i],                                                           gftp_option_data);        }    }}

⌨️ 快捷键说明

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