diff options
author | Marek Kasik <mkasik@redhat.com> | 2008-08-21 10:25:27 +0000 |
---|---|---|
committer | Marek Kašík <mkasik@src.gnome.org> | 2008-08-21 10:25:27 +0000 |
commit | 6e7941db6d2e656c7252fff1f1ab0ae9034335eb (patch) | |
tree | 7c667ea5e197d23d37b66b793fdec19316630fda /gtk/gtkprintsettings.c | |
parent | 0f942a3cb8eaab6ec840d3ffdfa1ef513fadfb2e (diff) | |
download | gtk+-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.c | 103 |
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 * |