-----------------------------------------------------------------------
-- GtkAda - Ada95 binding for Gtk+/Gnome --
-- --
-- Copyright (C) 2001-2008, 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 table is a collection of tags where you can Add, Remove, Lookup
-- or traverse (Foreach) a tag.
--
-- 2.8.17
-- Multiline Text Editor
with Gtk.Text_Tag;
package Gtk.Text_Tag_Table is
type Gtk_Text_Tag_Table_Record is new GObject_Record with private;
type Gtk_Text_Tag_Table is access all Gtk_Text_Tag_Table_Record'Class;
procedure Gtk_New (Table : out Gtk_Text_Tag_Table);
-- Create a new Text_Tag_Table.
procedure Initialize (Table : access Gtk_Text_Tag_Table_Record'Class);
-- Internal initialization function.
-- See the section "Creating your own widgets" in the documentation.
function Get_Type return Glib.GType;
-- Return the internal value associated with a Gtk_Text_Tag_Table.
procedure Add
(Table : access Gtk_Text_Tag_Table_Record;
Tag : access Gtk.Text_Tag.Gtk_Text_Tag_Record'Class);
-- Add a tag to the table.
-- The tag is assigned the highest priority in the table.
-- You must Unref the Tag on exit
procedure Remove
(Table : access Gtk_Text_Tag_Table_Record;
Tag : access Gtk.Text_Tag.Gtk_Text_Tag_Record'Class);
-- Remove a tag from the table.
-- This will remove the table's reference to the tag, so be careful - the
-- tag will end up destroyed if you don't have a reference to it.
function Lookup
(Table : access Gtk_Text_Tag_Table_Record;
Name : String) return Gtk.Text_Tag.Gtk_Text_Tag;
-- Look up a named tag.
-- Return the tag or null if none by that name is in the table.
function Get_Size (Table : access Gtk_Text_Tag_Table_Record) return Gint;
-- Return the size of the table (number of tags).
generic
type Data_Type (<>) is private;
package Iterator is
type Data_Type_Access is access all Data_Type;
type Gtk_Text_Tag_Table_Proc is access
procedure (Tag : access Gtk.Text_Tag.Gtk_Text_Tag_Record'Class;
Data : Data_Type_Access);
procedure Foreach
(Table : access Gtk_Text_Tag_Table_Record;
Proc : Gtk_Text_Tag_Table_Proc;
Data : Data_Type_Access);
-- Call Proc on each tag in Table, with user data Data.
private
--
type Foreach_Proc_Record is record
Proc : Gtk_Text_Tag_Table_Proc;
Data : Data_Type_Access;
end record;
type Foreach_Proc_Record_Access is
access all Foreach_Proc_Record;
procedure C_Gtk_Text_Tag_Table_Foreach_Proc
(C_Tag : System.Address;
C_Data : Foreach_Proc_Record_Access);
pragma Convention (C, C_Gtk_Text_Tag_Table_Foreach_Proc);
--
end Iterator;
-------------
-- Signals --
-------------
--
-- The following new signals are defined for this widget:
--
-- - "tag_changed"
-- procedure Handler
-- (Widget : access Gtk_Text_Tag_Table_Record'Class;
-- Tag : access Gtk.Text_Tag.Gtk_Text_Tag_Record'Class;
-- Size_Changed : Boolean);
--
-- - "tag_added"
-- procedure Handler
-- (Widget : access Gtk_Text_Tag_Table_Record'Class;
-- Tag : access Gtk.Text_Tag.Gtk_Text_Tag_Record'Class);
--
-- - "tag_removed"
-- procedure Handler
-- (Widget : access Gtk_Text_Tag_Table_Record'Class;
-- Tag : access Gtk.Text_Tag.Gtk_Text_Tag_Record'Class);
--
--
Signal_Tag_Added : constant Glib.Signal_Name := "tag_added";
Signal_Tag_Changed : constant Glib.Signal_Name := "tag_changed";
Signal_Tag_Removed : constant Glib.Signal_Name := "tag_removed";
private
type Gtk_Text_Tag_Table_Record is new GObject_Record with null record;
pragma Import (C, Get_Type, "gtk_text_tag_table_get_type");
end Gtk.Text_Tag_Table;