type Enum_Class is new Glib.C_Proxy;
type Enum_Value is new Glib.C_Proxy;
type Flags_Class is new Glib.C_Proxy;
type Flags_Value is new Glib.C_Proxy;
type Flags_Int_Value is mod Glib.Gint'Last;
type Param_Spec_Enum is new Param_Spec;
type Property_Id is new Guint;
type Set_Property_Handler is access procedure (Object : access Glib.Object.GObject_Record'Class; Prop_Id : Property_Id; Value : Glib.Values.GValue; Property_Spec : Param_Spec);
type Get_Property_Handler is access procedure (Object : access Glib.Object.GObject_Record'Class; Prop_Id : Property_Id; Value : out Glib.Values.GValue; Property_Spec : Param_Spec);
procedure Unref
( | Param | : Param_Spec); |
function Get_Value
( | Klass | : Enum_Class; |
Value | : Glib.Gint) return Enum_Value; |
function Nth_Value
( | Klass | : Enum_Class; |
Nth | : Glib.Guint) return Enum_Value; |
function Value
( | Val | : Enum_Value) return Glib.Gint; |
function Name
( | Val | : Enum_Value) return String; |
function Register_Static_Enum
( | Name | : String; |
Values | : Interfaces.C.Strings.chars_ptr_array) return Glib.GType; |
function Enum_Class_From_Type
( | Typ | : Glib.GType) return Enum_Class; |
function Nth_Value
( | Klass | : Flags_Class; |
Nth | : Glib.Guint) return Flags_Value; |
function Value
( | Val | : Flags_Value) return Flags_Int_Value; |
function Name
( | Val | : Flags_Value) return String; |
function Pspec_Name
( | Param | : Param_Spec) return String; |
function Nick_Name
( | Param | : Param_Spec) return String; |
function Owner_Type
( | Param | : Param_Spec) return Glib.GType; |
function Description
( | Param | : Param_Spec) return String; |
procedure Set_Value_Type
( | Param | : Param_Spec; |
Typ | : Glib.GType); |
function Get_Qdata
( | Param | : Param_Spec; |
Quark | : GQuark) return Glib.C_Proxy; |
procedure Set_Qdata
( | Param | : Param_Spec; |
Quark | : GQuark; | |
Data | : Glib.C_Proxy; | |
Destroy | : G_Destroy_Notify := null); |
function Minimum
( | Param | : Param_Spec_Char) return Glib.Gint8; |
function Maximum
( | Param | : Param_Spec_Char) return Glib.Gint8; |
function Default
( | Param | : Param_Spec_Char) return Glib.Gint8; |
function Gnew_Char
( | Name, Nick, Blurb | : String; |
Minimum, Maximum, Default | : Glib.Gint8; | |
Flags | : Param_Flags := Param_Readable or Param_Writable) return Param_Spec; |
function Minimum
( | Param | : Param_Spec_Uchar) return Glib.Guint8; |
function Maximum
( | Param | : Param_Spec_Uchar) return Glib.Guint8; |
function Default
( | Param | : Param_Spec_Uchar) return Glib.Guint8; |
function Gnew_Uchar
( | Name, Nick, Blurb | : String; |
Minimum, Maximum, Default | : Glib.Guint8; | |
Flags | : Param_Flags := Param_Readable or Param_Writable) return Param_Spec; |
function Default
( | Param | : Param_Spec_Boolean) return Boolean; |
function Gnew_Boolean
( | Name, Nick, Blurb | : String; |
Default | : Boolean; | |
Flags | : Param_Flags := Param_Readable or Param_Writable) return Param_Spec; |
function Minimum
( | Param | : Param_Spec_Int) return Glib.Gint; |
function Maximum
( | Param | : Param_Spec_Int) return Glib.Gint; |
function Default
( | Param | : Param_Spec_Int) return Glib.Gint; |
function Gnew_Int
( | Name, Nick, Blurb | : String; |
Minimum, Maximum, Default | : Glib.Gint; | |
Flags | : Param_Flags := Param_Readable or Param_Writable) return Param_Spec; |
function Minimum
( | Param | : Param_Spec_Uint) return Glib.Guint; |
function Maximum
( | Param | : Param_Spec_Uint) return Glib.Guint; |
function Default
( | Param | : Param_Spec_Uint) return Glib.Guint; |
function Gnew_Uint
( | Name, Nick, Blurb | : String; |
Minimum, Maximum, Default | : Glib.Guint; | |
Flags | : Param_Flags := Param_Readable or Param_Writable) return Param_Spec; |
function Minimum
( | Param | : Param_Spec_Long) return Glib.Glong; |
function Maximum
( | Param | : Param_Spec_Long) return Glib.Glong; |
function Default
( | Param | : Param_Spec_Long) return Glib.Glong; |
function Gnew_Long
( | Name, Nick, Blurb | : String; |
Minimum, Maximum, Default | : Glib.Glong; | |
Flags | : Param_Flags := Param_Readable or Param_Writable) return Param_Spec; |
function Minimum
( | Param | : Param_Spec_Ulong) return Glib.Gulong; |
function Maximum
( | Param | : Param_Spec_Ulong) return Glib.Gulong; |
function Default
( | Param | : Param_Spec_Ulong) return Glib.Gulong; |
function Gnew_Ulong
( | Name, Nick, Blurb | : String; |
Minimum, Maximum, Default | : Glib.Gulong; | |
Flags | : Param_Flags := Param_Readable or Param_Writable) return Param_Spec; |
function Default
( | Param | : Param_Spec_Unichar) return Gunichar; |
function Gnew_Unichar
( | Name, Nick, Blurb | : String; |
Default | : Gunichar; | |
Flags | : Param_Flags := Param_Readable or Param_Writable) return Param_Spec; |
function Enumeration
( | Param | : Param_Spec_Enum) return Enum_Class; |
function Default
( | Param | : Param_Spec_Enum) return Glib.Gint; |
function Gnew_Enum
( | Name, Nick, Blurb | : String; |
Enum_Type | : GType; | |
Default | : Gint := 0; | |
Flags | : Param_Flags := Param_Readable or Param_Writable) return Param_Spec; |
function Flags_Enumeration
( | Param | : Param_Spec_Flags) return Flags_Class; |
function Default
( | Param | : Param_Spec_Flags) return Glong; |
function Gnew_Flags
( | Name, Nick, Blurb | : String; |
Flags_Type | : Glib.GType; | |
Default | : Guint; | |
Flags | : Param_Flags := Param_Readable or Param_Writable) return Param_Spec; |
function Minimum
( | Param | : Param_Spec_Float) return Gfloat; |
function Maximum
( | Param | : Param_Spec_Float) return Gfloat; |
function Default
( | Param | : Param_Spec_Float) return Gfloat; |
function Epsilon
( | Param | : Param_Spec_Float) return Gfloat; |
function Gnew_Float
( | Name, Nick, Blurb | : String; |
Minimum, Maximum, Default | : Glib.Gfloat; | |
Flags | : Param_Flags := Param_Readable or Param_Writable) return Param_Spec; |
function Minimum
( | Param | : Param_Spec_Double) return Gdouble; |
function Maximum
( | Param | : Param_Spec_Double) return Gdouble; |
function Default
( | Param | : Param_Spec_Double) return Gdouble; |
function Epsilon
( | Param | : Param_Spec_Double) return Gdouble; |
function Gnew_Double
( | Name, Nick, Blurb | : String; |
Minimum, Maximum, Default | : Glib.Gdouble; | |
Flags | : Param_Flags := Param_Readable or Param_Writable) return Param_Spec; |
function Default
( | Param | : Param_Spec_String) return String; |
function Cset_First
( | Param | : Param_Spec_String) return String; |
function Cset_Nth
( | Param | : Param_Spec_String) return String; |
function Substitutor
( | Param | : Param_Spec_String) return Character; |
function Ensure_Non_Null
( | Param | : Param_Spec_String) return Boolean; |
function Gnew_String
( | Name, Nick, Blurb | : String; |
Default | : String; | |
Flags | : Param_Flags := Param_Readable or Param_Writable) return Param_Spec; |
function Gnew_Param
( | Name, Nick, Blurb | : String; |
Param_Type | : Glib.GType; | |
Flags | : Param_Flags := Param_Readable or Param_Writable) return Param_Spec; |
function Gnew_Boxed
( | Name, Nick, Blurb | : String; |
Boxed_Type | : Glib.GType; | |
Flags | : Param_Flags := Param_Readable or Param_Writable) return Param_Spec; |
function Gnew_Pointer
( | Name, Nick, Blurb | : String; |
Flags | : Param_Flags := Param_Readable or Param_Writable) return Param_Spec; |
function Gnew_Object
( | Name, Nick, Blurb | : String; |
Object_Type | : Glib.GType; | |
Flags | : Param_Flags := Param_Readable or Param_Writable) return Param_Spec; |
procedure Set_Properties_Handlers
( | Class_Record | : Glib.Object.Ada_GObject_Class; |
Set_Property | : Set_Property_Handler; | |
Get_Property | : Get_Property_Handler); |
procedure Install_Property
( | Class_Record | : Glib.Object.Ada_GObject_Class; |
Prop_Id | : Property_Id; | |
Property_Spec | : Param_Spec); |
This package provides all the required subprograms to create and manipulate new properties associated with new widget types.
You do not have to be familiar with this package in order to use properties. See Glib.Object instead, that provides the minimal subprograms to get and set properties.
This package is only intended for writers of new widgets. You will need this function to create new properties.
Each object in gtk+ has a set of so-called properties. These are attributes that can be accessed, and possibly modified, by names.
They provide introspection, that is an object can specify which properties it knows about, which can be modified,..., and thus provide a huge support for special applications like GUI-Builders that need to act on any kind of widgets, even those it doesn't know about yet.
However, for efficiency reasons, the properties are only names, and are not the only way to modify attributes of objects. It is often more efficient to use the alternate method, as documented in the GtkAda documentation for each property.
Another interesting feature of properties is that every time a property is modified, a signal "property_changed" or "notify" is emitted, and it is thus easy to keep track of attributes in objects.