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.
<group>GUI Builder</group>
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;
procedure Do_Connect (Builder : access Gtkada_Builder_Record'Class)
Activate in the builder callabacks that have been connected using calls to Register_Handler functions below.
procedure Gtk_New (Builder : out Gtkada_Builder)
Create a new Gtkada_Builder.
type Gtkada_Builder is access all Gtkada_Builder_Record'Class;
type Gtkada_Builder_Record is new
Gtk.Builder.Gtk_Builder_Record with private;
procedure Initialize (Builder : access Gtkada_Builder_Record'Class)
Create a new Gtkada_Builder.
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 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)