summaryrefslogtreecommitdiff
path: root/gtk/gtkprintsettings.c
diff options
context:
space:
mode:
authorMarek Kasik <mkasik@redhat.com>2008-08-21 10:25:27 +0000
committerMarek Kašík <mkasik@src.gnome.org>2008-08-21 10:25:27 +0000
commit6e7941db6d2e656c7252fff1f1ab0ae9034335eb (patch)
tree7c667ea5e197d23d37b66b793fdec19316630fda /gtk/gtkprintsettings.c
parent0f942a3cb8eaab6ec840d3ffdfa1ef513fadfb2e (diff)
downloadgtk+-6e7941db6d2e656c7252fff1f1ab0ae9034335eb.tar.gz
Bug 535158 – can't rearrange the order of multi pages per side
2008-08-21 Marek Kasik <mkasik@redhat.com> Bug 535158 – can't rearrange the order of multi pages per side * gtk/gtkprinter.c * gtk/gtkprinter.h * gtk/gtkprintunixdialog.c * gtk/gtkprintsettings.c * gtk/gtkprintsettings.h * gtk/gtkenums.h * modules/printbackends/cups/gtkprintbackendcups.c: Allow user to specify layout of pages per sheet in number-up mode svn path=/trunk/; revision=21175
Diffstat (limited to 'gtk/gtkprintsettings.c')
-rw-r--r--gtk/gtkprintsettings.c103
1 files changed, 103 insertions, 0 deletions
diff --git a/gtk/gtkprintsettings.c b/gtk/gtkprintsettings.c
index 803163de87..e0eee87c47 100644
--- a/gtk/gtkprintsettings.c
+++ b/gtk/gtkprintsettings.c
@@ -25,6 +25,7 @@
#include "gtkprintsettings.h"
#include "gtkprintutils.h"
#include "gtkalias.h"
+#include <gtk/gtk.h>
typedef struct _GtkPrintSettingsClass GtkPrintSettingsClass;
@@ -1039,6 +1040,108 @@ gtk_print_settings_set_page_set (GtkPrintSettings *settings,
}
/**
+ * gtk_print_settings_get_number_up_layout:
+ * @settings: a #GtkPrintSettings
+ *
+ * Gets the value of %GTK_PRINT_SETTINGS_NUMBER_UP_LAYOUT.
+ *
+ * Return value: layout of page in number-up mode
+ *
+ * Since: 2.14
+ */
+GtkNumberUpLayout
+gtk_print_settings_get_number_up_layout (GtkPrintSettings *settings)
+{
+ GtkNumberUpLayout layout;
+ GtkTextDirection text_direction;
+ const gchar *val;
+
+ val = gtk_print_settings_get (settings, GTK_PRINT_SETTINGS_NUMBER_UP_LAYOUT);
+ text_direction = gtk_widget_get_default_direction ();
+
+ if (text_direction == GTK_TEXT_DIR_LTR)
+ layout = GTK_NUMBER_UP_LAYOUT_LEFT_TO_RIGHT_TOP_TO_BOTTOM;
+ else
+ layout = GTK_NUMBER_UP_LAYOUT_RIGHT_TO_LEFT_TOP_TO_BOTTOM;
+
+ if (val == NULL)
+ return layout;
+
+ if (strcmp (val, "lrtb") == 0)
+ return GTK_NUMBER_UP_LAYOUT_LEFT_TO_RIGHT_TOP_TO_BOTTOM;
+
+ if (strcmp (val, "lrbt") == 0)
+ return GTK_NUMBER_UP_LAYOUT_LEFT_TO_RIGHT_BOTTOM_TO_TOP;
+
+ if (strcmp (val, "rltb") == 0)
+ return GTK_NUMBER_UP_LAYOUT_RIGHT_TO_LEFT_TOP_TO_BOTTOM;
+
+ if (strcmp (val, "rlbt") == 0)
+ return GTK_NUMBER_UP_LAYOUT_RIGHT_TO_LEFT_BOTTOM_TO_TOP;
+
+ if (strcmp (val, "tblr") == 0)
+ return GTK_NUMBER_UP_LAYOUT_TOP_TO_BOTTOM_LEFT_TO_RIGHT;
+
+ if (strcmp (val, "tbrl") == 0)
+ return GTK_NUMBER_UP_LAYOUT_TOP_TO_BOTTOM_RIGHT_TO_LEFT;
+
+ if (strcmp (val, "btlr") == 0)
+ return GTK_NUMBER_UP_LAYOUT_BOTTOM_TO_TOP_LEFT_TO_RIGHT;
+
+ if (strcmp (val, "btrl") == 0)
+ return GTK_NUMBER_UP_LAYOUT_BOTTOM_TO_TOP_RIGHT_TO_LEFT;
+
+ return layout;
+}
+
+/**
+ * gtk_print_settings_set_number_up_layout:
+ * @settings: a #GtkPrintSettings
+ * @number_up_layout: a #GtkNumberUpLayout value
+ *
+ * Sets the value of %GTK_PRINT_SETTINGS_NUMBER_UP_LAYOUT.
+ *
+ * Since: 2.14
+ */
+void
+gtk_print_settings_set_number_up_layout (GtkPrintSettings *settings,
+ GtkNumberUpLayout number_up_layout)
+{
+ const gchar *str;
+
+ switch (number_up_layout)
+ {
+ default:
+ case GTK_NUMBER_UP_LAYOUT_LEFT_TO_RIGHT_TOP_TO_BOTTOM:
+ str = "lrtb";
+ break;
+ case GTK_NUMBER_UP_LAYOUT_LEFT_TO_RIGHT_BOTTOM_TO_TOP:
+ str = "lrbt";
+ break;
+ case GTK_NUMBER_UP_LAYOUT_RIGHT_TO_LEFT_TOP_TO_BOTTOM:
+ str = "rltb";
+ break;
+ case GTK_NUMBER_UP_LAYOUT_RIGHT_TO_LEFT_BOTTOM_TO_TOP:
+ str = "rlbt";
+ break;
+ case GTK_NUMBER_UP_LAYOUT_TOP_TO_BOTTOM_LEFT_TO_RIGHT:
+ str = "tblr";
+ break;
+ case GTK_NUMBER_UP_LAYOUT_TOP_TO_BOTTOM_RIGHT_TO_LEFT:
+ str = "tbrl";
+ break;
+ case GTK_NUMBER_UP_LAYOUT_BOTTOM_TO_TOP_LEFT_TO_RIGHT:
+ str = "btlr";
+ break;
+ case GTK_NUMBER_UP_LAYOUT_BOTTOM_TO_TOP_RIGHT_TO_LEFT:
+ str = "btrl";
+ break;
+ }
+
+ gtk_print_settings_set (settings, GTK_PRINT_SETTINGS_NUMBER_UP_LAYOUT, str);
+}
+
+/**
* gtk_print_settings_get_n_copies:
* @settings: a #GtkPrintSettings
*