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).
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
Sysop: | Keyop |
---|---|
Location: | Huddersfield, West Yorkshire, UK |
Users: | 399 |
Nodes: | 16 (3 / 13) |
Uptime: | 64:44:18 |
Calls: | 8,355 |
Calls today: | 15 |
Files: | 13,159 |
Messages: | 5,893,806 |
Posted today: | 1 |