]> Pileus Git - ~andy/gtk/blobdiff - gtk/gtkprintsettings.c
Add GtkSpinner::animation-duration style property
[~andy/gtk] / gtk / gtkprintsettings.c
index 74effed9be5deee1f0fa34cdc8b9050ec8bb4107..5c66fd69cdfcbb0f3123e16a1f366675b951d806 100644 (file)
@@ -22,6 +22,7 @@
 #include <string.h>
 #include <stdlib.h>
 #include <glib/gprintf.h>
+#include <gtk/gtk.h>
 #include "gtkprintsettings.h"
 #include "gtkprintutils.h"
 #include "gtkalias.h"
@@ -1038,6 +1039,73 @@ gtk_print_settings_set_page_set (GtkPrintSettings *settings,
   gtk_print_settings_set (settings, GTK_PRINT_SETTINGS_PAGE_SET, str);
 }
 
+/**
+ * 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;
+  GEnumClass       *enum_class;
+  GEnumValue       *enum_value;
+  const gchar      *val;
+
+  g_return_val_if_fail (GTK_IS_PRINT_SETTINGS (settings), GTK_NUMBER_UP_LAYOUT_LEFT_TO_RIGHT_TOP_TO_BOTTOM);
+
+  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;
+
+  enum_class = g_type_class_ref (GTK_TYPE_NUMBER_UP_LAYOUT);
+  enum_value = g_enum_get_value_by_nick (enum_class, val);
+  if (enum_value)
+    layout = enum_value->value;
+  g_type_class_unref (enum_class);
+
+  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)
+{
+  GEnumClass *enum_class;
+  GEnumValue *enum_value;
+
+  g_return_if_fail (GTK_IS_PRINT_SETTINGS (settings));
+
+  enum_class = g_type_class_ref (GTK_TYPE_NUMBER_UP_LAYOUT);
+  enum_value = g_enum_get_value (enum_class, number_up_layout);
+  g_return_if_fail (enum_value != NULL);
+
+  gtk_print_settings_set (settings, GTK_PRINT_SETTINGS_NUMBER_UP_LAYOUT, enum_value->value_nick);
+  g_type_class_unref (enum_class);
+}
+
 /**
  * gtk_print_settings_get_n_copies:
  * @settings: a #GtkPrintSettings
@@ -1117,7 +1185,7 @@ gtk_print_settings_set_number_up (GtkPrintSettings *settings,
 gint
 gtk_print_settings_get_resolution (GtkPrintSettings *settings)
 {
-  return gtk_print_settings_get_int (settings, GTK_PRINT_SETTINGS_RESOLUTION);
+  return gtk_print_settings_get_int_with_default (settings, GTK_PRINT_SETTINGS_RESOLUTION, 300);
 }
 
 /**
@@ -1125,7 +1193,9 @@ gtk_print_settings_get_resolution (GtkPrintSettings *settings)
  * @settings: a #GtkPrintSettings
  * @resolution: the resolution in dpi
  * 
- * Sets the value of %GTK_PRINT_SETTINGS_RESOLUTION.
+ * Sets the values of %GTK_PRINT_SETTINGS_RESOLUTION,
+ * %GTK_PRINT_SETTINGS_RESOLUTION_X and 
+ * %GTK_PRINT_SETTINGS_RESOLUTION_Y.
  * 
  * Since: 2.10
  */
@@ -1135,6 +1205,100 @@ gtk_print_settings_set_resolution (GtkPrintSettings *settings,
 {
   gtk_print_settings_set_int (settings, GTK_PRINT_SETTINGS_RESOLUTION,
                              resolution);
+  gtk_print_settings_set_int (settings, GTK_PRINT_SETTINGS_RESOLUTION_X,
+                             resolution);
+  gtk_print_settings_set_int (settings, GTK_PRINT_SETTINGS_RESOLUTION_Y,
+                             resolution);
+}
+
+/**
+ * gtk_print_settings_get_resolution_x:
+ * @settings: a #GtkPrintSettings
+ * 
+ * Gets the value of %GTK_PRINT_SETTINGS_RESOLUTION_X.
+ * 
+ * Return value: the horizontal resolution in dpi
+ *
+ * Since: 2.16
+ */
+gint
+gtk_print_settings_get_resolution_x (GtkPrintSettings *settings)
+{
+  return gtk_print_settings_get_int_with_default (settings, GTK_PRINT_SETTINGS_RESOLUTION_X, 300);
+}
+
+/**
+ * gtk_print_settings_get_resolution_y:
+ * @settings: a #GtkPrintSettings
+ * 
+ * Gets the value of %GTK_PRINT_SETTINGS_RESOLUTION_Y.
+ * 
+ * Return value: the vertical resolution in dpi
+ *
+ * Since: 2.16
+ */
+gint
+gtk_print_settings_get_resolution_y (GtkPrintSettings *settings)
+{
+  return gtk_print_settings_get_int_with_default (settings, GTK_PRINT_SETTINGS_RESOLUTION_Y, 300);
+}
+
+/**
+ * gtk_print_settings_set_resolution_xy:
+ * @settings: a #GtkPrintSettings
+ * @resolution_x: the horizontal resolution in dpi
+ * @resolution_y: the vertical resolution in dpi
+ * 
+ * Sets the values of %GTK_PRINT_SETTINGS_RESOLUTION,
+ * %GTK_PRINT_SETTINGS_RESOLUTION_X and
+ * %GTK_PRINT_SETTINGS_RESOLUTION_Y.
+ * 
+ * Since: 2.16
+ */
+void
+gtk_print_settings_set_resolution_xy (GtkPrintSettings *settings,
+                                     gint              resolution_x,
+                                     gint              resolution_y)
+{
+  gtk_print_settings_set_int (settings, GTK_PRINT_SETTINGS_RESOLUTION_X,
+                             resolution_x);
+  gtk_print_settings_set_int (settings, GTK_PRINT_SETTINGS_RESOLUTION_Y,
+                             resolution_y);
+  gtk_print_settings_set_int (settings, GTK_PRINT_SETTINGS_RESOLUTION,
+                             resolution_x);
+}
+
+/**
+ * gtk_print_settings_get_printer_lpi:
+ * @settings: a #GtkPrintSettings
+ * 
+ * Gets the value of %GTK_PRINT_SETTINGS_PRINTER_LPI.
+ * 
+ * Return value: the resolution in lpi (lines per inch)
+ *
+ * Since: 2.16
+ */
+gdouble
+gtk_print_settings_get_printer_lpi (GtkPrintSettings *settings)
+{
+  return gtk_print_settings_get_double_with_default (settings, GTK_PRINT_SETTINGS_PRINTER_LPI, 150.0);
+}
+
+/**
+ * gtk_print_settings_set_printer_lpi:
+ * @settings: a #GtkPrintSettings
+ * @lpi: the resolution in lpi (lines per inch)
+ * 
+ * Sets the value of %GTK_PRINT_SETTINGS_PRINTER_LPI.
+ * 
+ * Since: 2.16
+ */
+void
+gtk_print_settings_set_printer_lpi (GtkPrintSettings *settings,
+                                   gdouble           lpi)
+{
+  gtk_print_settings_set_double (settings, GTK_PRINT_SETTINGS_PRINTER_LPI,
+                                lpi);
 }
 
 /**
@@ -1192,6 +1356,9 @@ gtk_print_settings_get_print_pages (GtkPrintSettings *settings)
   if (val == NULL || (strcmp (val, "all") == 0))
     return GTK_PRINT_PAGES_ALL;
 
+  if (strcmp (val, "selection") == 0)
+    return GTK_PRINT_PAGES_SELECTION;
+
   if (strcmp (val, "current") == 0)
     return GTK_PRINT_PAGES_CURRENT;
   
@@ -1225,6 +1392,9 @@ gtk_print_settings_set_print_pages (GtkPrintSettings *settings,
     case GTK_PRINT_PAGES_CURRENT:
       str = "current";
       break;
+    case GTK_PRINT_PAGES_SELECTION:
+      str = "selection";
+      break;
     case GTK_PRINT_PAGES_RANGES:
       str = "ranges";
       break;
@@ -1511,7 +1681,7 @@ gtk_print_settings_set_output_bin (GtkPrintSettings *settings,
  *
  * Return value: %TRUE on success
  *
- * Since: 2.16
+ * Since: 2.14
  */
 gboolean
 gtk_print_settings_load_file (GtkPrintSettings *settings,
@@ -1567,14 +1737,15 @@ gtk_print_settings_new_from_file (const gchar  *file_name,
  * gtk_print_settings_load_key_file:
  * @settings: a #GtkPrintSettings
  * @key_file: the #GKeyFile to retrieve the settings from
- * @group_name: the name of the group to use
+ * @group_name: the name of the group to use, or %NULL to use the default
+ *     "Print Settings"
  * @error: return location for errors, or %NULL
  * 
  * Reads the print settings from the group @group_name in @key_file. 
  *
  * Return value: %TRUE on success
  * 
- * Since: 2.16
+ * Since: 2.14
  */
 gboolean
 gtk_print_settings_load_key_file (GtkPrintSettings *settings,
@@ -1625,7 +1796,8 @@ gtk_print_settings_load_key_file (GtkPrintSettings *settings,
 /**
  * gtk_print_settings_new_from_key_file:
  * @key_file: the #GKeyFile to retrieve the settings from
- * @group_name: the name of the group to use
+ * @group_name: the name of the group to use, or %NULL to use
+ *     the default "Print Settings"
  * @error: return location for errors, or %NULL
  *
  * Reads the print settings from the group @group_name in @key_file.