From: Alain De Vos <devosalain71@gmail.com>
Subject: Re: gtkada Connecting via the Gtk.Handlers object_connect problem
Date: Sun, 3 Nov 2019 07:24:14 -0800 (PST)
Date: 2019-11-03T07:24:14-08:00 [thread overview]
Message-ID: <a3b3f3cb-0352-439e-a4fa-d4fc39ba4053@googlegroups.com> (raw)
In-Reply-To: <0fc7ca20-5641-46e1-9559-970f03267afb@googlegroups.com>
On Sunday, November 3, 2019 at 4:23:12 PM UTC+1, Alain De Vos wrote:
> On Sunday, November 3, 2019 at 2:26:37 PM UTC+1, Alain De Vos wrote:
> > On Sunday, November 3, 2019 at 2:03:55 PM UTC+1, Dmitry A. Kazakov wrote:
> > > On 2019-11-03 12:37, Alain De Vos wrote:
> > > > 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 ^^^^^^^^^^^^^^^^^^^
> > > Should have been T : access MyVBoxR'Class
> > >
> > > --
> > > Regards,
> > > Dmitry A. Kazakov
> > > http://www.dmitry-kazakov.de
> >
> > I changed the handler to :
> > package body myvboxpak is
> > procedure MyButtonClick (T : access MyVBoxR'Class) is
> > begin
> > begin
> > T.Button.Set_Label ("You pressed");
> > ...
> >
> > Compile error of the connect_object function is still :
> > MYCB.Object_Connect
> > (Widget => MYVBOX.Button,
> > Name => "clicked",
> > Marsh => MYCB.To_Marshaller (MyButtonClick'Access), -- The signal handler
> > Slot_Object =>Top,
> > User_Data => MYVBOX
> > );
> > Error :
> > 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
>
> Some additional info :
> mymarsh : Gtk.Marshallers.General_Handler;
>
> mymarsh := MYCB.To_Marshaller (Cb => MyButtonClick'Access);
>
> Error : no candidate interpretations match the actuals expected type "Handler"
>
> package MYCB is new Gtk.Handlers.User_Callback(Glib.Object.GObject_Record,MyVBoxT);
>
> MYCB.Object_Connect
> (Widget => MYVBOX.Button,
> Name => "clicked",
> Marsh => mymarsh,
> Slot_Object =>Top,
> User_Data => MYVBOX,
> After => False
> );
>
> Error :
> Marsh => mymarsh,
> Expected type marchaller.
expected type "Handler" in mymarsh := MYCB.To_Marshaller (Cb => MyButtonClick'Access);
next prev parent reply other threads:[~2019-11-03 15:24 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-11-03 11:37 gtkada Connecting via the Gtk.Handlers object_connect problem Alain De Vos
2019-11-03 13:03 ` 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 [this message]
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