------------------------------------------------------- These handlers should return a value They do not have a User_Data -------------------------------------------------------
function Connect
(Widget : access Widget_Type'Class;
Name : Glib.Signal_Name;
Cb : Handler;
After : Boolean := False) return Handler_Id
Connects a Handler. Returns the Handler_Id.
function Connect
(Widget : access Widget_Type'Class;
Name : Glib.Signal_Name;
Marsh : Marshallers.Marshaller;
After : Boolean := False) return Handler_Id
Connects a Marshaller. Returns the Handler_Id.
procedure Connect
(Widget : access Widget_Type'Class;
Name : Glib.Signal_Name;
Cb : Handler;
After : Boolean := False)
Connect a Handler. The Handler_Id is dropped. This is automatically disconnected as soon as either Widget or Slot_Object is destroyed. Slot_Object must be of type Gtk_Object or one of its children.
procedure Connect
(Widget : access Widget_Type'Class;
Name : Glib.Signal_Name;
Marsh : Marshallers.Marshaller;
After : Boolean := False)
Connects a Marshaller. The Handler_Id is dropped.
procedure Connect
(Widget : access Widget_Type'Class;
Name : Glib.Signal_Name;
Cb : Simple_Handler;
After : Boolean := False)
Same as above, except with a simple handle with no parameter. This is the same as using a To_Marshaller call to the above two procedures, except it is shorter to write.
package Context_Marshaller is new Marshallers.Generic_Marshaller
(Cairo.Cairo_Context, Cairo.Get_Context);
function Emit_By_Name
(Object : access Widget_Type'Class;
Name : Glib.Signal_Name)
return Return_Type
function Emit_By_Name
(Object : access Widget_Type'Class;
Name : Glib.Signal_Name;
Param : access Gtk.Widget.Gtk_Widget_Record'Class)
return Return_Type
function Emit_By_Name
(Object : access Widget_Type'Class;
Name : Glib.Signal_Name;
Param : Gdk.Event.Gdk_Event) return Return_Type
function Emit_By_Name
(Object : access Widget_Type'Class;
Name : Glib.Signal_Name;
Param : Gint)
return Return_Type
function Emit_By_Name
(Object : access Widget_Type'Class;
Name : Glib.Signal_Name;
Param : Guint)
return Return_Type
package Event_Marshaller is new Marshallers.Generic_Marshaller
(Gdk.Event.Gdk_Event, Gdk.Event.Get_Event);
procedure First_Marshaller
(Closure : GClosure;
Return_Value : Glib.Values.GValue;
N_Params : Guint;
Params : Glib.Values.C_GValues;
Invocation_Hint : System.Address;
User_Data : System.Address)
First level marshaller. This is the function that is actually called by gtk+. It then calls the Ada functions as required.
If you get an error here while compiling, this is because you are not instantiating this package at library-level.
</doc_ignore>
procedure Free_Data (Data : Data_Type_Access)
Free the memory associated with the callback's data
package Gint_Marshaller is new Marshallers.Generic_Marshaller
(Gint, Glib.Values.Get_Int);
package Guint_Marshaller is new Marshallers.Generic_Marshaller
(Guint, Glib.Values.Get_Uint);
type Handler is access function
(Widget : access Widget_Type'Class;
Params : Glib.Values.GValues) return Return_Type;
package Marshallers is new Gtk.Marshallers.Return_Marshallers
(Widget_Type, Return_Type);
function Object_Connect
(Widget : access Glib.Object.GObject_Record'Class;
Name : Glib.Signal_Name;
Cb : Handler;
Slot_Object : access Widget_Type'Class;
After : Boolean := False) return Handler_Id
Connect a Handler. Returns the Handler_Id. This is automatically disconnected as soon as either Widget or Slot_Object is destroyed. Slot_Object must be of type Gtk_Object or one of its children.
function Object_Connect
(Widget : access Glib.Object.GObject_Record'Class;
Name : Glib.Signal_Name;
Marsh : Marshallers.Marshaller;
Slot_Object : access Widget_Type'Class;
After : Boolean := False) return Handler_Id
Connect a Marshaller. Return the Handler_Id. This is automatically disconnected as soon as either Widget or Slot_Object is destroyed. Slot_Object must be of type Gtk_Object or one of its children.
procedure Object_Connect
(Widget : access Glib.Object.GObject_Record'Class;
Name : Glib.Signal_Name;
Cb : Handler;
Slot_Object : access Widget_Type'Class;
After : Boolean := False)
Connect a Handler. The Handler_Id is dropped. This is automatically disconnected as soon as either Widget or Slot_Object is destroyed. Slot_Object must be of type Gtk_Object or one of its children.
procedure Object_Connect
(Widget : access Glib.Object.GObject_Record'Class;
Name : Glib.Signal_Name;
Marsh : Marshallers.Marshaller;
Slot_Object : access Widget_Type'Class;
After : Boolean := False)
Connect a Marshaller. The Handler_Id is dropped. This is automatically disconnected as soon as either Widget or Slot_Object is destroyed. Slot_Object must be of type Gtk_Object or one of its children.
procedure Object_Connect
(Widget : access Glib.Object.GObject_Record'Class;
Name : Glib.Signal_Name;
Cb : Simple_Handler;
Slot_Object : access Widget_Type'Class;
After : Boolean := False)
Same as above, except with a simple handle with no parameter. This is the same as using a To_Marshaller call to the above two procedures, except it is shorter to write.
type Return_Type is (<>);
type Simple_Handler is access function
(Widget : access Widget_Type'Class) return Return_Type;
function To_Marshaller
(Cb : Context_Marshaller.Handler)
return Marshallers.Marshaller
function To_Marshaller
(Cb : Event_Marshaller.Handler)
return Marshallers.Marshaller
function To_Marshaller
(Cb : Gint_Marshaller.Handler)
return Marshallers.Marshaller
function To_Marshaller
(Cb : Guint_Marshaller.Handler)
return Marshallers.Marshaller
function To_Marshaller
(Cb : Marshallers.Void_Marshaller.Handler)
return Marshallers.Marshaller
function To_Marshaller
(Cb : Widget_Marshaller.Handler)
return Marshallers.Marshaller
package Widget_Marshaller is new Marshallers.Generic_Widget_Marshaller
(Gtk.Widget.Gtk_Widget_Record, Gtk.Widget.Gtk_Widget);
type Widget_Type is new Glib.Object.GObject_Record with private;