#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;
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)
{
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.
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));
}
/**
/**
* gtk_print_settings_set_quality:
* @settings: a #GtkPrintSettings
- * @duplex: a #GtkPrintQuality value
+ * @quality: a #GtkPrintQuality value
*
* Sets the value of %GTK_PRINT_SETTINGS_QUALITY.
*
}
/**
- * gtk_print_settings_get_num_copies:
+ * gtk_print_settings_get_n_copies:
* @settings: a #GtkPrintSettings
*
- * Gets the value of %GTK_PRINT_SETTINGS_NUM_COPIES.
+ * 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_num_copies:
+ * gtk_print_settings_set_n_copies:
* @settings: a #GtkPrintSettings
* @num_copies: the number of copies
*
- * Sets the value of %GTK_PRINT_SETTINGS_NUM_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_set_number_up:
* @settings: a #GtkPrintSettings
- * @num_copies: the number of pages per sheet
+ * @number_up: the number of pages per sheet
*
* Sets the value of %GTK_PRINT_SETTINGS_NUMBER_UP.
*
/**
* gtk_print_settings_set_scale:
* @settings: a #GtkPrintSettings
- * @resolution: the scale in percent
+ * @scale: the scale in percent
*
* Sets the value of %GTK_PRINT_SETTINGS_SCALE.
*
scale);
}
-/**
- * gtk_print_settings_get_print_to_file:
- * @settings: a #GtkPrintSettings
- *
- * Gets the value of %GTK_PRINT_SETTINGS_PRINT_TO_FILE.
- *
- * Return value: whether to print to a file
- *
- * Since: 2.10
- */
-gboolean
-gtk_print_settings_get_print_to_file (GtkPrintSettings *settings)
-{
- return gtk_print_settings_get_bool (settings,
- GTK_PRINT_SETTINGS_PRINT_TO_FILE);
-}
-
-/**
- * gtk_print_settings_set_print_to_file:
- * @settings: a #GtkPrintSettings
- * @print_to_file: whether to print to a file
- *
- * Sets the value of %GTK_PRINT_SETTINGS_PRINT_TO_FILE.
- *
- * Since: 2.10
- */
-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
/**
* gtk_print_settings_set_print_pages:
* @settings: a #GtkPrintSettings
- * @print_pages: a #GtkPrintPages value
+ * @pages: a #GtkPrintPages value
*
* Sets the value of %GTK_PRINT_SETTINGS_PRINT_PAGES.
*
*/
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:
*
* Gets the value of %GTK_PRINT_SETTINGS_PAGE_RANGES.
*
- * Return value: an array of #GtkPageRange<!-- -->s
+ * Return value: an array of #GtkPageRange<!-- -->s. Use g_free()
+ * to free the array when it is no longer needed.
*
* Since: 2.10
*/
ranges[i].end = end;
}
+ g_strfreev (range_strs);
+
*num_ranges = n;
return ranges;
}