comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: How to write gpr files from scratch , example 1, build only one package
Date: Sat, 2 Nov 2019 09:42:30 +0100
Date: 2019-11-02T09:42:30+01:00	[thread overview]
Message-ID: <qpjfhn$1qma$1@gioia.aioe.org> (raw)
In-Reply-To: 5f16f17b-d9b4-4f55-ae26-2d8464c96926@googlegroups.com

On 2019-11-01 23:10, Alain De Vos wrote:
> On Friday, November 1, 2019 at 11:04:07 PM UTC+1, Alain De Vos wrote:
>> https://docs.adacore.com/gprbuild-docs/html/gprbuild_ug/gnat_project_manager.html
>>
>> I have a file buttonhandler.adb containing :
>> -- TEST : Connecting via the On_* procedures first method
>> with GTk...stuff...;
>> package body buttonhandler is
>>     procedure On_Button_Click (Button : access Gtk_Button_Record'Class) is
>>     begin
>>        Put_line ("Hallo");
>>     end On_Button_Click;
>> end buttonhandler;

Apart from not having the package specification.

Text_IO is not the way to do it. A GTK application may have no standard 
output at all, e.g. under Windows you will see nothing.

Add a container Gtk_Grid or Gtk_Box to the top-level window. Put a 
Gtk_Button and a Gtk_Label there. Use Set_Text on the label from the 
button click callback.

You will see another problem immediately. The standard callback 
operations are useless most of the time because you need other 
parameters, like the container or the label.

See the package Gtk.Handlers how to create handlers with parameters, 
e.g. User_Callback in there.

For example:

    package Button_Handlers is
       new Gtk.Handlers.User_Callback (Gtk_Button_Record, Gtk_Label);

Then

    procedure On_Button_Click
              (  Button : access Gtk_Button_Record'Class;
                 Label  : Gtk_Label
              )  is
   begin
      Label.Set_Text ("Hallo");
   end On_Button_Click;

Connecting to the signal goes as follows:

    Button_Handlers.Connect
    (  Button,
       "clicked",
       On_Button_Click'Access,
       Label
    );

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de

  reply	other threads:[~2019-11-02  8:42 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-11-01 22:04 How to write gpr files from scratch , example 1, build only one package Alain De Vos
2019-11-01 22:10 ` Alain De Vos
2019-11-02  8:42   ` Dmitry A. Kazakov [this message]
2019-11-01 22:26 ` Simon Wright
2019-11-01 22:33   ` Alain De Vos
2019-11-01 22:34     ` Alain De Vos
2019-11-01 23:05       ` Alain De Vos
2019-11-01 22:50     ` Dennis Lee Bieber
2019-11-02 10:13 ` 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