aboutsummaryrefslogtreecommitdiffstats
path: root/ui/gtk/prefs_layout.c
diff options
context:
space:
mode:
Diffstat (limited to 'ui/gtk/prefs_layout.c')
-rw-r--r--ui/gtk/prefs_layout.c531
1 files changed, 0 insertions, 531 deletions
diff --git a/ui/gtk/prefs_layout.c b/ui/gtk/prefs_layout.c
deleted file mode 100644
index 1c4bb7aa1c..0000000000
--- a/ui/gtk/prefs_layout.c
+++ /dev/null
@@ -1,531 +0,0 @@
-/* layout_prefs.c
- * Dialog box for layout preferences
- *
- * Wireshark - Network traffic analyzer
- * By Gerald Combs <gerald@wireshark.org>
- * Copyright 1998 Gerald Combs
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- */
-
-#include "config.h"
-
-#include <gtk/gtk.h>
-
-#include <epan/prefs.h>
-
-#include "cfile.h"
-
-
-#include "ui/gtk/prefs_layout.h"
-#include "ui/gtk/prefs_dlg.h"
-#include "ui/gtk/main_titlebar.h"
-#include "ui/gtk/gui_utils.h"
-#include "ui/gtk/main.h"
-#ifndef HAVE_GDK_GRESOURCE
-#include "ui/gtk/pixbuf-csource.h"
-#endif
-
-#define LAYOUT_QTY (layout_type_max - 1)
-
-
-static void layout_validate_cb(GtkWidget *rb, gpointer data);
-static gint fetch_enum_value(gpointer control, const enum_val_t *enumvals);
-
-
-typedef struct {
- layout_type_e type;
- layout_pane_content_e content[3];
-} layout_t;
-
-
-#define LAYOUT_TYPE_BUTTONS_KEY "layout_type_buttons"
-
-#define LAYOUT_NONE_RB_KEY "layout_none_radio_button"
-#define LAYOUT_PLIST_RB_KEY "layout_plist_radio_button"
-#define LAYOUT_PDETAILS_RB_KEY "layout_pdetails_radio_button"
-#define LAYOUT_PBYTES_RB_KEY "layout_pbytes_radio_button"
-
-#define LAYOUT_CONTENT1_VB_KEY "layout_content1_vbox"
-#define LAYOUT_CONTENT2_VB_KEY "layout_content2_vbox"
-#define LAYOUT_CONTENT3_VB_KEY "layout_content3_vbox"
-
-#define LAYOUT_PANE_KEY "layout_pane"
-
-
-static GtkWidget *layout_content_radio_vbox(GtkWidget *main_vb, int i, layout_pane_content_e content) {
- GtkWidget *radio_vb, *radio_lb;
- GtkWidget *radio_none_rb, *radio_plist_rb, *radio_pdetails_rb, *radio_pbytes_rb;
- char buf[64];
-
-
- /* radio vbox */
- radio_vb = ws_gtk_box_new(GTK_ORIENTATION_VERTICAL, 0, FALSE);
- gtk_container_set_border_width(GTK_CONTAINER(radio_vb), 6);
-
- g_snprintf (buf, sizeof(buf), "Pane %d:", i);
- radio_lb = gtk_label_new(buf);
- gtk_misc_set_alignment(GTK_MISC(radio_lb), 0.0f, 0.5f);
- gtk_container_add(GTK_CONTAINER(radio_vb), radio_lb);
-
- radio_plist_rb = gtk_radio_button_new_with_mnemonic_from_widget(NULL, "Packet List");
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(radio_plist_rb), content == layout_pane_content_plist);
- gtk_widget_set_tooltip_text (radio_plist_rb, "Put the packet list in this pane.");
- gtk_container_add(GTK_CONTAINER(radio_vb), radio_plist_rb);
-
- radio_pdetails_rb = gtk_radio_button_new_with_mnemonic_from_widget(GTK_RADIO_BUTTON(radio_plist_rb), "Packet Details");
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(radio_pdetails_rb), content == layout_pane_content_pdetails);
- gtk_widget_set_tooltip_text (radio_pdetails_rb, "Put the packet details tree in this pane.");
- gtk_container_add(GTK_CONTAINER(radio_vb), radio_pdetails_rb);
-
- radio_pbytes_rb = gtk_radio_button_new_with_mnemonic_from_widget(GTK_RADIO_BUTTON(radio_plist_rb), "Packet Bytes");
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(radio_pbytes_rb), content == layout_pane_content_pbytes);
- gtk_widget_set_tooltip_text (radio_pbytes_rb, "Put the packet bytes dump in this pane.");
- gtk_container_add(GTK_CONTAINER(radio_vb), radio_pbytes_rb);
-
- radio_none_rb = gtk_radio_button_new_with_mnemonic_from_widget(GTK_RADIO_BUTTON(radio_plist_rb), "None");
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(radio_none_rb), content == layout_pane_content_none);
- gtk_widget_set_tooltip_text (radio_none_rb, "Put nothing in this pane.");
- gtk_container_add(GTK_CONTAINER(radio_vb), radio_none_rb);
-
- g_object_set_data(G_OBJECT(radio_vb), LAYOUT_PLIST_RB_KEY, radio_plist_rb);
- g_object_set_data(G_OBJECT(radio_vb), LAYOUT_PDETAILS_RB_KEY, radio_pdetails_rb);
- g_object_set_data(G_OBJECT(radio_vb), LAYOUT_PBYTES_RB_KEY, radio_pbytes_rb);
- g_object_set_data(G_OBJECT(radio_vb), LAYOUT_NONE_RB_KEY, radio_none_rb);
-
- g_object_set_data(G_OBJECT(radio_plist_rb), LAYOUT_PANE_KEY, GINT_TO_POINTER(i));
- g_object_set_data(G_OBJECT(radio_pdetails_rb), LAYOUT_PANE_KEY, GINT_TO_POINTER(i));
- g_object_set_data(G_OBJECT(radio_pbytes_rb), LAYOUT_PANE_KEY, GINT_TO_POINTER(i));
- g_object_set_data(G_OBJECT(radio_none_rb), LAYOUT_PANE_KEY, GINT_TO_POINTER(-1));
-
- g_signal_connect(radio_plist_rb, "toggled", G_CALLBACK(layout_validate_cb), main_vb);
- g_signal_connect(radio_pdetails_rb, "toggled", G_CALLBACK(layout_validate_cb), main_vb);
- g_signal_connect(radio_pbytes_rb, "toggled", G_CALLBACK(layout_validate_cb), main_vb);
- g_signal_connect(radio_none_rb, "toggled", G_CALLBACK(layout_validate_cb), main_vb);
-
- return radio_vb;
-}
-
-static void
-layout_type_changed_cb (GtkToggleButton * togglebutton, gpointer user_data)
-{
- GtkWidget ** layout_type_buttons = (GtkWidget**) user_data;
- static gboolean dampen_feedback_loop = FALSE;
-
- if (!dampen_feedback_loop) {
- int i;
- dampen_feedback_loop = TRUE;
- for (i=0; i<LAYOUT_QTY; ++i) {
- GtkToggleButton * tb = GTK_TOGGLE_BUTTON(layout_type_buttons[i]);
- gboolean active = togglebutton==tb;
- if (gtk_toggle_button_get_active(tb) != active)
- gtk_toggle_button_set_active (tb, active);
- }
- dampen_feedback_loop = FALSE;
- }
-}
-
-
-static layout_pane_content_e layout_pane_get_content(GtkWidget * radio_vb) {
-
- if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(g_object_get_data(G_OBJECT(radio_vb), LAYOUT_NONE_RB_KEY))))
- return layout_pane_content_none;
- if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(g_object_get_data(G_OBJECT(radio_vb), LAYOUT_PLIST_RB_KEY))))
- return layout_pane_content_plist;
- if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(g_object_get_data(G_OBJECT(radio_vb), LAYOUT_PDETAILS_RB_KEY))))
- return layout_pane_content_pdetails;
- if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(g_object_get_data(G_OBJECT(radio_vb), LAYOUT_PBYTES_RB_KEY))))
- return layout_pane_content_pbytes;
-
- g_assert_not_reached();
- return (layout_pane_content_e)-1;
-}
-
-static void layout_pane_set_content(GtkWidget * radio_vb, layout_pane_content_e pane_content) {
-
-
- switch(pane_content) {
- case(layout_pane_content_none):
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g_object_get_data(G_OBJECT(radio_vb), LAYOUT_NONE_RB_KEY)), TRUE);
- break;
- case(layout_pane_content_plist):
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g_object_get_data(G_OBJECT(radio_vb), LAYOUT_PLIST_RB_KEY)), TRUE);
- break;
- case(layout_pane_content_pdetails):
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g_object_get_data(G_OBJECT(radio_vb), LAYOUT_PDETAILS_RB_KEY)), TRUE);
- break;
- case(layout_pane_content_pbytes):
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g_object_get_data(G_OBJECT(radio_vb), LAYOUT_PBYTES_RB_KEY)), TRUE);
- break;
- default:
- g_assert_not_reached();
- }
-}
-
-
-
-static void layout_set(GtkWidget * main_vb, layout_t *layout) {
- GtkWidget *radio_vb;
- GtkWidget ** layout_type_buttons = (GtkWidget **)g_object_get_data(G_OBJECT(main_vb), LAYOUT_TYPE_BUTTONS_KEY);
-
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(layout_type_buttons[layout->type - 1]), TRUE);
-
- radio_vb = (GtkWidget *)g_object_get_data(G_OBJECT(main_vb), LAYOUT_CONTENT1_VB_KEY);
- layout_pane_set_content(radio_vb, layout->content[0]);
- radio_vb = (GtkWidget *)g_object_get_data(G_OBJECT(main_vb), LAYOUT_CONTENT2_VB_KEY);
- layout_pane_set_content(radio_vb, layout->content[1]);
- radio_vb = (GtkWidget *)g_object_get_data(G_OBJECT(main_vb), LAYOUT_CONTENT3_VB_KEY);
- layout_pane_set_content(radio_vb, layout->content[2]);
-}
-
-static void layout_get(GtkWidget * main_vb, layout_t *layout_out) {
- GtkWidget *radio_vb;
- GtkWidget ** layout_type_buttons = (GtkWidget **)g_object_get_data(G_OBJECT(main_vb), LAYOUT_TYPE_BUTTONS_KEY);
- int i;
-
- for (i=0; i<LAYOUT_QTY; ++i) {
- if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(layout_type_buttons[i]))) {
- layout_out->type = (layout_type_e)(i + 1);
- break;
- }
- }
-
- radio_vb = (GtkWidget *)g_object_get_data(G_OBJECT(main_vb), LAYOUT_CONTENT1_VB_KEY);
- layout_out->content[0] = layout_pane_get_content(radio_vb);
- radio_vb = (GtkWidget *)g_object_get_data(G_OBJECT(main_vb), LAYOUT_CONTENT2_VB_KEY);
- layout_out->content[1] = layout_pane_get_content(radio_vb);
- radio_vb = (GtkWidget *)g_object_get_data(G_OBJECT(main_vb), LAYOUT_CONTENT3_VB_KEY);
- layout_out->content[2] = layout_pane_get_content(radio_vb);
-}
-
-static void layout_validate(layout_t *layout, int pane) {
-
- switch (pane) {
- case 1:
- if(layout->content[1] == layout->content[0]) {
- layout->content[1] = layout_pane_content_none;
- }
- if(layout->content[2] == layout->content[0]) {
- layout->content[2] = layout_pane_content_none;
- }
- break;
- case 2:
- if(layout->content[0] == layout->content[1]) {
- layout->content[0] = layout_pane_content_none;
- }
- if(layout->content[2] == layout->content[1]) {
- layout->content[2] = layout_pane_content_none;
- }
- break;
- case 3:
- if(layout->content[0] == layout->content[2]) {
- layout->content[0] = layout_pane_content_none;
- }
- if(layout->content[1] == layout->content[2]) {
- layout->content[1] = layout_pane_content_none;
- }
- break;
- default:
- /* If the user selects "None" we're not going to intervene. */
- break;
- }
-
-}
-
-
-static void layout_validate_cb(GtkWidget *rb, gpointer data) {
- int pane = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(rb), LAYOUT_PANE_KEY));
- layout_t layout;
-
- layout_get((GtkWidget *)data, &layout);
- layout_validate(&layout, pane);
- layout_set((GtkWidget *)data, &layout);
-}
-
-static void
-layout_defaults_cb (GtkWidget * w _U_, gpointer data)
-{
- layout_t default_layout = {
- layout_type_5,
- {
- layout_pane_content_plist,
- layout_pane_content_pdetails,
- layout_pane_content_pbytes
- }
- };
-
- layout_set((GtkWidget *)data, &default_layout);
-}
-
-#define ALTERN_COLORS_KEY "altern_colors"
-#define HEX_DUMP_HIGHLIGHT_STYLE_KEY "hex_dump_highlight_style"
-#define FILTER_TOOLBAR_PLACEMENT_KEY "filter_toolbar_show_in_statusbar"
-#define GUI_TOOLBAR_STYLE_KEY "toolbar_style"
-#define GUI_FILTER_TOOLBAR_STYLE_KEY "filter_toolbar_style"
-#define GUI_WINDOW_TITLE_KEY "window_title"
-
-static const enum_val_t altern_colors_vals[] = {
- { "FALSE", "No", FALSE },
- { "TRUE", "Yes", TRUE },
- { NULL, NULL, 0 }
-};
-static const enum_val_t highlight_style_vals[] = {
- { "FALSE", "Bold", FALSE },
- { "TRUE", "Inverse", TRUE },
- { NULL, NULL, 0 }
-};
-static const enum_val_t filter_toolbar_placement_vals[] = {
- { "FALSE", "Below the main toolbar", FALSE },
- { "TRUE", "Insert into statusbar", TRUE },
- { NULL, NULL, 0 }
-};
-static const enum_val_t toolbar_style_vals[] = {
- { "ICONS", "Icons only", TB_STYLE_ICONS },
- { "TEXT", "Text only", TB_STYLE_TEXT },
- { "BOTH", "Icons & Text", TB_STYLE_BOTH },
- { NULL, NULL, 0 }
-};
-
-GtkWidget*
-layout_prefs_show(void)
-{
- GtkWidget *main_vb, *button_hb, *type_tb;
- GtkWidget *pane_fr, *pane_vb;
- GtkWidget *radio_hb, *radio_vb;
- GtkWidget *default_vb, *default_bt;
- GtkWidget *main_grid, *hbox;
- GtkWidget *altern_colors_om;
- GtkWidget *highlight_style_om;
- GtkWidget *toolbar_style_om;
- GtkWidget *filter_toolbar_style_om;
- GtkWidget *filter_toolbar_placement_om;
- GtkWidget *window_title_te;
- GdkPixbuf *pixbuf[6];
-
- GtkWidget ** layout_type_buttons = (GtkWidget **)g_malloc (sizeof(GtkWidget*) * LAYOUT_QTY);
- GtkWidget *layout_pixbufs[LAYOUT_QTY];
-
- int pos = 0;
- int i;
-
-
- /* main vertical box */
- main_vb = ws_gtk_box_new(GTK_ORIENTATION_VERTICAL, 7, FALSE);
- gtk_container_set_border_width(GTK_CONTAINER(main_vb), 5);
-
- /* pane frame */
- pane_fr = gtk_frame_new("Panes");
- gtk_box_pack_start(GTK_BOX(main_vb), pane_fr, FALSE, FALSE, 0);
- gtk_widget_show(pane_fr);
-
- /* pane vertical box */
- pane_vb = ws_gtk_box_new(GTK_ORIENTATION_VERTICAL, 7, FALSE);
- gtk_container_set_border_width(GTK_CONTAINER(pane_vb), 5);
- gtk_container_add(GTK_CONTAINER(pane_fr), pane_vb);
- gtk_widget_show(pane_vb);
-
- /* button hbox */
- button_hb = ws_gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0, FALSE);
- gtk_container_set_border_width(GTK_CONTAINER(button_hb), 6);
- gtk_box_pack_start (GTK_BOX(pane_vb), button_hb, FALSE, FALSE, 0);
-
- /* pane layout */
-#ifdef HAVE_GDK_GRESOURCE
- pixbuf[0] = ws_gdk_pixbuf_new_from_resource("/org/wireshark/image/layout_5.png");
- pixbuf[1] = ws_gdk_pixbuf_new_from_resource("/org/wireshark/image/layout_2.png");
- pixbuf[2] = ws_gdk_pixbuf_new_from_resource("/org/wireshark/image/layout_1.png");
- pixbuf[3] = ws_gdk_pixbuf_new_from_resource("/org/wireshark/image/layout_4.png");
- pixbuf[4] = ws_gdk_pixbuf_new_from_resource("/org/wireshark/image/layout_3.png");
- pixbuf[5] = ws_gdk_pixbuf_new_from_resource("/org/wireshark/image/layout_6.png");
-#else
- pixbuf[0] = gdk_pixbuf_new_from_inline(-1, layout_5_pb_data, FALSE, NULL);
- pixbuf[1] = gdk_pixbuf_new_from_inline(-1, layout_2_pb_data, FALSE, NULL);
- pixbuf[2] = gdk_pixbuf_new_from_inline(-1, layout_1_pb_data, FALSE, NULL);
- pixbuf[3] = gdk_pixbuf_new_from_inline(-1, layout_4_pb_data, FALSE, NULL);
- pixbuf[4] = gdk_pixbuf_new_from_inline(-1, layout_3_pb_data, FALSE, NULL);
- pixbuf[5] = gdk_pixbuf_new_from_inline(-1, layout_6_pb_data, FALSE, NULL);
-#endif
-
- layout_pixbufs[0] = gtk_image_new_from_pixbuf(pixbuf[0]);
- layout_pixbufs[1] = gtk_image_new_from_pixbuf(pixbuf[1]);
- layout_pixbufs[2] = gtk_image_new_from_pixbuf(pixbuf[2]);
- layout_pixbufs[3] = gtk_image_new_from_pixbuf(pixbuf[3]);
- layout_pixbufs[4] = gtk_image_new_from_pixbuf(pixbuf[4]);
- layout_pixbufs[5] = gtk_image_new_from_pixbuf(pixbuf[5]);
-
- for (i=0; i<LAYOUT_QTY; ++i)
- {
- type_tb = gtk_toggle_button_new ();
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(type_tb),
- (layout_type_e)(i + 1) == prefs.gui_layout_type);
-
- gtk_container_add (GTK_CONTAINER(type_tb), layout_pixbufs[i]);
-
- g_signal_connect(type_tb, "toggled", G_CALLBACK(layout_type_changed_cb), layout_type_buttons);
- layout_type_buttons[i] = type_tb;
- gtk_box_pack_start (GTK_BOX(button_hb), type_tb, TRUE, FALSE, 0);
- }
-
- g_object_set_data(G_OBJECT(main_vb), LAYOUT_TYPE_BUTTONS_KEY, layout_type_buttons);
-
- /* radio hbox */
- radio_hb = ws_gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0, FALSE);
- gtk_container_set_border_width(GTK_CONTAINER(radio_hb), 6);
- gtk_box_pack_start (GTK_BOX(pane_vb), radio_hb, FALSE, FALSE, 0);
-
- radio_vb = layout_content_radio_vbox(main_vb, 1, prefs.gui_layout_content_1);
- gtk_container_set_border_width(GTK_CONTAINER(radio_vb), 6);
- gtk_box_pack_start (GTK_BOX(radio_hb), radio_vb, FALSE, FALSE, 0);
- g_object_set_data(G_OBJECT(main_vb), LAYOUT_CONTENT1_VB_KEY, radio_vb);
-
- radio_vb = layout_content_radio_vbox(main_vb, 2, prefs.gui_layout_content_2);
- gtk_container_set_border_width(GTK_CONTAINER(radio_vb), 6);
- gtk_box_pack_start (GTK_BOX(radio_hb), radio_vb, FALSE, FALSE, 0);
- g_object_set_data(G_OBJECT(main_vb), LAYOUT_CONTENT2_VB_KEY, radio_vb);
-
- radio_vb = layout_content_radio_vbox(main_vb, 3, prefs.gui_layout_content_3);
- gtk_container_set_border_width(GTK_CONTAINER(radio_vb), 6);
- gtk_box_pack_start (GTK_BOX(radio_hb), radio_vb, FALSE, FALSE, 0);
- g_object_set_data(G_OBJECT(main_vb), LAYOUT_CONTENT3_VB_KEY, radio_vb);
-
- default_vb = ws_gtk_box_new(GTK_ORIENTATION_VERTICAL, 0, FALSE);
- default_bt = gtk_button_new_with_label("Default panes");
- gtk_widget_set_tooltip_text (default_bt, "Reset the pane layout settings to default values.");
- g_signal_connect(default_bt, "clicked", G_CALLBACK(layout_defaults_cb), main_vb);
- gtk_box_pack_end(GTK_BOX(default_vb), default_bt, FALSE, FALSE, 0);
- gtk_box_pack_end(GTK_BOX(radio_hb), default_vb, FALSE, FALSE, 0);
-
- /* Main horizontal box */
- /* XXX - Is there a better way to center the grid ? */
- hbox = ws_gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 7, FALSE);
- gtk_box_pack_start (GTK_BOX(main_vb), hbox, TRUE, FALSE, 0);
-
- /* Main grid */
- main_grid = ws_gtk_grid_new();
- gtk_box_pack_start( GTK_BOX(hbox), main_grid, FALSE, FALSE, 0 );
- ws_gtk_grid_set_row_spacing( GTK_GRID(main_grid), 10 );
- ws_gtk_grid_set_column_spacing( GTK_GRID(main_grid), 15 );
-
- /* Alternating row colors in list and tree views */
- altern_colors_om = create_preference_option_menu(main_grid, pos++,
- "Alternating row colors in lists and trees:",
- "Select whether or not the rows of lists and trees have alternating color.",
- altern_colors_vals, prefs.gui_altern_colors);
- g_object_set_data(G_OBJECT(main_vb), ALTERN_COLORS_KEY, altern_colors_om);
-
- /* Packet Bytes Dump highlight style */
- highlight_style_om = create_preference_option_menu(main_grid, pos++,
- "Packet bytes highlight style:",
- "Select the style in which the packet bytes dump will be displayed.",
- highlight_style_vals, prefs.gui_hex_dump_highlight_style);
- g_object_set_data(G_OBJECT(main_vb), HEX_DUMP_HIGHLIGHT_STYLE_KEY, highlight_style_om);
-
- /* Toolbar prefs */
- toolbar_style_om = create_preference_option_menu(main_grid, pos++,
- "Toolbar style:",
- "Select the style in which the toolbar will be displayed.",
- toolbar_style_vals, prefs.gui_toolbar_main_style);
- g_object_set_data(G_OBJECT(main_vb), GUI_TOOLBAR_STYLE_KEY, toolbar_style_om);
-
- /* Filter toolbar prefs */
- filter_toolbar_style_om = create_preference_option_menu(main_grid, pos++,
- "Filter toolbar style:",
- "Select the style in which the filter toolbar will be displayed.",
- toolbar_style_vals, prefs.gui_toolbar_filter_style);
- g_object_set_data(G_OBJECT(main_vb), GUI_FILTER_TOOLBAR_STYLE_KEY, filter_toolbar_style_om);
-
- /* Placement of Filter toolbar */
- filter_toolbar_placement_om = create_preference_option_menu(main_grid, pos++,
- "Filter toolbar placement:",
- "Select where the filter toolbar will be displayed.",
- filter_toolbar_placement_vals, prefs.filter_toolbar_show_in_statusbar);
- g_object_set_data(G_OBJECT(main_vb), FILTER_TOOLBAR_PLACEMENT_KEY, filter_toolbar_placement_om);
-
- /* Window title */
- window_title_te = create_preference_entry(main_grid, pos++,
- "Custom window title (appended to existing titles):",
- "Enter the text to be appended to the window title.",
- prefs.gui_window_title);
- gtk_entry_set_text(GTK_ENTRY(window_title_te), prefs.gui_window_title);
- g_object_set_data(G_OBJECT(main_vb), GUI_WINDOW_TITLE_KEY, window_title_te);
-
- /* Show 'em what we got */
- gtk_widget_show_all(main_vb);
-
- return(main_vb);
-}
-
-static gint
-fetch_enum_value(gpointer control, const enum_val_t *enumvals)
-{
- return fetch_preference_option_menu_val(GTK_WIDGET(control), enumvals);
-}
-
-void
-layout_prefs_fetch(GtkWidget *w)
-{
- layout_t layout_fetched;
-
- layout_get(w, &layout_fetched);
-
- prefs.gui_layout_type = layout_fetched.type;
- prefs.gui_layout_content_1 = layout_fetched.content[0];
- prefs.gui_layout_content_2 = layout_fetched.content[1];
- prefs.gui_layout_content_3 = layout_fetched.content[2];
-
- prefs.gui_altern_colors = fetch_enum_value(
- g_object_get_data(G_OBJECT(w), ALTERN_COLORS_KEY), altern_colors_vals);
- prefs.filter_toolbar_show_in_statusbar = fetch_enum_value(
- g_object_get_data(G_OBJECT(w), FILTER_TOOLBAR_PLACEMENT_KEY), filter_toolbar_placement_vals);
- prefs.gui_hex_dump_highlight_style = fetch_enum_value(
- g_object_get_data(G_OBJECT(w), HEX_DUMP_HIGHLIGHT_STYLE_KEY), highlight_style_vals);
- prefs.gui_toolbar_main_style = fetch_enum_value(
- g_object_get_data(G_OBJECT(w), GUI_TOOLBAR_STYLE_KEY), toolbar_style_vals);
- prefs.gui_toolbar_filter_style = fetch_enum_value(
- g_object_get_data(G_OBJECT(w), GUI_FILTER_TOOLBAR_STYLE_KEY), toolbar_style_vals);
-
- g_free(prefs.gui_window_title);
- prefs.gui_window_title = g_strdup(gtk_entry_get_text(
- GTK_ENTRY(g_object_get_data(G_OBJECT(w), GUI_WINDOW_TITLE_KEY))));
-}
-
-void
-layout_prefs_apply(GtkWidget *w _U_)
-{
- main_titlebar_update();
- main_widgets_rearrange();
-}
-
-void
-layout_prefs_destroy(GtkWidget *main_vb)
-{
- GtkWidget ** layout_type_buttons = (GtkWidget **)g_object_get_data(G_OBJECT(main_vb), LAYOUT_TYPE_BUTTONS_KEY);
-
- g_free(layout_type_buttons);
-}
-
-
-/*
- * Editor modelines - http://www.wireshark.org/tools/modelines.html
- *
- * Local variables:
- * c-basic-offset: 4
- * tab-width: 8
- * indent-tabs-mode: nil
- * End:
- *
- * vi: set shiftwidth=4 tabstop=8 expandtab:
- * :indentSize=4:tabSize=8:noTabs=true:
- */