comp.lang.ada
 help / color / mirror / Atom feed
From: Gavin McCord <gavind.mccord@gmail.com>
Subject: Re: On_Button_Press_Event in Text_View
Date: Wed, 14 Aug 2024 11:42:14 -0000 (UTC)	[thread overview]
Message-ID: <v9i56l$edfn$1@dont-email.me> (raw)
In-Reply-To: v9gfo7$1rq4$1@dont-email.me

On Tue, 13 Aug 2024 22:29:59 +0200, Dmitry A. Kazakov wrote:

> On 2024-08-13 13:37, Gavin McCord wrote:
> 
>> I have a custom handler used when I update the Text_Buffer:
>> 
>>   Button_Callback.Connect
>>     (Update_Button, "clicked", Update_Clicked'Access,
>>      Buffer_To_Pass);
>> 
>> That works fine so I was imagining something similar might be possible,
>> but I've run through various permuations of records and access types
>> but not yet got a working callback.
>> 
>> Any help gratefully received (I can post the full code if that's
>> useful).
> 
> Something like this:
> 
>     package Event_Handlers is
>        new Gtk.Handlers.User_Return_Callback
>            (  GObject_Record,
>               Boolean, User_Data_Type
>            );
> 
> 
>     function On_Button_Press
>              (  Object : access GObject_Record'Class;
>                 Event  : Gdk_Event; Data   : User_Data_Type
>              )  return Boolean;
> 
> 
>     View.Set_Events (View.Get_Events or Button_Press_Mask);
>     Event_Handlers.Connect (  View,
>        "button-press-event",
>        Event_Handlers.To_Marshaller (On_Button_Press'Access),
>        Data
>     );

Thank you. That allows me to pass a record of the buffer.

There's only one other thing.

If I try to check the Event I get another error, such as

 function On_Button_Press
 [skipped lines]

    if Event.The_Type = Gdk_2button_Press then
       Put_Line ("double-click");
    end if;

Attempting to compile that gives me

   error: cannot reference discriminant of unchecked union


Gavin McCord

  reply	other threads:[~2024-08-14 11:42 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-08-13 11:37 On_Button_Press_Event in Text_View Gavin McCord
2024-08-13 20:29 ` Dmitry A. Kazakov
2024-08-14 11:42   ` Gavin McCord [this message]
2024-08-14 12:03     ` Dmitry A. Kazakov
2024-08-14 14:34       ` Gavin McCord
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox