]> Pileus Git - ~andy/gtk/blobdiff - gtk/gtkprintsettings.c
fix a typo
[~andy/gtk] / gtk / gtkprintsettings.c
index 80c0c9913bcbd294298e2491bcc9b1f1a7798a03..e80548e3a4a651f1676123447b54cb6188679d7f 100644 (file)
 #include <stdlib.h>
 #include <glib/gprintf.h>
 #include "gtkprintsettings.h"
+#include "gtkprintutils.h"
 #include "gtkalias.h"
 
-#define MM_PER_INCH 25.4
-#define POINTS_PER_INCH 72
 
 typedef struct _GtkPrintSettingsClass GtkPrintSettingsClass;
 
@@ -48,44 +47,6 @@ struct _GtkPrintSettingsClass
 
 G_DEFINE_TYPE (GtkPrintSettings, gtk_print_settings, G_TYPE_OBJECT)
 
-static gdouble
-to_mm (gdouble len, GtkUnit unit)
-{
-  switch (unit)
-    {
-    case GTK_UNIT_MM:
-      return len;
-    case GTK_UNIT_INCH:
-      return len * MM_PER_INCH;
-    default:
-    case GTK_UNIT_PIXEL:
-      g_warning ("Unsupported unit");
-      /* Fall through */
-    case GTK_UNIT_POINTS:
-      return len * (MM_PER_INCH / POINTS_PER_INCH);
-      break;
-    }
-}
-
-static gdouble
-from_mm (gdouble len, GtkUnit unit)
-{
-  switch (unit)
-    {
-    case GTK_UNIT_MM:
-      return len;
-    case GTK_UNIT_INCH:
-      return len / MM_PER_INCH;
-    default:
-    case GTK_UNIT_PIXEL:
-      g_warning ("Unsupported unit");
-      /* Fall through */
-    case GTK_UNIT_POINTS:
-      return len / (MM_PER_INCH / POINTS_PER_INCH);
-      break;
-    }
-}
-
 static void
 gtk_print_settings_finalize (GObject *object)
 {
@@ -417,14 +378,14 @@ gtk_print_settings_get_length (GtkPrintSettings *settings,
                               GtkUnit           unit)
 {
   gdouble length = gtk_print_settings_get_double (settings, key);
-  return from_mm (length, unit);
+  return _gtk_print_convert_from_mm (length, unit);
 }
 
 /**
  * gtk_print_settings_set_length:
  * @settings: a #GtkPrintSettings
  * @key: a key
- * @length: a length
+ * @value: a length
  * @unit: the unit of @length
  * 
  * Associates a length in units of @unit with @key.
@@ -434,11 +395,11 @@ gtk_print_settings_get_length (GtkPrintSettings *settings,
 void
 gtk_print_settings_set_length (GtkPrintSettings *settings,
                               const gchar      *key,
-                              gdouble           length
+                              gdouble           value
                               GtkUnit           unit)
 {
   gtk_print_settings_set_double (settings, key,
-                                to_mm (length, unit));
+                                _gtk_print_convert_to_mm (value, unit));
 }
 
 /**
@@ -780,6 +741,16 @@ gtk_print_settings_set_paper_height (GtkPrintSettings *settings,
                                 height, unit);
 }
 
+/**
+ * gtk_print_settings_get_use_color:
+ * @settings: a #GtkPrintSettings
+ * 
+ * Gets the value of %GTK_PRINT_SETTINGS_USE_COLOR.
+ * 
+ * Return value: whether to use color
+ *
+ * Since: 2.10
+ */
 gboolean
 gtk_print_settings_get_use_color (GtkPrintSettings *settings)
 {
@@ -788,6 +759,15 @@ gtk_print_settings_get_use_color (GtkPrintSettings *settings)
                                                   TRUE);
 }
 
+/**
+ * gtk_print_settings_set_use_color:
+ * @settings: a #GtkPrintSettings
+ * @use_color: whether to use color
+ * 
+ * Sets the value of %GTK_PRINT_SETTINGS_USE_COLOR.
+ * 
+ * Since: 2.10
+ */
 void
 gtk_print_settings_set_use_color (GtkPrintSettings *settings,
                                  gboolean          use_color)
@@ -797,6 +777,16 @@ gtk_print_settings_set_use_color (GtkPrintSettings *settings,
                               use_color);
 }
 
+/**
+ * gtk_print_settings_get_collate:
+ * @settings: a #GtkPrintSettings
+ * 
+ * Gets the value of %GTK_PRINT_SETTINGS_COLLATE.
+ * 
+ * Return value: whether to collate the printed pages
+ *
+ * Since: 2.10
+ */
 gboolean
 gtk_print_settings_get_collate (GtkPrintSettings *settings)
 {
@@ -804,6 +794,15 @@ gtk_print_settings_get_collate (GtkPrintSettings *settings)
                                      GTK_PRINT_SETTINGS_COLLATE);
 }
 
+/**
+ * gtk_print_settings_set_collate:
+ * @settings: a #GtkPrintSettings
+ * @collate: whether to collate the output
+ * 
+ * Sets the value of %GTK_PRINT_SETTINGS_COLLATE.
+ * 
+ * Since: 2.10
+ */
 void
 gtk_print_settings_set_collate (GtkPrintSettings *settings,
                                gboolean          collate)
@@ -813,6 +812,16 @@ gtk_print_settings_set_collate (GtkPrintSettings *settings,
                               collate);
 }
 
+/**
+ * gtk_print_settings_get_reverse:
+ * @settings: a #GtkPrintSettings
+ * 
+ * Gets the value of %GTK_PRINT_SETTINGS_REVERSE.
+ * 
+ * Return value: whether to reverse the order of the printed pages
+ *
+ * Since: 2.10
+ */
 gboolean
 gtk_print_settings_get_reverse (GtkPrintSettings *settings)
 {
@@ -820,6 +829,15 @@ gtk_print_settings_get_reverse (GtkPrintSettings *settings)
                                      GTK_PRINT_SETTINGS_REVERSE);
 }
 
+/**
+ * gtk_print_settings_set_reverse:
+ * @settings: a #GtkPrintSettings
+ * @reverse: whether to reverse the output
+ * 
+ * Sets the value of %GTK_PRINT_SETTINGS_REVERSE.
+ * 
+ * Since: 2.10
+ */
 void
 gtk_print_settings_set_reverse (GtkPrintSettings *settings,
                                  gboolean        reverse)
@@ -829,6 +847,16 @@ gtk_print_settings_set_reverse (GtkPrintSettings *settings,
                               reverse);
 }
 
+/**
+ * gtk_print_settings_get_duplex:
+ * @settings: a #GtkPrintSettings
+ * 
+ * Gets the value of %GTK_PRINT_SETTINGS_DUPLEX.
+ * 
+ * Return value: whether to print the output in duplex.
+ *
+ * Since: 2.10
+ */
 GtkPrintDuplex
 gtk_print_settings_get_duplex (GtkPrintSettings *settings)
 {
@@ -843,11 +871,20 @@ gtk_print_settings_get_duplex (GtkPrintSettings *settings)
     return GTK_PRINT_DUPLEX_HORIZONTAL;
   
   if (strcmp (val, "vertical") == 0)
-    return GTK_PRINT_DUPLEX_HORIZONTAL;
+    return GTK_PRINT_DUPLEX_VERTICAL;
   
   return GTK_PRINT_DUPLEX_SIMPLEX;
 }
 
+/**
+ * gtk_print_settings_set_duplex:
+ * @settings: a #GtkPrintSettings
+ * @duplex: a #GtkPrintDuplex value
+ * 
+ * Sets the value of %GTK_PRINT_SETTINGS_DUPLEX.
+ * 
+ * Since: 2.10
+ */
 void
 gtk_print_settings_set_duplex (GtkPrintSettings *settings,
                               GtkPrintDuplex    duplex)
@@ -871,6 +908,16 @@ gtk_print_settings_set_duplex (GtkPrintSettings *settings,
   gtk_print_settings_set (settings, GTK_PRINT_SETTINGS_DUPLEX, str);
 }
 
+/**
+ * gtk_print_settings_get_quality:
+ * @settings: a #GtkPrintSettings
+ * 
+ * Gets the value of %GTK_PRINT_SETTINGS_QUALITY.
+ * 
+ * Return value: the print quality
+ *
+ * Since: 2.10
+ */
 GtkPrintQuality
 gtk_print_settings_get_quality (GtkPrintSettings *settings)
 {
@@ -893,6 +940,15 @@ gtk_print_settings_get_quality (GtkPrintSettings *settings)
   return GTK_PRINT_QUALITY_NORMAL;
 }
 
+/**
+ * gtk_print_settings_set_quality:
+ * @settings: a #GtkPrintSettings
+ * @quality: a #GtkPrintQuality value
+ * 
+ * Sets the value of %GTK_PRINT_SETTINGS_QUALITY.
+ * 
+ * Since: 2.10
+ */
 void
 gtk_print_settings_set_quality (GtkPrintSettings *settings,
                                GtkPrintQuality   quality)
@@ -919,6 +975,16 @@ gtk_print_settings_set_quality (GtkPrintSettings *settings,
   gtk_print_settings_set (settings, GTK_PRINT_SETTINGS_QUALITY, str);
 }
 
+/**
+ * gtk_print_settings_get_page_set:
+ * @settings: a #GtkPrintSettings
+ * 
+ * Gets the value of %GTK_PRINT_SETTINGS_PAGE_SET.
+ * 
+ * Return value: the set of pages to print
+ *
+ * Since: 2.10
+ */
 GtkPageSet
 gtk_print_settings_get_page_set (GtkPrintSettings *settings)
 {
@@ -938,6 +1004,15 @@ gtk_print_settings_get_page_set (GtkPrintSettings *settings)
   return GTK_PAGE_SET_ALL;
 }
 
+/**
+ * gtk_print_settings_set_page_set:
+ * @settings: a #GtkPrintSettings
+ * @page_set: a #GtkPageSet value
+ * 
+ * Sets the value of %GTK_PRINT_SETTINGS_PAGE_SET.
+ * 
+ * Since: 2.10
+ */
 void
 gtk_print_settings_set_page_set (GtkPrintSettings *settings,
                                 GtkPageSet        page_set)
@@ -961,26 +1036,64 @@ gtk_print_settings_set_page_set (GtkPrintSettings *settings,
   gtk_print_settings_set (settings, GTK_PRINT_SETTINGS_PAGE_SET, str);
 }
 
+/**
+ * gtk_print_settings_get_n_copies:
+ * @settings: a #GtkPrintSettings
+ * 
+ * Gets the value of %GTK_PRINT_SETTINGS_N_COPIES.
+ * 
+ * Return value: the number of copies to print
+ *
+ * Since: 2.10
+ */
 gint
-gtk_print_settings_get_num_copies (GtkPrintSettings *settings)
+gtk_print_settings_get_n_copies (GtkPrintSettings *settings)
 {
-  return gtk_print_settings_get_int_with_default (settings, GTK_PRINT_SETTINGS_NUM_COPIES, 1);
+  return gtk_print_settings_get_int_with_default (settings, GTK_PRINT_SETTINGS_N_COPIES, 1);
 }
 
+/**
+ * gtk_print_settings_set_n_copies:
+ * @settings: a #GtkPrintSettings
+ * @num_copies: the number of copies 
+ * 
+ * Sets the value of %GTK_PRINT_SETTINGS_N_COPIES.
+ * 
+ * Since: 2.10
+ */
 void
-gtk_print_settings_set_num_copies (GtkPrintSettings *settings,
-                                  gint              num_copies)
+gtk_print_settings_set_n_copies (GtkPrintSettings *settings,
+                                gint              num_copies)
 {
-  gtk_print_settings_set_int (settings, GTK_PRINT_SETTINGS_NUM_COPIES,
+  gtk_print_settings_set_int (settings, GTK_PRINT_SETTINGS_N_COPIES,
                              num_copies);
 }
 
+/**
+ * gtk_print_settings_get_number_up:
+ * @settings: a #GtkPrintSettings
+ * 
+ * Gets the value of %GTK_PRINT_SETTINGS_NUMBER_UP.
+ * 
+ * Return value: the number of pages per sheet
+ *
+ * Since: 2.10
+ */
 gint
 gtk_print_settings_get_number_up (GtkPrintSettings *settings)
 {
   return gtk_print_settings_get_int (settings, GTK_PRINT_SETTINGS_NUMBER_UP);
 }
 
+/**
+ * gtk_print_settings_set_number_up:
+ * @settings: a #GtkPrintSettings
+ * @number_up: the number of pages per sheet 
+ * 
+ * Sets the value of %GTK_PRINT_SETTINGS_NUMBER_UP.
+ * 
+ * Since: 2.10
+ */
 void
 gtk_print_settings_set_number_up (GtkPrintSettings *settings,
                                  gint              number_up)
@@ -989,12 +1102,31 @@ gtk_print_settings_set_number_up (GtkPrintSettings *settings,
                                number_up);
 }
 
+/**
+ * gtk_print_settings_get_resolution:
+ * @settings: a #GtkPrintSettings
+ * 
+ * Gets the value of %GTK_PRINT_SETTINGS_RESOLUTION.
+ * 
+ * Return value: the resolution in dpi
+ *
+ * Since: 2.10
+ */
 gint
 gtk_print_settings_get_resolution (GtkPrintSettings *settings)
 {
   return gtk_print_settings_get_int (settings, GTK_PRINT_SETTINGS_RESOLUTION);
 }
 
+/**
+ * gtk_print_settings_set_resolution:
+ * @settings: a #GtkPrintSettings
+ * @resolution: the resolution in dpi
+ * 
+ * Sets the value of %GTK_PRINT_SETTINGS_RESOLUTION.
+ * 
+ * Since: 2.10
+ */
 void
 gtk_print_settings_set_resolution (GtkPrintSettings *settings,
                                   gint              resolution)
@@ -1003,6 +1135,16 @@ gtk_print_settings_set_resolution (GtkPrintSettings *settings,
                              resolution);
 }
 
+/**
+ * gtk_print_settings_get_scale:
+ * @settings: a #GtkPrintSettings
+ * 
+ * Gets the value of %GTK_PRINT_SETTINGS_SCALE.
+ * 
+ * Return value: the scale in percent
+ *
+ * Since: 2.10
+ */
 gdouble
 gtk_print_settings_get_scale (GtkPrintSettings *settings)
 {
@@ -1011,6 +1153,15 @@ gtk_print_settings_get_scale (GtkPrintSettings *settings)
                                                     100.0);
 }
 
+/**
+ * gtk_print_settings_set_scale:
+ * @settings: a #GtkPrintSettings
+ * @scale: the scale in percent
+ * 
+ * Sets the value of %GTK_PRINT_SETTINGS_SCALE.
+ * 
+ * Since: 2.10
+ */
 void
 gtk_print_settings_set_scale (GtkPrintSettings *settings,
                              gdouble           scale)
@@ -1019,22 +1170,16 @@ gtk_print_settings_set_scale (GtkPrintSettings *settings,
                                 scale);
 }
 
-gboolean
-gtk_print_settings_get_print_to_file (GtkPrintSettings *settings)
-{
-  return gtk_print_settings_get_bool (settings, 
-                                     GTK_PRINT_SETTINGS_PRINT_TO_FILE);
-}
-
-void
-gtk_print_settings_set_print_to_file (GtkPrintSettings *settings,
-                                     gboolean          print_to_file)
-{
-  gtk_print_settings_set_bool (settings,
-                              GTK_PRINT_SETTINGS_PRINT_TO_FILE, 
-                              print_to_file);
-}
-
+/**
+ * gtk_print_settings_get_print_pages:
+ * @settings: a #GtkPrintSettings
+ * 
+ * Gets the value of %GTK_PRINT_SETTINGS_PRINT_PAGES.
+ * 
+ * Return value: which pages to print
+ *
+ * Since: 2.10
+ */
 GtkPrintPages
 gtk_print_settings_get_print_pages (GtkPrintSettings *settings)
 {
@@ -1054,13 +1199,22 @@ gtk_print_settings_get_print_pages (GtkPrintSettings *settings)
   return GTK_PRINT_PAGES_ALL;
 }
 
+/**
+ * gtk_print_settings_set_print_pages:
+ * @settings: a #GtkPrintSettings
+ * @pages: a #GtkPrintPages value
+ * 
+ * Sets the value of %GTK_PRINT_SETTINGS_PRINT_PAGES.
+ * 
+ * Since: 2.10
+ */
 void
 gtk_print_settings_set_print_pages (GtkPrintSettings *settings,
-                                   GtkPrintPages     print_pages)
+                                   GtkPrintPages     pages)
 {
   const gchar *str;
 
-  switch (print_pages)
+  switch (pages)
     {
     default:
     case GTK_PRINT_PAGES_ALL:
@@ -1077,8 +1231,18 @@ gtk_print_settings_set_print_pages (GtkPrintSettings *settings,
   gtk_print_settings_set (settings, GTK_PRINT_SETTINGS_PRINT_PAGES, str);
 }
      
-
-
+/**
+ * gtk_print_settings_get_page_ranges:
+ * @settings: a #GtkPrintSettings
+ * @num_ranges: return location for the length of the returned array
+ * 
+ * Gets the value of %GTK_PRINT_SETTINGS_PAGE_RANGES.
+ * 
+ * Return value: an array of #GtkPageRange<!-- -->s. Use g_free()
+ *   to free the array when it is no longer needed. 
+ *
+ * Since: 2.10
+ */
 GtkPageRange *
 gtk_print_settings_get_page_ranges (GtkPrintSettings *settings,
                                    gint             *num_ranges)
@@ -1125,10 +1289,22 @@ gtk_print_settings_get_page_ranges (GtkPrintSettings *settings,
       ranges[i].end = end;
     }
 
+  g_strfreev (range_strs);
+
   *num_ranges = n;
   return ranges;
 }
 
+/**
+ * gtk_print_settings_set_page_ranges:
+ * @settings: a #GtkPrintSettings
+ * @page_ranges: an array of #GtkPageRange<!-- -->s
+ * @num_ranges: the length of @page_ranges
+ * 
+ * Sets the value of %GTK_PRINT_SETTINGS_PAGE_RANGES.
+ * 
+ * Since: 2.10
+ */
 void
 gtk_print_settings_set_page_ranges  (GtkPrintSettings *settings,
                                     GtkPageRange     *page_ranges,
@@ -1158,12 +1334,31 @@ gtk_print_settings_set_page_ranges  (GtkPrintSettings *settings,
   g_string_free (s, TRUE);
 }
 
+/**
+ * gtk_print_settings_get_default_source:
+ * @settings: a #GtkPrintSettings
+ * 
+ * Gets the value of %GTK_PRINT_SETTINGS_DEFAULT_SOURCE.
+ * 
+ * Return value: the default source
+ *
+ * Since: 2.10
+ */
 G_CONST_RETURN gchar *
 gtk_print_settings_get_default_source (GtkPrintSettings *settings)
 {
   return gtk_print_settings_get (settings, GTK_PRINT_SETTINGS_DEFAULT_SOURCE);
 }
 
+/**
+ * gtk_print_settings_set_default_source:
+ * @settings: a #GtkPrintSettings
+ * @default_source: the default source
+ * 
+ * Sets the value of %GTK_PRINT_SETTINGS_DEFAULT_SOURCE.
+ * 
+ * Since: 2.10
+ */
 void
 gtk_print_settings_set_default_source (GtkPrintSettings *settings,
                                       const gchar      *default_source)
@@ -1171,13 +1366,37 @@ gtk_print_settings_set_default_source (GtkPrintSettings *settings,
   gtk_print_settings_set (settings, GTK_PRINT_SETTINGS_DEFAULT_SOURCE, default_source);
 }
      
+/**
+ * gtk_print_settings_get_media_type:
+ * @settings: a #GtkPrintSettings
+ * 
+ * Gets the value of %GTK_PRINT_SETTINGS_MEDIA_TYPE.
+ *
+ * The set of media types is defined in PWG 5101.1-2002 PWG.
+ * <!-- FIXME link here -->
+ * 
+ * Return value: the media type
+ *
+ * Since: 2.10
+ */
 G_CONST_RETURN gchar *
 gtk_print_settings_get_media_type (GtkPrintSettings *settings)
 {
   return gtk_print_settings_get (settings, GTK_PRINT_SETTINGS_MEDIA_TYPE);
 }
 
-/* The set of media types is defined in PWG 5101.1-2002 PWG */
+/**
+ * gtk_print_settings_set_media_type:
+ * @settings: a #GtkPrintSettings
+ * @media_type: the media type
+ * 
+ * Sets the value of %GTK_PRINT_SETTINGS_MEDIA_TYPE.
+ * 
+ * The set of media types is defined in PWG 5101.1-2002 PWG.
+ * <!-- FIXME link here -->
+ *
+ * Since: 2.10
+ */
 void
 gtk_print_settings_set_media_type (GtkPrintSettings *settings,
                                   const gchar      *media_type)
@@ -1185,13 +1404,31 @@ gtk_print_settings_set_media_type (GtkPrintSettings *settings,
   gtk_print_settings_set (settings, GTK_PRINT_SETTINGS_MEDIA_TYPE, media_type);
 }
 
-
+/**
+ * gtk_print_settings_get_dither:
+ * @settings: a #GtkPrintSettings
+ * 
+ * Gets the value of %GTK_PRINT_SETTINGS_DITHER.
+ * 
+ * Return value: the dithering that is used
+ *
+ * Since: 2.10
+ */
 G_CONST_RETURN gchar *
 gtk_print_settings_get_dither (GtkPrintSettings *settings)
 {
   return gtk_print_settings_get (settings, GTK_PRINT_SETTINGS_DITHER);
 }
 
+/**
+ * gtk_print_settings_set_dither:
+ * @settings: a #GtkPrintSettings
+ * @dither: the dithering that is used
+ * 
+ * Sets the value of %GTK_PRINT_SETTINGS_DITHER.
+ *
+ * Since: 2.10
+ */
 void
 gtk_print_settings_set_dither (GtkPrintSettings *settings,
                               const gchar      *dither)
@@ -1199,12 +1436,31 @@ gtk_print_settings_set_dither (GtkPrintSettings *settings,
   gtk_print_settings_set (settings, GTK_PRINT_SETTINGS_DITHER, dither);
 }
      
+/**
+ * gtk_print_settings_get_finishings:
+ * @settings: a #GtkPrintSettings
+ * 
+ * Gets the value of %GTK_PRINT_SETTINGS_FINISHINGS.
+ * 
+ * Return value: the finishings
+ *
+ * Since: 2.10
+ */
 const gchar *
 gtk_print_settings_get_finishings (GtkPrintSettings *settings)
 {
   return gtk_print_settings_get (settings, GTK_PRINT_SETTINGS_FINISHINGS);
 }
 
+/**
+ * gtk_print_settings_set_finishings:
+ * @settings: a #GtkPrintSettings
+ * @finishings: the finishings
+ * 
+ * Sets the value of %GTK_PRINT_SETTINGS_FINISHINGS.
+ *
+ * Since: 2.10
+ */
 void
 gtk_print_settings_set_finishings (GtkPrintSettings *settings,
                                   const gchar      *finishings)
@@ -1212,12 +1468,31 @@ gtk_print_settings_set_finishings (GtkPrintSettings *settings,
   gtk_print_settings_set (settings, GTK_PRINT_SETTINGS_FINISHINGS, finishings);
 }
      
+/**
+ * gtk_print_settings_get_output_bin:
+ * @settings: a #GtkPrintSettings
+ * 
+ * Gets the value of %GTK_PRINT_SETTINGS_OUTPUT_BIN.
+ * 
+ * Return value: the output bin
+ *
+ * Since: 2.10
+ */
 G_CONST_RETURN gchar *
 gtk_print_settings_get_output_bin (GtkPrintSettings *settings)
 {
   return gtk_print_settings_get (settings, GTK_PRINT_SETTINGS_OUTPUT_BIN);
 }
 
+/**
+ * gtk_print_settings_set_output_bin:
+ * @settings: a #GtkPrintSettings
+ * @output_bin: the output bin
+ * 
+ * Sets the value of %GTK_PRINT_SETTINGS_OUTPUT_BIN.
+ *
+ * Since: 2.10
+ */
 void
 gtk_print_settings_set_output_bin (GtkPrintSettings *settings,
                                   const gchar      *output_bin)