-----------------------------------------------------------------------
-- 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. --
-- --
-- --
-- --
-- --
-- --
-- --
-- --
-----------------------------------------------------------------------
--
-- Utilities for manipulating font faces.
--
--
-- 1.8.8
-- Cairo
with Interfaces.C.Strings;
package Cairo.Scaled_Font is
function Reference
(Scaled_Font : Cairo_Scaled_Font)
return Cairo_Scaled_Font;
-- Scaled_Font: a Cairo.Scaled_Font.T, (may be null in which case
-- this function does nothing)
--
-- Increases the reference count on scaled_font by one. This prevents
-- scaled_font from being destroyed until a matching call to
-- Cairo.Scaled_Font.Destroy is made.
--
-- The number of references to a Cairo_Scaled_Font can be get using
-- Cairo.Scaled_Font.Get_Reference_Count.
--
-- Returns: the referenced Cairo_Scaled_Font
procedure Destroy (Scaled_Font : Cairo_Scaled_Font);
-- Scaled_Font: a Cairo_Scaled_Font
--
-- Decreases the reference count on font by one. If the result
-- is zero, then font and all associated resources are freed.
-- See Cairo.Scaled_Font.Reference.
function Get_Reference_Count
(Scaled_Font : Cairo_Scaled_Font)
return Guint;
-- Scaled_Font: a Cairo_Scaled_Font
--
-- Returns the current reference count of scaled_font.
--
-- Return value: the current reference count of scaled_font. If the
-- object is a nil object, 0 will be returned.
--
-- Since: 1.4
function Status (Scaled_Font : Cairo_Scaled_Font) return Cairo_Status;
-- Scaled_Font: a Cairo_Scaled_Font
--
-- Checks whether an error has previously occurred for this
-- scaled_font.
--
-- Return value: Cairo_Status_Success or another error such as
-- Cairo_Status_No_Memory.
function Get_Type
(Scaled_Font : Cairo_Scaled_Font)
return Cairo_Font_Type;
-- Scaled_Font: a Cairo_Scaled_Font
--
-- This function returns the type of the backend used to create
-- a scaled font. See Cairo_Font_Type for available types.
--
-- Return value: The type of scaled_font.
--
-- Since: 1.2
procedure Extents
(Scaled_Font : Cairo_Scaled_Font;
Extents : access Cairo_Font_Extents);
-- Scaled_Font: a Cairo_Scaled_Font
-- Extents: a Cairo_Font_Extents which to store the retrieved Extents.
--
-- Gets the metrics for a Cairo_Scaled_Font.
procedure Text_Extents
(Scaled_Font : Cairo_Scaled_Font;
Utf8 : Interfaces.C.Strings.chars_ptr;
Extents : Cairo_Text_Extents);
-- Scaled_Font: a Cairo_Scaled_Font
-- Utf8: a NUL-terminated string of text, encoded in UTF-8
-- Extents: a Cairo_Text_Extents which to store the retrieved Extents.
--
-- Gets the extents for a string of text. The extents describe a
-- user-space rectangle that encloses the "inked" portion of the text
-- drawn at the origin (0,0) (as it would be drawn by Cairo_Show_Text
-- if the cairo graphics state were set to the same font_face,
-- font_matrix, ctm, and font_options as scaled_font). Additionally,
-- the x_advance and y_advance values indicate the amount by which the
-- current point would be advanced by Cairo_Show_Text.
--
-- Note that whitespace characters do not directly contribute to the
-- size of the rectangle (extents.width and extents.height). They do
-- contribute indirectly by changing the position of non-whitespace
-- characters. In particular, trailing whitespace characters are
-- likely to not affect the size of the rectangle, though they will
-- affect the x_advance and y_advance values.
--
-- Since: 1.2
procedure Glyph_Extents
(Scaled_Font : Cairo_Scaled_Font;
Glyphs : access Cairo_Glyph;
Num_Glyphs : Gint;
Extents : Cairo_Text_Extents);
-- Scaled_Font: a Cairo_Scaled_Font
-- Glyphs: an array of glyph IDs with X and Y offsets.
-- Num_Glyphs: the number of glyphs in the glyphs array
-- Extents: a Cairo_Text_Extents which to store the retrieved Extents.
--
-- Gets the extents for an array of glyphs. The extents describe a
-- user-space rectangle that encloses the "inked" portion of the
-- glyphs, (as they would be drawn by Cairo.Show_Glyphs if the cairo
-- graphics state were set to the same Font_Face, Font_Matrix, Ctm,
-- and Font_Options as Scaled_Font). Additionally, the x_advance and
-- Y_Advance values indicate the amount by which the current point
-- would be advanced by Cairo.Show_Glyphs.
--
-- Note that whitespace glyphs do not contribute to the size of the
-- rectangle (extents.width and extents.height).
function Get_Font_Face
(Scaled_Font : Cairo_Scaled_Font)
return Cairo_Font_Face;
-- Scaled_Font: a Cairo_Scaled_Font
--
-- Gets the font face that this scaled font was created for.
--
-- Return value: The Cairo_Font_Face with which Scaled_Font was
-- created.
--
-- Since: 1.2
procedure Get_Font_Matrix
(Scaled_Font : Cairo_Scaled_Font;
Font_Matrix : access Cairo_Matrix);
-- Scaled_Font: a Cairo_Scaled_Font
-- Font_Matrix: return value for the matrix
--
-- Stores the font matrix with which Scaled_Font was created into
-- matrix.
--
-- Since: 1.2
procedure Get_Ctm
(Scaled_Font : Cairo_Scaled_Font;
Ctm : access Cairo_Matrix);
-- Scaled_Font: a Cairo_Scaled_Font
-- Ctm: return value for the CTM
--
-- Stores the CTM with which Scaled_Font was created into Ctm.
--
-- Since: 1.2
procedure Get_Scale_Matrix
(Scaled_Font : Cairo_Scaled_Font;
Scale_Matrix : access Cairo_Matrix);
-- Scaled_Font: a Cairo_Scaled_Font
-- Scale_Matrix: return value for the matrix
--
-- Stores the scale matrix of scaled_font into matrix.
-- The scale matrix is product of the font matrix and the ctm
-- associated with the scaled font, and hence is the matrix mapping from
-- font space to device space.
--
-- Since: 1.8
procedure Get_Font_Options
(Scaled_Font : Cairo_Scaled_Font;
Options : Cairo_Font_Options);
-- Scaled_Font: a Cairo_Scaled_Font
-- Options: return value for the font Options
--
-- Stores the font options with which scaled_font was created into
-- options.
--
-- Since: 1.2
private
pragma Import (C, Reference, "cairo_scaled_font_reference");
pragma Import (C, Destroy, "cairo_scaled_font_destroy");
pragma Import
(C,
Get_Reference_Count,
"cairo_scaled_font_get_reference_count");
pragma Import (C, Status, "cairo_scaled_font_status");
pragma Import (C, Get_Type, "cairo_scaled_font_get_type");
pragma Import (C, Extents, "cairo_scaled_font_extents");
pragma Import (C, Text_Extents, "cairo_scaled_font_text_extents");
pragma Import (C, Glyph_Extents, "cairo_scaled_font_glyph_extents");
pragma Import (C, Get_Font_Face, "cairo_scaled_font_get_font_face");
pragma Import (C, Get_Font_Matrix, "cairo_scaled_font_get_font_matrix");
pragma Import (C, Get_Ctm, "cairo_scaled_font_get_ctm");
pragma Import (C, Get_Scale_Matrix, "cairo_scaled_font_get_scale_matrix");
pragma Import (C, Get_Font_Options, "cairo_scaled_font_get_font_options");
-- Not bound :
-- pragma Import (C, Text_To_Glyphs, "cairo_scaled_font_text_to_glyphs");
-- pragma Import (C, Create, "cairo_scaled_font_create");
-- pragma Import (C, Get_User_Data, "cairo_scaled_font_get_user_data");
-- pragma Import (C, Set_User_Data, "cairo_scaled_font_set_user_data");
end Cairo.Scaled_Font;