#include "gtkframe.h"
#include "gtkalignment.h"
#include "gtklabel.h"
+#include "gtktooltips.h"
+#include "gtkeventbox.h"
#include "gtkprintbackend.h"
#include "gtkprinter-private.h"
GtkPrintUnixDialog *dialog);
static gboolean dialog_get_collate (GtkPrintUnixDialog *dialog);
static gboolean dialog_get_reverse (GtkPrintUnixDialog *dialog);
+static gint dialog_get_n_copies (GtkPrintUnixDialog *dialog);
enum {
PROP_0,
GtkPageSetup *page_setup;
+ GtkTooltips *tooltips;
GtkWidget *all_pages_radio;
GtkWidget *current_page_radio;
GtkWidget *page_range_radio;
priv->print_backends = NULL;
priv->current_page = -1;
+ priv->tooltips = gtk_tooltips_new ();
+ g_object_ref_sink (priv->tooltips);
+
priv->page_setup = gtk_page_setup_new ();
g_signal_connect (dialog,
unschedule_idle_mark_conflicts (dialog);
+ if (priv->tooltips)
+ {
+ g_object_unref (priv->tooltips);
+ priv->tooltips = NULL;
+ }
+
if (priv->request_details_tag)
{
g_source_remove (priv->request_details_tag);
gint size;
gfloat scale;
gboolean collate, reverse, rtl;
+ gint copies;
gint text_x;
collate = dialog_get_collate (dialog);
reverse = dialog_get_reverse (dialog);
+ copies = dialog_get_n_copies (dialog);
+
rtl = (gtk_widget_get_direction (GTK_WIDGET (widget)) == GTK_TEXT_DIR_RTL);
settings = gtk_widget_get_settings (widget);
cr = gdk_cairo_create (widget->window);
- paint_page (widget, cr, scale, rtl ? 40: 15, 5, collate == reverse ? "1" : "2", text_x);
- paint_page (widget, cr, scale, rtl ? 50: 5, 15, reverse ? "2" : "1", text_x);
+ if (copies == 1)
+ {
+ paint_page (widget, cr, scale, rtl ? 40: 15, 5, reverse ? "1" : "2", text_x);
+ paint_page (widget, cr, scale, rtl ? 50: 5, 15, reverse ? "2" : "1", text_x);
+ }
+ else
+ {
+ paint_page (widget, cr, scale, rtl ? 40: 15, 5, collate == reverse ? "1" : "2", text_x);
+ paint_page (widget, cr, scale, rtl ? 50: 5, 15, reverse ? "2" : "1", text_x);
+
+ paint_page (widget, cr, scale, rtl ? 5 : 50, 5, reverse ? "1" : "2", text_x);
+ paint_page (widget, cr, scale, rtl ? 15 : 40, 15, collate == reverse ? "2" : "1", text_x);
+ }
- paint_page (widget, cr, scale, rtl ? 5 : 50, 5, reverse ? "1" : "2", text_x);
- paint_page (widget, cr, scale, rtl ? 15 : 40, 15, collate == reverse ? "2" : "1", text_x);
-
cairo_destroy (cr);
return TRUE;
GtkPrintUnixDialogPrivate *priv = dialog->priv;
GtkWidget *main_vbox, *label, *vbox, *hbox;
GtkWidget *scrolled, *treeview, *frame, *table;
- GtkWidget *entry, *spinbutton;
+ GtkWidget *entry, *spinbutton, *event_box;
GtkWidget *radio, *check, *image;
GtkCellRenderer *renderer;
GtkTreeViewColumn *column;
gtk_table_attach (GTK_TABLE (table), radio,
0, 2, 1, 2, GTK_FILL, 0,
0, 0);
- radio = gtk_radio_button_new_with_mnemonic (gtk_radio_button_get_group (GTK_RADIO_BUTTON (radio)),
- _("Ra_nge: "));
+
+ radio = gtk_radio_button_new_with_mnemonic (gtk_radio_button_get_group (GTK_RADIO_BUTTON (radio)), _("Ra_nge"));
+ gtk_tooltips_set_tip (priv->tooltips, radio, _("Specify one or more page ranges,\n e.g. 1-3,7,11"), NULL);
+
priv->page_range_radio = radio;
gtk_widget_show (radio);
gtk_table_attach (GTK_TABLE (table), radio,