-----------------------------------------------------------------------
-- GtkAda - Ada95 binding for Gtk+/Gnome --
-- --
-- Copyright (C) 2010, AdaCore --
-- --
-- This library is free software; you can redistribute it and/or --
-- modify it under the terms of the GNU General Public --
-- License as published by the Free Software Foundation; either --
-- version 2 of the License, or (at your option) any later version. --
-- --
-- This library is distributed in the hope that it will be useful, --
-- but WITHOUT ANY WARRANTY; without even the implied warranty of --
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU --
-- General Public License for more details. --
-- --
-- You should have received a copy of the GNU General Public --
-- License along with this library; if not, write to the --
-- Free Software Foundation, Inc., 59 Temple Place - Suite 330, --
-- Boston, MA 02111-1307, USA. --
-- --
-- --
-- --
-- --
-- --
-- --
-- --
-----------------------------------------------------------------------
--
-- A Gtk_Print_Settings object represents the settings of a print dialog in a
-- system-independent way. The main use for this object is that once you've
-- printed you can get a settings object that represents the settings the user
-- chose, and the next time you print you can pass that object in so that the
-- user doesn't have to re-set all his settings.
--
-- It's also possible to enumerate the settings so that you can easily save
-- the settings for the next time your app runs, or even store them in a
-- document. The predefined keys try to use shared values as much as possible
-- so that moving such a document between systems still works.
--
-- 2.16.6
with Glib.Error;
with Glib.Key_File;
with Glib.Object;
with Gtk.Enums;
with Gtk.Paper_Size;
package Gtk.Print_Settings is
type Gtk_Print_Settings_Record is
new Glib.Object.GObject_Record with private;
type Gtk_Print_Settings is access all Gtk_Print_Settings_Record'Class;
function Get_Type return GType;
procedure Gtk_New (Widget : out Gtk_Print_Settings);
procedure Initialize (Widget : access Gtk_Print_Settings_Record'Class);
-- Creates a new Gtk_Print_Settings object.
procedure Gtk_New_From_File
(Widget : out Gtk_Print_Settings;
File_Name : String;
Error : Glib.Error.GError := null);
procedure Initialize_From_File
(Widget : access Gtk_Print_Settings_Record'Class;
File_Name : String;
Error : Glib.Error.GError := null);
-- Reads the print settings from File_Name. Returns a new
-- Gtk_Print_Settings object with the restored settings, or null if an
-- error occurred. See To_File.
procedure Gtk_New_From_Key_File
(Widget : out Gtk_Print_Settings;
Key_File : Glib.Key_File.G_Key_File;
Group_Name : String := "";
Error : Glib.Error.GError := null);
procedure Initialize_From_Key_File
(Widget : access Gtk_Print_Settings_Record'Class;
Key_File : Glib.Key_File.G_Key_File;
Group_Name : String := "";
Error : Glib.Error.GError := null);
-- Reads the print settings from the group Group_Name in Key_File.
-- Returns a new Gtk_Print_Settings object with the restored settings,
-- or null if an error occurred.
function Copy
(Other : access Gtk_Print_Settings_Record)
return Gtk_Print_Settings;
-- Copies a Gtk_Print_Settings object.
-----------------
-- Basic Types --
-----------------
function Has_Key
(Settings : access Gtk_Print_Settings_Record;
Key : String)
return Boolean;
-- Returns True, if a value is associated with Key.
function Get
(Settings : access Gtk_Print_Settings_Record;
Key : String)
return String;
procedure Set
(Settings : access Gtk_Print_Settings_Record;
Key : String;
Value : String := "");
-- Manipulate string value associated with Key.
procedure Unset
(Settings : access Gtk_Print_Settings_Record;
Key : String);
-- Removes any value associated with Key.
-- This has the same effect as setting the value to null.
function Get_Bool
(Settings : access Gtk_Print_Settings_Record;
Key : String)
return Boolean;
procedure Set_Bool
(Settings : access Gtk_Print_Settings_Record;
Key : String;
Value : Boolean);
-- Gets/Sets the boolean represented by the value
-- that is associated with Key.
function Get_Double
(Settings : access Gtk_Print_Settings_Record;
Key : String;
Def : Gdouble := 0.0)
return Gdouble;
procedure Set_Double
(Settings : access Gtk_Print_Settings_Record;
Key : String;
Value : Gdouble);
-- Gets/Sets the floating point number represented by
-- the value that is associated with Key, or Def
-- if the value does not represent a floating point number.
--
-- Floating point numbers are parsed with g_ascii_strtod().
function Get_Int
(Settings : access Gtk_Print_Settings_Record;
Key : String;
Def : Gint := 0)
return Gint;
procedure Set_Int
(Settings : access Gtk_Print_Settings_Record;
Key : String;
Value : Gint);
-- Gets/Sets the value of Key. Get_Int interprets the value as
-- an integer, or else returns the default value.
function Get_Length
(Settings : access Gtk_Print_Settings_Record;
Key : String;
Unit : Gtk.Enums.Gtk_Unit)
return Gdouble;
procedure Set_Length
(Settings : access Gtk_Print_Settings_Record;
Key : String;
Value : Gdouble;
Unit : Gtk.Enums.Gtk_Unit);
-- Gets/Sets the value associated with Key, interpreted
-- as a length. The returned value is converted to Units.
--------------------
-- Print Settings --
--------------------
function Get_Collate
(Settings : access Gtk_Print_Settings_Record)
return Boolean;
procedure Set_Collate
(Settings : access Gtk_Print_Settings_Record;
Collate : Boolean);
-- Whether to collate the printed pages
function Get_Default_Source
(Settings : access Gtk_Print_Settings_Record)
return String;
procedure Set_Default_Source
(Settings : access Gtk_Print_Settings_Record;
Default_Source : String);
-- The default source
function Get_Dither
(Settings : access Gtk_Print_Settings_Record)
return String;
procedure Set_Dither
(Settings : access Gtk_Print_Settings_Record;
Dither : String);
-- Gets/Sets the dithering that is used
function Get_Duplex
(Settings : access Gtk_Print_Settings_Record)
return Gtk.Enums.Gtk_Print_Duplex;
procedure Set_Duplex
(Settings : access Gtk_Print_Settings_Record;
Duplex : Gtk.Enums.Gtk_Print_Duplex);
-- Whether to print the output in duplex.
function Get_Finishings
(Settings : access Gtk_Print_Settings_Record)
return String;
procedure Set_Finishings
(Settings : access Gtk_Print_Settings_Record;
Finishings : String);
-- The finishings
function Get_Media_Type
(Settings : access Gtk_Print_Settings_Record)
return String;
procedure Set_Media_Type
(Settings : access Gtk_Print_Settings_Record;
Media_Type : String);
-- Gets/Sets the media type.
-- The set of media types is defined in PWG 5101.1-2002 PWG.
function Get_N_Copies
(Settings : access Gtk_Print_Settings_Record)
return Gint;
procedure Set_N_Copies
(Settings : access Gtk_Print_Settings_Record;
Num_Copies : Gint);
-- Gets/Sets the number of copies to print
function Get_Number_Up
(Settings : access Gtk_Print_Settings_Record)
return Gint;
procedure Set_Number_Up
(Settings : access Gtk_Print_Settings_Record;
Number_Up : Gint);
-- Gets/Sets the number of pages per sheet
function Get_Number_Up_Layout
(Settings : access Gtk_Print_Settings_Record)
return Gtk.Enums.Gtk_Number_Up_Layout;
procedure Set_Number_Up_Layout
(Settings : access Gtk_Print_Settings_Record;
Number_Up_Layout : Gtk.Enums.Gtk_Number_Up_Layout);
-- Gets/Sets layout of page in number-up mode
function Get_Orientation
(Settings : access Gtk_Print_Settings_Record)
return Gtk.Enums.Gtk_Page_Orientation;
procedure Set_Orientation
(Settings : access Gtk_Print_Settings_Record;
Orientation : Gtk.Enums.Gtk_Page_Orientation);
-- Get the orientation.
function Get_Output_Bin
(Settings : access Gtk_Print_Settings_Record)
return String;
procedure Set_Output_Bin
(Settings : access Gtk_Print_Settings_Record;
Output_Bin : String);
-- Gets/Sets the output bin.
type Gtk_Page_Range_Record is record
Range_Start : Gint;
Range_End : Gint;
end record;
pragma Convention (C, Gtk_Page_Range_Record);
type Gtk_Page_Range_Array is
array (Integer range <>) of Gtk_Page_Range_Record;
pragma Convention (C, Gtk_Page_Range_Array);
-- Page range specification(s).
function Get_Page_Ranges
(Settings : access Gtk_Print_Settings_Record)
return Gtk_Page_Range_Array;
procedure Set_Page_Ranges
(Settings : access Gtk_Print_Settings_Record;
Page_Ranges : access Gtk_Page_Range_Array);
-- Gets/Sets an array of Gtk_Page_Range_Records.
function Get_Page_Set
(Settings : access Gtk_Print_Settings_Record)
return Gtk.Enums.Gtk_Page_Set;
procedure Set_Page_Set
(Settings : access Gtk_Print_Settings_Record;
Page_Set : Gtk.Enums.Gtk_Page_Set);
-- Gets/Sets the set of pages to print
function Get_Paper_Height
(Settings : access Gtk_Print_Settings_Record;
Unit : Gtk.Enums.Gtk_Unit)
return Gdouble;
function Get_Paper_Width
(Settings : access Gtk_Print_Settings_Record;
Unit : Gtk.Enums.Gtk_Unit)
return Gdouble;
procedure Set_Paper_Height
(Settings : access Gtk_Print_Settings_Record;
Height : Gdouble;
Unit : Gtk.Enums.Gtk_Unit);
procedure Set_Paper_Width
(Settings : access Gtk_Print_Settings_Record;
Width : Gdouble;
Unit : Gtk.Enums.Gtk_Unit);
-- Get/Set the paper height/width, in units of Unit
function Get_Paper_Size
(Settings : access Gtk_Print_Settings_Record)
return Gtk.Paper_Size.Gtk_Paper_Size;
procedure Set_Paper_Size
(Settings : access Gtk_Print_Settings_Record;
Paper_Size : Gtk.Paper_Size.Gtk_Paper_Size);
-- Sets/Gets the paper size.
function Get_Print_Pages
(Settings : access Gtk_Print_Settings_Record)
return Gtk.Enums.Gtk_Print_Pages;
procedure Set_Print_Pages
(Settings : access Gtk_Print_Settings_Record;
Pages : Gtk.Enums.Gtk_Print_Pages);
-- Gets/Sets which pages to print
function Get_Printer
(Settings : access Gtk_Print_Settings_Record)
return String;
procedure Set_Printer
(Settings : access Gtk_Print_Settings_Record;
Printer : String);
-- Gets/Sets the printer name
function Get_Printer_Lpi
(Settings : access Gtk_Print_Settings_Record)
return Gdouble;
procedure Set_Printer_Lpi
(Settings : access Gtk_Print_Settings_Record;
Lpi : Gdouble);
-- Gets/Sets the resolution in lpi (lines per inch)
function Get_Quality
(Settings : access Gtk_Print_Settings_Record)
return Gtk.Enums.Gtk_Print_Quality;
procedure Set_Quality
(Settings : access Gtk_Print_Settings_Record;
Quality : Gtk.Enums.Gtk_Print_Quality);
-- Gets/Sets the print quality
function Get_Resolution
(Settings : access Gtk_Print_Settings_Record)
return Gint;
procedure Set_Resolution
(Settings : access Gtk_Print_Settings_Record;
Resolution : Gint);
-- Gets/Sets the resolution in dpi.
function Get_Resolution_X
(Settings : access Gtk_Print_Settings_Record)
return Gint;
function Get_Resolution_Y
(Settings : access Gtk_Print_Settings_Record)
return Gint;
procedure Set_Resolution_XY
(Settings : access Gtk_Print_Settings_Record;
Resolution_X : Gint;
Resolution_Y : Gint);
-- Gets/Sets the horizontal/vertical resolution, in dpi.
function Get_Reverse
(Settings : access Gtk_Print_Settings_Record)
return Boolean;
procedure Set_Reverse
(Settings : access Gtk_Print_Settings_Record;
Rev : Boolean);
-- Returns whether to reverse the order of the printed pages
function Get_Scale
(Settings : access Gtk_Print_Settings_Record)
return Gdouble;
procedure Set_Scale
(Settings : access Gtk_Print_Settings_Record;
Scale : Gdouble);
-- Returns the scale in percent
function Get_Use_Color
(Settings : access Gtk_Print_Settings_Record)
return Boolean;
procedure Set_Use_Color
(Settings : access Gtk_Print_Settings_Record;
Use_Color : Boolean);
-- Returns whether to use color
-----------------------------------
-- Saving and Restoring Settings --
-----------------------------------
function Load_File
(Settings : access Gtk_Print_Settings_Record;
File_Name : String;
Error : Glib.Error.GError := null)
return Boolean;
-- Reads the print settings from File_Name. See To_File.
-- Returns True on success.
function Load_Key_File
(Settings : access Gtk_Print_Settings_Record;
Key_File : Glib.Key_File.G_Key_File;
Group_Name : String := "";
Error : Glib.Error.GError := null)
return Boolean;
-- Reads the print settings from the group Group_Name
-- ("Print Settings" by default) in Key_File.
-- Returns True on success
function To_File
(Settings : access Gtk_Print_Settings_Record;
File_Name : String;
Error : Glib.Error.GError := null)
return Boolean;
-- This function saves the print settings from Settings to File_Name.
-- Returns True on success
procedure To_Key_File
(Settings : access Gtk_Print_Settings_Record;
Key_File : Glib.Key_File.G_Key_File;
Group_Name : String := "");
-- This function adds the print settings from Settings to Key_File.
-- if Group_Name is not specified, it defaults to "Print Settings".
private
type Gtk_Print_Settings_Record is
new Glib.Object.GObject_Record with null record;
pragma Import (C, Get_Type, "gtk_print_settings_get_type");
end Gtk.Print_Settings;