<doc_ignore>Do not create automatic documentation for this package
type C_GValues is new System.Address;
An array of GValues
procedure Free (Params : in out GParameter_Array)
Free the memory used by Params
procedure Free (Val : in out GValues)
Deallocate the memory associated with the given Values array.
procedure G_New
(Object : not null access Glib.Object.GObject_Record'Class;
Typ : GType;
Params : GParameter_Array)
Allocate a new object and set properties.
function Get_Address (Value : GValue) return System.Address
function Get_Boolean (Value : GValue) return Boolean
Set_Boolean must only be called when Init has already been used. Otherwise use Init_Set_Boolean.
function Get_Boxed (Value : GValue) return System.Address
This is similar to Set_Address and Get_Address, except that the boxed type might have been associated with some specific initialization and finalization functions through Glib.Boxed_Type_Register_Static For instance: declare Typ : Glib.GType; Value : GValue; function To_Ref_Counted_Value is new Ada.Unchecked_Conversion (System.Address, My_Ref_Counted_Type); begin Typ := Boxed_Typed_Register_Static ("FOO", Copy'Access, Free'Access); Init (Value, Typ); Set_Boxed (Value, my_ref_counted_value.all'address);
Val := To_Ref_Counted_Value (Get_Boxed (Value));
Unset (Value);
end;
See also Glib.Generic_Properties.Generic_Internal_Boxed_Property.
function Get_Char (Value : GValue) return Gchar
function Get_Chars (Value : GValue) return Gtkada.Types.Chars_Ptr
function Get_Double (Value : GValue) return Gdouble
function Get_Enum (Value : GValue) return Glib.Gint
These are used to manipulate the standard GtkAda enumeration types. For types that you have redefined yourself, you have access to more suitable functions directly in the package Generic_Enumeration_Property.
function Get_Flags (Value : GValue) return Glib.Guint
??? Should really manipulate Glib.Properties.Creation.Flags_Int_Value
function Get_Float (Value : GValue) return Gfloat
function Get_Int (Value : GValue) return Gint
Set_Int must only be called when Init has already been used. Otherwise use Init_Set_Int.
function Get_Long (Value : GValue) return Glong
function Get_Object (Value : GValue) return Glib.Object.GObject
These are used to manipulate GObject instances.
function Get_Proxy (Value : GValue) return C_Proxy
function Get_String (Value : GValue) return String
function Get_String (Value : GValue; Length : Gint) return String
function Get_Uchar (Value : GValue) return Guchar
function Get_Uint (Value : GValue) return Guint
function Get_Ulong (Value : GValue) return Gulong
type GParameter is record
Name : Gtkada.Types.Chars_Ptr;
Value : GValue;
end record;
type GParameter_Array is array (Natural range <>) of GParameter;
type GValue is private;
A generic value that can hold any of the types as provided in the Set and Get functions below.
type GValue_Array is array (Gint range <>) of GValue;
type GValues is private;
This type represents a table of values. Each argument of the table can be of any type. The index of the first element is always 1.
procedure Init (Value : in out GValue; G_Type : Glib.GType)
Set the type of Value to G_Type. This limits the operations you can then apply to Value. For instance, Value must have been initialized with a GType_Int before you can use Set_Int (see below). Note that for enumeration types, you shouldn't use GType_Enum, but rather the exact GType corresponding to the enumeration. If you need to store a reference-counted type in a GValue, it is recommanded that you use a type derived from Boxed (see Set_Boxed below)
procedure Init_Set_Boolean (Value : in out GValue; V : Boolean)
Set_Boolean must only be called when Init has already been used. Otherwise use Init_Set_Boolean.
procedure Init_Set_Int (Value : in out GValue; V : Gint)
Set_Int must only be called when Init has already been used. Otherwise use Init_Set_Int.
procedure Init_Set_String (Value : in out GValue; V : String)
procedure Init_Set_Uint (Value : in out GValue; V : Guint)
function Make_Values (Nb : Guint) return GValues
Create a new GValues structure from scratch. This procedure causes the allocation of an underlying C array, and this memory should be deallocated after use using procedure Free (see below).
function Make_Values (Nb : Guint; Val : C_GValues) return GValues
Build a GValues structure from the given C array. Nb should be the number of elements in the Values array.
function Nth (Val : GValues; Num : Guint) return GValue
Return the Num-th element from Values. In general, the returned value does not need to be unset, since it is still handled by C (in particular when processing the parameters for a callback).
procedure Set_Address (Value : in out GValue; V_Address : System.Address)
procedure Set_Boolean (Value : in out GValue; V_Boolean : Boolean)
Set_Boolean must only be called when Init has already been used. Otherwise use Init_Set_Boolean.
procedure Set_Boxed (Value : in out GValue; V_Address : System.Address)
This is similar to Set_Address and Get_Address, except that the boxed type might have been associated with some specific initialization and finalization functions through Glib.Boxed_Type_Register_Static For instance: declare Typ : Glib.GType; Value : GValue; function To_Ref_Counted_Value is new Ada.Unchecked_Conversion (System.Address, My_Ref_Counted_Type); begin Typ := Boxed_Typed_Register_Static ("FOO", Copy'Access, Free'Access); Init (Value, Typ); Set_Boxed (Value, my_ref_counted_value.all'address);
Val := To_Ref_Counted_Value (Get_Boxed (Value));
Unset (Value);
end;
See also Glib.Generic_Properties.Generic_Internal_Boxed_Property.
procedure Set_Char (Value : in out GValue; V_Char : Gchar)
procedure Set_Double (Value : in out GValue; V_Double : Gdouble)
procedure Set_Enum (Value : in out GValue; V_Enum : Gint)
These are used to manipulate the standard GtkAda enumeration types. For types that you have redefined yourself, you have access to more suitable functions directly in the package Generic_Enumeration_Property.
procedure Set_Flags (Value : in out GValue; V_Enum : Guint)
??? Should really manipulate Glib.Properties.Creation.Flags_Int_Value
procedure Set_Float (Value : in out GValue; V_Float : Gfloat)
procedure Set_Int (Value : in out GValue; V_Int : Gint)
Set_Int must only be called when Init has already been used. Otherwise use Init_Set_Int.
procedure Set_Long (Value : in out GValue; V_Long : Glong)
procedure Set_Object
(Value : in out GValue; To : access Glib.Object.GObject_Record'Class)
These are used to manipulate GObject instances.
procedure Set_Proxy (Value : in out GValue; V_Proxy : C_Proxy)
procedure Set_String (Value : in out GValue; V_String : String)
procedure Set_Uchar (Value : in out GValue; V_Uchar : Guchar)
procedure Set_Uint (Value : in out GValue; V_Uint : Guint)
procedure Set_Ulong (Value : in out GValue; V_Ulong : Gulong)
function Type_Of (Value : GValue) return Glib.GType
Return the type of data that Value contains. It returns GType_Invalid if Value was not initialized
generic
type T is (<>);
function Unsafe_Enum_Nth
(Values : C_GValues; Num : Guint) return T
Used for enumeration types
procedure Unsafe_Nth (Values : C_GValues; Num : Guint; V : in out GValue)
This returns the Num-th element, starting at 0. This procedure does not check that Values contains at least Num elements, so is potentially dangerous. In general, the returned value does not need to be unset, since it is still handled by C (in particular when processing the parameters for a callback).
generic
type T is private;
function Unsafe_Proxy_Nth (Values : C_GValues; Num : Guint) return T
Extract a point from Values (at index Num, 0-based), and convert it to T. This is unsafe because no check is made that Num is a valid index, and no check is made that casting to T makes sense.
procedure Unset (Value : in out GValue)
Frees the memory allocate for Value (like strings contents) in the call to Init. You only need to call this function in cases where you have called Init yourself.