------------------------------------------------------------------------------
-- --
-- Copyright (C) 1998-2000 E. Briot, J. Brobecker and A. Charlet --
-- Copyright (C) 2000-2015, 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 --
-- . --
-- --
------------------------------------------------------------------------------
--
-- A Pango.Tabs.Pango_Tab_Array struct contains an array of tab stops. Each
-- tab stop has an alignment and a position.
--
--
pragma Ada_2005;
pragma Warnings (Off, "*is already use-visible*");
with Glib; use Glib;
with Glib.Generic_Properties; use Glib.Generic_Properties;
package Pango.Tabs is
type Pango_Tab_Array is new Glib.C_Boxed with null record;
Null_Pango_Tab_Array : constant Pango_Tab_Array;
function From_Object (Object : System.Address) return Pango_Tab_Array;
function From_Object_Free (B : access Pango_Tab_Array'Class) return Pango_Tab_Array;
pragma Inline (From_Object_Free, From_Object);
type Pango_Tab_Align is (
Pango_Tab_Left);
pragma Convention (C, Pango_Tab_Align);
-- A Pango.Tabs.Pango_Tab_Align specifies where a tab stop appears
-- relative to the text.
----------------------------
-- Enumeration Properties --
----------------------------
package Pango_Tab_Align_Properties is
new Generic_Internal_Discrete_Property (Pango_Tab_Align);
type Property_Pango_Tab_Align is new Pango_Tab_Align_Properties.Property;
------------------
-- Constructors --
------------------
procedure Gdk_New
(Self : out Pango_Tab_Array;
Initial_Size : Gint;
Positions_In_Pixels : Boolean);
-- Creates an array of Initial_Size tab stops. Tab stops are specified in
-- pixel units if Positions_In_Pixels is True, otherwise in Pango units.
-- All stops are initially at position 0.
-- "initial_size": Initial number of tab stops to allocate, can be 0
-- "positions_in_pixels": whether positions are in pixel units
function Pango_Tab_Array_New
(Initial_Size : Gint;
Positions_In_Pixels : Boolean) return Pango_Tab_Array;
-- Creates an array of Initial_Size tab stops. Tab stops are specified in
-- pixel units if Positions_In_Pixels is True, otherwise in Pango units.
-- All stops are initially at position 0.
-- "initial_size": Initial number of tab stops to allocate, can be 0
-- "positions_in_pixels": whether positions are in pixel units
function Get_Type return Glib.GType;
pragma Import (C, Get_Type, "pango_tab_array_get_type");
-------------
-- Methods --
-------------
function Copy (Self : Pango_Tab_Array) return Pango_Tab_Array;
-- Copies a Pango.Tabs.Pango_Tab_Array
procedure Free (Self : Pango_Tab_Array);
-- Frees a tab array and associated resources.
function Get_Positions_In_Pixels (Self : Pango_Tab_Array) return Boolean;
-- Returns True if the tab positions are in pixels, False if they are in
-- Pango units.
function Get_Size (Self : Pango_Tab_Array) return Gint;
-- Gets the number of tab stops in Tab_Array.
procedure Get_Tab
(Self : Pango_Tab_Array;
Tab_Index : Gint;
Alignment : out Pango_Tab_Align;
Location : out Gint);
-- Gets the alignment and position of a tab stop.
-- "tab_index": tab stop index
-- "alignment": location to store alignment, or null
-- "location": location to store tab position, or null
procedure Set_Tab
(Self : Pango_Tab_Array;
Tab_Index : Gint;
Alignment : Pango_Tab_Align;
Location : Gint);
-- Sets the alignment and location of a tab stop. Alignment must always be
-- PANGO_TAB_LEFT in the current implementation.
-- "tab_index": the index of a tab stop
-- "alignment": tab alignment
-- "location": tab location in Pango units
procedure Resize (Self : Pango_Tab_Array; New_Size : Gint);
-- Resizes a tab array. You must subsequently initialize any tabs that
-- were added as a result of growing the array.
-- "new_size": new size of the array
private
Null_Pango_Tab_Array : constant Pango_Tab_Array := (Glib.C_Boxed with null record);
end Pango.Tabs;