[gtkmm] Add API from gtk 4.7.2



commit eb2d434b6e6d263eb3e2d580217ee78f9fae5efa
Author: Kjell Ahlstedt <kjellahlstedt gmail com>
Date:   Sun Sep 11 16:59:44 2022 +0200

    Add API from gtk 4.7.2
    
    * configure.ac:
    * meson.build: Require gtk >= 4.7.2
    * gtk/src/enums.hg: Add enum ContentFit
    * gtk/src/eventcontroller.hg: Ignore gtk_event_controller_set_static_name
    * gtk/src/label.hg: Add set/get/property_tabs()
    * gtk/src/picture.hg: Add set/get/property_content_fit()

 configure.ac               | 2 +-
 gtk/src/enums.hg           | 2 +-
 gtk/src/eventcontroller.hg | 1 +
 gtk/src/label.hg           | 9 ++++++++-
 gtk/src/picture.hg         | 6 +++---
 meson.build                | 2 +-
 6 files changed, 15 insertions(+), 7 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index 89030e00..b8a61ce8 100644
--- a/configure.ac
+++ b/configure.ac
@@ -95,7 +95,7 @@ AS_IF([test "x$enable_static" = xyes],
 # gdkmm really does need GTK, because part of Gdk::DragContext is in GTK.
 # The extra gdk-pixbuf-2.0 check is because gdkmm requires a newer gdk-pixbuf than gtk4 requires.
 # TODO: Remove the mention of cairomm once pangomm needs to depend on such a new version.
-AC_SUBST([GDKMM_MODULES], ['giomm-2.68 >= 2.68.0 pangomm-2.48 >= 2.50.0 cairomm-1.16 >= 1.15.4 gtk4 >= 4.7.1 
gdk-pixbuf-2.0 >= 2.35.5'])
+AC_SUBST([GDKMM_MODULES], ['giomm-2.68 >= 2.68.0 pangomm-2.48 >= 2.50.0 cairomm-1.16 >= 1.15.4 gtk4 >= 4.7.2 
gdk-pixbuf-2.0 >= 2.35.5'])
 
 AS_IF([test "x$gtkmm_host_windows" = xyes],
       [GTKMM_MODULES=$GDKMM_MODULES],
diff --git a/gtk/src/enums.hg b/gtk/src/enums.hg
index 831c32b7..6818d1a9 100644
--- a/gtk/src/enums.hg
+++ b/gtk/src/enums.hg
@@ -60,7 +60,7 @@ _WRAP_ENUM(InputPurpose, GtkInputPurpose, decl_prefix GTKMM_API)
 _WRAP_ENUM(InputHints, GtkInputHints, decl_prefix GTKMM_API)
 _WRAP_ENUM(BaselinePosition, GtkBaselinePosition, decl_prefix GTKMM_API)
 _WRAP_ENUM(ShortcutScope, GtkShortcutScope, decl_prefix GTKMM_API)
-//_WRAP_ENUM(ContentFit, GtkContentFit, decl_prefix GTKMM_API)
+_WRAP_ENUM(ContentFit, GtkContentFit, decl_prefix GTKMM_API)
 
 #ifndef DOXYGEN_SHOULD_SKIP_THIS
 //We need this because we can't just use floats for enum value.
diff --git a/gtk/src/eventcontroller.hg b/gtk/src/eventcontroller.hg
index 7c0260b6..13e9fb12 100644
--- a/gtk/src/eventcontroller.hg
+++ b/gtk/src/eventcontroller.hg
@@ -80,6 +80,7 @@ public:
   _WRAP_METHOD(void set_propagation_limit(PropagationLimit limit), 
gtk_event_controller_set_propagation_limit)
   _WRAP_METHOD(Glib::ustring get_name() const, gtk_event_controller_get_name)
   _WRAP_METHOD(void set_name(const Glib::ustring& name), gtk_event_controller_set_name)
+  _IGNORE(gtk_event_controller_set_static_name)
 
   _WRAP_METHOD(Glib::RefPtr<const Gdk::Event> get_current_event() const,
     gtk_event_controller_get_current_event, refreturn)
diff --git a/gtk/src/label.hg b/gtk/src/label.hg
index ccd5d0da..43245971 100644
--- a/gtk/src/label.hg
+++ b/gtk/src/label.hg
@@ -21,6 +21,7 @@ _PINCLUDE(gtk/gtk.h)
 
 #include <gtkmm/widget.h>
 #include <pangomm/attrlist.h>
+#include <pangomm/tabarray.h>
 #include <giomm/menumodel.h>
 
 namespace Gtk
@@ -137,7 +138,12 @@ public:
   _WRAP_METHOD(Glib::RefPtr<Gio::MenuModel> get_extra_menu(), gtk_label_get_extra_menu, refreturn)
   _WRAP_METHOD(Glib::RefPtr<const Gio::MenuModel> get_extra_menu() const, gtk_label_get_extra_menu, 
refreturn, constversion)
 
-  #m4 _CONVERSION(`const char*',`const Glib::ustring&',__GCHARP_TO_USTRING)
+#m4 _CONVERSION(`const Pango::TabArray&',`PangoTabArray*',`const_cast<Pango::TabArray&>($3).gobj()')
+#m4 _CONVERSION(`PangoTabArray*',`Pango::TabArray',`Pango::TabArray(($3), false)')
+ _WRAP_METHOD(void set_tabs(const Pango::TabArray& tabs), gtk_label_set_tabs)
+ _WRAP_METHOD(Pango::TabArray get_tabs() const, gtk_label_get_tabs)
+
+#m4 _CONVERSION(`const char*',`const Glib::ustring&',__GCHARP_TO_USTRING)
   _WRAP_SIGNAL(bool activate_link(const Glib::ustring& uri), "activate-link", no_default_handler)
 
   //Keybinding signals:
@@ -164,6 +170,7 @@ public:
   _WRAP_PROPERTY("xalign", float)
   _WRAP_PROPERTY("yalign", float)
   _WRAP_PROPERTY("extra-menu", Glib::RefPtr<Gio::MenuModel>)
+  _WRAP_PROPERTY("tabs", Pango::TabArray)
 };
 
 }  // namespace Gtk
diff --git a/gtk/src/picture.hg b/gtk/src/picture.hg
index a4bcbee1..4b2d4f80 100644
--- a/gtk/src/picture.hg
+++ b/gtk/src/picture.hg
@@ -128,8 +128,8 @@ public:
   _WRAP_METHOD(void set_can_shrink(bool can_shrink = true), gtk_picture_set_can_shrink)
   _WRAP_METHOD(bool get_can_shrink() const, gtk_picture_get_can_shrink)
 
-  //_WRAP_METHOD(void set_content_fit(ContentFit content_fit), gtk_picture_set_content_fit, newin "4,8")
-  //_WRAP_METHOD(ContentFit get_content_fit() const, gtk_picture_get_content_fit, newin "4,8")
+  _WRAP_METHOD(void set_content_fit(ContentFit content_fit), gtk_picture_set_content_fit)
+  _WRAP_METHOD(ContentFit get_content_fit() const, gtk_picture_get_content_fit)
 
   _WRAP_METHOD(void set_alternative_text(const Glib::ustring& alternative_text{NULL}), 
gtk_picture_set_alternative_text)
   _WRAP_METHOD(Glib::ustring get_alternative_text() const, gtk_picture_get_alternative_text)
@@ -139,7 +139,7 @@ public:
   _WRAP_PROPERTY("alternative-text", Glib::ustring)
   _WRAP_PROPERTY("keep-aspect-ratio", bool, deprecated "Use property_content_fit() instead.")
   _WRAP_PROPERTY("can-shrink", bool)
-  //_WRAP_PROPERTY("content-fit", ContentFit, newin "4,8")
+  _WRAP_PROPERTY("content-fit", ContentFit)
 };
 
 } //namespace Gtk
diff --git a/meson.build b/meson.build
index 5a2c24ec..3a77e3ba 100644
--- a/meson.build
+++ b/meson.build
@@ -106,7 +106,7 @@ install_pkgconfigdir = install_libdir / 'pkgconfig'
 glibmm_req = '>= 2.68.0'
 
 # Gtk supported pkg-config files on MSVC files for a good while, so just use that
-gtk_req = '>= 4.7.1'
+gtk_req = '>= 4.7.2'
 gtk_dep = dependency('gtk4', version: gtk_req)
 
 cairomm_req = '>= 1.15.4'


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]