- add a new GUI preference in the gtk2 port. It allows to use
authorOlivier Abad <oabad@noos.fr>
Sat, 14 Sep 2002 10:07:40 +0000 (10:07 -0000)
committerOlivier Abad <oabad@noos.fr>
Sat, 14 Sep 2002 10:07:40 +0000 (10:07 -0000)
  alternating colors in all TreeView widgets (see
  gtk_tree_view_set_rules_hint()).

- remove unused preferences in the gtk2 port (tree_expander_style and
  tree_line_style).

svn path=/trunk/; revision=6296

14 files changed:
gtk2/STATUS
gtk2/column_prefs.c
gtk2/decode_as_dlg.c
gtk2/dfilter_expr_dlg.c
gtk2/filter_prefs.c
gtk2/gui_prefs.c
gtk2/plugins_dlg.c
gtk2/prefs_dlg.c
gtk2/proto_draw.c
gtk2/proto_hier_stats_dlg.c
gtk2/ui_util.c
gtk2/ui_util.h
prefs.c
prefs.h

index 2237a3aa73ff8c6938d2e9b393ac535049c7db38..6276dd489a646cc1857adaa248878dab25644167 100644 (file)
@@ -62,6 +62,7 @@ Remaining problems :
   settable in GTK+ 2.0's new tree view widget, as the GTK+ developers
   consider them per-user preferences rather than items that should be
   set by individual applications.
+  ==> Done
 
 - double click on item in protocol tree doesn't expand or collapse its
   subtree ;
index 5d36a0e456d73edabdba49b52c690dbd924c931c..76e164f79b0b3d5f241db8e3896dff09c18be3a9 100644 (file)
@@ -1,7 +1,7 @@
 /* column_prefs.c
  * Dialog box for column preferences
  *
- * $Id: column_prefs.c,v 1.3 2002/09/07 21:21:56 oabad Exp $
+ * $Id: column_prefs.c,v 1.4 2002/09/14 10:07:39 oabad Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@ethereal.com>
@@ -34,6 +34,8 @@
 #include "prefs.h"
 #include "column.h"
 
+#include "ui_util.h"
+
 static GtkWidget *column_l, *del_bt, *title_te, *fmt_m, *up_bt, *dn_bt;
 static gint       cur_fmt, cur_row;
 
@@ -120,8 +122,7 @@ column_prefs_show() {
   gtk_widget_show(column_sc);
 
   store = gtk_list_store_new(3, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_POINTER);
-  column_l = gtk_tree_view_new_with_model(GTK_TREE_MODEL(store));
-  gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(column_l), TRUE);
+  column_l = tree_view_new(GTK_TREE_MODEL(store));
   gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(column_l), TRUE);
   gtk_tree_view_set_headers_clickable(GTK_TREE_VIEW(column_l), FALSE);
   renderer = gtk_cell_renderer_text_new();
index 65236c3ac86b27696b24d7c7717269a4e79d5ce2..05a9f3db0b6b056b766dc561aee15d1617ffcada 100644 (file)
@@ -1,6 +1,6 @@
 /* decode_as_dlg.c
  *
- * $Id: decode_as_dlg.c,v 1.3 2002/09/07 18:35:16 oabad Exp $
+ * $Id: decode_as_dlg.c,v 1.4 2002/09/14 10:07:39 oabad Exp $
  *
  * Routines to modify dissector tables on the fly.
  *
@@ -419,8 +419,7 @@ decode_show_cb (GtkWidget * w _U_, gpointer data _U_)
        /* Initialize list */
         store = gtk_list_store_new(E_LIST_D_COLUMNS, G_TYPE_STRING,
                                    G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING);
-        list = GTK_TREE_VIEW(gtk_tree_view_new_with_model(GTK_TREE_MODEL(store)));
-        gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(list), TRUE);
+        list = GTK_TREE_VIEW(tree_view_new(GTK_TREE_MODEL(store)));
         gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(list), TRUE);
         gtk_tree_view_set_headers_clickable(GTK_TREE_VIEW(list), FALSE);
        gtk_tree_selection_set_mode(gtk_tree_view_get_selection(list),
@@ -991,7 +990,7 @@ decode_list_menu_start (GtkWidget *page, GtkTreeView **list_p,
 
     store = gtk_list_store_new(E_LIST_S_COLUMNS+1, G_TYPE_STRING,
                                G_TYPE_STRING, G_TYPE_POINTER);
-    list = GTK_TREE_VIEW(gtk_tree_view_new_with_model(GTK_TREE_MODEL(store)));
+    list = GTK_TREE_VIEW(tree_view_new(GTK_TREE_MODEL(store)));
     *list_p = list;
     gtk_tree_view_set_headers_clickable(list, FALSE);
 #ifndef DEBUG
index f856c9340b0be78f0a67935f704c4556c915bfb6..96283d9e056c738a3722e644172c5353098b80bd 100644 (file)
@@ -7,7 +7,7 @@
  * Copyright 2000, Jeffrey C. Foster <jfoste@woodward.com> and
  * Guy Harris <guy@alum.mit.edu>
  *
- * $Id: dfilter_expr_dlg.c,v 1.3 2002/09/10 20:54:14 oabad Exp $
+ * $Id: dfilter_expr_dlg.c,v 1.4 2002/09/14 10:07:39 oabad Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@ethereal.com>
@@ -978,7 +978,7 @@ dfilter_expr_dlg_new(GtkWidget *filter_te)
     gtk_widget_show(tree_scrolled_win);
 
     store = gtk_tree_store_new(2, G_TYPE_STRING, G_TYPE_POINTER);
-    tree = gtk_tree_view_new_with_model(GTK_TREE_MODEL(store));
+    tree = tree_view_new(GTK_TREE_MODEL(store));
     gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(tree), FALSE);
     selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(tree));
     gtk_tree_selection_set_mode(selection, GTK_SELECTION_BROWSE);
@@ -1002,7 +1002,7 @@ dfilter_expr_dlg_new(GtkWidget *filter_te)
     gtk_box_pack_start(GTK_BOX(col2_vb), relation_label, FALSE, FALSE, 0);
 
     l_store = gtk_list_store_new(1, G_TYPE_STRING);
-    relation_list = gtk_tree_view_new_with_model(GTK_TREE_MODEL(l_store));
+    relation_list = tree_view_new(GTK_TREE_MODEL(l_store));
     gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(relation_list), FALSE);
     g_object_unref(G_OBJECT(l_store));
     renderer = gtk_cell_renderer_text_new();
@@ -1061,7 +1061,7 @@ dfilter_expr_dlg_new(GtkWidget *filter_te)
     gtk_widget_show(value_list_scrolled_win);
 
     l_store = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_POINTER);
-    value_list = gtk_tree_view_new_with_model(GTK_TREE_MODEL(l_store));
+    value_list = tree_view_new(GTK_TREE_MODEL(l_store));
     gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(value_list), FALSE);
     g_object_unref(G_OBJECT(l_store));
     renderer = gtk_cell_renderer_text_new();
index 4df2d751e2875dc6e725a1fa959bb28897f94693..bd734be005928bca349a66dd488ebecc664c12c7 100644 (file)
@@ -3,7 +3,7 @@
  * (This used to be a notebook page under "Preferences", hence the
  * "prefs" in the file name.)
  *
- * $Id: filter_prefs.c,v 1.4 2002/09/10 20:49:07 oabad Exp $
+ * $Id: filter_prefs.c,v 1.5 2002/09/14 10:07:39 oabad Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@ethereal.com>
@@ -458,8 +458,7 @@ filter_dialog_new(GtkWidget *caller _U_, GtkWidget *parent_filter_te,
     gtk_widget_show(filter_sc);
 
     store = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_POINTER);
-    filter_l = gtk_tree_view_new_with_model(GTK_TREE_MODEL(store));
-    gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(filter_l), TRUE);
+    filter_l = tree_view_new(GTK_TREE_MODEL(store));
     gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(filter_l), FALSE);
     renderer = gtk_cell_renderer_text_new();
     column = gtk_tree_view_column_new_with_attributes("", renderer, "text",
index 41d41b59d4ffd34e3d2834555c507f7400fdfc52..90c0dc4c53b6b23c24180cc2c3d872dd90cfb428 100644 (file)
@@ -1,7 +1,7 @@
 /* gui_prefs.c
  * Dialog box for GUI preferences
  *
- * $Id: gui_prefs.c,v 1.2 2002/09/05 18:48:51 jmayer Exp $
+ * $Id: gui_prefs.c,v 1.3 2002/09/14 10:07:39 oabad Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@ethereal.com>
@@ -59,8 +59,7 @@ static void fetch_colors(void);
 #define SCROLLBAR_PLACEMENT_KEY                "scrollbar_placement"
 #define PLIST_SEL_BROWSE_KEY           "plist_sel_browse"
 #define PTREE_SEL_BROWSE_KEY           "ptree_sel_browse"
-#define PTREE_LINE_STYLE_KEY           "ptree_line_style"
-#define PTREE_EXPANDER_STYLE_KEY       "ptree_expander_style"
+#define ALTERN_COLORS_KEY               "altern_colors"
 #define HEX_DUMP_HIGHLIGHT_STYLE_KEY   "hex_dump_highlight_style"
 #define GEOMETRY_POSITION_KEY          "geometry_position"
 #define GEOMETRY_SIZE_KEY              "geometry_size"
@@ -84,20 +83,10 @@ static const enum_val_t selection_mode_vals[] = {
        { NULL,      0 }
 };
 
-static const enum_val_t line_style_vals[] = {
-       { "None",   0 },
-       { "Solid",  1 },
-       { "Dotted", 2 },
-       { "Tabbed", 3 },
-       { NULL,     0 }
-};
-
-static const enum_val_t expander_style_vals[] = {
-       { "None",     0 },
-       { "Square",   1 },
-       { "Triangle", 2 },
-       { "Circular", 3 },
-       { NULL,       0 }
+static const enum_val_t altern_colors_vals[] = {
+       { "No",  FALSE },
+       { "Yes",  TRUE },
+       { NULL,      0 }
 };
 
 static const enum_val_t highlight_style_vals[] = {
@@ -128,8 +117,8 @@ gui_prefs_show(void)
 {
        GtkWidget       *main_tb, *main_vb, *hbox, *font_bt, *color_bt;
        GtkWidget       *scrollbar_om, *plist_browse_om;
-       GtkWidget       *ptree_browse_om, *line_style_om;
-       GtkWidget       *expander_style_om, *highlight_style_om;
+       GtkWidget       *ptree_browse_om, *altern_colors_om;
+       GtkWidget       *highlight_style_om;
        GtkWidget       *save_position_cb, *save_size_cb;
 
        /* The colors or font haven't been changed yet. */
@@ -173,22 +162,15 @@ gui_prefs_show(void)
        gtk_object_set_data(GTK_OBJECT(main_vb), PTREE_SEL_BROWSE_KEY,
            ptree_browse_om);
 
-       /* Tree line style */
-       line_style_om = create_preference_option_menu(main_tb, 3,
-           "Tree line style:", NULL, line_style_vals,
-           prefs.gui_ptree_line_style);
-       gtk_object_set_data(GTK_OBJECT(main_vb), PTREE_LINE_STYLE_KEY,
-           line_style_om);
-
-       /* Tree expander style */
-       expander_style_om = create_preference_option_menu(main_tb, 4,
-           "Tree expander style:", NULL, expander_style_vals,
-           prefs.gui_ptree_expander_style);
-       gtk_object_set_data(GTK_OBJECT(main_vb), PTREE_EXPANDER_STYLE_KEY,
-           expander_style_om);
+       /* Alternating row colors in list and tree views */
+       altern_colors_om = create_preference_option_menu(main_tb, 3,
+           "Alternating row colors in lists and trees:", NULL,
+            altern_colors_vals, prefs.gui_altern_colors);
+       gtk_object_set_data(GTK_OBJECT(main_vb), ALTERN_COLORS_KEY,
+           altern_colors_om);
 
        /* Hex Dump highlight style */
-       highlight_style_om = create_preference_option_menu(main_tb, 5,
+       highlight_style_om = create_preference_option_menu(main_tb, 4,
            "Hex display highlight style:", NULL, highlight_style_vals,
            prefs.gui_hex_dump_highlight_style);
        gtk_object_set_data(GTK_OBJECT(main_vb), HEX_DUMP_HIGHLIGHT_STYLE_KEY,
@@ -196,12 +178,12 @@ gui_prefs_show(void)
 
        /* Geometry prefs */
        save_position_cb = create_preference_check_button(main_tb,
-           6, "Save window position:", NULL, prefs.gui_geometry_save_position);
+           5, "Save window position:", NULL, prefs.gui_geometry_save_position);
        gtk_object_set_data(GTK_OBJECT(main_vb), GEOMETRY_POSITION_KEY,
            save_position_cb);
 
        save_size_cb = create_preference_check_button(main_tb,
-           7, "Save window size:", NULL, prefs.gui_geometry_save_size);
+           6, "Save window size:", NULL, prefs.gui_geometry_save_size);
        gtk_object_set_data(GTK_OBJECT(main_vb), GEOMETRY_SIZE_KEY,
            save_size_cb);
 
@@ -390,12 +372,9 @@ gui_prefs_fetch(GtkWidget *w)
        prefs.gui_ptree_sel_browse = fetch_enum_value(
            gtk_object_get_data(GTK_OBJECT(w), PTREE_SEL_BROWSE_KEY),
            selection_mode_vals);
-       prefs.gui_ptree_line_style = fetch_enum_value(
-           gtk_object_get_data(GTK_OBJECT(w), PTREE_LINE_STYLE_KEY),
-           line_style_vals);
-       prefs.gui_ptree_expander_style = fetch_enum_value(
-           gtk_object_get_data(GTK_OBJECT(w), PTREE_EXPANDER_STYLE_KEY),
-           expander_style_vals);
+       prefs.gui_altern_colors = fetch_enum_value(
+           gtk_object_get_data(GTK_OBJECT(w), ALTERN_COLORS_KEY),
+           altern_colors_vals);
        prefs.gui_hex_dump_highlight_style = fetch_enum_value(
            gtk_object_get_data(GTK_OBJECT(w), HEX_DUMP_HIGHLIGHT_STYLE_KEY),
            highlight_style_vals);
@@ -451,6 +430,7 @@ gui_prefs_apply(GtkWidget *w _U_)
        set_scrollbar_placement_all();
        set_plist_sel_browse(prefs.gui_plist_sel_browse);
        set_ptree_sel_browse_all(prefs.gui_ptree_sel_browse);
+        set_tree_view_styles_all();
        if (colors_changed)
                update_marked_frames();
 
index a6148efbfbe658ce4fa9f108f0488ed524dbf8a5..414c16a4784dd70da2b9c3ac86c1e25c73b9ea37 100644 (file)
@@ -1,7 +1,7 @@
 /* plugins_dlg.c
  * Dialog boxes for plugins
  *
- * $Id: plugins_dlg.c,v 1.2 2002/09/05 18:48:51 jmayer Exp $
+ * $Id: plugins_dlg.c,v 1.3 2002/09/14 10:07:39 oabad Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@ethereal.com>
@@ -30,6 +30,7 @@
 
 #include <epan/plugins.h>
 #include "dlg_utils.h"
+#include "ui_util.h"
 
 #ifdef HAVE_PLUGINS
 
@@ -55,7 +56,6 @@ tools_plugins_cmd_cb(GtkWidget *widget _U_, gpointer data _U_)
     GtkWidget    *frame_vbnbox;
     GtkWidget    *main_hbnbox;
     GtkWidget    *close_bn;
-    gchar        *titles[] = {"Name", "Version"};
     GtkListStore *store;
     GtkCellRenderer *renderer;
     GtkTreeViewColumn *column;
@@ -85,8 +85,7 @@ tools_plugins_cmd_cb(GtkWidget *widget _U_, gpointer data _U_)
 
     store = gtk_list_store_new(NUM_COLUMNS, G_TYPE_STRING, G_TYPE_STRING);
     plugins_scan(store);
-    plugins_list = gtk_tree_view_new_with_model(GTK_TREE_MODEL(store));
-    gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(plugins_list), TRUE);
+    plugins_list = tree_view_new(GTK_TREE_MODEL(store));
     gtk_tree_view_set_search_column(GTK_TREE_VIEW(plugins_list), 0);
     g_object_unref(G_OBJECT(store));
     gtk_container_add(GTK_CONTAINER(scrolledwindow), plugins_list);
index c039bb1cdef5c9556800db96d9efa69f204c9d1b..6a5bffa184f1a0b4639c2c7368398323467980ee 100644 (file)
@@ -1,7 +1,7 @@
 /* prefs_dlg.c
  * Routines for handling preferences
  *
- * $Id: prefs_dlg.c,v 1.3 2002/09/10 19:39:00 oabad Exp $
+ * $Id: prefs_dlg.c,v 1.4 2002/09/14 10:07:39 oabad Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@ethereal.com>
@@ -292,7 +292,7 @@ prefs_cb(GtkWidget *w _U_, gpointer dummy _U_)
   gtk_widget_show(ct_sb);
 
   store = gtk_tree_store_new(2, G_TYPE_STRING, G_TYPE_INT);
-  cts.treeview = gtk_tree_view_new_with_model(GTK_TREE_MODEL(store));
+  cts.treeview = tree_view_new(GTK_TREE_MODEL(store));
   gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(cts.treeview), FALSE);
   selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(cts.treeview));
   gtk_tree_selection_set_mode(selection, GTK_SELECTION_SINGLE);
index df615630a3751d754711fd9ce17ed57bd9fc7d7a..e22e219d16916b86346d11b3dd90f8e99d50ac48 100644 (file)
@@ -1,7 +1,7 @@
 /* proto_draw.c
  * Routines for GTK+ packet display
  *
- * $Id: proto_draw.c,v 1.2 2002/09/05 18:48:52 jmayer Exp $
+ * $Id: proto_draw.c,v 1.3 2002/09/14 10:07:39 oabad Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@ethereal.com>
@@ -899,7 +899,7 @@ create_tree_view(gint tv_size, e_prefs *prefs, GtkWidget *pane,
   gtk_widget_show(tv_scrollw);
 
   store = gtk_tree_store_new(2, G_TYPE_STRING, G_TYPE_POINTER);
-  tree_view = gtk_tree_view_new_with_model(GTK_TREE_MODEL(store));
+  tree_view = tree_view_new(GTK_TREE_MODEL(store));
   g_object_unref(G_OBJECT(store));
   gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(tree_view), FALSE);
   renderer = gtk_cell_renderer_text_new();
index fae58baf4ac1f1bf2da6c6089d23d06c06f8227c..c323a7065b30d0ca7c697eae26617cb4e905cc07 100644 (file)
@@ -1,6 +1,6 @@
 /* proto_hier_stats_dlg.c
  *
- * $Id: proto_hier_stats_dlg.c,v 1.1 2002/08/31 09:55:22 oabad Exp $
+ * $Id: proto_hier_stats_dlg.c,v 1.2 2002/09/14 10:07:40 oabad Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@ethereal.com>
@@ -138,9 +138,8 @@ create_tree(GtkWidget *container, ph_stats_t *ps)
     store = gtk_tree_store_new(NUM_STAT_COLUMNS, G_TYPE_STRING,
                                G_TYPE_STRING, G_TYPE_UINT, G_TYPE_UINT,
                                G_TYPE_UINT, G_TYPE_UINT);
-    tree = gtk_tree_view_new_with_model(GTK_TREE_MODEL(store));
+    tree = tree_view_new(GTK_TREE_MODEL(store));
     tree_view = GTK_TREE_VIEW(tree);
-    gtk_tree_view_set_rules_hint(tree_view, TRUE);
     gtk_tree_view_set_headers_visible(tree_view, TRUE);
     gtk_tree_view_set_headers_clickable(tree_view, FALSE);
     renderer = gtk_cell_renderer_text_new();
index 64f67e4ca886b87fb7fa7002d253b8c8fe7c72ce..8dc77b7ae30c6a506b599a12b60d861d29280dc9 100644 (file)
@@ -1,7 +1,7 @@
 /* ui_util.c
  * UI utility routines
  *
- * $Id: ui_util.c,v 1.2 2002/09/05 18:48:52 jmayer Exp $
+ * $Id: ui_util.c,v 1.3 2002/09/14 10:07:40 oabad Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@ethereal.com>
@@ -201,3 +201,66 @@ set_scrollbar_placement_all(void)
 {
   g_list_foreach(scrolled_windows, set_scrollbar_placement_cb, NULL);
 }
+
+/* List of all GtkTreeViews, so we can globally set the alternating
+ * colors style of all of them. */
+static GList *tree_views;
+
+static void setup_tree_view(GtkWidget *tree_view);
+static void forget_tree_view(GtkWidget *tree_view, gpointer data);
+static void set_tree_view_styles(GtkWidget *tree_view);
+
+/* Create a GtkTreeView, give it the right styles, and remember it. */
+GtkWidget *
+tree_view_new(GtkTreeModel *model)
+{
+  GtkWidget *tree;
+
+  tree = gtk_tree_view_new_with_model(model);
+  setup_tree_view(tree);
+  return tree;
+}
+
+/* Set a GtkTreeView's styles and add it to the list of GtkTreeViews */
+static void
+setup_tree_view(GtkWidget *tree_view)
+{
+  set_tree_view_styles(tree_view);
+
+  tree_views = g_list_append(tree_views, tree_view);
+
+  /* Catch the "destroy" event on the widget, so that we remove it from
+     the list when it's destroyed. */
+  g_signal_connect(G_OBJECT(tree_view), "destroy",
+                   G_CALLBACK(forget_tree_view), NULL);
+}
+
+/* Remove a GtkTreeView from the list of GtkTreeViews. */
+static void
+forget_tree_view(GtkWidget *tree_view, gpointer data _U_)
+{
+  tree_views = g_list_remove(tree_views, tree_view);
+}
+
+/* Set the styles of a GtkCTree based upon user preferences. */
+static void
+set_tree_view_styles(GtkWidget *tree_view)
+{
+  g_assert(prefs.gui_altern_colors >= 0 &&
+           prefs.gui_altern_colors <= 1);
+  gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(tree_view),
+                               prefs.gui_altern_colors);
+}
+
+static void
+set_tree_view_styles_cb(gpointer data, gpointer user_data _U_)
+{
+  set_tree_view_styles((GtkWidget *)data);
+}
+
+/* Set the styles of all GtkTreeViews based upon style values. */
+void
+set_tree_view_styles_all(void)
+{
+  g_list_foreach(tree_views, set_tree_view_styles_cb, NULL);
+}
index 79ae71b120a70814516f4d59a86fd6e9ded3209f..977e7a42f159db9835e9f163e7a69551be4a3fac 100644 (file)
@@ -1,7 +1,7 @@
 /* ui_util.h
  * Definitions for UI utility routines
  *
- * $Id: ui_util.h,v 1.1 2002/08/31 09:55:22 oabad Exp $
+ * $Id: ui_util.h,v 1.2 2002/09/14 10:07:40 oabad Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@ethereal.com>
@@ -44,12 +44,10 @@ GtkWidget *scrolled_window_new(GtkAdjustment *hadjustment,
    preference. */
 void set_scrollbar_placement_all(void);
 
-/* Create a GtkCTree, give it the right styles, and remember it. */
-GtkWidget *ctree_new(gint columns, gint tree_column);
-GtkWidget *ctree_new_with_titles(gint columns, gint tree_column,
-                                gchar *titles[]);
+/* Create a GtkTreeView, give it the right styles, and remember it. */
+GtkWidget *tree_view_new(GtkTreeModel *model);
 
-/* Set the styles of all GtkCTrees based upon user preferences. */
-void set_ctree_styles_all(void);
+/* Set the styles of all GtkTreeViews based upon user preferences. */
+void set_tree_view_styles_all(void);
 
 #endif /* __GTKGUIUI_UTIL_H__ */
diff --git a/prefs.c b/prefs.c
index 85ba28f0d1e5d1df01bd200168e13db959a5f0ce..e7d1e747a3352f16ad4d6a3e49828ac957ed9de6 100644 (file)
--- a/prefs.c
+++ b/prefs.c
@@ -1,7 +1,7 @@
 /* prefs.c
  * Routines for handling preferences
  *
- * $Id: prefs.c,v 1.89 2002/08/28 21:00:40 jmayer Exp $
+ * $Id: prefs.c,v 1.90 2002/09/14 10:07:37 oabad Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@ethereal.com>
@@ -763,6 +763,7 @@ read_prefs(int *gpf_errno_return, char **gpf_path_return,
     prefs.gui_scrollbar_on_right = TRUE;
     prefs.gui_plist_sel_browse = FALSE;
     prefs.gui_ptree_sel_browse = FALSE;
+    prefs.gui_altern_colors = FALSE;
     prefs.gui_ptree_line_style = 0;
     prefs.gui_ptree_expander_style = 1;
     prefs.gui_hex_dump_highlight_style = 1;
@@ -1083,6 +1084,7 @@ prefs_set_pref(char *prefarg)
 #define PRS_GUI_SCROLLBAR_ON_RIGHT "gui.scrollbar_on_right"
 #define PRS_GUI_PLIST_SEL_BROWSE "gui.packet_list_sel_browse"
 #define PRS_GUI_PTREE_SEL_BROWSE "gui.protocol_tree_sel_browse"
+#define PRS_GUI_ALTERN_COLORS "gui.tree_view_altern_colors"
 #define PRS_GUI_PTREE_LINE_STYLE "gui.protocol_tree_line_style"
 #define PRS_GUI_PTREE_EXPANDER_STYLE "gui.protocol_tree_expander_style"
 #define PRS_GUI_HEX_DUMP_HIGHLIGHT_STYLE "gui.hex_dump_highlight_style"
@@ -1308,6 +1310,13 @@ set_pref(gchar *pref_name, gchar *value)
     else {
            prefs.gui_ptree_sel_browse = FALSE;
     }
+  } else if (strcmp(pref_name, PRS_GUI_ALTERN_COLORS) == 0) {
+    if (strcasecmp(value, "true") == 0) {
+            prefs.gui_altern_colors = TRUE;
+    }
+    else {
+            prefs.gui_altern_colors = FALSE;
+    }
   } else if (strcmp(pref_name, PRS_GUI_PTREE_LINE_STYLE) == 0) {
          prefs.gui_ptree_line_style =
                  find_index_from_string_array(value, gui_ptree_line_style_text, 0);
@@ -1748,9 +1757,13 @@ write_prefs(char **pf_path_return)
   fprintf(pf, PRS_GUI_PTREE_SEL_BROWSE ": %s\n",
                  prefs.gui_ptree_sel_browse == TRUE ? "TRUE" : "FALSE");
 
+  fprintf(pf, "\n# Alternating colors in TreeViews\n");
+  fprintf(pf, PRS_GUI_ALTERN_COLORS ": %s\n",
+                 prefs.gui_altern_colors == TRUE ? "TRUE" : "FALSE");
+
   fprintf(pf, "\n# Protocol-tree line style. One of: NONE, SOLID, DOTTED, TABBED\n");
   fprintf(pf, PRS_GUI_PTREE_LINE_STYLE ": %s\n",
-                 gui_ptree_line_style_text[prefs.gui_ptree_line_style]);
+          gui_ptree_line_style_text[prefs.gui_ptree_line_style]);
 
   fprintf(pf, "\n# Protocol-tree expander style. One of: NONE, SQUARE, TRIANGLE, CIRCULAR\n");
   fprintf(pf, PRS_GUI_PTREE_EXPANDER_STYLE ": %s\n",
@@ -1850,6 +1863,7 @@ copy_prefs(e_prefs *dest, e_prefs *src)
   dest->gui_scrollbar_on_right = src->gui_scrollbar_on_right;
   dest->gui_plist_sel_browse = src->gui_plist_sel_browse;
   dest->gui_ptree_sel_browse = src->gui_ptree_sel_browse;
+  dest->gui_altern_colors = src->gui_altern_colors;
   dest->gui_ptree_line_style = src->gui_ptree_line_style;
   dest->gui_ptree_expander_style = src->gui_ptree_expander_style;
   dest->gui_hex_dump_highlight_style = src->gui_hex_dump_highlight_style;
diff --git a/prefs.h b/prefs.h
index 7a36b086ad5b1a5aea766978844374afb337ad27..297797ee6e938d6a221e1193df74b6ded04ec19b 100644 (file)
--- a/prefs.h
+++ b/prefs.h
@@ -1,7 +1,7 @@
 /* prefs.h
  * Definitions for preference handling routines
  *
- * $Id: prefs.h,v 1.40 2002/08/28 21:00:40 jmayer Exp $
+ * $Id: prefs.h,v 1.41 2002/09/14 10:07:37 oabad Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@ethereal.com>
@@ -55,6 +55,7 @@ typedef struct _e_prefs {
   gboolean gui_scrollbar_on_right;
   gboolean gui_plist_sel_browse;
   gboolean gui_ptree_sel_browse;
+  gboolean gui_altern_colors;
   gint     gui_ptree_line_style;
   gint     gui_ptree_expander_style;
   gboolean gui_hex_dump_highlight_style;