with Gtk.Main; with Gtk.Handlers; with Gtk.Widget; use Gtk.Widget; with Gtk.GEntry; use Gtk.GEntry; with Ada.Strings.Unbounded; package handlery is package UStr renames Ada.Strings.Unbounded; type My_Data is record Edit : Gtk_GEntry; Text : UStr.Unbounded_String; end record; type My_Data_Access is access My_Data; -- package Handlers is new Gtk.Handlers.Callback (Gtk_Widget_Record); package User_Handlers is new Gtk.Handlers.User_Callback(Gtk_Widget_Record, Gtk_GEntry); package Handle_Edit is new Gtk.Handlers.User_Callback (Gtk_Widget_Record, My_Data_Access); procedure Edit_Edit (Widget : access Gtk_Widget_Record'Class; Edit_Data : My_Data_Access); procedure Destroy (Widget : access Gtk_Widget_Record'Class); procedure Edit_Field(Widget : access Gtk_Widget_Record'Class; User_Widget : Gtk_GEntry); end handlery;