[gtkmm] Gdk, Gtk: Add API for version 4.6



commit 7f5e6207bf6a0d2e6717b3039a6816881a603923
Author: Kjell Ahlstedt <kjellahlstedt gmail com>
Date:   Tue Feb 8 14:59:45 2022 +0100

    Gdk, Gtk: Add API for version 4.6
    
    * configure.ac:
    * meson.build: Require pangomm-2.48 >= 2.50.0, gtk4 >= 4.6.0
    * gdk/src/display.[ccg|hg]: Add create_gl_context().
    * gdk/src/texture.[ccg|hg]: Add enum TextError, create_from_filename(),
    create_from_bytes(), save_to_png_bytes(), save_to_tiff(),
    save_to_tiff_bytes().
    * gtk/src/dropdown.hg: Add set/get/property_show_arrow().
    * gtk/src/enums.hg: Add enum NaturalWrapMode.
    * gtk/src/flowbox.hg: Add prepend(), append().
    * gtk/src/label.hg: Add set/get/property_natural_wrap_mode().
    * gtk/src/menubutton.[ccg|hg]: Add set/unset/get/property_child().
    * gtk/src/settings.hg: Add property_gtk_hint_font_metrics().
    * gtk/src/textchildanchor.hg: Add create(replacement_character).
    * gtk/src/texttag.hg: Add properties line_height(), text_transform(),
    word(), sentence(), line_height_set(), text_transform_set(),
    word_set(), sentence_set().
    * gtk/src/treeexpander.hg: Add set/get/property_indent_for_icon().
    * gtk/src/window.hg: Add property_titlebar().

 configure.ac                  |  2 +-
 gdk/src/display.ccg           |  1 +
 gdk/src/display.hg            |  3 +++
 gdk/src/texture.ccg           |  1 +
 gdk/src/texture.hg            | 16 +++++++++++++++-
 gtk/src/combobox.hg           |  2 ++
 gtk/src/dropdown.hg           |  6 ++++++
 gtk/src/enums.hg              |  1 +
 gtk/src/flowbox.hg            |  2 ++
 gtk/src/gtk_docs_override.xml | 13 +++++++++++++
 gtk/src/label.hg              |  3 +++
 gtk/src/menubutton.ccg        |  5 +++++
 gtk/src/menubutton.hg         | 11 +++++++++++
 gtk/src/settings.hg           |  1 +
 gtk/src/textchildanchor.hg    | 16 ++++++++++++++++
 gtk/src/texttag.hg            |  9 +++++++++
 gtk/src/treeexpander.hg       |  4 ++++
 gtk/src/window.hg             |  1 +
 meson.build                   |  4 ++--
 tools/m4/convert_gtk.m4       |  1 +
 20 files changed, 98 insertions(+), 4 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index 56229a1d..82902469 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.48.0 cairomm-1.16 >= 1.15.4 gtk4 >= 4.5.0 
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.6.0 
gdk-pixbuf-2.0 >= 2.35.5'])
 
 AS_IF([test "x$gtkmm_host_windows" = xyes],
       [GTKMM_MODULES=$GDKMM_MODULES],
diff --git a/gdk/src/display.ccg b/gdk/src/display.ccg
index e7311073..201335e0 100644
--- a/gdk/src/display.ccg
+++ b/gdk/src/display.ccg
@@ -21,6 +21,7 @@
 #include <giomm/listmodel.h>
 #include <gdkmm/applaunchcontext.h>
 #include <gdkmm/clipboard.h>
+#include <gdkmm/glcontext.h>
 #include <gdkmm/seat.h>
 #include <gdkmm/monitor.h>
 #include <gdkmm/surface.h>
diff --git a/gdk/src/display.hg b/gdk/src/display.hg
index 4b4f0d79..31aa8331 100644
--- a/gdk/src/display.hg
+++ b/gdk/src/display.hg
@@ -36,6 +36,7 @@ _CC_INCLUDE(gdk/gdk.h)
 
 class GDKMM_API Clipboard;
 class GDKMM_API Device;
+class GDKMM_API GLContext;
 class GDKMM_API Seat;
 class GDKMM_API Monitor;
 class GDKMM_API Surface;
@@ -102,6 +103,8 @@ public:
    */
   _WRAP_METHOD(void prepare_gl(), gdk_display_prepare_gl, errthrow)
 
+  _WRAP_METHOD(Glib::RefPtr<GLContext> create_gl_context(), gdk_display_create_gl_context, errthrow)
+
   _WRAP_METHOD(void notify_startup_complete(const Glib::ustring& startup_id), 
gdk_display_notify_startup_complete)
   _WRAP_METHOD(Glib::ustring get_startup_notification_id() const, gdk_display_get_startup_notification_id)
 
diff --git a/gdk/src/texture.ccg b/gdk/src/texture.ccg
index 386ac007..eb5c8c2f 100644
--- a/gdk/src/texture.ccg
+++ b/gdk/src/texture.ccg
@@ -14,6 +14,7 @@
  * License along with this library. If not, see <http://www.gnu.org/licenses/>.
  */
 
+#include <glibmm/bytes.h>
 #include <giomm/file.h>
 #include <gdkmm/pixbuf.h>
 #include <gdk/gdk.h>
diff --git a/gdk/src/texture.hg b/gdk/src/texture.hg
index cdd92574..eca38acf 100644
--- a/gdk/src/texture.hg
+++ b/gdk/src/texture.hg
@@ -20,15 +20,21 @@
 _DEFS(gdkmm,gdk)
 _PINCLUDE(glibmm/private/object_p.h)
 
+namespace Glib
+{
+class GDKMM_API Bytes;
+}
 namespace Gio
 {
-class File;
+class GDKMM_API File;
 }
 
 namespace Gdk
 {
 class GDKMM_API Pixbuf;
 
+_WRAP_GERROR(TextureError, GdkTextureError, GDK_TEXTURE_ERROR, decl_prefix GDKMM_API)
+
 /** Pixel data.
  *
  * %Gdk::Texture is the basic element used to refer to pixel data.
@@ -62,11 +68,19 @@ public:
     const std::string& resource_path), gdk_texture_new_from_resource)
   _WRAP_METHOD(static Glib::RefPtr<Texture> create_from_file(
     const Glib::RefPtr<Gio::File>& file), gdk_texture_new_from_file, errthrow)
+  _WRAP_METHOD(static Glib::RefPtr<Texture> create_from_filename(
+    const std::string& path), gdk_texture_new_from_filename, errthrow)
+  _WRAP_METHOD(static Glib::RefPtr<Texture> create_from_bytes(
+    const Glib::RefPtr<const Glib::Bytes>& bytes), gdk_texture_new_from_bytes, errthrow)
 
   _WRAP_METHOD(int get_width() const, gdk_texture_get_width)
   _WRAP_METHOD(int get_height() const, gdk_texture_get_height)
   _WRAP_METHOD(void download(guchar* data, gsize stride) const, gdk_texture_download)
+  //TODO: When we can break ABI, change to const std::string& filename
   _WRAP_METHOD(bool save_to_png(const Glib::ustring& filename) const, gdk_texture_save_to_png)
+  _WRAP_METHOD(Glib::RefPtr<Glib::Bytes> save_to_png_bytes() const, gdk_texture_save_to_png_bytes)
+  _WRAP_METHOD(bool save_to_tiff(const std::string& filename) const, gdk_texture_save_to_tiff)
+  _WRAP_METHOD(Glib::RefPtr<Glib::Bytes> save_to_tiff_bytes() const, gdk_texture_save_to_tiff_bytes)
 
   _WRAP_PROPERTY("width", int)
   _WRAP_PROPERTY("height", int)
diff --git a/gtk/src/combobox.hg b/gtk/src/combobox.hg
index 76093f4a..3f2e0e4c 100644
--- a/gtk/src/combobox.hg
+++ b/gtk/src/combobox.hg
@@ -218,6 +218,8 @@ dnl// See bug http://bugzilla.gnome.org/show_bug.cgi?id=168747.
 #m4end
   _WRAP_SIGNAL(Glib::ustring format_entry_text(const TreeModel::Path& path), "format-entry-text")
 
+  //Action signal:
+  _IGNORE_SIGNAL("activate")
   //Key-binding signals:
   _IGNORE_SIGNAL("move-active")
   _IGNORE_SIGNAL("popup")
diff --git a/gtk/src/dropdown.hg b/gtk/src/dropdown.hg
index 0a6aff6e..d2afc18a 100644
--- a/gtk/src/dropdown.hg
+++ b/gtk/src/dropdown.hg
@@ -91,6 +91,11 @@ public:
 
   _WRAP_METHOD(void set_enable_search(bool enable_search = true), gtk_drop_down_set_enable_search)
   _WRAP_METHOD(bool get_enable_search() const, gtk_drop_down_get_enable_search)
+  _WRAP_METHOD(void set_show_arrow(bool show_arrow = true), gtk_drop_down_set_show_arrow)
+  _WRAP_METHOD(bool set_show_arrow() const, gtk_drop_down_get_show_arrow)
+
+  // Action signal:
+  _IGNORE_SIGNAL("activate")
 
   _WRAP_PROPERTY("factory", Glib::RefPtr<ListItemFactory>)
   _WRAP_PROPERTY("list-factory", Glib::RefPtr<ListItemFactory>)
@@ -99,6 +104,7 @@ public:
   _WRAP_PROPERTY("selected-item", Glib::RefPtr<Glib::ObjectBase>)
   _WRAP_PROPERTY("enable-search", bool)
   _WRAP_PROPERTY("expression", Glib::RefPtr<Expression<Glib::ustring>>)
+  _WRAP_PROPERTY("show-arrow", bool)
 };
 
 } // namespace Gtk
diff --git a/gtk/src/enums.hg b/gtk/src/enums.hg
index 918bc864..3852f3b5 100644
--- a/gtk/src/enums.hg
+++ b/gtk/src/enums.hg
@@ -49,6 +49,7 @@ _WRAP_ENUM(ScrollType, GtkScrollType, decl_prefix GTKMM_API)
 _WRAP_ENUM(SelectionMode, GtkSelectionMode, decl_prefix GTKMM_API)
 _WRAP_ENUM(StackTransitionType, GtkStackTransitionType, decl_prefix GTKMM_API)
 _WRAP_ENUM(WrapMode, GtkWrapMode, decl_prefix GTKMM_API)
+_WRAP_ENUM(NaturalWrapMode, GtkNaturalWrapMode, decl_prefix GTKMM_API)
 _WRAP_ENUM(SortType, GtkSortType, decl_prefix GTKMM_API)
 _WRAP_ENUM(Ordering, GtkOrdering, decl_prefix GTKMM_API)
 _WRAP_ENUM(PageOrientation, GtkPageOrientation, decl_prefix GTKMM_API)
diff --git a/gtk/src/flowbox.hg b/gtk/src/flowbox.hg
index 52753ded..1da93847 100644
--- a/gtk/src/flowbox.hg
+++ b/gtk/src/flowbox.hg
@@ -129,6 +129,8 @@ public:
   _WRAP_METHOD(void set_activate_on_single_click(bool single = true), 
gtk_flow_box_set_activate_on_single_click)
   _WRAP_METHOD(bool get_activate_on_single_click() const, gtk_flow_box_get_activate_on_single_click)
 
+  _WRAP_METHOD(void prepend(Widget& child), gtk_flow_box_prepend)
+  _WRAP_METHOD(void append(Widget& child), gtk_flow_box_append)
   _WRAP_METHOD(void insert(Widget& widget, int position), gtk_flow_box_insert)
   _WRAP_METHOD(void remove(Widget& widget), gtk_flow_box_remove)
 
diff --git a/gtk/src/gtk_docs_override.xml b/gtk/src/gtk_docs_override.xml
index f601ab20..2de2ad87 100644
--- a/gtk/src/gtk_docs_override.xml
+++ b/gtk/src/gtk_docs_override.xml
@@ -105,6 +105,7 @@
 <substitute_enumerator_name from_prefix="PANGO_UNDERLINE_" to_prefix="Pango::Underline::" />
 <substitute_enumerator_name from_prefix="PANGO_OVERLINE_" to_prefix="Pango::Overline::" />
 <substitute_enumerator_name from_prefix="PANGO_SHOW_" to_prefix="Pango::ShowFlags::" />
+<substitute_enumerator_name from_prefix="PANGO_TEXT_TRANSFORM_" to_prefix="Pango::TextTransform::" />
 <substitute_enumerator_name from_prefix="GTK_TEXT_WINDOW_" to_prefix="Gtk::TextWindowType::" />
 <substitute_enumerator_name from_prefix="GTK_TREE_MODEL_" to_prefix="Gtk::TreeModel::Flags::" />
 <substitute_enumerator_name from_prefix="GTK_TREE_VIEW_COLUMN_" to_prefix="Gtk::TreeViewColumn::Sizing::" />
@@ -129,6 +130,7 @@
 <substitute_enumerator_name from_prefix="GTK_UPDATE_" to_prefix="Gtk::SpinButton::UpdatePolicy::" />
 <substitute_enumerator_name from_prefix="GTK_STACK_TRANSITION_TYPE_" to_prefix="Gtk::StackTransitionType::" 
/>
 <substitute_enumerator_name from_prefix="GTK_WRAP_" to_prefix="Gtk::WrapMode::" />
+<substitute_enumerator_name from_prefix="GTK_NATURAL_WRAP_" to_prefix="Gtk::NaturalWrapMode::" />
 <substitute_enumerator_name from_prefix="GTK_TREE_VIEW_GRID_LINES_" to_prefix="Gtk::TreeView::GridLines::" />
 <substitute_enumerator_name from_prefix="GTK_SORT_" to_prefix="Gtk::SortType::" />
 <substitute_enumerator_name from_prefix="GTK_FONT_CHOOSER_LEVEL_" to_prefix="Gtk::FontChooser::Level::" />
@@ -1402,4 +1404,15 @@ pointer buttons. See #GdkModifierType.
 <return></return>
 </signal>
 
+<!-- TODO: Remove this function description when gtk's description contains -->
+<!-- the correct number of parameters (@replacement_character). -->
+<function name="gtk_text_child_anchor_new_with_replacement">
+<parameters>
+<parameter name="replacement_character">
+<parameter_description> one replacement character.
+</parameter_description>
+</parameter>
+</parameters>
+</function>
+
 </root>
diff --git a/gtk/src/label.hg b/gtk/src/label.hg
index 6cbc2592..32641273 100644
--- a/gtk/src/label.hg
+++ b/gtk/src/label.hg
@@ -102,6 +102,8 @@ public:
   _WRAP_METHOD(bool get_wrap() const, gtk_label_get_wrap)
   _WRAP_METHOD(void set_wrap_mode(Pango::WrapMode wrap_mode), gtk_label_set_wrap_mode)
   _WRAP_METHOD(Pango::WrapMode get_wrap_mode() const, gtk_label_get_wrap_mode)
+  _WRAP_METHOD(void set_natural_wrap_mode(NaturalWrapMode wrap_mode), gtk_label_set_natural_wrap_mode)
+  _WRAP_METHOD(NaturalWrapMode get_natural_wrap_mode() const, gtk_label_get_natural_wrap_mode)
   _WRAP_METHOD(void set_selectable(bool setting = true), gtk_label_set_selectable)
   _WRAP_METHOD(bool get_selectable() const, gtk_label_get_selectable)
   _WRAP_METHOD(void select_region(int start_offset, int end_offset), gtk_label_select_region)
@@ -150,6 +152,7 @@ public:
   _WRAP_PROPERTY("justify", Justification)
   _WRAP_PROPERTY("wrap", bool)
   _WRAP_PROPERTY("wrap-mode", Pango::WrapMode)
+  _WRAP_PROPERTY("natural-wrap-mode", NaturalWrapMode)
   _WRAP_PROPERTY("selectable", bool)
   _WRAP_PROPERTY("mnemonic-keyval", guint)
   _WRAP_PROPERTY("mnemonic-widget", Widget*)
diff --git a/gtk/src/menubutton.ccg b/gtk/src/menubutton.ccg
index 51898e66..eca56d91 100644
--- a/gtk/src/menubutton.ccg
+++ b/gtk/src/menubutton.ccg
@@ -68,4 +68,9 @@ void MenuButton::unset_create_popup_func()
   gtk_menu_button_set_create_popup_func(gobj(), nullptr, nullptr, nullptr);
 }
 
+void MenuButton::unset_child()
+{
+  gtk_menu_button_set_child(gobj(), nullptr);
+}
+
 } //namespace Gtk
diff --git a/gtk/src/menubutton.hg b/gtk/src/menubutton.hg
index 92759c84..453c3921 100644
--- a/gtk/src/menubutton.hg
+++ b/gtk/src/menubutton.hg
@@ -119,6 +119,16 @@ public:
   _WRAP_METHOD(void set_primary(bool primary = true), gtk_menu_button_set_primary)
   _WRAP_METHOD(bool get_primary() const, gtk_menu_button_get_primary)
 
+  _WRAP_METHOD(void set_child(Widget& child), gtk_menu_button_set_child)
+
+  /** Removes the child widget.
+   * @newin{4,6}
+   */
+  void unset_child();
+
+  _WRAP_METHOD(Widget* get_child(), gtk_menu_button_get_child)
+  _WRAP_METHOD(const Widget* get_child() const, gtk_menu_button_get_child, constversion)
+
   _IGNORE_SIGNAL("activate")dnl// Action signal
 
   _WRAP_PROPERTY("menu-model", Glib::RefPtr<Gio::MenuModel>)
@@ -130,6 +140,7 @@ public:
   _WRAP_PROPERTY("use-underline", bool)
   _WRAP_PROPERTY("has-frame", bool)
   _WRAP_PROPERTY("primary", bool)
+  _WRAP_PROPERTY("child", Widget*)
 };
 
 } /* namespace Gtk */
diff --git a/gtk/src/settings.hg b/gtk/src/settings.hg
index 43b10a70..ea49cd60 100644
--- a/gtk/src/settings.hg
+++ b/gtk/src/settings.hg
@@ -56,6 +56,7 @@ public:
   _WRAP_PROPERTY("gtk-xft-hintstyle", Glib::ustring)
   _WRAP_PROPERTY("gtk-xft-rgba", Glib::ustring)
   _WRAP_PROPERTY("gtk-xft-dpi", int)
+  _WRAP_PROPERTY("gtk-hint-font-metrics", bool)
   _WRAP_PROPERTY("gtk-cursor-theme-name", Glib::ustring)
   _WRAP_PROPERTY("gtk-cursor-theme-size", int)
   _WRAP_PROPERTY("gtk-alternative-button-order", bool)
diff --git a/gtk/src/textchildanchor.hg b/gtk/src/textchildanchor.hg
index c553d180..4824cc8a 100644
--- a/gtk/src/textchildanchor.hg
+++ b/gtk/src/textchildanchor.hg
@@ -42,6 +42,22 @@ protected:
 public:
   _WRAP_CREATE()
 
+  // gtk_text_child_anchor_new_with_replacement() does more than call g_object_new().
+  /** Creates a new `Gtk::TextChildAnchor` with the given replacement character.
+   *
+   * Usually you would then insert it into a `Gtk::TextBuffer` with
+   * Gtk::TextBuffer::insert_child_anchor().
+   *
+   * @param replacement_character Must be exactly one UTF-8 character.
+   *                              Can be more than one byte.
+   *
+   * @newin{4,6}
+   *
+   * @return A new `Gtk::TextChildAnchor`.
+   */
+  _WRAP_METHOD(static Glib::RefPtr<TextChildAnchor> create(const Glib::ustring& replacement_character),
+    gtk_text_child_anchor_new_with_replacement)
+
   /** Gets a list of all widgets anchored at this child anchor.
    *
    * @return A vector of widgets anchored at this %TextChildAnchor.
diff --git a/gtk/src/texttag.hg b/gtk/src/texttag.hg
index ab90e2c7..9cc5a570 100644
--- a/gtk/src/texttag.hg
+++ b/gtk/src/texttag.hg
@@ -21,6 +21,7 @@ _CONFIGINCLUDE(gtkmmconfig.h)
 #include <glibmm/object.h>
 #include <gtkmm/enums.h>
 #include <gdkmm/rgba.h>
+#include <pangomm/attributes.h>
 #include <pangomm/fontdescription.h>
 #include <pangomm/tabarray.h>
 
@@ -89,6 +90,7 @@ public:
   _WRAP_PROPERTY("direction", TextDirection)
   _WRAP_PROPERTY("left-margin", int)
   _WRAP_PROPERTY("indent", int)
+  _WRAP_PROPERTY("line-height", float)
   _WRAP_PROPERTY("strikethrough", bool)
   _WRAP_PROPERTY("strikethrough-rgba", Gdk::RGBA, newin "3,20")
   _WRAP_PROPERTY("right-margin", int)
@@ -107,6 +109,9 @@ public:
   _WRAP_PROPERTY("allow-breaks", bool)
   _WRAP_PROPERTY("show-spaces", Pango::ShowFlags)
   _WRAP_PROPERTY("insert-hyphens", bool)
+  _WRAP_PROPERTY("text-transform", Pango::TextTransform)
+  _WRAP_PROPERTY("word", bool)
+  _WRAP_PROPERTY("sentence", bool)
   _WRAP_PROPERTY("accumulative-margin", bool)
   _WRAP_PROPERTY("background-set", bool)
   _WRAP_PROPERTY("foreground-set", bool)
@@ -125,6 +130,7 @@ public:
   _WRAP_PROPERTY("justification-set", bool)
   _WRAP_PROPERTY("left-margin-set", bool)
   _WRAP_PROPERTY("indent-set", bool)
+  _WRAP_PROPERTY("line-height-set", bool)
   _WRAP_PROPERTY("strikethrough-set", bool)
   _WRAP_PROPERTY("strikethrough-rgba-set", bool, newin "3,20")
   _WRAP_PROPERTY("right-margin-set", bool)
@@ -146,6 +152,9 @@ public:
   _WRAP_PROPERTY("allow-breaks-set", bool)
   _WRAP_PROPERTY("show-spaces-set", bool)
   _WRAP_PROPERTY("insert-hyphens-set", bool)
+  _WRAP_PROPERTY("text-transform-set", bool)
+  _WRAP_PROPERTY("word-set", bool)
+  _WRAP_PROPERTY("sentence-set", bool)
 };
 
 } //namespace Gtk
diff --git a/gtk/src/treeexpander.hg b/gtk/src/treeexpander.hg
index 71116e5c..8c79c28e 100644
--- a/gtk/src/treeexpander.hg
+++ b/gtk/src/treeexpander.hg
@@ -73,9 +73,13 @@ public:
    */
   void unset_list_row();
 
+  _WRAP_METHOD(bool get_indent_for_icon() const, gtk_tree_expander_get_indent_for_icon)
+  _WRAP_METHOD(void set_indent_for_icon(bool indent_for_icon = true), gtk_tree_expander_set_indent_for_icon)
+
   _WRAP_PROPERTY("child", Widget*)
   _WRAP_PROPERTY("item", Glib::RefPtr<Glib::ObjectBase>)
   _WRAP_PROPERTY("list-row", Glib::RefPtr<TreeListRow>)
+  _WRAP_PROPERTY("indent-for-icon", bool)
 };
 
 } // namespace Gtk
diff --git a/gtk/src/window.hg b/gtk/src/window.hg
index 4198903a..194431e6 100644
--- a/gtk/src/window.hg
+++ b/gtk/src/window.hg
@@ -104,6 +104,7 @@ public:
   _WRAP_PROPERTY("default-widget", Widget*)
   _WRAP_PROPERTY("focus-widget", Widget*)
   _WRAP_PROPERTY("child", Widget*)
+  _WRAP_PROPERTY("titlebar", Widget*)
   _WRAP_PROPERTY("handle-menubar-accel", bool)
 
   _WRAP_SIGNAL(void keys_changed(), "keys_changed")
diff --git a/meson.build b/meson.build
index 973c6597..8fc3b061 100644
--- a/meson.build
+++ b/meson.build
@@ -103,13 +103,13 @@ 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.5.0'
+gtk_req = '>= 4.6.0'
 gtk_dep = dependency('gtk4', version: gtk_req)
 
 cairomm_req = '>= 1.15.4'
 cairomm_dep = dependency('cairomm-1.16', version: cairomm_req)
 
-pangomm_req = '>= 2.48.0'
+pangomm_req = '>= 2.50.0'
 pangomm_dep = dependency('pangomm-2.48', version: pangomm_req)
 
 gdk_pixbuf_req = '>= 2.35.5'
diff --git a/tools/m4/convert_gtk.m4 b/tools/m4/convert_gtk.m4
index daa1675a..6ce3b9ea 100644
--- a/tools/m4/convert_gtk.m4
+++ b/tools/m4/convert_gtk.m4
@@ -61,6 +61,7 @@ _CONV_ENUM(Gtk,Justification)
 _CONV_ENUM(Gtk,License)
 _CONV_ENUM(Gtk,MessageType)
 _CONV_ENUM(Gtk,MovementStep)
+_CONV_ENUM(Gtk,NaturalWrapMode)
 _CONV_ENUM(Gtk,NotebookTab)
 _CONV_ENUM(Gtk,Orientation)
 _CONV_ENUM(Gtk,Ordering)


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