[Contents] [Back] [Prev] [Up] [Next] [Forward]

# Package Gtkada.Types

This package provides GtkAda specific types and their associated functions.

- Gtkada.Types Types
- Gtkada.Types Subprograms

## Types

    subtype Chars_Ptr is Interfaces.C.Strings.chars_ptr;

    subtype Chars_Ptr_Array is Interfaces.C.Strings.chars_ptr_array;

## Subprograms

    procedure g_free
      (Mem                :        Chars_Ptr);

| Free a C string returned from Gtk.

    function Null_Array            return Chars_Ptr_Array;

| Return a null array.

### Handling of arrays of Strings

The following functions provide a very convenient way to create
C arrays of null terminated strings in Ada.

You can either create such a String on the fly, or declare a variable:

Signals : Chars_Ptr_Array := "clicked" + "missed" + "new signal";

which corresponds to the C declaration:

char *signals[] = {"clicked", "missed", "new signal"};

Note that you still need to manually call Free (Signals) if you want to release the memory dynamically allocated by the "+" functions.

    function "+"
      (S1, S2             :        String)
       return Chars_Ptr_Array;

| Create an array containing S1 and S2. Note that this function allocates memory to store S1 and S2 as null terminated Strings. The user is responsible for calling Free on the resulting array.

    function "+"
      (S1                 :        Chars_Ptr_Array;
       S2                 :        String)
       return Chars_Ptr_Array;

| Append S2 to S1. Note that this function allocates memory to store S2 as a null terminated Strings. The user is responsible for calling Free on the resulting array.

    function "+"
      (S1                 :        Chars_Ptr_Array;
       S2                 :        Chars_Ptr)
       return Chars_Ptr_Array;

| Append S2 to S1. Note that this function allocates memory to store S2 as a null terminated Strings. The user is responsible for calling Free on the resulting array.

    function "+"
      (S1                 :        Chars_Ptr;
       S2                 :        String)
       return Chars_Ptr_Array;

| Create an array containing S1 and S2. Note that this function allocates memory to store S2 as a null terminated string. The user is responsible for calling Free on the resulting array.

    procedure Free
      (A                  : in out Chars_Ptr_Array);

| Free all the strings in A.

[Contents] [Back] [Prev] [Up] [Next] [Forward]