Blame gtk/gtkprintsettings.c

Packit 98cdb6
/* GTK - The GIMP Toolkit
Packit 98cdb6
 * gtkprintsettings.c: Print Settings
Packit 98cdb6
 * Copyright (C) 2006, Red Hat, Inc.
Packit 98cdb6
 *
Packit 98cdb6
 * This library is free software; you can redistribute it and/or
Packit 98cdb6
 * modify it under the terms of the GNU Lesser General Public
Packit 98cdb6
 * License as published by the Free Software Foundation; either
Packit 98cdb6
 * version 2 of the License, or (at your option) any later version.
Packit 98cdb6
 *
Packit 98cdb6
 * This library is distributed in the hope that it will be useful,
Packit 98cdb6
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit 98cdb6
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Packit 98cdb6
 * Lesser General Public License for more details.
Packit 98cdb6
 *
Packit 98cdb6
 * You should have received a copy of the GNU Lesser General Public
Packit 98cdb6
 * License along with this library; if not, write to the
Packit 98cdb6
 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Packit 98cdb6
 * Boston, MA 02111-1307, USA.
Packit 98cdb6
 */
Packit 98cdb6
Packit 98cdb6
#include "config.h"
Packit 98cdb6
#include <string.h>
Packit 98cdb6
#include <stdlib.h>
Packit 98cdb6
#include <glib/gprintf.h>
Packit 98cdb6
#include <gtk/gtk.h>
Packit 98cdb6
#include "gtkprintsettings.h"
Packit 98cdb6
#include "gtkprintutils.h"
Packit 98cdb6
#include "gtkalias.h"
Packit 98cdb6
Packit 98cdb6
Packit 98cdb6
typedef struct _GtkPrintSettingsClass GtkPrintSettingsClass;
Packit 98cdb6
Packit 98cdb6
#define GTK_IS_PRINT_SETTINGS_CLASS(klass)  (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_PRINT_SETTINGS))
Packit 98cdb6
#define GTK_PRINT_SETTINGS_CLASS(klass)     (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_PRINT_SETTINGS, GtkPrintSettingsClass))
Packit 98cdb6
#define GTK_PRINT_SETTINGS_GET_CLASS(obj)   (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_PRINT_SETTINGS, GtkPrintSettingsClass))
Packit 98cdb6
Packit 98cdb6
struct _GtkPrintSettings
Packit 98cdb6
{
Packit 98cdb6
  GObject parent_instance;
Packit 98cdb6
  
Packit 98cdb6
  GHashTable *hash;
Packit 98cdb6
};
Packit 98cdb6
Packit 98cdb6
struct _GtkPrintSettingsClass
Packit 98cdb6
{
Packit 98cdb6
  GObjectClass parent_class;
Packit 98cdb6
};
Packit 98cdb6
Packit 98cdb6
#define KEYFILE_GROUP_NAME "Print Settings"
Packit 98cdb6
Packit 98cdb6
G_DEFINE_TYPE (GtkPrintSettings, gtk_print_settings, G_TYPE_OBJECT)
Packit 98cdb6
Packit 98cdb6
static void
Packit 98cdb6
gtk_print_settings_finalize (GObject *object)
Packit 98cdb6
{
Packit 98cdb6
  GtkPrintSettings *settings = GTK_PRINT_SETTINGS (object);
Packit 98cdb6
Packit 98cdb6
  g_hash_table_destroy (settings->hash);
Packit 98cdb6
Packit 98cdb6
  G_OBJECT_CLASS (gtk_print_settings_parent_class)->finalize (object);
Packit 98cdb6
}
Packit 98cdb6
Packit 98cdb6
static void
Packit 98cdb6
gtk_print_settings_init (GtkPrintSettings *settings)
Packit 98cdb6
{
Packit 98cdb6
  settings->hash = g_hash_table_new_full (g_str_hash, g_str_equal,
Packit 98cdb6
					  g_free, g_free);
Packit 98cdb6
}
Packit 98cdb6
Packit 98cdb6
static void
Packit 98cdb6
gtk_print_settings_class_init (GtkPrintSettingsClass *class)
Packit 98cdb6
{
Packit 98cdb6
  GObjectClass *gobject_class = (GObjectClass *)class;
Packit 98cdb6
Packit 98cdb6
  gobject_class->finalize = gtk_print_settings_finalize;
Packit 98cdb6
}
Packit 98cdb6
Packit 98cdb6
/**
Packit 98cdb6
 * gtk_print_settings_new:
Packit 98cdb6
 * 
Packit 98cdb6
 * Creates a new #GtkPrintSettings object.
Packit 98cdb6
 *  
Packit 98cdb6
 * Return value: a new #GtkPrintSettings object
Packit 98cdb6
 *
Packit 98cdb6
 * Since: 2.10
Packit 98cdb6
 */
Packit 98cdb6
GtkPrintSettings *
Packit 98cdb6
gtk_print_settings_new (void)
Packit 98cdb6
{
Packit 98cdb6
  return g_object_new (GTK_TYPE_PRINT_SETTINGS, NULL);
Packit 98cdb6
}
Packit 98cdb6
Packit 98cdb6
static void
Packit 98cdb6
copy_hash_entry  (gpointer  key,
Packit 98cdb6
		  gpointer  value,
Packit 98cdb6
		  gpointer  user_data)
Packit 98cdb6
{
Packit 98cdb6
  GtkPrintSettings *settings = user_data;
Packit 98cdb6
Packit 98cdb6
  g_hash_table_insert (settings->hash, 
Packit 98cdb6
		       g_strdup (key), 
Packit 98cdb6
		       g_strdup (value));
Packit 98cdb6
}
Packit 98cdb6
Packit 98cdb6
Packit 98cdb6
Packit 98cdb6
/**
Packit 98cdb6
 * gtk_print_settings_copy:
Packit 98cdb6
 * @other: a #GtkPrintSettings
Packit 98cdb6
 *
Packit 98cdb6
 * Copies a #GtkPrintSettings object.
Packit 98cdb6
 *
Packit 98cdb6
 * Return value: (transfer full): a newly allocated copy of @other
Packit 98cdb6
 *
Packit 98cdb6
 * Since: 2.10
Packit 98cdb6
 */
Packit 98cdb6
GtkPrintSettings *
Packit 98cdb6
gtk_print_settings_copy (GtkPrintSettings *other)
Packit 98cdb6
{
Packit 98cdb6
  GtkPrintSettings *settings;
Packit 98cdb6
Packit 98cdb6
  if (other == NULL)
Packit 98cdb6
    return NULL;
Packit 98cdb6
  
Packit 98cdb6
  g_return_val_if_fail (GTK_IS_PRINT_SETTINGS (other), NULL);
Packit 98cdb6
Packit 98cdb6
  settings = gtk_print_settings_new ();
Packit 98cdb6
Packit 98cdb6
  g_hash_table_foreach (other->hash,
Packit 98cdb6
			copy_hash_entry,
Packit 98cdb6
			settings);
Packit 98cdb6
Packit 98cdb6
  return settings;
Packit 98cdb6
}
Packit 98cdb6
Packit 98cdb6
/**
Packit 98cdb6
 * gtk_print_settings_get:
Packit 98cdb6
 * @settings: a #GtkPrintSettings
Packit 98cdb6
 * @key: a key
Packit 98cdb6
 * 
Packit 98cdb6
 * Looks up the string value associated with @key.
Packit 98cdb6
 * 
Packit 98cdb6
 * Return value: the string value for @key
Packit 98cdb6
 * 
Packit 98cdb6
 * Since: 2.10
Packit 98cdb6
 */
Packit 98cdb6
const gchar *
Packit 98cdb6
gtk_print_settings_get (GtkPrintSettings *settings,
Packit 98cdb6
			const gchar      *key)
Packit 98cdb6
{
Packit 98cdb6
  return g_hash_table_lookup (settings->hash, key);
Packit 98cdb6
}
Packit 98cdb6
Packit 98cdb6
/**
Packit 98cdb6
 * gtk_print_settings_set:
Packit 98cdb6
 * @settings: a #GtkPrintSettings
Packit 98cdb6
 * @key: a key
Packit 98cdb6
 * @value: (allow-none): a string value, or %NULL
Packit 98cdb6
 *
Packit 98cdb6
 * Associates @value with @key.
Packit 98cdb6
 *
Packit 98cdb6
 * Since: 2.10
Packit 98cdb6
 */
Packit 98cdb6
void
Packit 98cdb6
gtk_print_settings_set (GtkPrintSettings *settings,
Packit 98cdb6
			const gchar      *key,
Packit 98cdb6
			const gchar      *value)
Packit 98cdb6
{
Packit 98cdb6
  if (value == NULL)
Packit 98cdb6
    gtk_print_settings_unset (settings, key);
Packit 98cdb6
  else
Packit 98cdb6
    g_hash_table_insert (settings->hash, 
Packit 98cdb6
			 g_strdup (key), 
Packit 98cdb6
			 g_strdup (value));
Packit 98cdb6
}
Packit 98cdb6
Packit 98cdb6
/**
Packit 98cdb6
 * gtk_print_settings_unset:
Packit 98cdb6
 * @settings: a #GtkPrintSettings
Packit 98cdb6
 * @key: a key
Packit 98cdb6
 * 
Packit 98cdb6
 * Removes any value associated with @key. 
Packit 98cdb6
 * This has the same effect as setting the value to %NULL.
Packit 98cdb6
 *
Packit 98cdb6
 * Since: 2.10 
Packit 98cdb6
 */
Packit 98cdb6
void
Packit 98cdb6
gtk_print_settings_unset (GtkPrintSettings *settings,
Packit 98cdb6
			  const gchar      *key)
Packit 98cdb6
{
Packit 98cdb6
  g_hash_table_remove (settings->hash, key);
Packit 98cdb6
}
Packit 98cdb6
Packit 98cdb6
/**
Packit 98cdb6
 * gtk_print_settings_has_key:
Packit 98cdb6
 * @settings: a #GtkPrintSettings
Packit 98cdb6
 * @key: a key
Packit 98cdb6
 * 
Packit 98cdb6
 * Returns %TRUE, if a value is associated with @key.
Packit 98cdb6
 * 
Packit 98cdb6
 * Return value: %TRUE, if @key has a value
Packit 98cdb6
 *
Packit 98cdb6
 * Since: 2.10
Packit 98cdb6
 */
Packit 98cdb6
gboolean        
Packit 98cdb6
gtk_print_settings_has_key (GtkPrintSettings *settings,
Packit 98cdb6
			    const gchar      *key)
Packit 98cdb6
{
Packit 98cdb6
  return gtk_print_settings_get (settings, key) != NULL;
Packit 98cdb6
}
Packit 98cdb6
Packit 98cdb6
Packit 98cdb6
/**
Packit 98cdb6
 * gtk_print_settings_get_bool:
Packit 98cdb6
 * @settings: a #GtkPrintSettings
Packit 98cdb6
 * @key: a key
Packit 98cdb6
 * 
Packit 98cdb6
 * Returns the boolean represented by the value
Packit 98cdb6
 * that is associated with @key. 
Packit 98cdb6
 *
Packit 98cdb6
 * The string "true" represents %TRUE, any other 
Packit 98cdb6
 * string %FALSE.
Packit 98cdb6
 *
Packit 98cdb6
 * Return value: %TRUE, if @key maps to a true value.
Packit 98cdb6
 * 
Packit 98cdb6
 * Since: 2.10
Packit 98cdb6
 **/
Packit 98cdb6
gboolean
Packit 98cdb6
gtk_print_settings_get_bool (GtkPrintSettings *settings,
Packit 98cdb6
			     const gchar      *key)
Packit 98cdb6
{
Packit 98cdb6
  const gchar *val;
Packit 98cdb6
Packit 98cdb6
  val = gtk_print_settings_get (settings, key);
Packit 98cdb6
  if (g_strcmp0 (val, "true") == 0)
Packit 98cdb6
    return TRUE;
Packit 98cdb6
  
Packit 98cdb6
  return FALSE;
Packit 98cdb6
}
Packit 98cdb6
Packit 98cdb6
/**
Packit 98cdb6
 * gtk_print_settings_get_bool_with_default:
Packit 98cdb6
 * @settings: a #GtkPrintSettings
Packit 98cdb6
 * @key: a key
Packit 98cdb6
 * @default_val: the default value
Packit 98cdb6
 * 
Packit 98cdb6
 * Returns the boolean represented by the value
Packit 98cdb6
 * that is associated with @key, or @default_val
Packit 98cdb6
 * if the value does not represent a boolean.
Packit 98cdb6
 *
Packit 98cdb6
 * The string "true" represents %TRUE, the string
Packit 98cdb6
 * "false" represents %FALSE.
Packit 98cdb6
 *
Packit 98cdb6
 * Return value: the boolean value associated with @key
Packit 98cdb6
 * 
Packit 98cdb6
 * Since: 2.10
Packit 98cdb6
 */
Packit 98cdb6
static gboolean
Packit 98cdb6
gtk_print_settings_get_bool_with_default (GtkPrintSettings *settings,
Packit 98cdb6
					  const gchar      *key,
Packit 98cdb6
					  gboolean          default_val)
Packit 98cdb6
{
Packit 98cdb6
  const gchar *val;
Packit 98cdb6
Packit 98cdb6
  val = gtk_print_settings_get (settings, key);
Packit 98cdb6
  if (g_strcmp0 (val, "true") == 0)
Packit 98cdb6
    return TRUE;
Packit 98cdb6
Packit 98cdb6
  if (g_strcmp0 (val, "false") == 0)
Packit 98cdb6
    return FALSE;
Packit 98cdb6
  
Packit 98cdb6
  return default_val;
Packit 98cdb6
}
Packit 98cdb6
Packit 98cdb6
/**
Packit 98cdb6
 * gtk_print_settings_set_bool:
Packit 98cdb6
 * @settings: a #GtkPrintSettings
Packit 98cdb6
 * @key: a key
Packit 98cdb6
 * @value: a boolean
Packit 98cdb6
 * 
Packit 98cdb6
 * Sets @key to a boolean value.
Packit 98cdb6
 *
Packit 98cdb6
 * Since: 2.10
Packit 98cdb6
 */
Packit 98cdb6
void
Packit 98cdb6
gtk_print_settings_set_bool (GtkPrintSettings *settings,
Packit 98cdb6
			     const gchar      *key,
Packit 98cdb6
			     gboolean          value)
Packit 98cdb6
{
Packit 98cdb6
  if (value)
Packit 98cdb6
    gtk_print_settings_set (settings, key, "true");
Packit 98cdb6
  else
Packit 98cdb6
    gtk_print_settings_set (settings, key, "false");
Packit 98cdb6
}
Packit 98cdb6
Packit 98cdb6
/**
Packit 98cdb6
 * gtk_print_settings_get_double_with_default:
Packit 98cdb6
 * @settings: a #GtkPrintSettings
Packit 98cdb6
 * @key: a key
Packit 98cdb6
 * @def: the default value
Packit 98cdb6
 * 
Packit 98cdb6
 * Returns the floating point number represented by 
Packit 98cdb6
 * the value that is associated with @key, or @default_val
Packit 98cdb6
 * if the value does not represent a floating point number.
Packit 98cdb6
 *
Packit 98cdb6
 * Floating point numbers are parsed with g_ascii_strtod().
Packit 98cdb6
 *
Packit 98cdb6
 * Return value: the floating point number associated with @key
Packit 98cdb6
 * 
Packit 98cdb6
 * Since: 2.10
Packit 98cdb6
 */
Packit 98cdb6
gdouble
Packit 98cdb6
gtk_print_settings_get_double_with_default (GtkPrintSettings *settings,
Packit 98cdb6
					    const gchar      *key,
Packit 98cdb6
					    gdouble           def)
Packit 98cdb6
{
Packit 98cdb6
  const gchar *val;
Packit 98cdb6
Packit 98cdb6
  val = gtk_print_settings_get (settings, key);
Packit 98cdb6
  if (val == NULL)
Packit 98cdb6
    return def;
Packit 98cdb6
Packit 98cdb6
  return g_ascii_strtod (val, NULL);
Packit 98cdb6
}
Packit 98cdb6
Packit 98cdb6
/**
Packit 98cdb6
 * gtk_print_settings_get_double:
Packit 98cdb6
 * @settings: a #GtkPrintSettings
Packit 98cdb6
 * @key: a key
Packit 98cdb6
 * 
Packit 98cdb6
 * Returns the double value associated with @key, or 0.
Packit 98cdb6
 * 
Packit 98cdb6
 * Return value: the double value of @key
Packit 98cdb6
 *
Packit 98cdb6
 * Since: 2.10
Packit 98cdb6
 */
Packit 98cdb6
gdouble
Packit 98cdb6
gtk_print_settings_get_double (GtkPrintSettings *settings,
Packit 98cdb6
			       const gchar      *key)
Packit 98cdb6
{
Packit 98cdb6
  return gtk_print_settings_get_double_with_default (settings, key, 0.0);
Packit 98cdb6
}
Packit 98cdb6
Packit 98cdb6
/**
Packit 98cdb6
 * gtk_print_settings_set_double:
Packit 98cdb6
 * @settings: a #GtkPrintSettings
Packit 98cdb6
 * @key: a key 
Packit 98cdb6
 * @value: a double value
Packit 98cdb6
 * 
Packit 98cdb6
 * Sets @key to a double value.
Packit 98cdb6
 * 
Packit 98cdb6
 * Since: 2.10
Packit 98cdb6
 */
Packit 98cdb6
void
Packit 98cdb6
gtk_print_settings_set_double (GtkPrintSettings *settings,
Packit 98cdb6
			       const gchar      *key,
Packit 98cdb6
			       gdouble           value)
Packit 98cdb6
{
Packit 98cdb6
  gchar buf[G_ASCII_DTOSTR_BUF_SIZE];
Packit 98cdb6
  
Packit 98cdb6
  g_ascii_dtostr (buf, G_ASCII_DTOSTR_BUF_SIZE, value);
Packit 98cdb6
  gtk_print_settings_set (settings, key, buf);
Packit 98cdb6
}
Packit 98cdb6
Packit 98cdb6
/**
Packit 98cdb6
 * gtk_print_settings_get_length:
Packit 98cdb6
 * @settings: a #GtkPrintSettings
Packit 98cdb6
 * @key: a key
Packit 98cdb6
 * @unit: the unit of the return value
Packit 98cdb6
 * 
Packit 98cdb6
 * Returns the value associated with @key, interpreted
Packit 98cdb6
 * as a length. The returned value is converted to @units.
Packit 98cdb6
 * 
Packit 98cdb6
 * Return value: the length value of @key, converted to @unit
Packit 98cdb6
 *
Packit 98cdb6
 * Since: 2.10
Packit 98cdb6
 */
Packit 98cdb6
gdouble
Packit 98cdb6
gtk_print_settings_get_length (GtkPrintSettings *settings,
Packit 98cdb6
			       const gchar      *key,
Packit 98cdb6
			       GtkUnit           unit)
Packit 98cdb6
{
Packit 98cdb6
  gdouble length = gtk_print_settings_get_double (settings, key);
Packit 98cdb6
  return _gtk_print_convert_from_mm (length, unit);
Packit 98cdb6
}
Packit 98cdb6
Packit 98cdb6
/**
Packit 98cdb6
 * gtk_print_settings_set_length:
Packit 98cdb6
 * @settings: a #GtkPrintSettings
Packit 98cdb6
 * @key: a key
Packit 98cdb6
 * @value: a length
Packit 98cdb6
 * @unit: the unit of @length
Packit 98cdb6
 * 
Packit 98cdb6
 * Associates a length in units of @unit with @key.
Packit 98cdb6
 *
Packit 98cdb6
 * Since: 2.10
Packit 98cdb6
 */
Packit 98cdb6
void
Packit 98cdb6
gtk_print_settings_set_length (GtkPrintSettings *settings,
Packit 98cdb6
			       const gchar      *key,
Packit 98cdb6
			       gdouble           value, 
Packit 98cdb6
			       GtkUnit           unit)
Packit 98cdb6
{
Packit 98cdb6
  gtk_print_settings_set_double (settings, key,
Packit 98cdb6
				 _gtk_print_convert_to_mm (value, unit));
Packit 98cdb6
}
Packit 98cdb6
Packit 98cdb6
/**
Packit 98cdb6
 * gtk_print_settings_get_int_with_default:
Packit 98cdb6
 * @settings: a #GtkPrintSettings
Packit 98cdb6
 * @key: a key
Packit 98cdb6
 * @def: the default value
Packit 98cdb6
 * 
Packit 98cdb6
 * Returns the value of @key, interpreted as
Packit 98cdb6
 * an integer, or the default value.
Packit 98cdb6
 * 
Packit 98cdb6
 * Return value: the integer value of @key
Packit 98cdb6
 *
Packit 98cdb6
 * Since: 2.10
Packit 98cdb6
 */
Packit 98cdb6
gint
Packit 98cdb6
gtk_print_settings_get_int_with_default (GtkPrintSettings *settings,
Packit 98cdb6
					 const gchar      *key,
Packit 98cdb6
					 gint              def)
Packit 98cdb6
{
Packit 98cdb6
  const gchar *val;
Packit 98cdb6
Packit 98cdb6
  val = gtk_print_settings_get (settings, key);
Packit 98cdb6
  if (val == NULL)
Packit 98cdb6
    return def;
Packit 98cdb6
Packit 98cdb6
  return atoi (val);
Packit 98cdb6
}
Packit 98cdb6
Packit 98cdb6
/**
Packit 98cdb6
 * gtk_print_settings_get_int:
Packit 98cdb6
 * @settings: a #GtkPrintSettings
Packit 98cdb6
 * @key: a key
Packit 98cdb6
 * 
Packit 98cdb6
 * Returns the integer value of @key, or 0.
Packit 98cdb6
 * 
Packit 98cdb6
 * Return value: the integer value of @key 
Packit 98cdb6
 *
Packit 98cdb6
 * Since: 2.10
Packit 98cdb6
 */
Packit 98cdb6
gint
Packit 98cdb6
gtk_print_settings_get_int (GtkPrintSettings *settings,
Packit 98cdb6
			    const gchar      *key)
Packit 98cdb6
{
Packit 98cdb6
  return gtk_print_settings_get_int_with_default (settings, key, 0);
Packit 98cdb6
}
Packit 98cdb6
Packit 98cdb6
/**
Packit 98cdb6
 * gtk_print_settings_set_int:
Packit 98cdb6
 * @settings: a #GtkPrintSettings
Packit 98cdb6
 * @key: a key
Packit 98cdb6
 * @value: an integer 
Packit 98cdb6
 * 
Packit 98cdb6
 * Sets @key to an integer value.
Packit 98cdb6
 *
Packit 98cdb6
 * Since: 2.10 
Packit 98cdb6
 */
Packit 98cdb6
void
Packit 98cdb6
gtk_print_settings_set_int (GtkPrintSettings *settings,
Packit 98cdb6
			    const gchar      *key,
Packit 98cdb6
			    gint              value)
Packit 98cdb6
{
Packit 98cdb6
  gchar buf[128];
Packit 98cdb6
  g_sprintf (buf, "%d", value);
Packit 98cdb6
  gtk_print_settings_set (settings, key, buf);
Packit 98cdb6
}
Packit 98cdb6
Packit 98cdb6
/**
Packit 98cdb6
 * gtk_print_settings_foreach:
Packit 98cdb6
 * @settings: a #GtkPrintSettings
Packit 98cdb6
 * @func: (scope call): the function to call
Packit 98cdb6
 * @user_data: user data for @func
Packit 98cdb6
 *
Packit 98cdb6
 * Calls @func for each key-value pair of @settings.
Packit 98cdb6
 *
Packit 98cdb6
 * Since: 2.10
Packit 98cdb6
 */
Packit 98cdb6
void
Packit 98cdb6
gtk_print_settings_foreach (GtkPrintSettings    *settings,
Packit 98cdb6
			    GtkPrintSettingsFunc func,
Packit 98cdb6
			    gpointer             user_data)
Packit 98cdb6
{
Packit 98cdb6
  g_hash_table_foreach (settings->hash, (GHFunc)func, user_data);
Packit 98cdb6
}
Packit 98cdb6
Packit 98cdb6
/**
Packit 98cdb6
 * gtk_print_settings_get_printer:
Packit 98cdb6
 * @settings: a #GtkPrintSettings
Packit 98cdb6
 * 
Packit 98cdb6
 * Convenience function to obtain the value of 
Packit 98cdb6
 * %GTK_PRINT_SETTINGS_PRINTER.
Packit 98cdb6
 *
Packit 98cdb6
 * Return value: the printer name
Packit 98cdb6
 *
Packit 98cdb6
 * Since: 2.10
Packit 98cdb6
 */
Packit 98cdb6
const gchar *
Packit 98cdb6
gtk_print_settings_get_printer (GtkPrintSettings *settings)
Packit 98cdb6
{
Packit 98cdb6
  return gtk_print_settings_get (settings, GTK_PRINT_SETTINGS_PRINTER);
Packit 98cdb6
}
Packit 98cdb6
Packit 98cdb6
Packit 98cdb6
/**
Packit 98cdb6
 * gtk_print_settings_set_printer:
Packit 98cdb6
 * @settings: a #GtkPrintSettings
Packit 98cdb6
 * @printer: the printer name
Packit 98cdb6
 * 
Packit 98cdb6
 * Convenience function to set %GTK_PRINT_SETTINGS_PRINTER
Packit 98cdb6
 * to @printer.
Packit 98cdb6
 *
Packit 98cdb6
 * Since: 2.10
Packit 98cdb6
 */
Packit 98cdb6
void
Packit 98cdb6
gtk_print_settings_set_printer (GtkPrintSettings *settings,
Packit 98cdb6
				const gchar      *printer)
Packit 98cdb6
{
Packit 98cdb6
  gtk_print_settings_set (settings, GTK_PRINT_SETTINGS_PRINTER, printer);
Packit 98cdb6
}
Packit 98cdb6
Packit 98cdb6
/**
Packit 98cdb6
 * gtk_print_settings_get_orientation:
Packit 98cdb6
 * @settings: a #GtkPrintSettings
Packit 98cdb6
 * 
Packit 98cdb6
 * Get the value of %GTK_PRINT_SETTINGS_ORIENTATION, 
Packit 98cdb6
 * converted to a #GtkPageOrientation.
Packit 98cdb6
 * 
Packit 98cdb6
 * Return value: the orientation
Packit 98cdb6
 *
Packit 98cdb6
 * Since: 2.10
Packit 98cdb6
 */
Packit 98cdb6
GtkPageOrientation
Packit 98cdb6
gtk_print_settings_get_orientation (GtkPrintSettings *settings)
Packit 98cdb6
{
Packit 98cdb6
  const gchar *val;
Packit 98cdb6
Packit 98cdb6
  val = gtk_print_settings_get (settings, GTK_PRINT_SETTINGS_ORIENTATION);
Packit 98cdb6
Packit 98cdb6
  if (val == NULL || strcmp (val, "portrait") == 0)
Packit 98cdb6
    return GTK_PAGE_ORIENTATION_PORTRAIT;
Packit 98cdb6
Packit 98cdb6
  if (strcmp (val, "landscape") == 0)
Packit 98cdb6
    return GTK_PAGE_ORIENTATION_LANDSCAPE;
Packit 98cdb6
  
Packit 98cdb6
  if (strcmp (val, "reverse_portrait") == 0)
Packit 98cdb6
    return GTK_PAGE_ORIENTATION_REVERSE_PORTRAIT;
Packit 98cdb6
  
Packit 98cdb6
  if (strcmp (val, "reverse_landscape") == 0)
Packit 98cdb6
    return GTK_PAGE_ORIENTATION_REVERSE_LANDSCAPE;
Packit 98cdb6
  
Packit 98cdb6
  return GTK_PAGE_ORIENTATION_PORTRAIT;
Packit 98cdb6
}
Packit 98cdb6
Packit 98cdb6
/**
Packit 98cdb6
 * gtk_print_settings_set_orientation:
Packit 98cdb6
 * @settings: a #GtkPrintSettings
Packit 98cdb6
 * @orientation: a page orientation
Packit 98cdb6
 * 
Packit 98cdb6
 * Sets the value of %GTK_PRINT_SETTINGS_ORIENTATION.
Packit 98cdb6
 * 
Packit 98cdb6
 * Since: 2.10
Packit 98cdb6
 */
Packit 98cdb6
void
Packit 98cdb6
gtk_print_settings_set_orientation (GtkPrintSettings   *settings,
Packit 98cdb6
				    GtkPageOrientation  orientation)
Packit 98cdb6
{
Packit 98cdb6
  const gchar *val;
Packit 98cdb6
Packit 98cdb6
  switch (orientation)
Packit 98cdb6
    {
Packit 98cdb6
    case GTK_PAGE_ORIENTATION_LANDSCAPE:
Packit 98cdb6
      val = "landscape";
Packit 98cdb6
      break;
Packit 98cdb6
    default:
Packit 98cdb6
    case GTK_PAGE_ORIENTATION_PORTRAIT:
Packit 98cdb6
      val = "portrait";
Packit 98cdb6
      break;
Packit 98cdb6
    case GTK_PAGE_ORIENTATION_REVERSE_LANDSCAPE:
Packit 98cdb6
      val = "reverse_landscape";
Packit 98cdb6
      break;
Packit 98cdb6
    case GTK_PAGE_ORIENTATION_REVERSE_PORTRAIT:
Packit 98cdb6
      val = "reverse_portrait";
Packit 98cdb6
      break;
Packit 98cdb6
    }
Packit 98cdb6
  gtk_print_settings_set (settings, GTK_PRINT_SETTINGS_ORIENTATION, val);
Packit 98cdb6
}
Packit 98cdb6
Packit 98cdb6
/**
Packit 98cdb6
 * gtk_print_settings_get_paper_size:
Packit 98cdb6
 * @settings: a #GtkPrintSettings
Packit 98cdb6
 * 
Packit 98cdb6
 * Gets the value of %GTK_PRINT_SETTINGS_PAPER_FORMAT, 
Packit 98cdb6
 * converted to a #GtkPaperSize.
Packit 98cdb6
 * 
Packit 98cdb6
 * Return value: the paper size
Packit 98cdb6
 *
Packit 98cdb6
 * Since: 2.10
Packit 98cdb6
 */
Packit 98cdb6
GtkPaperSize *     
Packit 98cdb6
gtk_print_settings_get_paper_size (GtkPrintSettings *settings)
Packit 98cdb6
{
Packit 98cdb6
  const gchar *val;
Packit 98cdb6
  const gchar *name;
Packit 98cdb6
  gdouble w, h;
Packit 98cdb6
Packit 98cdb6
  val = gtk_print_settings_get (settings, GTK_PRINT_SETTINGS_PAPER_FORMAT);
Packit 98cdb6
  if (val == NULL)
Packit 98cdb6
    return NULL;
Packit 98cdb6
Packit 98cdb6
  if (g_str_has_prefix (val, "custom-")) 
Packit 98cdb6
    {
Packit 98cdb6
      name = val + strlen ("custom-");
Packit 98cdb6
      w = gtk_print_settings_get_paper_width (settings, GTK_UNIT_MM);
Packit 98cdb6
      h = gtk_print_settings_get_paper_height (settings, GTK_UNIT_MM);
Packit 98cdb6
      return gtk_paper_size_new_custom (name, name, w, h, GTK_UNIT_MM);
Packit 98cdb6
    }
Packit 98cdb6
Packit 98cdb6
  return gtk_paper_size_new (val);
Packit 98cdb6
}
Packit 98cdb6
Packit 98cdb6
/**
Packit 98cdb6
 * gtk_print_settings_set_paper_size:
Packit 98cdb6
 * @settings: a #GtkPrintSettings
Packit 98cdb6
 * @paper_size: a paper size
Packit 98cdb6
 * 
Packit 98cdb6
 * Sets the value of %GTK_PRINT_SETTINGS_PAPER_FORMAT,
Packit 98cdb6
 * %GTK_PRINT_SETTINGS_PAPER_WIDTH and
Packit 98cdb6
 * %GTK_PRINT_SETTINGS_PAPER_HEIGHT.
Packit 98cdb6
 *
Packit 98cdb6
 * Since: 2.10
Packit 98cdb6
 */
Packit 98cdb6
void
Packit 98cdb6
gtk_print_settings_set_paper_size (GtkPrintSettings *settings,
Packit 98cdb6
				   GtkPaperSize     *paper_size)
Packit 98cdb6
{
Packit 98cdb6
  gchar *custom_name;
Packit 98cdb6
Packit 98cdb6
  if (paper_size == NULL) 
Packit 98cdb6
    {
Packit 98cdb6
      gtk_print_settings_set (settings, GTK_PRINT_SETTINGS_PAPER_FORMAT, NULL);
Packit 98cdb6
      gtk_print_settings_set (settings, GTK_PRINT_SETTINGS_PAPER_WIDTH, NULL);
Packit 98cdb6
      gtk_print_settings_set (settings, GTK_PRINT_SETTINGS_PAPER_HEIGHT, NULL);
Packit 98cdb6
    }
Packit 98cdb6
  else if (gtk_paper_size_is_custom (paper_size)) 
Packit 98cdb6
    {
Packit 98cdb6
      custom_name = g_strdup_printf ("custom-%s", 
Packit 98cdb6
				     gtk_paper_size_get_name (paper_size));
Packit 98cdb6
      gtk_print_settings_set (settings, GTK_PRINT_SETTINGS_PAPER_FORMAT, custom_name);
Packit 98cdb6
      g_free (custom_name);
Packit 98cdb6
      gtk_print_settings_set_paper_width (settings, 
Packit 98cdb6
					  gtk_paper_size_get_width (paper_size, 
Packit 98cdb6
								    GTK_UNIT_MM),
Packit 98cdb6
					  GTK_UNIT_MM);
Packit 98cdb6
      gtk_print_settings_set_paper_height (settings, 
Packit 98cdb6
					   gtk_paper_size_get_height (paper_size, 
Packit 98cdb6
								      GTK_UNIT_MM),
Packit 98cdb6
					   GTK_UNIT_MM);
Packit 98cdb6
    } 
Packit 98cdb6
  else
Packit 98cdb6
    gtk_print_settings_set (settings, GTK_PRINT_SETTINGS_PAPER_FORMAT, 
Packit 98cdb6
			    gtk_paper_size_get_name (paper_size));
Packit 98cdb6
}
Packit 98cdb6
Packit 98cdb6
/**
Packit 98cdb6
 * gtk_print_settings_get_paper_width:
Packit 98cdb6
 * @settings: a #GtkPrintSettings
Packit 98cdb6
 * @unit: the unit for the return value
Packit 98cdb6
 * 
Packit 98cdb6
 * Gets the value of %GTK_PRINT_SETTINGS_PAPER_WIDTH,
Packit 98cdb6
 * converted to @unit. 
Packit 98cdb6
 * 
Packit 98cdb6
 * Return value: the paper width, in units of @unit
Packit 98cdb6
 *
Packit 98cdb6
 * Since: 2.10
Packit 98cdb6
 */
Packit 98cdb6
gdouble
Packit 98cdb6
gtk_print_settings_get_paper_width (GtkPrintSettings *settings,
Packit 98cdb6
				    GtkUnit           unit)
Packit 98cdb6
{
Packit 98cdb6
  return gtk_print_settings_get_length (settings, GTK_PRINT_SETTINGS_PAPER_WIDTH, unit);
Packit 98cdb6
}
Packit 98cdb6
Packit 98cdb6
/**
Packit 98cdb6
 * gtk_print_settings_set_paper_width:
Packit 98cdb6
 * @settings: a #GtkPrintSettings
Packit 98cdb6
 * @width: the paper width
Packit 98cdb6
 * @unit: the units of @width
Packit 98cdb6
 * 
Packit 98cdb6
 * Sets the value of %GTK_PRINT_SETTINGS_PAPER_WIDTH.
Packit 98cdb6
 *
Packit 98cdb6
 * Since: 2.10
Packit 98cdb6
 */
Packit 98cdb6
void
Packit 98cdb6
gtk_print_settings_set_paper_width (GtkPrintSettings *settings,
Packit 98cdb6
				    gdouble           width, 
Packit 98cdb6
				    GtkUnit           unit)
Packit 98cdb6
{
Packit 98cdb6
  gtk_print_settings_set_length (settings, GTK_PRINT_SETTINGS_PAPER_WIDTH, width, unit);
Packit 98cdb6
}
Packit 98cdb6
Packit 98cdb6
/**
Packit 98cdb6
 * gtk_print_settings_get_paper_height:
Packit 98cdb6
 * @settings: a #GtkPrintSettings
Packit 98cdb6
 * @unit: the unit for the return value
Packit 98cdb6
 * 
Packit 98cdb6
 * Gets the value of %GTK_PRINT_SETTINGS_PAPER_HEIGHT,
Packit 98cdb6
 * converted to @unit. 
Packit 98cdb6
 * 
Packit 98cdb6
 * Return value: the paper height, in units of @unit
Packit 98cdb6
 *
Packit 98cdb6
 * Since: 2.10
Packit 98cdb6
 */
Packit 98cdb6
gdouble
Packit 98cdb6
gtk_print_settings_get_paper_height (GtkPrintSettings *settings,
Packit 98cdb6
				     GtkUnit           unit)
Packit 98cdb6
{
Packit 98cdb6
  return gtk_print_settings_get_length (settings, 
Packit 98cdb6
					GTK_PRINT_SETTINGS_PAPER_HEIGHT,
Packit 98cdb6
					unit);
Packit 98cdb6
}
Packit 98cdb6
Packit 98cdb6
/**
Packit 98cdb6
 * gtk_print_settings_set_paper_height:
Packit 98cdb6
 * @settings: a #GtkPrintSettings
Packit 98cdb6
 * @height: the paper height
Packit 98cdb6
 * @unit: the units of @height
Packit 98cdb6
 * 
Packit 98cdb6
 * Sets the value of %GTK_PRINT_SETTINGS_PAPER_HEIGHT.
Packit 98cdb6
 *
Packit 98cdb6
 * Since: 2.10
Packit 98cdb6
 */
Packit 98cdb6
void
Packit 98cdb6
gtk_print_settings_set_paper_height (GtkPrintSettings *settings,
Packit 98cdb6
				     gdouble           height, 
Packit 98cdb6
				     GtkUnit           unit)
Packit 98cdb6
{
Packit 98cdb6
  gtk_print_settings_set_length (settings, 
Packit 98cdb6
				 GTK_PRINT_SETTINGS_PAPER_HEIGHT, 
Packit 98cdb6
				 height, unit);
Packit 98cdb6
}
Packit 98cdb6
Packit 98cdb6
/**
Packit 98cdb6
 * gtk_print_settings_get_use_color:
Packit 98cdb6
 * @settings: a #GtkPrintSettings
Packit 98cdb6
 * 
Packit 98cdb6
 * Gets the value of %GTK_PRINT_SETTINGS_USE_COLOR.
Packit 98cdb6
 * 
Packit 98cdb6
 * Return value: whether to use color
Packit 98cdb6
 *
Packit 98cdb6
 * Since: 2.10
Packit 98cdb6
 */
Packit 98cdb6
gboolean
Packit 98cdb6
gtk_print_settings_get_use_color (GtkPrintSettings *settings)
Packit 98cdb6
{
Packit 98cdb6
  return gtk_print_settings_get_bool_with_default (settings, 
Packit 98cdb6
						   GTK_PRINT_SETTINGS_USE_COLOR,
Packit 98cdb6
						   TRUE);
Packit 98cdb6
}
Packit 98cdb6
Packit 98cdb6
/**
Packit 98cdb6
 * gtk_print_settings_set_use_color:
Packit 98cdb6
 * @settings: a #GtkPrintSettings
Packit 98cdb6
 * @use_color: whether to use color
Packit 98cdb6
 * 
Packit 98cdb6
 * Sets the value of %GTK_PRINT_SETTINGS_USE_COLOR.
Packit 98cdb6
 * 
Packit 98cdb6
 * Since: 2.10
Packit 98cdb6
 */
Packit 98cdb6
void
Packit 98cdb6
gtk_print_settings_set_use_color (GtkPrintSettings *settings,
Packit 98cdb6
				  gboolean          use_color)
Packit 98cdb6
{
Packit 98cdb6
  gtk_print_settings_set_bool (settings,
Packit 98cdb6
			       GTK_PRINT_SETTINGS_USE_COLOR, 
Packit 98cdb6
			       use_color);
Packit 98cdb6
}
Packit 98cdb6
Packit 98cdb6
/**
Packit 98cdb6
 * gtk_print_settings_get_collate:
Packit 98cdb6
 * @settings: a #GtkPrintSettings
Packit 98cdb6
 * 
Packit 98cdb6
 * Gets the value of %GTK_PRINT_SETTINGS_COLLATE.
Packit 98cdb6
 * 
Packit 98cdb6
 * Return value: whether to collate the printed pages
Packit 98cdb6
 *
Packit 98cdb6
 * Since: 2.10
Packit 98cdb6
 */
Packit 98cdb6
gboolean
Packit 98cdb6
gtk_print_settings_get_collate (GtkPrintSettings *settings)
Packit 98cdb6
{
Packit 98cdb6
  return gtk_print_settings_get_bool (settings, 
Packit 98cdb6
				      GTK_PRINT_SETTINGS_COLLATE);
Packit 98cdb6
}
Packit 98cdb6
Packit 98cdb6
/**
Packit 98cdb6
 * gtk_print_settings_set_collate:
Packit 98cdb6
 * @settings: a #GtkPrintSettings
Packit 98cdb6
 * @collate: whether to collate the output
Packit 98cdb6
 * 
Packit 98cdb6
 * Sets the value of %GTK_PRINT_SETTINGS_COLLATE.
Packit 98cdb6
 * 
Packit 98cdb6
 * Since: 2.10
Packit 98cdb6
 */
Packit 98cdb6
void
Packit 98cdb6
gtk_print_settings_set_collate (GtkPrintSettings *settings,
Packit 98cdb6
				gboolean          collate)
Packit 98cdb6
{
Packit 98cdb6
  gtk_print_settings_set_bool (settings,
Packit 98cdb6
			       GTK_PRINT_SETTINGS_COLLATE, 
Packit 98cdb6
			       collate);
Packit 98cdb6
}
Packit 98cdb6
Packit 98cdb6
/**
Packit 98cdb6
 * gtk_print_settings_get_reverse:
Packit 98cdb6
 * @settings: a #GtkPrintSettings
Packit 98cdb6
 * 
Packit 98cdb6
 * Gets the value of %GTK_PRINT_SETTINGS_REVERSE.
Packit 98cdb6
 * 
Packit 98cdb6
 * Return value: whether to reverse the order of the printed pages
Packit 98cdb6
 *
Packit 98cdb6
 * Since: 2.10
Packit 98cdb6
 */
Packit 98cdb6
gboolean
Packit 98cdb6
gtk_print_settings_get_reverse (GtkPrintSettings *settings)
Packit 98cdb6
{
Packit 98cdb6
  return gtk_print_settings_get_bool (settings, 
Packit 98cdb6
				      GTK_PRINT_SETTINGS_REVERSE);
Packit 98cdb6
}
Packit 98cdb6
Packit 98cdb6
/**
Packit 98cdb6
 * gtk_print_settings_set_reverse:
Packit 98cdb6
 * @settings: a #GtkPrintSettings
Packit 98cdb6
 * @reverse: whether to reverse the output
Packit 98cdb6
 * 
Packit 98cdb6
 * Sets the value of %GTK_PRINT_SETTINGS_REVERSE.
Packit 98cdb6
 * 
Packit 98cdb6
 * Since: 2.10
Packit 98cdb6
 */
Packit 98cdb6
void
Packit 98cdb6
gtk_print_settings_set_reverse (GtkPrintSettings *settings,
Packit 98cdb6
				  gboolean        reverse)
Packit 98cdb6
{
Packit 98cdb6
  gtk_print_settings_set_bool (settings,
Packit 98cdb6
			       GTK_PRINT_SETTINGS_REVERSE, 
Packit 98cdb6
			       reverse);
Packit 98cdb6
}
Packit 98cdb6
Packit 98cdb6
/**
Packit 98cdb6
 * gtk_print_settings_get_duplex:
Packit 98cdb6
 * @settings: a #GtkPrintSettings
Packit 98cdb6
 * 
Packit 98cdb6
 * Gets the value of %GTK_PRINT_SETTINGS_DUPLEX.
Packit 98cdb6
 * 
Packit 98cdb6
 * Return value: whether to print the output in duplex.
Packit 98cdb6
 *
Packit 98cdb6
 * Since: 2.10
Packit 98cdb6
 */
Packit 98cdb6
GtkPrintDuplex
Packit 98cdb6
gtk_print_settings_get_duplex (GtkPrintSettings *settings)
Packit 98cdb6
{
Packit 98cdb6
  const gchar *val;
Packit 98cdb6
Packit 98cdb6
  val = gtk_print_settings_get (settings, GTK_PRINT_SETTINGS_DUPLEX);
Packit 98cdb6
Packit 98cdb6
  if (val == NULL || (strcmp (val, "simplex") == 0))
Packit 98cdb6
    return GTK_PRINT_DUPLEX_SIMPLEX;
Packit 98cdb6
Packit 98cdb6
  if (strcmp (val, "horizontal") == 0)
Packit 98cdb6
    return GTK_PRINT_DUPLEX_HORIZONTAL;
Packit 98cdb6
  
Packit 98cdb6
  if (strcmp (val, "vertical") == 0)
Packit 98cdb6
    return GTK_PRINT_DUPLEX_VERTICAL;
Packit 98cdb6
  
Packit 98cdb6
  return GTK_PRINT_DUPLEX_SIMPLEX;
Packit 98cdb6
}
Packit 98cdb6
Packit 98cdb6
/**
Packit 98cdb6
 * gtk_print_settings_set_duplex:
Packit 98cdb6
 * @settings: a #GtkPrintSettings
Packit 98cdb6
 * @duplex: a #GtkPrintDuplex value
Packit 98cdb6
 * 
Packit 98cdb6
 * Sets the value of %GTK_PRINT_SETTINGS_DUPLEX.
Packit 98cdb6
 * 
Packit 98cdb6
 * Since: 2.10
Packit 98cdb6
 */
Packit 98cdb6
void
Packit 98cdb6
gtk_print_settings_set_duplex (GtkPrintSettings *settings,
Packit 98cdb6
			       GtkPrintDuplex    duplex)
Packit 98cdb6
{
Packit 98cdb6
  const gchar *str;
Packit 98cdb6
Packit 98cdb6
  switch (duplex)
Packit 98cdb6
    {
Packit 98cdb6
    default:
Packit 98cdb6
    case GTK_PRINT_DUPLEX_SIMPLEX:
Packit 98cdb6
      str = "simplex";
Packit 98cdb6
      break;
Packit 98cdb6
    case GTK_PRINT_DUPLEX_HORIZONTAL:
Packit 98cdb6
      str = "horizontal";
Packit 98cdb6
      break;
Packit 98cdb6
    case GTK_PRINT_DUPLEX_VERTICAL:
Packit 98cdb6
      str = "vertical";
Packit 98cdb6
      break;
Packit 98cdb6
    }
Packit 98cdb6
  
Packit 98cdb6
  gtk_print_settings_set (settings, GTK_PRINT_SETTINGS_DUPLEX, str);
Packit 98cdb6
}
Packit 98cdb6
Packit 98cdb6
/**
Packit 98cdb6
 * gtk_print_settings_get_quality:
Packit 98cdb6
 * @settings: a #GtkPrintSettings
Packit 98cdb6
 * 
Packit 98cdb6
 * Gets the value of %GTK_PRINT_SETTINGS_QUALITY.
Packit 98cdb6
 * 
Packit 98cdb6
 * Return value: the print quality
Packit 98cdb6
 *
Packit 98cdb6
 * Since: 2.10
Packit 98cdb6
 */
Packit 98cdb6
GtkPrintQuality
Packit 98cdb6
gtk_print_settings_get_quality (GtkPrintSettings *settings)
Packit 98cdb6
{
Packit 98cdb6
  const gchar *val;
Packit 98cdb6
Packit 98cdb6
  val = gtk_print_settings_get (settings, GTK_PRINT_SETTINGS_QUALITY);
Packit 98cdb6
Packit 98cdb6
  if (val == NULL || (strcmp (val, "normal") == 0))
Packit 98cdb6
    return GTK_PRINT_QUALITY_NORMAL;
Packit 98cdb6
Packit 98cdb6
  if (strcmp (val, "high") == 0)
Packit 98cdb6
    return GTK_PRINT_QUALITY_HIGH;
Packit 98cdb6
  
Packit 98cdb6
  if (strcmp (val, "low") == 0)
Packit 98cdb6
    return GTK_PRINT_QUALITY_LOW;
Packit 98cdb6
  
Packit 98cdb6
  if (strcmp (val, "draft") == 0)
Packit 98cdb6
    return GTK_PRINT_QUALITY_DRAFT;
Packit 98cdb6
  
Packit 98cdb6
  return GTK_PRINT_QUALITY_NORMAL;
Packit 98cdb6
}
Packit 98cdb6
Packit 98cdb6
/**
Packit 98cdb6
 * gtk_print_settings_set_quality:
Packit 98cdb6
 * @settings: a #GtkPrintSettings
Packit 98cdb6
 * @quality: a #GtkPrintQuality value
Packit 98cdb6
 * 
Packit 98cdb6
 * Sets the value of %GTK_PRINT_SETTINGS_QUALITY.
Packit 98cdb6
 * 
Packit 98cdb6
 * Since: 2.10
Packit 98cdb6
 */
Packit 98cdb6
void
Packit 98cdb6
gtk_print_settings_set_quality (GtkPrintSettings *settings,
Packit 98cdb6
				GtkPrintQuality   quality)
Packit 98cdb6
{
Packit 98cdb6
  const gchar *str;
Packit 98cdb6
Packit 98cdb6
  switch (quality)
Packit 98cdb6
    {
Packit 98cdb6
    default:
Packit 98cdb6
    case GTK_PRINT_QUALITY_NORMAL:
Packit 98cdb6
      str = "normal";
Packit 98cdb6
      break;
Packit 98cdb6
    case GTK_PRINT_QUALITY_HIGH:
Packit 98cdb6
      str = "high";
Packit 98cdb6
      break;
Packit 98cdb6
    case GTK_PRINT_QUALITY_LOW:
Packit 98cdb6
      str = "low";
Packit 98cdb6
      break;
Packit 98cdb6
    case GTK_PRINT_QUALITY_DRAFT:
Packit 98cdb6
      str = "draft";
Packit 98cdb6
      break;
Packit 98cdb6
    }
Packit 98cdb6
  
Packit 98cdb6
  gtk_print_settings_set (settings, GTK_PRINT_SETTINGS_QUALITY, str);
Packit 98cdb6
}
Packit 98cdb6
Packit 98cdb6
/**
Packit 98cdb6
 * gtk_print_settings_get_page_set:
Packit 98cdb6
 * @settings: a #GtkPrintSettings
Packit 98cdb6
 * 
Packit 98cdb6
 * Gets the value of %GTK_PRINT_SETTINGS_PAGE_SET.
Packit 98cdb6
 * 
Packit 98cdb6
 * Return value: the set of pages to print
Packit 98cdb6
 *
Packit 98cdb6
 * Since: 2.10
Packit 98cdb6
 */
Packit 98cdb6
GtkPageSet
Packit 98cdb6
gtk_print_settings_get_page_set (GtkPrintSettings *settings)
Packit 98cdb6
{
Packit 98cdb6
  const gchar *val;
Packit 98cdb6
Packit 98cdb6
  val = gtk_print_settings_get (settings, GTK_PRINT_SETTINGS_PAGE_SET);
Packit 98cdb6
Packit 98cdb6
  if (val == NULL || (strcmp (val, "all") == 0))
Packit 98cdb6
    return GTK_PAGE_SET_ALL;
Packit 98cdb6
Packit 98cdb6
  if (strcmp (val, "even") == 0)
Packit 98cdb6
    return GTK_PAGE_SET_EVEN;
Packit 98cdb6
  
Packit 98cdb6
  if (strcmp (val, "odd") == 0)
Packit 98cdb6
    return GTK_PAGE_SET_ODD;
Packit 98cdb6
  
Packit 98cdb6
  return GTK_PAGE_SET_ALL;
Packit 98cdb6
}
Packit 98cdb6
Packit 98cdb6
/**
Packit 98cdb6
 * gtk_print_settings_set_page_set:
Packit 98cdb6
 * @settings: a #GtkPrintSettings
Packit 98cdb6
 * @page_set: a #GtkPageSet value
Packit 98cdb6
 * 
Packit 98cdb6
 * Sets the value of %GTK_PRINT_SETTINGS_PAGE_SET.
Packit 98cdb6
 * 
Packit 98cdb6
 * Since: 2.10
Packit 98cdb6
 */
Packit 98cdb6
void
Packit 98cdb6
gtk_print_settings_set_page_set (GtkPrintSettings *settings,
Packit 98cdb6
				 GtkPageSet        page_set)
Packit 98cdb6
{
Packit 98cdb6
  const gchar *str;
Packit 98cdb6
Packit 98cdb6
  switch (page_set)
Packit 98cdb6
    {
Packit 98cdb6
    default:
Packit 98cdb6
    case GTK_PAGE_SET_ALL:
Packit 98cdb6
      str = "all";
Packit 98cdb6
      break;
Packit 98cdb6
    case GTK_PAGE_SET_EVEN:
Packit 98cdb6
      str = "even";
Packit 98cdb6
      break;
Packit 98cdb6
    case GTK_PAGE_SET_ODD:
Packit 98cdb6
      str = "odd";
Packit 98cdb6
      break;
Packit 98cdb6
    }
Packit 98cdb6
  
Packit 98cdb6
  gtk_print_settings_set (settings, GTK_PRINT_SETTINGS_PAGE_SET, str);
Packit 98cdb6
}
Packit 98cdb6
Packit 98cdb6
/**
Packit 98cdb6
 * gtk_print_settings_get_number_up_layout:
Packit 98cdb6
 * @settings: a #GtkPrintSettings
Packit 98cdb6
 * 
Packit 98cdb6
 * Gets the value of %GTK_PRINT_SETTINGS_NUMBER_UP_LAYOUT.
Packit 98cdb6
 * 
Packit 98cdb6
 * Return value: layout of page in number-up mode
Packit 98cdb6
 *
Packit 98cdb6
 * Since: 2.14
Packit 98cdb6
 */
Packit 98cdb6
GtkNumberUpLayout
Packit 98cdb6
gtk_print_settings_get_number_up_layout (GtkPrintSettings *settings)
Packit 98cdb6
{
Packit 98cdb6
  GtkNumberUpLayout layout;
Packit 98cdb6
  GtkTextDirection  text_direction;
Packit 98cdb6
  GEnumClass       *enum_class;
Packit 98cdb6
  GEnumValue       *enum_value;
Packit 98cdb6
  const gchar      *val;
Packit 98cdb6
Packit 98cdb6
  g_return_val_if_fail (GTK_IS_PRINT_SETTINGS (settings), GTK_NUMBER_UP_LAYOUT_LEFT_TO_RIGHT_TOP_TO_BOTTOM);
Packit 98cdb6
Packit 98cdb6
  val = gtk_print_settings_get (settings, GTK_PRINT_SETTINGS_NUMBER_UP_LAYOUT);
Packit 98cdb6
  text_direction = gtk_widget_get_default_direction ();
Packit 98cdb6
Packit 98cdb6
  if (text_direction == GTK_TEXT_DIR_LTR)
Packit 98cdb6
    layout = GTK_NUMBER_UP_LAYOUT_LEFT_TO_RIGHT_TOP_TO_BOTTOM;
Packit 98cdb6
  else
Packit 98cdb6
    layout = GTK_NUMBER_UP_LAYOUT_RIGHT_TO_LEFT_TOP_TO_BOTTOM;
Packit 98cdb6
Packit 98cdb6
  if (val == NULL)
Packit 98cdb6
    return layout;
Packit 98cdb6
Packit 98cdb6
  enum_class = g_type_class_ref (GTK_TYPE_NUMBER_UP_LAYOUT);
Packit 98cdb6
  enum_value = g_enum_get_value_by_nick (enum_class, val);
Packit 98cdb6
  if (enum_value)
Packit 98cdb6
    layout = enum_value->value;
Packit 98cdb6
  g_type_class_unref (enum_class);
Packit 98cdb6
Packit 98cdb6
  return layout;
Packit 98cdb6
}
Packit 98cdb6
Packit 98cdb6
/**
Packit 98cdb6
 * gtk_print_settings_set_number_up_layout:
Packit 98cdb6
 * @settings: a #GtkPrintSettings
Packit 98cdb6
 * @number_up_layout: a #GtkNumberUpLayout value
Packit 98cdb6
 * 
Packit 98cdb6
 * Sets the value of %GTK_PRINT_SETTINGS_NUMBER_UP_LAYOUT.
Packit 98cdb6
 * 
Packit 98cdb6
 * Since: 2.14
Packit 98cdb6
 */
Packit 98cdb6
void
Packit 98cdb6
gtk_print_settings_set_number_up_layout (GtkPrintSettings  *settings,
Packit 98cdb6
					 GtkNumberUpLayout  number_up_layout)
Packit 98cdb6
{
Packit 98cdb6
  GEnumClass *enum_class;
Packit 98cdb6
  GEnumValue *enum_value;
Packit 98cdb6
Packit 98cdb6
  g_return_if_fail (GTK_IS_PRINT_SETTINGS (settings));
Packit 98cdb6
Packit 98cdb6
  enum_class = g_type_class_ref (GTK_TYPE_NUMBER_UP_LAYOUT);
Packit 98cdb6
  enum_value = g_enum_get_value (enum_class, number_up_layout);
Packit 98cdb6
  g_return_if_fail (enum_value != NULL);
Packit 98cdb6
Packit 98cdb6
  gtk_print_settings_set (settings, GTK_PRINT_SETTINGS_NUMBER_UP_LAYOUT, enum_value->value_nick);
Packit 98cdb6
  g_type_class_unref (enum_class);
Packit 98cdb6
}
Packit 98cdb6
Packit 98cdb6
/**
Packit 98cdb6
 * gtk_print_settings_get_n_copies:
Packit 98cdb6
 * @settings: a #GtkPrintSettings
Packit 98cdb6
 * 
Packit 98cdb6
 * Gets the value of %GTK_PRINT_SETTINGS_N_COPIES.
Packit 98cdb6
 * 
Packit 98cdb6
 * Return value: the number of copies to print
Packit 98cdb6
 *
Packit 98cdb6
 * Since: 2.10
Packit 98cdb6
 */
Packit 98cdb6
gint
Packit 98cdb6
gtk_print_settings_get_n_copies (GtkPrintSettings *settings)
Packit 98cdb6
{
Packit 98cdb6
  return gtk_print_settings_get_int_with_default (settings, GTK_PRINT_SETTINGS_N_COPIES, 1);
Packit 98cdb6
}
Packit 98cdb6
Packit 98cdb6
/**
Packit 98cdb6
 * gtk_print_settings_set_n_copies:
Packit 98cdb6
 * @settings: a #GtkPrintSettings
Packit 98cdb6
 * @num_copies: the number of copies 
Packit 98cdb6
 * 
Packit 98cdb6
 * Sets the value of %GTK_PRINT_SETTINGS_N_COPIES.
Packit 98cdb6
 * 
Packit 98cdb6
 * Since: 2.10
Packit 98cdb6
 */
Packit 98cdb6
void
Packit 98cdb6
gtk_print_settings_set_n_copies (GtkPrintSettings *settings,
Packit 98cdb6
				 gint              num_copies)
Packit 98cdb6
{
Packit 98cdb6
  gtk_print_settings_set_int (settings, GTK_PRINT_SETTINGS_N_COPIES,
Packit 98cdb6
			      num_copies);
Packit 98cdb6
}
Packit 98cdb6
Packit 98cdb6
/**
Packit 98cdb6
 * gtk_print_settings_get_number_up:
Packit 98cdb6
 * @settings: a #GtkPrintSettings
Packit 98cdb6
 * 
Packit 98cdb6
 * Gets the value of %GTK_PRINT_SETTINGS_NUMBER_UP.
Packit 98cdb6
 * 
Packit 98cdb6
 * Return value: the number of pages per sheet
Packit 98cdb6
 *
Packit 98cdb6
 * Since: 2.10
Packit 98cdb6
 */
Packit 98cdb6
gint
Packit 98cdb6
gtk_print_settings_get_number_up (GtkPrintSettings *settings)
Packit 98cdb6
{
Packit 98cdb6
  return gtk_print_settings_get_int_with_default (settings, GTK_PRINT_SETTINGS_NUMBER_UP, 1);
Packit 98cdb6
}
Packit 98cdb6
Packit 98cdb6
/**
Packit 98cdb6
 * gtk_print_settings_set_number_up:
Packit 98cdb6
 * @settings: a #GtkPrintSettings
Packit 98cdb6
 * @number_up: the number of pages per sheet 
Packit 98cdb6
 * 
Packit 98cdb6
 * Sets the value of %GTK_PRINT_SETTINGS_NUMBER_UP.
Packit 98cdb6
 * 
Packit 98cdb6
 * Since: 2.10
Packit 98cdb6
 */
Packit 98cdb6
void
Packit 98cdb6
gtk_print_settings_set_number_up (GtkPrintSettings *settings,
Packit 98cdb6
				  gint              number_up)
Packit 98cdb6
{
Packit 98cdb6
  gtk_print_settings_set_int (settings, GTK_PRINT_SETTINGS_NUMBER_UP,
Packit 98cdb6
				number_up);
Packit 98cdb6
}
Packit 98cdb6
Packit 98cdb6
/**
Packit 98cdb6
 * gtk_print_settings_get_resolution:
Packit 98cdb6
 * @settings: a #GtkPrintSettings
Packit 98cdb6
 * 
Packit 98cdb6
 * Gets the value of %GTK_PRINT_SETTINGS_RESOLUTION.
Packit 98cdb6
 * 
Packit 98cdb6
 * Return value: the resolution in dpi
Packit 98cdb6
 *
Packit 98cdb6
 * Since: 2.10
Packit 98cdb6
 */
Packit 98cdb6
gint
Packit 98cdb6
gtk_print_settings_get_resolution (GtkPrintSettings *settings)
Packit 98cdb6
{
Packit 98cdb6
  return gtk_print_settings_get_int_with_default (settings, GTK_PRINT_SETTINGS_RESOLUTION, 300);
Packit 98cdb6
}
Packit 98cdb6
Packit 98cdb6
/**
Packit 98cdb6
 * gtk_print_settings_set_resolution:
Packit 98cdb6
 * @settings: a #GtkPrintSettings
Packit 98cdb6
 * @resolution: the resolution in dpi
Packit 98cdb6
 * 
Packit 98cdb6
 * Sets the values of %GTK_PRINT_SETTINGS_RESOLUTION,
Packit 98cdb6
 * %GTK_PRINT_SETTINGS_RESOLUTION_X and 
Packit 98cdb6
 * %GTK_PRINT_SETTINGS_RESOLUTION_Y.
Packit 98cdb6
 * 
Packit 98cdb6
 * Since: 2.10
Packit 98cdb6
 */
Packit 98cdb6
void
Packit 98cdb6
gtk_print_settings_set_resolution (GtkPrintSettings *settings,
Packit 98cdb6
				   gint              resolution)
Packit 98cdb6
{
Packit 98cdb6
  gtk_print_settings_set_int (settings, GTK_PRINT_SETTINGS_RESOLUTION,
Packit 98cdb6
			      resolution);
Packit 98cdb6
  gtk_print_settings_set_int (settings, GTK_PRINT_SETTINGS_RESOLUTION_X,
Packit 98cdb6
			      resolution);
Packit 98cdb6
  gtk_print_settings_set_int (settings, GTK_PRINT_SETTINGS_RESOLUTION_Y,
Packit 98cdb6
			      resolution);
Packit 98cdb6
}
Packit 98cdb6
Packit 98cdb6
/**
Packit 98cdb6
 * gtk_print_settings_get_resolution_x:
Packit 98cdb6
 * @settings: a #GtkPrintSettings
Packit 98cdb6
 * 
Packit 98cdb6
 * Gets the value of %GTK_PRINT_SETTINGS_RESOLUTION_X.
Packit 98cdb6
 * 
Packit 98cdb6
 * Return value: the horizontal resolution in dpi
Packit 98cdb6
 *
Packit 98cdb6
 * Since: 2.16
Packit 98cdb6
 */
Packit 98cdb6
gint
Packit 98cdb6
gtk_print_settings_get_resolution_x (GtkPrintSettings *settings)
Packit 98cdb6
{
Packit 98cdb6
  return gtk_print_settings_get_int_with_default (settings, GTK_PRINT_SETTINGS_RESOLUTION_X, 300);
Packit 98cdb6
}
Packit 98cdb6
Packit 98cdb6
/**
Packit 98cdb6
 * gtk_print_settings_get_resolution_y:
Packit 98cdb6
 * @settings: a #GtkPrintSettings
Packit 98cdb6
 * 
Packit 98cdb6
 * Gets the value of %GTK_PRINT_SETTINGS_RESOLUTION_Y.
Packit 98cdb6
 * 
Packit 98cdb6
 * Return value: the vertical resolution in dpi
Packit 98cdb6
 *
Packit 98cdb6
 * Since: 2.16
Packit 98cdb6
 */
Packit 98cdb6
gint
Packit 98cdb6
gtk_print_settings_get_resolution_y (GtkPrintSettings *settings)
Packit 98cdb6
{
Packit 98cdb6
  return gtk_print_settings_get_int_with_default (settings, GTK_PRINT_SETTINGS_RESOLUTION_Y, 300);
Packit 98cdb6
}
Packit 98cdb6
Packit 98cdb6
/**
Packit 98cdb6
 * gtk_print_settings_set_resolution_xy:
Packit 98cdb6
 * @settings: a #GtkPrintSettings
Packit 98cdb6
 * @resolution_x: the horizontal resolution in dpi
Packit 98cdb6
 * @resolution_y: the vertical resolution in dpi
Packit 98cdb6
 * 
Packit 98cdb6
 * Sets the values of %GTK_PRINT_SETTINGS_RESOLUTION,
Packit 98cdb6
 * %GTK_PRINT_SETTINGS_RESOLUTION_X and
Packit 98cdb6
 * %GTK_PRINT_SETTINGS_RESOLUTION_Y.
Packit 98cdb6
 * 
Packit 98cdb6
 * Since: 2.16
Packit 98cdb6
 */
Packit 98cdb6
void
Packit 98cdb6
gtk_print_settings_set_resolution_xy (GtkPrintSettings *settings,
Packit 98cdb6
				      gint              resolution_x,
Packit 98cdb6
				      gint              resolution_y)
Packit 98cdb6
{
Packit 98cdb6
  gtk_print_settings_set_int (settings, GTK_PRINT_SETTINGS_RESOLUTION_X,
Packit 98cdb6
			      resolution_x);
Packit 98cdb6
  gtk_print_settings_set_int (settings, GTK_PRINT_SETTINGS_RESOLUTION_Y,
Packit 98cdb6
			      resolution_y);
Packit 98cdb6
  gtk_print_settings_set_int (settings, GTK_PRINT_SETTINGS_RESOLUTION,
Packit 98cdb6
			      resolution_x);
Packit 98cdb6
}
Packit 98cdb6
Packit 98cdb6
/**
Packit 98cdb6
 * gtk_print_settings_get_printer_lpi:
Packit 98cdb6
 * @settings: a #GtkPrintSettings
Packit 98cdb6
 * 
Packit 98cdb6
 * Gets the value of %GTK_PRINT_SETTINGS_PRINTER_LPI.
Packit 98cdb6
 * 
Packit 98cdb6
 * Return value: the resolution in lpi (lines per inch)
Packit 98cdb6
 *
Packit 98cdb6
 * Since: 2.16
Packit 98cdb6
 */
Packit 98cdb6
gdouble
Packit 98cdb6
gtk_print_settings_get_printer_lpi (GtkPrintSettings *settings)
Packit 98cdb6
{
Packit 98cdb6
  return gtk_print_settings_get_double_with_default (settings, GTK_PRINT_SETTINGS_PRINTER_LPI, 150.0);
Packit 98cdb6
}
Packit 98cdb6
Packit 98cdb6
/**
Packit 98cdb6
 * gtk_print_settings_set_printer_lpi:
Packit 98cdb6
 * @settings: a #GtkPrintSettings
Packit 98cdb6
 * @lpi: the resolution in lpi (lines per inch)
Packit 98cdb6
 * 
Packit 98cdb6
 * Sets the value of %GTK_PRINT_SETTINGS_PRINTER_LPI.
Packit 98cdb6
 * 
Packit 98cdb6
 * Since: 2.16
Packit 98cdb6
 */
Packit 98cdb6
void
Packit 98cdb6
gtk_print_settings_set_printer_lpi (GtkPrintSettings *settings,
Packit 98cdb6
				    gdouble           lpi)
Packit 98cdb6
{
Packit 98cdb6
  gtk_print_settings_set_double (settings, GTK_PRINT_SETTINGS_PRINTER_LPI,
Packit 98cdb6
			         lpi);
Packit 98cdb6
}
Packit 98cdb6
Packit 98cdb6
/**
Packit 98cdb6
 * gtk_print_settings_get_scale:
Packit 98cdb6
 * @settings: a #GtkPrintSettings
Packit 98cdb6
 * 
Packit 98cdb6
 * Gets the value of %GTK_PRINT_SETTINGS_SCALE.
Packit 98cdb6
 * 
Packit 98cdb6
 * Return value: the scale in percent
Packit 98cdb6
 *
Packit 98cdb6
 * Since: 2.10
Packit 98cdb6
 */
Packit 98cdb6
gdouble
Packit 98cdb6
gtk_print_settings_get_scale (GtkPrintSettings *settings)
Packit 98cdb6
{
Packit 98cdb6
  return gtk_print_settings_get_double_with_default (settings,
Packit 98cdb6
						     GTK_PRINT_SETTINGS_SCALE,
Packit 98cdb6
						     100.0);
Packit 98cdb6
}
Packit 98cdb6
Packit 98cdb6
/**
Packit 98cdb6
 * gtk_print_settings_set_scale:
Packit 98cdb6
 * @settings: a #GtkPrintSettings
Packit 98cdb6
 * @scale: the scale in percent
Packit 98cdb6
 * 
Packit 98cdb6
 * Sets the value of %GTK_PRINT_SETTINGS_SCALE.
Packit 98cdb6
 * 
Packit 98cdb6
 * Since: 2.10
Packit 98cdb6
 */
Packit 98cdb6
void
Packit 98cdb6
gtk_print_settings_set_scale (GtkPrintSettings *settings,
Packit 98cdb6
			      gdouble           scale)
Packit 98cdb6
{
Packit 98cdb6
  gtk_print_settings_set_double (settings, GTK_PRINT_SETTINGS_SCALE,
Packit 98cdb6
				 scale);
Packit 98cdb6
}
Packit 98cdb6
Packit 98cdb6
/**
Packit 98cdb6
 * gtk_print_settings_get_print_pages:
Packit 98cdb6
 * @settings: a #GtkPrintSettings
Packit 98cdb6
 * 
Packit 98cdb6
 * Gets the value of %GTK_PRINT_SETTINGS_PRINT_PAGES.
Packit 98cdb6
 * 
Packit 98cdb6
 * Return value: which pages to print
Packit 98cdb6
 *
Packit 98cdb6
 * Since: 2.10
Packit 98cdb6
 */
Packit 98cdb6
GtkPrintPages
Packit 98cdb6
gtk_print_settings_get_print_pages (GtkPrintSettings *settings)
Packit 98cdb6
{
Packit 98cdb6
  const gchar *val;
Packit 98cdb6
Packit 98cdb6
  val = gtk_print_settings_get (settings, GTK_PRINT_SETTINGS_PRINT_PAGES);
Packit 98cdb6
Packit 98cdb6
  if (val == NULL || (strcmp (val, "all") == 0))
Packit 98cdb6
    return GTK_PRINT_PAGES_ALL;
Packit 98cdb6
Packit 98cdb6
  if (strcmp (val, "selection") == 0)
Packit 98cdb6
    return GTK_PRINT_PAGES_SELECTION;
Packit 98cdb6
Packit 98cdb6
  if (strcmp (val, "current") == 0)
Packit 98cdb6
    return GTK_PRINT_PAGES_CURRENT;
Packit 98cdb6
  
Packit 98cdb6
  if (strcmp (val, "ranges") == 0)
Packit 98cdb6
    return GTK_PRINT_PAGES_RANGES;
Packit 98cdb6
  
Packit 98cdb6
  return GTK_PRINT_PAGES_ALL;
Packit 98cdb6
}
Packit 98cdb6
Packit 98cdb6
/**
Packit 98cdb6
 * gtk_print_settings_set_print_pages:
Packit 98cdb6
 * @settings: a #GtkPrintSettings
Packit 98cdb6
 * @pages: a #GtkPrintPages value
Packit 98cdb6
 * 
Packit 98cdb6
 * Sets the value of %GTK_PRINT_SETTINGS_PRINT_PAGES.
Packit 98cdb6
 * 
Packit 98cdb6
 * Since: 2.10
Packit 98cdb6
 */
Packit 98cdb6
void
Packit 98cdb6
gtk_print_settings_set_print_pages (GtkPrintSettings *settings,
Packit 98cdb6
				    GtkPrintPages     pages)
Packit 98cdb6
{
Packit 98cdb6
  const gchar *str;
Packit 98cdb6
Packit 98cdb6
  switch (pages)
Packit 98cdb6
    {
Packit 98cdb6
    default:
Packit 98cdb6
    case GTK_PRINT_PAGES_ALL:
Packit 98cdb6
      str = "all";
Packit 98cdb6
      break;
Packit 98cdb6
    case GTK_PRINT_PAGES_CURRENT:
Packit 98cdb6
      str = "current";
Packit 98cdb6
      break;
Packit 98cdb6
    case GTK_PRINT_PAGES_SELECTION:
Packit 98cdb6
      str = "selection";
Packit 98cdb6
      break;
Packit 98cdb6
    case GTK_PRINT_PAGES_RANGES:
Packit 98cdb6
      str = "ranges";
Packit 98cdb6
      break;
Packit 98cdb6
    }
Packit 98cdb6
  
Packit 98cdb6
  gtk_print_settings_set (settings, GTK_PRINT_SETTINGS_PRINT_PAGES, str);
Packit 98cdb6
}
Packit 98cdb6
Packit 98cdb6
/**
Packit 98cdb6
 * gtk_print_settings_get_page_ranges:
Packit 98cdb6
 * @settings: a #GtkPrintSettings
Packit 98cdb6
 * @num_ranges: (out): return location for the length of the returned array
Packit 98cdb6
 *
Packit 98cdb6
 * Gets the value of %GTK_PRINT_SETTINGS_PAGE_RANGES.
Packit 98cdb6
 *
Packit 98cdb6
 * Return value: (array length=num_ranges) (transfer full): an array
Packit 98cdb6
 *     of #GtkPageRanges.  Use g_free() to free the array when
Packit 98cdb6
 *     it is no longer needed.
Packit 98cdb6
 *
Packit 98cdb6
 * Since: 2.10
Packit 98cdb6
 */
Packit 98cdb6
GtkPageRange *
Packit 98cdb6
gtk_print_settings_get_page_ranges (GtkPrintSettings *settings,
Packit 98cdb6
				    gint             *num_ranges)
Packit 98cdb6
{
Packit 98cdb6
  const gchar *val;
Packit 98cdb6
  gchar **range_strs;
Packit 98cdb6
  GtkPageRange *ranges;
Packit 98cdb6
  gint i, n;
Packit 98cdb6
  
Packit 98cdb6
  val = gtk_print_settings_get (settings, GTK_PRINT_SETTINGS_PAGE_RANGES);
Packit 98cdb6
Packit 98cdb6
  if (val == NULL)
Packit 98cdb6
    {
Packit 98cdb6
      *num_ranges = 0;
Packit 98cdb6
      return NULL;
Packit 98cdb6
    }
Packit 98cdb6
  
Packit 98cdb6
  range_strs = g_strsplit (val, ",", 0);
Packit 98cdb6
Packit 98cdb6
  for (i = 0; range_strs[i] != NULL; i++)
Packit 98cdb6
    ;
Packit 98cdb6
Packit 98cdb6
  n = i;
Packit 98cdb6
Packit 98cdb6
  ranges = g_new0 (GtkPageRange, n);
Packit 98cdb6
Packit 98cdb6
  for (i = 0; i < n; i++)
Packit 98cdb6
    {
Packit 98cdb6
      gint start, end;
Packit 98cdb6
      gchar *str;
Packit 98cdb6
Packit 98cdb6
      start = (gint)strtol (range_strs[i], &str, 10);
Packit 98cdb6
      end = start;
Packit 98cdb6
Packit 98cdb6
      if (*str == '-')
Packit 98cdb6
	{
Packit 98cdb6
	  str++;
Packit 98cdb6
	  end = (gint)strtol (str, NULL, 10);
Packit 98cdb6
	}
Packit 98cdb6
Packit 98cdb6
      ranges[i].start = start;
Packit 98cdb6
      ranges[i].end = end;
Packit 98cdb6
    }
Packit 98cdb6
Packit 98cdb6
  g_strfreev (range_strs);
Packit 98cdb6
Packit 98cdb6
  *num_ranges = n;
Packit 98cdb6
  return ranges;
Packit 98cdb6
}
Packit 98cdb6
Packit 98cdb6
/**
Packit 98cdb6
 * gtk_print_settings_set_page_ranges:
Packit 98cdb6
 * @settings: a #GtkPrintSettings
Packit 98cdb6
 * @page_ranges: (array length=num_ranges): an array of #GtkPageRanges
Packit 98cdb6
 * @num_ranges: the length of @page_ranges
Packit 98cdb6
 * 
Packit 98cdb6
 * Sets the value of %GTK_PRINT_SETTINGS_PAGE_RANGES.
Packit 98cdb6
 * 
Packit 98cdb6
 * Since: 2.10
Packit 98cdb6
 */
Packit 98cdb6
void
Packit 98cdb6
gtk_print_settings_set_page_ranges  (GtkPrintSettings *settings,
Packit 98cdb6
				     GtkPageRange     *page_ranges,
Packit 98cdb6
				     gint              num_ranges)
Packit 98cdb6
{
Packit 98cdb6
  GString *s;
Packit 98cdb6
  gint i;
Packit 98cdb6
  
Packit 98cdb6
  s = g_string_new ("");
Packit 98cdb6
Packit 98cdb6
  for (i = 0; i < num_ranges; i++)
Packit 98cdb6
    {
Packit 98cdb6
      if (page_ranges[i].start == page_ranges[i].end)
Packit 98cdb6
	g_string_append_printf (s, "%d", page_ranges[i].start);
Packit 98cdb6
      else
Packit 98cdb6
	g_string_append_printf (s, "%d-%d",
Packit 98cdb6
				page_ranges[i].start,
Packit 98cdb6
				page_ranges[i].end);
Packit 98cdb6
      if (i < num_ranges - 1)
Packit 98cdb6
	g_string_append (s, ",");
Packit 98cdb6
    }
Packit 98cdb6
Packit 98cdb6
  
Packit 98cdb6
  gtk_print_settings_set (settings, GTK_PRINT_SETTINGS_PAGE_RANGES, 
Packit 98cdb6
			  s->str);
Packit 98cdb6
Packit 98cdb6
  g_string_free (s, TRUE);
Packit 98cdb6
}
Packit 98cdb6
Packit 98cdb6
/**
Packit 98cdb6
 * gtk_print_settings_get_default_source:
Packit 98cdb6
 * @settings: a #GtkPrintSettings
Packit 98cdb6
 * 
Packit 98cdb6
 * Gets the value of %GTK_PRINT_SETTINGS_DEFAULT_SOURCE.
Packit 98cdb6
 * 
Packit 98cdb6
 * Return value: the default source
Packit 98cdb6
 *
Packit 98cdb6
 * Since: 2.10
Packit 98cdb6
 */
Packit 98cdb6
const gchar *
Packit 98cdb6
gtk_print_settings_get_default_source (GtkPrintSettings *settings)
Packit 98cdb6
{
Packit 98cdb6
  return gtk_print_settings_get (settings, GTK_PRINT_SETTINGS_DEFAULT_SOURCE);
Packit 98cdb6
}
Packit 98cdb6
Packit 98cdb6
/**
Packit 98cdb6
 * gtk_print_settings_set_default_source:
Packit 98cdb6
 * @settings: a #GtkPrintSettings
Packit 98cdb6
 * @default_source: the default source
Packit 98cdb6
 * 
Packit 98cdb6
 * Sets the value of %GTK_PRINT_SETTINGS_DEFAULT_SOURCE.
Packit 98cdb6
 * 
Packit 98cdb6
 * Since: 2.10
Packit 98cdb6
 */
Packit 98cdb6
void
Packit 98cdb6
gtk_print_settings_set_default_source (GtkPrintSettings *settings,
Packit 98cdb6
				       const gchar      *default_source)
Packit 98cdb6
{
Packit 98cdb6
  gtk_print_settings_set (settings, GTK_PRINT_SETTINGS_DEFAULT_SOURCE, default_source);
Packit 98cdb6
}
Packit 98cdb6
     
Packit 98cdb6
/**
Packit 98cdb6
 * gtk_print_settings_get_media_type:
Packit 98cdb6
 * @settings: a #GtkPrintSettings
Packit 98cdb6
 * 
Packit 98cdb6
 * Gets the value of %GTK_PRINT_SETTINGS_MEDIA_TYPE.
Packit 98cdb6
 *
Packit 98cdb6
 * The set of media types is defined in PWG 5101.1-2002 PWG.
Packit 98cdb6
 * 
Packit 98cdb6
 * 
Packit 98cdb6
 * Return value: the media type
Packit 98cdb6
 *
Packit 98cdb6
 * Since: 2.10
Packit 98cdb6
 */
Packit 98cdb6
const gchar *
Packit 98cdb6
gtk_print_settings_get_media_type (GtkPrintSettings *settings)
Packit 98cdb6
{
Packit 98cdb6
  return gtk_print_settings_get (settings, GTK_PRINT_SETTINGS_MEDIA_TYPE);
Packit 98cdb6
}
Packit 98cdb6
Packit 98cdb6
/**
Packit 98cdb6
 * gtk_print_settings_set_media_type:
Packit 98cdb6
 * @settings: a #GtkPrintSettings
Packit 98cdb6
 * @media_type: the media type
Packit 98cdb6
 * 
Packit 98cdb6
 * Sets the value of %GTK_PRINT_SETTINGS_MEDIA_TYPE.
Packit 98cdb6
 * 
Packit 98cdb6
 * The set of media types is defined in PWG 5101.1-2002 PWG.
Packit 98cdb6
 * 
Packit 98cdb6
 *
Packit 98cdb6
 * Since: 2.10
Packit 98cdb6
 */
Packit 98cdb6
void
Packit 98cdb6
gtk_print_settings_set_media_type (GtkPrintSettings *settings,
Packit 98cdb6
				   const gchar      *media_type)
Packit 98cdb6
{
Packit 98cdb6
  gtk_print_settings_set (settings, GTK_PRINT_SETTINGS_MEDIA_TYPE, media_type);
Packit 98cdb6
}
Packit 98cdb6
Packit 98cdb6
/**
Packit 98cdb6
 * gtk_print_settings_get_dither:
Packit 98cdb6
 * @settings: a #GtkPrintSettings
Packit 98cdb6
 * 
Packit 98cdb6
 * Gets the value of %GTK_PRINT_SETTINGS_DITHER.
Packit 98cdb6
 * 
Packit 98cdb6
 * Return value: the dithering that is used
Packit 98cdb6
 *
Packit 98cdb6
 * Since: 2.10
Packit 98cdb6
 */
Packit 98cdb6
const gchar *
Packit 98cdb6
gtk_print_settings_get_dither (GtkPrintSettings *settings)
Packit 98cdb6
{
Packit 98cdb6
  return gtk_print_settings_get (settings, GTK_PRINT_SETTINGS_DITHER);
Packit 98cdb6
}
Packit 98cdb6
Packit 98cdb6
/**
Packit 98cdb6
 * gtk_print_settings_set_dither:
Packit 98cdb6
 * @settings: a #GtkPrintSettings
Packit 98cdb6
 * @dither: the dithering that is used
Packit 98cdb6
 * 
Packit 98cdb6
 * Sets the value of %GTK_PRINT_SETTINGS_DITHER.
Packit 98cdb6
 *
Packit 98cdb6
 * Since: 2.10
Packit 98cdb6
 */
Packit 98cdb6
void
Packit 98cdb6
gtk_print_settings_set_dither (GtkPrintSettings *settings,
Packit 98cdb6
			       const gchar      *dither)
Packit 98cdb6
{
Packit 98cdb6
  gtk_print_settings_set (settings, GTK_PRINT_SETTINGS_DITHER, dither);
Packit 98cdb6
}
Packit 98cdb6
     
Packit 98cdb6
/**
Packit 98cdb6
 * gtk_print_settings_get_finishings:
Packit 98cdb6
 * @settings: a #GtkPrintSettings
Packit 98cdb6
 * 
Packit 98cdb6
 * Gets the value of %GTK_PRINT_SETTINGS_FINISHINGS.
Packit 98cdb6
 * 
Packit 98cdb6
 * Return value: the finishings
Packit 98cdb6
 *
Packit 98cdb6
 * Since: 2.10
Packit 98cdb6
 */
Packit 98cdb6
const gchar *
Packit 98cdb6
gtk_print_settings_get_finishings (GtkPrintSettings *settings)
Packit 98cdb6
{
Packit 98cdb6
  return gtk_print_settings_get (settings, GTK_PRINT_SETTINGS_FINISHINGS);
Packit 98cdb6
}
Packit 98cdb6
Packit 98cdb6
/**
Packit 98cdb6
 * gtk_print_settings_set_finishings:
Packit 98cdb6
 * @settings: a #GtkPrintSettings
Packit 98cdb6
 * @finishings: the finishings
Packit 98cdb6
 * 
Packit 98cdb6
 * Sets the value of %GTK_PRINT_SETTINGS_FINISHINGS.
Packit 98cdb6
 *
Packit 98cdb6
 * Since: 2.10
Packit 98cdb6
 */
Packit 98cdb6
void
Packit 98cdb6
gtk_print_settings_set_finishings (GtkPrintSettings *settings,
Packit 98cdb6
				   const gchar      *finishings)
Packit 98cdb6
{
Packit 98cdb6
  gtk_print_settings_set (settings, GTK_PRINT_SETTINGS_FINISHINGS, finishings);
Packit 98cdb6
}
Packit 98cdb6
     
Packit 98cdb6
/**
Packit 98cdb6
 * gtk_print_settings_get_output_bin:
Packit 98cdb6
 * @settings: a #GtkPrintSettings
Packit 98cdb6
 * 
Packit 98cdb6
 * Gets the value of %GTK_PRINT_SETTINGS_OUTPUT_BIN.
Packit 98cdb6
 * 
Packit 98cdb6
 * Return value: the output bin
Packit 98cdb6
 *
Packit 98cdb6
 * Since: 2.10
Packit 98cdb6
 */
Packit 98cdb6
const gchar *
Packit 98cdb6
gtk_print_settings_get_output_bin (GtkPrintSettings *settings)
Packit 98cdb6
{
Packit 98cdb6
  return gtk_print_settings_get (settings, GTK_PRINT_SETTINGS_OUTPUT_BIN);
Packit 98cdb6
}
Packit 98cdb6
Packit 98cdb6
/**
Packit 98cdb6
 * gtk_print_settings_set_output_bin:
Packit 98cdb6
 * @settings: a #GtkPrintSettings
Packit 98cdb6
 * @output_bin: the output bin
Packit 98cdb6
 * 
Packit 98cdb6
 * Sets the value of %GTK_PRINT_SETTINGS_OUTPUT_BIN.
Packit 98cdb6
 *
Packit 98cdb6
 * Since: 2.10
Packit 98cdb6
 */
Packit 98cdb6
void
Packit 98cdb6
gtk_print_settings_set_output_bin (GtkPrintSettings *settings,
Packit 98cdb6
				   const gchar      *output_bin)
Packit 98cdb6
{
Packit 98cdb6
  gtk_print_settings_set (settings, GTK_PRINT_SETTINGS_OUTPUT_BIN, output_bin);
Packit 98cdb6
}
Packit 98cdb6
Packit 98cdb6
/**
Packit 98cdb6
 * gtk_print_settings_load_file:
Packit 98cdb6
 * @settings: a #GtkPrintSettings
Packit 98cdb6
 * @file_name: the filename to read the settings from
Packit 98cdb6
 * @error: (allow-none): return location for errors, or %NULL
Packit 98cdb6
 *
Packit 98cdb6
 * Reads the print settings from @file_name. If the file could not be loaded
Packit 98cdb6
 * then error is set to either a #GFileError or #GKeyFileError.
Packit 98cdb6
 * See gtk_print_settings_to_file().
Packit 98cdb6
 *
Packit 98cdb6
 * Return value: %TRUE on success
Packit 98cdb6
 *
Packit 98cdb6
 * Since: 2.14
Packit 98cdb6
 */
Packit 98cdb6
gboolean
Packit 98cdb6
gtk_print_settings_load_file (GtkPrintSettings *settings,
Packit 98cdb6
                              const gchar      *file_name,
Packit 98cdb6
                              GError          **error)
Packit 98cdb6
{
Packit 98cdb6
  gboolean retval = FALSE;
Packit 98cdb6
  GKeyFile *key_file;
Packit 98cdb6
Packit 98cdb6
  g_return_val_if_fail (GTK_IS_PRINT_SETTINGS (settings), FALSE);
Packit 98cdb6
  g_return_val_if_fail (file_name != NULL, FALSE);
Packit 98cdb6
Packit 98cdb6
  key_file = g_key_file_new ();
Packit 98cdb6
Packit 98cdb6
  if (g_key_file_load_from_file (key_file, file_name, 0, error) &&
Packit 98cdb6
      gtk_print_settings_load_key_file (settings, key_file, NULL, error))
Packit 98cdb6
    retval = TRUE;
Packit 98cdb6
Packit 98cdb6
  g_key_file_free (key_file);
Packit 98cdb6
Packit 98cdb6
  return retval;
Packit 98cdb6
}
Packit 98cdb6
Packit 98cdb6
/**
Packit 98cdb6
 * gtk_print_settings_new_from_file:
Packit 98cdb6
 * @file_name: the filename to read the settings from
Packit 98cdb6
 * @error: (allow-none): return location for errors, or %NULL
Packit 98cdb6
 * 
Packit 98cdb6
 * Reads the print settings from @file_name. Returns a new #GtkPrintSettings
Packit 98cdb6
 * object with the restored settings, or %NULL if an error occurred. If the
Packit 98cdb6
 * file could not be loaded then error is set to either a #GFileError or
Packit 98cdb6
 * #GKeyFileError.  See gtk_print_settings_to_file().
Packit 98cdb6
 *
Packit 98cdb6
 * Return value: the restored #GtkPrintSettings
Packit 98cdb6
 * 
Packit 98cdb6
 * Since: 2.12
Packit 98cdb6
 */
Packit 98cdb6
GtkPrintSettings *
Packit 98cdb6
gtk_print_settings_new_from_file (const gchar  *file_name,
Packit 98cdb6
			          GError      **error)
Packit 98cdb6
{
Packit 98cdb6
  GtkPrintSettings *settings = gtk_print_settings_new ();
Packit 98cdb6
Packit 98cdb6
  if (!gtk_print_settings_load_file (settings, file_name, error))
Packit 98cdb6
    {
Packit 98cdb6
      g_object_unref (settings);
Packit 98cdb6
      settings = NULL;
Packit 98cdb6
    }
Packit 98cdb6
Packit 98cdb6
  return settings;
Packit 98cdb6
}
Packit 98cdb6
Packit 98cdb6
/**
Packit 98cdb6
 * gtk_print_settings_load_key_file:
Packit 98cdb6
 * @settings: a #GtkPrintSettings
Packit 98cdb6
 * @key_file: the #GKeyFile to retrieve the settings from
Packit 98cdb6
 * @group_name: (allow-none): the name of the group to use, or %NULL to use the default
Packit 98cdb6
 *     "Print Settings"
Packit 98cdb6
 * @error: (allow-none): return location for errors, or %NULL
Packit 98cdb6
 * 
Packit 98cdb6
 * Reads the print settings from the group @group_name in @key_file. If the
Packit 98cdb6
 * file could not be loaded then error is set to either a #GFileError or
Packit 98cdb6
 * #GKeyFileError.
Packit 98cdb6
 *
Packit 98cdb6
 * Return value: %TRUE on success
Packit 98cdb6
 * 
Packit 98cdb6
 * Since: 2.14
Packit 98cdb6
 */
Packit 98cdb6
gboolean
Packit 98cdb6
gtk_print_settings_load_key_file (GtkPrintSettings *settings,
Packit 98cdb6
				  GKeyFile         *key_file,
Packit 98cdb6
				  const gchar      *group_name,
Packit 98cdb6
				  GError          **error)
Packit 98cdb6
{
Packit 98cdb6
  gchar **keys;
Packit 98cdb6
  gsize n_keys, i;
Packit 98cdb6
  GError *err = NULL;
Packit 98cdb6
Packit 98cdb6
  g_return_val_if_fail (GTK_IS_PRINT_SETTINGS (settings), FALSE);
Packit 98cdb6
  g_return_val_if_fail (key_file != NULL, FALSE);
Packit 98cdb6
Packit 98cdb6
  if (!group_name)
Packit 98cdb6
    group_name = KEYFILE_GROUP_NAME;
Packit 98cdb6
Packit 98cdb6
  keys = g_key_file_get_keys (key_file,
Packit 98cdb6
			      group_name,
Packit 98cdb6
			      &n_keys,
Packit 98cdb6
			      &err;;
Packit 98cdb6
  if (err != NULL)
Packit 98cdb6
    {
Packit 98cdb6
      g_propagate_error (error, err);
Packit 98cdb6
      return FALSE;
Packit 98cdb6
    }
Packit 98cdb6
   
Packit 98cdb6
  for (i = 0 ; i < n_keys; ++i)
Packit 98cdb6
    {
Packit 98cdb6
      gchar *value;
Packit 98cdb6
Packit 98cdb6
      value = g_key_file_get_string (key_file,
Packit 98cdb6
				     group_name,
Packit 98cdb6
				     keys[i],
Packit 98cdb6
				     NULL);
Packit 98cdb6
      if (!value)
Packit 98cdb6
        continue;
Packit 98cdb6
Packit 98cdb6
      gtk_print_settings_set (settings, keys[i], value);
Packit 98cdb6
      g_free (value);
Packit 98cdb6
    }
Packit 98cdb6
Packit 98cdb6
  g_strfreev (keys);
Packit 98cdb6
Packit 98cdb6
  return TRUE;
Packit 98cdb6
}
Packit 98cdb6
Packit 98cdb6
/**
Packit 98cdb6
 * gtk_print_settings_new_from_key_file:
Packit 98cdb6
 * @key_file: the #GKeyFile to retrieve the settings from
Packit 98cdb6
 * @group_name: (allow-none): the name of the group to use, or %NULL to use
Packit 98cdb6
 *     the default "Print Settings"
Packit 98cdb6
 * @error: (allow-none): return location for errors, or %NULL
Packit 98cdb6
 *
Packit 98cdb6
 * Reads the print settings from the group @group_name in @key_file.  Returns a
Packit 98cdb6
 * new #GtkPrintSettings object with the restored settings, or %NULL if an
Packit 98cdb6
 * error occurred. If the file could not be loaded then error is set to either
Packit 98cdb6
 * a #GFileError or #GKeyFileError.
Packit 98cdb6
 *
Packit 98cdb6
 * Return value: the restored #GtkPrintSettings
Packit 98cdb6
 *
Packit 98cdb6
 * Since: 2.12
Packit 98cdb6
 */
Packit 98cdb6
GtkPrintSettings *
Packit 98cdb6
gtk_print_settings_new_from_key_file (GKeyFile     *key_file,
Packit 98cdb6
				      const gchar  *group_name,
Packit 98cdb6
				      GError      **error)
Packit 98cdb6
{
Packit 98cdb6
  GtkPrintSettings *settings = gtk_print_settings_new ();
Packit 98cdb6
Packit 98cdb6
  if (!gtk_print_settings_load_key_file (settings, key_file,
Packit 98cdb6
                                         group_name, error))
Packit 98cdb6
    {
Packit 98cdb6
      g_object_unref (settings);
Packit 98cdb6
      settings = NULL;
Packit 98cdb6
    }
Packit 98cdb6
Packit 98cdb6
  return settings;
Packit 98cdb6
}
Packit 98cdb6
Packit 98cdb6
/**
Packit 98cdb6
 * gtk_print_settings_to_file:
Packit 98cdb6
 * @settings: a #GtkPrintSettings
Packit 98cdb6
 * @file_name: the file to save to
Packit 98cdb6
 * @error: (allow-none): return location for errors, or %NULL
Packit 98cdb6
 * 
Packit 98cdb6
 * This function saves the print settings from @settings to @file_name. If the
Packit 98cdb6
 * file could not be loaded then error is set to either a #GFileError or
Packit 98cdb6
 * #GKeyFileError.
Packit 98cdb6
 * 
Packit 98cdb6
 * Return value: %TRUE on success
Packit 98cdb6
 *
Packit 98cdb6
 * Since: 2.12
Packit 98cdb6
 */
Packit 98cdb6
gboolean
Packit 98cdb6
gtk_print_settings_to_file (GtkPrintSettings  *settings,
Packit 98cdb6
			    const gchar       *file_name,
Packit 98cdb6
			    GError           **error)
Packit 98cdb6
{
Packit 98cdb6
  GKeyFile *key_file;
Packit 98cdb6
  gboolean retval = FALSE;
Packit 98cdb6
  char *data = NULL;
Packit 98cdb6
  gsize len;
Packit 98cdb6
  GError *err = NULL;
Packit 98cdb6
Packit 98cdb6
  g_return_val_if_fail (GTK_IS_PRINT_SETTINGS (settings), FALSE);
Packit 98cdb6
  g_return_val_if_fail (file_name != NULL, FALSE);
Packit 98cdb6
Packit 98cdb6
  key_file = g_key_file_new ();
Packit 98cdb6
  gtk_print_settings_to_key_file (settings, key_file, NULL);
Packit 98cdb6
Packit 98cdb6
  data = g_key_file_to_data (key_file, &len, &err;;
Packit 98cdb6
  if (!data)
Packit 98cdb6
    goto out;
Packit 98cdb6
Packit 98cdb6
  retval = g_file_set_contents (file_name, data, len, &err;;
Packit 98cdb6
Packit 98cdb6
out:
Packit 98cdb6
  if (err != NULL)
Packit 98cdb6
    g_propagate_error (error, err);
Packit 98cdb6
Packit 98cdb6
  g_key_file_free (key_file);
Packit 98cdb6
  g_free (data);
Packit 98cdb6
Packit 98cdb6
  return retval;
Packit 98cdb6
}
Packit 98cdb6
Packit 98cdb6
typedef struct {
Packit 98cdb6
  GKeyFile *key_file;
Packit 98cdb6
  const gchar *group_name;
Packit 98cdb6
} SettingsData;
Packit 98cdb6
Packit 98cdb6
static void
Packit 98cdb6
add_value_to_key_file (const gchar  *key,
Packit 98cdb6
		       const gchar  *value,
Packit 98cdb6
		       SettingsData *data)
Packit 98cdb6
{
Packit 98cdb6
  g_key_file_set_string (data->key_file, data->group_name, key, value);
Packit 98cdb6
}
Packit 98cdb6
Packit 98cdb6
/**
Packit 98cdb6
 * gtk_print_settings_to_key_file:
Packit 98cdb6
 * @settings: a #GtkPrintSettings
Packit 98cdb6
 * @key_file: the #GKeyFile to save the print settings to
Packit 98cdb6
 * @group_name: the group to add the settings to in @key_file, or 
Packit 98cdb6
 *     %NULL to use the default "Print Settings"
Packit 98cdb6
 *
Packit 98cdb6
 * This function adds the print settings from @settings to @key_file.
Packit 98cdb6
 * 
Packit 98cdb6
 * Since: 2.12
Packit 98cdb6
 */
Packit 98cdb6
void
Packit 98cdb6
gtk_print_settings_to_key_file (GtkPrintSettings  *settings,
Packit 98cdb6
			        GKeyFile          *key_file,
Packit 98cdb6
				const gchar       *group_name)
Packit 98cdb6
{
Packit 98cdb6
  SettingsData data;
Packit 98cdb6
Packit 98cdb6
  g_return_if_fail (GTK_IS_PRINT_SETTINGS (settings));
Packit 98cdb6
  g_return_if_fail (key_file != NULL);
Packit 98cdb6
Packit 98cdb6
  if (!group_name)
Packit 98cdb6
    group_name = KEYFILE_GROUP_NAME;
Packit 98cdb6
Packit 98cdb6
  data.key_file = key_file;
Packit 98cdb6
  data.group_name = group_name;
Packit 98cdb6
Packit 98cdb6
  gtk_print_settings_foreach (settings,
Packit 98cdb6
			      (GtkPrintSettingsFunc) add_value_to_key_file,
Packit 98cdb6
			      &data);
Packit 98cdb6
}
Packit 98cdb6
Packit 98cdb6
Packit 98cdb6
#define __GTK_PRINT_SETTINGS_C__
Packit 98cdb6
#include "gtkaliasdef.c"