gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r446 - in GNUnet: . contrib/win src/conf


From: durner
Subject: [GNUnet-SVN] r446 - in GNUnet: . contrib/win src/conf
Date: Sat, 19 Mar 2005 09:22:33 -0800 (PST)

Author: durner
Date: 2005-03-19 09:22:31 -0800 (Sat, 19 Mar 2005)
New Revision: 446

Added:
   GNUnet/src/conf/gconf_callbacks.h
   GNUnet/src/conf/gconf_interface.c
   GNUnet/src/conf/gconf_interface.h
   GNUnet/src/conf/gconf_support.c
   GNUnet/src/conf/gconf_support.h
Modified:
   GNUnet/configure.ac
   GNUnet/contrib/win/Installer.nsi
   GNUnet/src/conf/Makefile.am
   GNUnet/src/conf/gconf.c
   GNUnet/src/conf/gconf.glade
   GNUnet/src/conf/gnunet-setup.c
Log:
Graphical GNUnet Setup (first try)

Modified: GNUnet/configure.ac
===================================================================
--- GNUnet/configure.ac 2005-03-17 17:29:04 UTC (rev 445)
+++ GNUnet/configure.ac 2005-03-19 17:22:31 UTC (rev 446)
@@ -324,9 +324,13 @@
 AM_CONDITIONAL(HAVE_CURSES, test x$curses = x1)
 
 # check for gtk >= 2.4.0 
-# AC_MSG_CHECKING(for gtk)
-# AM_PATH_GTK_2_0(2.4.0,without_gtk=false,without_gtk=true)
-# AM_CONDITIONAL(HAVE_GTK, test x$without_gtk != xtrue)
+AC_MSG_CHECKING(for gtk)
+AM_PATH_GTK_2_0(2.4.0,without_gtk=false,without_gtk=true)
+AM_CONDITIONAL(HAVE_GTK, test x$without_gtk != xtrue)
+if test $without_gtk != true
+then
+ AC_DEFINE_UNQUOTED([HAVE_GTK], 1, [We have GTK])
+fi
 
 # check for gettext
 AM_GNU_GETTEXT_VERSION(0.14)

Modified: GNUnet/contrib/win/Installer.nsi
===================================================================
--- GNUnet/contrib/win/Installer.nsi    2005-03-17 17:29:04 UTC (rev 445)
+++ GNUnet/contrib/win/Installer.nsi    2005-03-19 17:22:31 UTC (rev 446)
@@ -308,8 +308,12 @@
   SetOutPath "$INSTDIR\etc\pango"
   File "C:\GNUnet\etc\pango\pango.aliases"
   File "C:\GNUnet\etc\pango\pango.modules"
+  SetOutPath "$INSTDIR\etc\gtk-2.0"
+  File "C:\GNUnet\etc\gtk-2.0\gdk-pixbuf.loaders"
   SetOutPath "$INSTDIR\lib\gtk-2.0\2.4.0\engines"
   File "C:\GNUnet\lib\gtk-2.0\2.4.0\engines\libwimp.dll"
+  SetOutPath "$INSTDIR\lib\gtk-2.0\2.4.0\loaders"
+  File "C:\GNUnet\lib\gtk-2.0\2.4.0\loaders\libpixbufloader-xpm.dll"
   SetOutPath "$INSTDIR\lib\pango\1.4.0\modules"
   File "C:\GNUnet\lib\pango\1.4.0\modules\pango-basic-win32.dll"
   SetOutPath "$INSTDIR\share\themes\Default\gtk-2.0"

Modified: GNUnet/src/conf/Makefile.am
===================================================================
--- GNUnet/src/conf/Makefile.am 2005-03-17 17:29:04 UTC (rev 445)
+++ GNUnet/src/conf/Makefile.am 2005-03-19 17:22:31 UTC (rev 446)
@@ -1,5 +1,7 @@
 INCLUDES = -I$(top_srcdir)/src/include
 
+AM_CFLAGS = $(GTK_CFLAGS)
+
 if MINGW
  WINTOOL = gnunet-win-tool
 endif
@@ -39,21 +41,35 @@
   mconf_yesno.c
 endif
 
+if HAVE_GTK
+ gconf_libs = $(GTK_LIBS) @EXT_LIB_PATH@ $(LDADD) @EXT_LIBS@ -lgthread-2.0
+ 
+ gconf_src = \
+   gconf_callbacks.h \
+   gconf_interface.h \
+   gconf_support.h \
+   gconf_interface.c \
+   gconf_support.c \
+   gconf.c
+endif
+
+
 gnunet_setup_SOURCES = \
  conf.c \
  confdata.c \
  expr.c \
  expr.h \
  lkc.h \
- $(mconf_src) \
  menu.c \
  symbol.c \
  zconf.tab.h \
  zconf_tab.c \
+ $(mconf_src) \
+ $(gconf_src) \
  gnunet-setup.c
 
 gnunet_setup_LDFLAGS = \
- $(curses_lib)
+ $(curses_lib) $(gconf_libs)
 
 gnunet_setup_LDADD = \
  $(top_builddir)/src/util/libgnunetutil.la

Modified: GNUnet/src/conf/gconf.c
===================================================================
--- GNUnet/src/conf/gconf.c     2005-03-17 17:29:04 UTC (rev 445)
+++ GNUnet/src/conf/gconf.c     2005-03-19 17:22:31 UTC (rev 446)
@@ -14,22 +14,27 @@
 
 #include "platform.h"
 
+#define LKC_DIRECT_LINK
+
 #include "lkc.h"
 #include "images.c"
 
-#include <glade/glade.h>
 #include <gtk/gtk.h>
 #include <glib.h>
 #include <gdk/gdkkeysyms.h>
 
+#include "gconf_interface.h"
+#undef ENABLE_NLS
+#include "gconf_support.h"
+#define ENABLE_NLS 1
 
-/* #define DEBUG */
+#define DEBUG
 
 enum {
-       SINGLE_VIEW, SPLIT_VIEW, FULL_VIEW
+  SINGLE_VIEW, SPLIT_VIEW, FULL_VIEW
 };
 
-static gint view_mode = FULL_VIEW;
+static gint view_mode = SPLIT_VIEW;
 static gboolean show_name = TRUE;
 static gboolean show_range = TRUE;
 static gboolean show_value = TRUE;
@@ -43,8 +48,8 @@
     "Sorry, no help available for this option yet.\n";
 
 GtkWidget *main_wnd = NULL;
-GtkWidget *tree1_w = NULL;     /* left  frame */
-GtkWidget *tree2_w = NULL;     /* right frame */
+GtkWidget *tree1_w = NULL;  /* left  frame */
+GtkWidget *tree2_w = NULL;  /* right frame */
 GtkWidget *text_w = NULL;
 GtkWidget *hpaned = NULL;
 GtkWidget *vpaned = NULL;
@@ -62,10 +67,10 @@
 static struct menu *browsed; /* browsed node for SPLIT view */
 
 enum {
-       COL_OPTION, COL_NAME, COL_NO, COL_MOD, COL_YES, COL_VALUE,
-       COL_MENU, COL_COLOR, COL_EDIT, COL_PIXBUF,
-       COL_PIXVIS, COL_BTNVIS, COL_BTNACT, COL_BTNINC, COL_BTNRAD,
-       COL_NUMBER
+  COL_OPTION, COL_NAME, COL_NO, COL_MOD, COL_YES, COL_VALUE,
+  COL_MENU, COL_COLOR, COL_EDIT, COL_PIXBUF,
+  COL_PIXVIS, COL_BTNVIS, COL_BTNACT, COL_BTNINC, COL_BTNRAD,
+  COL_NUMBER
 };
 
 static void display_list(void);
@@ -81,438 +86,457 @@
 
 const char *dbg_print_stype(int val)
 {
-       static char buf[256];
+  static char buf[256];
 
-       bzero(buf, 256);
+  memset(buf, 0, 256);
 
-       if (val == S_UNKNOWN)
-               strcpy(buf, "unknown");
-       if (val == S_BOOLEAN)
-               strcpy(buf, "boolean");
-       if (val == S_TRISTATE)
-               strcpy(buf, "tristate");
-       if (val == S_INT)
-               strcpy(buf, "int");
-       if (val == S_HEX)
-               strcpy(buf, "hex");
-       if (val == S_STRING)
-               strcpy(buf, "string");
-       if (val == ST_OTHER)
-               strcpy(buf, "other");
+  if (val == S_UNKNOWN)
+    strcpy(buf, "unknown");
+  if (val == S_BOOLEAN)
+    strcpy(buf, "boolean");
+  if (val == S_TRISTATE)
+    strcpy(buf, "tristate");
+  if (val == S_INT)
+    strcpy(buf, "int");
+  if (val == S_HEX)
+    strcpy(buf, "hex");
+  if (val == S_STRING)
+    strcpy(buf, "string");
+  if (val == ST_OTHER)
+    strcpy(buf, "other");
 
 #ifdef DEBUG
-       printf("%s", buf);
+  printf("%s", buf);
 #endif
 
-       return buf;
+  return buf;
 }
 
 const char *dbg_print_flags(int val)
 {
-       static char buf[256];
+  static char buf[256];
 
-       bzero(buf, 256);
+  memset(buf, 0, 256);
 
-       if (val & SYMBOL_YES)
-               strcat(buf, "yes/");
-       if (val & SYMBOL_MOD)
-               strcat(buf, "mod/");
-       if (val & SYMBOL_NO)
-               strcat(buf, "no/");
-       if (val & SYMBOL_CONST)
-               strcat(buf, "const/");
-       if (val & SYMBOL_CHECK)
-               strcat(buf, "check/");
-       if (val & SYMBOL_CHOICE)
-               strcat(buf, "choice/");
-       if (val & SYMBOL_CHOICEVAL)
-               strcat(buf, "choiceval/");
-       if (val & SYMBOL_PRINTED)
-               strcat(buf, "printed/");
-       if (val & SYMBOL_VALID)
-               strcat(buf, "valid/");
-       if (val & SYMBOL_OPTIONAL)
-               strcat(buf, "optional/");
-       if (val & SYMBOL_WRITE)
-               strcat(buf, "write/");
-       if (val & SYMBOL_CHANGED)
-               strcat(buf, "changed/");
-       if (val & SYMBOL_NEW)
-               strcat(buf, "new/");
-       if (val & SYMBOL_AUTO)
-               strcat(buf, "auto/");
+  if (val & SYMBOL_YES)
+    strcat(buf, "yes/");
+  if (val & SYMBOL_MOD)
+    strcat(buf, "mod/");
+  if (val & SYMBOL_NO)
+    strcat(buf, "no/");
+  if (val & SYMBOL_CONST)
+    strcat(buf, "const/");
+  if (val & SYMBOL_CHECK)
+    strcat(buf, "check/");
+  if (val & SYMBOL_CHOICE)
+    strcat(buf, "choice/");
+  if (val & SYMBOL_CHOICEVAL)
+    strcat(buf, "choiceval/");
+  if (val & SYMBOL_PRINTED)
+    strcat(buf, "printed/");
+  if (val & SYMBOL_VALID)
+    strcat(buf, "valid/");
+  if (val & SYMBOL_OPTIONAL)
+    strcat(buf, "optional/");
+  if (val & SYMBOL_WRITE)
+    strcat(buf, "write/");
+  if (val & SYMBOL_CHANGED)
+    strcat(buf, "changed/");
+  if (val & SYMBOL_NEW)
+    strcat(buf, "new/");
+  if (val & SYMBOL_AUTO)
+    strcat(buf, "auto/");
 
-       buf[strlen(buf) - 1] = '\0';
+  buf[strlen(buf) - 1] = '\0';
 #ifdef DEBUG
-       printf("%s", buf);
+  printf("%s", buf);
 #endif
 
-       return buf;
+  return buf;
 }
 
 const char *dbg_print_ptype(int val)
 {
-       static char buf[256];
+  static char buf[256];
 
-       bzero(buf, 256);
+  bzero(buf, 256);
 
-       if (val == P_UNKNOWN)
-               strcpy(buf, "unknown");
-       if (val == P_PROMPT)
-               strcpy(buf, "prompt");
-       if (val == P_COMMENT)
-               strcpy(buf, "comment");
-       if (val == P_MENU)
-               strcpy(buf, "menu");
-       if (val == P_DEFAULT)
-               strcpy(buf, "default");
-       if (val == P_CHOICE)
-               strcpy(buf, "choice");
+  if (val == P_UNKNOWN)
+    strcpy(buf, "unknown");
+  if (val == P_PROMPT)
+    strcpy(buf, "prompt");
+  if (val == P_COMMENT)
+    strcpy(buf, "comment");
+  if (val == P_MENU)
+    strcpy(buf, "menu");
+  if (val == P_DEFAULT)
+    strcpy(buf, "default");
+  if (val == P_CHOICE)
+    strcpy(buf, "choice");
 
 #ifdef DEBUG
-       printf("%s", buf);
+  printf("%s", buf);
 #endif
 
-       return buf;
+  return buf;
 }
 
+static void set_help(const char *prompt, const char *name, const char *help)
+{
+  GtkTextBuffer *buffer;
+  GtkTextIter start, end;
 
+  buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(text_w));
+  gtk_text_buffer_get_bounds(buffer, &start, &end);
+  gtk_text_buffer_delete(buffer, &start, &end);
+  gtk_text_view_set_left_margin(GTK_TEXT_VIEW(text_w), 15);
+
+  gtk_text_buffer_get_end_iter(buffer, &end);
+  gtk_text_buffer_insert_with_tags(buffer, &end, prompt, -1, tag1,
+           NULL);
+  gtk_text_buffer_insert_at_cursor(buffer, " ", 1);
+  gtk_text_buffer_get_end_iter(buffer, &end);
+  gtk_text_buffer_insert_with_tags(buffer, &end, name, -1, tag1,
+           NULL);
+  gtk_text_buffer_insert_at_cursor(buffer, "\n\n", 2);
+  gtk_text_buffer_get_end_iter(buffer, &end);
+  gtk_text_buffer_insert_with_tags(buffer, &end, help, -1, tag2,
+           NULL);
+}
+
 /* Main Window Initialization */
 
 
-void init_main_window(const gchar * glade_file)
+void init_main_window()
 {
-       GladeXML *xml;
-       GtkWidget *widget;
-       GtkTextBuffer *txtbuf;
-       char title[256];
-       GdkPixmap *pixmap;
-       GdkBitmap *mask;
-       GtkStyle *style;
+  GtkWidget *widget;
+  GtkTextBuffer *txtbuf;
+  char title[256];
+  GdkPixmap *pixmap;
+  GdkBitmap *mask;
+  GtkStyle *style;
+  GtkToolbar *toolbar;
+  GtkWidget *vbox;
+  GtkMenu *options;
+  
+  main_wnd = create_main_wnd ();
+  gtk_widget_show (GTK_WINDOW(main_wnd));
 
-       xml = glade_xml_new(glade_file, "window1", NULL);
-       if (!xml)
-               g_error("GUI loading failed !\n");
-       glade_xml_signal_autoconnect(xml);
+  vbox = lookup_widget(GTK_WINDOW(main_wnd), "vbox1");
+  hpaned = lookup_widget(vbox, "hpaned1");
+  vpaned = lookup_widget(hpaned, "vpaned1");
+  tree1_w = lookup_widget(lookup_widget(hpaned, "scrolledwindow1"),
+    "treeview1");
+  tree2_w = lookup_widget(lookup_widget(vpaned, "scrolledwindow2"),
+    "treeview2");
+  text_w = lookup_widget(lookup_widget(vpaned, "scrolledwindow3"),
+    "textview3");
 
-       main_wnd = glade_xml_get_widget(xml, "window1");
-       hpaned = glade_xml_get_widget(xml, "hpaned1");
-       vpaned = glade_xml_get_widget(xml, "vpaned1");
-       tree1_w = glade_xml_get_widget(xml, "treeview1");
-       tree2_w = glade_xml_get_widget(xml, "treeview2");
-       text_w = glade_xml_get_widget(xml, "textview3");
+  toolbar = lookup_widget(lookup_widget(vbox, "handlebox1"), "toolbar1");
 
-       back_btn = glade_xml_get_widget(xml, "button1");
-       gtk_widget_set_sensitive(back_btn, FALSE);
+  back_btn = lookup_widget(toolbar, "button1");
+  gtk_widget_set_sensitive(back_btn, FALSE);
 
-       widget = glade_xml_get_widget(xml, "show_name1");
-       gtk_check_menu_item_set_active((GtkCheckMenuItem *) widget,
-                                      show_name);
+  options = lookup_widget(lookup_widget(lookup_widget(vbox, "menubar1"),
+    "options1"), "options1_menu");
 
-       widget = glade_xml_get_widget(xml, "show_range1");
-       gtk_check_menu_item_set_active((GtkCheckMenuItem *) widget,
-                                      show_range);
+  widget = lookup_widget(options, "show_name1");
+  gtk_check_menu_item_set_active((GtkCheckMenuItem *) widget,
+               show_name);
 
-       widget = glade_xml_get_widget(xml, "show_data1");
-       gtk_check_menu_item_set_active((GtkCheckMenuItem *) widget,
-                                      show_value);
+  widget = lookup_widget(options, "show_range1");
+  gtk_check_menu_item_set_active((GtkCheckMenuItem *) widget,
+               show_range);
 
-       style = gtk_widget_get_style(main_wnd);
-       widget = glade_xml_get_widget(xml, "toolbar1");
+  widget = lookup_widget(options, "show_data1");
+  gtk_check_menu_item_set_active((GtkCheckMenuItem *) widget,
+               show_value);
 
-       pixmap = gdk_pixmap_create_from_xpm_d(main_wnd->window, &mask,
-                                             &style->bg[GTK_STATE_NORMAL],
-                                             (gchar **) xpm_single_view);
-       gtk_image_set_from_pixmap(GTK_IMAGE
-                                 (((GtkToolbarChild
-                                    *) (g_list_nth(GTK_TOOLBAR(widget)->
-                                                   children,
-                                                   5)->data))->icon),
-                                 pixmap, mask);
-       pixmap =
-           gdk_pixmap_create_from_xpm_d(main_wnd->window, &mask,
-                                        &style->bg[GTK_STATE_NORMAL],
-                                        (gchar **) xpm_split_view);
-       gtk_image_set_from_pixmap(GTK_IMAGE
-                                 (((GtkToolbarChild
-                                    *) (g_list_nth(GTK_TOOLBAR(widget)->
-                                                   children,
-                                                   6)->data))->icon),
-                                 pixmap, mask);
-       pixmap =
-           gdk_pixmap_create_from_xpm_d(main_wnd->window, &mask,
-                                        &style->bg[GTK_STATE_NORMAL],
-                                        (gchar **) xpm_tree_view);
-       gtk_image_set_from_pixmap(GTK_IMAGE
-                                 (((GtkToolbarChild
-                                    *) (g_list_nth(GTK_TOOLBAR(widget)->
-                                                   children,
-                                                   7)->data))->icon),
-                                 pixmap, mask);
+  style = gtk_widget_get_style(main_wnd);
 
-       switch (view_mode) {
-       case SINGLE_VIEW:
-               widget = glade_xml_get_widget(xml, "button4");
-               gtk_button_clicked(GTK_BUTTON(widget));
-               break;
-       case SPLIT_VIEW:
-               widget = glade_xml_get_widget(xml, "button5");
-               gtk_button_clicked(GTK_BUTTON(widget));
-               break;
-       case FULL_VIEW:
-               widget = glade_xml_get_widget(xml, "button6");
-               gtk_button_clicked(GTK_BUTTON(widget));
-               break;
-       }
+  pixmap = gdk_pixmap_create_from_xpm_d(main_wnd->window, &mask,
+                &style->bg[GTK_STATE_NORMAL],
+                (gchar **) xpm_single_view);
+  gtk_image_set_from_pixmap(GTK_IMAGE
+          (((GtkToolbarChild
+             *) (g_list_nth(GTK_TOOLBAR(toolbar)->
+                children,
+                5)->data))->icon),
+          pixmap, mask);
+  pixmap =
+      gdk_pixmap_create_from_xpm_d(main_wnd->window, &mask,
+           &style->bg[GTK_STATE_NORMAL],
+           (gchar **) xpm_split_view);
+  gtk_image_set_from_pixmap(GTK_IMAGE
+          (((GtkToolbarChild
+             *) (g_list_nth(GTK_TOOLBAR(toolbar)->
+                children,
+                6)->data))->icon),
+          pixmap, mask);
+  pixmap =
+      gdk_pixmap_create_from_xpm_d(main_wnd->window, &mask,
+           &style->bg[GTK_STATE_NORMAL],
+           (gchar **) xpm_tree_view);
+  gtk_image_set_from_pixmap(GTK_IMAGE
+          (((GtkToolbarChild
+             *) (g_list_nth(GTK_TOOLBAR(toolbar)->
+                children,
+                7)->data))->icon),
+          pixmap, mask);
 
-       txtbuf = gtk_text_view_get_buffer(GTK_TEXT_VIEW(text_w));
-       tag1 = gtk_text_buffer_create_tag(txtbuf, "mytag1",
-                                         "foreground", "red",
-                                         "weight", PANGO_WEIGHT_BOLD,
-                                         NULL);
-       tag2 = gtk_text_buffer_create_tag(txtbuf, "mytag2",
-                                         /*"style", PANGO_STYLE_OBLIQUE, */
-                                         NULL);
+  switch (view_mode) {
+  case SINGLE_VIEW:
+    widget = lookup_widget(toolbar, "button4");
+    gtk_button_clicked(GTK_BUTTON(widget));
+    break;
+  case SPLIT_VIEW:
+    widget = lookup_widget(toolbar, "button5");
+    gtk_button_clicked(GTK_BUTTON(widget));
+    break;
+  case FULL_VIEW:
+    widget = lookup_widget(toolbar, "button6");
+    gtk_button_clicked(GTK_BUTTON(widget));
+    break;
+  }
 
-       strcpy(title, "GNUnet Configuration");
-       gtk_window_set_title(GTK_WINDOW(main_wnd), title);
+  txtbuf = gtk_text_view_get_buffer(GTK_TEXT_VIEW(text_w));
+  tag1 = gtk_text_buffer_create_tag(txtbuf, "mytag1",
+            "foreground", "red",
+            "weight", PANGO_WEIGHT_BOLD,
+            NULL);
+  tag2 = gtk_text_buffer_create_tag(txtbuf, "mytag2",
+            /*"style", PANGO_STYLE_OBLIQUE, */
+            NULL);
 
-       gtk_widget_show(main_wnd);
+  strcpy(title, "GNUnet Configuration");
+  gtk_window_set_title(GTK_WINDOW(main_wnd), title);
+
+  set_help("GNUnet Setup", "",
+    "This is GNUnet's configuration interface.\n"
+    "GNUnet's options are separated into categories. You can browse "
+    "them in the left tree. If you click on one of the categories, its "
+    "options are shown above.\nTo change the value of an option, simply "
+    "click on its value and enter a new value.\nTo get additional "
+    "information about a specific option, click on its description.");
+
+  gtk_widget_show(main_wnd);
 }
 
 void init_tree_model(void)
 {
-       gint i;
+  gint i;
 
-       tree = tree2 = gtk_tree_store_new(COL_NUMBER,
-                                         G_TYPE_STRING, G_TYPE_STRING,
-                                         G_TYPE_STRING, G_TYPE_STRING,
-                                         G_TYPE_STRING, G_TYPE_STRING,
-                                         G_TYPE_POINTER, GDK_TYPE_COLOR,
-                                         G_TYPE_BOOLEAN, GDK_TYPE_PIXBUF,
-                                         G_TYPE_BOOLEAN, G_TYPE_BOOLEAN,
-                                         G_TYPE_BOOLEAN, G_TYPE_BOOLEAN,
-                                         G_TYPE_BOOLEAN);
-       model2 = GTK_TREE_MODEL(tree2);
+  tree = tree2 = gtk_tree_store_new(COL_NUMBER,
+            G_TYPE_STRING, G_TYPE_STRING,
+            G_TYPE_STRING, G_TYPE_STRING,
+            G_TYPE_STRING, G_TYPE_STRING,
+            G_TYPE_POINTER, GDK_TYPE_COLOR,
+            G_TYPE_BOOLEAN, GDK_TYPE_PIXBUF,
+            G_TYPE_BOOLEAN, G_TYPE_BOOLEAN,
+            G_TYPE_BOOLEAN, G_TYPE_BOOLEAN,
+            G_TYPE_BOOLEAN);
+  model2 = GTK_TREE_MODEL(tree2);
 
-       for (parents[0] = NULL, i = 1; i < 256; i++)
-               parents[i] = (GtkTreeIter *) g_malloc(sizeof(GtkTreeIter));
+  for (parents[0] = NULL, i = 1; i < 256; i++)
+    parents[i] = (GtkTreeIter *) g_malloc(sizeof(GtkTreeIter));
 
-       tree1 = gtk_tree_store_new(COL_NUMBER,
-                                  G_TYPE_STRING, G_TYPE_STRING,
-                                  G_TYPE_STRING, G_TYPE_STRING,
-                                  G_TYPE_STRING, G_TYPE_STRING,
-                                  G_TYPE_POINTER, GDK_TYPE_COLOR,
-                                  G_TYPE_BOOLEAN, GDK_TYPE_PIXBUF,
-                                  G_TYPE_BOOLEAN, G_TYPE_BOOLEAN,
-                                  G_TYPE_BOOLEAN, G_TYPE_BOOLEAN,
-                                  G_TYPE_BOOLEAN);
-       model1 = GTK_TREE_MODEL(tree1);
+  tree1 = gtk_tree_store_new(COL_NUMBER,
+           G_TYPE_STRING, G_TYPE_STRING,
+           G_TYPE_STRING, G_TYPE_STRING,
+           G_TYPE_STRING, G_TYPE_STRING,
+           G_TYPE_POINTER, GDK_TYPE_COLOR,
+           G_TYPE_BOOLEAN, GDK_TYPE_PIXBUF,
+           G_TYPE_BOOLEAN, G_TYPE_BOOLEAN,
+           G_TYPE_BOOLEAN, G_TYPE_BOOLEAN,
+           G_TYPE_BOOLEAN);
+  model1 = GTK_TREE_MODEL(tree1);
 }
 
 void init_left_tree(void)
 {
-       GtkTreeView *view = GTK_TREE_VIEW(tree1_w);
-       GtkCellRenderer *renderer;
-       GtkTreeSelection *sel;
-       GtkTreeViewColumn *column;
+  GtkTreeView *view = GTK_TREE_VIEW(tree1_w);
+  GtkCellRenderer *renderer;
+  GtkTreeSelection *sel;
+  GtkTreeViewColumn *column;
 
-       gtk_tree_view_set_model(view, model1);
-       gtk_tree_view_set_headers_visible(view, TRUE);
-       gtk_tree_view_set_rules_hint(view, FALSE);
-       
-       column = gtk_tree_view_column_new();
-       gtk_tree_view_append_column(view, column);
-       gtk_tree_view_column_set_title(column, "Options");
+  gtk_tree_view_set_model(view, model1);
+  gtk_tree_view_set_headers_visible(view, TRUE);
+  gtk_tree_view_set_rules_hint(view, FALSE);
+  
+  column = gtk_tree_view_column_new();
+  gtk_tree_view_append_column(view, column);
+  gtk_tree_view_column_set_title(column, "Options");
 
-       renderer = gtk_cell_renderer_toggle_new();
-       gtk_tree_view_column_pack_start(GTK_TREE_VIEW_COLUMN(column),
-                                       renderer, FALSE);
-       gtk_tree_view_column_set_attributes(GTK_TREE_VIEW_COLUMN(column),
-                                           renderer,
-                                           "active", COL_BTNACT,
-                                           "inconsistent", COL_BTNINC,
-                                           "visible", COL_BTNVIS, 
-                                           "radio", COL_BTNRAD, NULL);
-       renderer = gtk_cell_renderer_text_new();
-       gtk_tree_view_column_pack_start(GTK_TREE_VIEW_COLUMN(column),
-                                       renderer, FALSE);       
-       gtk_tree_view_column_set_attributes(GTK_TREE_VIEW_COLUMN(column),
-                                           renderer,
-                                           "text", COL_OPTION,
-                                           "foreground-gdk",
-                                           COL_COLOR, NULL);
+  renderer = gtk_cell_renderer_toggle_new();
+  gtk_tree_view_column_pack_start(GTK_TREE_VIEW_COLUMN(column),
+          renderer, FALSE);
+  gtk_tree_view_column_set_attributes(GTK_TREE_VIEW_COLUMN(column),
+              renderer,
+              "active", COL_BTNACT,
+              "inconsistent", COL_BTNINC,
+              "visible", COL_BTNVIS, 
+              "radio", COL_BTNRAD, NULL);
+  renderer = gtk_cell_renderer_text_new();
+  gtk_tree_view_column_pack_start(GTK_TREE_VIEW_COLUMN(column),
+          renderer, FALSE); 
+  gtk_tree_view_column_set_attributes(GTK_TREE_VIEW_COLUMN(column),
+              renderer,
+              "text", COL_OPTION,
+              "foreground-gdk",
+              COL_COLOR, NULL);
 
-       sel = gtk_tree_view_get_selection(view);
-       gtk_tree_selection_set_mode(sel, GTK_SELECTION_SINGLE);
-       gtk_widget_realize(tree1_w);
+  sel = gtk_tree_view_get_selection(view);
+  gtk_tree_selection_set_mode(sel, GTK_SELECTION_SINGLE);
+  gtk_widget_realize(tree1_w);
 }
 
 static void renderer_edited(GtkCellRendererText * cell,
-                           const gchar * path_string,
-                           const gchar * new_text, gpointer user_data);
+          const gchar * path_string,
+          const gchar * new_text, gpointer user_data);
 static void renderer_toggled(GtkCellRendererToggle * cellrenderertoggle,
-                            gchar * arg1, gpointer user_data);
+           gchar * arg1, gpointer user_data);
 
 void init_right_tree(void)
 {
-       GtkTreeView *view = GTK_TREE_VIEW(tree2_w);
-       GtkCellRenderer *renderer;
-       GtkTreeSelection *sel;
-       GtkTreeViewColumn *column;
-       gint i;
+  GtkTreeView *view = GTK_TREE_VIEW(tree2_w);
+  GtkCellRenderer *renderer;
+  GtkTreeSelection *sel;
+  GtkTreeViewColumn *column;
+  gint i;
 
-       gtk_tree_view_set_model(view, model2);
-       gtk_tree_view_set_headers_visible(view, TRUE);
-       gtk_tree_view_set_rules_hint(view, FALSE);
+  gtk_tree_view_set_model(view, model2);
+  gtk_tree_view_set_headers_visible(view, TRUE);
+  gtk_tree_view_set_rules_hint(view, FALSE);
 
-       column = gtk_tree_view_column_new();
-       gtk_tree_view_append_column(view, column);
-       gtk_tree_view_column_set_title(column, "Options");
+  column = gtk_tree_view_column_new();
+  gtk_tree_view_append_column(view, column);
+  gtk_tree_view_column_set_title(column, "Options");
 
-       renderer = gtk_cell_renderer_pixbuf_new();
-       gtk_tree_view_column_pack_start(GTK_TREE_VIEW_COLUMN(column),
-                                       renderer, FALSE);
-       gtk_tree_view_column_set_attributes(GTK_TREE_VIEW_COLUMN(column),
-                                           renderer,
-                                           "pixbuf", COL_PIXBUF,
-                                           "visible", COL_PIXVIS, NULL);
-       renderer = gtk_cell_renderer_toggle_new();
-       gtk_tree_view_column_pack_start(GTK_TREE_VIEW_COLUMN(column),
-                                       renderer, FALSE);
-       gtk_tree_view_column_set_attributes(GTK_TREE_VIEW_COLUMN(column),
-                                           renderer,
-                                           "active", COL_BTNACT,
-                                           "inconsistent", COL_BTNINC,
-                                           "visible", COL_BTNVIS, 
-                                           "radio", COL_BTNRAD, NULL);
-       /*g_signal_connect(G_OBJECT(renderer), "toggled",
-          G_CALLBACK(renderer_toggled), NULL); */
-       renderer = gtk_cell_renderer_text_new();
-       gtk_tree_view_column_pack_start(GTK_TREE_VIEW_COLUMN(column),
-                                       renderer, FALSE);
-       gtk_tree_view_column_set_attributes(GTK_TREE_VIEW_COLUMN(column),
-                                           renderer,
-                                           "text", COL_OPTION,
-                                           "foreground-gdk",
-                                           COL_COLOR, NULL);
+  renderer = gtk_cell_renderer_pixbuf_new();
+  gtk_tree_view_column_pack_start(GTK_TREE_VIEW_COLUMN(column),
+          renderer, FALSE);
+  gtk_tree_view_column_set_attributes(GTK_TREE_VIEW_COLUMN(column),
+              renderer,
+              "pixbuf", COL_PIXBUF,
+              "visible", COL_PIXVIS, NULL);
+  renderer = gtk_cell_renderer_toggle_new();
+  gtk_tree_view_column_pack_start(GTK_TREE_VIEW_COLUMN(column),
+          renderer, FALSE);
+  gtk_tree_view_column_set_attributes(GTK_TREE_VIEW_COLUMN(column),
+              renderer,
+              "active", COL_BTNACT,
+              "inconsistent", COL_BTNINC,
+              "visible", COL_BTNVIS, 
+              "radio", COL_BTNRAD, NULL);
+  /*g_signal_connect(G_OBJECT(renderer), "toggled",
+     G_CALLBACK(renderer_toggled), NULL); */
+  renderer = gtk_cell_renderer_text_new();
+  gtk_tree_view_column_pack_start(GTK_TREE_VIEW_COLUMN(column),
+          renderer, FALSE);
+  gtk_tree_view_column_set_attributes(GTK_TREE_VIEW_COLUMN(column),
+              renderer,
+              "text", COL_OPTION,
+              "foreground-gdk",
+              COL_COLOR, NULL);
 
-       renderer = gtk_cell_renderer_text_new();
-       gtk_tree_view_insert_column_with_attributes(view, -1,
-                                                   "Name", renderer,
-                                                   "text", COL_NAME,
-                                                   "foreground-gdk",
-                                                   COL_COLOR, NULL);
-       renderer = gtk_cell_renderer_text_new();
-       gtk_tree_view_insert_column_with_attributes(view, -1,
-                                                   "N", renderer,
-                                                   "text", COL_NO,
-                                                   "foreground-gdk",
-                                                   COL_COLOR, NULL);
-       renderer = gtk_cell_renderer_text_new();
-       gtk_tree_view_insert_column_with_attributes(view, -1,
-                                                   "M", renderer,
-                                                   "text", COL_MOD,
-                                                   "foreground-gdk",
-                                                   COL_COLOR, NULL);
-       renderer = gtk_cell_renderer_text_new();
-       gtk_tree_view_insert_column_with_attributes(view, -1,
-                                                   "Y", renderer,
-                                                   "text", COL_YES,
-                                                   "foreground-gdk",
-                                                   COL_COLOR, NULL);
-       renderer = gtk_cell_renderer_text_new();
-       gtk_tree_view_insert_column_with_attributes(view, -1,
-                                                   "Value", renderer,
-                                                   "text", COL_VALUE,
-                                                   "editable",
-                                                   COL_EDIT,
-                                                   "foreground-gdk",
-                                                   COL_COLOR, NULL);
-       g_signal_connect(G_OBJECT(renderer), "edited",
-                        G_CALLBACK(renderer_edited), NULL);
+  renderer = gtk_cell_renderer_text_new();
+  gtk_tree_view_insert_column_with_attributes(view, -1,
+                "Name", renderer,
+                "text", COL_NAME,
+                "foreground-gdk",
+                COL_COLOR, NULL);
+  renderer = gtk_cell_renderer_text_new();
+  gtk_tree_view_insert_column_with_attributes(view, -1,
+                "N", renderer,
+                "text", COL_NO,
+                "foreground-gdk",
+                COL_COLOR, NULL);
+  renderer = gtk_cell_renderer_text_new();
+  gtk_tree_view_insert_column_with_attributes(view, -1,
+                "M", renderer,
+                "text", COL_MOD,
+                "foreground-gdk",
+                COL_COLOR, NULL);
+  renderer = gtk_cell_renderer_text_new();
+  gtk_tree_view_insert_column_with_attributes(view, -1,
+                "Y", renderer,
+                "text", COL_YES,
+                "foreground-gdk",
+                COL_COLOR, NULL);
+  renderer = gtk_cell_renderer_text_new();
+  gtk_tree_view_insert_column_with_attributes(view, -1,
+                "Value", renderer,
+                "text", COL_VALUE,
+                "editable",
+                COL_EDIT,
+                "foreground-gdk",
+                COL_COLOR, NULL);
+  g_signal_connect(G_OBJECT(renderer), "edited",
+       G_CALLBACK(renderer_edited), NULL);
 
-       column = gtk_tree_view_get_column(view, COL_NAME);
-       gtk_tree_view_column_set_visible(column, show_name);
-       column = gtk_tree_view_get_column(view, COL_NO);
-       gtk_tree_view_column_set_visible(column, show_range);
-       column = gtk_tree_view_get_column(view, COL_MOD);
-       gtk_tree_view_column_set_visible(column, show_range);
-       column = gtk_tree_view_get_column(view, COL_YES);
-       gtk_tree_view_column_set_visible(column, show_range);
-       column = gtk_tree_view_get_column(view, COL_VALUE);
-       gtk_tree_view_column_set_visible(column, show_value);
+  column = gtk_tree_view_get_column(view, COL_NAME);
+  gtk_tree_view_column_set_visible(column, show_name);
+  column = gtk_tree_view_get_column(view, COL_NO);
+  gtk_tree_view_column_set_visible(column, show_range);
+  column = gtk_tree_view_get_column(view, COL_MOD);
+  gtk_tree_view_column_set_visible(column, show_range);
+  column = gtk_tree_view_get_column(view, COL_YES);
+  gtk_tree_view_column_set_visible(column, show_range);
+  column = gtk_tree_view_get_column(view, COL_VALUE);
+  gtk_tree_view_column_set_visible(column, show_value);
 
-       if (resizeable) {
-               for (i = 0; i < COL_VALUE; i++) {
-                       column = gtk_tree_view_get_column(view, i);
-                       gtk_tree_view_column_set_resizable(column, TRUE);
-               }
-       }
+  if (resizeable) {
+    for (i = 0; i < COL_VALUE; i++) {
+      column = gtk_tree_view_get_column(view, i);
+      gtk_tree_view_column_set_resizable(column, TRUE);
+    }
+  }
 
-       sel = gtk_tree_view_get_selection(view);
-       gtk_tree_selection_set_mode(sel, GTK_SELECTION_SINGLE);
+  sel = gtk_tree_view_get_selection(view);
+  gtk_tree_selection_set_mode(sel, GTK_SELECTION_SINGLE);
 }
 
 
 /* Utility Functions */
 
-
 static void text_insert_help(struct menu *menu)
 {
-       GtkTextBuffer *buffer;
-       GtkTextIter start, end;
-       const char *prompt = menu_get_prompt(menu);
-       gchar *name;
-       const char *help = nohelp_text;
+  const char *prompt = menu_get_prompt(menu);
+  gchar *name;
+  const char *help = nohelp_text;
 
-       if (!menu->sym)
-               help = "";
-       else if (menu->sym->help)
-               help = menu->sym->help;
+  if (!menu->sym)
+    help = "";
+  else if (menu->sym->help)
+    help = menu->sym->help;
 
-       if (menu->sym && menu->sym->name)
-               name = g_strdup_printf(menu->sym->name);
-       else
-               name = g_strdup("");
+  if (menu->sym && menu->sym->name)
+    name = g_strdup_printf(menu->sym->name);
+  else
+    name = g_strdup("");
 
-       buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(text_w));
-       gtk_text_buffer_get_bounds(buffer, &start, &end);
-       gtk_text_buffer_delete(buffer, &start, &end);
-       gtk_text_view_set_left_margin(GTK_TEXT_VIEW(text_w), 15);
-
-       gtk_text_buffer_get_end_iter(buffer, &end);
-       gtk_text_buffer_insert_with_tags(buffer, &end, prompt, -1, tag1,
-                                        NULL);
-       gtk_text_buffer_insert_at_cursor(buffer, " ", 1);
-       gtk_text_buffer_get_end_iter(buffer, &end);
-       gtk_text_buffer_insert_with_tags(buffer, &end, name, -1, tag1,
-                                        NULL);
-       gtk_text_buffer_insert_at_cursor(buffer, "\n\n", 2);
-       gtk_text_buffer_get_end_iter(buffer, &end);
-       gtk_text_buffer_insert_with_tags(buffer, &end, help, -1, tag2,
-                                        NULL);
+  set_help(prompt, name, help);
 }
 
 
 static void text_insert_msg(const char *title, const char *message)
 {
-       GtkTextBuffer *buffer;
-       GtkTextIter start, end;
-       const char *msg = message;
+  GtkTextBuffer *buffer;
+  GtkTextIter start, end;
+  const char *msg = message;
 
-       buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(text_w));
-       gtk_text_buffer_get_bounds(buffer, &start, &end);
-       gtk_text_buffer_delete(buffer, &start, &end);
-       gtk_text_view_set_left_margin(GTK_TEXT_VIEW(text_w), 15);
+  buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(text_w));
+  gtk_text_buffer_get_bounds(buffer, &start, &end);
+  gtk_text_buffer_delete(buffer, &start, &end);
+  gtk_text_view_set_left_margin(GTK_TEXT_VIEW(text_w), 15);
 
-       gtk_text_buffer_get_end_iter(buffer, &end);
-       gtk_text_buffer_insert_with_tags(buffer, &end, title, -1, tag1,
-                                        NULL);
-       gtk_text_buffer_insert_at_cursor(buffer, "\n\n", 2);
-       gtk_text_buffer_get_end_iter(buffer, &end);
-       gtk_text_buffer_insert_with_tags(buffer, &end, msg, -1, tag2,
-                                        NULL);
+  gtk_text_buffer_get_end_iter(buffer, &end);
+  gtk_text_buffer_insert_with_tags(buffer, &end, title, -1, tag1,
+           NULL);
+  gtk_text_buffer_insert_at_cursor(buffer, "\n\n", 2);
+  gtk_text_buffer_get_end_iter(buffer, &end);
+  gtk_text_buffer_insert_with_tags(buffer, &end, msg, -1, tag2,
+           NULL);
 }
 
 
@@ -520,73 +544,74 @@
 
 void on_save1_activate(GtkMenuItem * menuitem, gpointer user_data);
 gboolean on_window1_delete_event(GtkWidget * widget, GdkEvent * event,
-                                gpointer user_data)
+         gpointer user_data)
 {
-       GtkWidget *dialog, *label;
-       gint result;
+  GtkWidget *dialog, *label;
+  gint result;
 
-       if (config_changed == FALSE)
-               return FALSE;
+  if (config_changed == FALSE)
+    return FALSE;
 
-       dialog = gtk_dialog_new_with_buttons("Warning !",
-                                            GTK_WINDOW(main_wnd),
-                                            (GtkDialogFlags)
-                                            (GTK_DIALOG_MODAL |
-                                             GTK_DIALOG_DESTROY_WITH_PARENT),
-                                            GTK_STOCK_OK,
-                                            GTK_RESPONSE_YES,
-                                            GTK_STOCK_NO,
-                                            GTK_RESPONSE_NO,
-                                            GTK_STOCK_CANCEL,
-                                            GTK_RESPONSE_CANCEL, NULL);
-       gtk_dialog_set_default_response(GTK_DIALOG(dialog),
-                                       GTK_RESPONSE_CANCEL);
+  dialog = gtk_dialog_new_with_buttons("Warning !",
+               GTK_WINDOW(main_wnd),
+               (GtkDialogFlags)
+               (GTK_DIALOG_MODAL |
+                GTK_DIALOG_DESTROY_WITH_PARENT),
+               GTK_STOCK_OK,
+               GTK_RESPONSE_YES,
+               GTK_STOCK_NO,
+               GTK_RESPONSE_NO,
+               GTK_STOCK_CANCEL,
+               GTK_RESPONSE_CANCEL, NULL);
+  gtk_dialog_set_default_response(GTK_DIALOG(dialog),
+          GTK_RESPONSE_CANCEL);
 
-       label = gtk_label_new("\nSave configuration ?\n");
-       gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), label);
-       gtk_widget_show(label);
+  label = gtk_label_new("\nSave configuration ?\n");
+  gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), label);
+  gtk_widget_show(label);
 
-       result = gtk_dialog_run(GTK_DIALOG(dialog));
-       switch (result) {
-       case GTK_RESPONSE_YES:
-               on_save1_activate(NULL, NULL);
-               return FALSE;
-       case GTK_RESPONSE_NO:
-               return FALSE;
-       case GTK_RESPONSE_CANCEL:
-       case GTK_RESPONSE_DELETE_EVENT:
-       default:
-               gtk_widget_destroy(dialog);
-               return TRUE;
-       }
+  result = gtk_dialog_run(GTK_DIALOG(dialog));
+  switch (result) {
+  case GTK_RESPONSE_YES:
+    on_save1_activate(NULL, NULL);
+    return FALSE;
+  case GTK_RESPONSE_NO:
+    return FALSE;
+  case GTK_RESPONSE_CANCEL:
+  case GTK_RESPONSE_DELETE_EVENT:
+  default:
+    gtk_widget_destroy(dialog);
+    return TRUE;
+  }
 
-       return FALSE;
+  return FALSE;
 }
 
 
 void on_window1_destroy(GtkObject * object, gpointer user_data)
 {
-       gtk_main_quit();
+  gtk_main_quit();
 }
 
 
 void
 on_window1_size_request(GtkWidget * widget,
-                       GtkRequisition * requisition, gpointer user_data)
+      GtkRequisition * requisition, gpointer user_data)
 {
-       static gint old_h;
-       gint w, h;
+  static gint old_h;
+  gint w, h;
 
-       if (widget->window == NULL)
-               gtk_window_get_default_size(GTK_WINDOW(main_wnd), &w, &h);
-       else
-               gdk_window_get_size(widget->window, &w, &h);
+  if (widget->window == NULL)
+    gtk_window_get_default_size(GTK_WINDOW(main_wnd), &w, &h);
+  else
+    gdk_window_get_size(widget->window, &w, &h);
 
-       if (h == old_h)
-               return;
-       old_h = h;
+  if (h == old_h)
+    return;
+  old_h = h;
 
-       gtk_paned_set_position(GTK_PANED(vpaned), 2 * h / 3);
+  if (vpaned)
+    gtk_paned_set_position(GTK_PANED(vpaned), 2 * h / 3);
 }
 
 
@@ -596,284 +621,285 @@
 static void
 load_filename(GtkFileSelection * file_selector, gpointer user_data)
 {
-       const gchar *fn;
+  const gchar *fn;
 
-       fn = gtk_file_selection_get_filename(GTK_FILE_SELECTION
-                                            (user_data));
+  fn = gtk_file_selection_get_filename(GTK_FILE_SELECTION
+               (user_data));
 
-       if (conf_read(fn))
-               text_insert_msg("Error", "Unable to load configuration !");
-       else
-               display_tree(&rootmenu);
+  if (conf_read(fn))
+    text_insert_msg("Error", "Unable to load configuration !");
+  else
+    display_tree(&rootmenu);
 }
 
 void on_load1_activate(GtkMenuItem * menuitem, gpointer user_data)
 {
-       GtkWidget *fs;
+  GtkWidget *fs;
 
-       fs = gtk_file_selection_new("Load file...");
-       g_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(fs)->ok_button),
-                        "clicked",
-                        G_CALLBACK(load_filename), (gpointer) fs);
-       g_signal_connect_swapped(GTK_OBJECT
-                                (GTK_FILE_SELECTION(fs)->ok_button),
-                                "clicked", G_CALLBACK(gtk_widget_destroy),
-                                (gpointer) fs);
-       g_signal_connect_swapped(GTK_OBJECT
-                                (GTK_FILE_SELECTION(fs)->cancel_button),
-                                "clicked", G_CALLBACK(gtk_widget_destroy),
-                                (gpointer) fs);
-       gtk_widget_show(fs);
+  fs = gtk_file_selection_new("Load file...");
+  g_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(fs)->ok_button),
+       "clicked",
+       G_CALLBACK(load_filename), (gpointer) fs);
+  g_signal_connect_swapped(GTK_OBJECT
+         (GTK_FILE_SELECTION(fs)->ok_button),
+         "clicked", G_CALLBACK(gtk_widget_destroy),
+         (gpointer) fs);
+  g_signal_connect_swapped(GTK_OBJECT
+         (GTK_FILE_SELECTION(fs)->cancel_button),
+         "clicked", G_CALLBACK(gtk_widget_destroy),
+         (gpointer) fs);
+  gtk_widget_show(fs);
 }
 
 
 void on_save1_activate(GtkMenuItem * menuitem, gpointer user_data)
 {
-       if (conf_write(NULL))
-               text_insert_msg("Error", "Unable to save configuration !");
+  if (conf_write(NULL))
+    text_insert_msg("Error", "Unable to save configuration !");
 
-       config_changed = FALSE;
+  config_changed = FALSE;
 }
 
 
 static void
 store_filename(GtkFileSelection * file_selector, gpointer user_data)
 {
-       const gchar *fn;
+  const gchar *fn;
 
-       fn = gtk_file_selection_get_filename(GTK_FILE_SELECTION
-                                            (user_data));
+  fn = gtk_file_selection_get_filename(GTK_FILE_SELECTION
+               (user_data));
 
-       if (conf_write(fn))
-               text_insert_msg("Error", "Unable to save configuration !");
+  if (conf_write(fn))
+    text_insert_msg("Error", "Unable to save configuration !");
 
-       gtk_widget_destroy(GTK_WIDGET(user_data));
+  gtk_widget_destroy(GTK_WIDGET(user_data));
 }
 
 void on_save_as1_activate(GtkMenuItem * menuitem, gpointer user_data)
 {
-       GtkWidget *fs;
+  GtkWidget *fs;
 
-       fs = gtk_file_selection_new("Save file as...");
-       g_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(fs)->ok_button),
-                        "clicked",
-                        G_CALLBACK(store_filename), (gpointer) fs);
-       g_signal_connect_swapped(GTK_OBJECT
-                                (GTK_FILE_SELECTION(fs)->ok_button),
-                                "clicked", G_CALLBACK(gtk_widget_destroy),
-                                (gpointer) fs);
-       g_signal_connect_swapped(GTK_OBJECT
-                                (GTK_FILE_SELECTION(fs)->cancel_button),
-                                "clicked", G_CALLBACK(gtk_widget_destroy),
-                                (gpointer) fs);
-       gtk_widget_show(fs);
+  fs = gtk_file_selection_new("Save file as...");
+  g_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(fs)->ok_button),
+       "clicked",
+       G_CALLBACK(store_filename), (gpointer) fs);
+  g_signal_connect_swapped(GTK_OBJECT
+         (GTK_FILE_SELECTION(fs)->ok_button),
+         "clicked", G_CALLBACK(gtk_widget_destroy),
+         (gpointer) fs);
+  g_signal_connect_swapped(GTK_OBJECT
+         (GTK_FILE_SELECTION(fs)->cancel_button),
+         "clicked", G_CALLBACK(gtk_widget_destroy),
+         (gpointer) fs);
+  gtk_widget_show(fs);
 }
 
 
 void on_quit1_activate(GtkMenuItem * menuitem, gpointer user_data)
 {
-       if (!on_window1_delete_event(NULL, NULL, NULL))
-               gtk_widget_destroy(GTK_WIDGET(main_wnd));
+  if (!on_window1_delete_event(NULL, NULL, NULL))
+    gtk_widget_destroy(GTK_WIDGET(main_wnd));
 }
 
 
 void on_show_name1_activate(GtkMenuItem * menuitem, gpointer user_data)
 {
-       GtkTreeViewColumn *col;
+  GtkTreeViewColumn *col;
 
-       show_name = GTK_CHECK_MENU_ITEM(menuitem)->active;
-       col = gtk_tree_view_get_column(GTK_TREE_VIEW(tree2_w), COL_NAME);
-       if (col)
-               gtk_tree_view_column_set_visible(col, show_name);
+  show_name = GTK_CHECK_MENU_ITEM(menuitem)->active;
+  col = gtk_tree_view_get_column(GTK_TREE_VIEW(tree2_w), COL_NAME);
+  if (col)
+    gtk_tree_view_column_set_visible(col, show_name);
 }
 
 
 void on_show_range1_activate(GtkMenuItem * menuitem, gpointer user_data)
 {
-       GtkTreeViewColumn *col;
+  GtkTreeViewColumn *col;
 
-       show_range = GTK_CHECK_MENU_ITEM(menuitem)->active;
-       col = gtk_tree_view_get_column(GTK_TREE_VIEW(tree2_w), COL_NO);
-       if (col)
-               gtk_tree_view_column_set_visible(col, show_range);
-       col = gtk_tree_view_get_column(GTK_TREE_VIEW(tree2_w), COL_MOD);
-       if (col)
-               gtk_tree_view_column_set_visible(col, show_range);
-       col = gtk_tree_view_get_column(GTK_TREE_VIEW(tree2_w), COL_YES);
-       if (col)
-               gtk_tree_view_column_set_visible(col, show_range);
+  show_range = GTK_CHECK_MENU_ITEM(menuitem)->active;
+  col = gtk_tree_view_get_column(GTK_TREE_VIEW(tree2_w), COL_NO);
+  if (col)
+    gtk_tree_view_column_set_visible(col, show_range);
+  col = gtk_tree_view_get_column(GTK_TREE_VIEW(tree2_w), COL_MOD);
+  if (col)
+    gtk_tree_view_column_set_visible(col, show_range);
+  col = gtk_tree_view_get_column(GTK_TREE_VIEW(tree2_w), COL_YES);
+  if (col)
+    gtk_tree_view_column_set_visible(col, show_range);
 
 }
 
 
 void on_show_data1_activate(GtkMenuItem * menuitem, gpointer user_data)
 {
-       GtkTreeViewColumn *col;
+  GtkTreeViewColumn *col;
 
-       show_value = GTK_CHECK_MENU_ITEM(menuitem)->active;
-       col = gtk_tree_view_get_column(GTK_TREE_VIEW(tree2_w), COL_VALUE);
-       if (col)
-               gtk_tree_view_column_set_visible(col, show_value);
+  show_value = GTK_CHECK_MENU_ITEM(menuitem)->active;
+  col = gtk_tree_view_get_column(GTK_TREE_VIEW(tree2_w), COL_VALUE);
+  if (col)
+    gtk_tree_view_column_set_visible(col, show_value);
 }
 
 
 void
 on_show_all_options1_activate(GtkMenuItem * menuitem, gpointer user_data)
 {
-       show_all = GTK_CHECK_MENU_ITEM(menuitem)->active;
+  show_all = GTK_CHECK_MENU_ITEM(menuitem)->active;
 
-       gtk_tree_store_clear(tree2);
-       display_tree(&rootmenu);        /* instead of update_tree to speed-up */
+  gtk_tree_store_clear(tree2);
+  display_tree(&rootmenu);  /* instead of update_tree to speed-up */
 }
 
 
 void
 on_show_debug_info1_activate(GtkMenuItem * menuitem, gpointer user_data)
 {
-       show_debug = GTK_CHECK_MENU_ITEM(menuitem)->active;
-       update_tree(&rootmenu, NULL);
+  show_debug = GTK_CHECK_MENU_ITEM(menuitem)->active;
+  update_tree(&rootmenu, NULL);
 }
 
 
 void on_introduction1_activate(GtkMenuItem * menuitem, gpointer user_data)
 {
-       GtkWidget *dialog;
-       const gchar *intro_text =
-           "Welcome to GNUnet Setup.\n"
-           "For each option, a blank box indicates the feature is disabled, 
and\n"
-           "check indicates it is enabled.\n"
-           "Clicking on the box will cycle through the three states.\n"
-           "\n"
-           "If you do not see an option (e.g., a device driver) that you\n"
-           "believe should be present, try turning on Show All Options\n"
-           "under the Options menu.\n"
-           "Although there is no cross reference yet to help you figure out\n"
-           "what other options must be enabled to support the option you\n"
-           "are interested in, you can still view the help of a grayed-out\n"
-           "option.\n"
-           "\n"
-           "Toggling Show Debug Info under the Options menu will show \n"
-           "the dependencies, which you can then match by examining other 
options.";
+  GtkWidget *dialog;
+  const gchar *intro_text =
+      "Welcome to GNUnet Setup.\n"
+      "For each option, a blank box indicates the feature is disabled, and\n"
+      "check indicates it is enabled.\n"
+      "Clicking on the box will cycle through the three states.\n"
+      "\n"
+      "If you do not see an option (e.g., a device driver) that you\n"
+      "believe should be present, try turning on Show All Options\n"
+      "under the Options menu.\n"
+      "Although there is no cross reference yet to help you figure out\n"
+      "what other options must be enabled to support the option you\n"
+      "are interested in, you can still view the help of a grayed-out\n"
+      "option.\n"
+      "\n"
+      "Toggling Show Debug Info under the Options menu will show \n"
+      "the dependencies, which you can then match by examining other options.";
 
-       dialog = gtk_message_dialog_new(GTK_WINDOW(main_wnd),
-                                       GTK_DIALOG_DESTROY_WITH_PARENT,
-                                       GTK_MESSAGE_INFO,
-                                       GTK_BUTTONS_CLOSE, intro_text);
-       g_signal_connect_swapped(GTK_OBJECT(dialog), "response",
-                                G_CALLBACK(gtk_widget_destroy),
-                                GTK_OBJECT(dialog));
-       gtk_widget_show_all(dialog);
+  dialog = gtk_message_dialog_new(GTK_WINDOW(main_wnd),
+          GTK_DIALOG_DESTROY_WITH_PARENT,
+          GTK_MESSAGE_INFO,
+          GTK_BUTTONS_CLOSE, intro_text);
+  g_signal_connect_swapped(GTK_OBJECT(dialog), "response",
+         G_CALLBACK(gtk_widget_destroy),
+         GTK_OBJECT(dialog));
+  gtk_widget_show_all(dialog);
 }
 
 
 void on_about1_activate(GtkMenuItem * menuitem, gpointer user_data)
 {
-       GtkWidget *dialog;
-       const gchar *about_text =
-           "gkc is copyright (c) 2002 Romain Lievin <address@hidden>.\n"
-           "Based on the source code from Roman Zippel.\n";
+  GtkWidget *dialog;
+  const gchar *about_text =
+      "gkc is copyright (c) 2002 Romain Lievin <address@hidden>.\n"
+      "Based on the source code from Roman Zippel.\n";
 
-       dialog = gtk_message_dialog_new(GTK_WINDOW(main_wnd),
-                                       GTK_DIALOG_DESTROY_WITH_PARENT,
-                                       GTK_MESSAGE_INFO,
-                                       GTK_BUTTONS_CLOSE, about_text);
-       g_signal_connect_swapped(GTK_OBJECT(dialog), "response",
-                                G_CALLBACK(gtk_widget_destroy),
-                                GTK_OBJECT(dialog));
-       gtk_widget_show_all(dialog);
+  dialog = gtk_message_dialog_new(GTK_WINDOW(main_wnd),
+          GTK_DIALOG_DESTROY_WITH_PARENT,
+          GTK_MESSAGE_INFO,
+          GTK_BUTTONS_CLOSE, about_text);
+  g_signal_connect_swapped(GTK_OBJECT(dialog), "response",
+         G_CALLBACK(gtk_widget_destroy),
+         GTK_OBJECT(dialog));
+  gtk_widget_show_all(dialog);
 }
 
 
 void on_license1_activate(GtkMenuItem * menuitem, gpointer user_data)
 {
-       GtkWidget *dialog;
-       const gchar *license_text =
-           "gkc is released under the terms of the GNU GPL v2.\n"
-           "For more information, please see the source code or\n"
-           "visit http://www.fsf.org/licenses/licenses.html\n";;
+  GtkWidget *dialog;
+  const gchar *license_text =
+      "gkc is released under the terms of the GNU GPL v2.\n"
+      "For more information, please see the source code or\n"
+      "visit http://www.fsf.org/licenses/licenses.html\n";;
 
-       dialog = gtk_message_dialog_new(GTK_WINDOW(main_wnd),
-                                       GTK_DIALOG_DESTROY_WITH_PARENT,
-                                       GTK_MESSAGE_INFO,
-                                       GTK_BUTTONS_CLOSE, license_text);
-       g_signal_connect_swapped(GTK_OBJECT(dialog), "response",
-                                G_CALLBACK(gtk_widget_destroy),
-                                GTK_OBJECT(dialog));
-       gtk_widget_show_all(dialog);
+  dialog = gtk_message_dialog_new(GTK_WINDOW(main_wnd),
+          GTK_DIALOG_DESTROY_WITH_PARENT,
+          GTK_MESSAGE_INFO,
+          GTK_BUTTONS_CLOSE, license_text);
+  g_signal_connect_swapped(GTK_OBJECT(dialog), "response",
+         G_CALLBACK(gtk_widget_destroy),
+         GTK_OBJECT(dialog));
+  gtk_widget_show_all(dialog);
 }
 
 
 void on_back_pressed(GtkButton * button, gpointer user_data)
 {
-       enum prop_type ptype;
+  enum prop_type ptype;
 
-       current = current->parent;
-       ptype = current->prompt ? current->prompt->type : P_UNKNOWN;
-       if (ptype != P_MENU)
-               current = current->parent;
-       display_tree_part();
+  current = current->parent;
+  ptype = current->prompt ? current->prompt->type : P_UNKNOWN;
+  if (ptype != P_MENU)
+    current = current->parent;
+  display_tree_part();
 
-       if (current == &rootmenu)
-               gtk_widget_set_sensitive(back_btn, FALSE);
+  if (current == &rootmenu)
+    gtk_widget_set_sensitive(back_btn, FALSE);
 }
 
 
 void on_load_pressed(GtkButton * button, gpointer user_data)
 {
-       on_load1_activate(NULL, user_data);
+  on_load1_activate(NULL, user_data);
 }
 
 
 void on_save_pressed(GtkButton * button, gpointer user_data)
 {
-       on_save1_activate(NULL, user_data);
+  on_save1_activate(NULL, user_data);
 }
 
 
 void on_single_clicked(GtkButton * button, gpointer user_data)
 {
-       view_mode = SINGLE_VIEW;
-       gtk_paned_set_position(GTK_PANED(hpaned), 0);
-       gtk_widget_hide(tree1_w);
-       current = &rootmenu;
-       display_tree_part();
+  view_mode = SINGLE_VIEW;
+  gtk_paned_set_position(GTK_PANED(hpaned), 0);
+  gtk_widget_hide(tree1_w);
+  current = &rootmenu;
+  display_tree_part();
 }
 
 
 void on_split_clicked(GtkButton * button, gpointer user_data)
 {
-       gint w, h;
-       view_mode = SPLIT_VIEW;
-       gtk_widget_show(tree1_w);
-       gtk_window_get_default_size(GTK_WINDOW(main_wnd), &w, &h);
-       gtk_paned_set_position(GTK_PANED(hpaned), w / 2);
-       if (tree2)      
-               gtk_tree_store_clear(tree2);
-       display_list();
+  gint w, h;
+  view_mode = SPLIT_VIEW;
+  gtk_widget_show(tree1_w);
+  gtk_window_get_default_size(GTK_WINDOW(main_wnd), &w, &h);
+  gtk_paned_set_position(GTK_PANED(hpaned), w / 2);
+  gtk_paned_set_position(GTK_PANED(vpaned), h / 2);
+  if (tree2)  
+    gtk_tree_store_clear(tree2);
+  display_list();
 }
 
 
 void on_full_clicked(GtkButton * button, gpointer user_data)
 {
-       view_mode = FULL_VIEW;
-       gtk_paned_set_position(GTK_PANED(hpaned), 0);
-       gtk_widget_hide(tree1_w);
-       if (tree2)
-               gtk_tree_store_clear(tree2);
-       display_tree(&rootmenu);
-       gtk_widget_set_sensitive(back_btn, FALSE);
+  view_mode = FULL_VIEW;
+  gtk_paned_set_position(GTK_PANED(hpaned), 0);
+  gtk_widget_hide(tree1_w);
+  if (tree2)
+    gtk_tree_store_clear(tree2);
+  display_tree(&rootmenu);
+  gtk_widget_set_sensitive(back_btn, FALSE);
 }
 
 
 void on_collapse_pressed(GtkButton * button, gpointer user_data)
 {
-       gtk_tree_view_collapse_all(GTK_TREE_VIEW(tree2_w));
+  gtk_tree_view_collapse_all(GTK_TREE_VIEW(tree2_w));
 }
 
 
 void on_expand_pressed(GtkButton * button, gpointer user_data)
 {
-       gtk_tree_view_expand_all(GTK_TREE_VIEW(tree2_w));
+  gtk_tree_view_expand_all(GTK_TREE_VIEW(tree2_w));
 }
 
 
@@ -881,240 +907,240 @@
 
 /* Change hex/int/string value in the cell */
 static void renderer_edited(GtkCellRendererText * cell,
-                           const gchar * path_string,
-                           const gchar * new_text, gpointer user_data)
+          const gchar * path_string,
+          const gchar * new_text, gpointer user_data)
 {
-       GtkTreePath *path = gtk_tree_path_new_from_string(path_string);
-       GtkTreeIter iter;
-       const char *old_def, *new_def;
-       struct menu *menu;
-       struct symbol *sym;
+  GtkTreePath *path = gtk_tree_path_new_from_string(path_string);
+  GtkTreeIter iter;
+  const char *old_def, *new_def;
+  struct menu *menu;
+  struct symbol *sym;
 
-       if (!gtk_tree_model_get_iter(model2, &iter, path))
-               return;
+  if (!gtk_tree_model_get_iter(model2, &iter, path))
+    return;
 
-       gtk_tree_model_get(model2, &iter, COL_MENU, &menu, -1);
-       sym = menu->sym;
+  gtk_tree_model_get(model2, &iter, COL_MENU, &menu, -1);
+  sym = menu->sym;
 
-       gtk_tree_model_get(model2, &iter, COL_VALUE, &old_def, -1);
-       new_def = new_text;
+  gtk_tree_model_get(model2, &iter, COL_VALUE, &old_def, -1);
+  new_def = new_text;
 
-       sym_set_string_value(sym, new_def);
+  sym_set_string_value(sym, new_def);
 
-       config_changed = TRUE;
-       update_tree(&rootmenu, NULL);
+  config_changed = TRUE;
+  update_tree(&rootmenu, NULL);
 
-       gtk_tree_path_free(path);
+  gtk_tree_path_free(path);
 }
 
 /* Change the value of a symbol and update the tree */
 static void change_sym_value(struct menu *menu, gint col)
 {
-       struct symbol *sym = menu->sym;
-       tristate oldval, newval;
+  struct symbol *sym = menu->sym;
+  tristate oldval, newval;
 
-       if (!sym)
-               return;
+  if (!sym)
+    return;
 
-       if (col == COL_NO)
-               newval = no;
-       else if (col == COL_MOD)
-               newval = mod;
-       else if (col == COL_YES)
-               newval = yes;
-       else
-               return;
+  if (col == COL_NO)
+    newval = no;
+  else if (col == COL_MOD)
+    newval = mod;
+  else if (col == COL_YES)
+    newval = yes;
+  else
+    return;
 
-       switch (sym_get_type(sym)) {
-       case S_BOOLEAN:
-       case S_TRISTATE:
-               oldval = sym_get_tristate_value(sym);
-               if (!sym_tristate_within_range(sym, newval))
-                       newval = yes;
-               sym_set_tristate_value(sym, newval);
-               config_changed = TRUE;
-               if (view_mode == FULL_VIEW)
-                       update_tree(&rootmenu, NULL);
-               else if (view_mode == SPLIT_VIEW) {
-                       update_tree(browsed, NULL);
-                       display_list();
-               }
-               else if (view_mode == SINGLE_VIEW)
-                 display_tree_part();  /* fixme: keep exp/coll*/
-               break;
-       case S_INT:
-       case S_HEX:
-       case S_STRING:
-       default:
-               break;
-       }
+  switch (sym_get_type(sym)) {
+  case S_BOOLEAN:
+  case S_TRISTATE:
+    oldval = sym_get_tristate_value(sym);
+    if (!sym_tristate_within_range(sym, newval))
+      newval = yes;
+    sym_set_tristate_value(sym, newval);
+    config_changed = TRUE;
+    if (view_mode == FULL_VIEW)
+      update_tree(&rootmenu, NULL);
+    else if (view_mode == SPLIT_VIEW) {
+      update_tree(browsed, NULL);
+      display_list();
+    }
+    else if (view_mode == SINGLE_VIEW)
+      display_tree_part();  /* fixme: keep exp/coll*/
+    break;
+  case S_INT:
+  case S_HEX:
+  case S_STRING:
+  default:
+    break;
+  }
 }
 
 static void toggle_sym_value(struct menu *menu)
 {
-       const tristate next_val[3] = { no, mod, yes };
-       tristate newval;
+  const tristate next_val[3] = { no, mod, yes };
+  tristate newval;
 
-       if (!menu->sym)
-               return;
+  if (!menu->sym)
+    return;
 
-       newval = next_val[(sym_get_tristate_value(menu->sym) + 1) % 3];
-       if (!sym_tristate_within_range(menu->sym, newval))
-               newval = yes;
-       sym_set_tristate_value(menu->sym, newval);
-       if (view_mode == FULL_VIEW)
-               update_tree(&rootmenu, NULL);
-       else if (view_mode == SPLIT_VIEW) {
-               update_tree(browsed, NULL);
-               display_list();
-       }
-       else if (view_mode == SINGLE_VIEW)
-         display_tree_part();  /* fixme: keep exp/coll*/
+  newval = next_val[(sym_get_tristate_value(menu->sym) + 1) % 3];
+  if (!sym_tristate_within_range(menu->sym, newval))
+    newval = yes;
+  sym_set_tristate_value(menu->sym, newval);
+  if (view_mode == FULL_VIEW)
+    update_tree(&rootmenu, NULL);
+  else if (view_mode == SPLIT_VIEW) {
+    update_tree(browsed, NULL);
+    display_list();
+  }
+  else if (view_mode == SINGLE_VIEW)
+    display_tree_part();  /* fixme: keep exp/coll*/
 }
 
 static void renderer_toggled(GtkCellRendererToggle * cell,
-                            gchar * path_string, gpointer user_data)
+           gchar * path_string, gpointer user_data)
 {
-       GtkTreePath *path, *sel_path = NULL;
-       GtkTreeIter iter, sel_iter;
-       GtkTreeSelection *sel;
-       struct menu *menu;
+  GtkTreePath *path, *sel_path = NULL;
+  GtkTreeIter iter, sel_iter;
+  GtkTreeSelection *sel;
+  struct menu *menu;
 
-       path = gtk_tree_path_new_from_string(path_string);
-       if (!gtk_tree_model_get_iter(model2, &iter, path))
-               return;
+  path = gtk_tree_path_new_from_string(path_string);
+  if (!gtk_tree_model_get_iter(model2, &iter, path))
+    return;
 
-       sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(tree2_w));
-       if (gtk_tree_selection_get_selected(sel, NULL, &sel_iter))
-               sel_path = gtk_tree_model_get_path(model2, &sel_iter);
-       if (!sel_path)
-               goto out1;
-       if (gtk_tree_path_compare(path, sel_path))
-               goto out2;
+  sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(tree2_w));
+  if (gtk_tree_selection_get_selected(sel, NULL, &sel_iter))
+    sel_path = gtk_tree_model_get_path(model2, &sel_iter);
+  if (!sel_path)
+    goto out1;
+  if (gtk_tree_path_compare(path, sel_path))
+    goto out2;
 
-       gtk_tree_model_get(model2, &iter, COL_MENU, &menu, -1);
-       toggle_sym_value(menu);
+  gtk_tree_model_get(model2, &iter, COL_MENU, &menu, -1);
+  toggle_sym_value(menu);
 
       out2:
-       gtk_tree_path_free(sel_path);
+  gtk_tree_path_free(sel_path);
       out1:
-       gtk_tree_path_free(path);
+  gtk_tree_path_free(path);
 }
 
 static gint column2index(GtkTreeViewColumn * column)
 {
-       gint i;
+  gint i;
 
-       for (i = 0; i < COL_NUMBER; i++) {
-               GtkTreeViewColumn *col;
+  for (i = 0; i < COL_NUMBER; i++) {
+    GtkTreeViewColumn *col;
 
-               col = gtk_tree_view_get_column(GTK_TREE_VIEW(tree2_w), i);
-               if (col == column)
-                       return i;
-       }
+    col = gtk_tree_view_get_column(GTK_TREE_VIEW(tree2_w), i);
+    if (col == column)
+      return i;
+  }
 
-       return -1;
+  return -1;
 }
 
 
 /* User click: update choice (full) or goes down (single) */
 gboolean
 on_treeview2_button_press_event(GtkWidget * widget,
-                               GdkEventButton * event, gpointer user_data)
+        GdkEventButton * event, gpointer user_data)
 {
-       GtkTreeView *view = GTK_TREE_VIEW(widget);
-       GtkTreePath *path;
-       GtkTreeViewColumn *column;
-       GtkTreeIter iter;
-       struct menu *menu;
-       gint col;
+  GtkTreeView *view = GTK_TREE_VIEW(widget);
+  GtkTreePath *path;
+  GtkTreeViewColumn *column;
+  GtkTreeIter iter;
+  struct menu *menu;
+  gint col;
 
 #if GTK_CHECK_VERSION(2,1,4) /* bug in ctree with earlier version of GTK */
-       gint tx = (gint) event->x;
-       gint ty = (gint) event->y;
-       gint cx, cy;
+  gint tx = (gint) event->x;
+  gint ty = (gint) event->y;
+  gint cx, cy;
 
-       gtk_tree_view_get_path_at_pos(view, tx, ty, &path, &column, &cx,
-                                     &cy);
+  gtk_tree_view_get_path_at_pos(view, tx, ty, &path, &column, &cx,
+              &cy);
 #else
-       gtk_tree_view_get_cursor(view, &path, &column);
+  gtk_tree_view_get_cursor(view, &path, &column);
 #endif
-       if (path == NULL)
-               return FALSE;
+  if (path == NULL)
+    return FALSE;
 
-       gtk_tree_model_get_iter(model2, &iter, path);
-       gtk_tree_model_get(model2, &iter, COL_MENU, &menu, -1);
+  gtk_tree_model_get_iter(model2, &iter, path);
+  gtk_tree_model_get(model2, &iter, COL_MENU, &menu, -1);
 
-       col = column2index(column);
-       if (event->type == GDK_2BUTTON_PRESS) {
-               enum prop_type ptype;
-               ptype = menu->prompt ? menu->prompt->type : P_UNKNOWN;
+  col = column2index(column);
+  if (event->type == GDK_2BUTTON_PRESS) {
+    enum prop_type ptype;
+    ptype = menu->prompt ? menu->prompt->type : P_UNKNOWN;
 
-               if (ptype == P_MENU && view_mode != FULL_VIEW && col == 
COL_OPTION) {
-                 /* goes down into menu */
-                       current = menu;
-                       display_tree_part();
-                       gtk_widget_set_sensitive(back_btn, TRUE);
-               } else if ((col == COL_OPTION)) {
-                       toggle_sym_value(menu);
-                       gtk_tree_view_expand_row(view, path, TRUE);
-               }
-       } else {
-               if (col == COL_VALUE) {
-                       toggle_sym_value(menu);
-                       gtk_tree_view_expand_row(view, path, TRUE);
-               } else if (col == COL_NO || col == COL_MOD
-                          || col == COL_YES) {
-                       change_sym_value(menu, col);
-                       gtk_tree_view_expand_row(view, path, TRUE);
-               }
-       }
+    if (ptype == P_MENU && view_mode != FULL_VIEW && col == COL_OPTION) {
+      /* goes down into menu */
+      current = menu;
+      display_tree_part();
+      gtk_widget_set_sensitive(back_btn, TRUE);
+    } else if ((col == COL_OPTION)) {
+      toggle_sym_value(menu);
+      gtk_tree_view_expand_row(view, path, TRUE);
+    }
+  } else {
+    if (col == COL_VALUE) {
+      toggle_sym_value(menu);
+      gtk_tree_view_expand_row(view, path, TRUE);
+    } else if (col == COL_NO || col == COL_MOD
+         || col == COL_YES) {
+      change_sym_value(menu, col);
+      gtk_tree_view_expand_row(view, path, TRUE);
+    }
+  }
 
-       return FALSE;
+  return FALSE;
 }
 
 /* Key pressed: update choice */
 gboolean
 on_treeview2_key_press_event(GtkWidget * widget,
-                            GdkEventKey * event, gpointer user_data)
+           GdkEventKey * event, gpointer user_data)
 {
-       GtkTreeView *view = GTK_TREE_VIEW(widget);
-       GtkTreePath *path;
-       GtkTreeViewColumn *column;
-       GtkTreeIter iter;
-       struct menu *menu;
-       gint col;
+  GtkTreeView *view = GTK_TREE_VIEW(widget);
+  GtkTreePath *path;
+  GtkTreeViewColumn *column;
+  GtkTreeIter iter;
+  struct menu *menu;
+  gint col;
 
-       gtk_tree_view_get_cursor(view, &path, &column);
-       if (path == NULL)
-               return FALSE;
+  gtk_tree_view_get_cursor(view, &path, &column);
+  if (path == NULL)
+    return FALSE;
 
-       if (event->keyval == GDK_space) {
-               if (gtk_tree_view_row_expanded(view, path))
-                       gtk_tree_view_collapse_row(view, path);
-               else
-                       gtk_tree_view_expand_row(view, path, FALSE);
-               return TRUE;
-       }
-       if (event->keyval == GDK_KP_Enter) {
-       }
-       if (widget == tree1_w)
-               return FALSE;
+  if (event->keyval == GDK_space) {
+    if (gtk_tree_view_row_expanded(view, path))
+      gtk_tree_view_collapse_row(view, path);
+    else
+      gtk_tree_view_expand_row(view, path, FALSE);
+    return TRUE;
+  }
+  if (event->keyval == GDK_KP_Enter) {
+  }
+  if (widget == tree1_w)
+    return FALSE;
 
-       gtk_tree_model_get_iter(model2, &iter, path);
-       gtk_tree_model_get(model2, &iter, COL_MENU, &menu, -1);
+  gtk_tree_model_get_iter(model2, &iter, path);
+  gtk_tree_model_get(model2, &iter, COL_MENU, &menu, -1);
 
-       if (!strcasecmp(event->string, "n"))
-               col = COL_NO;
-       else if (!strcasecmp(event->string, "m"))
-               col = COL_MOD;
-       else if (!strcasecmp(event->string, "y"))
-               col = COL_YES;
-       else
-               col = -1;
-       change_sym_value(menu, col);
+  if (!strcasecmp(event->string, "n"))
+    col = COL_NO;
+  else if (!strcasecmp(event->string, "m"))
+    col = COL_MOD;
+  else if (!strcasecmp(event->string, "y"))
+    col = COL_YES;
+  else
+    col = -1;
+  change_sym_value(menu, col);
 
-       return FALSE;
+  return FALSE;
 }
 
 
@@ -1122,55 +1148,55 @@
 void
 on_treeview2_cursor_changed(GtkTreeView * treeview, gpointer user_data)
 {
-       GtkTreeSelection *selection;
-       GtkTreeIter iter;
-       struct menu *menu;
+  GtkTreeSelection *selection;
+  GtkTreeIter iter;
+  struct menu *menu;
 
-       selection = gtk_tree_view_get_selection(treeview);
-       if (gtk_tree_selection_get_selected(selection, &model2, &iter)) {
-               gtk_tree_model_get(model2, &iter, COL_MENU, &menu, -1);
-               text_insert_help(menu);
-       }
+  selection = gtk_tree_view_get_selection(treeview);
+  if (gtk_tree_selection_get_selected(selection, &model2, &iter)) {
+    gtk_tree_model_get(model2, &iter, COL_MENU, &menu, -1);
+    text_insert_help(menu);
+  }
 }
 
 
 /* User click: display sub-tree in the right frame. */
 gboolean
 on_treeview1_button_press_event(GtkWidget * widget,
-                               GdkEventButton * event, gpointer user_data)
+        GdkEventButton * event, gpointer user_data)
 {
-       GtkTreeView *view = GTK_TREE_VIEW(widget);
-       GtkTreePath *path;
-       GtkTreeViewColumn *column;
-       GtkTreeIter iter;
-       struct menu *menu;
+  GtkTreeView *view = GTK_TREE_VIEW(widget);
+  GtkTreePath *path;
+  GtkTreeViewColumn *column;
+  GtkTreeIter iter;
+  struct menu *menu;
 
-       gint tx = (gint) event->x;
-       gint ty = (gint) event->y;
-       gint cx, cy;
+  gint tx = (gint) event->x;
+  gint ty = (gint) event->y;
+  gint cx, cy;
 
-       gtk_tree_view_get_path_at_pos(view, tx, ty, &path, &column, &cx,
-                                     &cy);
-       if (path == NULL)
-               return FALSE;
+  gtk_tree_view_get_path_at_pos(view, tx, ty, &path, &column, &cx,
+              &cy);
+  if (path == NULL)
+    return FALSE;
 
-       gtk_tree_model_get_iter(model1, &iter, path);
-       gtk_tree_model_get(model1, &iter, COL_MENU, &menu, -1);
+  gtk_tree_model_get_iter(model1, &iter, path);
+  gtk_tree_model_get(model1, &iter, COL_MENU, &menu, -1);
 
-       if (event->type == GDK_2BUTTON_PRESS) {
-               toggle_sym_value(menu);
-               current = menu;
-               display_tree_part();
-       } else {
-               browsed = menu;
-               display_tree_part();
-       }
+  if (event->type == GDK_2BUTTON_PRESS) {
+    toggle_sym_value(menu);
+    current = menu;
+    display_tree_part();
+  } else {
+    browsed = menu;
+    display_tree_part();
+  }
 
-       gtk_widget_realize(tree2_w);
-       gtk_tree_view_set_cursor(view, path, NULL, FALSE);
-       gtk_widget_grab_focus(GTK_TREE_VIEW(tree2_w));
+  gtk_widget_realize(tree2_w);
+  gtk_tree_view_set_cursor(view, path, NULL, FALSE);
+  gtk_widget_grab_focus(GTK_TREE_VIEW(tree2_w));
 
-       return FALSE;
+  return FALSE;
 }
 
 
@@ -1180,170 +1206,172 @@
 /* Fill a row of strings */
 static gchar **fill_row(struct menu *menu)
 {
-       static gchar *row[COL_NUMBER];
-       struct symbol *sym = menu->sym;
-       const char *def;
-       int stype;
-       tristate val;
-       enum prop_type ptype;
-       int i;
+  static gchar *row[COL_NUMBER];
+  struct symbol *sym = menu->sym;
+  const char *def;
+  int stype;
+  tristate val;
+  enum prop_type ptype;
+  int i;
+  static gchar *prompt;
 
-       for (i = COL_OPTION; i <= COL_COLOR; i++)
-               g_free(row[i]);
-       bzero(row, sizeof(row));
+  for (i = COL_OPTION; i <= COL_COLOR; i++)
+    g_free(row[i]);
+  memset(row, 0, sizeof(row));
 
-       row[COL_OPTION] =
-           g_strdup_printf("%s %s", menu_get_prompt(menu),
-                           sym ? (sym->
-                                  flags & SYMBOL_NEW ? "(NEW)" : "") :
-                           "");
+  prompt = menu_get_prompt(menu);
+  row[COL_OPTION] =
+      g_strdup_printf("%s %s", prompt ? prompt : "(unknown)",
+          sym ? (sym->
+           flags & SYMBOL_NEW ? "(NEW)" : "") :
+          "");
 
-       if (show_all && !menu_is_visible(menu))
-               row[COL_COLOR] = g_strdup("DarkGray");
-       else
-               row[COL_COLOR] = g_strdup("Black");
+  if (show_all && !menu_is_visible(menu))
+    row[COL_COLOR] = g_strdup("DarkGray");
+  else
+    row[COL_COLOR] = g_strdup("Black");
 
-       ptype = menu->prompt ? menu->prompt->type : P_UNKNOWN;
-       switch (ptype) {
-       case P_MENU:
-               row[COL_PIXBUF] = (gchar *) xpm_menu;
-               if (view_mode == SINGLE_VIEW)
-                       row[COL_PIXVIS] = GINT_TO_POINTER(TRUE);
-               row[COL_BTNVIS] = GINT_TO_POINTER(FALSE);
-               break;
-       case P_COMMENT:
-               row[COL_PIXBUF] = (gchar *) xpm_void;
-               row[COL_PIXVIS] = GINT_TO_POINTER(FALSE);
-               row[COL_BTNVIS] = GINT_TO_POINTER(FALSE);
-               break;
-       default:
-               row[COL_PIXBUF] = (gchar *) xpm_void;
-               row[COL_PIXVIS] = GINT_TO_POINTER(FALSE);
-               row[COL_BTNVIS] = GINT_TO_POINTER(TRUE);
-               break;
-       }
+  ptype = menu->prompt ? menu->prompt->type : P_UNKNOWN;
+  switch (ptype) {
+  case P_MENU:
+    row[COL_PIXBUF] = (gchar *) xpm_menu;
+    if (view_mode == SINGLE_VIEW)
+      row[COL_PIXVIS] = GINT_TO_POINTER(TRUE);
+    row[COL_BTNVIS] = GINT_TO_POINTER(FALSE);
+    break;
+  case P_COMMENT:
+    row[COL_PIXBUF] = (gchar *) xpm_void;
+    row[COL_PIXVIS] = GINT_TO_POINTER(FALSE);
+    row[COL_BTNVIS] = GINT_TO_POINTER(FALSE);
+    break;
+  default:
+    row[COL_PIXBUF] = (gchar *) xpm_void;
+    row[COL_PIXVIS] = GINT_TO_POINTER(FALSE);
+    row[COL_BTNVIS] = GINT_TO_POINTER(TRUE);
+    break;
+  }
 
-       if (!sym)
-               return row;
-       row[COL_NAME] = g_strdup(sym->name);
+  if (!sym)
+    return row;
+  row[COL_NAME] = g_strdup(sym->name);
 
-       sym_calc_value(sym);
-       sym->flags &= ~SYMBOL_CHANGED;
+  sym_calc_value(sym);
+  sym->flags &= ~SYMBOL_CHANGED;
 
-       if (sym_is_choice(sym)) {       /* parse childs for getting final value 
*/
-               struct menu *child;
-               struct symbol *def_sym = sym_get_choice_value(sym);
-               struct menu *def_menu = NULL;
+  if (sym_is_choice(sym)) { /* parse childs for getting final value */
+    struct menu *child;
+    struct symbol *def_sym = sym_get_choice_value(sym);
+    struct menu *def_menu = NULL;
 
-               row[COL_BTNVIS] = GINT_TO_POINTER(FALSE);
+    row[COL_BTNVIS] = GINT_TO_POINTER(FALSE);
 
-               for (child = menu->list; child; child = child->next) {
-                       if (menu_is_visible(child)
-                           && child->sym == def_sym)
-                               def_menu = child;
-               }
+    for (child = menu->list; child; child = child->next) {
+      if (menu_is_visible(child)
+          && child->sym == def_sym)
+        def_menu = child;
+    }
 
-               if (def_menu)
-                       row[COL_VALUE] =
-                           g_strdup(menu_get_prompt(def_menu));
-       }
-       if(sym->flags & SYMBOL_CHOICEVAL)
-               row[COL_BTNRAD] = GINT_TO_POINTER(TRUE);
+    if (def_menu)
+      row[COL_VALUE] =
+          g_strdup(menu_get_prompt(def_menu));
+  }
+  if(sym->flags & SYMBOL_CHOICEVAL)
+    row[COL_BTNRAD] = GINT_TO_POINTER(TRUE);
 
-       stype = sym_get_type(sym);
-       switch (stype) {
-       case S_BOOLEAN:
-               if(GPOINTER_TO_INT(row[COL_PIXVIS]) == FALSE)
-                       row[COL_BTNVIS] = GINT_TO_POINTER(TRUE);
-               if (sym_is_choice(sym))
-                       break;
-       case S_TRISTATE:
-               val = sym_get_tristate_value(sym);
-               switch (val) {
-               case no:
-                       row[COL_NO] = g_strdup("N");
-                       row[COL_VALUE] = g_strdup("N");
-                       row[COL_BTNACT] = GINT_TO_POINTER(FALSE);
-                       row[COL_BTNINC] = GINT_TO_POINTER(FALSE);
-                       break;
-               case mod:
-                       row[COL_MOD] = g_strdup("M");
-                       row[COL_VALUE] = g_strdup("M");
-                       row[COL_BTNINC] = GINT_TO_POINTER(TRUE);
-                       break;
-               case yes:
-                       row[COL_YES] = g_strdup("Y");
-                       row[COL_VALUE] = g_strdup("Y");
-                       row[COL_BTNACT] = GINT_TO_POINTER(TRUE);
-                       row[COL_BTNINC] = GINT_TO_POINTER(FALSE);
-                       break;
-               }
+  stype = sym_get_type(sym);
+  switch (stype) {
+  case S_BOOLEAN:
+    if(GPOINTER_TO_INT(row[COL_PIXVIS]) == FALSE)
+      row[COL_BTNVIS] = GINT_TO_POINTER(TRUE);
+    if (sym_is_choice(sym))
+      break;
+  case S_TRISTATE:
+    val = sym_get_tristate_value(sym);
+    switch (val) {
+    case no:
+      row[COL_NO] = g_strdup("N");
+      row[COL_VALUE] = g_strdup("N");
+      row[COL_BTNACT] = GINT_TO_POINTER(FALSE);
+      row[COL_BTNINC] = GINT_TO_POINTER(FALSE);
+      break;
+    case mod:
+      row[COL_MOD] = g_strdup("M");
+      row[COL_VALUE] = g_strdup("M");
+      row[COL_BTNINC] = GINT_TO_POINTER(TRUE);
+      break;
+    case yes:
+      row[COL_YES] = g_strdup("Y");
+      row[COL_VALUE] = g_strdup("Y");
+      row[COL_BTNACT] = GINT_TO_POINTER(TRUE);
+      row[COL_BTNINC] = GINT_TO_POINTER(FALSE);
+      break;
+    }
 
-               if (val != no && sym_tristate_within_range(sym, no))
-                       row[COL_NO] = g_strdup("_");
-               if (val != mod && sym_tristate_within_range(sym, mod))
-                       row[COL_MOD] = g_strdup("_");
-               if (val != yes && sym_tristate_within_range(sym, yes))
-                       row[COL_YES] = g_strdup("_");
-               break;
-       case S_INT:
-       case S_HEX:
-       case S_STRING:
-               def = sym_get_string_value(sym);
-               row[COL_VALUE] = g_strdup(def);
-               row[COL_EDIT] = GINT_TO_POINTER(TRUE);
-               row[COL_BTNVIS] = GINT_TO_POINTER(FALSE);
-               break;
-       }
+    if (val != no && sym_tristate_within_range(sym, no))
+      row[COL_NO] = g_strdup("_");
+    if (val != mod && sym_tristate_within_range(sym, mod))
+      row[COL_MOD] = g_strdup("_");
+    if (val != yes && sym_tristate_within_range(sym, yes))
+      row[COL_YES] = g_strdup("_");
+    break;
+  case S_INT:
+  case S_HEX:
+  case S_STRING:
+    def = sym_get_string_value(sym);
+    row[COL_VALUE] = g_strdup(def);
+    row[COL_EDIT] = GINT_TO_POINTER(TRUE);
+    row[COL_BTNVIS] = GINT_TO_POINTER(FALSE);
+    break;
+  }
 
-       return row;
+  return row;
 }
 
 
 /* Set the node content with a row of strings */
 static void set_node(GtkTreeIter * node, struct menu *menu, gchar ** row)
 {
-       GdkColor color;
-       gboolean success;
-       GdkPixbuf *pix;
+  GdkColor color;
+  gboolean success;
+  GdkPixbuf *pix;
 
-       pix = gdk_pixbuf_new_from_xpm_data((const char **)
-                                          row[COL_PIXBUF]);
+  pix = gdk_pixbuf_new_from_xpm_data((const char **)
+             row[COL_PIXBUF]);
 
-       gdk_color_parse(row[COL_COLOR], &color);
-       gdk_colormap_alloc_colors(gdk_colormap_get_system(), &color, 1,
-                                 FALSE, FALSE, &success);
+  gdk_color_parse(row[COL_COLOR], &color);
+  gdk_colormap_alloc_colors(gdk_colormap_get_system(), &color, 1,
+          FALSE, FALSE, &success);
 
-       gtk_tree_store_set(tree, node,
-                          COL_OPTION, row[COL_OPTION],
-                          COL_NAME, row[COL_NAME],
-                          COL_NO, row[COL_NO],
-                          COL_MOD, row[COL_MOD],
-                          COL_YES, row[COL_YES],
-                          COL_VALUE, row[COL_VALUE],
-                          COL_MENU, (gpointer) menu,
-                          COL_COLOR, &color,
-                          COL_EDIT, GPOINTER_TO_INT(row[COL_EDIT]),
-                          COL_PIXBUF, pix,
-                          COL_PIXVIS, GPOINTER_TO_INT(row[COL_PIXVIS]),
-                          COL_BTNVIS, GPOINTER_TO_INT(row[COL_BTNVIS]),
-                          COL_BTNACT, GPOINTER_TO_INT(row[COL_BTNACT]),
-                          COL_BTNINC, GPOINTER_TO_INT(row[COL_BTNINC]),
-                          COL_BTNRAD, GPOINTER_TO_INT(row[COL_BTNRAD]),
-                          -1);
+  gtk_tree_store_set(tree, node,
+         COL_OPTION, row[COL_OPTION],
+         COL_NAME, row[COL_NAME],
+         COL_NO, row[COL_NO],
+         COL_MOD, row[COL_MOD],
+         COL_YES, row[COL_YES],
+         COL_VALUE, row[COL_VALUE],
+         COL_MENU, (gpointer) menu,
+         COL_COLOR, &color,
+         COL_EDIT, GPOINTER_TO_INT(row[COL_EDIT]),
+         COL_PIXBUF, pix,
+         COL_PIXVIS, GPOINTER_TO_INT(row[COL_PIXVIS]),
+         COL_BTNVIS, GPOINTER_TO_INT(row[COL_BTNVIS]),
+         COL_BTNACT, GPOINTER_TO_INT(row[COL_BTNACT]),
+         COL_BTNINC, GPOINTER_TO_INT(row[COL_BTNINC]),
+         COL_BTNRAD, GPOINTER_TO_INT(row[COL_BTNRAD]),
+         -1);
 
-       g_object_unref(pix);
+  g_object_unref(pix);
 }
 
 
 /* Add a node to the tree */
 static void place_node(struct menu *menu, char **row)
 {
-       GtkTreeIter *parent = parents[indent - 1];
-       GtkTreeIter *node = parents[indent];
+  GtkTreeIter *parent = parents[indent - 1];
+  GtkTreeIter *node = parents[indent];
 
-       gtk_tree_store_append(tree, node, parent);
-       set_node(node, menu, row);
+  gtk_tree_store_append(tree, node, parent);
+  set_node(node, menu, row);
 }
 
 
@@ -1354,32 +1382,32 @@
  * Find a menu in the GtkTree starting at parent.
  */
 GtkTreeIter *gtktree_iter_find_node(GtkTreeIter * parent,
-                                   struct menu *tofind)
+            struct menu *tofind)
 {
-       GtkTreeIter iter;
-       GtkTreeIter *child = &iter;
-       gboolean valid;
-       GtkTreeIter *ret;
+  GtkTreeIter iter;
+  GtkTreeIter *child = &iter;
+  gboolean valid;
+  GtkTreeIter *ret;
 
-       valid = gtk_tree_model_iter_children(model2, child, parent);
-       while (valid) {
-               struct menu *menu;
+  valid = gtk_tree_model_iter_children(model2, child, parent);
+  while (valid) {
+    struct menu *menu;
 
-               gtk_tree_model_get(model2, child, 6, &menu, -1);
+    gtk_tree_model_get(model2, child, 6, &menu, -1);
 
-               if (menu == tofind) {
-                       memcpy(&found, child, sizeof(GtkTreeIter));
-                       return &found;
-               }
+    if (menu == tofind) {
+      memcpy(&found, child, sizeof(GtkTreeIter));
+      return &found;
+    }
 
-               ret = gtktree_iter_find_node(child, tofind);
-               if (ret)
-                       return ret;
+    ret = gtktree_iter_find_node(child, tofind);
+    if (ret)
+      return ret;
 
-               valid = gtk_tree_model_iter_next(model2, child);
-       }
+    valid = gtk_tree_model_iter_next(model2, child);
+  }
 
-       return NULL;
+  return NULL;
 }
 
 
@@ -1389,170 +1417,170 @@
  */
 static void update_tree(struct menu *src, GtkTreeIter * dst)
 {
-       struct menu *child1;
-       GtkTreeIter iter, tmp;
-       GtkTreeIter *child2 = &iter;
-       gboolean valid;
-       GtkTreeIter *sibling;
-       struct symbol *sym;
-       struct property *prop;
-       struct menu *menu1, *menu2;
-       static GtkTreePath *path = NULL;
+  struct menu *child1;
+  GtkTreeIter iter, tmp;
+  GtkTreeIter *child2 = &iter;
+  gboolean valid;
+  GtkTreeIter *sibling;
+  struct symbol *sym;
+  struct property *prop;
+  struct menu *menu1, *menu2;
+  static GtkTreePath *path = NULL;
 
-       if (src == &rootmenu)
-               indent = 1;
+  if (src == &rootmenu)
+    indent = 1;
 
-       valid = gtk_tree_model_iter_children(model2, child2, dst);
-       for (child1 = src->list; child1; child1 = child1->next) {
+  valid = gtk_tree_model_iter_children(model2, child2, dst);
+  for (child1 = src->list; child1; child1 = child1->next) {
 
-               prop = child1->prompt;
-               sym = child1->sym;
+    prop = child1->prompt;
+    sym = child1->sym;
 
-             reparse:
-               menu1 = child1;
-               if (valid)
-                       gtk_tree_model_get(model2, child2, COL_MENU,
-                                          &menu2, -1);
-               else
-                 menu2 = NULL; /* force adding of a first child */
+        reparse:
+    menu1 = child1;
+    if (valid)
+      gtk_tree_model_get(model2, child2, COL_MENU,
+             &menu2, -1);
+    else
+      menu2 = NULL; /* force adding of a first child */
 
 #ifdef DEBUG
-               printf("%*c%s | %s\n", indent, ' ',
-                      menu1 ? menu_get_prompt(menu1) : "nil",
-                      menu2 ? menu_get_prompt(menu2) : "nil");
+    printf("%*c%s | %s\n", indent, ' ',
+           menu1 ? menu_get_prompt(menu1) : "nil",
+           menu2 ? menu_get_prompt(menu2) : "nil");
 #endif
 
-               if (!menu_is_visible(child1) && !show_all) {    /*/ remove node 
*/
-                       if (gtktree_iter_find_node(dst, menu1) != NULL) {
-                               memcpy(&tmp, child2, sizeof(GtkTreeIter));
-                               valid = gtk_tree_model_iter_next(model2,
-                                                                child2);
-                               gtk_tree_store_remove(tree2, &tmp);
-                               if (!valid)
-                                 return;       /* next parent  */
-                               else
-                                 goto reparse; /* next child */
-                       } else
-                               continue;
-               }
+    if (!menu_is_visible(child1) && !show_all) {  /*/ remove node */
+      if (gtktree_iter_find_node(dst, menu1) != NULL) {
+        memcpy(&tmp, child2, sizeof(GtkTreeIter));
+        valid = gtk_tree_model_iter_next(model2,
+                 child2);
+        gtk_tree_store_remove(tree2, &tmp);
+        if (!valid)
+          return; /* next parent  */
+        else
+          goto reparse; /* next child */
+      } else
+        continue;
+    }
 
-               if (menu1 != menu2) {
-                 if (gtktree_iter_find_node(dst, menu1) == NULL) {     /* add 
node */
-                               if (!valid && !menu2)
-                                       sibling = NULL;
-                               else
-                                       sibling = child2;
-                               gtk_tree_store_insert_before(tree2,
-                                                            child2,
-                                                            dst, sibling);
-                               set_node(child2, menu1, fill_row(menu1));
-                               if (menu2 == NULL)
-                                       valid = TRUE;
-                 } else {      /* remove node */
-                               memcpy(&tmp, child2, sizeof(GtkTreeIter));
-                               valid = gtk_tree_model_iter_next(model2,
-                                                                child2);
-                               gtk_tree_store_remove(tree2, &tmp);
-                               if (!valid)
-                                 return;       /* next parent  */
-                               else
-                                 goto reparse; /* next child */
-                       }
-               } else if (sym && (sym->flags & SYMBOL_CHANGED)) {
-                       set_node(child2, menu1, fill_row(menu1));
-               }
+    if (menu1 != menu2) {
+      if (gtktree_iter_find_node(dst, menu1) == NULL) { /* add node */
+        if (!valid && !menu2)
+          sibling = NULL;
+        else
+          sibling = child2;
+        gtk_tree_store_insert_before(tree2,
+                   child2,
+                   dst, sibling);
+        set_node(child2, menu1, fill_row(menu1));
+        if (menu2 == NULL)
+          valid = TRUE;
+      } else {  /* remove node */
+        memcpy(&tmp, child2, sizeof(GtkTreeIter));
+        valid = gtk_tree_model_iter_next(model2,
+                 child2);
+        gtk_tree_store_remove(tree2, &tmp);
+        if (!valid)
+          return; /* next parent  */
+        else
+          goto reparse; /* next child */
+      }
+    } else if (sym && (sym->flags & SYMBOL_CHANGED)) {
+      set_node(child2, menu1, fill_row(menu1));
+    }
 
-               indent++;
-               update_tree(child1, child2);
-               indent--;
+    indent++;
+    update_tree(child1, child2);
+    indent--;
 
-               valid = gtk_tree_model_iter_next(model2, child2);
-       }
+    valid = gtk_tree_model_iter_next(model2, child2);
+  }
 }
 
 
 /* Display the whole tree (single/split/full view) */
 static void display_tree(struct menu *menu)
 {
-       struct symbol *sym;
-       struct property *prop;
-       struct menu *child;
-       enum prop_type ptype;
+  struct symbol *sym;
+  struct property *prop;
+  struct menu *child;
+  enum prop_type ptype;
 
-       if (menu == &rootmenu) {
-               indent = 1;
-               current = &rootmenu;
-       }
+  if (menu == &rootmenu) {
+    indent = 1;
+    current = &rootmenu;
+  }
 
-       for (child = menu->list; child; child = child->next) {
-               prop = child->prompt;
-               sym = child->sym;
-               ptype = prop ? prop->type : P_UNKNOWN;
+  for (child = menu->list; child; child = child->next) {
+    prop = child->prompt;
+    sym = child->sym;
+    ptype = prop ? prop->type : P_UNKNOWN;
 
-               if (sym)
-                       sym->flags &= ~SYMBOL_CHANGED;
+    if (sym)
+      sym->flags &= ~SYMBOL_CHANGED;
 
-               if ((view_mode == SPLIT_VIEW) && !(child->flags & MENU_ROOT) &&
-                   (tree == tree1))
-                       continue;
+    if ((view_mode == SPLIT_VIEW) && !(child->flags & MENU_ROOT) &&
+        (tree == tree1))
+      continue;
 
-               if ((view_mode == SPLIT_VIEW) && (child->flags & MENU_ROOT) &&
-                   (tree == tree2))
-                       continue;
+    if ((view_mode == SPLIT_VIEW) && (child->flags & MENU_ROOT) &&
+        (tree == tree2))
+      continue;
 
-               if (menu_is_visible(child) || show_all)
-                       place_node(child, fill_row(child));
+    if (menu_is_visible(child) || show_all)
+      place_node(child, fill_row(child));
 #ifdef DEBUG
-               printf("%*c%s: ", indent, ' ', menu_get_prompt(child));
-               printf("%s", child->flags & MENU_ROOT ? "rootmenu | " : "");
-               dbg_print_ptype(ptype);
-               printf(" | ");
-               if (sym) {
-                       dbg_print_stype(sym->type);
-                       printf(" | ");
-                       dbg_print_flags(sym->flags);
-                       printf("\n");
-               } else
-                       printf("\n");
+    printf("%*c%s: ", indent, ' ', menu_get_prompt(child));
+    printf("%s", child->flags & MENU_ROOT ? "rootmenu | " : "");
+    dbg_print_ptype(ptype);
+    printf(" | ");
+    if (sym) {
+      dbg_print_stype(sym->type);
+      printf(" | ");
+      dbg_print_flags(sym->flags);
+      printf("\n");
+    } else
+      printf("\n");
 #endif
-               if ((view_mode != FULL_VIEW) && (ptype == P_MENU)
-                   && (tree == tree2))
-                       continue;
+    if ((view_mode != FULL_VIEW) && (ptype == P_MENU)
+        && (tree == tree2))
+      continue;
 /*
-               if (((menu != &rootmenu) && !(menu->flags & MENU_ROOT)) ||
-                   (view_mode == FULL_VIEW)
-                   || (view_mode == SPLIT_VIEW))*/
-               if ((view_mode == SINGLE_VIEW) && (menu->flags & MENU_ROOT) 
-               || (view_mode == FULL_VIEW) || (view_mode == SPLIT_VIEW)) {
-                       indent++;
-                       display_tree(child);
-                       indent--;
-               }
-       }
+    if (((menu != &rootmenu) && !(menu->flags & MENU_ROOT)) ||
+        (view_mode == FULL_VIEW)
+        || (view_mode == SPLIT_VIEW))*/
+    if ((view_mode == SINGLE_VIEW) && (menu->flags & MENU_ROOT) 
+    || (view_mode == FULL_VIEW) || (view_mode == SPLIT_VIEW)) {
+      indent++;
+      display_tree(child);
+      indent--;
+    }
+  }
 }
 
 /* Display a part of the tree starting at current node (single/split view) */
 static void display_tree_part(void)
 {
-       if (tree2)
-               gtk_tree_store_clear(tree2);
-       if(view_mode == SINGLE_VIEW)
-               display_tree(current);
-       else if(view_mode == SPLIT_VIEW)
-               display_tree(browsed);
-       gtk_tree_view_expand_all(GTK_TREE_VIEW(tree2_w));
+  if (tree2)
+    gtk_tree_store_clear(tree2);
+  if(view_mode == SINGLE_VIEW)
+    display_tree(current);
+  else if(view_mode == SPLIT_VIEW)
+    display_tree(browsed);
+  gtk_tree_view_expand_all(GTK_TREE_VIEW(tree2_w));
 }
 
 /* Display the list in the left frame (split view) */
 static void display_list(void)
 {
-       if (tree1)
-               gtk_tree_store_clear(tree1);
+  if (tree1)
+    gtk_tree_store_clear(tree1);
 
-       tree = tree1;
-       display_tree(&rootmenu);
-       gtk_tree_view_expand_all(GTK_TREE_VIEW(tree1_w));
-       tree = tree2;
+  tree = tree1;
+  display_tree(&rootmenu);
+  gtk_tree_view_expand_all(GTK_TREE_VIEW(tree1_w));
+  tree = tree2;
 }
 
 void fixup_rootmenu(struct menu *menu)
@@ -1577,68 +1605,58 @@
 
 int gconf_main(int ac, char *av[])
 {
-       const char *name;
-       gchar *cur_dir, *exe_path;
-       gchar *glade_file;
+  const char *name;
+  gchar *cur_dir, *exe_path;
 
 #ifndef LKC_DIRECT_LINK
-       kconfig_load();
+  kconfig_load();
 #endif
 
-       /* GTK stuffs */
-       gtk_set_locale();
-       gtk_init(&ac, &av);
-       glade_init();
+  /* GTK stuffs */
+  gtk_set_locale();
+  gtk_init(&ac, &av);
 
-       /* add_pixmap_directory (PACKAGE_DATA_DIR "/" PACKAGE "/pixmaps"); */
-       /* add_pixmap_directory (PACKAGE_SOURCE_DIR "/pixmaps"); */
+  /* add_pixmap_directory (PACKAGE_DATA_DIR "/" PACKAGE "/pixmaps"); */
+  /* add_pixmap_directory (PACKAGE_SOURCE_DIR "/pixmaps"); */
 
-       /* Determine GUI path */
-       cur_dir = g_get_current_dir();
-       exe_path = g_strdup(av[0]);
-       exe_path[0] = DIR_SEPARATOR;
-       glade_file = g_strconcat(cur_dir, exe_path, ".glade", NULL);
-       g_free(cur_dir);
-       g_free(exe_path);
+  /* Load the interface and connect signals */
+  init_main_window();
+  init_tree_model();
+  init_left_tree();
+  init_right_tree();
 
-       /* Load the interface and connect signals */
-       init_main_window(glade_file);
-       init_tree_model();
-       init_left_tree();
-       init_right_tree();
+  /* Conf stuffs */
+  if (ac > 1 && av[1][0] == '-') {
+    switch (av[1][1]) {
+    case 'a':
+      /* showAll = 1;*/
+      break;
+    case 'h':
+    case '?':
+      printf("%s <config>\n", av[0]);
+      exit(0);
+    }
+    name = av[2];
+  } else
+    name = av[1];
 
-       /* Conf stuffs */
-       if (ac > 1 && av[1][0] == '-') {
-               switch (av[1][1]) {
-               case 'a':
-                 /* showAll = 1;*/
-                       break;
-               case 'h':
-               case '?':
-                       printf("%s <config>\n", av[0]);
-                       exit(0);
-               }
-               name = av[2];
-       } else
-               name = av[1];
+  conf_parse(name);
+  fixup_rootmenu(&rootmenu);
+  conf_read(NULL);
 
-       conf_parse(name);
-       fixup_rootmenu(&rootmenu);
-       conf_read(NULL);
+  switch (view_mode) {
+  case SINGLE_VIEW:
+    display_tree_part();
+    break;
+  case SPLIT_VIEW:
+    display_list();
+    break;
+  case FULL_VIEW:
+    display_tree(&rootmenu);
+    break;
+  }
 
-       switch (view_mode) {
-       case SINGLE_VIEW:
-               display_tree_part();
-               break;
-       case SPLIT_VIEW:
-               display_list();
-               break;
-       case FULL_VIEW:
-               display_tree(&rootmenu);
-               break;
-       }
+  gtk_main();
 
-       gtk_main();
-
-       return 0;
+  return 0;
 }

Modified: GNUnet/src/conf/gconf.glade
===================================================================
--- GNUnet/src/conf/gconf.glade 2005-03-17 17:29:04 UTC (rev 445)
+++ GNUnet/src/conf/gconf.glade 2005-03-19 17:22:31 UTC (rev 446)
@@ -3,7 +3,7 @@
 
 <glade-interface>
 
-<widget class="GtkWindow" id="window1">
+<widget class="GtkWindow" id="main_wnd">
   <property name="visible">True</property>
   <property name="title" translatable="yes">Gtk GNUnet Configurator</property>
   <property name="type">GTK_WINDOW_TOPLEVEL</property>
@@ -13,9 +13,9 @@
   <property name="default_height">480</property>
   <property name="resizable">True</property>
   <property name="destroy_with_parent">False</property>
-  <signal name="destroy" handler="on_window1_destroy" object="window1"/>
+  <signal name="destroy" handler="on_window1_destroy" object="main_wnd"/>
   <signal name="size_request" handler="on_window1_size_request" 
object="vpaned1" last_modification_time="Fri, 11 Jan 2002 16:17:11 GMT"/>
-  <signal name="delete_event" handler="on_window1_delete_event" 
object="window1" last_modification_time="Sun, 09 Mar 2003 19:42:46 GMT"/>
+  <signal name="delete_event" handler="on_window1_delete_event" 
object="main_wnd" last_modification_time="Sun, 09 Mar 2003 19:42:46 GMT"/>
 
   <child>
     <widget class="GtkVBox" id="vbox1">
@@ -310,7 +310,7 @@
              <property name="tooltips">True</property>
 
              <child>
-               <widget class="button" id="button1">
+               <widget class="GtkButton" id="button1">
                  <property name="visible">True</property>
                  <property name="tooltip" translatable="yes">Goes up of one 
level (single view)</property>
                  <property name="label" translatable="yes">Back</property>
@@ -327,7 +327,7 @@
              </child>
 
              <child>
-               <widget class="button" id="button2">
+               <widget class="GtkButton" id="button2">
                  <property name="visible">True</property>
                  <property name="tooltip" translatable="yes">Load a config 
file</property>
                  <property name="label" translatable="yes">Load</property>
@@ -338,7 +338,7 @@
              </child>
 
              <child>
-               <widget class="button" id="button3">
+               <widget class="GtkButton" id="button3">
                  <property name="visible">True</property>
                  <property name="tooltip" translatable="yes">Save a config 
file</property>
                  <property name="label" translatable="yes">Save</property>
@@ -355,7 +355,7 @@
              </child>
 
              <child>
-               <widget class="button" id="button4">
+               <widget class="GtkButton" id="button4">
                  <property name="visible">True</property>
                  <property name="tooltip" translatable="yes">Single 
view</property>
                  <property name="label" translatable="yes">Single</property>
@@ -366,7 +366,7 @@
              </child>
 
              <child>
-               <widget class="button" id="button5">
+               <widget class="GtkButton" id="button5">
                  <property name="visible">True</property>
                  <property name="tooltip" translatable="yes">Split 
view</property>
                  <property name="label" translatable="yes">Split</property>
@@ -377,7 +377,7 @@
              </child>
 
              <child>
-               <widget class="button" id="button6">
+               <widget class="GtkButton" id="button6">
                  <property name="visible">True</property>
                  <property name="tooltip" translatable="yes">Full 
view</property>
                  <property name="label" translatable="yes">Full</property>
@@ -394,7 +394,7 @@
              </child>
 
              <child>
-               <widget class="button" id="button7">
+               <widget class="GtkButton" id="button7">
                  <property name="visible">True</property>
                  <property name="tooltip" translatable="yes">Collapse the 
whole tree in the right frame</property>
                  <property name="label" translatable="yes">Collapse</property>
@@ -404,7 +404,7 @@
              </child>
 
              <child>
-               <widget class="button" id="button8">
+               <widget class="GtkButton" id="button8">
                  <property name="visible">True</property>
                  <property name="tooltip" translatable="yes">Expand the whole 
tree in the right frame</property>
                  <property name="label" translatable="yes">Expand</property>

Added: GNUnet/src/conf/gconf_callbacks.h
===================================================================
--- GNUnet/src/conf/gconf_callbacks.h   2005-03-17 17:29:04 UTC (rev 445)
+++ GNUnet/src/conf/gconf_callbacks.h   2005-03-19 17:22:31 UTC (rev 446)
@@ -0,0 +1,68 @@
+#include <gtk/gtk.h>
+
+
+void on_window1_destroy (GtkObject * object, gpointer user_data);
+
+void
+on_window1_size_request (GtkWidget * widget,
+                        GtkRequisition * requisition, gpointer user_data);
+
+gboolean
+on_window1_delete_event (GtkWidget * widget,
+                        GdkEvent * event, gpointer user_data);
+
+void on_load1_activate (GtkMenuItem * menuitem, gpointer user_data);
+
+void on_save1_activate (GtkMenuItem * menuitem, gpointer user_data);
+
+void on_save_as1_activate (GtkMenuItem * menuitem, gpointer user_data);
+
+void on_quit1_activate (GtkMenuItem * menuitem, gpointer user_data);
+
+void on_show_name1_activate (GtkMenuItem * menuitem, gpointer user_data);
+
+void on_show_range1_activate (GtkMenuItem * menuitem, gpointer user_data);
+
+void on_show_data1_activate (GtkMenuItem * menuitem, gpointer user_data);
+
+void
+on_show_all_options1_activate (GtkMenuItem * menuitem, gpointer user_data);
+
+void
+on_show_debug_info1_activate (GtkMenuItem * menuitem, gpointer user_data);
+
+void on_introduction1_activate (GtkMenuItem * menuitem, gpointer user_data);
+
+void on_about1_activate (GtkMenuItem * menuitem, gpointer user_data);
+
+void on_license1_activate (GtkMenuItem * menuitem, gpointer user_data);
+
+void on_back_pressed (GtkButton * button, gpointer user_data);
+
+void on_load_pressed (GtkButton * button, gpointer user_data);
+
+void on_save_pressed (GtkButton * button, gpointer user_data);
+
+void on_single_clicked (GtkButton * button, gpointer user_data);
+
+void on_split_clicked (GtkButton * button, gpointer user_data);
+
+void on_full_clicked (GtkButton * button, gpointer user_data);
+
+void on_collapse_pressed (GtkButton * button, gpointer user_data);
+
+void on_expand_pressed (GtkButton * button, gpointer user_data);
+
+void on_treeview2_cursor_changed (GtkTreeView * treeview, gpointer user_data);
+
+gboolean
+on_treeview1_button_press_event (GtkWidget * widget,
+                                GdkEventButton * event, gpointer user_data);
+
+gboolean
+on_treeview2_key_press_event (GtkWidget * widget,
+                             GdkEventKey * event, gpointer user_data);
+
+gboolean
+on_treeview2_button_press_event (GtkWidget * widget,
+                                GdkEventButton * event, gpointer user_data);

Added: GNUnet/src/conf/gconf_interface.c
===================================================================
--- GNUnet/src/conf/gconf_interface.c   2005-03-17 17:29:04 UTC (rev 445)
+++ GNUnet/src/conf/gconf_interface.c   2005-03-19 17:22:31 UTC (rev 446)
@@ -0,0 +1,480 @@
+/*
+ * DO NOT EDIT THIS FILE - it is generated by Glade.
+ */
+
+#ifdef HAVE_CONFIG_H
+#  include <config.h>
+#endif
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <unistd.h>
+#include <string.h>
+#include <stdio.h>
+
+#include <gdk/gdkkeysyms.h>
+#include <gtk/gtk.h>
+
+#include "gconf_callbacks.h"
+#include "gconf_interface.h"
+#include "gconf_support.h"
+
+#define GLADE_HOOKUP_OBJECT(component,widget,name) \
+  g_object_set_data_full (G_OBJECT (component), name, \
+    gtk_widget_ref (widget), (GDestroyNotify) gtk_widget_unref)
+
+#define GLADE_HOOKUP_OBJECT_NO_REF(component,widget,name) \
+  g_object_set_data (G_OBJECT (component), name, widget)
+
+GtkWidget *
+create_main_wnd (void)
+{
+  GtkWidget *main_wnd;
+  GtkWidget *vbox1;
+  GtkWidget *menubar1;
+  GtkWidget *file1;
+  GtkWidget *file1_menu;
+  GtkWidget *load1;
+  GtkWidget *image27;
+  GtkWidget *save1;
+  GtkWidget *image28;
+  GtkWidget *save_as1;
+  GtkWidget *image29;
+  GtkWidget *separator1;
+  GtkWidget *quit1;
+  GtkWidget *image30;
+  GtkWidget *options1;
+  GtkWidget *options1_menu;
+  GtkWidget *show_name1;
+  GtkWidget *show_range1;
+  GtkWidget *show_data1;
+  GtkWidget *separator2;
+  GtkWidget *show_all_options1;
+  GtkWidget *show_debug_info1;
+  GtkWidget *help1;
+  GtkWidget *help1_menu;
+  GtkWidget *introduction1;
+  GtkWidget *image31;
+  GtkWidget *about1;
+  GtkWidget *image32;
+  GtkWidget *license1;
+  GtkWidget *image33;
+  GtkWidget *handlebox1;
+  GtkWidget *toolbar1;
+  GtkWidget *button1;
+  GtkWidget *vseparator1;
+  GtkWidget *button2;
+  GtkWidget *button3;
+  GtkWidget *vseparator2;
+  GtkWidget *button4;
+  GtkWidget *button5;
+  GtkWidget *button6;
+  GtkWidget *vseparator3;
+  GtkWidget *button7;
+  GtkWidget *button8;
+  GtkWidget *hpaned1;
+  GtkWidget *scrolledwindow1;
+  GtkWidget *treeview1;
+  GtkWidget *vpaned1;
+  GtkWidget *scrolledwindow2;
+  GtkWidget *treeview2;
+  GtkWidget *scrolledwindow3;
+  GtkWidget *textview3;
+  GtkAccelGroup *accel_group;
+  GtkTooltips *tooltips;
+
+  tooltips = gtk_tooltips_new ();
+
+  accel_group = gtk_accel_group_new ();
+
+  main_wnd = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+  gtk_window_set_title (GTK_WINDOW (main_wnd), _("Gtk GNUnet Configurator"));
+  gtk_window_set_default_size (GTK_WINDOW (main_wnd), 640, 480);
+
+  vbox1 = gtk_vbox_new (FALSE, 0);
+  gtk_widget_show (vbox1);
+  gtk_container_add (GTK_CONTAINER (main_wnd), vbox1);
+
+  menubar1 = gtk_menu_bar_new ();
+  gtk_widget_show (menubar1);
+  gtk_box_pack_start (GTK_BOX (vbox1), menubar1, FALSE, FALSE, 0);
+
+  file1 = gtk_menu_item_new_with_mnemonic (_("_File"));
+  gtk_widget_show (file1);
+  gtk_container_add (GTK_CONTAINER (menubar1), file1);
+
+  file1_menu = gtk_menu_new ();
+  gtk_menu_item_set_submenu (GTK_MENU_ITEM (file1), file1_menu);
+
+  load1 = gtk_image_menu_item_new_with_mnemonic (_("_Load"));
+  gtk_widget_show (load1);
+  gtk_container_add (GTK_CONTAINER (file1_menu), load1);
+  gtk_tooltips_set_tip (tooltips, load1, _("Load a config file"), NULL);
+  gtk_widget_add_accelerator (load1, "activate", accel_group,
+                             GDK_L, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE);
+
+  image27 = gtk_image_new_from_stock ("gtk-open", GTK_ICON_SIZE_MENU);
+  gtk_widget_show (image27);
+  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (load1), image27);
+
+  save1 = gtk_image_menu_item_new_with_mnemonic (_("_Save"));
+  gtk_widget_show (save1);
+  gtk_container_add (GTK_CONTAINER (file1_menu), save1);
+  gtk_tooltips_set_tip (tooltips, save1, _("Save the config in .config"),
+                       NULL);
+  gtk_widget_add_accelerator (save1, "activate", accel_group, GDK_S,
+                             GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE);
+
+  image28 = gtk_image_new_from_stock ("gtk-save", GTK_ICON_SIZE_MENU);
+  gtk_widget_show (image28);
+  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (save1), image28);
+
+  save_as1 = gtk_image_menu_item_new_with_mnemonic (_("Save _as"));
+  gtk_widget_show (save_as1);
+  gtk_container_add (GTK_CONTAINER (file1_menu), save_as1);
+  gtk_tooltips_set_tip (tooltips, save_as1, _("Save the config in a file"),
+                       NULL);
+
+  image29 = gtk_image_new_from_stock ("gtk-save-as", GTK_ICON_SIZE_MENU);
+  gtk_widget_show (image29);
+  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (save_as1), image29);
+
+  separator1 = gtk_menu_item_new ();
+  gtk_widget_show (separator1);
+  gtk_container_add (GTK_CONTAINER (file1_menu), separator1);
+  gtk_widget_set_sensitive (separator1, FALSE);
+
+  quit1 = gtk_image_menu_item_new_with_mnemonic (_("_Quit"));
+  gtk_widget_show (quit1);
+  gtk_container_add (GTK_CONTAINER (file1_menu), quit1);
+  gtk_widget_add_accelerator (quit1, "activate", accel_group,
+                             GDK_Q, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE);
+
+  image30 = gtk_image_new_from_stock ("gtk-quit", GTK_ICON_SIZE_MENU);
+  gtk_widget_show (image30);
+  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (quit1), image30);
+
+  options1 = gtk_menu_item_new_with_mnemonic (_("_Options"));
+  gtk_widget_show (options1);
+  gtk_container_add (GTK_CONTAINER (menubar1), options1);
+
+  options1_menu = gtk_menu_new ();
+  gtk_menu_item_set_submenu (GTK_MENU_ITEM (options1), options1_menu);
+
+  show_name1 = gtk_check_menu_item_new_with_mnemonic (_("Show _name"));
+  gtk_widget_show (show_name1);
+  gtk_container_add (GTK_CONTAINER (options1_menu), show_name1);
+  gtk_tooltips_set_tip (tooltips, show_name1, _("Show name"), NULL);
+
+  show_range1 = gtk_check_menu_item_new_with_mnemonic (_("Show _range"));
+  gtk_widget_show (show_range1);
+  gtk_container_add (GTK_CONTAINER (options1_menu), show_range1);
+  gtk_tooltips_set_tip (tooltips, show_range1, _("Show range (Y/M/N)"), NULL);
+
+  show_data1 = gtk_check_menu_item_new_with_mnemonic (_("Show _data"));
+  gtk_widget_show (show_data1);
+  gtk_container_add (GTK_CONTAINER (options1_menu), show_data1);
+  gtk_tooltips_set_tip (tooltips, show_data1, _("Show value of the option"),
+                       NULL);
+
+  separator2 = gtk_menu_item_new ();
+  gtk_widget_show (separator2);
+  gtk_container_add (GTK_CONTAINER (options1_menu), separator2);
+  gtk_widget_set_sensitive (separator2, FALSE);
+
+  show_all_options1 =
+    gtk_check_menu_item_new_with_mnemonic (_("Show all _options"));
+  gtk_widget_show (show_all_options1);
+  gtk_container_add (GTK_CONTAINER (options1_menu), show_all_options1);
+  gtk_tooltips_set_tip (tooltips, show_all_options1, _("Show all options"),
+                       NULL);
+
+  show_debug_info1 =
+    gtk_check_menu_item_new_with_mnemonic (_("Show _debug info"));
+  gtk_widget_show (show_debug_info1);
+  gtk_container_add (GTK_CONTAINER (options1_menu), show_debug_info1);
+  gtk_tooltips_set_tip (tooltips, show_debug_info1, _("Show masked options"),
+                       NULL);
+
+  help1 = gtk_menu_item_new_with_mnemonic (_("_Help"));
+  gtk_widget_show (help1);
+  gtk_container_add (GTK_CONTAINER (menubar1), help1);
+
+  help1_menu = gtk_menu_new ();
+  gtk_menu_item_set_submenu (GTK_MENU_ITEM (help1), help1_menu);
+
+  introduction1 = gtk_image_menu_item_new_with_mnemonic (_("_Introduction"));
+  gtk_widget_show (introduction1);
+  gtk_container_add (GTK_CONTAINER (help1_menu), introduction1);
+  gtk_widget_add_accelerator (introduction1, "activate", accel_group,
+                             GDK_I, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE);
+
+  image31 =
+    gtk_image_new_from_stock ("gtk-dialog-question", GTK_ICON_SIZE_MENU);
+  gtk_widget_show (image31);
+  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (introduction1),
+                                image31);
+
+  about1 = gtk_image_menu_item_new_with_mnemonic (_("_About"));
+  gtk_widget_show (about1);
+  gtk_container_add (GTK_CONTAINER (help1_menu), about1);
+  gtk_widget_add_accelerator (about1, "activate", accel_group,
+                             GDK_A, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE);
+
+  image32 = gtk_image_new_from_stock ("gtk-properties", GTK_ICON_SIZE_MENU);
+  gtk_widget_show (image32);
+  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (about1), image32);
+
+  license1 = gtk_image_menu_item_new_with_mnemonic (_("_License"));
+  gtk_widget_show (license1);
+  gtk_container_add (GTK_CONTAINER (help1_menu), license1);
+
+  image33 = gtk_image_new_from_stock ("gtk-justify-fill", GTK_ICON_SIZE_MENU);
+  gtk_widget_show (image33);
+  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (license1), image33);
+
+  handlebox1 = gtk_handle_box_new ();
+  gtk_widget_show (handlebox1);
+  gtk_box_pack_start (GTK_BOX (vbox1), handlebox1, FALSE, FALSE, 0);
+
+  toolbar1 = gtk_toolbar_new ();
+  gtk_widget_show (toolbar1);
+  gtk_container_add (GTK_CONTAINER (handlebox1), toolbar1);
+  gtk_toolbar_set_style (GTK_TOOLBAR (toolbar1), GTK_TOOLBAR_BOTH);
+
+  button1 = gtk_button_new_with_mnemonic (_("Back"));
+  gtk_widget_show (button1);
+  gtk_toolbar_append_widget (GTK_TOOLBAR (toolbar1), button1,
+                            _("Goes up of one level (single view)"), NULL);
+  GTK_WIDGET_UNSET_FLAGS (button1, GTK_CAN_FOCUS);
+
+  vseparator1 = gtk_vseparator_new ();
+  gtk_widget_show (vseparator1);
+  gtk_toolbar_append_widget (GTK_TOOLBAR (toolbar1), vseparator1, NULL, NULL);
+
+  button2 = gtk_button_new_with_mnemonic (_("Load"));
+  gtk_widget_show (button2);
+  gtk_toolbar_append_widget (GTK_TOOLBAR (toolbar1), button2,
+                            _("Load a config file"), NULL);
+  GTK_WIDGET_UNSET_FLAGS (button2, GTK_CAN_FOCUS);
+
+  button3 = gtk_button_new_with_mnemonic (_("Save"));
+  gtk_widget_show (button3);
+  gtk_toolbar_append_widget (GTK_TOOLBAR (toolbar1), button3,
+                            _("Save a config file"), NULL);
+  GTK_WIDGET_UNSET_FLAGS (button3, GTK_CAN_FOCUS);
+
+  vseparator2 = gtk_vseparator_new ();
+  gtk_widget_show (vseparator2);
+  gtk_toolbar_append_widget (GTK_TOOLBAR (toolbar1), vseparator2, NULL, NULL);
+
+  button4 = gtk_button_new_with_mnemonic (_("Single"));
+  gtk_widget_show (button4);
+  gtk_toolbar_append_widget (GTK_TOOLBAR (toolbar1), button4,
+                            _("Single view"), NULL);
+  GTK_WIDGET_UNSET_FLAGS (button4, GTK_CAN_FOCUS);
+
+  button5 = gtk_button_new_with_mnemonic (_("Split"));
+  gtk_widget_show (button5);
+  gtk_toolbar_append_widget (GTK_TOOLBAR (toolbar1), button5, _("Split view"),
+                            NULL);
+  GTK_WIDGET_UNSET_FLAGS (button5, GTK_CAN_FOCUS);
+
+  button6 = gtk_button_new_with_mnemonic (_("Full"));
+  gtk_widget_show (button6);
+  gtk_toolbar_append_widget (GTK_TOOLBAR (toolbar1), button6, _("Full view"),
+                            NULL);
+  GTK_WIDGET_UNSET_FLAGS (button6, GTK_CAN_FOCUS);
+
+  vseparator3 = gtk_vseparator_new ();
+  gtk_widget_show (vseparator3);
+  gtk_toolbar_append_widget (GTK_TOOLBAR (toolbar1), vseparator3, NULL, NULL);
+
+  button7 = gtk_button_new_with_mnemonic (_("Collapse"));
+  gtk_widget_show (button7);
+  gtk_toolbar_append_widget (GTK_TOOLBAR (toolbar1), button7,
+                            _("Collapse the whole tree in the right frame"),
+                            NULL);
+  GTK_WIDGET_UNSET_FLAGS (button7, GTK_CAN_FOCUS);
+
+  button8 = gtk_button_new_with_mnemonic (_("Expand"));
+  gtk_widget_show (button8);
+  gtk_toolbar_append_widget (GTK_TOOLBAR (toolbar1), button8,
+                            _("Expand the whole tree in the right frame"),
+                            NULL);
+  GTK_WIDGET_UNSET_FLAGS (button8, GTK_CAN_FOCUS);
+
+  hpaned1 = gtk_hpaned_new ();
+  gtk_widget_show (hpaned1);
+  gtk_box_pack_start (GTK_BOX (vbox1), hpaned1, TRUE, TRUE, 0);
+  gtk_widget_set_size_request (hpaned1, 1, -1);
+  gtk_paned_set_position (GTK_PANED (hpaned1), 0);
+
+  scrolledwindow1 = gtk_scrolled_window_new (NULL, NULL);
+  gtk_widget_show (scrolledwindow1);
+  gtk_paned_pack1 (GTK_PANED (hpaned1), scrolledwindow1, FALSE, TRUE);
+  GTK_WIDGET_UNSET_FLAGS (scrolledwindow1, GTK_CAN_FOCUS);
+  gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledwindow1),
+                                      GTK_SHADOW_IN);
+
+  treeview1 = gtk_tree_view_new ();
+  gtk_widget_show (treeview1);
+  gtk_container_add (GTK_CONTAINER (scrolledwindow1), treeview1);
+
+  vpaned1 = gtk_vpaned_new ();
+  gtk_widget_show (vpaned1);
+  gtk_paned_pack2 (GTK_PANED (hpaned1), vpaned1, TRUE, TRUE);
+  gtk_paned_set_position (GTK_PANED (vpaned1), 0);
+
+  scrolledwindow2 = gtk_scrolled_window_new (NULL, NULL);
+  gtk_widget_show (scrolledwindow2);
+  gtk_paned_pack1 (GTK_PANED (vpaned1), scrolledwindow2, FALSE, TRUE);
+  GTK_WIDGET_UNSET_FLAGS (scrolledwindow2, GTK_CAN_FOCUS);
+  gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledwindow2),
+                                      GTK_SHADOW_IN);
+
+  treeview2 = gtk_tree_view_new ();
+  gtk_widget_show (treeview2);
+  gtk_container_add (GTK_CONTAINER (scrolledwindow2), treeview2);
+
+  scrolledwindow3 = gtk_scrolled_window_new (NULL, NULL);
+  gtk_widget_show (scrolledwindow3);
+  gtk_paned_pack2 (GTK_PANED (vpaned1), scrolledwindow3, TRUE, TRUE);
+  GTK_WIDGET_UNSET_FLAGS (scrolledwindow3, GTK_CAN_FOCUS);
+  gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow3),
+                                 GTK_POLICY_NEVER, GTK_POLICY_ALWAYS);
+  gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledwindow3),
+                                      GTK_SHADOW_IN);
+
+  textview3 = gtk_text_view_new ();
+  gtk_widget_show (textview3);
+  gtk_container_add (GTK_CONTAINER (scrolledwindow3), textview3);
+  gtk_text_view_set_editable (GTK_TEXT_VIEW (textview3), FALSE);
+  gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (textview3), GTK_WRAP_WORD);
+  gtk_text_buffer_set_text (gtk_text_view_get_buffer
+                           (GTK_TEXT_VIEW (textview3)),
+                           _
+                           ("Sorry, no help available for this option yet."),
+                           -1);
+
+  g_signal_connect_swapped ((gpointer) main_wnd, "destroy",
+                           G_CALLBACK (on_window1_destroy),
+                           GTK_OBJECT (main_wnd));
+  g_signal_connect_swapped ((gpointer) main_wnd, "size_request",
+                           G_CALLBACK (on_window1_size_request),
+                           GTK_OBJECT (vpaned1));
+  g_signal_connect_swapped ((gpointer) main_wnd, "delete_event",
+                           G_CALLBACK (on_window1_delete_event),
+                           GTK_OBJECT (main_wnd));
+  g_signal_connect ((gpointer) load1, "activate",
+                   G_CALLBACK (on_load1_activate), NULL);
+  g_signal_connect ((gpointer) save1, "activate",
+                   G_CALLBACK (on_save1_activate), NULL);
+  g_signal_connect ((gpointer) save_as1, "activate",
+                   G_CALLBACK (on_save_as1_activate), NULL);
+  g_signal_connect ((gpointer) quit1, "activate",
+                   G_CALLBACK (on_quit1_activate), NULL);
+  g_signal_connect ((gpointer) show_name1, "activate",
+                   G_CALLBACK (on_show_name1_activate), NULL);
+  g_signal_connect ((gpointer) show_range1, "activate",
+                   G_CALLBACK (on_show_range1_activate), NULL);
+  g_signal_connect ((gpointer) show_data1, "activate",
+                   G_CALLBACK (on_show_data1_activate), NULL);
+  g_signal_connect ((gpointer) show_all_options1, "activate",
+                   G_CALLBACK (on_show_all_options1_activate), NULL);
+  g_signal_connect ((gpointer) show_debug_info1, "activate",
+                   G_CALLBACK (on_show_debug_info1_activate), NULL);
+  g_signal_connect ((gpointer) introduction1, "activate",
+                   G_CALLBACK (on_introduction1_activate), NULL);
+  g_signal_connect ((gpointer) about1, "activate",
+                   G_CALLBACK (on_about1_activate), NULL);
+  g_signal_connect ((gpointer) license1, "activate",
+                   G_CALLBACK (on_license1_activate), NULL);
+  g_signal_connect ((gpointer) button1, "pressed",
+                   G_CALLBACK (on_back_pressed), NULL);
+  g_signal_connect ((gpointer) button2, "pressed",
+                   G_CALLBACK (on_load_pressed), NULL);
+  g_signal_connect ((gpointer) button3, "pressed",
+                   G_CALLBACK (on_save_pressed), NULL);
+  g_signal_connect ((gpointer) button4, "clicked",
+                   G_CALLBACK (on_single_clicked), NULL);
+  g_signal_connect ((gpointer) button5, "clicked",
+                   G_CALLBACK (on_split_clicked), NULL);
+  g_signal_connect ((gpointer) button6, "clicked",
+                   G_CALLBACK (on_full_clicked), NULL);
+  g_signal_connect ((gpointer) button7, "pressed",
+                   G_CALLBACK (on_collapse_pressed), NULL);
+  g_signal_connect ((gpointer) button8, "pressed",
+                   G_CALLBACK (on_expand_pressed), NULL);
+  g_signal_connect ((gpointer) treeview1, "cursor_changed",
+                   G_CALLBACK (on_treeview2_cursor_changed), NULL);
+  g_signal_connect ((gpointer) treeview1, "button_press_event",
+                   G_CALLBACK (on_treeview1_button_press_event), NULL);
+  g_signal_connect ((gpointer) treeview1, "key_press_event",
+                   G_CALLBACK (on_treeview2_key_press_event), NULL);
+  g_signal_connect ((gpointer) treeview2, "cursor_changed",
+                   G_CALLBACK (on_treeview2_cursor_changed), NULL);
+  g_signal_connect ((gpointer) treeview2, "button_press_event",
+                   G_CALLBACK (on_treeview2_button_press_event), NULL);
+  g_signal_connect ((gpointer) treeview2, "key_press_event",
+                   G_CALLBACK (on_treeview2_key_press_event), NULL);
+
+  /* Store pointers to all widgets, for use by lookup_widget(). */
+  GLADE_HOOKUP_OBJECT_NO_REF (main_wnd, main_wnd, "main_wnd");
+  GLADE_HOOKUP_OBJECT (main_wnd, vbox1, "vbox1");
+  GLADE_HOOKUP_OBJECT (main_wnd, menubar1, "menubar1");
+  GLADE_HOOKUP_OBJECT (main_wnd, file1, "file1");
+  GLADE_HOOKUP_OBJECT (main_wnd, file1_menu, "file1_menu");
+  GLADE_HOOKUP_OBJECT (main_wnd, load1, "load1");
+  GLADE_HOOKUP_OBJECT (main_wnd, image27, "image27");
+  GLADE_HOOKUP_OBJECT (main_wnd, save1, "save1");
+  GLADE_HOOKUP_OBJECT (main_wnd, image28, "image28");
+  GLADE_HOOKUP_OBJECT (main_wnd, save_as1, "save_as1");
+  GLADE_HOOKUP_OBJECT (main_wnd, image29, "image29");
+  GLADE_HOOKUP_OBJECT (main_wnd, separator1, "separator1");
+  GLADE_HOOKUP_OBJECT (main_wnd, quit1, "quit1");
+  GLADE_HOOKUP_OBJECT (main_wnd, image30, "image30");
+  GLADE_HOOKUP_OBJECT (main_wnd, options1, "options1");
+  GLADE_HOOKUP_OBJECT (main_wnd, options1_menu, "options1_menu");
+  GLADE_HOOKUP_OBJECT (main_wnd, show_name1, "show_name1");
+  GLADE_HOOKUP_OBJECT (main_wnd, show_range1, "show_range1");
+  GLADE_HOOKUP_OBJECT (main_wnd, show_data1, "show_data1");
+  GLADE_HOOKUP_OBJECT (main_wnd, separator2, "separator2");
+  GLADE_HOOKUP_OBJECT (main_wnd, show_all_options1, "show_all_options1");
+  GLADE_HOOKUP_OBJECT (main_wnd, show_debug_info1, "show_debug_info1");
+  GLADE_HOOKUP_OBJECT (main_wnd, help1, "help1");
+  GLADE_HOOKUP_OBJECT (main_wnd, help1_menu, "help1_menu");
+  GLADE_HOOKUP_OBJECT (main_wnd, introduction1, "introduction1");
+  GLADE_HOOKUP_OBJECT (main_wnd, image31, "image31");
+  GLADE_HOOKUP_OBJECT (main_wnd, about1, "about1");
+  GLADE_HOOKUP_OBJECT (main_wnd, image32, "image32");
+  GLADE_HOOKUP_OBJECT (main_wnd, license1, "license1");
+  GLADE_HOOKUP_OBJECT (main_wnd, image33, "image33");
+  GLADE_HOOKUP_OBJECT (main_wnd, handlebox1, "handlebox1");
+  GLADE_HOOKUP_OBJECT (main_wnd, toolbar1, "toolbar1");
+  GLADE_HOOKUP_OBJECT (main_wnd, button1, "button1");
+  GLADE_HOOKUP_OBJECT (main_wnd, vseparator1, "vseparator1");
+  GLADE_HOOKUP_OBJECT (main_wnd, button2, "button2");
+  GLADE_HOOKUP_OBJECT (main_wnd, button3, "button3");
+  GLADE_HOOKUP_OBJECT (main_wnd, vseparator2, "vseparator2");
+  GLADE_HOOKUP_OBJECT (main_wnd, button4, "button4");
+  GLADE_HOOKUP_OBJECT (main_wnd, button5, "button5");
+  GLADE_HOOKUP_OBJECT (main_wnd, button6, "button6");
+  GLADE_HOOKUP_OBJECT (main_wnd, vseparator3, "vseparator3");
+  GLADE_HOOKUP_OBJECT (main_wnd, button7, "button7");
+  GLADE_HOOKUP_OBJECT (main_wnd, button8, "button8");
+  GLADE_HOOKUP_OBJECT (main_wnd, hpaned1, "hpaned1");
+  GLADE_HOOKUP_OBJECT (main_wnd, scrolledwindow1, "scrolledwindow1");
+  GLADE_HOOKUP_OBJECT (main_wnd, treeview1, "treeview1");
+  GLADE_HOOKUP_OBJECT (main_wnd, vpaned1, "vpaned1");
+  GLADE_HOOKUP_OBJECT (main_wnd, scrolledwindow2, "scrolledwindow2");
+  GLADE_HOOKUP_OBJECT (main_wnd, treeview2, "treeview2");
+  GLADE_HOOKUP_OBJECT (main_wnd, scrolledwindow3, "scrolledwindow3");
+  GLADE_HOOKUP_OBJECT (main_wnd, textview3, "textview3");
+  GLADE_HOOKUP_OBJECT_NO_REF (main_wnd, tooltips, "tooltips");
+
+  gtk_widget_grab_focus (treeview2);
+  gtk_window_add_accel_group (GTK_WINDOW (main_wnd), accel_group);
+
+  return main_wnd;
+}

Added: GNUnet/src/conf/gconf_interface.h
===================================================================
--- GNUnet/src/conf/gconf_interface.h   2005-03-17 17:29:04 UTC (rev 445)
+++ GNUnet/src/conf/gconf_interface.h   2005-03-19 17:22:31 UTC (rev 446)
@@ -0,0 +1,5 @@
+/*
+ * DO NOT EDIT THIS FILE - it is generated by Glade.
+ */
+
+GtkWidget *create_main_wnd (void);

Added: GNUnet/src/conf/gconf_support.c
===================================================================
--- GNUnet/src/conf/gconf_support.c     2005-03-17 17:29:04 UTC (rev 445)
+++ GNUnet/src/conf/gconf_support.c     2005-03-19 17:22:31 UTC (rev 446)
@@ -0,0 +1,143 @@
+/*
+ * DO NOT EDIT THIS FILE - it is generated by Glade.
+ */
+
+#ifdef HAVE_CONFIG_H
+#  include <config.h>
+#endif
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <unistd.h>
+#include <string.h>
+#include <stdio.h>
+
+#include <gtk/gtk.h>
+
+#include "gconf_support.h"
+
+GtkWidget *
+lookup_widget (GtkWidget * widget, const gchar * widget_name)
+{
+  GtkWidget *parent, *found_widget;
+
+  for (;;)
+    {
+      if (GTK_IS_MENU (widget))
+       parent = gtk_menu_get_attach_widget (GTK_MENU (widget));
+      else
+       parent = widget->parent;
+      if (!parent)
+       parent =
+         (GtkWidget *) g_object_get_data (G_OBJECT (widget),
+                                          "GladeParentKey");
+      if (parent == NULL)
+       break;
+      widget = parent;
+    }
+
+  found_widget = (GtkWidget *) g_object_get_data (G_OBJECT (widget),
+                                                 widget_name);
+  if (!found_widget)
+    g_warning ("Widget not found: %s", widget_name);
+  return found_widget;
+}
+
+static GList *pixmaps_directories = NULL;
+
+/* Use this function to set the directory containing installed pixmaps. */
+void
+add_pixmap_directory (const gchar * directory)
+{
+  pixmaps_directories = g_list_prepend (pixmaps_directories,
+                                       g_strdup (directory));
+}
+
+/* This is an internally used function to find pixmap files. */
+static gchar *
+find_pixmap_file (const gchar * filename)
+{
+  GList *elem;
+
+  /* We step through each of the pixmaps directory to find it. */
+  elem = pixmaps_directories;
+  while (elem)
+    {
+      gchar *pathname = g_strdup_printf ("%s%s%s", (gchar *) elem->data,
+                                        G_DIR_SEPARATOR_S, filename);
+      if (g_file_test (pathname, G_FILE_TEST_EXISTS))
+       return pathname;
+      g_free (pathname);
+      elem = elem->next;
+    }
+  return NULL;
+}
+
+/* This is an internally used function to create pixmaps. */
+GtkWidget *
+create_pixmap (GtkWidget * widget, const gchar * filename)
+{
+  gchar *pathname = NULL;
+  GtkWidget *pixmap;
+
+  if (!filename || !filename[0])
+    return gtk_image_new ();
+
+  pathname = find_pixmap_file (filename);
+
+  if (!pathname)
+    {
+      g_warning (_("Couldn't find pixmap file: %s"), filename);
+      return gtk_image_new ();
+    }
+
+  pixmap = gtk_image_new_from_file (pathname);
+  g_free (pathname);
+  return pixmap;
+}
+
+/* This is an internally used function to create pixmaps. */
+GdkPixbuf *
+create_pixbuf (const gchar * filename)
+{
+  gchar *pathname = NULL;
+  GdkPixbuf *pixbuf;
+  GError *error = NULL;
+
+  if (!filename || !filename[0])
+    return NULL;
+
+  pathname = find_pixmap_file (filename);
+
+  if (!pathname)
+    {
+      g_warning (_("Couldn't find pixmap file: %s"), filename);
+      return NULL;
+    }
+
+  pixbuf = gdk_pixbuf_new_from_file (pathname, &error);
+  if (!pixbuf)
+    {
+      fprintf (stderr, "Failed to load pixbuf file: %s: %s\n",
+              pathname, error->message);
+      g_error_free (error);
+    }
+  g_free (pathname);
+  return pixbuf;
+}
+
+/* This is used to set ATK action descriptions. */
+void
+glade_set_atk_action_description (AtkAction * action,
+                                 const gchar * action_name,
+                                 const gchar * description)
+{
+  gint n_actions, i;
+
+  n_actions = atk_action_get_n_actions (action);
+  for (i = 0; i < n_actions; i++)
+    {
+      if (!strcmp (atk_action_get_name (action, i), action_name))
+       atk_action_set_description (action, i, description);
+    }
+}

Added: GNUnet/src/conf/gconf_support.h
===================================================================
--- GNUnet/src/conf/gconf_support.h     2005-03-17 17:29:04 UTC (rev 445)
+++ GNUnet/src/conf/gconf_support.h     2005-03-19 17:22:31 UTC (rev 446)
@@ -0,0 +1,64 @@
+/*
+ * DO NOT EDIT THIS FILE - it is generated by Glade.
+ */
+
+#ifdef HAVE_CONFIG_H
+#  include <config.h>
+#endif
+
+#include <gtk/gtk.h>
+
+/*
+ * Standard gettext macros.
+ */
+#ifdef ENABLE_NLS
+#  include <libintl.h>
+#  undef _
+#  define _(String) dgettext (PACKAGE, String)
+#  ifdef gettext_noop
+#    define N_(String) gettext_noop (String)
+#  else
+#    define N_(String) (String)
+#  endif
+#else
+#  define textdomain(String) (String)
+#  define gettext(String) (String)
+#  define dgettext(Domain,Message) (Message)
+#  define dcgettext(Domain,Message,Type) (Message)
+#  define bindtextdomain(Domain,Directory) (Domain)
+#  define _(String) (String)
+#  define N_(String) (String)
+#endif
+
+
+/*
+ * Public Functions.
+ */
+
+/*
+ * This function returns a widget in a component created by Glade.
+ * Call it with the toplevel widget in the component (i.e. a window/dialog),
+ * or alternatively any widget in the component, and the name of the widget
+ * you want returned.
+ */
+GtkWidget *lookup_widget (GtkWidget * widget, const gchar * widget_name);
+
+
+/* Use this function to set the directory containing installed pixmaps. */
+void add_pixmap_directory (const gchar * directory);
+
+
+/*
+ * Private Functions.
+ */
+
+/* This is used to create the pixmaps used in the interface. */
+GtkWidget *create_pixmap (GtkWidget * widget, const gchar * filename);
+
+/* This is used to create the pixbufs used in the interface. */
+GdkPixbuf *create_pixbuf (const gchar * filename);
+
+/* This is used to set ATK action descriptions. */
+void glade_set_atk_action_description (AtkAction * action,
+                                      const gchar * action_name,
+                                      const gchar * description);

Modified: GNUnet/src/conf/gnunet-setup.c
===================================================================
--- GNUnet/src/conf/gnunet-setup.c      2005-03-17 17:29:04 UTC (rev 445)
+++ GNUnet/src/conf/gnunet-setup.c      2005-03-19 17:22:31 UTC (rev 446)
@@ -1,6 +1,6 @@
 /* 
      This file is part of GNUnet.
-     (C) 2001, 2002 Christian Grothoff (and other contributing authors)
+     (C) 2001, 2002, 2005 Christian Grothoff (and other contributing authors)
 
      GNUnet is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published
@@ -67,6 +67,13 @@
     mconf_main(argc - 1, &argv[1]);
 #else
     puts("Menuconfig is not available\n");
+#endif
+  }
+  else if (strncmp(argv[1], "gconfig", 10) == 0) {
+#if HAVE_GTK
+    gconf_main(argc - 1, &argv[1]);
+#else
+    puts("Gconfig is not available\n");
 #endif 
  } else {
     puts("Unknown configurator\n\n");





reply via email to

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