-
procedure Unref (Param : Param_Spec);
Enum classes
gtk+, a C library, has a whole system to describe its enumeration types,
similar to what is available from the start in Ada ('Image and '
Value
for instance). All enumerations are represented internally as
Enum_Classes. However, there is no easy conversion between such an
enum class and a GtkAda enumeration type.
Most of the time, this has no impact on your work, since you know
what type you need to use when calling an Ada function. However, you
will need to manipulate these enumeration classes when interfacing
with ParamSpecs and dealing with properties.
-
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 Nick (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;
Flags classes
These are very similar to Enum Classes. However, the actual value
of an instance of this type is a combination of a set of flags, rather
than one single enumeration value.
For instance, a Gdk_Event_Mask is a
Flags_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 Nick (Val : Flags_Value) return String;
ParamSpec
-
function Pspec_Name (Param : Param_Spec) return String;
-
function Nick_Name (Param : Param_Spec) return String;
-
function Flags (Param : Param_Spec) return Param_Flags;
-
function Owner_Type (Param : Param_Spec)
return Glib.GType;
-
function Description (Param : Param_Spec) return String;
-
function Value_Type (Param : Param_Spec)
return Glib.GType;
-
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;
Creating new properties
There are several things that need to be done when creating a property.
For one thing, you need to create the string that represents the
property. This is the only item that needs to go in the specifications
of your page.
You then need to describe the type of the property, and the values it
allows. This is very simple for simple types, and a generic packages is
provided to handle the more complex enumeration-based properties.
-
procedure Set_Properties_Handlers
(Class_Record :
Glib.Object.GObject_Class;
Set_Property : Set_Property_Handler;
Get_Property : Get_Property_Handler);
-