gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r16567 - gnunet-gtk/src/setup


From: gnunet
Subject: [GNUnet-SVN] r16567 - gnunet-gtk/src/setup
Date: Mon, 15 Aug 2011 18:36:48 +0200

Author: grothoff
Date: 2011-08-15 18:36:48 +0200 (Mon, 15 Aug 2011)
New Revision: 16567

Modified:
   gnunet-gtk/src/setup/gnunet-setup-datacache-config.c
   gnunet-gtk/src/setup/gnunet-setup-datastore-config.c
   gnunet-gtk/src/setup/gnunet-setup-hostlist-editing.c
   gnunet-gtk/src/setup/gnunet-setup-options.c
   gnunet-gtk/src/setup/gnunet-setup-transport-http.c
   gnunet-gtk/src/setup/gnunet-setup-transport-https.c
   gnunet-gtk/src/setup/gnunet-setup-transport-tcp.c
   gnunet-gtk/src/setup/gnunet-setup-transport-udp.c
   gnunet-gtk/src/setup/gnunet-setup-transport.c
   gnunet-gtk/src/setup/gnunet-setup.c
   gnunet-gtk/src/setup/gnunet-setup.h
Log:
make gnunet-setup compile

Modified: gnunet-gtk/src/setup/gnunet-setup-datacache-config.c
===================================================================
--- gnunet-gtk/src/setup/gnunet-setup-datacache-config.c        2011-08-15 
16:28:11 UTC (rev 16566)
+++ gnunet-gtk/src/setup/gnunet-setup-datacache-config.c        2011-08-15 
16:36:48 UTC (rev 16567)
@@ -67,16 +67,14 @@
 static void
 show (const char *name)
 {
-  gtk_widget_show (GTK_WIDGET (gtk_builder_get_object (builder, 
-                                                      name)));
+  gtk_widget_show (GTK_WIDGET (GNUNET_SETUP_get_object (name)));
 }
 
 
 static void
 hide (const char *name)
 {
-  gtk_widget_hide (GTK_WIDGET (gtk_builder_get_object (builder, 
-                                                      name)));
+  gtk_widget_hide (GTK_WIDGET (GNUNET_SETUP_get_object (name)));
 }
 
 

Modified: gnunet-gtk/src/setup/gnunet-setup-datastore-config.c
===================================================================
--- gnunet-gtk/src/setup/gnunet-setup-datastore-config.c        2011-08-15 
16:28:11 UTC (rev 16566)
+++ gnunet-gtk/src/setup/gnunet-setup-datastore-config.c        2011-08-15 
16:36:48 UTC (rev 16567)
@@ -63,16 +63,14 @@
 static void
 show (const char *name)
 {
-  gtk_widget_show (GTK_WIDGET (gtk_builder_get_object (builder, 
-                                                      name)));
+  gtk_widget_show (GTK_WIDGET (GNUNET_SETUP_get_object (name)));
 }
 
 
 static void
 hide (const char *name)
 {
-  gtk_widget_hide (GTK_WIDGET (gtk_builder_get_object (builder, 
-                                                      name)));
+  gtk_widget_hide (GTK_WIDGET (GNUNET_SETUP_get_object (name)));
 }
 
 

Modified: gnunet-gtk/src/setup/gnunet-setup-hostlist-editing.c
===================================================================
--- gnunet-gtk/src/setup/gnunet-setup-hostlist-editing.c        2011-08-15 
16:28:11 UTC (rev 16566)
+++ gnunet-gtk/src/setup/gnunet-setup-hostlist-editing.c        2011-08-15 
16:36:48 UTC (rev 16567)
@@ -45,8 +45,7 @@
   GtkTreeIter old;
   GtkTreeIter iter;
 
-  ls = GTK_LIST_STORE (gtk_builder_get_object (builder, 
-                                              
"GNUNET_setup_hostlist_url_liststore"));
+  ls = GTK_LIST_STORE (GNUNET_SETUP_get_object 
("GNUNET_setup_hostlist_url_liststore"));
   if (ls == NULL)
     {
       GNUNET_break (0);

Modified: gnunet-gtk/src/setup/gnunet-setup-options.c
===================================================================
--- gnunet-gtk/src/setup/gnunet-setup-options.c 2011-08-15 16:28:11 UTC (rev 
16566)
+++ gnunet-gtk/src/setup/gnunet-setup-options.c 2011-08-15 16:36:48 UTC (rev 
16567)
@@ -942,8 +942,7 @@
   GtkTreeIter iter;
   gchar *old;
 
-  tm = GTK_TREE_MODEL (gtk_builder_get_object (builder, 
-                                              "vpn_dns_config_liststore"));
+  tm = GTK_TREE_MODEL (GNUNET_SETUP_get_object ("vpn_dns_config_liststore"));
   if (NULL == tm)
     {
       GNUNET_break (0);
@@ -1049,8 +1048,7 @@
       /* FIXME: warn... */
       return;
     }
-  tm = GTK_TREE_MODEL (gtk_builder_get_object (builder, 
-                                              "vpn_dns_config_liststore"));
+  tm = GTK_TREE_MODEL (GNUNET_SETUP_get_object ("vpn_dns_config_liststore"));
   if (NULL == tm)
     {
       GNUNET_break (0);
@@ -1139,8 +1137,7 @@
       /* invalid port, FIXME: warn */
       return;
     }
-  tm = GTK_TREE_MODEL (gtk_builder_get_object (builder, 
-                                              "vpn_dns_config_liststore"));
+  tm = GTK_TREE_MODEL (GNUNET_SETUP_get_object ("vpn_dns_config_liststore"));
   if (NULL == tm)
     {
       GNUNET_break (0);
@@ -1222,8 +1219,7 @@
   GtkListStore *ls;
   GtkTreeIter iter;
 
-  tm = GTK_TREE_MODEL (gtk_builder_get_object (builder, 
-                                              "vpn_dns_config_liststore"));
+  tm = GTK_TREE_MODEL (GNUNET_SETUP_get_object ("vpn_dns_config_liststore"));
   if (NULL == tm)
     {
       GNUNET_break (0);
@@ -1312,8 +1308,7 @@
       /* invalid port, FIXME: warn */
       return;
     }
-  tm = GTK_TREE_MODEL (gtk_builder_get_object (builder, 
-                                              "vpn_dns_config_liststore"));
+  tm = GTK_TREE_MODEL (GNUNET_SETUP_get_object ("vpn_dns_config_liststore"));
   if (NULL == tm)
     {
       GNUNET_break (0);

Modified: gnunet-gtk/src/setup/gnunet-setup-transport-http.c
===================================================================
--- gnunet-gtk/src/setup/gnunet-setup-transport-http.c  2011-08-15 16:28:11 UTC 
(rev 16566)
+++ gnunet-gtk/src/setup/gnunet-setup-transport-http.c  2011-08-15 16:36:48 UTC 
(rev 16567)
@@ -145,8 +145,7 @@
 
   GNUNET_assert (GNUNET_SCHEDULER_NO_TASK == tsk);
   GNUNET_assert (NULL == tst);
-  w = GTK_WIDGET (gtk_builder_get_object (builder,
-                                         
"GNUNET_setup_transport_http_test_success_image"));
+  w = GTK_WIDGET (GNUNET_SETUP_get_object 
("GNUNET_setup_transport_http_test_success_image"));
   gtk_widget_hide (w);
   resolver = GNUNET_OS_start_process (NULL, NULL,
                                      "gnunet-service-resolver", 
@@ -160,20 +159,16 @@
     }
   if (GNUNET_YES != ok)
     {
-      w = GTK_WIDGET (gtk_builder_get_object (builder,
-                                             
"GNUNET_setup_transport_http_test_fail_image"));
+      w = GTK_WIDGET (GNUNET_SETUP_get_object 
("GNUNET_setup_transport_http_test_fail_image"));
       gtk_widget_show (w);
-      w = GTK_WIDGET (gtk_builder_get_object (builder,
-                                             
"GNUNET_setup_transport_http_test_success_image"));
+      w = GTK_WIDGET (GNUNET_SETUP_get_object 
("GNUNET_setup_transport_http_test_success_image"));
       gtk_widget_hide (w);
     }
   else
     {
-      w = GTK_WIDGET (gtk_builder_get_object (builder,
-                                             
"GNUNET_setup_transport_http_test_fail_image"));
+      w = GTK_WIDGET (GNUNET_SETUP_get_object 
("GNUNET_setup_transport_http_test_fail_image"));
       gtk_widget_hide (w);
-      w = GTK_WIDGET (gtk_builder_get_object (builder,
-                                             
"GNUNET_setup_transport_http_test_success_image"));
+      w = GTK_WIDGET (GNUNET_SETUP_get_object 
("GNUNET_setup_transport_http_test_success_image"));
       gtk_widget_show (w);
     }
 }

Modified: gnunet-gtk/src/setup/gnunet-setup-transport-https.c
===================================================================
--- gnunet-gtk/src/setup/gnunet-setup-transport-https.c 2011-08-15 16:28:11 UTC 
(rev 16566)
+++ gnunet-gtk/src/setup/gnunet-setup-transport-https.c 2011-08-15 16:36:48 UTC 
(rev 16567)
@@ -145,8 +145,7 @@
 
   GNUNET_assert (GNUNET_SCHEDULER_NO_TASK == tsk);
   GNUNET_assert (NULL == tst);
-  w = GTK_WIDGET (gtk_builder_get_object (builder,
-                                         
"GNUNET_setup_transport_https_test_success_image"));
+  w = GTK_WIDGET (GNUNET_SETUP_get_object 
("GNUNET_setup_transport_https_test_success_image"));
   gtk_widget_hide (w);
   resolver = GNUNET_OS_start_process (NULL, NULL,
                                      "gnunet-service-resolver", 
@@ -160,20 +159,16 @@
     }
   if (GNUNET_YES != ok)
     {
-      w = GTK_WIDGET (gtk_builder_get_object (builder,
-                                             
"GNUNET_setup_transport_https_test_fail_image"));
+      w = GTK_WIDGET (GNUNET_SETUP_get_object 
("GNUNET_setup_transport_https_test_fail_image"));
       gtk_widget_show (w);
-      w = GTK_WIDGET (gtk_builder_get_object (builder,
-                                             
"GNUNET_setup_transport_https_test_success_image"));
+      w = GTK_WIDGET (GNUNET_SETUP_get_object 
("GNUNET_setup_transport_https_test_success_image"));
       gtk_widget_hide (w);
     }
   else
     {
-      w = GTK_WIDGET (gtk_builder_get_object (builder,
-                                             
"GNUNET_setup_transport_https_test_fail_image"));
+      w = GTK_WIDGET (GNUNET_SETUP_get_object 
("GNUNET_setup_transport_https_test_fail_image"));
       gtk_widget_hide (w);
-      w = GTK_WIDGET (gtk_builder_get_object (builder,
-                                             
"GNUNET_setup_transport_https_test_success_image"));
+      w = GTK_WIDGET (GNUNET_SETUP_get_object 
("GNUNET_setup_transport_https_test_success_image"));
       gtk_widget_show (w);
     }
 }

Modified: gnunet-gtk/src/setup/gnunet-setup-transport-tcp.c
===================================================================
--- gnunet-gtk/src/setup/gnunet-setup-transport-tcp.c   2011-08-15 16:28:11 UTC 
(rev 16566)
+++ gnunet-gtk/src/setup/gnunet-setup-transport-tcp.c   2011-08-15 16:36:48 UTC 
(rev 16567)
@@ -145,8 +145,7 @@
 
   GNUNET_assert (GNUNET_SCHEDULER_NO_TASK == tsk);
   GNUNET_assert (NULL == tst);
-  w = GTK_WIDGET (gtk_builder_get_object (builder,
-                                         
"GNUNET_setup_transport_tcp_test_success_image"));
+  w = GTK_WIDGET (GNUNET_SETUP_get_object 
("GNUNET_setup_transport_tcp_test_success_image"));
   gtk_widget_hide (w);
   resolver = GNUNET_OS_start_process (NULL, NULL,
                                      "gnunet-service-resolver", 
@@ -160,20 +159,16 @@
     }
   if (GNUNET_YES != ok)
     {
-      w = GTK_WIDGET (gtk_builder_get_object (builder,
-                                             
"GNUNET_setup_transport_tcp_test_fail_image"));
+      w = GTK_WIDGET (GNUNET_SETUP_get_object 
("GNUNET_setup_transport_tcp_test_fail_image"));
       gtk_widget_show (w);
-      w = GTK_WIDGET (gtk_builder_get_object (builder,
-                                             
"GNUNET_setup_transport_tcp_test_success_image"));
+      w = GTK_WIDGET (GNUNET_SETUP_get_object 
("GNUNET_setup_transport_tcp_test_success_image"));
       gtk_widget_hide (w);
     }
   else
     {
-      w = GTK_WIDGET (gtk_builder_get_object (builder,
-                                             
"GNUNET_setup_transport_tcp_test_fail_image"));
+      w = GTK_WIDGET (GNUNET_SETUP_get_object 
("GNUNET_setup_transport_tcp_test_fail_image"));
       gtk_widget_hide (w);
-      w = GTK_WIDGET (gtk_builder_get_object (builder,
-                                             
"GNUNET_setup_transport_tcp_test_success_image"));
+      w = GTK_WIDGET (GNUNET_SETUP_get_object 
("GNUNET_setup_transport_tcp_test_success_image"));
       gtk_widget_show (w);
     }
 }

Modified: gnunet-gtk/src/setup/gnunet-setup-transport-udp.c
===================================================================
--- gnunet-gtk/src/setup/gnunet-setup-transport-udp.c   2011-08-15 16:28:11 UTC 
(rev 16566)
+++ gnunet-gtk/src/setup/gnunet-setup-transport-udp.c   2011-08-15 16:36:48 UTC 
(rev 16567)
@@ -144,8 +144,7 @@
 
   GNUNET_assert (GNUNET_SCHEDULER_NO_TASK == tsk);
   GNUNET_assert (NULL == tst);
-  w = GTK_WIDGET (gtk_builder_get_object (builder,
-                                         
"GNUNET_setup_transport_udp_test_success_image"));
+  w = GTK_WIDGET (GNUNET_SETUP_get_object 
("GNUNET_setup_transport_udp_test_success_image"));
   gtk_widget_hide (w);
   resolver = GNUNET_OS_start_process (NULL, NULL,
                                      "gnunet-service-resolver", 
@@ -159,20 +158,16 @@
     }
   if (GNUNET_YES != ok)
     {
-      w = GTK_WIDGET (gtk_builder_get_object (builder,
-                                             
"GNUNET_setup_transport_udp_test_fail_image"));
+      w = GTK_WIDGET (GNUNET_SETUP_get_object 
("GNUNET_setup_transport_udp_test_fail_image"));
       gtk_widget_show (w);
-      w = GTK_WIDGET (gtk_builder_get_object (builder,
-                                             
"GNUNET_setup_transport_udp_test_success_image"));
+      w = GTK_WIDGET (GNUNET_SETUP_get_object 
("GNUNET_setup_transport_udp_test_success_image"));
       gtk_widget_hide (w);
     }
   else
     {
-      w = GTK_WIDGET (gtk_builder_get_object (builder,
-                                             
"GNUNET_setup_transport_udp_test_fail_image"));
+      w = GTK_WIDGET (GNUNET_SETUP_get_object 
("GNUNET_setup_transport_udp_test_fail_image"));
       gtk_widget_hide (w);
-      w = GTK_WIDGET (gtk_builder_get_object (builder,
-                                             
"GNUNET_setup_transport_udp_test_success_image"));
+      w = GTK_WIDGET (GNUNET_SETUP_get_object 
("GNUNET_setup_transport_udp_test_success_image"));
       gtk_widget_show (w);
     }
 }

Modified: gnunet-gtk/src/setup/gnunet-setup-transport.c
===================================================================
--- gnunet-gtk/src/setup/gnunet-setup-transport.c       2011-08-15 16:28:11 UTC 
(rev 16566)
+++ gnunet-gtk/src/setup/gnunet-setup-transport.c       2011-08-15 16:36:48 UTC 
(rev 16567)
@@ -173,8 +173,7 @@
                                         "nat",
                                         "INTERNAL_ADDRESS",
                                         buf);
-  entry = GTK_ENTRY (gtk_builder_get_object (builder,
-                                            
"GNUNET_setup_transport_internal_ip_entry"));
+  entry = GTK_ENTRY (GNUNET_SETUP_get_object 
("GNUNET_setup_transport_internal_ip_entry"));
   if (entry == NULL)
     {
       GNUNET_break (0);
@@ -210,8 +209,7 @@
                                             "nat",
                                             "BEHIND_NAT",
                                             "YES");
-      button = GTK_TOGGLE_BUTTON (gtk_builder_get_object (builder,
-                                                         
"GNUNET_setup_transport_nat_checkbutton"));
+      button = GTK_TOGGLE_BUTTON (GNUNET_SETUP_get_object 
("GNUNET_setup_transport_nat_checkbutton"));
       if (button == NULL)
        {
          GNUNET_break (0);
@@ -226,8 +224,7 @@
                                             "nat",
                                             "EXTERNAL_ADDRESS",
                                             buf);
-      entry = GTK_ENTRY (gtk_builder_get_object (builder,
-                                                
"GNUNET_setup_transport_external_ip_address_entry"));
+      entry = GTK_ENTRY (GNUNET_SETUP_get_object 
("GNUNET_setup_transport_external_ip_address_entry"));
       if (entry == NULL)
        {
          GNUNET_break (0);
@@ -260,8 +257,7 @@
   if (hns)    
     hns = test_connection_reversal ();    
 
-  button = GTK_TOGGLE_BUTTON (gtk_builder_get_object (builder,
-                                                     
"GNUNET_setup_transport_icmp_server_enable_checkbutton"));
+  button = GTK_TOGGLE_BUTTON (GNUNET_SETUP_get_object 
("GNUNET_setup_transport_icmp_server_enable_checkbutton"));
   if (button == NULL)
     {
       GNUNET_break (0);
@@ -286,8 +282,7 @@
          (GNUNET_YES ==
           GNUNET_OS_check_helper_binary ("gnunet-helper-nat-client")) );
   GNUNET_free_non_null (tmp);
-  button = GTK_TOGGLE_BUTTON (gtk_builder_get_object (builder,
-                                                     
"GNUNET_setup_transport_icmp_client_enable_checkbutton"));
+  button = GTK_TOGGLE_BUTTON (GNUNET_SETUP_get_object 
("GNUNET_setup_transport_icmp_client_enable_checkbutton"));
   if (button == NULL)
     {
       GNUNET_break (0);

Modified: gnunet-gtk/src/setup/gnunet-setup.c
===================================================================
--- gnunet-gtk/src/setup/gnunet-setup.c 2011-08-15 16:28:11 UTC (rev 16566)
+++ gnunet-gtk/src/setup/gnunet-setup.c 2011-08-15 16:36:48 UTC (rev 16567)
@@ -31,122 +31,43 @@
 #include <regex.h>
 
 /**
- * Builder for the main window (global!)
+ * Main loop handle.
  */
-GtkBuilder *builder; 
+static struct GNUNET_GTK_MainLoop *ml;
 
 /**
- * Our configuration (global!)
+ * Name of the configuration file.
  */
-struct GNUNET_CONFIGURATION_Handle *cfg;
+static char *cfgName;
 
-
 /**
- * @brief get the path to a specific GNUnet installation directory or,
- * with GNUNET_IPK_SELF_PREFIX, the current running apps installation directory
- * @author Milan
- * @return a pointer to the dir path (to be freed by the caller)
+ * Our log level (FIXME: needed!?)
  */
-char *
-GNUNET_GTK_installation_get_path (enum GNUNET_OS_InstallationPathKind dirkind);
+static char *loglev;
 
-
-
 /**
- * Get the name of the directory where all of our package
- * data is stored ($PREFIX/share/)
- * 
- * @return name of the data directory
+ * Our configuration.
  */
-const char *
-GNUNET_GTK_get_data_dir ()
-{
-  static char *dd;
+struct GNUNET_CONFIGURATION_Handle *cfg;
 
-  if (dd == NULL)
-    dd = GNUNET_GTK_installation_get_path (GNUNET_OS_IPK_DATADIR);
-  return dd;
-}
-
-
 /**
- * Create an initialize a new builder based on the
- * GNUnet-GTK glade file.
- *
- * @param filename name of the resource file to load
- * @return NULL on error
+ * Global return value (for success/failure of gnunet-setup).
  */
-GtkBuilder *
-GNUNET_GTK_get_new_builder (const char *filename)
-{
-  char *glade_path;
-  GtkBuilder *ret;
-  GError *error;
+static int gret;
 
-  ret = gtk_builder_new ();
-  gtk_builder_set_translation_domain (ret, "gnunet-gtk");
-  GNUNET_asprintf (&glade_path,
-                  "%s%s",
-                  GNUNET_GTK_get_data_dir (),
-                  filename);
-  error = NULL;
-  if (0 == gtk_builder_add_from_file (ret, glade_path, &error))
-    {
-      GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                 _("Failed to load `%s': %s\n"),
-                 glade_path,
-                 error->message);
-      g_error_free (error);
-      GNUNET_free (glade_path);
-      return NULL;
-    }
-  gtk_builder_connect_signals (ret, NULL);
-  GNUNET_free (glade_path);
-  return ret;
-}
-
-
-
 /**
- * Initialize GNU gettext for message translation.
+ * Get an object from the main window.
+ *
+ * @param name name of the object
+ * @return NULL on error, otherwise the object
  */
-static void
-setup_nls ()
+GObject *
+GNUNET_SETUP_get_object (const char *name)
 {
-#if ENABLE_NLS
-  char *path;
-
-  setlocale (LC_ALL, "");
-  GNUNET_asprintf (&path,
-                  "%s/%s/locale/",
-                  GNUNET_GTK_get_data_dir (),
-                  PACKAGE_NAME);
-  bindtextdomain ("gnunet-setup", path);
-  textdomain ("gnunet-setup");
-  bind_textdomain_codeset ("GNUnet", "UTF-8");
-  bind_textdomain_codeset ("gnunet-setup", "UTF-8");
-  GNUNET_free (path);
-#else
-  fprintf (stderr,
-          "WARNING: gnunet-setup was compiled without i18n support (did CFLAGS 
contain -Werror?).\n");
-#endif
+  return GNUNET_GTK_main_loop_get_object (ml, name);
 }
 
 
-/**
- * Initialize GTK search path for icons.
- */
-static void
-set_icon_search_path ()
-{
-  char *buf;
-
-  buf = GNUNET_GTK_installation_get_path (GNUNET_OS_IPK_ICONDIR);
-  gtk_icon_theme_append_search_path (gtk_icon_theme_get_default (), buf);
-  GNUNET_free (buf);
-}
-
-
 static gboolean
 help_click_callback (GtkWidget *widget,
                     GdkEventButton *event,
@@ -157,8 +78,7 @@
 
   if (event->type != GDK_BUTTON_PRESS)
     return FALSE;
-  help = GTK_LINK_BUTTON (gtk_builder_get_object (builder, 
-                                                 "GNUNET_setup_help_text"));
+  help = GTK_LINK_BUTTON (GNUNET_SETUP_get_object ("GNUNET_setup_help_text"));
   gtk_link_button_set_uri (help, 
                           os->help_url);
   gtk_button_set_label (GTK_BUTTON (help),
@@ -189,8 +109,7 @@
   while (os->visibility[i].widget_name != NULL)
     {
       vs = &os->visibility[i];
-      widget = GTK_WIDGET (gtk_builder_get_object (builder, 
-                                                  vs->widget_name));
+      widget = GTK_WIDGET (GNUNET_SETUP_get_object (vs->widget_name));
       if (widget == NULL)
        {
          GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
@@ -243,8 +162,7 @@
   GObject *widget;
   char *value;
 
-  widget = gtk_builder_get_object (builder,
-                                  os->widget_name);
+  widget = GNUNET_SETUP_get_object (os->widget_name);
   GNUNET_assert (NULL != os->save_function);
   if (GNUNET_OK !=
       os->save_function (os->load_save_cls,
@@ -272,67 +190,22 @@
 }
 
 
-int
-main (int argc,
-      char *const *argv)
+/**
+ * Load options into the main dialog.
+ */
+static void
+load_options ()
 {
-  char *cfgName = GNUNET_strdup (GNUNET_DEFAULT_USER_CONFIG_FILE);
-  char *loglev = GNUNET_strdup ("WARNING");
-  struct GNUNET_GETOPT_CommandLineOption options[] = {
-    GNUNET_GETOPT_OPTION_CFG_FILE (&cfgName),
-    GNUNET_GETOPT_OPTION_HELP (gettext_noop ("Setup tool for GNUnet")),
-    GNUNET_GETOPT_OPTION_LOGLEVEL (&loglev),
-    GNUNET_GETOPT_OPTION_VERSION (PACKAGE_VERSION),
-    GNUNET_GETOPT_OPTION_END
-  };
-  gint ret;
-  GtkWidget *main_window;
-  GtkWidget *dialog;
-  GObject *widget;
-  int arg_off;
-  int iret;
-  char *const *argp;
-  char *value;
-  struct GNUNET_CONFIGURATION_Handle *cfgDefault;
   const struct GNUNET_SETUP_OptionSpecification *os;
   unsigned int i;
- 
-  arg_off = GNUNET_GETOPT_run ("gnunet-setup",
-                              options,
-                              argc,
-                              argv);  
-  if (arg_off == GNUNET_SYSERR)
-    {
-      GNUNET_free (loglev);
-      GNUNET_free (cfgName);
-      return 1;
-    }
-  (void) GNUNET_log_setup ("gnunet-setup",
-                          loglev,
-                          NULL);
-  argp = &argv[arg_off];
-  argc -= arg_off;
-  gtk_init (&argc, (char ***) &argp);
-  set_icon_search_path ();
-  setup_nls ();
-  builder = GNUNET_GTK_get_new_builder ("gnunet-setup.glade");
-  if (builder == NULL)
-    {
-      GNUNET_free (loglev);
-      GNUNET_free (cfgName);
-      return 1;        
-    }
-  cfg = GNUNET_CONFIGURATION_create ();
-  (void) GNUNET_CONFIGURATION_load (cfg, cfgName);
-  main_window = GTK_WIDGET (gtk_builder_get_object (builder, 
-                                                   "GNUNET_setup_dialog"));
-  /* load options into dialog */
+  GObject *widget;
+  char *value;
+
   i = 0;
   while (option_specifications[i].widget_name != NULL)
     {
       os = &option_specifications[i];
-      widget = gtk_builder_get_object (builder,
-                                      os->widget_name);
+      widget = GNUNET_SETUP_get_object (os->widget_name);
       if (NULL == widget)
        {
          GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
@@ -410,53 +283,91 @@
       i++;
     }
 
- RESTART:
-  ret = gtk_dialog_run (GTK_DIALOG (main_window));
-  gtk_widget_hide (main_window);
+}
+
+
+/**
+ * Callback invoked if the application is supposed to exit.
+ */
+void 
+GNUNET_SETUP_quit_cb (GtkObject *object, 
+                     gpointer user_data)
+{
+  struct GNUNET_CONFIGURATION_Handle *cfgDefault;
+
+  GNUNET_GTK_main_loop_quit (ml);
   cfgDefault = GNUNET_CONFIGURATION_create ();
   (void) GNUNET_CONFIGURATION_load (cfgDefault, NULL); /* load defaults only */
-  iret = 0;
-  switch (ret)
-    {
-    case GTK_RESPONSE_CANCEL: /* -6 */
-      /* explicit cancel, do not save! */
-      break;
-    case GTK_RESPONSE_OK: /* save-as, -5 */
-      dialog = gtk_file_chooser_dialog_new (_("Save Configuration File"),
-                                           NULL,
-                                           GTK_FILE_CHOOSER_ACTION_SAVE,
-                                           GTK_STOCK_CANCEL, 
GTK_RESPONSE_CANCEL,
-                                           GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT,
-                                           NULL);
-      gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (dialog), cfgName);
-      if (gtk_dialog_run (GTK_DIALOG (dialog)) != GTK_RESPONSE_ACCEPT)
-       {
-         gtk_widget_destroy (dialog);
-         goto RESTART;
-       }
-      GNUNET_free (cfgName);
-      cfgName = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog));
-      gtk_widget_destroy (dialog);
-      /* fall through! */
-    case GTK_RESPONSE_DELETE_EVENT: /* window close, -4 */
-    case GTK_RESPONSE_ACCEPT: /* save, -3 */
-      if (GNUNET_OK !=
-         GNUNET_CONFIGURATION_write_diffs (cfgDefault,
-                                           cfg,
-                                           cfgName))
-       iret = 1;
-      break;
-    default:
-      GNUNET_break (0);
-    }
-  gtk_widget_destroy (main_window);
-  g_object_unref (G_OBJECT (builder));  
+  if (GNUNET_OK !=
+      GNUNET_CONFIGURATION_write_diffs (cfgDefault,
+                                       cfg,
+                                       cfgName))
+    gret = 1;    
   GNUNET_CONFIGURATION_destroy (cfgDefault);
   GNUNET_CONFIGURATION_destroy (cfg);
+}
+
+
+/**
+ * Actual main method that sets up the configuration window.
+ *
+ * @param cls the main loop handle
+ * @param tc scheduler context
+ */
+static void
+run (void *cls,
+     const struct GNUNET_SCHEDULER_TaskContext *tc)
+{
+  ml = cls;
+  GtkWidget *main_window;
+ 
+  cfg = GNUNET_CONFIGURATION_create ();
+  (void) GNUNET_CONFIGURATION_load (cfg, cfgName);
+  main_window = GTK_WIDGET (GNUNET_SETUP_get_object ("GNUNET_setup_dialog"));
+
+  load_options ();
+  gtk_widget_show (main_window);
+  gtk_window_present (GTK_WINDOW (main_window));
+}
+
+
+/**
+ * Main function for gnunet-setup.
+ *
+ * @param argc number of arguments
+ * @param argv arguments
+ * @return 0 on success
+ */
+int
+main (int argc,
+      char *const *argv)
+{
+  struct GNUNET_GETOPT_CommandLineOption options[] = {
+    GNUNET_GETOPT_OPTION_CFG_FILE (&cfgName),
+    GNUNET_GETOPT_OPTION_HELP (gettext_noop ("Setup tool for GNUnet")),
+    GNUNET_GETOPT_OPTION_LOGLEVEL (&loglev),
+    GNUNET_GETOPT_OPTION_VERSION (PACKAGE_VERSION),
+    GNUNET_GETOPT_OPTION_END
+  };
+  int ret;
+
+  cfgName = GNUNET_strdup (GNUNET_DEFAULT_USER_CONFIG_FILE);
+  loglev = GNUNET_strdup ("WARNING");
+
+  if (GNUNET_OK ==
+      GNUNET_GTK_main_loop_start ("gnunet-setup",
+                                 "guunet-setup",
+                                 argc,
+                                 argv,
+                                 options,
+                                 "gnunet_setup_gtk_main_window.glade",
+                                 &run))
+    ret = gret;
+  else
+    ret = 1;                             
   GNUNET_free (cfgName);
   GNUNET_free (loglev);
-  return iret;
+  return ret;
 }
 
-
 /* end of gnunet-setup.c */

Modified: gnunet-gtk/src/setup/gnunet-setup.h
===================================================================
--- gnunet-gtk/src/setup/gnunet-setup.h 2011-08-15 16:28:11 UTC (rev 16566)
+++ gnunet-gtk/src/setup/gnunet-setup.h 2011-08-15 16:36:48 UTC (rev 16567)
@@ -33,10 +33,15 @@
 #include <gtk/gtk.h>
 
 /**
- * Builder for the main window.
+ * Get an object from the main window.
+ *
+ * @param name name of the object
+ * @return NULL on error, otherwise the object
  */
-extern GtkBuilder *builder; 
+GObject *
+GNUNET_SETUP_get_object (const char *name);
 
+
 /**
  * Our configuration.
  */




reply via email to

[Prev in Thread] Current Thread [Next in Thread]