From 01485188ac19627165ac7dbc6b2bd2f7a8cd9b2b Mon Sep 17 00:00:00 2001 From: BogDan Vatra Date: Fri, 18 Jun 2021 11:42:25 +0300 Subject: [PATCH] Add wrapper for EventControllerLegacy --- gtk/gtkmm/meson.build | 1 + gtk/src/eventcontrollerlegacy.ccg | 18 ++++++++ gtk/src/eventcontrollerlegacy.hg | 53 +++++++++++++++++++++++ gtk/src/gtk_signals.defs | 11 +++++ tools/extra_defs_gen/generate_defs_gtk.cc | 1 + 5 files changed, 84 insertions(+) create mode 100644 gtk/src/eventcontrollerlegacy.ccg create mode 100644 gtk/src/eventcontrollerlegacy.hg diff --git a/gtk/gtkmm/meson.build b/gtk/gtkmm/meson.build index 0d7367700..f64c08af7 100644 --- a/gtk/gtkmm/meson.build +++ b/gtk/gtkmm/meson.build @@ -104,6 +104,7 @@ gtkmm_any_hg_ccg_basenames = [ 'eventcontroller', 'eventcontrollerfocus', 'eventcontrollerkey', + 'eventcontrollerlegacy', 'eventcontrollermotion', 'eventcontrollerscroll', 'expander', diff --git a/gtk/src/eventcontrollerlegacy.ccg b/gtk/src/eventcontrollerlegacy.ccg new file mode 100644 index 000000000..82127c6d8 --- /dev/null +++ b/gtk/src/eventcontrollerlegacy.ccg @@ -0,0 +1,18 @@ +/* Copyright (C) 2021 The gtkmm Development Team + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see . + */ + +#include + diff --git a/gtk/src/eventcontrollerlegacy.hg b/gtk/src/eventcontrollerlegacy.hg new file mode 100644 index 000000000..e5526518b --- /dev/null +++ b/gtk/src/eventcontrollerlegacy.hg @@ -0,0 +1,53 @@ +/* Copyright (C) 2021 The gtkmm Development Team + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see . + */ + +#include + +_DEFS(gtkmm,gtk) +_PINCLUDE(gtkmm/private/eventcontroller_p.h) + +namespace Gtk +{ +class GTKMM_API Widget; + +/** Event controller that provides raw access to the event stream. + * + * %Gtk::EventControllerLegacy is an event controller that provides raw + * access to the event stream. + * + * It should only be used as a last resort if none of the other event + * controllers or gestures do the job. + * + * @newin{4,3} + * + * @ingroup Gestures + */ +class GTKMM_API EventControllerLegacy : public EventController +{ + _CLASS_GOBJECT(EventControllerLegacy, GtkEventControllerLegacy, GTK_EVENT_CONTROLLER_LEGACY, EventController, GtkEventController, , , GTKMM_API) + +protected: + _CTOR_DEFAULT + +public: + _WRAP_CREATE() + + // no_default_handler because GtkEventControllerLegacyClass is private. +#m4 _CONVERSION(`GdkEvent*',`const Glib::RefPtr&',`Glib::wrap($3, true)') + _WRAP_SIGNAL(bool event(const Glib::RefPtr& event), "event", no_default_handler) +}; + +} // namespace Gtk diff --git a/gtk/src/gtk_signals.defs b/gtk/src/gtk_signals.defs index f65961498..ed48f65cb 100644 --- a/gtk/src/gtk_signals.defs +++ b/gtk/src/gtk_signals.defs @@ -4185,6 +4185,17 @@ (flags "Run Last") ) +;; From GtkEventControllerLegacy + +(define-signal event + (of-object "GtkEventControllerLegacy") + (return-type "gboolean") + (flags "Run Last") + (parameters + '("GdkEvent*" "p0") + ) +) + ;; From GtkEventControllerMotion (define-signal enter diff --git a/tools/extra_defs_gen/generate_defs_gtk.cc b/tools/extra_defs_gen/generate_defs_gtk.cc index c03a396c4..4204fc65e 100644 --- a/tools/extra_defs_gen/generate_defs_gtk.cc +++ b/tools/extra_defs_gen/generate_defs_gtk.cc @@ -108,6 +108,7 @@ int main(int /* argc */, char** /* argv */) << get_defs( GTK_TYPE_EVENT_CONTROLLER ) << get_defs( GTK_TYPE_EVENT_CONTROLLER_FOCUS ) << get_defs( GTK_TYPE_EVENT_CONTROLLER_KEY ) + << get_defs( GTK_TYPE_EVENT_CONTROLLER_LEGACY ) << get_defs( GTK_TYPE_EVENT_CONTROLLER_MOTION ) << get_defs( GTK_TYPE_EVENT_CONTROLLER_SCROLL ) << get_defs( GTK_TYPE_EXPANDER )