aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>1999-09-12 23:54:09 +0000
committerGuy Harris <guy@alum.mit.edu>1999-09-12 23:54:09 +0000
commitf5e3d82e504a81599b8ab59d2320eb30b5d3530f (patch)
tree8a1f8466af5cfac1484f6279dae3ba8a6ab9ba6f
parent3823ab23beb83e6f5b679994325865e1e30c8f26 (diff)
Make "Expand all levels" and "Print as displayed" radio
buttons insensitive if "Print summary" is selected, and make them sensitive if "Print detail" is selected, as they apply only to the "print detail" output. svn path=/trunk/; revision=672
-rw-r--r--gtk/keys.h21
-rw-r--r--gtk/print_dlg.c31
2 files changed, 41 insertions, 11 deletions
diff --git a/gtk/keys.h b/gtk/keys.h
index 68b3b61e42..9b1296c7fa 100644
--- a/gtk/keys.h
+++ b/gtk/keys.h
@@ -1,7 +1,7 @@
/* keys.h
* Key definitions for various objects
*
- * $Id: keys.h,v 1.4 1999/09/12 20:23:42 guy Exp $
+ * $Id: keys.h,v 1.5 1999/09/12 23:54:09 guy Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
@@ -28,15 +28,16 @@
/* Keys for gtk_object_set_data */
-#define E_DFILTER_TE_KEY "display_filter_te"
-#define E_RFILTER_TE_KEY "read_filter_te"
+#define E_DFILTER_TE_KEY "display_filter_te"
+#define E_RFILTER_TE_KEY "read_filter_te"
-#define PRINT_CMD_LB_KEY "printer_command_label"
-#define PRINT_CMD_TE_KEY "printer_command_entry"
-#define PRINT_FILE_BT_KEY "printer_file_button"
-#define PRINT_FILE_TE_KEY "printer_file_entry"
-#define PRINT_DEST_RB_KEY "printer_destination_radio_button"
-#define PRINT_SUMMARY_RB_KEY "printer_summary_radio_button"
-#define PRINT_EXPAND_ALL_RB_KEY "printer_expand_all_radio_button"
+#define PRINT_CMD_LB_KEY "printer_command_label"
+#define PRINT_CMD_TE_KEY "printer_command_entry"
+#define PRINT_FILE_BT_KEY "printer_file_button"
+#define PRINT_FILE_TE_KEY "printer_file_entry"
+#define PRINT_DEST_RB_KEY "printer_destination_radio_button"
+#define PRINT_SUMMARY_RB_KEY "printer_summary_radio_button"
+#define PRINT_EXPAND_ALL_RB_KEY "printer_expand_all_radio_button"
+#define PRINT_AS_DISPLAYED_RB_KEY "printer_as_displayed_radio_button"
#endif
diff --git a/gtk/print_dlg.c b/gtk/print_dlg.c
index 8709da5a19..65afa3016c 100644
--- a/gtk/print_dlg.c
+++ b/gtk/print_dlg.c
@@ -1,7 +1,7 @@
/* print_dlg.c
* Dialog boxes for printing
*
- * $Id: print_dlg.c,v 1.5 1999/09/12 20:23:42 guy Exp $
+ * $Id: print_dlg.c,v 1.6 1999/09/12 23:54:09 guy Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
@@ -50,6 +50,7 @@
#endif
static void print_cmd_toggle_dest(GtkWidget *widget, gpointer data);
+static void print_cmd_toggle_detail(GtkWidget *widget, gpointer data);
static void print_file_cb(GtkWidget *file_bt, gpointer file_te);
static void print_fs_ok_cb(GtkWidget *w, gpointer data);
static void print_fs_cancel_cb(GtkWidget *w, gpointer data);
@@ -215,6 +216,8 @@ file_print_cmd_cb(GtkWidget *widget, gpointer data)
gtk_widget_show(summary_rb);
detail_rb = gtk_radio_button_new_with_label(summary_grp, "Print detail");
gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(detail_rb), TRUE);
+ gtk_signal_connect(GTK_OBJECT(detail_rb), "toggled",
+ GTK_SIGNAL_FUNC(print_cmd_toggle_detail), NULL);
gtk_container_add(GTK_CONTAINER(summary_vb), detail_rb);
gtk_widget_show(detail_rb);
@@ -236,6 +239,11 @@ file_print_cmd_cb(GtkWidget *widget, gpointer data)
gtk_container_add(GTK_CONTAINER(expand_vb), as_displayed_rb);
gtk_widget_show(as_displayed_rb);
+ gtk_object_set_data(GTK_OBJECT(detail_rb), PRINT_EXPAND_ALL_RB_KEY,
+ expand_all_rb);
+ gtk_object_set_data(GTK_OBJECT(detail_rb), PRINT_AS_DISPLAYED_RB_KEY,
+ as_displayed_rb);
+
/* Button row: OK and Cancel buttons */
bbox = gtk_hbutton_box_new();
gtk_button_box_set_layout (GTK_BUTTON_BOX (bbox), GTK_BUTTONBOX_END);
@@ -297,6 +305,27 @@ print_cmd_toggle_dest(GtkWidget *widget, gpointer data)
}
static void
+print_cmd_toggle_detail(GtkWidget *widget, gpointer data)
+{
+ GtkWidget *expand_all_rb, *as_displayed_rb;
+ gboolean print_detail;
+
+ expand_all_rb = GTK_WIDGET(gtk_object_get_data(GTK_OBJECT(widget),
+ PRINT_EXPAND_ALL_RB_KEY));
+ as_displayed_rb = GTK_WIDGET(gtk_object_get_data(GTK_OBJECT(widget),
+ PRINT_AS_DISPLAYED_RB_KEY));
+ if (GTK_TOGGLE_BUTTON (widget)->active) {
+ /* They selected "Print detail" */
+ print_detail = TRUE;
+ } else {
+ /* They selected "Print summary" */
+ print_detail = FALSE;
+ }
+ gtk_widget_set_sensitive(expand_all_rb, print_detail);
+ gtk_widget_set_sensitive(as_displayed_rb, print_detail);
+}
+
+static void
print_file_cb(GtkWidget *file_bt, gpointer file_te)
{
GtkWidget *fs;