diff options
-rw-r--r-- | gtk/main.c | 71 | ||||
-rw-r--r-- | gtk/main.h | 3 | ||||
-rw-r--r-- | gtk/menu.c | 8 |
3 files changed, 54 insertions, 28 deletions
diff --git a/gtk/main.c b/gtk/main.c index 5735888d84..91ff1f9f67 100644 --- a/gtk/main.c +++ b/gtk/main.c @@ -1,6 +1,6 @@ /* main.c * - * $Id: main.c,v 1.429 2004/05/04 20:40:08 guy Exp $ + * $Id: main.c,v 1.430 2004/05/04 20:49:33 guy Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs <gerald@ethereal.com> @@ -3661,6 +3661,44 @@ void main_widgets_rearrange(void) { /* hide widgets on users recent settings */ /* XXX - do we still need this? */ + main_widgets_show_or_hide(); + + /* statusbar hbox */ + if ((recent.filter_toolbar_show && filter_toolbar_show_in_statusbar) || recent.statusbar_show) { + gtk_box_pack_start(GTK_BOX(main_vbox), stat_hbox, FALSE, TRUE, 0); + } + + /* filter toolbar in statusbar hbox */ + if (recent.filter_toolbar_show && filter_toolbar_show_in_statusbar) { + gtk_box_pack_start(GTK_BOX(stat_hbox), filter_tb, FALSE, TRUE, 1); + } + + /* statusbar */ + if (recent.statusbar_show) { + gtk_box_pack_start(GTK_BOX(stat_hbox), status_pane, TRUE, TRUE, 0); + gtk_paned_pack1(GTK_PANED(status_pane), info_bar, FALSE, FALSE); + gtk_paned_pack2(GTK_PANED(status_pane), packets_bar, FALSE, FALSE); + } + + gtk_widget_show(main_vbox); +} + +static void +is_widget_visible(GtkWidget *widget, gpointer data) +{ + gboolean *is_visible = data; + + if (!*is_visible) { + if (GTK_WIDGET_VISIBLE(widget)) + *is_visible = TRUE; + } +} + +void +main_widgets_show_or_hide(void) +{ + gboolean main_second_pane_show; + if (recent.packet_list_show) { gtk_widget_show(pkt_scrollw); } else { @@ -3678,34 +3716,21 @@ void main_widgets_rearrange(void) { } else { gtk_widget_hide(byte_nb_ptr); } - if (GTK_WIDGET_VISIBLE(pane_content[1]) || - GTK_WIDGET_VISIBLE(pane_content[2])) { + + /* + * Is anything in "main_second_pane" visible? + * If so, show it, otherwise hide it. + */ + main_second_pane_show = FALSE; + gtk_container_foreach(GTK_CONTAINER(main_second_pane), is_widget_visible, + &main_second_pane_show); + if (main_second_pane_show) { gtk_widget_show(main_second_pane); } else { gtk_widget_hide(main_second_pane); } - - /* statusbar hbox */ - if ((recent.filter_toolbar_show && filter_toolbar_show_in_statusbar) || recent.statusbar_show) { - gtk_box_pack_start(GTK_BOX(main_vbox), stat_hbox, FALSE, TRUE, 0); - } - - /* filter toolbar in statusbar hbox */ - if (recent.filter_toolbar_show && filter_toolbar_show_in_statusbar) { - gtk_box_pack_start(GTK_BOX(stat_hbox), filter_tb, FALSE, TRUE, 1); - } - - /* statusbar */ - if (recent.statusbar_show) { - gtk_box_pack_start(GTK_BOX(stat_hbox), status_pane, TRUE, TRUE, 0); - gtk_paned_pack1(GTK_PANED(status_pane), info_bar, FALSE, FALSE); - gtk_paned_pack2(GTK_PANED(status_pane), packets_bar, FALSE, FALSE); - } - - gtk_widget_show(main_vbox); } - static void create_main_window (gint pl_size, gint tv_size, gint bv_size, e_prefs *prefs) { diff --git a/gtk/main.h b/gtk/main.h index c125ef13ab..75fc0a60cf 100644 --- a/gtk/main.h +++ b/gtk/main.h @@ -1,7 +1,7 @@ /* main.h * Global defines, etc. * - * $Id: main.h,v 1.45 2004/04/25 16:04:12 ulfl Exp $ + * $Id: main.h,v 1.46 2004/05/04 20:49:33 guy Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs <gerald@ethereal.com> @@ -112,6 +112,7 @@ extern void dfilter_recent_combo_write_all(FILE *rf); extern gboolean main_do_quit(void); extern void main_widgets_rearrange(void); +extern void main_widgets_show_or_hide(void); extern gboolean main_filter_packets(capture_file *cf, const gchar *dftext, gboolean force); extern void dnd_open_file_cmd(gpointer cf_name); diff --git a/gtk/menu.c b/gtk/menu.c index f4fb7ade11..6244efc24b 100644 --- a/gtk/menu.c +++ b/gtk/menu.c @@ -1,7 +1,7 @@ /* menu.c * Menu routines * - * $Id: menu.c,v 1.189 2004/05/04 20:04:26 guy Exp $ + * $Id: menu.c,v 1.190 2004/05/04 20:49:33 guy Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs <gerald@ethereal.com> @@ -1155,7 +1155,7 @@ packet_list_show_cb(GtkWidget *w _U_, gpointer d _U_) /* save current setting in recent */ recent.packet_list_show = GTK_CHECK_MENU_ITEM(w)->active; - main_widgets_rearrange(); + main_widgets_show_or_hide(); } @@ -1166,7 +1166,7 @@ tree_view_show_cb(GtkWidget *w _U_, gpointer d _U_) /* save current setting in recent */ recent.tree_view_show = GTK_CHECK_MENU_ITEM(w)->active; - main_widgets_rearrange(); + main_widgets_show_or_hide(); } @@ -1177,7 +1177,7 @@ byte_view_show_cb(GtkWidget *w _U_, gpointer d _U_) /* save current setting in recent */ recent.byte_view_show = GTK_CHECK_MENU_ITEM(w)->active; - main_widgets_rearrange(); + main_widgets_show_or_hide(); } |