Glib.Glist.Generic_List

Entities

Generic formal parameters

Simple Types

Constants

Subprograms

Description

Alloc

procedure Alloc (List : out Glist)

Allocate a new item in the list. This item isn't associated with any data. You probably don't have to use this subprogram, since Append, Insert, Prepend, etc. already handle the allocation for you and give a new value to the item.

Parameters
List

Append

procedure Append (List : in out Glist; Data : Gpointer)

Add a new item at the end of the list, and stores the new list directly back in List. The complexity of this operation is O(n)

Parameters
List
Data

Concat

function Concat (List1 : Glist; List2 : Glist) return Glist

Concatenate two lists, and return the result. List2 is added at the end of List1. The complexity is O(n1) (depends on the size of List1).

Parameters
List1
List2
Return Value

Convert

function Convert (P : Gpointer) return System.Address
Parameters
P
S
Return Value

Convert

function Convert (P : Gpointer) return System.Address
Parameters
P
S
Return Value

Find

function Find (List : Glist; Data : Gpointer) return Glist

Find a value in the list, and return the first item that contains it. Note that this function will not work if the function Convert does not return the same value for two identical values.

Parameters
List
Data
Return Value

First

function First (List : Glist) return Glist

Return the first item in the list. Note that if List is in fact an item of a larger list, the return value is the first item in the larger list itself.

Parameters
List
Return Value

Free

procedure Free (List : in out Glist)

Free the list (but does not free the data in each of its elements). This only frees the memory associated with the list itself. You should only use this function on the lists that you have created yourself, not on the list that are returned by some functions in GtkAda (like Gtk.Clist.Get_Selection). These functions return directly the list managed by the underlying C widget, and you should never free the result yourself.

Note also that the memory might not be actually freed. For efficiency reasons, GtkAda will keep the memory allocated and try to reuse it as much as possible.

Parameters
List

Get_Data

function Get_Data (List : Glist) return Gpointer

Return the value pointed to by List. The System.Address container in the C list is converted to a Gpointer through a call to Convert.

Parameters
List
Return Value

Get_Data_Address

function Get_Data_Address (List : Glist) return System.Address

Return directly the System.Address contained in the C list. This is used mainly internally in GtkAda to implement String lists, and you should not have to use this subprogram yourself.

Parameters
List
Return Value

Get_Gpointer

function Get_Gpointer (List : Glist) return Gpointer

Sometimes, the data is not stored in the "data" field of each cell, but rather at each cell. In such cases, to retrieve the address of the data, we need to return the address of the cell itself, insted of the address pointed to by data.

Ex: the Gtk_Ctree row_list. </doc_ignore>

Parameters
List
Return Value

Get_Object

function Get_Object (Obj : Glist) return System.Address

Returns the C object contained in Obj.

Parameters
Obj
Return Value

Glist

type Glist is private;

This type is both a list and an item in the list. Each item points to its successor.

Gpointer

type Gpointer (<>) is private;

Index

function Index (List : Glist; Data : Gpointer) return Gint

Return the index of the first element in List that contains Data. Note that this function is irrelevant if Convert does not return the same value for two identical data.

Parameters
List
Data
Return Value

Insert

procedure Insert
  (List     : in out Glist;
   Data     : Gpointer;
   Position : Gint)

Insert an item in the middle of a list. If Position is 0, the item is added at the beginning of the list, if it is negative the item is added at the end. The complexity is O(Position).

Parameters
List
Data
Position

Is_Created

function Is_Created (List : Glist) return Boolean

Return True if there is a C widget associated with List.

Parameters
List
Return Value

Last

function Last (List : Glist) return Glist

Return the last element in the list.

Parameters
List
Return Value

Length

function Length (List : Glist) return Guint

Return the number of elements in the list. The last item's index is Length - 1.

Parameters
List
Return Value

List_Reverse

procedure List_Reverse (List : in out Glist)

Reverse the order of the list (the last item becomes the first, etc.)

Parameters
List

Next

function Next (List : Glist) return Glist

Returns the Item following List in the global list that contains both. If there is no such item, return Null_List. This is how you stop iterating over a list.

Parameters
List
Return Value

Nth

function Nth (List : Glist; N : Guint) return Glist

Give the nth item following LIST in the global list that contains both. If there is no such item, return Null_List.

Parameters
List
N
Return Value

Nth_Data

function Nth_Data (List : Glist; N : Guint) return Gpointer

Return the Data contained in the N-th item of List. The result is undefined if there is no such item in the list. The actual result in that case is the result of Convert (System.Null_Address); which might not mean anything.

Parameters
List
N
Return Value

Null_List

Null_List : constant Glist;

Position

function Position (List : Glist; Link : Glist) return Gint

Return the position of Link in the List. If Link is not contained in the list, -1 is returned.

Parameters
List
Link
Return Value

Prepend

procedure Prepend (List : in out Glist; Data : Gpointer)

Add an item at the beginning of the list. This operation always succeed.

Parameters
List
Data

Prev

function Prev (List : Glist) return Glist

Return the item before List in the global list that contains both. Return Null_List if there is no such item.

Parameters
List
Return Value

Remove

procedure Remove (List : in out Glist; Data : Gpointer)

Remove the first item in List that contains Data. Note that this operation can succeed only if Convert always return the same address for a given value.

Parameters
List
Data

Remove_Link

procedure Remove_Link (List : in out Glist; Link : Glist)

Remove Link from the list to which it belongs. If that list is not List, no error is returned, but Link is removed anyway.

Parameters
List
Link

Set_Object

procedure Set_Object (Obj : in out Glist; Value : System.Address)

Modifies the C object contained in Obj.

Parameters
Obj
Value