diff options
| author | nobody <nobody@localhost> | 2001-12-14 12:59:04 +0800 | 
|---|---|---|
| committer | nobody <nobody@localhost> | 2001-12-14 12:59:04 +0800 | 
| commit | 5885b7cc50cf1357a480845fb4394c67b2f062eb (patch) | |
| tree | 32cb6f4702fe446ea804947fa4479b5431a3d24a /addressbook/printing | |
| parent | 969ffa703d70be312a9b9b2f7a6d2b7a8ac87c17 (diff) | |
| download | gsoc2013-evolution-5885b7cc50cf1357a480845fb4394c67b2f062eb.tar.gz gsoc2013-evolution-5885b7cc50cf1357a480845fb4394c67b2f062eb.tar.zst gsoc2013-evolution-5885b7cc50cf1357a480845fb4394c67b2f062eb.zip | |
This commit was manufactured by cvs2svn to create tagBONOBO_1_0_18
'BONOBO_1_0_18'.
svn path=/tags/BONOBO_1_0_18/; revision=15038
Diffstat (limited to 'addressbook/printing')
| -rw-r--r-- | addressbook/printing/.cvsignore | 9 | ||||
| -rw-r--r-- | addressbook/printing/Makefile.am | 75 | ||||
| -rw-r--r-- | addressbook/printing/e-contact-print-envelope.c | 245 | ||||
| -rw-r--r-- | addressbook/printing/e-contact-print-envelope.h | 32 | ||||
| -rw-r--r-- | addressbook/printing/e-contact-print-style-editor.c | 149 | ||||
| -rw-r--r-- | addressbook/printing/e-contact-print-style-editor.h | 73 | ||||
| -rw-r--r-- | addressbook/printing/e-contact-print-types.h | 73 | ||||
| -rw-r--r-- | addressbook/printing/e-contact-print.c | 1203 | ||||
| -rw-r--r-- | addressbook/printing/e-contact-print.glade | 2003 | ||||
| -rw-r--r-- | addressbook/printing/e-contact-print.h | 36 | ||||
| -rw-r--r-- | addressbook/printing/medbook.ecps | 30 | ||||
| -rw-r--r-- | addressbook/printing/phonelist.ecps | 29 | ||||
| -rw-r--r-- | addressbook/printing/smallbook.ecps | 30 | ||||
| -rw-r--r-- | addressbook/printing/test-contact-print-style-editor.c | 89 | ||||
| -rw-r--r-- | addressbook/printing/test-print.c | 86 | 
15 files changed, 0 insertions, 4162 deletions
| diff --git a/addressbook/printing/.cvsignore b/addressbook/printing/.cvsignore deleted file mode 100644 index 96194f7fd7..0000000000 --- a/addressbook/printing/.cvsignore +++ /dev/null @@ -1,9 +0,0 @@ -.deps -.libs -.pure -Makefile -Makefile.in -*.lo -*.la -contact-print-test -contact-print-style-editor-test diff --git a/addressbook/printing/Makefile.am b/addressbook/printing/Makefile.am deleted file mode 100644 index dc1fb510a7..0000000000 --- a/addressbook/printing/Makefile.am +++ /dev/null @@ -1,75 +0,0 @@ -ecpsdir    = $(datadir)/evolution/ecps - -ecps_DATA  =				\ -	smallbook.ecps			\ -	medbook.ecps			\ -	phonelist.ecps - -gladedir   = $(datadir)/evolution/glade - -glade_DATA = 				\ -	e-contact-print.glade - -INCLUDES =					\ -	$(GNOME_INCLUDEDIR)			\ -	-DG_LOG_DOMAIN=\"addressbook-printing\"	\ -	-I$(top_srcdir)/addressbook		\ -	-I$(top_srcdir)				\ -        -DEVOLUTION_GLADEDIR=\""$(gladedir)"\"	\ -	-DEVOLUTION_ECPSDIR=\""$(ecpsdir)"\"	\ -	-DDATADIR=\""$(datadir)"\"		\ -	$(GNOME_PRINT_CFLAGS)			\ -        $(BONOBO_GNOME_CFLAGS)			\ -	$(EXTRA_GNOME_CFLAGS) - -noinst_LIBRARIES =				\ -	libecontactprint.a - -libecontactprint_a_SOURCES = 			\ -	e-contact-print-envelope.c		\ -	e-contact-print-envelope.h		\ -	e-contact-print-style-editor.c		\ -	e-contact-print-style-editor.h		\ -	e-contact-print-types.h			\ -	e-contact-print.c			\ -	e-contact-print.h - -noinst_PROGRAMS =	\ -	contact-print-test	\ -	contact-print-style-editor-test - -contact_print_test_SOURCES = 	\ -	test-print.c - -contact_print_test_LDADD =	\ -	$(top_builddir)/addressbook/backend/ebook/libebook.la		\ -	$(top_builddir)/camel/libcamel.la				\ -	$(top_builddir)/libibex/libibex.la				\ -	$(top_builddir)/e-util/libeutil.la				\ -	$(top_builddir)/libversit/libversit.la				\ -	$(top_builddir)/e-util/ename/libename.la			\ -	libecontactprint.a	\ -	$(BONOBO_CONF_LIBS)	\ -	$(EXTRA_GNOME_LIBS)	\ -	$(BONOBO_GNOME_LIBS)    \ -	$(GNOME_PRINT_LIBS)  - -contact_print_style_editor_test_SOURCES = 	\ -	test-contact-print-style-editor.c - -contact_print_style_editor_test_LDADD =	\ -	$(top_builddir)/addressbook/backend/ebook/libebook.la		\ -	$(top_builddir)/camel/libcamel.la				\ -	$(top_builddir)/libibex/libibex.la				\ -	$(top_builddir)/e-util/libeutil.la				\ -	$(top_builddir)/libversit/libversit.la				\ -	$(top_builddir)/e-util/ename/libename.la			\ -	libecontactprint.a	\ -	$(BONOBO_CONF_LIBS)	\ -	$(EXTRA_GNOME_LIBS)	\ -	$(BONOBO_GNOME_LIBS)    \ -	$(GNOME_PRINT_LIBS) - -EXTRA_DIST = \ -	$(glade_DATA)	\ -	$(ecps_DATA) diff --git a/addressbook/printing/e-contact-print-envelope.c b/addressbook/printing/e-contact-print-envelope.c deleted file mode 100644 index 2f65afa81b..0000000000 --- a/addressbook/printing/e-contact-print-envelope.c +++ /dev/null @@ -1,245 +0,0 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ -/*  - * e-contact-print-envelope.c - * Copyright (C) 2000  Ximian, Inc. - * Author: Chris Lahey <clahey@ximian.com> - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of version 2 of the GNU General Public - * License as published by the Free Software Foundation. - * - * 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 library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#include <config.h> -#include "addressbook/printing/e-contact-print-envelope.h" -#include <glib.h> -#include <libgnome/gnome-defs.h> -#include <libgnome/gnome-i18n.h> -#include <time.h> -#include <libgnome/gnome-paper.h> -#include <libgnomeprint/gnome-print.h> -#include <libgnomeprint/gnome-print-dialog.h> -#include <libgnomeprint/gnome-print-master.h> -#include <libgnomeprint/gnome-print-master-preview.h> -#include "addressbook/backend/ebook/e-card.h" -#include "addressbook/backend/ebook/e-card-simple.h" - -#define ENVELOPE_HEIGHT (72.0 * 4.0) -#define ENVELOPE_WIDTH (72.0 * 9.5) - -typedef struct { -	int start; -	int length; -} EcpeLine; - -static void -startset(void *pointer, EcpeLine **iterator) -{ -	(*iterator)--; -	(*iterator)->start = GPOINTER_TO_INT(pointer); -} - -static void -lengthset(void *pointer, EcpeLine **iterator) -{ -	(*iterator)--; -	(*iterator)->length = GPOINTER_TO_INT(pointer); -} - -static EcpeLine * -ecpe_break(char *address) -{ -	int i; -	int length = 0; -	int laststart = 0; -	GList *startlist = NULL; -	GList *lengthlist = NULL; -	EcpeLine *ret_val; -	EcpeLine *iterator; - -	for (i = 0; address[i]; i++) { -		if (address[i] == '\n') { -			startlist = g_list_prepend (startlist, GINT_TO_POINTER(laststart)); -			lengthlist = g_list_prepend (lengthlist, GINT_TO_POINTER(i - laststart)); -			length ++; -			laststart = i + 1; -		} -	} -	startlist = g_list_prepend (startlist, GINT_TO_POINTER(laststart)); -	lengthlist = g_list_prepend (lengthlist, GINT_TO_POINTER(i - laststart)); -	length ++; - -	ret_val = g_new(EcpeLine, length + 1); - -	iterator = ret_val + length; -	g_list_foreach(startlist, (GFunc) startset, &iterator); -	g_list_free(startlist); - -	iterator = ret_val + length; -	g_list_foreach(lengthlist, (GFunc) lengthset, &iterator); -	g_list_free(lengthlist); - -	ret_val[length].start = -1; -	ret_val[length].length = -1; - -	return ret_val; -} - -static void -ecpe_linelist_dimensions(GnomeFont *font, char *address, EcpeLine *linelist, double *widthp, double *heightp) -{ -	double width = 0; -	int i; -	if (widthp) { -		for (i = 0; linelist[i].length != -1; i++) { -			width = MAX(width, gnome_font_get_width_utf8_sized (font, address + linelist[i].start, linelist[i].length)); -		} -		*widthp = width; -	} else { -		for (i = 0; linelist[i].length != -1; i++) -			/* Intentionally empty */; -	} -	if (heightp) { -		*heightp = gnome_font_get_size(font) * i; -	} -} - -static void -ecpe_linelist_print(GnomePrintContext *pc, GnomeFont *font, char *address, EcpeLine *linelist, double x, double y) -{ -	int i; -	gnome_print_setfont(pc, font); -	for (i = 0; linelist[i].length != -1; i++) { -		gnome_print_moveto(pc, x, y + gnome_font_get_ascender(font)); -		gnome_print_show_sized (pc, address + linelist[i].start, linelist[i].length); -		y -= gnome_font_get_size(font); -	} -} - -static gint -e_contact_print_envelope_close(GnomeDialog *dialog, gpointer data) -{ -	return FALSE; -} - -static void -ecpe_print(GnomePrintContext *pc, ECard *ecard, gboolean as_return) -{ -	ECardSimple *card = e_card_simple_new(ecard); -	char *address; -	EcpeLine *linelist; -	double x; -	double y; -	GnomeFont *font; -	 - -	gnome_print_rotate(pc, 90); -	gnome_print_translate(pc, 72.0 * 11.0 - ENVELOPE_WIDTH, -72.0 * 8.5 + (72.0 * 8.5 - ENVELOPE_HEIGHT) / 2); - -	address = e_card_simple_get(card, E_CARD_SIMPLE_FIELD_ADDRESS_BUSINESS); -	linelist = ecpe_break(address); -	if (as_return) -		font = gnome_font_new("Helvetica", 9); -	else -		font = gnome_font_new("Helvetica", 12); -	ecpe_linelist_dimensions(font, address, linelist, NULL, &y); -	if (as_return) { -		x = 36; -		y = ENVELOPE_HEIGHT - 36; -	} else { -		x = ENVELOPE_WIDTH / 2; -		y = (ENVELOPE_HEIGHT - y) / 2; -	} -	ecpe_linelist_print(pc, font, address, linelist, x, y); -	gtk_object_unref(GTK_OBJECT(font)); -	g_free(linelist); - -	g_free(address); - -	gnome_print_showpage(pc); -	gnome_print_context_close(pc); - -	gtk_object_unref(GTK_OBJECT(card)); -} - -static void -e_contact_print_envelope_button(GnomeDialog *dialog, gint button, gpointer data) -{ -	GnomePrintMaster *master; -	GnomePrintContext *pc; -	ECard *card = NULL; -	GtkWidget *preview; - -	card = gtk_object_get_data(GTK_OBJECT(dialog), "card"); - -	switch( button ) { -	case GNOME_PRINT_PRINT: -		master = gnome_print_master_new_from_dialog( GNOME_PRINT_DIALOG(dialog) ); -		pc = gnome_print_master_get_context( master ); - -		ecpe_print(pc, card, FALSE); -		 -		gnome_print_master_print(master); -		gnome_dialog_close(dialog); -		break; -	case GNOME_PRINT_PREVIEW: -		master = gnome_print_master_new_from_dialog( GNOME_PRINT_DIALOG(dialog) ); -		pc = gnome_print_master_get_context( master ); - -		ecpe_print(pc, card, FALSE); -		 -		preview = GTK_WIDGET(gnome_print_master_preview_new(master, "Print Preview")); -		gtk_widget_show_all(preview); -		break; -	case GNOME_PRINT_CANCEL: -		gtk_object_unref(GTK_OBJECT(card)); -		gnome_dialog_close(dialog); -		break; -	} -} - -GtkWidget * -e_contact_print_envelope_dialog_new(ECard *card) -{ -	GtkWidget *dialog; -	 -	dialog = gnome_print_dialog_new(_("Print envelope"), GNOME_PRINT_DIALOG_COPIES); - -	card = e_card_duplicate(card); -	gtk_object_set_data(GTK_OBJECT(dialog), "card", card); -	gtk_signal_connect(GTK_OBJECT(dialog), -			   "clicked", GTK_SIGNAL_FUNC(e_contact_print_envelope_button), NULL); -	gtk_signal_connect(GTK_OBJECT(dialog), -			   "close", GTK_SIGNAL_FUNC(e_contact_print_envelope_close), NULL); -	return dialog; -} - -/* FIXME: Print all the contacts selected. */ -GtkWidget * -e_contact_print_envelope_list_dialog_new(GList *list) -{ -	GtkWidget *dialog; -	ECard *card; - -	if (list == NULL) -		return NULL; - -	dialog = gnome_print_dialog_new(_("Print envelope"), GNOME_PRINT_DIALOG_COPIES); - -	card = e_card_duplicate(list->data); -	gtk_object_set_data(GTK_OBJECT(dialog), "card", card); -	gtk_signal_connect(GTK_OBJECT(dialog), -			   "clicked", GTK_SIGNAL_FUNC(e_contact_print_envelope_button), NULL); -	gtk_signal_connect(GTK_OBJECT(dialog), -			   "close", GTK_SIGNAL_FUNC(e_contact_print_envelope_close), NULL); -	return dialog; -} diff --git a/addressbook/printing/e-contact-print-envelope.h b/addressbook/printing/e-contact-print-envelope.h deleted file mode 100644 index 4302c4c5d7..0000000000 --- a/addressbook/printing/e-contact-print-envelope.h +++ /dev/null @@ -1,32 +0,0 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ -/*  - * e-contact-print-envelope.h - * Copyright (C) 2000  Ximian, Inc. - * Author: Chris Lahey <clahey@ximian.com> - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of version 2 of the GNU General Public - * License as published by the Free Software Foundation. - * - * 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 library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#ifndef E_CONTACT_PRINT_ENVELOPE_H -#define E_CONTACT_PRINT_ENVELOPE_H - -#include <addressbook/backend/ebook/e-card.h> -#include <gtk/gtkwidget.h> -#include "e-contact-print-types.h" - -GtkWidget *e_contact_print_envelope_dialog_new(ECard *card); -GtkWidget *e_contact_print_envelope_list_dialog_new(GList *list); - -#endif /* E_CONTACT_PRINT_ENVELOPE_H */ diff --git a/addressbook/printing/e-contact-print-style-editor.c b/addressbook/printing/e-contact-print-style-editor.c deleted file mode 100644 index f05a508ed8..0000000000 --- a/addressbook/printing/e-contact-print-style-editor.c +++ /dev/null @@ -1,149 +0,0 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ -/*  - * e-contact-print-style-editor.c - * Copyright (C) 2000  Ximian, Inc. - * Author: Chris Lahey <clahey@ximian.com> - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of version 2 of the GNU General Public - * License as published by the Free Software Foundation. - * - * 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 library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#include "e-contact-print-style-editor.h" - -static void e_contact_print_style_editor_init		(EContactPrintStyleEditor		 *card); -static void e_contact_print_style_editor_class_init	(EContactPrintStyleEditorClass	 *klass); -static void e_contact_print_style_editor_set_arg        (GtkObject *o, GtkArg *arg, guint arg_id); -static void e_contact_print_style_editor_get_arg        (GtkObject *object, GtkArg *arg, guint arg_id); -static void e_contact_print_style_editor_destroy        (GtkObject *object); - -static GtkVBoxClass *parent_class = NULL; - - -/* The arguments we take */ -enum { -	ARG_0, -	ARG_CARD -}; - -GtkType -e_contact_print_style_editor_get_type (void) -{ -  static GtkType contact_print_style_editor_type = 0; - -  if (!contact_print_style_editor_type) -    { -      static const GtkTypeInfo contact_print_style_editor_info = -      { -        "EContactPrintStyleEditor", -        sizeof (EContactPrintStyleEditor), -        sizeof (EContactPrintStyleEditorClass), -        (GtkClassInitFunc) e_contact_print_style_editor_class_init, -        (GtkObjectInitFunc) e_contact_print_style_editor_init, -        /* reserved_1 */ NULL, -        /* reserved_2 */ NULL, -        (GtkClassInitFunc) NULL, -      }; - -      contact_print_style_editor_type = gtk_type_unique (gtk_vbox_get_type (), &contact_print_style_editor_info); -    } - -  return contact_print_style_editor_type; -} - -static void -e_contact_print_style_editor_class_init (EContactPrintStyleEditorClass *klass) -{ -  GtkObjectClass *object_class; -  GtkVBoxClass *vbox_class; - -  object_class = (GtkObjectClass*) klass; -  vbox_class = (GtkVBoxClass *) klass; - -  parent_class = gtk_type_class (gtk_vbox_get_type ()); -   -  object_class->set_arg = e_contact_print_style_editor_set_arg; -  object_class->get_arg = e_contact_print_style_editor_get_arg; -  object_class->destroy = e_contact_print_style_editor_destroy; -} - -#if 0 -static void -_add_image(GtkTable *table, gchar *image, int left, int right, int top, int bottom) -{ -	gtk_table_attach(table, -			 gtk_widget_new(gtk_alignment_get_type(), -					"child", gnome_pixmap_new_from_file(image), -					"xalign", (double) 0, -					"yalign", (double) 0, -					"xscale", (double) 0, -					"yscale", (double) 0, -					NULL), -			 left, right, top, bottom, -			 GTK_FILL, GTK_FILL, -			 0, 0); -} -#endif - -static void -e_contact_print_style_editor_init (EContactPrintStyleEditor *e_contact_print_style_editor) -{ -	GladeXML *gui; - -	/*   e_contact_print_style_editor->card = NULL;*/ -	gui = glade_xml_new (EVOLUTION_GLADEDIR "/e-contact-print.glade", NULL); -	e_contact_print_style_editor->gui = gui; -	gtk_widget_reparent(glade_xml_get_widget(gui, "vbox-contact-print-style-editor"), -			    GTK_WIDGET(e_contact_print_style_editor)); -} - -void -e_contact_print_style_editor_destroy (GtkObject *object) -{ -	EContactPrintStyleEditor *e_contact_print_style_editor = E_CONTACT_PRINT_STYLE_EDITOR(object); -	gtk_object_unref(GTK_OBJECT(e_contact_print_style_editor->gui)); -} - -GtkWidget* -e_contact_print_style_editor_new (char *filename) -{ -	GtkWidget *widget = GTK_WIDGET (gtk_type_new (e_contact_print_style_editor_get_type ())); -	return widget; -} - -static void -e_contact_print_style_editor_set_arg (GtkObject *o, GtkArg *arg, guint arg_id) -{ -	EContactPrintStyleEditor *e_contact_print_style_editor; - -	e_contact_print_style_editor = E_CONTACT_PRINT_STYLE_EDITOR (o); -	 -	switch (arg_id){ -	default: -		break; -	} -} - -static void -e_contact_print_style_editor_get_arg (GtkObject *object, GtkArg *arg, guint arg_id) -{ -	EContactPrintStyleEditor *e_contact_print_style_editor; - -	e_contact_print_style_editor = E_CONTACT_PRINT_STYLE_EDITOR (object); - -	switch (arg_id) { -	default: -	  arg->type = GTK_TYPE_INVALID; -	  break; -	} -} diff --git a/addressbook/printing/e-contact-print-style-editor.h b/addressbook/printing/e-contact-print-style-editor.h deleted file mode 100644 index e4604d551c..0000000000 --- a/addressbook/printing/e-contact-print-style-editor.h +++ /dev/null @@ -1,73 +0,0 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ -/* e-contact-print-style-editor.h - * Copyright (C) 2000  Ximian, Inc. - * Author: Chris Lahey <clahey@ximian.com> - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of version 2 of the GNU General Public - * License as published by the Free Software Foundation. - * - * 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 library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#ifndef __E_CONTACT_PRINT_STYLE_EDITOR_H__ -#define __E_CONTACT_PRINT_STYLE_EDITOR_H__ - -#include <gtk/gtkvbox.h> -#include <glade/glade.h> - -#ifdef __cplusplus -extern "C" { -#pragma } -#endif /* __cplusplus */ - -/* EContactPrintStyleEditor - A dialog displaying information about a contact. - * - * The following arguments are available: - * - * name		type		read/write	description - * -------------------------------------------------------------------------------- - * card         ECard *         R               The card currently being edited - */ - -#define E_CONTACT_PRINT_STYLE_EDITOR_TYPE			(e_contact_print_style_editor_get_type ()) -#define E_CONTACT_PRINT_STYLE_EDITOR(obj)			(GTK_CHECK_CAST ((obj), E_CONTACT_PRINT_STYLE_EDITOR_TYPE, EContactPrintStyleEditor)) -#define E_CONTACT_PRINT_STYLE_EDITOR_CLASS(klass)		(GTK_CHECK_CLASS_CAST ((klass), E_CONTACT_PRINT_STYLE_EDITOR_TYPE, EContactPrintStyleEditorClass)) -#define E_IS_MINICARD(obj)		(GTK_CHECK_TYPE ((obj), E_CONTACT_PRINT_STYLE_EDITOR_TYPE)) -#define E_IS_MINICARD_CLASS(klass)	(GTK_CHECK_CLASS_TYPE ((obj), E_CONTACT_PRINT_STYLE_EDITOR_TYPE)) - - -typedef struct _EContactPrintStyleEditor       EContactPrintStyleEditor; -typedef struct _EContactPrintStyleEditorClass  EContactPrintStyleEditorClass; - -struct _EContactPrintStyleEditor -{ -	GtkVBox parent; -	 -	/* item specific fields */ -	GladeXML *gui; -}; - -struct _EContactPrintStyleEditorClass -{ -	GtkVBoxClass parent_class; -}; - - -GtkWidget *e_contact_print_style_editor_new(char *filename); -GtkType    e_contact_print_style_editor_get_type (void); - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - - -#endif /* __E_CONTACT_PRINT_STYLE_EDITOR_H__ */ diff --git a/addressbook/printing/e-contact-print-types.h b/addressbook/printing/e-contact-print-types.h deleted file mode 100644 index b7082b41f6..0000000000 --- a/addressbook/printing/e-contact-print-types.h +++ /dev/null @@ -1,73 +0,0 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ -/*  - * e-contact-print-types.h - * Copyright (C) 2000  Ximian, Inc. - * Author: Chris Lahey <clahey@ximian.com> - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of version 2 of the GNU General Public - * License as published by the Free Software Foundation. - * - * 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 library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#ifndef E_CONTACT_PRINT_TYPES_H -#define E_CONTACT_PRINT_TYPES_H - -#include <glib.h> -#include <libgnomeprint/gnome-font.h> - -typedef struct _EContactPrintStyle EContactPrintStyle; -typedef enum _EContactPrintType EContactPrintType; - -enum _EContactPrintType { -	E_CONTACT_PRINT_TYPE_CARDS, -	E_CONTACT_PRINT_TYPE_MEMO_STYLE, -	E_CONTACT_PRINT_TYPE_PHONE_LIST -}; - -struct _EContactPrintStyle -{ -	gchar *title; -	EContactPrintType type; -	gboolean sections_start_new_page; -	guint num_columns; -	guint blank_forms; -	gboolean letter_tabs; -	gboolean letter_headings; -	GnomeFont *headings_font; -	GnomeFont *body_font; -	gboolean print_using_grey; -	gint paper_type; -	gdouble paper_width; -	gdouble paper_height; -	gint paper_source; -	gdouble top_margin; -	gdouble left_margin; -	gdouble bottom_margin; -	gdouble right_margin; -	gint page_size; -	gdouble page_width; -	gdouble page_height; -	gboolean orientation_portrait; -	GnomeFont *header_font; -	gchar *left_header; -	gchar *center_header; -	gchar *right_header; -	GnomeFont *footer_font; -	gchar *left_footer; -	gchar *center_footer; -	gchar *right_footer; -	gboolean reverse_on_even_pages; -}; - -#endif /* E_CONTACT_PRINT_TYPES_H */ - diff --git a/addressbook/printing/e-contact-print.c b/addressbook/printing/e-contact-print.c deleted file mode 100644 index 458b854c77..0000000000 --- a/addressbook/printing/e-contact-print.c +++ /dev/null @@ -1,1203 +0,0 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ -/*  - * e-contact-print.c - * Copyright (C) 2000  Ximian, Inc. - * Author: Chris Lahey <clahey@ximian.com> - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of version 2 of the GNU General Public - * License as published by the Free Software Foundation. - * - * 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 library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#include <config.h> -#include "e-contact-print.h" - -#include <ctype.h> -#include <sys/types.h> -#include <stdlib.h> -#include <glib.h> -#include <gnome-xml/tree.h> -#include <gnome-xml/parser.h> -#include <gnome-xml/xmlmemory.h> -#include <libgnome/gnome-util.h> -#include <libgnome/gnome-defs.h> -#include <libgnome/gnome-i18n.h> -#include <libgnome/gnome-paper.h> -#include <libgnomeprint/gnome-print.h> -#include <libgnomeprint/gnome-print-dialog.h> -#include <libgnomeprint/gnome-print-master.h> -#include <libgnomeprint/gnome-print-master-preview.h> -#include <libgnomeprint/gnome-print-multipage.h> -#include <gal/widgets/e-unicode.h> -#include <gal/unicode/gunicode.h> -#include <addressbook/backend/ebook/e-book.h> -#include <addressbook/backend/ebook/e-card.h> -#include <addressbook/backend/ebook/e-card-simple.h> -#include <addressbook/backend/ebook/e-destination.h> - -#define SCALE 5 -#define HYPHEN_PIXELS 20 -#define HYPHEN_PENALTY ( (SCALE) * (SCALE) * (HYPHEN_PIXELS) * (HYPHEN_PIXELS) ) - -typedef struct _EContactPrintContext EContactPrintContext; - -struct _EContactPrintContext -{ -	GnomePrintContext *pc; -	GnomePrintMaster *master; -	gdouble x; -	gdouble y; -	gint column; -	EContactPrintStyle *style; -	gboolean first_section; -	gchar first_char_on_page; -	gchar last_char_on_page; -	GnomeFont *letter_heading_font; -	GnomeFont *letter_tab_font; -	char *character; -	gboolean first_contact; - -	gboolean uses_book; -	int type; -	EBook *book; -	gchar *query; - -	GList *cards; -}; - -static gint -e_contact_divide_text(GnomePrintContext *pc, GnomeFont *font, double width, const gchar *text, GList **return_val /* Of type char[] */) -{ -	if ( width == -1 || gnome_font_get_width_utf8(font, text) <= width ) { -		if ( return_val ) { -			*return_val = g_list_append(*return_val, g_strdup(text)); -		} -		return 1; -	} else { -#if 1 -		int i, l; -		double x = 0; -		int lastend = 0; -		int linestart = 0; -		int firstword = 1; -		int linecount = 0; -		l = strlen(text); -		for ( i = 0; i < l; i++ ) { -			if ( text[i] == ' ' ) { -				if ( (!firstword) && x + gnome_font_get_width_utf8_sized(font, text + lastend, i - lastend) > width ) { -					if (return_val) { -						*return_val = g_list_append(*return_val, g_strndup(text + linestart, lastend - linestart)); -					} -					x = gnome_font_get_width_utf8(font, "    "); -					linestart = lastend + 1; -					x += gnome_font_get_width_utf8_sized(font, text + linestart, i - linestart); -					lastend = i; -					linecount ++; -				} else { -					x += gnome_font_get_width_utf8_sized(font, text + lastend, i - lastend); -					lastend = i; -				} -				firstword = 0; -			} else if ( text[i] == '\n' ) { -				if ( (!firstword) && x + gnome_font_get_width_utf8_sized(font, text + lastend, i - lastend) > width ) { -					if (return_val) { -						*return_val = g_list_append(*return_val, g_strndup(text + linestart, lastend - linestart)); -					} -					linestart = lastend + 1; -					lastend = i; -					linecount ++; -				} -				if (return_val) { -					*return_val = g_list_append(*return_val, g_strndup(text + linestart, i - linestart)); -				} -				linestart = i + 1; -				lastend = i + 1; -				linecount ++; -				x = gnome_font_get_width_utf8(font, "    "); - -				firstword = 1; -			} -		} -		if ( (!firstword) && x + gnome_font_get_width_utf8_sized(font, text + lastend, i - lastend) > width ) { -			if (return_val) { -				*return_val = g_list_append(*return_val, g_strndup(text + linestart, lastend - linestart)); -			} -			linestart = lastend + 1; -			lastend = i; -			linecount ++; -		} -		if (return_val) { -			*return_val = g_list_append(*return_val, g_strndup(text + linestart, i - linestart)); -		} -		linecount ++; -		return(linecount); -#else -		HnjBreak *breaks; -		gint *result; -		gint *is; -		gint n_breaks = 0, n_actual_breaks = 0; -		gint i; -		gint l; -		gchar *hyphenation; -		double x = - gnome_font_get_width_utf8(font, "    ") * SCALE; -		HnjParams hnjparams; - -		hnjparams.set_width = width * SCALE + x; -		hnjparams.max_neg_space = 0; -		hnjparams.tab_width = 0; - -		l = strlen(text); -	 -		/* find possible line breaks. */ -		for (i = 0; i < l; i++) { -			if (text[i] == '-') -				n_breaks++; -			else if (text[i] == ' ') -				n_breaks++; -#if 0 - 			else if (hyphenation[i] & 1) -				n_breaks++; -#endif -		} - -		breaks = g_new( HnjBreak, n_breaks + 1 ); -		result = g_new( gint, n_breaks + 1 ); -		is = g_new( gint, n_breaks + 1 ); -		n_breaks = 0; -		/* find possible line breaks. */ -	 -		for (i = 0; i < l; i++) { -			if ( text[i] == '-' ) { -				x += gnome_font_get_width(font, text[i]) * SCALE; -				breaks[n_breaks].x0 = x; -				breaks[n_breaks].x1 = x; -				breaks[n_breaks].penalty = HYPHEN_PENALTY; -				breaks[n_breaks].flags = HNJ_JUST_FLAG_ISHYPHEN; -				is[n_breaks] = i + 1; -				n_breaks++; -			} else if ( text[i] == ' ' ) { -				breaks[ n_breaks ].x0 = x; -				x += gnome_font_get_width(font, text[i]) * SCALE; -				breaks[ n_breaks ].x1 = x; -				breaks[ n_breaks ].penalty = 0; -				breaks[ n_breaks ].flags = HNJ_JUST_FLAG_ISSPACE; -				is[ n_breaks ] = i + 1; -				n_breaks++; -#if 0 -			} else if (word->hyphenation[i] & 1) { -				breaks[n_breaks].x0 = x + gnome_font_get_width(font, '-') * SCALE; -				breaks[n_breaks].x1 = x; -				breaks[n_breaks].penalty = HYPHEN_PENALTY; -				breaks[n_breaks].flags = HNJ_JUST_FLAG_ISHYPHEN; -				is[n_breaks] = i + 1; -				n_breaks++; -#endif -			} else -				x += gnome_font_get_width(font, text[i]) * SCALE; - -		} -		is[n_breaks] = i; -		breaks[n_breaks].flags = 0; -		n_breaks++; - -		/* Calculate optimal line breaks. */ -		n_actual_breaks = hnj_hs_just (breaks, n_breaks, -					       &hnjparams, result); - -		if ( return_val ) { -			gchar *next_val; -			if ( breaks[result[0]].flags == HNJ_JUST_FLAG_ISHYPHEN && text[is[result[0]]] != '-' ) { -				next_val = g_new(gchar, is[result[0]] + 2); -				strncpy(next_val, text, is[result[0]]); -				next_val[is[result[0]]] = 0; -				strcat(next_val, "-"); -			} else { -				next_val = g_new(gchar, is[result[0]] + 1); -				strncpy(next_val, text, is[result[0]]); -				next_val[is[result[0]]] = 0; -			} -			*return_val = g_list_append(*return_val, next_val); -			 -			for ( i = 1; i < n_actual_breaks; i++ ) { -				if ( (breaks[result[i]].flags & HNJ_JUST_FLAG_ISHYPHEN) && (text[is[result[i]]] != '-') ) { -					next_val = g_new(gchar, is[result[i]] - is[result[i - 1]] + 2); -					strncpy(next_val, text + is[result[i - 1]], is[result[i]] - is[result[i - 1]]); -					next_val[is[result[i]] - is[result[i - 1]]] = 0; -					strcat(next_val, "-"); -				} else { -					next_val = g_new(gchar, is[result[i]] - is[result[i - 1]] + 1); -					strncpy(next_val, text + is[result[i - 1]], is[result[i]] - is[result[i - 1]]); -					next_val[is[result[i]] - is[result[i - 1]]] = 0; -				} -				*return_val = g_list_append(*return_val, next_val); -			} -		} -		 -		g_free (breaks); -		g_free (result); -		g_free (is); -		return n_actual_breaks; -#endif -	} -} - -static void -e_contact_output(GnomePrintContext *pc, GnomeFont *font, double x, double y, double width, const gchar *text) -{ -	GList *list = NULL, *list_start; -	int first_line = 1; -	gnome_print_gsave(pc); -	gnome_print_setfont(pc, font); -	e_contact_divide_text(pc, font, width, text, &list); -	for ( list_start = list; list; list = g_list_next(list)) { -		y -= gnome_font_get_ascender(font); -		gnome_print_moveto(pc, x, y); -		gnome_print_show(pc, (char *)list->data); -		y -= gnome_font_get_descender(font); -		y -= .2 * gnome_font_get_size (font); -		if ( first_line ) { -			x += gnome_font_get_width_utf8(font, "    "); -			first_line = 0; -		} -	} -	g_list_foreach( list_start, (GFunc) g_free, NULL ); -	g_list_free( list_start ); -	gnome_print_grestore(pc); -} - -static gdouble -e_contact_text_height(GnomePrintContext *pc, GnomeFont *font, double width, gchar *text) -{ -	int line_count = e_contact_divide_text(pc, font, width, text, NULL); -	return line_count * (gnome_font_get_ascender(font) + gnome_font_get_descender(font)) + -		(line_count - 1) * .2 * gnome_font_get_size (font); -} - -#if 0 -static void -e_contact_output_and_advance(EContactPrintContext *ctxt, GnomeFont *font, double x, double width, gchar *text) -{ -	ctxt->y -= .1 * gnome_font_get_size (font); -	e_contact_output(ctxt->pc, font, x, ctxt->y, width, text); -	ctxt->y -= e_contact_text_height(ctxt->pc, font, width, text); -	ctxt->y -= .1 * gnome_font_get_size (font); -} -#endif - -static void -e_contact_rectangle(GnomePrintContext *pc,  -		   gdouble x0, -		   gdouble y0, -		   gdouble x1, -		   gdouble y1, -		   gdouble r, -		   gdouble g, -		   gdouble b) -{ -	gnome_print_gsave(pc); -	gnome_print_setrgbcolor(pc, r, g, b); -	gnome_print_moveto(pc, x0, y0); -	gnome_print_lineto(pc, x1, y0); -	gnome_print_lineto(pc, x1, y1); -	gnome_print_lineto(pc, x0, y1); -	gnome_print_lineto(pc, x0, y0); -	gnome_print_fill(pc); -	gnome_print_grestore(pc); -} - -static double -e_contact_get_letter_tab_width (EContactPrintContext *ctxt) -{ -	return gnome_font_get_width_utf8(ctxt->letter_tab_font, "123") + 4 + 18; -} - -static double -e_contact_print_letter_tab (EContactPrintContext *ctxt) -{ -	unsigned char character; -	gdouble x, y; -	gdouble page_width = 72 * (ctxt->style->page_width - ctxt->style->left_margin - ctxt->style->right_margin); -	gdouble tab_height, tab_width; -	gdouble font_size; -	tab_height = 72 * (ctxt->style->page_height - ctxt->style->top_margin - ctxt->style->bottom_margin) / 27.0; -	font_size = tab_height / 2; -	tab_width = e_contact_get_letter_tab_width(ctxt) - 18; -	x = page_width + 72 * (ctxt->style->left_margin) - tab_width; -	y = 72 * (ctxt->style->page_height - ctxt->style->top_margin); - - -	gnome_print_gsave( ctxt->pc ); -	if ( ctxt->style->print_using_grey ) -		e_contact_rectangle( ctxt->pc, x, 72 * (ctxt->style->page_height - ctxt->style->top_margin), x + tab_width, ctxt->style->bottom_margin * 72, .85, .85, .85 ); -	for ( character = 'A' - 1; character <= 'Z'; character ++ ) { -		char string[] = "123"; -		if ( character >= 'A' ) { -			string[0] = tolower(character); -			string[1] = 0; -		} -		if ( character >= ctxt->first_char_on_page && character <= ctxt->last_char_on_page ) { -			e_contact_rectangle( ctxt->pc, x + 1, y - 1, x + tab_width - 1, y - (tab_height - 1), 0, 0, 0 ); -			gnome_print_setrgbcolor( ctxt->pc, 1, 1, 1 ); -			e_contact_output( ctxt->pc, ctxt->letter_tab_font, x + tab_width / 2 - gnome_font_get_width_utf8(ctxt->letter_tab_font, string) / 2, y - (tab_height - font_size) / 2, -1, string ); -		} else { -			gnome_print_setrgbcolor( ctxt->pc, 0, 0, 0 ); -			e_contact_output( ctxt->pc, ctxt->letter_tab_font, x + tab_width / 2 - gnome_font_get_width_utf8(ctxt->letter_tab_font, string) / 2, y - (tab_height - font_size) / 2, -1, string ); -		} -		y -= tab_height; -	} -	gnome_print_grestore( ctxt->pc ); -	return gnome_font_get_width_utf8(ctxt->style->body_font, "123") + gnome_font_get_size (ctxt->style->body_font) / 5; -} - -static double -e_contact_get_letter_heading_height (EContactPrintContext *ctxt) -{ -	gdouble ascender, descender; -	ascender = gnome_font_get_ascender(ctxt->letter_heading_font); -	descender = gnome_font_get_descender(ctxt->letter_heading_font); -	return ascender + descender + 9; -} - -static void -e_contact_print_letter_heading (EContactPrintContext *ctxt, gchar *character) -{ -	gdouble ascender, descender; -	gdouble width; - -	width = gnome_font_get_width_utf8(ctxt->letter_heading_font, "m") * 1.7; -	ascender = gnome_font_get_ascender(ctxt->letter_heading_font); -	descender = gnome_font_get_descender(ctxt->letter_heading_font); -	gnome_print_gsave( ctxt->pc ); -	e_contact_rectangle( ctxt->pc, ctxt->x, ctxt->y, ctxt->x + width, ctxt->y - (ascender + descender + 6), 0, 0, 0); -	gnome_print_setrgbcolor(ctxt->pc, 1, 1, 1); -	ctxt->y -= 4; -	e_contact_output(ctxt->pc, ctxt->letter_heading_font, ctxt->x + (width - gnome_font_get_width_utf8(ctxt->letter_heading_font, character))/ 2, ctxt->y, -1, character); -	ctxt->y -= ascender + descender; -	ctxt->y -= 2; -	ctxt->y -= 3; -	gnome_print_grestore( ctxt->pc ); -} - -static void -e_contact_start_new_page(EContactPrintContext *ctxt) -{ -	ctxt->x = ctxt->style->left_margin * 72; -	ctxt->y = (ctxt->style->page_height - ctxt->style->top_margin) * 72; -	ctxt->column = 0; -	if ( ctxt->style->letter_tabs ) -		e_contact_print_letter_tab(ctxt); -	gnome_print_showpage(ctxt->pc); - -	ctxt->first_char_on_page = ctxt->last_char_on_page + 1; -} - -static double -e_contact_get_card_size(ECardSimple *simple, EContactPrintContext *ctxt) -{ -	gdouble height = 0; -	gdouble page_width  = 72 * (ctxt->style->page_width - ctxt->style->left_margin - ctxt->style->right_margin); -	gdouble column_width; -	char *file_as; -	gint field; -	if ( ctxt->style->letter_tabs ) -		page_width -= e_contact_get_letter_tab_width(ctxt); -	column_width = (page_width + 18) / ctxt->style->num_columns - 18; - -	height += gnome_font_get_size (ctxt->style->headings_font) * .2; - -	height += gnome_font_get_size (ctxt->style->headings_font) * .2; - -	gtk_object_get(GTK_OBJECT(simple->card), -		       "file_as", &file_as, -		       NULL); -	height += e_contact_text_height(ctxt->pc, ctxt->style->headings_font, column_width - 4, file_as); -	height += gnome_font_get_size (ctxt->style->headings_font) * .2; - -	height += gnome_font_get_size (ctxt->style->headings_font) * .2; -	 -	for(field = E_CARD_SIMPLE_FIELD_FULL_NAME; field != E_CARD_SIMPLE_FIELD_LAST_SIMPLE_STRING; field++) { -		char *string; -		string = e_card_simple_get(simple, field); -		if (string && *string) { -			double xoff = 0; -			xoff += gnome_font_get_width_utf8(ctxt->style->body_font, e_card_simple_get_name(simple, field)); -			xoff += gnome_font_get_width_utf8(ctxt->style->body_font, ":  "); -			height += e_contact_text_height(ctxt->pc, ctxt->style->body_font, column_width - xoff, string); -			height += .2 * gnome_font_get_size (ctxt->style->body_font); -		} -		g_free(string); -	} -	height += gnome_font_get_size (ctxt->style->headings_font) * .4; - -	/* g_message ("%s %g", e_card_simple_get (simple, E_CARD_SIMPLE_FIELD_FILE_AS), height); */ -	return height; -} - - -static void -e_contact_print_card (ECardSimple *simple, EContactPrintContext *ctxt) -{ -	gdouble page_width  = 72 * (ctxt->style->page_width - ctxt->style->left_margin - ctxt->style->right_margin); -	gdouble column_width; -	char *file_as; -	int field; - -	if ( ctxt->style->letter_tabs ) -		page_width -= e_contact_get_letter_tab_width(ctxt); -	column_width = (page_width + 18) / ctxt->style->num_columns - 18; - -	gnome_print_gsave(ctxt->pc); - -	ctxt->y -= gnome_font_get_size (ctxt->style->headings_font) * .2; - -	ctxt->y -= gnome_font_get_size (ctxt->style->headings_font) * .2; - -	gtk_object_get(GTK_OBJECT(simple->card), -		       "file_as", &file_as, -		       NULL); -	if (ctxt->style->print_using_grey) -		e_contact_rectangle(ctxt->pc, ctxt->x, ctxt->y + gnome_font_get_size (ctxt->style->headings_font) * .3, ctxt->x + column_width, ctxt->y - e_contact_text_height(ctxt->pc, ctxt->style->headings_font, column_width - 4, file_as) - gnome_font_get_size (ctxt->style->headings_font) * .3, .85, .85, .85); -	e_contact_output(ctxt->pc, ctxt->style->headings_font, ctxt->x + 2, ctxt->y, column_width - 4, file_as); -	ctxt->y -= e_contact_text_height(ctxt->pc, ctxt->style->headings_font, column_width - 4, file_as); -	ctxt->y -= gnome_font_get_size (ctxt->style->headings_font) * .2; - -	ctxt->y -= gnome_font_get_size (ctxt->style->headings_font) * .2; -	 -	for(field = E_CARD_SIMPLE_FIELD_FULL_NAME; field != E_CARD_SIMPLE_FIELD_LAST_SIMPLE_STRING; field++) { -		char *string; -		string = e_card_simple_get(simple, field); - -		if (string && !strncmp (string, "<?xml", 4)) { -			EDestination *dest = e_destination_import (string); -			if (dest != NULL) { -				gchar *new_string = g_strdup (e_destination_get_address (dest)); -				g_free (string); -				string = new_string; -				gtk_object_unref (GTK_OBJECT (dest)); -			} -		} - -		if (string && *string) { -			double xoff = 0; -			e_contact_output(ctxt->pc, ctxt->style->body_font, ctxt->x + xoff, ctxt->y, -1, e_card_simple_get_name(simple, field)); -			xoff += gnome_font_get_width_utf8(ctxt->style->body_font, e_card_simple_get_name(simple, field)); -			e_contact_output(ctxt->pc, ctxt->style->body_font, ctxt->x + xoff, ctxt->y, -1, ":  "); -			xoff += gnome_font_get_width_utf8(ctxt->style->body_font, ":  "); -			e_contact_output(ctxt->pc, ctxt->style->body_font, ctxt->x + xoff, ctxt->y, column_width - xoff, string); -			ctxt->y -= e_contact_text_height(ctxt->pc, ctxt->style->body_font, column_width - xoff, string); -			ctxt->y -= .2 * gnome_font_get_size (ctxt->style->body_font); -		} -		g_free(string); -	} -	 -	ctxt->y -= gnome_font_get_size (ctxt->style->headings_font) * .4; -	gnome_print_grestore(ctxt->pc); -} - -static void -e_contact_start_new_column (EContactPrintContext *ctxt) -{ -	gdouble page_width  = 72 * (ctxt->style->page_width - ctxt->style->left_margin - ctxt->style->right_margin); -	gdouble column_offset; -	if ( ctxt->style->letter_tabs )  -		page_width -= e_contact_get_letter_tab_width(ctxt); -	column_offset = (page_width + 18) / ctxt->style->num_columns; -	ctxt->column ++; -	if (ctxt->column >= ctxt->style->num_columns) { -		e_contact_start_new_page(ctxt); -		ctxt->column = 0; -	} -	ctxt->x = (72 * ctxt->style->left_margin) + column_offset * ctxt->column; -	ctxt->y = 72 * (ctxt->style->page_height - ctxt->style->top_margin); -} - -static void -complete_sequence(EBookView *book_view, EContactPrintContext *ctxt) -{ -	GList *cards = ctxt->cards; - -	gdouble page_width  = 72 * (ctxt->style->page_width - ctxt->style->left_margin - ctxt->style->right_margin); - -	ctxt->first_contact = TRUE; -	ctxt->character = NULL; -	ctxt->y = (ctxt->style->page_height - ctxt->style->top_margin) * 72; -	ctxt->x = (ctxt->style->left_margin) * 72; -	if ( ctxt->style->letter_tabs )  -		page_width -= e_contact_get_letter_tab_width(ctxt); -	 -	ctxt->first_char_on_page = 'A' - 1; - -	for(; cards; cards = cards->next) { -		ECard *card = cards->data; -		ECardSimple *simple = e_card_simple_new(card); -		guchar *file_as; - -		gtk_object_get(GTK_OBJECT(card), -			       "file_as", &file_as, -			       NULL); -		if ( file_as && (!ctxt->character || *ctxt->character != tolower(*file_as)) ) { -			if (ctxt->style->sections_start_new_page && ! ctxt->first_contact) { -				e_contact_start_new_page(ctxt); -			} -			else if ((!ctxt->first_contact) && (ctxt->y - e_contact_get_letter_heading_height(ctxt) - e_contact_get_card_size(simple, ctxt) < ctxt->style->bottom_margin * 72)) -				e_contact_start_new_column(ctxt); -			if (!ctxt->character) -				ctxt->character = g_strdup(" "); -			*ctxt->character = tolower(*file_as); -			if ( ctxt->style->letter_headings ) -				e_contact_print_letter_heading(ctxt, ctxt->character); -			ctxt->first_section = FALSE; -		}  -		else if ( (!ctxt->first_contact) && (ctxt->y - e_contact_get_card_size(simple, ctxt) < ctxt->style->bottom_margin * 72)) { -			e_contact_start_new_column(ctxt); -			if ( ctxt->style->letter_headings ) -				e_contact_print_letter_heading(ctxt, ctxt->character); -		} -		ctxt->last_char_on_page = toupper(*file_as); -		if ( ctxt->last_char_on_page < ctxt->first_char_on_page ) -			ctxt->first_char_on_page = ctxt->last_char_on_page; -		e_contact_print_card(simple, ctxt); -		ctxt->first_contact = FALSE; -		gtk_object_unref(GTK_OBJECT(simple)); -	} -	ctxt->last_char_on_page = 'Z'; -	if ( ctxt->style->letter_tabs ) -		e_contact_print_letter_tab(ctxt); -	gnome_print_showpage(ctxt->pc); -	gnome_print_context_close(ctxt->pc); -	g_free(ctxt->character); -	if (book_view) -		gtk_object_unref(GTK_OBJECT(book_view)); -	if (ctxt->type == GNOME_PRINT_PREVIEW) { -		GtkWidget *preview; -		preview = GTK_WIDGET(gnome_print_master_preview_new(ctxt->master, "Print Preview")); -		gtk_widget_show_all(preview); -	} else { -		gnome_print_master_print(ctxt->master); -	} -	gtk_object_unref(GTK_OBJECT(ctxt->pc)); -	gtk_object_unref(GTK_OBJECT(ctxt->master)); -	if (ctxt->book) -		gtk_object_unref(GTK_OBJECT(ctxt->book)); -	g_free(ctxt->query); -	g_list_foreach(ctxt->cards, (GFunc) gtk_object_unref, NULL); -	g_list_free(ctxt->cards); -	gtk_object_unref(GTK_OBJECT(ctxt->style->headings_font)); -	gtk_object_unref(GTK_OBJECT(ctxt->style->body_font)); -	gtk_object_unref(GTK_OBJECT(ctxt->style->header_font)); -	gtk_object_unref(GTK_OBJECT(ctxt->style->footer_font)); -	gtk_object_unref(GTK_OBJECT(ctxt->letter_heading_font)); -	gtk_object_unref(GTK_OBJECT(ctxt->letter_tab_font)); -	g_free(ctxt->style); -	g_free(ctxt); -} - -static int -card_compare (ECard *card1, ECard *card2) { -	if (card1 && card2) { -		char *file_as1, *file_as2; -		gtk_object_get(GTK_OBJECT(card1), -			       "file_as", &file_as1, -			       NULL); -		gtk_object_get(GTK_OBJECT(card2), -			       "file_as", &file_as2, -			       NULL); -		if (file_as1 && file_as2) -			return g_utf8_collate(file_as1, file_as2); -		if (file_as1) -			return -1; -		if (file_as2) -			return 1; -		return strcmp(e_card_get_id(card1), e_card_get_id(card2)); -	} else { -		return 0; -	} -} - -static void -create_card(EBookView *book_view, const GList *cards, EContactPrintContext *ctxt) -{ -	for(; cards; cards = cards->next) { -		ECard *card = cards->data; -		gtk_object_ref(GTK_OBJECT(card)); -		ctxt->cards = g_list_insert_sorted(ctxt->cards, card, (GCompareFunc) card_compare); -	} -} - -static void -book_view_loaded (EBook *book, EBookStatus status, EBookView *book_view, EContactPrintContext *ctxt) -{ -	gtk_object_ref(GTK_OBJECT(book_view)); - -	gtk_signal_connect(GTK_OBJECT(book_view), -			   "card_added", -			   GTK_SIGNAL_FUNC(create_card), -			   ctxt); - -	gtk_signal_connect(GTK_OBJECT(book_view), -			   "sequence_complete", -			   GTK_SIGNAL_FUNC(complete_sequence), -			   ctxt); -} - -static void -e_contact_do_print_cards (EBook *book, char *query, EContactPrintContext *ctxt) -{ -	e_book_get_book_view(book, query, (EBookBookViewCallback) book_view_loaded, ctxt); -} - -#if 0 -static double -e_contact_get_phone_list_size(ECardSimple *simple, EContactPrintContext *ctxt) -{ -	double height = 0; -	int field; - -	height += gnome_font_get_size (ctxt->style->headings_font) * .2; - -	height += gnome_font_get_size (ctxt->style->headings_font) * .2; -	 -	for(field = E_CARD_SIMPLE_FIELD_FULL_NAME; field != E_CARD_SIMPLE_FIELD_LAST_SIMPLE_STRING; field++) { -		char *string; -		string = e_card_simple_get(simple, field); -		if (string && *string) { -			if ( 1 ) /* field is a phone field. */ { -				gchar *field = string; -				height += e_contact_text_height(ctxt->pc, ctxt->style->body_font, 100, field); -				height += .2 * gnome_font_get_size (ctxt->style->body_font); -			} -		} -		g_free(string); -	} -	height += gnome_font_get_size (ctxt->style->headings_font) * .4; -	return height; -} - - -static void -e_contact_print_phone_list (ECard *card, EContactPrintContext *ctxt) -{ -	gdouble page_width  = 72 * (ctxt->style->page_width - ctxt->style->left_margin - ctxt->style->right_margin); -	gdouble column_width; -	double xoff, dotwidth; -	int dotcount; -	char *dots; -	int i; -	char *file_as; -	if ( ctxt->style->letter_tabs ) -		page_width -= e_contact_get_letter_tab_width(ctxt); -	column_width = (page_width + 18) / ctxt->style->num_columns - 18; - -	gnome_print_gsave(ctxt->pc); - -	ctxt->y -= gnome_font_get_size (ctxt->style->headings_font) * .2; - -	ctxt->y -= gnome_font_get_size (ctxt->style->headings_font) * .2; - -	e_contact_output(ctxt->pc, ctxt->style->body_font, ctxt->x, ctxt->y, -1, e_card_get_string_fileas(card)); -	 -	xoff = column_width - 9 * gnome_font_get_size (ctxt->style->body_font); -	dotwidth = xoff -  -		gnome_font_get_width_utf8(ctxt->style->body_font, e_card_get_string_fileas(card)) -  -		gnome_font_get_width_utf8(ctxt->style->body_font, " "); -	dotcount = dotwidth / gnome_font_get_width(ctxt->style->body_font, '.'); -	dots = g_new(gchar, dotcount + 1); -	for (i = 0; i < dotcount; i++) -		dots[i] = '.'; -	dots[dotcount] = 0; -	e_contact_output(ctxt->pc, ctxt->style->body_font, ctxt->x + xoff - dotcount * gnome_font_get_width(ctxt->style->body_font, '.'), ctxt->y, -1, dots); -	g_free(dots); -		 -	for(; shown_fields; shown_fields = g_list_next(shown_fields)) { -		if ( 1 ) /* field is a phone field. */ { -			gchar *field = e_card_get_string(card, shown_fields->data); -			e_contact_output(ctxt->pc, ctxt->style->body_font, ctxt->x + xoff, ctxt->y, -1, shown_fields->data); -			e_contact_output(ctxt->pc, ctxt->style->body_font,  -					 ctxt->x + column_width - gnome_font_get_width_utf8(ctxt->style->body_font,  -											      field), -					 ctxt->y, -					 -1, -					 field); -			ctxt->y -= e_contact_text_height(ctxt->pc, ctxt->style->body_font, 100, field); -			ctxt->y -= .2 * gnome_font_get_size (ctxt->style->body_font); -		} -	} -	ctxt->y -= gnome_font_get_size (ctxt->style->headings_font) * .4; -	gnome_print_grestore(ctxt->pc); -} - -static void -e_contact_do_print_phone_list (EBook *book, char *query, EContactPrintContext *ctxt) -{ -	ECard *card = NULL; -	int i; -	gdouble page_width  = 72 * (ctxt->style->page_width - ctxt->style->left_margin - ctxt->style->right_margin); -	gdouble column_width; -	ctxt->first_contact = TRUE; -	ctxt->character = NULL; -	ctxt->y = (ctxt->style->page_height - ctxt->style->top_margin) * 72; -	ctxt->x = (ctxt->style->left_margin) * 72; -	if ( ctxt->style->letter_tabs )  -		page_width -= e_contact_get_letter_tab_width(ctxt); -	 -	ctxt->first_char_on_page = 'A' - 1; - -	column_width = (page_width + 18) / ctxt->style->num_columns - 18; -	/* -	for(card = e_book_get_first(book); card; card = e_book_get_next(book)) { -	*/ -	for (i=0; i < 30; i++) { -		guchar *file_as = e_card_get_string_fileas(card); -		if ( file_as && (!character || *character != tolower(*file_as)) ) { -			if (ctxt->style->sections_start_new_page && ! first_contact) { -				e_contact_start_new_page(ctxt); -			} -			else if ((!first_contact) && (ctxt->y - e_contact_get_letter_heading_height(ctxt) - e_contact_get_phone_list_size(card, ctxt, shown_fields) < ctxt->style->bottom_margin * 72)) -				e_contact_start_new_column(ctxt); -			if (!character) -				character = g_strdup(" "); -			*character = tolower(*file_as); -			if ( ctxt->style->letter_headings ) -				e_contact_print_letter_heading(ctxt, character); -			ctxt->first_section = FALSE; -		}  -		else if ( (!first_contact) && (ctxt->y - e_contact_get_card_size(card, ctxt, shown_fields) < ctxt->style->bottom_margin * 72)) { -			e_contact_start_new_column(ctxt); -			if ( ctxt->style->letter_headings ) -				e_contact_print_letter_heading(ctxt, character); -		} -		ctxt->last_char_on_page = toupper(*file_as); -		if ( ctxt->last_char_on_page < ctxt->first_char_on_page ) -			ctxt->first_char_on_page = ctxt->last_char_on_page; -		e_contact_print_phone_list(card, ctxt, shown_fields); -		first_contact = FALSE; -	} -	ctxt->last_char_on_page = 'Z'; -	if ( ctxt->style->letter_tabs ) -		e_contact_print_letter_tab(ctxt); -	gnome_print_showpage(ctxt->pc); -	gnome_print_context_close(ctxt->pc); -	g_free(character); -} -#endif - -static void -e_contact_do_print (EBook *book, char *query, EContactPrintContext *ctxt) -{ -	switch ( ctxt->style->type ) { -	case E_CONTACT_PRINT_TYPE_CARDS: -		e_contact_do_print_cards( book, query, ctxt); -		break; -#if 0 -	case E_CONTACT_PRINT_TYPE_PHONE_LIST: -		e_contact_do_print_phone_list( book, query, ctxt ); -		break; -#endif -	default: -		break; -	} -} - -static void lowify( char *data ) -{ -	for ( ; *data; data++ ) -		*data = tolower((unsigned char) *data); -} - -static gboolean get_bool( char *data ) -{ -	if ( data ) { -		lowify ( data ); -		return ! strcmp(data, "true"); -	} else -		return FALSE; -} - -static void get_string( char *data, char **variable ) -{ -	g_free ( *variable ); -	if ( data ) -		*variable = g_strdup( data ); -	else -		*variable = g_strdup( "" ); -} - -static int get_integer( char *data ) -{ -	if ( data ) -		return atoi(data); -	else  -		return 0; -} - -static double get_float( char *data ) -{ -	if ( data ) -		return atof(data); -	else  -		return 0; -} - -static void get_font( char *data, GnomeFont **variable ) -{ -	if ( data ) { -		GnomeFont *font = gnome_font_new_from_full_name( data ); -		if ( font ) { -			gtk_object_unref( GTK_OBJECT(*variable) ); -			*variable = font; -		} -	} -} - - -static void -e_contact_build_style(EContactPrintStyle *style) -{ -	xmlDocPtr styledoc; -	gchar *filename; -	style->title = g_strdup(""); -	style->type = E_CONTACT_PRINT_TYPE_CARDS; -	style->sections_start_new_page = TRUE; -	style->num_columns = 2; -	style->blank_forms = 2; -	style->letter_tabs = TRUE; -	style->letter_headings = FALSE; - -	style->headings_font = gnome_font_new_closest("Helvetica", GNOME_FONT_BOLD, FALSE, 8); -	style->body_font = gnome_font_new_closest("Helvetica", GNOME_FONT_BOOK, FALSE, 6); - -	style->print_using_grey = TRUE; -	style->paper_type = 0; -	style->paper_width = 8.5; -	style->paper_height = 11; -	style->paper_source = 0; -	style->top_margin = .5; -	style->left_margin = .5; -	style->bottom_margin = .5; -	style->right_margin = .5; -	style->page_size = 0; -	style->page_width = 2.75; -	style->page_height = 4.25; -#if 0 -	style->page_width = 4.25; -	style->page_height = 5.5; -#endif -#if 0 -	style->page_width = 5.5; -	style->page_height = 8.5; -#endif -	style->orientation_portrait = FALSE; - -	style->header_font = gnome_font_new_closest("Helvetica", GNOME_FONT_BOOK, FALSE, 6); - -	style->left_header = g_strdup(""); -	style->center_header = g_strdup(""); -	style->right_header = g_strdup(""); - -	style->footer_font = gnome_font_new_closest("Helvetica", GNOME_FONT_BOOK, FALSE, 6); - -	style->left_footer = g_strdup(""); -	style->center_footer = g_strdup(""); -	style->right_footer = g_strdup(""); -	style->reverse_on_even_pages = FALSE; -	filename = g_concat_dir_and_file(EVOLUTION_ECPSDIR, "medbook.ecps"); -	styledoc = xmlParseFile(filename); -	g_free(filename); -	if (styledoc) { -		xmlNodePtr stylenode = xmlDocGetRootElement(styledoc); -		xmlNodePtr node; -		for (node = stylenode->childs; node; node = node->next) { -			char *data = xmlNodeGetContent ( node ); -			if ( !strcmp( node->name, "title" ) ) { -				get_string(data, &(style->title)); -			} else if ( !strcmp( node->name, "type" ) ) { -				lowify( data ); -				if ( !strcmp( data, "cards" ) ) -					style->type = E_CONTACT_PRINT_TYPE_CARDS; -				else if ( !strcmp( data, "memo_style" ) ) -					style->type = E_CONTACT_PRINT_TYPE_MEMO_STYLE; -				else if ( !strcmp( data, "phone_list" ) ) -					style->type = E_CONTACT_PRINT_TYPE_PHONE_LIST; -			} else if ( !strcmp( node->name, "sections_start_new_page" ) ) { -				style->sections_start_new_page = get_bool(data); -			} else if ( !strcmp( node->name, "num_columns" ) ) { -				style->num_columns = get_integer(data); -			} else if ( !strcmp( node->name, "blank_forms" ) ) { -				style->blank_forms = get_integer(data); -			} else if ( !strcmp( node->name, "letter_tabs" ) ) { -				style->letter_tabs = get_bool(data); -			} else if ( !strcmp( node->name, "letter_headings" ) ) { -				style->letter_headings = get_bool(data); -			} else if ( !strcmp( node->name, "headings_font" ) ) { -				get_font( data, &(style->headings_font) ); -			} else if ( !strcmp( node->name, "body_font" ) ) { -				get_font( data, &(style->body_font) ); -			} else if ( !strcmp( node->name, "print_using_grey" ) ) { -				style->print_using_grey = get_bool(data); -			} else if ( !strcmp( node->name, "paper_width" ) ) { -				style->paper_width = get_float(data); -			} else if ( !strcmp( node->name, "paper_height" ) ) { -				style->paper_height = get_float(data); -			} else if ( !strcmp( node->name, "top_margin" ) ) { -				style->top_margin = get_float(data); -			} else if ( !strcmp( node->name, "left_margin" ) ) { -				style->left_margin = get_float(data); -			} else if ( !strcmp( node->name, "bottom_margin" ) ) { -				style->bottom_margin = get_float(data); -			} else if ( !strcmp( node->name, "right_margin" ) ) { -				style->right_margin = get_float(data); -			} else if ( !strcmp( node->name, "page_width" ) ) { -				style->page_width = get_float(data); -			} else if ( !strcmp( node->name, "page_height" ) ) { -				style->page_height = get_float(data); -			} else if ( !strcmp( node->name, "orientation" ) ) { -				if ( data ) { -					lowify(data); -					style->orientation_portrait = strcmp(data, "landscape"); -				} else { -					style->orientation_portrait = TRUE; -				} -			} else if ( !strcmp( node->name, "header_font" ) ) { -				get_font( data, &(style->header_font) ); -			} else if ( !strcmp( node->name, "left_header" ) ) { -				get_string(data, &(style->left_header)); -			} else if ( !strcmp( node->name, "center_header" ) ) { -				get_string(data, &(style->center_header)); -			} else if ( !strcmp( node->name, "right_header" ) ) { -				get_string(data, &(style->right_header)); -			} else if ( !strcmp( node->name, "footer_font" ) ) { -				get_font( data, &(style->footer_font) ); -			} else if ( !strcmp( node->name, "left_footer" ) ) { -				get_string(data, &(style->left_footer)); -			} else if ( !strcmp( node->name, "center_footer" ) ) { -				get_string(data, &(style->center_footer)); -			} else if ( !strcmp( node->name, "right_footer" ) ) { -				get_string(data, &(style->right_footer)); -			} else if ( !strcmp( node->name, "reverse_on_even_pages" ) ) { -				style->reverse_on_even_pages = get_bool(data); -			} -			if ( data ) -				xmlFree (data); -		} -		xmlFreeDoc(styledoc); -	} -} - -static gint -e_contact_print_close(GnomeDialog *dialog, gpointer data) -{ -	return FALSE; -} - -static void -e_contact_print_button(GnomeDialog *dialog, gint button, gpointer data) -{ -	EContactPrintContext *ctxt = g_new(EContactPrintContext, 1); -	EContactPrintStyle *style = g_new(EContactPrintStyle, 1); -	GnomePrintMaster *master; -	GnomePrintContext *pc; -	gboolean uses_book = (gint) gtk_object_get_data(GTK_OBJECT(dialog), "uses_book"); -	EBook *book = NULL; -	char *query = NULL; -	ECard *card = NULL; -	gdouble font_size; -	if (uses_book) { -		book = gtk_object_get_data(GTK_OBJECT(dialog), "book"); -		query = gtk_object_get_data(GTK_OBJECT(dialog), "query"); -	} else { -		card = gtk_object_get_data(GTK_OBJECT(dialog), "card"); -	} -	switch( button ) { -	case GNOME_PRINT_PRINT: -		master = gnome_print_master_new_from_dialog( GNOME_PRINT_DIALOG(dialog) ); -		pc = gnome_print_master_get_context( master ); -		e_contact_build_style(style); -		 -		ctxt->x = 0; -		ctxt->y = 0; -		ctxt->column = 0; -		ctxt->style = style; -		ctxt->master = master; -		ctxt->first_section = TRUE; -		ctxt->first_char_on_page = 'A' - 1; -		ctxt->type = GNOME_PRINT_PRINT; - -		font_size = 72 * ctxt->style->page_height / 27.0 / 2.0; -		ctxt->letter_heading_font = gnome_font_new(gnome_font_get_name(ctxt->style->headings_font), gnome_font_get_size (ctxt->style->headings_font) * 1.5); -		ctxt->letter_tab_font = gnome_font_new(gnome_font_get_name(ctxt->style->headings_font), font_size); -	 -		ctxt->pc = GNOME_PRINT_CONTEXT(gnome_print_multipage_new_from_sizes(pc,  -										   72 * style->paper_width,  -										   72 * style->paper_height, -										   72 * style->page_width, -										   72 * style->page_height)); -		 -		ctxt->book = book; -		ctxt->query = query; -		if (uses_book) { -			ctxt->cards = NULL; -			e_contact_do_print(book, ctxt->query, ctxt); -		} else { -			ctxt->cards = g_list_append(NULL, card); -			complete_sequence(NULL, ctxt); -		} -		gnome_dialog_close(dialog); -		break; -	case GNOME_PRINT_PREVIEW: -		master = gnome_print_master_new_from_dialog( GNOME_PRINT_DIALOG(dialog) ); -		pc = gnome_print_master_get_context( master ); -		e_contact_build_style(style); -		 -		ctxt->x = 0; -		ctxt->y = 0; -		ctxt->column = 0; -		ctxt->style = style; -		ctxt->master = master; -		ctxt->first_section = TRUE; -		ctxt->first_char_on_page = 'A' - 1; -		ctxt->type = GNOME_PRINT_PREVIEW; - -		font_size = 72 * ctxt->style->page_height / 27.0 / 2.0; -		ctxt->letter_heading_font = gnome_font_new(gnome_font_get_name(ctxt->style->headings_font), gnome_font_get_size (ctxt->style->headings_font) * 1.5); -		ctxt->letter_tab_font = gnome_font_new(gnome_font_get_name(ctxt->style->headings_font), font_size); -		 -		ctxt->pc = GNOME_PRINT_CONTEXT(gnome_print_multipage_new_from_sizes(pc,  -										   72 * style->paper_width,  -										   72 * style->paper_height, -										   72 * style->page_width, -										   72 * style->page_height)); -		 -		ctxt->book = book; -		ctxt->query = g_strdup(query); -		if (uses_book) { -			ctxt->cards = NULL; -			gtk_object_ref(GTK_OBJECT(book)); -			e_contact_do_print(book, ctxt->query, ctxt); -		} else { -			ctxt->cards = g_list_append(NULL, card); -			gtk_object_ref(GTK_OBJECT(card)); -			complete_sequence(NULL, ctxt); -		} -		break; -	case GNOME_PRINT_CANCEL: -		if (uses_book) -			gtk_object_unref(GTK_OBJECT(book)); -		else -			gtk_object_unref(GTK_OBJECT(card)); -		g_free(query); -		gnome_dialog_close(dialog); -		g_free(style); -		g_free(ctxt); -		break; -	} -} - -GtkWidget * -e_contact_print_dialog_new(EBook *book, char *query) -{ -	GtkWidget *dialog; -	 -	 -	dialog = gnome_print_dialog_new(_("Print cards"), GNOME_PRINT_DIALOG_RANGE | GNOME_PRINT_DIALOG_COPIES); -	gnome_print_dialog_construct_range_any(GNOME_PRINT_DIALOG(dialog), GNOME_PRINT_RANGE_ALL | GNOME_PRINT_RANGE_SELECTION, -					       NULL, NULL, NULL); - -	gtk_object_ref(GTK_OBJECT(book)); -	gtk_object_set_data(GTK_OBJECT(dialog), "uses_book", (void *) 1); -	gtk_object_set_data(GTK_OBJECT(dialog), "book", book); -	gtk_object_set_data(GTK_OBJECT(dialog), "query", g_strdup(query)); -	gtk_signal_connect(GTK_OBJECT(dialog), -			   "clicked", GTK_SIGNAL_FUNC(e_contact_print_button), NULL); -	gtk_signal_connect(GTK_OBJECT(dialog), -			   "close", GTK_SIGNAL_FUNC(e_contact_print_close), NULL); -	return dialog; -} - -void -e_contact_print_preview(EBook *book, char *query) -{ -	EContactPrintContext *ctxt = g_new(EContactPrintContext, 1); -	EContactPrintStyle *style = g_new(EContactPrintStyle, 1); -	GnomePrintMaster *master; -	GnomePrintContext *pc; -	gdouble font_size; - -	master = gnome_print_master_new(); -	gnome_print_master_set_copies (master, 1, FALSE); -	pc = gnome_print_master_get_context (master); -	e_contact_build_style (style); - -	ctxt->x = 0; -	ctxt->y = 0; -	ctxt->column = 0; -	ctxt->style = style; -	ctxt->master = master; -	ctxt->first_section = TRUE; -	ctxt->first_char_on_page = 'A' - 1; -	ctxt->type = GNOME_PRINT_PREVIEW; - -	font_size = 72 * ctxt->style->page_height / 27.0 / 2.0; -	ctxt->letter_heading_font = gnome_font_new(gnome_font_get_name(ctxt->style->headings_font), gnome_font_get_size (ctxt->style->headings_font) * 1.5); -	ctxt->letter_tab_font = gnome_font_new(gnome_font_get_name(ctxt->style->headings_font), font_size); - -	ctxt->pc = GNOME_PRINT_CONTEXT(gnome_print_multipage_new_from_sizes(pc,  -									    72 * style->paper_width,  -									    72 * style->paper_height, -									    72 * style->page_width, -									    72 * style->page_height)); - -	ctxt->book = book; -	ctxt->query = g_strdup(query); -	ctxt->cards = NULL; -	gtk_object_ref(GTK_OBJECT(book)); -	e_contact_do_print(book, ctxt->query, ctxt); -} - -GtkWidget * -e_contact_print_card_dialog_new(ECard *card) -{ -	GtkWidget *dialog; -	 -	dialog = gnome_print_dialog_new(_("Print card"), GNOME_PRINT_DIALOG_COPIES); - -	card = e_card_duplicate(card); -	gtk_object_set_data(GTK_OBJECT(dialog), "card", card); -	gtk_object_set_data(GTK_OBJECT(dialog), "uses_book", (void *) 0); -	gtk_signal_connect(GTK_OBJECT(dialog), -			   "clicked", GTK_SIGNAL_FUNC(e_contact_print_button), NULL); -	gtk_signal_connect(GTK_OBJECT(dialog), -			   "close", GTK_SIGNAL_FUNC(e_contact_print_close), NULL); -	return dialog; -} - -/* FIXME: Print all the contacts selected. */ -GtkWidget * -e_contact_print_card_list_dialog_new(GList *list) -{ -	GtkWidget *dialog; -	ECard *card; - -	if (list == NULL) -		return NULL; -	 -	dialog = gnome_print_dialog_new(_("Print card"), GNOME_PRINT_DIALOG_COPIES); - -	card = e_card_duplicate(list->data); -	gtk_object_set_data(GTK_OBJECT(dialog), "card", card); -	gtk_object_set_data(GTK_OBJECT(dialog), "uses_book", (void *) 0); -	gtk_signal_connect(GTK_OBJECT(dialog), -			   "clicked", GTK_SIGNAL_FUNC(e_contact_print_button), NULL); -	gtk_signal_connect(GTK_OBJECT(dialog), -			   "close", GTK_SIGNAL_FUNC(e_contact_print_close), NULL); -	return dialog; -} diff --git a/addressbook/printing/e-contact-print.glade b/addressbook/printing/e-contact-print.glade deleted file mode 100644 index 292fc8cc85..0000000000 --- a/addressbook/printing/e-contact-print.glade +++ /dev/null @@ -1,2003 +0,0 @@ -<?xml version="1.0"?> -<GTK-Interface> - -<project> -  <name>Printing</name> -  <program_name>printing</program_name> -  <directory></directory> -  <source_directory></source_directory> -  <pixmaps_directory>pixmaps</pixmaps_directory> -  <language>C</language> -  <gnome_support>False</gnome_support> -  <gettext_support>False</gettext_support> -  <output_main_file>False</output_main_file> -  <output_support_files>False</output_support_files> -  <output_build_files>False</output_build_files> -</project> - -<widget> -  <class>GnomeDialog</class> -  <name>print-edit-style</name> -  <visible>False</visible> -  <title>Page Setup:</title> -  <type>GTK_WINDOW_TOPLEVEL</type> -  <position>GTK_WIN_POS_NONE</position> -  <modal>False</modal> -  <allow_shrink>False</allow_shrink> -  <allow_grow>False</allow_grow> -  <auto_shrink>False</auto_shrink> -  <auto_close>False</auto_close> -  <hide_on_close>False</hide_on_close> - -  <widget> -    <class>GtkVBox</class> -    <child_name>GnomeDialog:vbox</child_name> -    <name>dialog-vbox1</name> -    <homogeneous>False</homogeneous> -    <spacing>8</spacing> -    <child> -      <padding>4</padding> -      <expand>True</expand> -      <fill>True</fill> -    </child> - -    <widget> -      <class>GtkHButtonBox</class> -      <child_name>GnomeDialog:action_area</child_name> -      <name>dialog-action_area1</name> -      <layout_style>GTK_BUTTONBOX_END</layout_style> -      <spacing>8</spacing> -      <child_min_width>85</child_min_width> -      <child_min_height>27</child_min_height> -      <child_ipad_x>7</child_ipad_x> -      <child_ipad_y>0</child_ipad_y> -      <child> -	<padding>0</padding> -	<expand>False</expand> -	<fill>True</fill> -	<pack>GTK_PACK_END</pack> -      </child> - -      <widget> -	<class>GtkButton</class> -	<name>button1</name> -	<can_default>True</can_default> -	<can_focus>True</can_focus> -	<stock_button>GNOME_STOCK_BUTTON_OK</stock_button> -      </widget> - -      <widget> -	<class>GtkButton</class> -	<name>button2</name> -	<can_default>True</can_default> -	<can_focus>True</can_focus> -	<stock_button>GNOME_STOCK_BUTTON_APPLY</stock_button> -      </widget> - -      <widget> -	<class>GtkButton</class> -	<name>button3</name> -	<can_default>True</can_default> -	<can_focus>True</can_focus> -	<stock_button>GNOME_STOCK_BUTTON_CANCEL</stock_button> -      </widget> -    </widget> - -    <widget> -      <class>GtkVBox</class> -      <name>vbox-contact-print-style-editor</name> -      <homogeneous>False</homogeneous> -      <spacing>5</spacing> -      <child> -	<padding>0</padding> -	<expand>True</expand> -	<fill>True</fill> -      </child> - -      <widget> -	<class>GtkHBox</class> -	<name>hbox2</name> -	<border_width>5</border_width> -	<homogeneous>False</homogeneous> -	<spacing>16</spacing> -	<child> -	  <padding>0</padding> -	  <expand>True</expand> -	  <fill>True</fill> -	</child> - -	<widget> -	  <class>GtkLabel</class> -	  <name>label8</name> -	  <label>Style name:</label> -	  <justify>GTK_JUSTIFY_CENTER</justify> -	  <wrap>False</wrap> -	  <xalign>0.5</xalign> -	  <yalign>0.5</yalign> -	  <xpad>0</xpad> -	  <ypad>0</ypad> -	  <child> -	    <padding>0</padding> -	    <expand>False</expand> -	    <fill>False</fill> -	  </child> -	</widget> - -	<widget> -	  <class>GtkEntry</class> -	  <name>label-style-name</name> -	  <can_focus>True</can_focus> -	  <editable>False</editable> -	  <text_visible>True</text_visible> -	  <text_max_length>0</text_max_length> -	  <text></text> -	  <child> -	    <padding>0</padding> -	    <expand>False</expand> -	    <fill>False</fill> -	  </child> -	</widget> -      </widget> - -      <widget> -	<class>GtkNotebook</class> -	<name>notebook1</name> -	<can_focus>True</can_focus> -	<show_tabs>True</show_tabs> -	<show_border>True</show_border> -	<tab_pos>GTK_POS_TOP</tab_pos> -	<scrollable>False</scrollable> -	<tab_hborder>2</tab_hborder> -	<tab_vborder>2</tab_vborder> -	<popup_enable>False</popup_enable> -	<child> -	  <padding>0</padding> -	  <expand>True</expand> -	  <fill>True</fill> -	</child> - -	<widget> -	  <class>GtkVBox</class> -	  <name>vbox2</name> -	  <border_width>5</border_width> -	  <homogeneous>False</homogeneous> -	  <spacing>5</spacing> - -	  <widget> -	    <class>GtkAlignment</class> -	    <name>alignment1</name> -	    <xalign>0.5</xalign> -	    <yalign>0.5</yalign> -	    <xscale>0</xscale> -	    <yscale>0</yscale> -	    <child> -	      <padding>0</padding> -	      <expand>True</expand> -	      <fill>True</fill> -	    </child> - -	    <widget> -	      <class>GtkFrame</class> -	      <name>frame5</name> -	      <label>Preview:</label> -	      <label_xalign>0</label_xalign> -	      <shadow_type>GTK_SHADOW_ETCHED_IN</shadow_type> - -	      <widget> -		<class>Placeholder</class> -	      </widget> -	    </widget> -	  </widget> - -	  <widget> -	    <class>GtkHBox</class> -	    <name>hbox1</name> -	    <homogeneous>True</homogeneous> -	    <spacing>7</spacing> -	    <child> -	      <padding>0</padding> -	      <expand>True</expand> -	      <fill>True</fill> -	    </child> - -	    <widget> -	      <class>GtkFrame</class> -	      <name>frame6</name> -	      <label>Options</label> -	      <label_xalign>0</label_xalign> -	      <shadow_type>GTK_SHADOW_ETCHED_IN</shadow_type> -	      <child> -		<padding>0</padding> -		<expand>True</expand> -		<fill>True</fill> -	      </child> - -	      <widget> -		<class>GtkAlignment</class> -		<name>alignment4</name> -		<xalign>0</xalign> -		<yalign>0</yalign> -		<xscale>0</xscale> -		<yscale>0</yscale> - -		<widget> -		  <class>GtkTable</class> -		  <name>table1</name> -		  <border_width>8</border_width> -		  <rows>6</rows> -		  <columns>5</columns> -		  <homogeneous>False</homogeneous> -		  <row_spacing>0</row_spacing> -		  <column_spacing>0</column_spacing> - -		  <widget> -		    <class>GtkLabel</class> -		    <name>label5</name> -		    <label>Include:</label> -		    <justify>GTK_JUSTIFY_CENTER</justify> -		    <wrap>False</wrap> -		    <xalign>0</xalign> -		    <yalign>0.5</yalign> -		    <xpad>0</xpad> -		    <ypad>0</ypad> -		    <child> -		      <left_attach>0</left_attach> -		      <right_attach>1</right_attach> -		      <top_attach>4</top_attach> -		      <bottom_attach>5</bottom_attach> -		      <xpad>0</xpad> -		      <ypad>0</ypad> -		      <xexpand>False</xexpand> -		      <yexpand>False</yexpand> -		      <xshrink>False</xshrink> -		      <yshrink>False</yshrink> -		      <xfill>True</xfill> -		      <yfill>True</yfill> -		    </child> -		  </widget> - -		  <widget> -		    <class>GtkLabel</class> -		    <name>label4</name> -		    <label>Sections:</label> -		    <justify>GTK_JUSTIFY_CENTER</justify> -		    <wrap>False</wrap> -		    <xalign>0</xalign> -		    <yalign>0.5</yalign> -		    <xpad>0</xpad> -		    <ypad>0</ypad> -		    <child> -		      <left_attach>0</left_attach> -		      <right_attach>1</right_attach> -		      <top_attach>0</top_attach> -		      <bottom_attach>1</bottom_attach> -		      <xpad>0</xpad> -		      <ypad>0</ypad> -		      <xexpand>False</xexpand> -		      <yexpand>False</yexpand> -		      <xshrink>False</xshrink> -		      <yshrink>False</yshrink> -		      <xfill>True</xfill> -		      <yfill>True</yfill> -		    </child> -		  </widget> - -		  <widget> -		    <class>GtkAlignment</class> -		    <name>alignment2</name> -		    <xalign>0</xalign> -		    <yalign>0.5</yalign> -		    <xscale>0</xscale> -		    <yscale>0</yscale> -		    <child> -		      <left_attach>1</left_attach> -		      <right_attach>5</right_attach> -		      <top_attach>0</top_attach> -		      <bottom_attach>1</bottom_attach> -		      <xpad>0</xpad> -		      <ypad>0</ypad> -		      <xexpand>False</xexpand> -		      <yexpand>False</yexpand> -		      <xshrink>False</xshrink> -		      <yshrink>False</yshrink> -		      <xfill>True</xfill> -		      <yfill>True</yfill> -		    </child> - -		    <widget> -		      <class>GtkRadioButton</class> -		      <name>radiobutton1</name> -		      <can_focus>True</can_focus> -		      <label>Immediately follow each other</label> -		      <active>True</active> -		      <draw_indicator>True</draw_indicator> -		    </widget> -		  </widget> - -		  <widget> -		    <class>GtkCheckButton</class> -		    <name>checkbutton1</name> -		    <can_focus>True</can_focus> -		    <label>Letter tabs on side</label> -		    <active>False</active> -		    <draw_indicator>True</draw_indicator> -		    <child> -		      <left_attach>1</left_attach> -		      <right_attach>5</right_attach> -		      <top_attach>4</top_attach> -		      <bottom_attach>5</bottom_attach> -		      <xpad>0</xpad> -		      <ypad>0</ypad> -		      <xexpand>False</xexpand> -		      <yexpand>False</yexpand> -		      <xshrink>False</xshrink> -		      <yshrink>False</yshrink> -		      <xfill>True</xfill> -		      <yfill>True</yfill> -		    </child> -		  </widget> - -		  <widget> -		    <class>GtkCheckButton</class> -		    <name>checkbutton2</name> -		    <can_focus>True</can_focus> -		    <label>Headings for each letter</label> -		    <active>False</active> -		    <draw_indicator>True</draw_indicator> -		    <child> -		      <left_attach>1</left_attach> -		      <right_attach>5</right_attach> -		      <top_attach>5</top_attach> -		      <bottom_attach>6</bottom_attach> -		      <xpad>0</xpad> -		      <ypad>0</ypad> -		      <xexpand>False</xexpand> -		      <yexpand>False</yexpand> -		      <xshrink>False</xshrink> -		      <yshrink>False</yshrink> -		      <xfill>True</xfill> -		      <yfill>True</yfill> -		    </child> -		  </widget> - -		  <widget> -		    <class>GtkAlignment</class> -		    <name>alignment3</name> -		    <xalign>0</xalign> -		    <yalign>0.5</yalign> -		    <xscale>0</xscale> -		    <yscale>0</yscale> -		    <child> -		      <left_attach>1</left_attach> -		      <right_attach>5</right_attach> -		      <top_attach>1</top_attach> -		      <bottom_attach>2</bottom_attach> -		      <xpad>0</xpad> -		      <ypad>0</ypad> -		      <xexpand>False</xexpand> -		      <yexpand>False</yexpand> -		      <xshrink>False</xshrink> -		      <yshrink>False</yshrink> -		      <xfill>True</xfill> -		      <yfill>True</yfill> -		    </child> - -		    <widget> -		      <class>GtkRadioButton</class> -		      <name>radiobutton2</name> -		      <can_focus>True</can_focus> -		      <label>Start on a new page</label> -		      <active>False</active> -		      <draw_indicator>True</draw_indicator> -		    </widget> -		  </widget> - -		  <widget> -		    <class>GtkLabel</class> -		    <name>label6</name> -		    <label>Number of columns:</label> -		    <justify>GTK_JUSTIFY_CENTER</justify> -		    <wrap>False</wrap> -		    <xalign>0</xalign> -		    <yalign>0.5</yalign> -		    <xpad>0</xpad> -		    <ypad>0</ypad> -		    <child> -		      <left_attach>0</left_attach> -		      <right_attach>3</right_attach> -		      <top_attach>2</top_attach> -		      <bottom_attach>3</bottom_attach> -		      <xpad>0</xpad> -		      <ypad>2</ypad> -		      <xexpand>False</xexpand> -		      <yexpand>False</yexpand> -		      <xshrink>False</xshrink> -		      <yshrink>False</yshrink> -		      <xfill>True</xfill> -		      <yfill>True</yfill> -		    </child> -		  </widget> - -		  <widget> -		    <class>GtkLabel</class> -		    <name>label7</name> -		    <label>Blank forms at end:</label> -		    <justify>GTK_JUSTIFY_CENTER</justify> -		    <wrap>False</wrap> -		    <xalign>0</xalign> -		    <yalign>0.5</yalign> -		    <xpad>0</xpad> -		    <ypad>0</ypad> -		    <child> -		      <left_attach>0</left_attach> -		      <right_attach>3</right_attach> -		      <top_attach>3</top_attach> -		      <bottom_attach>4</bottom_attach> -		      <xpad>0</xpad> -		      <ypad>2</ypad> -		      <xexpand>False</xexpand> -		      <yexpand>False</yexpand> -		      <xshrink>False</xshrink> -		      <yshrink>False</yshrink> -		      <xfill>True</xfill> -		      <yfill>True</yfill> -		    </child> -		  </widget> - -		  <widget> -		    <class>GtkAlignment</class> -		    <name>alignment6</name> -		    <xalign>0</xalign> -		    <yalign>0.5</yalign> -		    <xscale>0</xscale> -		    <yscale>0</yscale> -		    <child> -		      <left_attach>3</left_attach> -		      <right_attach>4</right_attach> -		      <top_attach>3</top_attach> -		      <bottom_attach>4</bottom_attach> -		      <xpad>0</xpad> -		      <ypad>2</ypad> -		      <xexpand>False</xexpand> -		      <yexpand>False</yexpand> -		      <xshrink>False</xshrink> -		      <yshrink>False</yshrink> -		      <xfill>True</xfill> -		      <yfill>True</yfill> -		    </child> - -		    <widget> -		      <class>GtkSpinButton</class> -		      <name>spinbutton2</name> -		      <can_focus>True</can_focus> -		      <climb_rate>1</climb_rate> -		      <digits>0</digits> -		      <numeric>False</numeric> -		      <update_policy>GTK_UPDATE_ALWAYS</update_policy> -		      <snap>False</snap> -		      <wrap>False</wrap> -		      <value>2</value> -		      <lower>0</lower> -		      <upper>100</upper> -		      <step>1</step> -		      <page>10</page> -		      <page_size>10</page_size> -		    </widget> -		  </widget> - -		  <widget> -		    <class>GtkAlignment</class> -		    <name>alignment5</name> -		    <xalign>0</xalign> -		    <yalign>0.5</yalign> -		    <xscale>0</xscale> -		    <yscale>0</yscale> -		    <child> -		      <left_attach>3</left_attach> -		      <right_attach>4</right_attach> -		      <top_attach>2</top_attach> -		      <bottom_attach>3</bottom_attach> -		      <xpad>0</xpad> -		      <ypad>2</ypad> -		      <xexpand>False</xexpand> -		      <yexpand>False</yexpand> -		      <xshrink>False</xshrink> -		      <yshrink>False</yshrink> -		      <xfill>True</xfill> -		      <yfill>True</yfill> -		    </child> - -		    <widget> -		      <class>GtkSpinButton</class> -		      <name>spinbutton1</name> -		      <width>45</width> -		      <can_focus>True</can_focus> -		      <climb_rate>1</climb_rate> -		      <digits>0</digits> -		      <numeric>False</numeric> -		      <update_policy>GTK_UPDATE_ALWAYS</update_policy> -		      <snap>False</snap> -		      <wrap>False</wrap> -		      <value>1</value> -		      <lower>0</lower> -		      <upper>100</upper> -		      <step>1</step> -		      <page>10</page> -		      <page_size>10</page_size> -		    </widget> -		  </widget> -		</widget> -	      </widget> -	    </widget> - -	    <widget> -	      <class>GtkVBox</class> -	      <name>vbox3</name> -	      <homogeneous>False</homogeneous> -	      <spacing>8</spacing> -	      <child> -		<padding>0</padding> -		<expand>True</expand> -		<fill>True</fill> -	      </child> - -	      <widget> -		<class>GtkFrame</class> -		<name>frame7</name> -		<label>Fonts</label> -		<label_xalign>0</label_xalign> -		<shadow_type>GTK_SHADOW_ETCHED_IN</shadow_type> -		<child> -		  <padding>0</padding> -		  <expand>True</expand> -		  <fill>True</fill> -		</child> - -		<widget> -		  <class>GtkTable</class> -		  <name>table2</name> -		  <border_width>8</border_width> -		  <rows>2</rows> -		  <columns>2</columns> -		  <homogeneous>False</homogeneous> -		  <row_spacing>13</row_spacing> -		  <column_spacing>8</column_spacing> - -		  <widget> -		    <class>GtkAlignment</class> -		    <name>alignment7</name> -		    <xalign>0.5</xalign> -		    <yalign>1</yalign> -		    <xscale>1</xscale> -		    <yscale>0</yscale> -		    <child> -		      <left_attach>1</left_attach> -		      <right_attach>2</right_attach> -		      <top_attach>1</top_attach> -		      <bottom_attach>2</bottom_attach> -		      <xpad>0</xpad> -		      <ypad>0</ypad> -		      <xexpand>False</xexpand> -		      <yexpand>False</yexpand> -		      <xshrink>False</xshrink> -		      <yshrink>False</yshrink> -		      <xfill>True</xfill> -		      <yfill>True</yfill> -		    </child> - -		    <widget> -		      <class>GtkButton</class> -		      <name>button6</name> -		      <can_focus>True</can_focus> -		      <label>F_ont...</label> -		      <relief>GTK_RELIEF_NORMAL</relief> -		    </widget> -		  </widget> - -		  <widget> -		    <class>GtkAlignment</class> -		    <name>alignment8</name> -		    <xalign>0.5</xalign> -		    <yalign>1</yalign> -		    <xscale>1</xscale> -		    <yscale>0</yscale> -		    <child> -		      <left_attach>1</left_attach> -		      <right_attach>2</right_attach> -		      <top_attach>0</top_attach> -		      <bottom_attach>1</bottom_attach> -		      <xpad>0</xpad> -		      <ypad>0</ypad> -		      <xexpand>False</xexpand> -		      <yexpand>False</yexpand> -		      <xshrink>False</xshrink> -		      <yshrink>False</yshrink> -		      <xfill>True</xfill> -		      <yfill>True</yfill> -		    </child> - -		    <widget> -		      <class>GtkButton</class> -		      <name>button5</name> -		      <width>90</width> -		      <can_focus>True</can_focus> -		      <label>_Font...</label> -		      <relief>GTK_RELIEF_NORMAL</relief> -		    </widget> -		  </widget> - -		  <widget> -		    <class>GtkVBox</class> -		    <name>vbox4</name> -		    <homogeneous>False</homogeneous> -		    <spacing>0</spacing> -		    <child> -		      <left_attach>0</left_attach> -		      <right_attach>1</right_attach> -		      <top_attach>0</top_attach> -		      <bottom_attach>1</bottom_attach> -		      <xpad>0</xpad> -		      <ypad>0</ypad> -		      <xexpand>True</xexpand> -		      <yexpand>False</yexpand> -		      <xshrink>False</xshrink> -		      <yshrink>False</yshrink> -		      <xfill>True</xfill> -		      <yfill>True</yfill> -		    </child> - -		    <widget> -		      <class>GtkLabel</class> -		      <name>label10</name> -		      <label>Headings</label> -		      <justify>GTK_JUSTIFY_CENTER</justify> -		      <wrap>False</wrap> -		      <xalign>0</xalign> -		      <yalign>0.5</yalign> -		      <xpad>0</xpad> -		      <ypad>0</ypad> -		      <child> -			<padding>0</padding> -			<expand>False</expand> -			<fill>False</fill> -		      </child> -		    </widget> - -		    <widget> -		      <class>GtkEntry</class> -		      <name>entry3</name> -		      <width>100</width> -		      <can_focus>True</can_focus> -		      <editable>True</editable> -		      <text_visible>True</text_visible> -		      <text_max_length>0</text_max_length> -		      <text>10 pt. Tahoma</text> -		      <child> -			<padding>0</padding> -			<expand>False</expand> -			<fill>False</fill> -		      </child> -		    </widget> -		  </widget> - -		  <widget> -		    <class>GtkVBox</class> -		    <name>vbox5</name> -		    <homogeneous>False</homogeneous> -		    <spacing>0</spacing> -		    <child> -		      <left_attach>0</left_attach> -		      <right_attach>1</right_attach> -		      <top_attach>1</top_attach> -		      <bottom_attach>2</bottom_attach> -		      <xpad>0</xpad> -		      <ypad>0</ypad> -		      <xexpand>True</xexpand> -		      <yexpand>False</yexpand> -		      <xshrink>False</xshrink> -		      <yshrink>False</yshrink> -		      <xfill>True</xfill> -		      <yfill>True</yfill> -		    </child> - -		    <widget> -		      <class>GtkLabel</class> -		      <name>label9</name> -		      <label>Body</label> -		      <justify>GTK_JUSTIFY_CENTER</justify> -		      <wrap>False</wrap> -		      <xalign>0</xalign> -		      <yalign>0.5</yalign> -		      <xpad>0</xpad> -		      <ypad>0</ypad> -		      <child> -			<padding>0</padding> -			<expand>False</expand> -			<fill>False</fill> -		      </child> -		    </widget> - -		    <widget> -		      <class>GtkEntry</class> -		      <name>entry2</name> -		      <width>100</width> -		      <can_focus>True</can_focus> -		      <editable>True</editable> -		      <text_visible>True</text_visible> -		      <text_max_length>0</text_max_length> -		      <text>8 pt. Tahoma</text> -		      <child> -			<padding>0</padding> -			<expand>False</expand> -			<fill>False</fill> -		      </child> -		    </widget> -		  </widget> -		</widget> -	      </widget> - -	      <widget> -		<class>GtkFrame</class> -		<name>frame8</name> -		<label>Shading</label> -		<label_xalign>0</label_xalign> -		<shadow_type>GTK_SHADOW_ETCHED_IN</shadow_type> -		<child> -		  <padding>0</padding> -		  <expand>True</expand> -		  <fill>True</fill> -		</child> - -		<widget> -		  <class>GtkCheckButton</class> -		  <name>checkbutton3</name> -		  <can_focus>True</can_focus> -		  <label>Print using gray shading</label> -		  <active>False</active> -		  <draw_indicator>True</draw_indicator> -		</widget> -	      </widget> -	    </widget> -	  </widget> -	</widget> - -	<widget> -	  <class>GtkLabel</class> -	  <child_name>Notebook:tab</child_name> -	  <name>label1</name> -	  <label>Format</label> -	  <justify>GTK_JUSTIFY_CENTER</justify> -	  <wrap>False</wrap> -	  <xalign>0.5</xalign> -	  <yalign>0.5</yalign> -	  <xpad>0</xpad> -	  <ypad>0</ypad> -	</widget> - -	<widget> -	  <class>GtkHBox</class> -	  <name>hbox3</name> -	  <homogeneous>True</homogeneous> -	  <spacing>0</spacing> - -	  <widget> -	    <class>GtkVBox</class> -	    <name>vbox6</name> -	    <homogeneous>False</homogeneous> -	    <spacing>0</spacing> -	    <child> -	      <padding>0</padding> -	      <expand>True</expand> -	      <fill>True</fill> -	    </child> - -	    <widget> -	      <class>GtkFrame</class> -	      <name>frame9</name> -	      <label>Paper</label> -	      <label_xalign>0</label_xalign> -	      <shadow_type>GTK_SHADOW_ETCHED_IN</shadow_type> -	      <child> -		<padding>0</padding> -		<expand>True</expand> -		<fill>True</fill> -	      </child> - -	      <widget> -		<class>GtkVBox</class> -		<name>vbox16</name> -		<border_width>10</border_width> -		<homogeneous>False</homogeneous> -		<spacing>0</spacing> - -		<widget> -		  <class>GtkVBox</class> -		  <name>vbox17</name> -		  <homogeneous>False</homogeneous> -		  <spacing>0</spacing> -		  <child> -		    <padding>0</padding> -		    <expand>True</expand> -		    <fill>True</fill> -		  </child> - -		  <widget> -		    <class>GtkLabel</class> -		    <name>label21</name> -		    <label>Type:</label> -		    <justify>GTK_JUSTIFY_CENTER</justify> -		    <wrap>False</wrap> -		    <xalign>0</xalign> -		    <yalign>0.5</yalign> -		    <xpad>0</xpad> -		    <ypad>0</ypad> -		    <child> -		      <padding>0</padding> -		      <expand>False</expand> -		      <fill>False</fill> -		    </child> -		  </widget> - -		  <widget> -		    <class>GtkScrolledWindow</class> -		    <name>scrolledwindow1</name> -		    <hscrollbar_policy>GTK_POLICY_ALWAYS</hscrollbar_policy> -		    <vscrollbar_policy>GTK_POLICY_ALWAYS</vscrollbar_policy> -		    <hupdate_policy>GTK_UPDATE_CONTINUOUS</hupdate_policy> -		    <vupdate_policy>GTK_UPDATE_CONTINUOUS</vupdate_policy> -		    <child> -		      <padding>0</padding> -		      <expand>True</expand> -		      <fill>True</fill> -		    </child> - -		    <widget> -		      <class>GtkCList</class> -		      <name>clist1</name> -		      <can_focus>True</can_focus> -		      <columns>1</columns> -		      <column_widths>80</column_widths> -		      <selection_mode>GTK_SELECTION_SINGLE</selection_mode> -		      <show_titles>False</show_titles> -		      <shadow_type>GTK_SHADOW_IN</shadow_type> - -		      <widget> -			<class>GtkLabel</class> -			<child_name>CList:title</child_name> -			<name>label26</name> -			<label>label26</label> -			<justify>GTK_JUSTIFY_CENTER</justify> -			<wrap>False</wrap> -			<xalign>0.5</xalign> -			<yalign>0.5</yalign> -			<xpad>0</xpad> -			<ypad>0</ypad> -		      </widget> -		    </widget> -		  </widget> -		</widget> - -		<widget> -		  <class>GtkVBox</class> -		  <name>vbox18</name> -		  <homogeneous>False</homogeneous> -		  <spacing>0</spacing> -		  <child> -		    <padding>0</padding> -		    <expand>True</expand> -		    <fill>True</fill> -		  </child> - -		  <widget> -		    <class>GtkLabel</class> -		    <name>label24</name> -		    <label>Dimensions:</label> -		    <justify>GTK_JUSTIFY_CENTER</justify> -		    <wrap>False</wrap> -		    <xalign>0</xalign> -		    <yalign>0.5</yalign> -		    <xpad>0</xpad> -		    <ypad>0</ypad> -		    <child> -		      <padding>0</padding> -		      <expand>False</expand> -		      <fill>False</fill> -		    </child> -		  </widget> - -		  <widget> -		    <class>GtkHBox</class> -		    <name>hbox5</name> -		    <homogeneous>True</homogeneous> -		    <spacing>0</spacing> -		    <child> -		      <padding>0</padding> -		      <expand>True</expand> -		      <fill>True</fill> -		    </child> - -		    <widget> -		      <class>GtkLabel</class> -		      <name>label27</name> -		      <label>Width:</label> -		      <justify>GTK_JUSTIFY_CENTER</justify> -		      <wrap>False</wrap> -		      <xalign>0.5</xalign> -		      <yalign>0.5</yalign> -		      <xpad>0</xpad> -		      <ypad>0</ypad> -		      <child> -			<padding>0</padding> -			<expand>False</expand> -			<fill>False</fill> -		      </child> -		    </widget> - -		    <widget> -		      <class>GtkEntry</class> -		      <name>entry9</name> -		      <width>1</width> -		      <can_focus>True</can_focus> -		      <editable>True</editable> -		      <text_visible>True</text_visible> -		      <text_max_length>0</text_max_length> -		      <text></text> -		      <child> -			<padding>0</padding> -			<expand>True</expand> -			<fill>True</fill> -		      </child> -		    </widget> - -		    <widget> -		      <class>GtkLabel</class> -		      <name>label28</name> -		      <label>Height:</label> -		      <justify>GTK_JUSTIFY_CENTER</justify> -		      <wrap>False</wrap> -		      <xalign>0.5</xalign> -		      <yalign>0.5</yalign> -		      <xpad>0</xpad> -		      <ypad>0</ypad> -		      <child> -			<padding>0</padding> -			<expand>False</expand> -			<fill>False</fill> -		      </child> -		    </widget> - -		    <widget> -		      <class>GtkEntry</class> -		      <name>entry10</name> -		      <width>1</width> -		      <can_focus>True</can_focus> -		      <editable>True</editable> -		      <text_visible>True</text_visible> -		      <text_max_length>0</text_max_length> -		      <text></text> -		      <child> -			<padding>0</padding> -			<expand>True</expand> -			<fill>True</fill> -		      </child> -		    </widget> -		  </widget> -		</widget> - -		<widget> -		  <class>GtkVBox</class> -		  <name>vbox19</name> -		  <homogeneous>False</homogeneous> -		  <spacing>0</spacing> -		  <child> -		    <padding>0</padding> -		    <expand>True</expand> -		    <fill>True</fill> -		  </child> - -		  <widget> -		    <class>GtkLabel</class> -		    <name>label25</name> -		    <label>Paper source:</label> -		    <justify>GTK_JUSTIFY_CENTER</justify> -		    <wrap>False</wrap> -		    <xalign>0</xalign> -		    <yalign>0.5</yalign> -		    <xpad>0</xpad> -		    <ypad>0</ypad> -		    <child> -		      <padding>0</padding> -		      <expand>False</expand> -		      <fill>False</fill> -		    </child> -		  </widget> - -		  <widget> -		    <class>GtkCombo</class> -		    <name>combo1</name> -		    <value_in_list>False</value_in_list> -		    <ok_if_empty>True</ok_if_empty> -		    <case_sensitive>False</case_sensitive> -		    <use_arrows>True</use_arrows> -		    <use_arrows_always>False</use_arrows_always> -		    <items></items> -		    <child> -		      <padding>0</padding> -		      <expand>False</expand> -		      <fill>False</fill> -		    </child> - -		    <widget> -		      <class>GtkEntry</class> -		      <child_name>GtkCombo:entry</child_name> -		      <name>combo-entry1</name> -		      <can_focus>True</can_focus> -		      <editable>True</editable> -		      <text_visible>True</text_visible> -		      <text_max_length>0</text_max_length> -		      <text></text> -		    </widget> -		  </widget> -		</widget> -	      </widget> -	    </widget> - -	    <widget> -	      <class>GtkFrame</class> -	      <name>frame10</name> -	      <label>Margins</label> -	      <label_xalign>0</label_xalign> -	      <shadow_type>GTK_SHADOW_ETCHED_IN</shadow_type> -	      <child> -		<padding>0</padding> -		<expand>True</expand> -		<fill>True</fill> -	      </child> - -	      <widget> -		<class>GtkTable</class> -		<name>table4</name> -		<border_width>15</border_width> -		<rows>2</rows> -		<columns>4</columns> -		<homogeneous>True</homogeneous> -		<row_spacing>6</row_spacing> -		<column_spacing>9</column_spacing> - -		<widget> -		  <class>GtkLabel</class> -		  <name>label29</name> -		  <label>Top:</label> -		  <justify>GTK_JUSTIFY_CENTER</justify> -		  <wrap>False</wrap> -		  <xalign>0</xalign> -		  <yalign>0.5</yalign> -		  <xpad>0</xpad> -		  <ypad>0</ypad> -		  <child> -		    <left_attach>0</left_attach> -		    <right_attach>1</right_attach> -		    <top_attach>0</top_attach> -		    <bottom_attach>1</bottom_attach> -		    <xpad>0</xpad> -		    <ypad>0</ypad> -		    <xexpand>False</xexpand> -		    <yexpand>True</yexpand> -		    <xshrink>False</xshrink> -		    <yshrink>False</yshrink> -		    <xfill>True</xfill> -		    <yfill>True</yfill> -		  </child> -		</widget> - -		<widget> -		  <class>GtkLabel</class> -		  <name>label30</name> -		  <label>Bottom:</label> -		  <justify>GTK_JUSTIFY_CENTER</justify> -		  <wrap>False</wrap> -		  <xalign>0</xalign> -		  <yalign>0.5</yalign> -		  <xpad>0</xpad> -		  <ypad>0</ypad> -		  <child> -		    <left_attach>0</left_attach> -		    <right_attach>1</right_attach> -		    <top_attach>1</top_attach> -		    <bottom_attach>2</bottom_attach> -		    <xpad>0</xpad> -		    <ypad>0</ypad> -		    <xexpand>False</xexpand> -		    <yexpand>True</yexpand> -		    <xshrink>False</xshrink> -		    <yshrink>False</yshrink> -		    <xfill>True</xfill> -		    <yfill>True</yfill> -		  </child> -		</widget> - -		<widget> -		  <class>GtkLabel</class> -		  <name>label31</name> -		  <label>Left:</label> -		  <justify>GTK_JUSTIFY_CENTER</justify> -		  <wrap>False</wrap> -		  <xalign>0</xalign> -		  <yalign>0.5</yalign> -		  <xpad>0</xpad> -		  <ypad>0</ypad> -		  <child> -		    <left_attach>2</left_attach> -		    <right_attach>3</right_attach> -		    <top_attach>0</top_attach> -		    <bottom_attach>1</bottom_attach> -		    <xpad>0</xpad> -		    <ypad>0</ypad> -		    <xexpand>False</xexpand> -		    <yexpand>True</yexpand> -		    <xshrink>False</xshrink> -		    <yshrink>False</yshrink> -		    <xfill>True</xfill> -		    <yfill>True</yfill> -		  </child> -		</widget> - -		<widget> -		  <class>GtkEntry</class> -		  <name>entry11</name> -		  <width>1</width> -		  <can_focus>True</can_focus> -		  <editable>True</editable> -		  <text_visible>True</text_visible> -		  <text_max_length>0</text_max_length> -		  <text></text> -		  <child> -		    <left_attach>1</left_attach> -		    <right_attach>2</right_attach> -		    <top_attach>0</top_attach> -		    <bottom_attach>1</bottom_attach> -		    <xpad>0</xpad> -		    <ypad>0</ypad> -		    <xexpand>True</xexpand> -		    <yexpand>False</yexpand> -		    <xshrink>False</xshrink> -		    <yshrink>False</yshrink> -		    <xfill>True</xfill> -		    <yfill>False</yfill> -		  </child> -		</widget> - -		<widget> -		  <class>GtkEntry</class> -		  <name>entry12</name> -		  <width>1</width> -		  <can_focus>True</can_focus> -		  <editable>True</editable> -		  <text_visible>True</text_visible> -		  <text_max_length>0</text_max_length> -		  <text></text> -		  <child> -		    <left_attach>3</left_attach> -		    <right_attach>4</right_attach> -		    <top_attach>0</top_attach> -		    <bottom_attach>1</bottom_attach> -		    <xpad>0</xpad> -		    <ypad>0</ypad> -		    <xexpand>True</xexpand> -		    <yexpand>False</yexpand> -		    <xshrink>False</xshrink> -		    <yshrink>False</yshrink> -		    <xfill>True</xfill> -		    <yfill>False</yfill> -		  </child> -		</widget> - -		<widget> -		  <class>GtkEntry</class> -		  <name>entry13</name> -		  <width>1</width> -		  <can_focus>True</can_focus> -		  <editable>True</editable> -		  <text_visible>True</text_visible> -		  <text_max_length>0</text_max_length> -		  <text></text> -		  <child> -		    <left_attach>3</left_attach> -		    <right_attach>4</right_attach> -		    <top_attach>1</top_attach> -		    <bottom_attach>2</bottom_attach> -		    <xpad>0</xpad> -		    <ypad>0</ypad> -		    <xexpand>True</xexpand> -		    <yexpand>False</yexpand> -		    <xshrink>False</xshrink> -		    <yshrink>False</yshrink> -		    <xfill>True</xfill> -		    <yfill>False</yfill> -		  </child> -		</widget> - -		<widget> -		  <class>GtkEntry</class> -		  <name>entry14</name> -		  <width>1</width> -		  <can_focus>True</can_focus> -		  <editable>True</editable> -		  <text_visible>True</text_visible> -		  <text_max_length>0</text_max_length> -		  <text></text> -		  <child> -		    <left_attach>1</left_attach> -		    <right_attach>2</right_attach> -		    <top_attach>1</top_attach> -		    <bottom_attach>2</bottom_attach> -		    <xpad>0</xpad> -		    <ypad>0</ypad> -		    <xexpand>True</xexpand> -		    <yexpand>False</yexpand> -		    <xshrink>False</xshrink> -		    <yshrink>False</yshrink> -		    <xfill>True</xfill> -		    <yfill>False</yfill> -		  </child> -		</widget> - -		<widget> -		  <class>GtkLabel</class> -		  <name>label32</name> -		  <label>Right:</label> -		  <justify>GTK_JUSTIFY_CENTER</justify> -		  <wrap>False</wrap> -		  <xalign>0</xalign> -		  <yalign>0.5</yalign> -		  <xpad>0</xpad> -		  <ypad>0</ypad> -		  <child> -		    <left_attach>2</left_attach> -		    <right_attach>3</right_attach> -		    <top_attach>1</top_attach> -		    <bottom_attach>2</bottom_attach> -		    <xpad>0</xpad> -		    <ypad>0</ypad> -		    <xexpand>False</xexpand> -		    <yexpand>True</yexpand> -		    <xshrink>False</xshrink> -		    <yshrink>False</yshrink> -		    <xfill>True</xfill> -		    <yfill>True</yfill> -		  </child> -		</widget> -	      </widget> -	    </widget> -	  </widget> - -	  <widget> -	    <class>GtkVBox</class> -	    <name>vbox7</name> -	    <homogeneous>False</homogeneous> -	    <spacing>0</spacing> -	    <child> -	      <padding>0</padding> -	      <expand>True</expand> -	      <fill>True</fill> -	    </child> - -	    <widget> -	      <class>GtkFrame</class> -	      <name>frame11</name> -	      <label>Page</label> -	      <label_xalign>0</label_xalign> -	      <shadow_type>GTK_SHADOW_ETCHED_IN</shadow_type> -	      <child> -		<padding>0</padding> -		<expand>True</expand> -		<fill>True</fill> -	      </child> - -	      <widget> -		<class>GtkVBox</class> -		<name>vbox8</name> -		<border_width>10</border_width> -		<homogeneous>False</homogeneous> -		<spacing>0</spacing> - -		<widget> -		  <class>GtkVBox</class> -		  <name>vbox20</name> -		  <homogeneous>False</homogeneous> -		  <spacing>0</spacing> -		  <child> -		    <padding>0</padding> -		    <expand>True</expand> -		    <fill>True</fill> -		  </child> - -		  <widget> -		    <class>GtkLabel</class> -		    <name>label33</name> -		    <label>Size:</label> -		    <justify>GTK_JUSTIFY_CENTER</justify> -		    <wrap>False</wrap> -		    <xalign>0</xalign> -		    <yalign>0.5</yalign> -		    <xpad>0</xpad> -		    <ypad>0</ypad> -		    <child> -		      <padding>0</padding> -		      <expand>False</expand> -		      <fill>False</fill> -		    </child> -		  </widget> - -		  <widget> -		    <class>GtkScrolledWindow</class> -		    <name>scrolledwindow2</name> -		    <hscrollbar_policy>GTK_POLICY_ALWAYS</hscrollbar_policy> -		    <vscrollbar_policy>GTK_POLICY_ALWAYS</vscrollbar_policy> -		    <hupdate_policy>GTK_UPDATE_CONTINUOUS</hupdate_policy> -		    <vupdate_policy>GTK_UPDATE_CONTINUOUS</vupdate_policy> -		    <child> -		      <padding>0</padding> -		      <expand>True</expand> -		      <fill>True</fill> -		    </child> - -		    <widget> -		      <class>GtkCList</class> -		      <name>clist2</name> -		      <can_focus>True</can_focus> -		      <columns>1</columns> -		      <column_widths>80</column_widths> -		      <selection_mode>GTK_SELECTION_SINGLE</selection_mode> -		      <show_titles>False</show_titles> -		      <shadow_type>GTK_SHADOW_IN</shadow_type> - -		      <widget> -			<class>GtkLabel</class> -			<child_name>CList:title</child_name> -			<name>label35</name> -			<label>label26</label> -			<justify>GTK_JUSTIFY_CENTER</justify> -			<wrap>False</wrap> -			<xalign>0.5</xalign> -			<yalign>0.5</yalign> -			<xpad>0</xpad> -			<ypad>0</ypad> -		      </widget> -		    </widget> -		  </widget> -		</widget> - -		<widget> -		  <class>GtkVBox</class> -		  <name>vbox21</name> -		  <homogeneous>False</homogeneous> -		  <spacing>0</spacing> -		  <child> -		    <padding>0</padding> -		    <expand>True</expand> -		    <fill>True</fill> -		  </child> - -		  <widget> -		    <class>GtkLabel</class> -		    <name>label34</name> -		    <label>Dimensions:</label> -		    <justify>GTK_JUSTIFY_CENTER</justify> -		    <wrap>False</wrap> -		    <xalign>0</xalign> -		    <yalign>0.5</yalign> -		    <xpad>0</xpad> -		    <ypad>0</ypad> -		    <child> -		      <padding>0</padding> -		      <expand>False</expand> -		      <fill>False</fill> -		    </child> -		  </widget> - -		  <widget> -		    <class>GtkHBox</class> -		    <name>hbox6</name> -		    <homogeneous>True</homogeneous> -		    <spacing>0</spacing> -		    <child> -		      <padding>0</padding> -		      <expand>True</expand> -		      <fill>True</fill> -		    </child> - -		    <widget> -		      <class>GtkLabel</class> -		      <name>label36</name> -		      <label>Width:</label> -		      <justify>GTK_JUSTIFY_CENTER</justify> -		      <wrap>False</wrap> -		      <xalign>0.5</xalign> -		      <yalign>0.5</yalign> -		      <xpad>0</xpad> -		      <ypad>0</ypad> -		      <child> -			<padding>0</padding> -			<expand>False</expand> -			<fill>False</fill> -		      </child> -		    </widget> - -		    <widget> -		      <class>GtkEntry</class> -		      <name>entry15</name> -		      <width>1</width> -		      <can_focus>True</can_focus> -		      <editable>True</editable> -		      <text_visible>True</text_visible> -		      <text_max_length>0</text_max_length> -		      <text></text> -		      <child> -			<padding>0</padding> -			<expand>True</expand> -			<fill>True</fill> -		      </child> -		    </widget> - -		    <widget> -		      <class>GtkLabel</class> -		      <name>label37</name> -		      <label>Height:</label> -		      <justify>GTK_JUSTIFY_CENTER</justify> -		      <wrap>False</wrap> -		      <xalign>0.5</xalign> -		      <yalign>0.5</yalign> -		      <xpad>0</xpad> -		      <ypad>0</ypad> -		      <child> -			<padding>0</padding> -			<expand>False</expand> -			<fill>False</fill> -		      </child> -		    </widget> - -		    <widget> -		      <class>GtkEntry</class> -		      <name>entry16</name> -		      <width>1</width> -		      <can_focus>True</can_focus> -		      <editable>True</editable> -		      <text_visible>True</text_visible> -		      <text_max_length>0</text_max_length> -		      <text></text> -		      <child> -			<padding>0</padding> -			<expand>True</expand> -			<fill>True</fill> -		      </child> -		    </widget> -		  </widget> -		</widget> -	      </widget> -	    </widget> - -	    <widget> -	      <class>GtkFrame</class> -	      <name>frame12</name> -	      <label>Orientation</label> -	      <label_xalign>0</label_xalign> -	      <shadow_type>GTK_SHADOW_ETCHED_IN</shadow_type> -	      <child> -		<padding>0</padding> -		<expand>True</expand> -		<fill>True</fill> -	      </child> - -	      <widget> -		<class>GtkHBox</class> -		<name>hbox4</name> -		<homogeneous>False</homogeneous> -		<spacing>10</spacing> - -		<widget> -		  <class>Placeholder</class> -		</widget> - -		<widget> -		  <class>GtkVBox</class> -		  <name>vbox9</name> -		  <homogeneous>False</homogeneous> -		  <spacing>5</spacing> -		  <child> -		    <padding>0</padding> -		    <expand>True</expand> -		    <fill>True</fill> -		  </child> - -		  <widget> -		    <class>GtkAlignment</class> -		    <name>alignment9</name> -		    <xalign>0</xalign> -		    <yalign>1</yalign> -		    <xscale>0</xscale> -		    <yscale>0</yscale> -		    <child> -		      <padding>0</padding> -		      <expand>True</expand> -		      <fill>True</fill> -		    </child> - -		    <widget> -		      <class>GtkRadioButton</class> -		      <name>radiobutton3</name> -		      <can_focus>True</can_focus> -		      <label>Portrait</label> -		      <active>False</active> -		      <draw_indicator>True</draw_indicator> -		    </widget> -		  </widget> - -		  <widget> -		    <class>GtkAlignment</class> -		    <name>alignment10</name> -		    <xalign>0</xalign> -		    <yalign>0</yalign> -		    <xscale>0</xscale> -		    <yscale>0</yscale> -		    <child> -		      <padding>0</padding> -		      <expand>True</expand> -		      <fill>True</fill> -		    </child> - -		    <widget> -		      <class>GtkRadioButton</class> -		      <name>radiobutton4</name> -		      <can_focus>True</can_focus> -		      <label>Landscape</label> -		      <active>False</active> -		      <draw_indicator>True</draw_indicator> -		    </widget> -		  </widget> -		</widget> -	      </widget> -	    </widget> -	  </widget> -	</widget> - -	<widget> -	  <class>GtkLabel</class> -	  <child_name>Notebook:tab</child_name> -	  <name>label2</name> -	  <label>Paper</label> -	  <justify>GTK_JUSTIFY_CENTER</justify> -	  <wrap>False</wrap> -	  <xalign>0.5</xalign> -	  <yalign>0.5</yalign> -	  <xpad>0</xpad> -	  <ypad>0</ypad> -	</widget> - -	<widget> -	  <class>GtkVBox</class> -	  <name>vbox10</name> -	  <border_width>8</border_width> -	  <homogeneous>False</homogeneous> -	  <spacing>0</spacing> - -	  <widget> -	    <class>GtkTable</class> -	    <name>table5</name> -	    <rows>4</rows> -	    <columns>3</columns> -	    <homogeneous>True</homogeneous> -	    <row_spacing>4</row_spacing> -	    <column_spacing>4</column_spacing> -	    <child> -	      <padding>0</padding> -	      <expand>True</expand> -	      <fill>True</fill> -	    </child> - -	    <widget> -	      <class>GtkAlignment</class> -	      <name>alignment15</name> -	      <xalign>0</xalign> -	      <yalign>1</yalign> -	      <xscale>0</xscale> -	      <yscale>0</yscale> -	      <child> -		<left_attach>1</left_attach> -		<right_attach>2</right_attach> -		<top_attach>2</top_attach> -		<bottom_attach>3</bottom_attach> -		<xpad>0</xpad> -		<ypad>0</ypad> -		<xexpand>False</xexpand> -		<yexpand>False</yexpand> -		<xshrink>False</xshrink> -		<yshrink>False</yshrink> -		<xfill>True</xfill> -		<yfill>True</yfill> -	      </child> - -	      <widget> -		<class>GtkButton</class> -		<name>button11</name> -		<can_focus>True</can_focus> -		<label>F_ont...</label> -		<relief>GTK_RELIEF_NORMAL</relief> -	      </widget> -	    </widget> - -	    <widget> -	      <class>GtkText</class> -	      <name>text10</name> -	      <height>50</height> -	      <can_focus>True</can_focus> -	      <editable>False</editable> -	      <text></text> -	      <child> -		<left_attach>0</left_attach> -		<right_attach>1</right_attach> -		<top_attach>1</top_attach> -		<bottom_attach>2</bottom_attach> -		<xpad>0</xpad> -		<ypad>0</ypad> -		<xexpand>False</xexpand> -		<yexpand>True</yexpand> -		<xshrink>False</xshrink> -		<yshrink>False</yshrink> -		<xfill>True</xfill> -		<yfill>True</yfill> -	      </child> -	    </widget> - -	    <widget> -	      <class>GtkText</class> -	      <name>text11</name> -	      <height>50</height> -	      <can_focus>True</can_focus> -	      <editable>False</editable> -	      <text></text> -	      <child> -		<left_attach>2</left_attach> -		<right_attach>3</right_attach> -		<top_attach>1</top_attach> -		<bottom_attach>2</bottom_attach> -		<xpad>0</xpad> -		<ypad>0</ypad> -		<xexpand>True</xexpand> -		<yexpand>False</yexpand> -		<xshrink>False</xshrink> -		<yshrink>False</yshrink> -		<xfill>True</xfill> -		<yfill>True</yfill> -	      </child> -	    </widget> - -	    <widget> -	      <class>GtkText</class> -	      <name>text12</name> -	      <height>50</height> -	      <can_focus>True</can_focus> -	      <editable>False</editable> -	      <text></text> -	      <child> -		<left_attach>1</left_attach> -		<right_attach>2</right_attach> -		<top_attach>1</top_attach> -		<bottom_attach>2</bottom_attach> -		<xpad>0</xpad> -		<ypad>0</ypad> -		<xexpand>False</xexpand> -		<yexpand>False</yexpand> -		<xshrink>False</xshrink> -		<yshrink>False</yshrink> -		<xfill>True</xfill> -		<yfill>True</yfill> -	      </child> -	    </widget> - -	    <widget> -	      <class>GtkText</class> -	      <name>text13</name> -	      <height>50</height> -	      <can_focus>True</can_focus> -	      <editable>False</editable> -	      <text></text> -	      <child> -		<left_attach>0</left_attach> -		<right_attach>1</right_attach> -		<top_attach>3</top_attach> -		<bottom_attach>4</bottom_attach> -		<xpad>0</xpad> -		<ypad>0</ypad> -		<xexpand>False</xexpand> -		<yexpand>True</yexpand> -		<xshrink>False</xshrink> -		<yshrink>False</yshrink> -		<xfill>True</xfill> -		<yfill>True</yfill> -	      </child> -	    </widget> - -	    <widget> -	      <class>GtkText</class> -	      <name>text14</name> -	      <height>5</height> -	      <can_focus>True</can_focus> -	      <editable>False</editable> -	      <text></text> -	      <child> -		<left_attach>1</left_attach> -		<right_attach>2</right_attach> -		<top_attach>3</top_attach> -		<bottom_attach>4</bottom_attach> -		<xpad>0</xpad> -		<ypad>0</ypad> -		<xexpand>False</xexpand> -		<yexpand>False</yexpand> -		<xshrink>False</xshrink> -		<yshrink>False</yshrink> -		<xfill>True</xfill> -		<yfill>True</yfill> -	      </child> -	    </widget> - -	    <widget> -	      <class>GtkText</class> -	      <name>text15</name> -	      <height>50</height> -	      <can_focus>True</can_focus> -	      <editable>False</editable> -	      <text></text> -	      <child> -		<left_attach>2</left_attach> -		<right_attach>3</right_attach> -		<top_attach>3</top_attach> -		<bottom_attach>4</bottom_attach> -		<xpad>0</xpad> -		<ypad>0</ypad> -		<xexpand>False</xexpand> -		<yexpand>False</yexpand> -		<xshrink>False</xshrink> -		<yshrink>False</yshrink> -		<xfill>True</xfill> -		<yfill>True</yfill> -	      </child> -	    </widget> - -	    <widget> -	      <class>GtkAlignment</class> -	      <name>alignment16</name> -	      <xalign>0.5</xalign> -	      <yalign>1</yalign> -	      <xscale>1</xscale> -	      <yscale>0</yscale> -	      <child> -		<left_attach>0</left_attach> -		<right_attach>1</right_attach> -		<top_attach>0</top_attach> -		<bottom_attach>1</bottom_attach> -		<xpad>0</xpad> -		<ypad>0</ypad> -		<xexpand>True</xexpand> -		<yexpand>False</yexpand> -		<xshrink>False</xshrink> -		<yshrink>False</yshrink> -		<xfill>True</xfill> -		<yfill>True</yfill> -	      </child> - -	      <widget> -		<class>GtkVBox</class> -		<name>vbox14</name> -		<homogeneous>False</homogeneous> -		<spacing>0</spacing> - -		<widget> -		  <class>GtkLabel</class> -		  <name>label14</name> -		  <label>Header</label> -		  <justify>GTK_JUSTIFY_CENTER</justify> -		  <wrap>False</wrap> -		  <xalign>0</xalign> -		  <yalign>0.5</yalign> -		  <xpad>0</xpad> -		  <ypad>0</ypad> -		  <child> -		    <padding>0</padding> -		    <expand>False</expand> -		    <fill>False</fill> -		  </child> -		</widget> - -		<widget> -		  <class>GtkEntry</class> -		  <name>entry7</name> -		  <can_focus>True</can_focus> -		  <editable>True</editable> -		  <text_visible>True</text_visible> -		  <text_max_length>0</text_max_length> -		  <text></text> -		  <child> -		    <padding>0</padding> -		    <expand>False</expand> -		    <fill>False</fill> -		  </child> -		</widget> -	      </widget> -	    </widget> - -	    <widget> -	      <class>GtkAlignment</class> -	      <name>alignment17</name> -	      <xalign>0.5</xalign> -	      <yalign>1</yalign> -	      <xscale>1</xscale> -	      <yscale>0</yscale> -	      <child> -		<left_attach>0</left_attach> -		<right_attach>1</right_attach> -		<top_attach>2</top_attach> -		<bottom_attach>3</bottom_attach> -		<xpad>0</xpad> -		<ypad>0</ypad> -		<xexpand>True</xexpand> -		<yexpand>False</yexpand> -		<xshrink>False</xshrink> -		<yshrink>False</yshrink> -		<xfill>True</xfill> -		<yfill>True</yfill> -	      </child> - -	      <widget> -		<class>GtkVBox</class> -		<name>vbox15</name> -		<homogeneous>False</homogeneous> -		<spacing>0</spacing> - -		<widget> -		  <class>GtkLabel</class> -		  <name>label15</name> -		  <label>Footer:</label> -		  <justify>GTK_JUSTIFY_CENTER</justify> -		  <wrap>False</wrap> -		  <xalign>0</xalign> -		  <yalign>0.5</yalign> -		  <xpad>0</xpad> -		  <ypad>0</ypad> -		  <child> -		    <padding>0</padding> -		    <expand>False</expand> -		    <fill>False</fill> -		  </child> -		</widget> - -		<widget> -		  <class>GtkEntry</class> -		  <name>entry8</name> -		  <can_focus>True</can_focus> -		  <editable>True</editable> -		  <text_visible>True</text_visible> -		  <text_max_length>0</text_max_length> -		  <text></text> -		  <child> -		    <padding>0</padding> -		    <expand>False</expand> -		    <fill>False</fill> -		  </child> -		</widget> -	      </widget> -	    </widget> - -	    <widget> -	      <class>GtkAlignment</class> -	      <name>alignment14</name> -	      <xalign>0</xalign> -	      <yalign>1</yalign> -	      <xscale>0</xscale> -	      <yscale>0</yscale> -	      <child> -		<left_attach>1</left_attach> -		<right_attach>2</right_attach> -		<top_attach>0</top_attach> -		<bottom_attach>1</bottom_attach> -		<xpad>0</xpad> -		<ypad>0</ypad> -		<xexpand>False</xexpand> -		<yexpand>False</yexpand> -		<xshrink>False</xshrink> -		<yshrink>False</yshrink> -		<xfill>True</xfill> -		<yfill>True</yfill> -	      </child> - -	      <widget> -		<class>GtkButton</class> -		<name>button10</name> -		<can_focus>True</can_focus> -		<label>_Font...</label> -		<relief>GTK_RELIEF_NORMAL</relief> -	      </widget> -	    </widget> -	  </widget> - -	  <widget> -	    <class>GtkHBox</class> -	    <name>hbox7</name> -	    <homogeneous>False</homogeneous> -	    <spacing>0</spacing> -	    <child> -	      <padding>0</padding> -	      <expand>False</expand> -	      <fill>True</fill> -	    </child> - -	    <widget> -	      <class>GtkToolbar</class> -	      <name>toolbar1</name> -	      <orientation>GTK_ORIENTATION_HORIZONTAL</orientation> -	      <type>GTK_TOOLBAR_ICONS</type> -	      <space_size>5</space_size> -	      <space_style>GTK_TOOLBAR_SPACE_EMPTY</space_style> -	      <relief>GTK_RELIEF_NORMAL</relief> -	      <tooltips>True</tooltips> -	      <child> -		<padding>0</padding> -		<expand>True</expand> -		<fill>False</fill> -	      </child> - -	      <widget> -		<class>Placeholder</class> -	      </widget> - -	      <widget> -		<class>Placeholder</class> -	      </widget> - -	      <widget> -		<class>Placeholder</class> -	      </widget> - -	      <widget> -		<class>Placeholder</class> -	      </widget> - -	      <widget> -		<class>Placeholder</class> -	      </widget> -	    </widget> -	  </widget> - -	  <widget> -	    <class>GtkCheckButton</class> -	    <name>checkbutton4</name> -	    <can_focus>True</can_focus> -	    <label>Reverse on even pages</label> -	    <active>False</active> -	    <draw_indicator>True</draw_indicator> -	    <child> -	      <padding>0</padding> -	      <expand>False</expand> -	      <fill>False</fill> -	    </child> -	  </widget> -	</widget> - -	<widget> -	  <class>GtkLabel</class> -	  <child_name>Notebook:tab</child_name> -	  <name>label3</name> -	  <label>Header/Footer</label> -	  <justify>GTK_JUSTIFY_CENTER</justify> -	  <wrap>False</wrap> -	  <xalign>0.5</xalign> -	  <yalign>0.5</yalign> -	  <xpad>0</xpad> -	  <ypad>0</ypad> -	</widget> -      </widget> -    </widget> -  </widget> -</widget> - -</GTK-Interface> diff --git a/addressbook/printing/e-contact-print.h b/addressbook/printing/e-contact-print.h deleted file mode 100644 index 12f13f4573..0000000000 --- a/addressbook/printing/e-contact-print.h +++ /dev/null @@ -1,36 +0,0 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ -/*  - * e-contact-print.h - * Copyright (C) 2000  Ximian, Inc. - * Author: Chris Lahey <clahey@ximian.com> - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of version 2 of the GNU General Public - * License as published by the Free Software Foundation. - * - * 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 library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#ifndef E_CONTACT_PRINT_H -#define E_CONTACT_PRINT_H - -#include <glib.h> -#include <gtk/gtkwidget.h> -#include <addressbook/backend/ebook/e-book.h> -#include <addressbook/backend/ebook/e-card.h> -#include "e-contact-print-types.h" - -GtkWidget *e_contact_print_dialog_new(EBook *book, char *query); -void e_contact_print_preview(EBook *book, char *query); -GtkWidget *e_contact_print_card_dialog_new(ECard *card); -GtkWidget *e_contact_print_card_list_dialog_new(GList *list); - -#endif /* E_CONTACT_PRINT_H */ diff --git a/addressbook/printing/medbook.ecps b/addressbook/printing/medbook.ecps deleted file mode 100644 index ef76c0b46e..0000000000 --- a/addressbook/printing/medbook.ecps +++ /dev/null @@ -1,30 +0,0 @@ -<style> -<title/> -<type>cards</type> -<sections_start_new_page>FALSE</sections_start_new_page> -<num_columns>2</num_columns> -<blank_forms>2</blank_forms> -<letter_tabs>TRUE</letter_tabs> -<letter_headings>TRUE</letter_headings> -<headings_font>Helvetica Bold 12</headings_font> -<body_font>Helvetica 8</body_font> -<print_using_grey>TRUE</print_using_grey> -<paper_width>8.5</paper_width> -<paper_height>11</paper_height> -<top_margin>0.5</top_margin> -<left_margin>0.5</left_margin> -<bottom_margin>0.5</bottom_margin> -<right_margin>0.5</right_margin> -<page_width>8.5</page_width> -<page_height>11</page_height> -<orientation>portrait</orientation> -<header_font>Helvetica 8</header_font> -<left_header/> -<center_header/> -<right_header/> -<footer_font>Helvetica 8</footer_font> -<left_footer/> -<center_footer>[Page #]</center_footer> -<right_footer/> -<reverse_on_even_pages>FALSE</reverse_on_even_pages> -</style> diff --git a/addressbook/printing/phonelist.ecps b/addressbook/printing/phonelist.ecps deleted file mode 100644 index 980750a6b2..0000000000 --- a/addressbook/printing/phonelist.ecps +++ /dev/null @@ -1,29 +0,0 @@ -<style> -<title/> -<type>phone_list</type> -<sections_start_new_page>FALSE</sections_start_new_page> -<num_columns>2</num_columns> -<letter_tabs>FALSE</letter_tabs> -<letter_headings>TRUE</letter_headings> -<headings_font>Helvetica Bold 10</headings_font> -<body_font>Helvetica 8</body_font> -<print_using_grey>TRUE</print_using_grey> -<paper_width>8.5</paper_width> -<paper_height>11</paper_height> -<top_margin>0.5</top_margin> -<left_margin>0.5</left_margin> -<bottom_margin>0.5</bottom_margin> -<right_margin>0.5</right_margin> -<page_width>8.5</page_width> -<page_height>11</page_height> -<orientation>portrait</orientation> -<header_font>Helvetica 8</header_font> -<left_header/> -<center_header/> -<right_header/> -<footer_font>Helvetica 8</footer_font> -<left_footer>[User Name]</left_footer> -<center_footer>[Page #]</center_footer> -<right_footer>[Date Printed]</right_footer> -<reverse_on_even_pages>FALSE</reverse_on_even_pages> -</style> diff --git a/addressbook/printing/smallbook.ecps b/addressbook/printing/smallbook.ecps deleted file mode 100644 index 0bb19aa92e..0000000000 --- a/addressbook/printing/smallbook.ecps +++ /dev/null @@ -1,30 +0,0 @@ -<style> -<title/> -<type>cards</type> -<sections_start_new_page>FALSE</sections_start_new_page> -<num_columns>1</num_columns> -<blank_forms>2</blank_forms> -<letter_tabs>TRUE</letter_tabs> -<letter_headings>TRUE</letter_headings> -<headings_font>Helvetica Bold 8</headings_font> -<body_font>Helvetica 6</body_font> -<print_using_grey>TRUE</print_using_grey> -<paper_width>8.5</paper_width> -<paper_height>11</paper_height> -<top_margin>0.5</top_margin> -<left_margin>0.5</left_margin> -<bottom_margin>0.5</bottom_margin> -<right_margin>0.5</right_margin> -<page_width>2.75</page_width> -<page_height>4.25</page_height> -<orientation>portrait</orientation> -<header_font>Helvetica 6</header_font> -<left_header/> -<center_header/> -<right_header/> -<footer_font>Helvetica 6</footer_font> -<left_footer/> -<center_footer>[Page #]</center_footer> -<right_footer/> -<reverse_on_even_pages>FALSE</reverse_on_even_pages> -</style> diff --git a/addressbook/printing/test-contact-print-style-editor.c b/addressbook/printing/test-contact-print-style-editor.c deleted file mode 100644 index 0ac169468c..0000000000 --- a/addressbook/printing/test-contact-print-style-editor.c +++ /dev/null @@ -1,89 +0,0 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ -/*  - * test-contact-print-style-editor.c - * Copyright (C) 2000  Ximian, Inc. - * Author: Chris Lahey <clahey@ximian.com> - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of version 2 of the GNU General Public - * License as published by the Free Software Foundation. - * - * 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 library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#include "config.h" - -#include <stdlib.h> -#include <gtk/gtkmain.h> -#include <libgnomeui/gnome-app.h> -#include <libgnomeui/gnome-init.h> -#include "e-contact-print-style-editor.h" - -/* This is a horrible thing to do, but it is just a test. */ -GtkWidget *editor; - -static void destroy_callback(GtkWidget *app, gpointer data) -{ -	static int count = 2; -	count --; -	if ( count <= 0 ) -		exit(0); -} - -#if 0 -static void about_callback( GtkWidget *widget, gpointer data ) -{ -   -  const gchar *authors[] = -  { -    "Christopher James Lahey <clahey@umich.edu>", -    NULL -  }; - -  GtkWidget *about = -    gnome_about_new ( _( "Contact Print Style Editor Test" ), VERSION, -		      _( "Copyright (C) 2000, Ximian, Inc." ), -		      authors, -		      _( "This should test the contact print style editor widget" ), -		      NULL); -  gtk_widget_show (about);                                             -} -#endif - -int main( int argc, char *argv[] ) -{ -  GtkWidget *app; - -  /*  bindtextdomain (PACKAGE, GNOMELOCALEDIR); -      textdomain (PACKAGE);*/ - -  gnome_init( "Contact Print Style Editor Test", VERSION, argc, argv); - -  glade_gnome_init (); - -  app = gnome_app_new("Contact Print Style Editor Test", NULL); - -  editor = e_contact_print_style_editor_new(""); -   -  gnome_app_set_contents( GNOME_APP( app ), editor ); - -  /* Connect the signals */ -  gtk_signal_connect( GTK_OBJECT( app ), "destroy", -		      GTK_SIGNAL_FUNC( destroy_callback ), -		      ( gpointer ) app ); - -  gtk_widget_show_all( app ); - -  gtk_main();  - -  /* Not reached. */ -  return 0; -} diff --git a/addressbook/printing/test-print.c b/addressbook/printing/test-print.c deleted file mode 100644 index fc868318d8..0000000000 --- a/addressbook/printing/test-print.c +++ /dev/null @@ -1,86 +0,0 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ -/*  - * test-print.c - * Copyright (C) 2000  Ximian, Inc. - * Author: Chris Lahey <clahey@ximian.com> - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of version 2 of the GNU General Public - * License as published by the Free Software Foundation. - * - * 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 library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#include "config.h" - -#include <stdlib.h> -#include <gtk/gtkmain.h> -#include <libgnome/gnome-defs.h> -#include <libgnomeui/gnome-app.h> -#include <libgnomeui/gnome-dialog.h> -#include <libgnomeui/gnome-init.h> -#include <glade/glade.h> -#include "e-contact-print.h" - -/* This is a horrible thing to do, but it is just a test. */ -GtkWidget *print; - -static gint test_close(GnomeDialog *dialog, gpointer data) -{ -	exit(0); -	return 1; -} - -#if 0 -static void about_callback( GtkWidget *widget, gpointer data ) -{ -   -  const gchar *authors[] = -  { -    "Christopher James Lahey <clahey@umich.edu>", -    NULL -  }; - -  GtkWidget *about = -    gnome_about_new ( _( "Contact Print Test" ), VERSION, -		      _( "Copyright (C) 2000, Ximian, Inc." ), -		      authors, -		      _( "This should test the contact print code" ), -		      NULL); -  gtk_widget_show (about);                                             -} -#endif - -int main( int argc, char *argv[] ) -{ -  GList *shown_fields = NULL; - -  /*  bindtextdomain (PACKAGE, GNOMELOCALEDIR); -      textdomain (PACKAGE);*/ - -  gnome_init( "Contact Print Test", VERSION, argc, argv); - -  glade_gnome_init (); -   -  shown_fields = g_list_append(shown_fields, "First field"); -  shown_fields = g_list_append(shown_fields, "Second field"); -  shown_fields = g_list_append(shown_fields, "Third field"); -  shown_fields = g_list_append(shown_fields, "Fourth field"); - -  print = e_contact_print_dialog_new(NULL, NULL); -  gtk_widget_show_all(print); -  gtk_signal_connect(GTK_OBJECT(print), "close", GTK_SIGNAL_FUNC(test_close), NULL); - -  gtk_main();  - -  /* Not reached. */ -  return 0; -} | 
