Existe alternativa para sinais obsoletos no gtkmm 3.0?

Ola, estou estudando a documentação da API gtkmm 3.0, e verifiquei que alguns sinais estão obsoletos. São sinais de quando eu somente pressiono o mouse, quando eu passo o mouse em um botão, etc. Achei sinais interessantes e que, me permitem fazer algumas coisas legais com o botão, porém, somente o sinal de click não esta obsoleto. Quero saber, existe alguma opção ou alternativa que substitua esses sinais? Agradeço desde já.

OBS: Fiz algumas buscas porem não encontrei informações que me direcionasse par alguma solução…

Gtk::Widget::signal_button_press_event()

Gtk::Widget::signal_button_release_event()

Gtk::Widget::signal_enter_notify_event()

Gtk::Widget::signal_leave_notify_event()

1 curtida

Pelo que sei a sugestão é que agora você use Gtk::EventController e Gtk::GestureMultiPress, um exemplo que encontrei:

static void click_callback (
  GtkGestureClick *gesture, int n_press, double x, double y
) {
  GtkEventController *controller = GTK_EVENT_CONTROLLER(gesture);
  GtkWidget *widget = gtk_event_controller_get_widget(controller);
  if (x < gtk_widget_get_width (widget) / 2.0 &&
      y < gtk_widget_get_height (widget) / 2.0) {
    g_print ("Red!\n");   
  }
}

...

// adicionando o controller ao widget...
controller = gtk_gesture_click_new ();
g_signal_handler_connect (controller, "pressed", G_CALLBACK (click_cb), NULL);
gtk_widget_add_controller (widget, controller);
1 curtida