summaryrefslogtreecommitdiff
path: root/gtk
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2000-01-06 07:33:35 +0000
committerGuy Harris <guy@alum.mit.edu>2000-01-06 07:33:35 +0000
commitc4a7eb6457637cebb0ce4d9801102e1a71e4f43f (patch)
tree089cffea69924399b0a14a8dd9b86be8856f5cb1 /gtk
parent4d638e504512e37956e0a97c3bf62ff84f7c60f2 (diff)
downloadwireshark-c4a7eb6457637cebb0ce4d9801102e1a71e4f43f.tar.gz
Printing multiple pages of PostScript wasn't as tricky as I thought; add
support for printing in PostScript to the "Print..." dialog box. svn path=/trunk/; revision=1426
Diffstat (limited to 'gtk')
-rw-r--r--gtk/keys.h3
-rw-r--r--gtk/main.c10
-rw-r--r--gtk/print_dlg.c47
3 files changed, 36 insertions, 24 deletions
diff --git a/gtk/keys.h b/gtk/keys.h
index 53e7d60996..b64ec08511 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.8 1999/12/09 20:41:41 oabad Exp $
+ * $Id: keys.h,v 1.9 2000/01/06 07:33:33 guy Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
@@ -37,7 +37,6 @@
#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 PLUGINS_DFILTER_TE "plugins_dfilter_te"
diff --git a/gtk/main.c b/gtk/main.c
index 8112e4d0ea..bd1864fa53 100644
--- a/gtk/main.c
+++ b/gtk/main.c
@@ -1,6 +1,6 @@
/* main.c
*
- * $Id: main.c,v 1.82 2000/01/05 22:31:46 gerald Exp $
+ * $Id: main.c,v 1.83 2000/01/06 07:33:33 guy Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
@@ -394,9 +394,11 @@ static void follow_print_stream(GtkWidget *w, gpointer parent_w)
E_FOLLOW_FILENAME_KEY);
if (filename != NULL) {
- print_preamble(fh);
- print_file(fh, filename);
- print_finale(fh);
+ /* XXX - make this look at the preferences and print in
+ PostScript if that's what the user specified. */
+ print_preamble(fh, PR_FMT_TEXT);
+ print_file(fh, filename, PR_FMT_TEXT);
+ print_finale(fh, PR_FMT_TEXT);
close_print_dest(to_file, fh);
}
else {
diff --git a/gtk/print_dlg.c b/gtk/print_dlg.c
index 0407f5778f..d701d2186c 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.12 2000/01/03 06:59:24 guy Exp $
+ * $Id: print_dlg.c,v 1.13 2000/01/06 07:33:35 guy Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
@@ -63,6 +63,15 @@ static void print_close_cb(GtkWidget *close_bt, gpointer parent_w);
*/
static int print_to_file;
+/*
+ * Remember whether we printed as text or PostScript the last time we
+ * printed something.
+ */
+static gint print_format = PR_FMT_TEXT;
+
+#define PRINT_FORMAT_RB_KEY "printer_format_radio_button"
+#define PRINT_DEST_RB_KEY "printer_destination_radio_button"
+
#define PRINT_SUMMARY_RB_KEY "printer_summary_radio_button"
#define PRINT_HEX_CB_KEY "printer_hex_check_button"
#define PRINT_EXPAND_ALL_RB_KEY "printer_expand_all_radio_button"
@@ -74,10 +83,9 @@ file_print_cmd_cb(GtkWidget *widget, gpointer data)
{
GtkWidget *print_w;
GtkWidget *main_vb, *main_tb, *button;
-#if 0
+ GtkWidget *format_rb;
GtkWidget *format_hb, *format_lb;
GSList *format_grp;
-#endif
GtkWidget *dest_rb;
GtkWidget *dest_hb, *dest_lb;
GtkWidget *cmd_lb, *cmd_te;
@@ -108,12 +116,6 @@ file_print_cmd_cb(GtkWidget *widget, gpointer data)
gtk_table_set_col_spacings(GTK_TABLE(main_tb), 15);
gtk_widget_show(main_tb);
- /* XXX - printing multiple frames in PostScript looks as if it's
- tricky - you have to deal with page boundaries, I think -
- and I'll have to spend some time learning enough about
- PostScript to figure it out, so, for now, we only print
- multiple frames as text. */
-#if 0
/* Output format */
format_lb = gtk_label_new("Format:");
gtk_misc_set_alignment(GTK_MISC(format_lb), 1.0, 0.5);
@@ -125,18 +127,17 @@ file_print_cmd_cb(GtkWidget *widget, gpointer data)
gtk_widget_show(format_hb);
button = gtk_radio_button_new_with_label(NULL, "Plain Text");
- if (prefs.pr_format == PR_FMT_TEXT)
+ if (print_format == PR_FMT_TEXT)
gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(button), TRUE);
format_grp = gtk_radio_button_group(GTK_RADIO_BUTTON(button));
gtk_box_pack_start(GTK_BOX(format_hb), button, FALSE, FALSE, 10);
gtk_widget_show(button);
- button = gtk_radio_button_new_with_label(format_grp, "PostScript");
- if (prefs.pr_format == PR_FMT_PS)
- gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(button), TRUE);
- gtk_box_pack_start(GTK_BOX(format_hb), button, FALSE, FALSE, 10);
- gtk_widget_show(button);
-#endif
+ format_rb = gtk_radio_button_new_with_label(format_grp, "PostScript");
+ if (print_format == PR_FMT_PS)
+ gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(format_rb), TRUE);
+ gtk_box_pack_start(GTK_BOX(format_hb), format_rb, FALSE, FALSE, 10);
+ gtk_widget_show(format_rb);
/* Output destination */
dest_lb = gtk_label_new("Print to:");
@@ -265,6 +266,7 @@ file_print_cmd_cb(GtkWidget *widget, gpointer data)
gtk_widget_show(bbox);
ok_bt = gtk_button_new_with_label ("OK");
+ gtk_object_set_data(GTK_OBJECT(ok_bt), PRINT_FORMAT_RB_KEY, format_rb);
gtk_object_set_data(GTK_OBJECT(ok_bt), PRINT_DEST_RB_KEY, dest_rb);
gtk_object_set_data(GTK_OBJECT(ok_bt), PRINT_CMD_TE_KEY, cmd_te);
gtk_object_set_data(GTK_OBJECT(ok_bt), PRINT_FILE_TE_KEY, file_te);
@@ -395,6 +397,14 @@ print_ok_cb(GtkWidget *ok_bt, gpointer parent_w)
PRINT_CMD_TE_KEY))));
button = (GtkWidget *) gtk_object_get_data(GTK_OBJECT(ok_bt),
+ PRINT_FORMAT_RB_KEY);
+ if (GTK_TOGGLE_BUTTON (button)->active)
+ print_format = PR_FMT_PS;
+ else
+ print_format = PR_FMT_TEXT;
+ print_args.format = print_format;
+
+ button = (GtkWidget *) gtk_object_get_data(GTK_OBJECT(ok_bt),
PRINT_SUMMARY_RB_KEY);
print_args.print_summary = GTK_TOGGLE_BUTTON (button)->active;
@@ -475,13 +485,14 @@ file_print_packet_cmd_cb(GtkWidget *widget, gpointer data) {
return;
}
- print_preamble(fh);
+ print_preamble(fh, prefs.pr_format);
+ print_args.format = prefs.pr_format;
print_args.print_summary = FALSE;
print_args.print_hex = FALSE;
print_args.expand_all = TRUE;
proto_tree_print(TRUE, &print_args, (GNode*) cf.protocol_tree, cf.pd,
cf.current_frame, fh);
- print_finale(fh);
+ print_finale(fh, prefs.pr_format);
close_print_dest(print_args.to_file, fh);
}