------------------------------------------------------------------------------
-- --
-- Copyright (C) 1998-2000 E. Briot, J. Brobecker and A. Charlet --
-- Copyright (C) 2000-2014, AdaCore --
-- --
-- This library is free software; you can redistribute it and/or modify it --
-- under terms of the GNU General Public License as published by the Free --
-- Software Foundation; either version 3, 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 MERCHAN- --
-- TABILITY or FITNESS FOR A PARTICULAR PURPOSE. --
-- --
-- As a special exception under Section 7 of GPL version 3, you are granted --
-- additional permissions described in the GCC Runtime Library Exception, --
-- version 3.1, as published by the Free Software Foundation. --
-- --
-- You should have received a copy of the GNU General Public License and --
-- a copy of the GCC Runtime Library Exception along with this program; --
-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see --
-- <http://www.gnu.org/licenses/>. --
-- --
------------------------------------------------------------------------------
pragma Ada_2005;
pragma Warnings (Off, "*is already use-visible*");
with Glib; use Glib;
with Glib.Object; use Glib.Object;
with Glib.Types; use Glib.Types;
with Gtk.Page_Setup; use Gtk.Page_Setup;
with Gtk.Print_Context; use Gtk.Print_Context;
package Gtk.Print_Operation_Preview is
type Gtk_Print_Operation_Preview is new Glib.Types.GType_Interface;
Null_Gtk_Print_Operation_Preview : constant Gtk_Print_Operation_Preview;
------------------
-- Constructors --
------------------
function Get_Type return Glib.GType;
pragma Import (C, Get_Type, "gtk_print_operation_preview_get_type");
-------------
-- Methods --
-------------
procedure End_Preview (Preview : Gtk_Print_Operation_Preview);
pragma Import (C, End_Preview, "gtk_print_operation_preview_end_preview");
-- Ends a preview.
-- This function must be called to finish a custom print preview.
-- Since: gtk+ 2.10
function Is_Selected
(Preview : Gtk_Print_Operation_Preview;
Page_Nr : Gint) return Boolean;
-- Returns whether the given page is included in the set of pages that
-- have been selected for printing.
-- Since: gtk+ 2.10
-- "page_nr": a page number
procedure Render_Page
(Preview : Gtk_Print_Operation_Preview;
Page_Nr : Gint);
pragma Import (C, Render_Page, "gtk_print_operation_preview_render_page");
-- Renders a page to the preview, using the print context that was passed
-- to the Gtk.Print_Operation.Gtk_Print_Operation::preview handler together
-- with Preview.
-- A custom iprint preview should use this function in its ::expose
-- handler to render the currently selected page.
-- Note that this function requires a suitable cairo context to be
-- associated with the print context.
-- Since: gtk+ 2.10
-- "page_nr": the page to render
-------------
-- Signals --
-------------
type Cb_Gtk_Print_Operation_Preview_Gtk_Print_Context_Gtk_Page_Setup_Void is not null access procedure
(Self : Gtk_Print_Operation_Preview;
Context : not null access Gtk.Print_Context.Gtk_Print_Context_Record'Class;
Page_Setup : not null access Gtk.Page_Setup.Gtk_Page_Setup_Record'Class);
type Cb_GObject_Gtk_Print_Context_Gtk_Page_Setup_Void is not null access procedure
(Self : access Glib.Object.GObject_Record'Class;
Context : not null access Gtk.Print_Context.Gtk_Print_Context_Record'Class;
Page_Setup : not null access Gtk.Page_Setup.Gtk_Page_Setup_Record'Class);
Signal_Got_Page_Size : constant Glib.Signal_Name := "got-page-size";
procedure On_Got_Page_Size
(Self : Gtk_Print_Operation_Preview;
Call : Cb_Gtk_Print_Operation_Preview_Gtk_Print_Context_Gtk_Page_Setup_Void;
After : Boolean := False);
procedure On_Got_Page_Size
(Self : Gtk_Print_Operation_Preview;
Call : Cb_GObject_Gtk_Print_Context_Gtk_Page_Setup_Void;
Slot : not null access Glib.Object.GObject_Record'Class;
After : Boolean := False);
-- The ::got-page-size signal is emitted once for each page that gets
-- rendered to the preview.
--
-- A handler for this signal should update the Context according to
-- Page_Setup and set up a suitable cairo context, using
-- Gtk.Print_Context.Set_Cairo_Context.
--
-- Callback parameters:
-- -- "context": the current Gtk.Print_Context.Gtk_Print_Context
-- -- "page_setup": the Gtk.Page_Setup.Gtk_Page_Setup for the current page
type Cb_Gtk_Print_Operation_Preview_Gtk_Print_Context_Void is not null access procedure
(Self : Gtk_Print_Operation_Preview;
Context : not null access Gtk.Print_Context.Gtk_Print_Context_Record'Class);
type Cb_GObject_Gtk_Print_Context_Void is not null access procedure
(Self : access Glib.Object.GObject_Record'Class;
Context : not null access Gtk.Print_Context.Gtk_Print_Context_Record'Class);
Signal_Ready : constant Glib.Signal_Name := "ready";
procedure On_Ready
(Self : Gtk_Print_Operation_Preview;
Call : Cb_Gtk_Print_Operation_Preview_Gtk_Print_Context_Void;
After : Boolean := False);
procedure On_Ready
(Self : Gtk_Print_Operation_Preview;
Call : Cb_GObject_Gtk_Print_Context_Void;
Slot : not null access Glib.Object.GObject_Record'Class;
After : Boolean := False);
-- The ::ready signal gets emitted once per preview operation, before the
-- first page is rendered.
--
-- A handler for this signal can be used for setup tasks.
----------------
-- Interfaces --
----------------
-- This class implements several interfaces. See Glib.Types
--
-- - "Gtk_Print_Operation_Preview"
function "+" (W : Gtk_Print_Operation_Preview) return Gtk_Print_Operation_Preview;
pragma Inline ("+");
private
Null_Gtk_Print_Operation_Preview : constant Gtk_Print_Operation_Preview :=
Gtk_Print_Operation_Preview (Glib.Types.Null_Interface);
end Gtk.Print_Operation_Preview;