----------------------------------------------------------------------- -- 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. -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- ----------------------------------------------------------------------- -- -- Gtk_Paper_Size handles paper sizes. It uses the standard called -- "PWG 5101.1-2002 PWG: Standard for Media Standardized Names" to name the -- paper sizes (and to get the data for the page sizes). In addition to -- standard paper sizes, Gtk_Paper_Size allows to construct custom paper -- sizes with arbitrary dimensions. -- -- The Gtk_Paper_Size object stores not only the dimensions (width and height) -- of a paper size and its name, it also provides default print margins. -- -- 2.16.6 with Ada.Unchecked_Conversion; with Glib.Glist; with Glib.Key_File; with Gtk.Enums; package Gtk.Paper_Size is type Gtk_Paper_Size is new Glib.C_Proxy; function Convert is new Ada.Unchecked_Conversion (Gtk_Paper_Size, System.Address); function Convert is new Ada.Unchecked_Conversion (System.Address, Gtk_Paper_Size); package Gtk_Paper_Size_Glist is new Glib.Glist.Generic_List (Gtk_Paper_Size); function Get_Type return GType; procedure Gtk_New (Widget : out Gtk_Paper_Size; Name : String); -- Creates a new Gtk_Paper_Size object by parsing a PWG 5101.1-2002 -- paper name. -- -- If Name is "", the default paper size is returned; see Get_Default. procedure Gtk_New_Custom (Widget : out Gtk_Paper_Size; Name : String; Display_Name : String; Width : Gdouble; Height : Gdouble; Unit : Gtk.Enums.Gtk_Unit); -- Creates a new Gtk_Paper_Size object with the given parameters: -- -- Name: the paper name -- Display_Name: the human-readable name -- Width: the paper width, in units of Unit -- Height: the paper height, in units of Unit -- Unit: the unit for Width and Height procedure Gtk_New_From_Key_File (Widget : out Gtk_Paper_Size; Key_File : Glib.Key_File.G_Key_File; Group_Name : String := ""); -- Reads a paper size from the group Group_Name in the key file -- Key_File. Will set Widget to null in case of error. procedure Gtk_New_From_Ppd (Widget : out Gtk_Paper_Size; Ppd_Name : String; Ppd_Display_Name : String := ""; Width : Gdouble; Height : Gdouble); -- Creates a new Gtk_Paper_Size object by using PPD information: -- -- Ppd_Name: a PPD paper name -- Ppd_Display_Name: the corresponding human-readable name -- Width: the paper width, in points -- Height: the paper height in points -- -- If Ppd_Name is not a recognized PPD paper name, -- Ppd_Display_Name, Width and Height are used to -- construct a custom Gtk_Paper_Size object. procedure To_Key_File (Size : Gtk_Paper_Size; Key_File : Glib.Key_File.G_Key_File; Group_Name : String := ""); -- This function adds the paper size from Size to Key_File, -- within the group Group_Name. function Copy (Other : Gtk_Paper_Size) return Gtk_Paper_Size; -- Copies an existing Gtk_Paper_Size. procedure Free (Size : Gtk_Paper_Size); -- Free the given Gtk_Paper_Size object. function Get_Default return String; -- Returns the name of the default paper size, which -- depends on the current locale. function Get_Name (Size : Gtk_Paper_Size) return String; -- Gets the name of the Gtk_Paper_Size. function Get_Display_Name (Size : Gtk_Paper_Size) return String; -- Gets the human-readable name of the Gtk_Paper_Size. function Get_Ppd_Name (Size : Gtk_Paper_Size) return String; -- Gets the PPD name of the Gtk_Paper_Size. function Is_Custom (Size : Gtk_Paper_Size) return Boolean; -- Returns True if Size is not a standard paper size. ----------- -- Sizes -- ----------- function Get_Width (Size : Gtk_Paper_Size; Unit : Gtk.Enums.Gtk_Unit) return Gdouble; function Get_Height (Size : Gtk_Paper_Size; Unit : Gtk.Enums.Gtk_Unit) return Gdouble; -- Gets the paper width/height of the Gtk_Paper_Size, in units of Unit. procedure Set_Size (Size : Gtk_Paper_Size; Width : Gdouble; Height : Gdouble; Unit : Gtk.Enums.Gtk_Unit); -- Changes the dimensions of a Size to Width x Height. function Get_Paper_Sizes (Include_Custom : Boolean) return Gtk_Paper_Size_Glist.Glist; -- Creates a list of known paper sizes. The caller must specify whether -- to include custom paper sizes as defined in the page setup dialog function "=" (Size1, Size2 : Gtk_Paper_Size) return Boolean; -- Compares two Gtk_Paper_Size objects. ------------- -- Margins -- ------------- function Get_Default_Bottom_Margin (Size : Gtk_Paper_Size; Unit : Gtk.Enums.Gtk_Unit) return Gdouble; function Get_Default_Left_Margin (Size : Gtk_Paper_Size; Unit : Gtk.Enums.Gtk_Unit) return Gdouble; function Get_Default_Right_Margin (Size : Gtk_Paper_Size; Unit : Gtk.Enums.Gtk_Unit) return Gdouble; function Get_Default_Top_Margin (Size : Gtk_Paper_Size; Unit : Gtk.Enums.Gtk_Unit) return Gdouble; -- Gets the default bottom/left/right/top margin for the Gtk_Paper_Size, -- using the units specified by Unit. -- Common names, from PWG 5101.1-2002 PWG: Standard for Media Standardized -- Names Gtk_Paper_Name_A3 : constant String := "iso_a3"; Gtk_Paper_Name_A4 : constant String := "iso_a4"; Gtk_Paper_Name_A5 : constant String := "iso_a5"; Gtk_Paper_Name_B5 : constant String := "iso_b5"; Gtk_Paper_Name_Letter : constant String := "na_letter"; Gtk_Paper_Name_Executive : constant String := "na_executive"; Gtk_Paper_Name_Legal : constant String := "na_legal"; private type Gtk_Paper_Size_Record is new Glib.Object.GObject_Record with null record; pragma Import (C, Get_Type, "gtk_paper_size_get_type"); pragma Import (C, Copy, "gtk_paper_size_copy"); pragma Import (C, Free, "gtk_paper_size_free"); pragma Import (C, Get_Default_Bottom_Margin, "gtk_paper_size_get_default_bottom_margin"); pragma Import (C, Get_Default_Left_Margin, "gtk_paper_size_get_default_left_margin"); pragma Import (C, Get_Default_Right_Margin, "gtk_paper_size_get_default_right_margin"); pragma Import (C, Get_Default_Top_Margin, "gtk_paper_size_get_default_top_margin"); pragma Import (C, Get_Height, "gtk_paper_size_get_height"); pragma Import (C, Get_Width, "gtk_paper_size_get_width"); pragma Import (C, Set_Size, "gtk_paper_size_set_size"); end Gtk.Paper_Size;