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

📄 ngconf.c

📁 GNUnet是一个安全的点对点网络框架
💻 C
📖 第 1 页 / 共 2 页
字号:
          g_signal_connect (w, "toggled", G_CALLBACK (&radio_update), pos);          i++;        }      gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (choice), TRUE);      break;    case GNUNET_GNS_TYPE_DOUBLE:      GNUNET_snprintf (defStr, 128, "%llf", pos->value.Double.val);      w = gtk_entry_new ();      tooltip (w, pos->help);      label = gtk_label_new (pos->description);      gtk_label_set_mnemonic_widget (GTK_LABEL (label), w);      gtk_box_pack_start (GTK_BOX (box), label, FALSE, FALSE, 10);      g_signal_connect (w, "changed", G_CALLBACK (&string_update), pos);      gtk_entry_set_text (GTK_ENTRY (w), defStr);      gtk_box_pack_start (GTK_BOX (box), w, FALSE, FALSE, 0);      break;    case GNUNET_GNS_TYPE_UINT64:      w = gtk_spin_button_new_with_range (pos->value.UInt64.min,                                          pos->value.UInt64.max, 1);      tooltip (w, pos->help);      label = gtk_label_new (pos->description);      gtk_label_set_mnemonic_widget (GTK_LABEL (label), w);      gtk_box_pack_start (GTK_BOX (box), label, FALSE, FALSE, 10);      gtk_spin_button_set_value (GTK_SPIN_BUTTON (w), pos->value.UInt64.val);      gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (w), TRUE);      gtk_spin_button_set_digits (GTK_SPIN_BUTTON (w), 0);      g_signal_connect (w, "changed", G_CALLBACK (&string_update), pos);      gtk_box_pack_start (GTK_BOX (box), w, FALSE, FALSE, 0);      break;    default:      GNUNET_GE_ASSERT (NULL, 0);      return 0;    }  gtk_box_pack_start (GTK_BOX (parent), box, FALSE, FALSE, 10);  return 1;}static intaddNodeToTree (GtkNotebook * parent, struct GNUNET_GNS_TreeNode *pos){  int i;  struct GNUNET_GNS_TreeNode *child;  GtkNotebook *notebook;  GtkWidget *vbox;  GtkWidget *label;  GtkWidget *scroll;  int have;  have = 0;  i = 0;  vbox = gtk_vbox_new (FALSE, 0);  notebook = NULL;  while (NULL != (child = pos->children[i]))    {      switch (child->type & GNUNET_GNS_KIND_MASK)        {        case GNUNET_GNS_KIND_NODE:          if (notebook == NULL)            {              notebook = GTK_NOTEBOOK (gtk_notebook_new ());              gtk_box_pack_start (GTK_BOX (vbox), GTK_WIDGET (notebook), TRUE,                                  TRUE, 0);            }          have = have | addNodeToTree (notebook, child);          break;        case GNUNET_GNS_KIND_LEAF:          gtk_container_set_border_width (GTK_CONTAINER (vbox), 10);          have = have | addLeafToTree (vbox, child);          break;        case GNUNET_GNS_KIND_ROOT:        default:          GNUNET_GE_ASSERT (NULL, 0);          break;        }      i++;    }  if (have != 0)    {      label = gtk_label_new (pos->description);      gtk_widget_show_all (vbox);      gtk_widget_show_all (label);      scroll = gtk_scrolled_window_new (NULL, NULL);      gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scroll),                                      GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);      link_visibility (pos, scroll);      link_visibility (pos, label);      gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (scroll),                                             vbox);      gtk_notebook_append_page (parent, scroll, label);    }  else    {      g_object_unref (vbox);    }  return have;}static voidinitView (struct GNUNET_GNS_Context *gns){  GtkNotebook *notebook;  notebook = GTK_NOTEBOOK (lookup_widget ("configNotebook"));  addNodeToTree (notebook, GNUNET_GNS_get_tree_root (gns));  gtk_widget_show_all (GTK_WIDGET (notebook));  update_visibility ();}/** * User requested save manually.  Save configuration. */voidon_saveButton_activatesetup_gtk (){  GtkWidget *dialog;  if (0 == GNUNET_GC_write_configuration (cfg, cfg_filename))    {      dialog = gtk_message_dialog_new (NULL,                                       GTK_DIALOG_MODAL,                                       GTK_MESSAGE_INFO,                                       GTK_BUTTONS_OK,                                       _("Configuration saved."));      gtk_dialog_run (GTK_DIALOG (dialog));      gtk_widget_destroy (dialog);    }  else    {      dialog = gtk_message_dialog_new (NULL,                                       GTK_DIALOG_MODAL,                                       GTK_MESSAGE_ERROR,                                       GTK_BUTTONS_OK,                                       _("Failed to save configuration."));      gtk_dialog_run (GTK_DIALOG (dialog));      gtk_widget_destroy (dialog);    }}/** * User clicked to close window.  Check if configuration * needs saving and possibly save configuration or do not * exit. * * @return TRUE to NOT exit (i.e. user hits cancel on save GNUNET_YES/GNUNET_NO/CANCEL). */gbooleanon_main_window_delete_eventsetup_gtk (){  GtkWidget *dialog;  gint ret;  if (GNUNET_GC_test_dirty (cfg))    {      dialog = gtk_message_dialog_new (NULL,                                       GTK_DIALOG_MODAL,                                       GTK_MESSAGE_QUESTION,                                       GTK_BUTTONS_YES_NO,                                       _("Configuration changed. Save?"));      ret = gtk_dialog_run (GTK_DIALOG (dialog));      gtk_widget_destroy (dialog);      switch (ret)        {        case GTK_RESPONSE_YES:          if (0 != GNUNET_GC_write_configuration (cfg, cfg_filename))            {              dialog = gtk_message_dialog_new (NULL,                                               GTK_DIALOG_MODAL,                                               GTK_MESSAGE_ERROR,                                               GTK_BUTTONS_OK,                                               _                                               ("Error saving configuration."));              gtk_dialog_run (GTK_DIALOG (dialog));              gtk_widget_destroy (dialog);            }          return FALSE;        case GTK_RESPONSE_NO:          return FALSE;        case GTK_RESPONSE_CANCEL:        default:          return TRUE;        }    }  return FALSE;}/** * We're really exiting.  Final cleanup code (in GTK). */voidgtk_main_quitsetup_gtk (){  gtk_main_quit ();}intgconf_main_post_init (struct                      GNUNET_PluginHandle                      *self,                      struct                      GNUNET_GE_Context *e,                      struct                      GNUNET_GC_Configuration                      *c,                      struct                      GNUNET_GNS_Context *gns, const char *filename,                      int is_daemon){  GtkWidget *mainWindow;  cfg = c;  ectx = e;  cfg_filename = filename;  no_model = gtk_list_store_new (1, G_TYPE_STRING);  setLibrary (self);#if GTK_MAJOR_VERSION >= 2 && GTK_MINOR_VERSION >= 12#else  tips = gtk_tooltips_new ();#endif  mainWindow = get_xml ("setupWindow");  initView (gns);  gtk_window_maximize (GTK_WINDOW (mainWindow));  gtk_widget_show (mainWindow);  gdk_threads_enter ();#ifdef WINDOWS  SetCursor (LoadCursor (NULL, IDC_ARROW));#endif  gtk_main ();  gdk_threads_leave ();  destroyMainXML ();  setLibrary (NULL);  g_object_unref (G_OBJECT (no_model));  no_model = NULL;  return 0;}/* Main */intgconf_mainsetup_gtk (int argc,                     const char                     **argv,                     struct                     GNUNET_PluginHandle                     *self,                     struct GNUNET_GE_Context                     *ectx,                     struct                     GNUNET_GC_Configuration                     *cfg,                     struct                     GNUNET_GNS_Context *gns, const char *filename,                     int is_daemon){  g_thread_init (NULL);  gtk_init (&argc, (char ***) &argv);#if ENABLE_NLS  bind_textdomain_codeset (PACKAGE, "UTF-8");   /* for gtk */#endif#ifdef WINDOWS  FreeConsole ();#endif  return gconf_main_post_init (self, ectx, cfg, gns, filename, is_daemon);}

⌨️ 快捷键说明

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