with Glib.Object;
with Gtk.Widget;
with Glib.Values;
package Gtk.Marshallers is
type General_Handler is access procedure;
generic
type Widget_Type is new Glib.Object.GObject_Record with private;
type Return_Type is (<>);
package Return_Marshallers is
type Handler_Proxy is access function
(Widget : access Widget_Type'Class;
Params : Glib.Values.GValues;
Cb : General_Handler) return Return_Type;
type Marshaller is record
Func : General_Handler;
Proxy : Handler_Proxy;
end record;
generic
type Base_Type is private;
with function Conversion
(Value : Glib.Values.GValue) return Base_Type;
package Generic_Marshaller is
type Handler is access function
(Widget : access Widget_Type'Class;
Param : Base_Type) return Return_Type;
function To_Marshaller (Cb : Handler) return Marshaller;
function Emit_By_Name
(Object : access Widget_Type'Class;
Name : Glib.Signal_Name;
Param : Base_Type) return Return_Type;
generic
with function Conversion (Param : Base_Type) return System.Address;
function Emit_By_Name_Generic
(Object : access Widget_Type'Class;
Name : Glib.Signal_Name;
Param : Base_Type) return Return_Type;
private
function Call
(Widget : access Widget_Type'Class;
Params : Glib.Values.GValues;
Cb : General_Handler) return Return_Type;
Call_Access : constant Handler_Proxy := Call'Access;
end Generic_Marshaller;
generic
type Base_Type is new Gtk.Widget.Gtk_Widget_Record with private;
type Access_Type is access all Base_Type'Class;
package Generic_Widget_Marshaller is
type Handler is access function
(Widget : access Widget_Type'Class;
Param : access Base_Type'Class) return Return_Type;
function To_Marshaller (Cb : Handler) return Marshaller;
function Emit_By_Name
(Object : access Widget_Type'Class;
Name : Glib.Signal_Name;
Param : access Base_Type'Class) return Return_Type;
private
function Call
(Widget : access Widget_Type'Class;
Params : Glib.Values.GValues;
Cb : General_Handler) return Return_Type;
Call_Access : constant Handler_Proxy := Call'Access;
end Generic_Widget_Marshaller;
package Void_Marshaller is
type Handler is access function
(Widget : access Widget_Type'Class) return Return_Type;
function To_Marshaller (Cb : Handler) return Marshaller;
function Emit_By_Name
(Object : access Widget_Type'Class;
Name : Glib.Signal_Name) return Return_Type;
private
function Call
(Widget : access Widget_Type'Class;
Params : Glib.Values.GValues;
Cb : General_Handler) return Return_Type;
Call_Access : constant Handler_Proxy := Call'Access;
end Void_Marshaller;
end Return_Marshallers;
generic
type Widget_Type is new Glib.Object.GObject_Record with private;
type Return_Type is (<>);
type User_Type (<>) is private;
package User_Return_Marshallers is
type Handler_Proxy is access function
(Widget : access Widget_Type'Class;
Params : Glib.Values.GValues;
Cb : General_Handler;
User_Data : User_Type) return Return_Type;
type Marshaller is record
Func : General_Handler;
Proxy : Handler_Proxy;
end record;
generic
type Base_Type is private;
with function Conversion
(Value : Glib.Values.GValue) return Base_Type;
package Generic_Marshaller is
type Handler is access function
(Widget : access Widget_Type'Class;
Param : Base_Type;
User_Data : User_Type) return Return_Type;
function To_Marshaller (Cb : Handler) return Marshaller;
function Emit_By_Name
(Object : access Widget_Type'Class;
Name : Glib.Signal_Name;
Param : Base_Type) return Return_Type;
generic
with function Conversion (Param : Base_Type) return System.Address;
function Emit_By_Name_Generic
(Object : access Widget_Type'Class;
Name : Glib.Signal_Name;
Param : Base_Type) return Return_Type;
private
function Call
(Widget : access Widget_Type'Class;
Params : Glib.Values.GValues;
Cb : General_Handler;
User_Data : User_Type) return Return_Type;
Call_Access : constant Handler_Proxy := Call'Access;
end Generic_Marshaller;
generic
type Base_Type is new Gtk.Widget.Gtk_Widget_Record with private;
type Access_Type is access all Base_Type'Class;
package Generic_Widget_Marshaller is
type Handler is access function
(Widget : access Widget_Type'Class;
Param : access Base_Type'Class;
User_Data : User_Type) return Return_Type;
function To_Marshaller (Cb : Handler) return Marshaller;
function Emit_By_Name
(Object : access Widget_Type'Class;
Name : Glib.Signal_Name;
Param : access Base_Type'Class) return Return_Type;
private
function Call
(Widget : access Widget_Type'Class;
Params : Glib.Values.GValues;
Cb : General_Handler;
User_Data : User_Type) return Return_Type;
Call_Access : constant Handler_Proxy := Call'Access;
end Generic_Widget_Marshaller;
package Void_Marshaller is
type Handler is access function
(Widget : access Widget_Type'Class;
User_Data : User_Type) return Return_Type;
function To_Marshaller (Cb : Handler) return Marshaller;
function Emit_By_Name
(Object : access Widget_Type'Class;
Name : Glib.Signal_Name) return Return_Type;
private
function Call
(Widget : access Widget_Type'Class;
Params : Glib.Values.GValues;
Cb : General_Handler;
User_Data : User_Type) return Return_Type;
Call_Access : constant Handler_Proxy := Call'Access;
end Void_Marshaller;
end User_Return_Marshallers;
generic
type Widget_Type is new Glib.Object.GObject_Record with private;
package Void_Marshallers is
type Handler_Proxy is access procedure
(Widget : access Widget_Type'Class;
Params : Glib.Values.GValues;
Cb : General_Handler);
type Marshaller is record
Func : General_Handler;
Proxy : Handler_Proxy;
end record;
generic
type Base_Type is private;
with function Conversion
(Value : Glib.Values.GValue) return Base_Type;
package Generic_Marshaller is
type Handler is access procedure
(Widget : access Widget_Type'Class;
Param : Base_Type);
function To_Marshaller (Cb : Handler) return Marshaller;
procedure Emit_By_Name
(Object : access Widget_Type'Class;
Name : Glib.Signal_Name;
Param : Base_Type);
generic
with function Conversion (Param : Base_Type) return System.Address;
procedure Emit_By_Name_Generic
(Object : access Widget_Type'Class;
Name : Glib.Signal_Name;
Param : Base_Type);
private
procedure Call
(Widget : access Widget_Type'Class;
Params : Glib.Values.GValues;
Cb : General_Handler);
Call_Access : constant Handler_Proxy := Call'Access;
end Generic_Marshaller;
generic
type Base_Type_1 is private;
with function Conversion
(Value : Glib.Values.GValue) return Base_Type_1;
type Base_Type_2 is private;
with function Conversion
(Value : Glib.Values.GValue) return Base_Type_2;
package Generic_Marshaller_2 is
type Handler is access procedure
(Widget : access Widget_Type'Class;
Param_1 : Base_Type_1;
Param_2 : Base_Type_2);
function To_Marshaller (Cb : Handler) return Marshaller;
procedure Emit_By_Name
(Object : access Widget_Type'Class;
Name : Glib.Signal_Name;
Param_1 : Base_Type_1;
Param_2 : Base_Type_2);
generic
with function Conversion
(Param : Base_Type_1) return System.Address;
with function Conversion
(Param : Base_Type_2) return System.Address;
procedure Emit_By_Name_Generic
(Object : access Widget_Type'Class;
Name : Glib.Signal_Name;
Param_1 : Base_Type_1;
Param_2 : Base_Type_2);
private
procedure Call
(Widget : access Widget_Type'Class;
Params : Glib.Values.GValues;
Cb : General_Handler);
Call_Access : constant Handler_Proxy := Call'Access;
end Generic_Marshaller_2;
generic
type Base_Type is new Gtk.Widget.Gtk_Widget_Record with private;
type Access_Type is access all Base_Type'Class;
package Generic_Widget_Marshaller is
type Handler is access procedure
(Widget : access Widget_Type'Class;
Param : access Base_Type'Class);
function To_Marshaller (Cb : Handler) return Marshaller;
procedure Emit_By_Name
(Object : access Widget_Type'Class;
Name : Glib.Signal_Name;
Param : access Base_Type'Class);
private
procedure Call
(Widget : access Widget_Type'Class;
Params : Glib.Values.GValues;
Cb : General_Handler);
Call_Access : constant Handler_Proxy := Call'Access;
end Generic_Widget_Marshaller;
package Void_Marshaller is
type Handler is access procedure
(Widget : access Widget_Type'Class);
function To_Marshaller (Cb : Handler) return Marshaller;
procedure Emit_By_Name
(Object : access Widget_Type'Class;
Name : Glib.Signal_Name);
private
procedure Call
(Widget : access Widget_Type'Class;
Params : Glib.Values.GValues;
Cb : General_Handler);
Call_Access : constant Handler_Proxy := Call'Access;
end Void_Marshaller;
end Void_Marshallers;
generic
type Widget_Type is new Glib.Object.GObject_Record with private;
type User_Type (<>) is private;
package User_Void_Marshallers is
type Handler_Proxy is access procedure
(Widget : access Widget_Type'Class;
Params : Glib.Values.GValues;
Cb : General_Handler;
User_Data : User_Type);
type Marshaller is record
Func : General_Handler;
Proxy : Handler_Proxy;
end record;
generic
type Base_Type is private;
with function Conversion
(Value : Glib.Values.GValue) return Base_Type;
package Generic_Marshaller is
type Handler is access procedure
(Widget : access Widget_Type'Class;
Param : Base_Type;
User_Data : User_Type);
function To_Marshaller (Cb : Handler) return Marshaller;
procedure Emit_By_Name
(Object : access Widget_Type'Class;
Name : Glib.Signal_Name;
Param : Base_Type);
generic
with function Conversion (Param : Base_Type) return System.Address;
procedure Emit_By_Name_Generic
(Object : access Widget_Type'Class;
Name : Glib.Signal_Name;
Param : Base_Type);
private
procedure Call
(Widget : access Widget_Type'Class;
Params : Glib.Values.GValues;
Cb : General_Handler;
User_Data : User_Type);
Call_Access : constant Handler_Proxy := Call'Access;
end Generic_Marshaller;
generic
type Base_Type_1 is private;
with function Conversion
(Value : Glib.Values.GValue) return Base_Type_1;
type Base_Type_2 is private;
with function Conversion
(Value : Glib.Values.GValue) return Base_Type_2;
package Generic_Marshaller_2 is
type Handler is access procedure
(Widget : access Widget_Type'Class;
Param_1 : Base_Type_1;
Param_2 : Base_Type_2;
User_Data : User_Type);
function To_Marshaller (Cb : Handler) return Marshaller;
procedure Emit_By_Name
(Object : access Widget_Type'Class;
Name : Glib.Signal_Name;
Param_1 : Base_Type_1;
Param_2 : Base_Type_2);
generic
with function Conversion
(Param : Base_Type_1) return System.Address;
with function Conversion
(Param : Base_Type_2) return System.Address;
procedure Emit_By_Name_Generic
(Object : access Widget_Type'Class;
Name : Glib.Signal_Name;
Param_1 : Base_Type_1;
Param_2 : Base_Type_2);
private
procedure Call
(Widget : access Widget_Type'Class;
Params : Glib.Values.GValues;
Cb : General_Handler;
User_Data : User_Type);
Call_Access : constant Handler_Proxy := Call'Access;
end Generic_Marshaller_2;
generic
type Base_Type is new Gtk.Widget.Gtk_Widget_Record with private;
type Access_Type is access all Base_Type'Class;
package Generic_Widget_Marshaller is
type Handler is access procedure
(Widget : access Widget_Type'Class;
Param : access Base_Type'Class;
User_Data : User_Type);
function To_Marshaller (Cb : Handler) return Marshaller;
procedure Emit_By_Name
(Object : access Widget_Type'Class;
Name : Glib.Signal_Name;
Param : access Base_Type'Class);
private
procedure Call
(Widget : access Widget_Type'Class;
Params : Glib.Values.GValues;
Cb : General_Handler;
User_Data : User_Type);
Call_Access : constant Handler_Proxy := Call'Access;
end Generic_Widget_Marshaller;
package Void_Marshaller is
type Handler is access procedure
(Widget : access Widget_Type'Class;
User_Data : User_Type);
function To_Marshaller (Cb : Handler) return Marshaller;
procedure Emit_By_Name
(Object : access Widget_Type'Class;
Name : Glib.Signal_Name);
private
procedure Call
(Widget : access Widget_Type'Class;
Params : Glib.Values.GValues;
Cb : General_Handler;
User_Data : User_Type);
Call_Access : constant Handler_Proxy := Call'Access;
end Void_Marshaller;
end User_Void_Marshallers;
end Gtk.Marshallers;