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

📄 options_dialog.c

📁 Linux下使用最为广泛的gftp的源码
💻 C
📖 第 1 页 / 共 3 页
字号:
  gtk_container_add (GTK_CONTAINER (frame), box);  gtk_widget_show (box);  tempwid = gtk_label_new (_("Domain"));  gtk_box_pack_start (GTK_BOX (box), tempwid, TRUE, TRUE, 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);  frame = gtk_frame_new (NULL);  gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), frame, TRUE, TRUE,		      0);  gtk_widget_show (frame);  table = gtk_table_new (4, 2, FALSE);  gtk_container_border_width (GTK_CONTAINER (table), 5);  gtk_table_set_row_spacings (GTK_TABLE (table), 5);  gtk_table_set_col_spacings (GTK_TABLE (table), 5);  gtk_container_add (GTK_CONTAINER (frame), table);  gtk_widget_show (table);  tempwid = gtk_label_new (_("Network Address"));  gtk_misc_set_alignment (GTK_MISC (tempwid), 1, 0.5);  gtk_table_attach_defaults (GTK_TABLE (table), tempwid, 0, 1, 0, 1);  gtk_widget_show (tempwid);  box = gtk_hbox_new (FALSE, 5);  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, 28, -1);  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, 28, -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, 28, -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, 28, -1);  gtk_box_pack_start (GTK_BOX (box), network4, TRUE, TRUE, 0);  gtk_widget_show (network4);  tempwid = gtk_label_new (_("Netmask"));  gtk_misc_set_alignment (GTK_MISC (tempwid), 1, 0.5);  gtk_table_attach_defaults (GTK_TABLE (table), tempwid, 0, 1, 1, 2);  gtk_widget_show (tempwid);  box = gtk_hbox_new (FALSE, 5);  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, 28, -1);  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, 28, -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, 28, -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, 28, -1);  gtk_box_pack_start (GTK_BOX (box), netmask4, TRUE, TRUE, 0);  gtk_widget_show (netmask4);  box = gtk_hbox_new (FALSE, 5);  gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), box, TRUE, TRUE,		      0);  gtk_widget_show (box);  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);  gtk_box_pack_start (GTK_BOX (box), domain_active, TRUE, TRUE, 0);  gtk_widget_show (domain_active);  tempwid = gtk_radio_button_new_with_label (gtk_radio_button_group				     (GTK_RADIO_BUTTON (domain_active)),				     _("Network"));  gtk_signal_connect (GTK_OBJECT (tempwid), "toggled",		      GTK_SIGNAL_FUNC (add_toggle), NULL);  gtk_box_pack_start (GTK_BOX (box), tempwid, TRUE, TRUE, 0);  gtk_widget_show (tempwid);  if (!hosts || !hosts->domain)    {      gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (tempwid), TRUE);      add_toggle (NULL, NULL);    }  else    {      gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (domain_active), TRUE);      add_toggle (NULL, (gpointer) 1);    }  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, 5);  gtk_container_border_width (GTK_CONTAINER (box), 10);  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, 15);  gtk_box_pack_start (GTK_BOX (box), hbox, FALSE, FALSE, 0);  gtk_widget_show (hbox);  tempwid = gtk_button_new_with_label (_("Add"));  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);  tempwid = gtk_button_new_with_label (_("Edit"));  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);  tempwid = gtk_button_new_with_label (_("Delete"));  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);}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_OK,                                        GTK_RESPONSE_OK,                                        GTK_STOCK_CANCEL,                                        GTK_RESPONSE_CANCEL,                                        GTK_STOCK_APPLY,                                        GTK_RESPONSE_APPLY,                                        NULL);#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);  gtk_container_border_width (GTK_CONTAINER (GTK_DIALOG (gftp_option_data->dialog)->vbox), 10);  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);  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 + -