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

📄 options_dialog.c

📁 一个linux下的ftp程序。它是使用文件传输协议的一系列程序的集合。
💻 C
📖 第 1 页 / 共 4 页
字号:
{  gftp_proxy_hosts *hosts;  char *add_data[2];  int num;  hosts = templist->data;  if (hosts->domain)    {      add_data[0] = hosts->domain;      add_data[1] = NULL;      num = gtk_clist_append (GTK_CLIST (proxy_list), add_data);    }  else    {      add_data[0] = g_strdup_printf ("%d.%d.%d.%d",				     hosts->ipv4_network_address >> 24 & 0xff,				     hosts->ipv4_network_address >> 16 & 0xff,				     hosts->ipv4_network_address >> 8 & 0xff,				     hosts->ipv4_network_address & 0xff);      add_data[1] = g_strdup_printf ("%d.%d.%d.%d",				     hosts->ipv4_netmask >> 24 & 0xff,				     hosts->ipv4_netmask >> 16 & 0xff,				     hosts->ipv4_netmask >> 8 & 0xff,				     hosts->ipv4_netmask & 0xff);      num = gtk_clist_append (GTK_CLIST (proxy_list), add_data);      g_free (add_data[0]);      g_free (add_data[1]);    }  gtk_clist_set_row_data (GTK_CLIST (proxy_list), num, (gpointer) templist);}static voidadd_ok (GtkWidget * widget, gpointer data){  gftp_proxy_hosts *hosts;  const char *edttxt;  GList *templist;  int num;  templist = data;  if (templist == NULL)    {      hosts = g_malloc0 (sizeof (*hosts));      new_proxy_hosts = g_list_append (new_proxy_hosts, hosts);      for (templist = new_proxy_hosts; templist->next != NULL;	   templist = templist->next);    }  else    {      num = gtk_clist_find_row_from_data (GTK_CLIST (proxy_list), templist);      if (num != -1)	gtk_clist_remove (GTK_CLIST (proxy_list), num);      hosts = templist->data;    }  if (hosts->domain)    {      g_free (hosts->domain);      hosts->domain = NULL;    }  if (GTK_TOGGLE_BUTTON (domain_active)->active)    {      edttxt = gtk_entry_get_text (GTK_ENTRY (new_proxy_domain));      hosts->domain = g_strdup (edttxt);      hosts->ipv4_netmask = hosts->ipv4_network_address = 0;    }  else    {      edttxt = gtk_entry_get_text (GTK_ENTRY (network1));      hosts->ipv4_network_address = (strtol (edttxt, NULL, 10) & 0xff) << 24;      edttxt = gtk_entry_get_text (GTK_ENTRY (network2));      hosts->ipv4_network_address |= (strtol (edttxt, NULL, 10) & 0xff) << 16;      edttxt = gtk_entry_get_text (GTK_ENTRY (network3));      hosts->ipv4_network_address |= (strtol (edttxt, NULL, 10) & 0xff) << 8;      edttxt = gtk_entry_get_text (GTK_ENTRY (network4));      hosts->ipv4_network_address |= strtol (edttxt, NULL, 10) & 0xff;      edttxt = gtk_entry_get_text (GTK_ENTRY (netmask1));      hosts->ipv4_netmask = (strtol (edttxt, NULL, 10) & 0xff) << 24;      edttxt = gtk_entry_get_text (GTK_ENTRY (netmask2));      hosts->ipv4_netmask |= (strtol (edttxt, NULL, 10) & 0xff) << 16;      edttxt = gtk_entry_get_text (GTK_ENTRY (netmask3));      hosts->ipv4_netmask |= (strtol (edttxt, NULL, 10) & 0xff) << 8;      edttxt = gtk_entry_get_text (GTK_ENTRY (netmask4));      hosts->ipv4_netmask |= strtol (edttxt, NULL, 10) & 0xff;    }  add_host_to_listbox (templist);}#if GTK_MAJOR_VERSION > 1static voidproxyhosts_action (GtkWidget * widget, gint response, gpointer user_data){  switch (response)    {      case GTK_RESPONSE_OK:        add_ok (widget, user_data);        /* no break */      default:        gtk_widget_destroy (widget);    }}#endifstatic voidadd_toggle (GtkWidget * widget, gpointer data){  gtk_widget_set_sensitive (new_proxy_domain, data != NULL);  gtk_widget_set_sensitive (domain_label, data != NULL);  gtk_widget_set_sensitive (network_label, data == NULL);  gtk_widget_set_sensitive (netmask_label, data == NULL);  gtk_widget_set_sensitive (network1, data == NULL);  gtk_widget_set_sensitive (network2, data == NULL);  gtk_widget_set_sensitive (network3, data == NULL);  gtk_widget_set_sensitive (network4, data == NULL);  gtk_widget_set_sensitive (netmask1, data == NULL);  gtk_widget_set_sensitive (netmask2, data == NULL);  gtk_widget_set_sensitive (netmask3, data == NULL);  gtk_widget_set_sensitive (netmask4, data == NULL);}static voidbuttons_toggle (GtkWidget * widget, gint row, gint col, GdkEventButton * event, gpointer data){  gtk_widget_set_sensitive (edit_button, data != NULL);  gtk_widget_set_sensitive (delete_button, data != NULL);}  static voiddelete_proxy_host (GtkWidget * widget, gpointer data){  GList *templist;  int num;  gftp_configuration_changed = 1; /* FIXME */  if ((templist = GTK_CLIST (proxy_list)->selection) == NULL)    return;  num = GPOINTER_TO_INT (templist->data);  templist = gtk_clist_get_row_data (GTK_CLIST (proxy_list), num);  new_proxy_hosts = g_list_remove_link (new_proxy_hosts, templist);  gtk_clist_remove (GTK_CLIST (proxy_list), num);  buttons_toggle (NULL, 0, 0, 0, NULL);}static voidadd_proxy_host (GtkWidget * widget, gpointer data){  GtkWidget *tempwid, *dialog, *box, *rbox, *vbox, *nradio, *table;  gftp_proxy_hosts *hosts;  char *tempstr, *title;  GList *templist;  gftp_configuration_changed = 1; /* FIXME */  if (data)    {      if ((templist = GTK_CLIST (proxy_list)->selection) == NULL)	return;      templist = gtk_clist_get_row_data (GTK_CLIST (proxy_list),                                          GPOINTER_TO_INT (templist->data));      hosts = templist->data;    }  else    {      hosts = NULL;      templist = NULL;    }  title = hosts ? _("Edit Host") : _("Add Host");#if GTK_MAJOR_VERSION == 1  dialog = gtk_dialog_new ();  gtk_window_set_title (GTK_WINDOW (dialog), title);  gtk_container_border_width (GTK_CONTAINER			      (GTK_DIALOG (dialog)->action_area), 5);  gtk_box_set_spacing (GTK_BOX (GTK_DIALOG (dialog)->action_area), 15);  gtk_box_set_homogeneous (GTK_BOX (GTK_DIALOG (dialog)->action_area), TRUE);  gtk_grab_add (dialog);  gtk_container_border_width (GTK_CONTAINER (GTK_DIALOG (dialog)->vbox), 10);#else  dialog = gtk_dialog_new_with_buttons (title, NULL, 0,                                        GTK_STOCK_CANCEL,                                        GTK_RESPONSE_CANCEL,                                        GTK_STOCK_SAVE,                                        GTK_RESPONSE_OK,                                        NULL);  gtk_container_set_border_width (GTK_CONTAINER (dialog), 5);  gtk_dialog_set_has_separator (GTK_DIALOG (dialog), FALSE);  gtk_window_set_resizable (GTK_WINDOW (dialog), FALSE);#endif  gtk_box_set_spacing (GTK_BOX (GTK_DIALOG (dialog)->vbox), 2);  gtk_window_set_wmclass (GTK_WINDOW(dialog), "hostinfo", "Gftp");  gtk_window_set_position (GTK_WINDOW (dialog), GTK_WIN_POS_MOUSE);#if GTK_MAJOR_VERSION > 1  if (gftp_icon != NULL)    {      if ((tempstr = get_xpm_path (gftp_icon->filename, 0)) != NULL)        {         gtk_window_set_default_icon_from_file (tempstr, NULL);	 g_free (tempstr);        }    }#endif  vbox = gtk_vbox_new (FALSE, 6);  gtk_container_border_width (GTK_CONTAINER (vbox), 5);  gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), vbox, FALSE, FALSE, 0);  gtk_widget_show (vbox);      box = gtk_hbox_new (FALSE, 12);  gtk_box_pack_start (GTK_BOX (vbox), box, FALSE, FALSE, 0);  gtk_widget_show (box);  #if GTK_MAJOR_VERSION == 1  tempwid = gtk_label_new (_("Type:"))#else  tempwid = gtk_label_new_with_mnemonic (_("_Type:"));#endif  gtk_misc_set_alignment (GTK_MISC (tempwid), 0, 0);  gtk_box_pack_start (GTK_BOX (box), tempwid, FALSE, FALSE, 0);  gtk_widget_show (tempwid);    rbox = gtk_vbox_new (FALSE, 6);  gtk_box_pack_start (GTK_BOX (box), rbox, TRUE, TRUE, 0);  gtk_widget_show (rbox);    domain_active = gtk_radio_button_new_with_label (NULL, _("Domain"));  gtk_signal_connect (GTK_OBJECT (domain_active), "toggled",		      GTK_SIGNAL_FUNC (add_toggle), (gpointer) 1);    nradio = gtk_radio_button_new_with_label (gtk_radio_button_group                                            (GTK_RADIO_BUTTON (domain_active)),                                           _("Network"));  gtk_signal_connect (GTK_OBJECT (nradio), "toggled",		      GTK_SIGNAL_FUNC (add_toggle), NULL);#if GTK_MAJOR_VERSION > 1  gtk_label_set_mnemonic_widget (GTK_LABEL (tempwid), nradio);#endif  gtk_box_pack_start (GTK_BOX (rbox), nradio, TRUE, TRUE, 0);  gtk_widget_show (nradio);  gtk_box_pack_start (GTK_BOX (rbox), domain_active, TRUE, TRUE, 0);  gtk_widget_show (domain_active);  box = gtk_hbox_new (FALSE, 12);  gtk_box_pack_start (GTK_BOX (vbox), box, FALSE, FALSE, 0);  gtk_widget_show (box);  tempwid = gtk_label_new ("    ");  gtk_box_pack_start (GTK_BOX (box), tempwid, FALSE, FALSE, 0);  gtk_widget_show (tempwid);  table = gtk_table_new (2, 2, FALSE);  gtk_table_set_row_spacings (GTK_TABLE (table), 6);  gtk_table_set_col_spacings (GTK_TABLE (table), 12);  gtk_box_pack_start (GTK_BOX (box), table, FALSE, FALSE, 0);  gtk_widget_show (table);#if GTK_MAJOR_VERSION == 1  tempwid = gtk_label_new (_("Network Address"));#else  tempwid = gtk_label_new_with_mnemonic (_("_Network address:"));#endif  network_label = tempwid;  gtk_misc_set_alignment (GTK_MISC (tempwid), 0, 0.5);  gtk_table_attach_defaults (GTK_TABLE (table), tempwid, 0, 1, 0, 1);  gtk_widget_show (tempwid);  box = gtk_hbox_new (FALSE, 6);  gtk_table_attach_defaults (GTK_TABLE (table), box, 1, 2, 0, 1);  gtk_widget_show (box);  network1 = gtk_entry_new ();  gtk_widget_set_size_request (network1, 36, -1);#if GTK_MAJOR_VERSION > 1  gtk_label_set_mnemonic_widget (GTK_LABEL (tempwid), network1);#endif  gtk_box_pack_start (GTK_BOX (box), network1, TRUE, TRUE, 0);  gtk_widget_show (network1);  network2 = gtk_entry_new ();  gtk_widget_set_size_request (network2, 36, -1);  gtk_box_pack_start (GTK_BOX (box), network2, TRUE, TRUE, 0);  gtk_widget_show (network2);  network3 = gtk_entry_new ();  gtk_widget_set_size_request (network3, 36, -1);  gtk_box_pack_start (GTK_BOX (box), network3, TRUE, TRUE, 0);  gtk_widget_show (network3);  network4 = gtk_entry_new ();  gtk_widget_set_size_request (network4, 36, -1);  gtk_box_pack_start (GTK_BOX (box), network4, TRUE, TRUE, 0);  gtk_widget_show (network4);#if GTK_MAJOR_VERSION == 1  tempwid = gtk_label_new (_("Netmask"));#else  tempwid = gtk_label_new_with_mnemonic (_("N_etmask:"));#endif  netmask_label = tempwid;  gtk_misc_set_alignment (GTK_MISC (tempwid), 0, 0.5);  gtk_table_attach_defaults (GTK_TABLE (table), tempwid, 0, 1, 1, 2);  gtk_widget_show (tempwid);  box = gtk_hbox_new (FALSE, 6);  gtk_table_attach_defaults (GTK_TABLE (table), box, 1, 2, 1, 2);  gtk_widget_show (box);  netmask1 = gtk_entry_new ();  gtk_widget_set_size_request (netmask1, 36, -1);#if GTK_MAJOR_VERSION > 1  gtk_label_set_mnemonic_widget (GTK_LABEL (tempwid), netmask1);#endif  gtk_box_pack_start (GTK_BOX (box), netmask1, TRUE, TRUE, 0);  gtk_widget_show (netmask1);  netmask2 = gtk_entry_new ();  gtk_widget_set_size_request (netmask2, 36, -1);  gtk_box_pack_start (GTK_BOX (box), netmask2, TRUE, TRUE, 0);  gtk_widget_show (netmask2);  netmask3 = gtk_entry_new ();  gtk_widget_set_size_request (netmask3, 36, -1);  gtk_box_pack_start (GTK_BOX (box), netmask3, TRUE, TRUE, 0);  gtk_widget_show (netmask3);  netmask4 = gtk_entry_new ();  gtk_widget_set_size_request (netmask4, 36, -1);  gtk_box_pack_start (GTK_BOX (box), netmask4, TRUE, TRUE, 0);  gtk_widget_show (netmask4);  box = gtk_hbox_new (FALSE, 12);  gtk_box_pack_start (GTK_BOX (vbox), box, TRUE, TRUE, 0);  gtk_widget_show (box);  tempwid = gtk_label_new ("    ");  gtk_box_pack_start (GTK_BOX (box), tempwid, FALSE, FALSE, 0);  gtk_widget_show (tempwid);#if GTK_MAJOR_VERSION == 1  tempwid = gtk_label_new (_("Domain"));#else  tempwid = gtk_label_new_with_mnemonic (_("_Domain:"));#endif  domain_label = tempwid;  gtk_misc_set_alignment (GTK_MISC (tempwid), 0, 0.5);  gtk_box_pack_start (GTK_BOX (box), tempwid, FALSE, FALSE, 0);  gtk_widget_show (tempwid);  new_proxy_domain = gtk_entry_new ();  gtk_box_pack_start (GTK_BOX (box), new_proxy_domain, TRUE, TRUE, 0);  gtk_widget_show (new_proxy_domain);#if GTK_MAJOR_VERSION > 1  gtk_label_set_mnemonic_widget (GTK_LABEL (tempwid), new_proxy_domain);#endif  if (!hosts || !hosts->domain)    {      gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (nradio), TRUE);      add_toggle (NULL, NULL);    }  else    {      gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (domain_active), TRUE);      add_toggle (NULL, (gpointer) 1);

⌨️ 快捷键说明

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