-----------------------------------------------------------------------
-- 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 set of utilities to handle the Cairo_Font_Face type, and the Cairo
-- 'toy' text API.
--
--
-- 1.8.8
-- Cairo
with System;
with Interfaces.C.Strings;
package Cairo.Font_Face is
function Reference (Font_Face : Cairo_Font_Face) return Cairo_Font_Face;
-- Font_Face: a Cairo_Font_Face, (may be Null_Font_Face in which case this
-- function does nothing).
--
-- Increases the reference count on Font_Face by one. This prevents
-- Font_Face from being destroyed until a matching call to
-- Cairo.Font_Face.Destroy is made.
--
-- The number of references to a Cairo_Font_Face can be get using
-- Cairo.Font_Face.Get_Reference_Count.
--
-- Return value: the referenced Cairo_Font_Face.
procedure Destroy (Font_Face : Cairo_Font_Face);
-- Font_Face: a Cairo_Font_Face
--
-- Decreases the reference count on Font_Face by one. If the result
-- is zero, then Font_Face and all associated resources are freed.
-- See Cairo.Font_Face.Reference.
function Get_Reference_Count (Font_Face : Cairo_Font_Face) return Guint;
-- Font_Face: a Cairo_Font_Face
--
-- Returns the current reference count of Font_Face.
--
-- Return value: the current reference count of Font_Face. If the
-- object is a nil object, 0 will be returned.
--
-- Since: 1.4
function Status (Font_Face : Cairo_Font_Face) return Cairo_Status;
-- Font_Face: a Cairo_Font_Face
--
-- Checks whether an error has previously occurred for this
-- font face
--
-- Return value: Cairo_Status_Success or another error such as
-- Cairo_Status_No_Memory.
function Get_Type (Font_Face : Cairo_Font_Face) return Cairo_Font_Type;
-- Font_Face: a font face
--
-- This function returns the type of the backend used to create
-- a font face. See Cairo_Font_Type for available types.
--
-- Return value: The type of Font_Face.
--
-- Since: 1.2
function Get_User_Data
(Font_Face : Cairo_Font_Face;
Key : access Cairo_User_Data_Key) return System.Address;
-- Font_Face: a Cairo_Font_Face
-- Key: the address of the Cairo_User_Data_Key the user data was
-- attached to
--
-- Return user data previously attached to Font_Face using the specified
-- key. If no user data has been attached with the given key this
-- function returns System.Null_Address.
--
-- Return value: the user data previously attached or System.Null_Address.
function Set_User_Data
(Font_Face : Cairo_Font_Face;
Key : access Cairo_User_Data_Key;
User_Data : System.Address;
Destroy : Cairo_Destroy_Func) return Cairo_Status;
-- Font_Face: a Cairo_Font_Face
-- Key: the address of a Cairo_User_Data_Key to attach the user data to
-- User_Data: the user data to attach to the font face
-- Destroy: a Cairo_Destroy_Func which will be called when the
-- font face is destroyed or when new user data is attached using the
-- same key.
--
-- Attach user data to Font_Face. To remove user data from a font face,
-- call this function with the key that was used to set it and
-- System.Null_Address for data.
--
-- Return value: Cairo_Status_Success or Cairo_Status_No_Memory if a
-- slot could not be allocated for the user data.
function Toy_Font_Face_Create
(Family : Interfaces.C.Strings.chars_ptr;
Slant : Cairo_Font_Slant;
Weight : Cairo_Font_Weight)
return Cairo_Font_Face;
-- Family: a font Family name, encoded in UTF-8
-- Slant: the Slant for the font
-- Weight: the Weight for the font
--
-- Creates a font face from a triplet of family, slant, and weight.
-- These font faces are used in implementation of the the Cairo_Context
-- "toy" font API.
--
-- If Family is the zero-length string "", the platform-specific default
-- family is assumed. The default family then can be queried using
-- Toy_Font_Face_Get_Family.
--
-- The Cairo_Select_Font_Face function uses this to create font faces.
-- See that function for limitations of toy font faces.
--
-- Return value: a newly created Cairo_Font_Face. Free with
-- Cairo.Font_Face.Destroy when you are done using it.
--
-- Since: 1.8
function Toy_Font_Face_Get_Family
(Font_Face : Cairo_Font_Face)
return Interfaces.C.Strings.chars_ptr;
-- Font_Face: A toy font face
--
-- Gets the familly name of a toy font.
--
-- Return value: The family name. This string is owned by the font face
-- and remains valid as long as the font face is alive (referenced).
--
-- Since: 1.8
function Toy_Font_Face_Get_Slant
(Font_Face : Cairo_Font_Face)
return Cairo_Font_Slant;
-- Font_Face: A toy font face
--
-- Gets the slant a toy font.
--
-- Return value: The slant value
--
-- Since: 1.8
function Toy_Font_Face_Get_Weight
(Font_Face : Cairo_Font_Face)
return Cairo_Font_Weight;
-- Font_Face: A toy font face
--
-- Gets the weight a toy font.
--
-- Return value: The weight value
--
-- Since: 1.8
private
pragma Import (C, Reference, "cairo_font_face_reference");
pragma Import (C, Destroy, "cairo_font_face_destroy");
pragma Import
(C,
Get_Reference_Count,
"cairo_font_face_get_reference_count");
pragma Import (C, Status, "cairo_font_face_status");
pragma Import (C, Get_Type, "cairo_font_face_get_type");
pragma Import (C, Get_User_Data, "cairo_font_face_get_user_data");
pragma Import (C, Set_User_Data, "cairo_font_face_set_user_data");
pragma Import
(C,
Toy_Font_Face_Create,
"cairo_toy_font_face_create");
pragma Import
(C,
Toy_Font_Face_Get_Family,
"cairo_toy_font_face_get_family");
pragma Import
(C,
Toy_Font_Face_Get_Slant,
"cairo_toy_font_face_get_slant");
pragma Import
(C,
Toy_Font_Face_Get_Weight,
"cairo_toy_font_face_get_weight");
end Cairo.Font_Face;