On_Button_Press_Event in Text_View

Liste des GroupesRevenir à cl ada 
Sujet : On_Button_Press_Event in Text_View
De : gavind.mccord (at) *nospam* gmail.com (Gavin McCord)
Groupes : comp.lang.ada
Date : 13. Aug 2024, 13:37:09
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <v9fgh4$3s34v$1@dont-email.me>
User-Agent : Pan/0.149 (Bellevue; 4c157ba git@gitlab.gnome.org:GNOME/pan.git)
Using gtkada (gtk3), is it possible to use a custom handler to
deal with a button-press-event (or other events if necessary)
inside a widget such as a Text_View?

For example I create a Text_View with buffer. To process a
button-press within that view I have this code in my main
procedure:

  The_View.On_Button_Press_Event (Press_CB'Access);
  The_View.Set_Events (The_View.Get_Events or Button_Press_Mask);

The callback looks like this:

  function Press_CB (Self  : access Gtk_Widget_Record'Class;
                     Event : Gdk_Event_Button)
                     return Boolean is
   begin
      Put_Line ("Mouse click in text view");
      return True;
   end Press_CB;

So far, so good.

But I'd like to pass additional data to the callback,
without using global variables/records if it can be
avoided.

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).

Kind regards,

Gavin McCord

Date Sujet#  Auteur
13 Aug 24 * On_Button_Press_Event in Text_View5Gavin McCord
13 Aug 24 `* Re: On_Button_Press_Event in Text_View4Dmitry A. Kazakov
14 Aug 24  `* Re: On_Button_Press_Event in Text_View3Gavin McCord
14 Aug 24   `* Re: On_Button_Press_Event in Text_View2Dmitry A. Kazakov
14 Aug 24    `- Re: On_Button_Press_Event in Text_View1Gavin McCord

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal