Two functions are provided for each type of property: Set_Property and Get_Property, which allow easy modification of specific widget properties. For instance, you could do the following: declare Button : Gtk_Button; begin Gtk_New (Button, "old label"); Set_Property (Button, Label_Property, "new label"); end; to modify the label of a button.
Likewise, you can retrieve the current label with: Current : String := Get_Property (Button, Label_Property);
Dispatching is used ensure type-safety while using properties. The appropriate Set_Property/Get_Property functions are called depending on the type of the property you are trying to use. This is checked statically by the compiler, which provides additional type-safety compared to the C library.
Note that some properties are read-only, and thus do not have the Set_Property subprogram defined.
When a property is modified, the signal "notify::