From: Alain De Vos <devosalain71@gmail.com>
Subject: gtkada Connecting via the Gtk.Handlers object_connect problem
Date: Sun, 3 Nov 2019 03:37:44 -0800 (PST)
Date: 2019-11-03T03:37:44-08:00 [thread overview]
Message-ID: <254277d5-2ccc-474c-a65d-c5e2def102bd@googlegroups.com> (raw)
I try an application with one button and one label and one handler
http://docs.adacore.com/live/wave/gtkada/html/gtkada_ug/signals.html#second-case-using-object-connect-instead
-------------------------
I have a file myvboxpak.ads ->
package myvboxpak is
type MyVBoxR is new Gtk_VBox_Record with record
Button : Gtk_Button;
Label : Gtk_Label;
end record;
type MyVBoxT is access all MyVBoxR'Class;
package MYCB is new Gtk.Handlers.User_Callback(Glib.Object.GObject_Record,MyVBoxT);
procedure MyButtonClick (T : MyVBoxR'Class); --eventhandler
end myvboxpak;
---------------------------------
A file myvboxpak ->
package body myvboxpak is
procedure MyButtonClick (User_Data => T : MyVBoxR'Class) is
begin
.....
------------------------------------
A file hello.adb ->
procedure hello is
Top : Gtk.Window.Gtk_Window;
MyVBox : MyVBoxT;
procedure Create_Window is
begin
Gtk.Window.Gtk_New
(Window => Top,
The_Type => Gtk.Enums.Window_Toplevel);
Gtk.Window.Set_Title (Window => Top, Title => "Hello from ADA");
MyVBox := new MyVBoxR;
Initialize_Vbox (MyVBox);
Gtk_New (MyVBox.Button);
MyVBox.Add (MyVBox.Button);
Gtk_New (MyVBox.Label);
MyVBox.Add (MyVBox.Label);
Add (Top,MyVBox);
MYCB.Object_Connect
(Widget => MYVBOX.Button,
Name => "clicked",
Marsh => MYCB.To_Marshaller (MyButtonClick'Access), -- The signal handler
Slot_Object =>Top,
User_Data => MYVBOX
);
...
The error received while compiling is :
Compile
[Ada] hello.adb
hello.adb:35:27: no candidate interpretations match the actuals:
hello.adb:35:56: expected type "Handler" defined at gtk-marshallers.ads:546, instance at gtk-handlers.ads:1164, instance at myvboxpak.ads:17
hello.adb:35:56: found type access to procedure "MyButtonClick" defined at line 35
hello.adb:35:56: ==> in call to "To_Marshaller" at gtk-handlers.ads:1205, instance at myvboxpak.ads:17
Or , "MYCB.To_Marshaller (MyButtonClick'Access)" , does not have the correct type, the functions expects a "Handler".
next reply other threads:[~2019-11-03 11:37 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-11-03 11:37 Alain De Vos [this message]
2019-11-03 13:03 ` gtkada Connecting via the Gtk.Handlers object_connect problem Dmitry A. Kazakov
2019-11-03 13:26 ` Alain De Vos
2019-11-03 15:23 ` Alain De Vos
2019-11-03 15:24 ` Alain De Vos
2019-11-03 21:46 ` Alain De Vos
2019-11-04 23:44 ` Alain De Vos
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox