type Gtkada_Builder_Record is new Gtk.Builder.Gtk_Builder_Record with private;
type Gtkada_Builder is access all Gtkada_Builder_Record'Class;
type Builder_Handler is access procedure (Builder : access Gtkada_Builder_Record'Class);
type Builder_Return_Handler is access function (User_Data : access Gtkada_Builder_Record'Class) return Boolean;
type Object_Handler is access procedure (User_Data : access GObject_Record'Class);
type Object_Return_Handler is access function (User_Data : access GObject_Record'Class) return Boolean;
procedure Gtk_New
( | Builder | : out Gtkada_Builder); |
procedure Initialize
( | Builder | : access Gtkada_Builder_Record'Class); |
procedure Do_Connect
( | Builder | : access Gtkada_Builder_Record'Class); |
procedure Register_Handler
( | Builder | : access Gtkada_Builder_Record'Class; |
Handler_Name | : String; | |
Handler | : Builder_Handler); |
procedure Register_Handler
( | Builder | : access Gtkada_Builder_Record'Class; |
Handler_Name | : String; | |
Handler | : Builder_Return_Handler); |
procedure Register_Handler
( | Builder | : access Gtkada_Builder_Record'Class; |
Handler_Name | : String; | |
Handler | : Object_Handler); |
procedure Register_Handler
( | Builder | : access Gtkada_Builder_Record'Class; |
Handler_Name | : String; | |
Handler | : Object_Return_Handler); |
This package provides a high-level API for using Gtk.Builder and user interface files produced with the GUI builder glade-3.
Here is how to use this package: Step 1: create a Builder and add the XML data, just as you would a standard Gtk.Builder: declare Builder : Gtkada_Builder; Error : GError; begin Gtk_New (Builder); Error := Add_From_File (Builder, Default_Filename); Step 2: add calls to "Register_Handler" to associate your handlers with your callbacks. Register_Handler (Builder => Builder, Handler_Name => "my_handler_id", Handler => My_Handler'Access); Where: - Builder is your Gtkada_Builder, - "my_handler_id" is the name of the handler as specified in Glade-3, in the "Handler" column of the "Signals" tab for your object, - Handler is your Ada subprogram. You will need one call to "Register_Handler" per handler declared in the Glade-3 interface. If there is one or more handler declared in Glade-3 which does not have an associated call to Register_Handler, an ASSERT_FAILURE will be raised by the Gtk main loop. There are multiple way to call Register_Handler, see below. Step 3: call Do_Connect. Step 4: when the application terminates or all Windows described through your builder should be closed, call Unref to free memory associated with the Builder.