On 2017-12-26 12:03, Chris Vine wrote:
On Tue, 26 Dec 2017 10:56:34 +0100
Klaus Rudolph <[email protected]> wrote:
The function "signal_button_press_event()" reacts only if I double
click the button. Is it possible to react also on a single press
event?

#include <iostream>
#include <gtkmm.h>
#include <gtkmm/window.h>

class ExampleWindow: public Gtk::Window
{
      Gtk::Button button;
      public:
      ExampleWindow(): button("Hallo")
      {
          add(button);
          button.signal_button_press_event().connect( [this](
GdkEventButton* ev)->bool{ std::cout << "Press" << std::endl; return
true; });
      }
};


int main(int argc, char* argv[])
{
      Gtk::Main kit(argc, argv);

      ExampleWindow window;

      window.show_all_children();
      Gtk::Main::run(window);
      return 0;
}
button-press-event is a GDK event and is concerned principally with
mouse buttons. You want the clicked signal.

If you do prefer signal_button_press_event(), connect your signal handler so it's called before the default handler.
button.signal_button_press_event().connect(......., false);
See https://developer.gnome.org/gtkmm-tutorial/stable/sec-xeventsignals.html.en

If you connect your signal handler to run before the default signal handler, and your handler returns true, the default handler will not be called.

Kjell

_______________________________________________
gtkmm-list mailing list
[email protected]
https://mail.gnome.org/mailman/listinfo/gtkmm-list

Reply via email to