[gtkmm] Gdk, Gtk: Add API for version 4.4
- From: Kjell Ahlstedt <kjellahl src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtkmm] Gdk, Gtk: Add API for version 4.4
- Date: Wed, 8 Sep 2021 14:25:32 +0000 (UTC)
commit c831fa2913909151d87366a756cd63e405f9d839
Author: Kjell Ahlstedt <kjellahlstedt gmail com>
Date: Wed Sep 8 15:34:19 2021 +0200
Gdk, Gtk: Add API for version 4.4
* configure.ac:
* meson.build: Require gtk4 >= 4.4.0
* gdk/src/contentformats.hg: Add parse().
* gdk/src/display.hg: Add prepare_gl().
* gdk/src/glcontext.hg: Add is_shared().
* gtk/src/appchooserbutton.hg:
* gtk/src/colorbutton.hg:
* gtk/src/fontbutton.hg: Ignore the ::activate signal.
* gtk/src/droptarget.[ccg|hg]: Add get_current_drop() and
property_current_drop(). Deprecate get_drop() and property_drop().
* gtk/src/filefilter.hg: Add add_suffix().
* gtk/src/mediastream.[ccg|hg]: Add stream_prepared(), stream_unprepared()
and stream_ended(). Deprecate prepared(), unprepared() and ended().
* gtk/src/menubutton.hg: Add set/get/property_always_show_arrow() and
set/get/property_primary(). Ignore the ::activate signal.
* gtk/src/textview.hg: Add set/get_rtl_context() and set/get_ltr_context().
configure.ac | 2 +-
gdk/src/contentformats.hg | 6 +++---
gdk/src/display.hg | 22 ++++++++++++++++++++++
gdk/src/glcontext.hg | 6 +++---
gtk/src/appchooserbutton.hg | 2 +-
gtk/src/colorbutton.hg | 1 +
gtk/src/droptarget.ccg | 19 -------------------
gtk/src/droptarget.hg | 29 +++++++++--------------------
gtk/src/filefilter.hg | 5 ++++-
gtk/src/fontbutton.hg | 1 +
gtk/src/mediastream.ccg | 26 --------------------------
gtk/src/mediastream.hg | 29 ++++++++---------------------
gtk/src/menubutton.hg | 10 ++++++++++
gtk/src/textview.hg | 5 +++++
meson.build | 2 +-
15 files changed, 69 insertions(+), 96 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index b3858715..3df09ab3 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.2.0
gdk-pixbuf-2.0 >= 2.35.5'])
+AC_SUBST([GDKMM_MODULES], ['giomm-2.68 >= 2.68.0 pangomm-2.48 >= 2.48.0 cairomm-1.16 >= 1.15.4 gtk4 >= 4.4.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/contentformats.hg b/gdk/src/contentformats.hg
index 6f0454e4..54ab1d87 100644
--- a/gdk/src/contentformats.hg
+++ b/gdk/src/contentformats.hg
@@ -95,11 +95,11 @@ public:
*/
_WRAP_METHOD(static Glib::RefPtr<ContentFormats> create(GType type), gdk_content_formats_new_for_gtype)
+ _WRAP_METHOD(static Glib::RefPtr<ContentFormats> parse(const Glib::ustring& string),
gdk_content_formats_parse)
+
/** Prints the given %ContentFormats into a string for human consumption.
- * This is meant for debugging and logging.
*
- * The form of the representation may change at any time and is
- * not guranteed to stay identical.
+ * The resulting string can be parsed with parse().
*
* @return A new string.
*/
diff --git a/gdk/src/display.hg b/gdk/src/display.hg
index a8920bec..4b4f0d79 100644
--- a/gdk/src/display.hg
+++ b/gdk/src/display.hg
@@ -80,6 +80,28 @@ public:
_WRAP_METHOD(Glib::RefPtr<const Clipboard> get_primary_clipboard() const,
gdk_display_get_primary_clipboard, refreturn, constversion)
_WRAP_METHOD(bool supports_input_shapes() const, gdk_display_supports_input_shapes)
+
+ /** Checks that OpenGL is available for this display and ensures that it is
+ * properly initialized.
+ *
+ * When this fails, an exception will be thrown describing the error.
+ *
+ * Note that even if this function succeeds, creating a `Gdk::GLContext`
+ * may still fail.
+ *
+ * This function is idempotent. Calling it multiple times will just
+ * return the same value or error.
+ *
+ * You never need to call this function, GDK will call it automatically
+ * as needed. But you can use it as a check when setting up code that
+ * might make use of OpenGL.
+ *
+ * @newin{4,4}
+ *
+ * @throws Glib::Error
+ */
+ _WRAP_METHOD(void prepare_gl(), gdk_display_prepare_gl, 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/glcontext.hg b/gdk/src/glcontext.hg
index 4b39ec93..3ec3de7b 100644
--- a/gdk/src/glcontext.hg
+++ b/gdk/src/glcontext.hg
@@ -52,8 +52,7 @@ public:
refreturn, constversion, newin "3,18", deprecated "Always returns an empty RefPtr.")
_WRAP_METHOD(void get_version(int& major, int& minor) const, gdk_gl_context_get_version, newin "3,18")
_WRAP_METHOD(bool is_legacy() const, gdk_gl_context_is_legacy)
- //TODO: Add is_shared() when gtkmm requires gtk >= 4.3.2
- //_WRAP_METHOD(bool is_shared() const, gdk_gl_context_is_shared, newin "4,4")
+ _WRAP_METHOD(bool is_shared(const Glib::RefPtr<const GLContext>& other) const, gdk_gl_context_is_shared,
newin "4,4")
_WRAP_METHOD(void get_required_version(int& major, int& minor) const, gdk_gl_context_get_required_version,
newin "3,18")
_WRAP_METHOD(void set_required_version(int major, int minor), gdk_gl_context_set_required_version, newin
"3,18")
_WRAP_METHOD(bool get_debug_enabled() const, gdk_gl_context_get_debug_enabled, newin "3,18")
@@ -96,7 +95,8 @@ public:
_WRAP_METHOD(static Glib::RefPtr<GLContext> get_current(), gdk_gl_context_get_current, refreturn, newin
"3,18")
_WRAP_METHOD(static void clear_current(), gdk_gl_context_clear_current, newin "3,18")
- _WRAP_PROPERTY("shared-context", Glib::RefPtr<GLContext>, newin "3,18", deprecated "Always returns an
empty RefPtr.")
+ _WRAP_PROPERTY("shared-context", Glib::RefPtr<GLContext>, newin "3,18",
+ deprecated "Always returns an empty RefPtr. Use is_shared() to check if contexts can be shared.")
};
} // namespace Gdk
diff --git a/gtk/src/appchooserbutton.hg b/gtk/src/appchooserbutton.hg
index b0bf4805..6e5aad1d 100644
--- a/gtk/src/appchooserbutton.hg
+++ b/gtk/src/appchooserbutton.hg
@@ -85,6 +85,7 @@ public:
_WRAP_SIGNAL(void changed(), "changed", no_default_handler)
_WRAP_SIGNAL(void custom_item_activated(const Glib::ustring& item_name), "custom-item-activated",
detail_name custom_item_name, no_default_handler)
+ _IGNORE_SIGNAL("activate")dnl// Action signal
_WRAP_PROPERTY("show-dialog-item", bool)
_WRAP_PROPERTY("heading", Glib::ustring)
@@ -92,5 +93,4 @@ public:
_WRAP_PROPERTY("modal", bool)
};
-
} // namespace Gtk
diff --git a/gtk/src/colorbutton.hg b/gtk/src/colorbutton.hg
index 2b8e80e4..1c25fb5c 100644
--- a/gtk/src/colorbutton.hg
+++ b/gtk/src/colorbutton.hg
@@ -80,6 +80,7 @@ public:
// no_default_handler because GtkColorButtonClass is private.
_WRAP_SIGNAL(void color_set(), "color-set", no_default_handler)
+ _IGNORE_SIGNAL("activate")dnl// Action signal
};
} // namespace Gtk
diff --git a/gtk/src/droptarget.ccg b/gtk/src/droptarget.ccg
index c50366c9..3f2fe850 100644
--- a/gtk/src/droptarget.ccg
+++ b/gtk/src/droptarget.ccg
@@ -41,23 +41,4 @@ Glib::ValueBase DropTarget::get_value() const
return retvalue;
}
-// We hand-code get_drop().
-// gtk_drop_target_get_drop() is deprecated in gtk 4.4.
-// We can't use the replacement gtk_drop_target_get_current_drop(),
-// which is new in gtk 4.4. This version of gtkmm does not require gtk 4.4.
-G_GNUC_BEGIN_IGNORE_DEPRECATIONS
-Glib::RefPtr<Gdk::Drop> DropTarget::get_drop()
-{
- auto retvalue = Glib::wrap(gtk_drop_target_get_drop(gobj()));
- if(retvalue)
- retvalue->reference(); //The function does not do a ref for us.
- return retvalue;
-}
-
-Glib::RefPtr<const Gdk::Drop> DropTarget::get_drop() const
-{
- return const_cast<DropTarget*>(this)->get_drop();
-}
-G_GNUC_END_IGNORE_DEPRECATIONS
-
} // namesoace Gtk
diff --git a/gtk/src/droptarget.hg b/gtk/src/droptarget.hg
index 7560b3a7..05f7d4e9 100644
--- a/gtk/src/droptarget.hg
+++ b/gtk/src/droptarget.hg
@@ -89,22 +89,13 @@ public:
_WRAP_METHOD(void set_preload(bool preload = true), gtk_drop_target_set_preload)
_WRAP_METHOD(bool get_preload() const, gtk_drop_target_get_preload)
- //TODO: Update in gtkmm 4.4.
- // We hand-code get_drop(). gtk_drop_target_get_drop() is deprecated in gtk 4.4.
- // We can't use the replacement gtk_drop_target_get_current_drop(),
- // which is new in gtk 4.4. This version of gtkmm does not require gtk 4.4.
- //_WRAP_METHOD(Glib::RefPtr<Gdk::Drop> get_drop(), gtk_drop_target_get_drop, refreturn,
- // deprecated "Use get_current_drop() instead.")
- //_WRAP_METHOD(Glib::RefPtr<const Gdk::Drop> get_drop() const, gtk_drop_target_get_drop, refreturn,
constversion,
- // deprecated "Use get_current_drop() instead.")
- //_WRAP_METHOD(Glib::RefPtr<Gdk::Drop> get_current_drop(), gtk_drop_target_get_current_drop, refreturn,
newin "4,4")
- //_WRAP_METHOD(Glib::RefPtr<const Gdk::Drop> get_current_drop() const, gtk_drop_target_get_current_drop,
- // refreturn, constversion, newin "4,4")
-
- _WRAP_METHOD_DOCS_ONLY(gtk_drop_target_get_drop)
- Glib::RefPtr<Gdk::Drop> get_drop();
- _WRAP_METHOD_DOCS_ONLY(gtk_drop_target_get_drop)
- Glib::RefPtr<const Gdk::Drop> get_drop() const;
+ _WRAP_METHOD(Glib::RefPtr<Gdk::Drop> get_drop(), gtk_drop_target_get_drop, refreturn,
+ deprecated "Use get_current_drop() instead.")
+ _WRAP_METHOD(Glib::RefPtr<const Gdk::Drop> get_drop() const, gtk_drop_target_get_drop, refreturn,
constversion,
+ deprecated "Use get_current_drop() instead.")
+ _WRAP_METHOD(Glib::RefPtr<Gdk::Drop> get_current_drop(), gtk_drop_target_get_current_drop, refreturn,
newin "4,4")
+ _WRAP_METHOD(Glib::RefPtr<const Gdk::Drop> get_current_drop() const, gtk_drop_target_get_current_drop,
+ refreturn, constversion, newin "4,4")
_WRAP_METHOD_DOCS_ONLY(gtk_drop_target_get_value)
Glib::ValueBase get_value() const;
@@ -112,10 +103,8 @@ public:
_WRAP_METHOD(void reject(), gtk_drop_target_reject)
_WRAP_PROPERTY("actions", Gdk::DragAction)
- //TODO: Update in gtkmm 4.4.
- //_WRAP_PROPERTY("drop", Glib::RefPtr<Gdk::Drop>, deprecated "Use property_current_drop() instead.")
- //_WRAP_PROPERTY("current-drop", Glib::RefPtr<Gdk::Drop>, newin "4,4")
- _WRAP_PROPERTY("drop", Glib::RefPtr<Gdk::Drop>)
+ _WRAP_PROPERTY("drop", Glib::RefPtr<Gdk::Drop>, deprecated "Use property_current_drop() instead.")
+ _WRAP_PROPERTY("current-drop", Glib::RefPtr<Gdk::Drop>, newin "4,4")
_WRAP_PROPERTY("formats", Glib::RefPtr<Gdk::ContentFormats>)
_WRAP_PROPERTY("preload", bool)
_WRAP_PROPERTY("value", GValue*)
diff --git a/gtk/src/filefilter.hg b/gtk/src/filefilter.hg
index 50e4437c..8f0a83e9 100644
--- a/gtk/src/filefilter.hg
+++ b/gtk/src/filefilter.hg
@@ -17,6 +17,7 @@
#include <gtkmm/filter.h>
#include <gtkmm/buildable.h>
+#include <string>
_DEFS(gtkmm,gtk)
_PINCLUDE(gtkmm/private/filter_p.h)
@@ -53,10 +54,12 @@ public:
_WRAP_METHOD(Glib::ustring get_name() const, gtk_file_filter_get_name)
_WRAP_METHOD(void add_mime_type(const Glib::ustring& mime_type), gtk_file_filter_add_mime_type)
+ //TODO: When we can change ABI/API: const std::string& pattern.
_WRAP_METHOD(void add_pattern(const Glib::ustring& pattern), gtk_file_filter_add_pattern)
+ _WRAP_METHOD(void add_suffix(const std::string& suffix), gtk_file_filter_add_suffix)
_WRAP_METHOD(void add_pixbuf_formats(), gtk_file_filter_add_pixbuf_formats)
- // This is meant for implementors of FileChooser, so we don’t wrap them.
+ // This is meant for implementors of FileChooser, so we don’t wrap it.
_IGNORE(gtk_file_filter_get_attributes)
_WRAP_PROPERTY("name", Glib::ustring)
diff --git a/gtk/src/fontbutton.hg b/gtk/src/fontbutton.hg
index ce2f35dd..9c8e6f34 100644
--- a/gtk/src/fontbutton.hg
+++ b/gtk/src/fontbutton.hg
@@ -63,6 +63,7 @@ public:
// no_default_handler because GtkFontButtonClass is private.
_WRAP_SIGNAL(void font_set(), "font-set", no_default_handler)
+ _IGNORE_SIGNAL("activate")dnl// Action signal
};
} // namespace Gtk
diff --git a/gtk/src/mediastream.ccg b/gtk/src/mediastream.ccg
index c328ea0c..2dd04866 100644
--- a/gtk/src/mediastream.ccg
+++ b/gtk/src/mediastream.ccg
@@ -15,29 +15,3 @@
*/
#include <gtk/gtk.h>
-
-namespace Gtk
-{
-
-// We hand-code prepared(), unprepared() and ended(). gtk_media_stream_prepared(),
-// gtk_media_stream_unprepared() and gtk_media_stream_ended() are deprecated in gtk 4.4.
-// We can't use the replacements gtk_media_stream_set_prepared(), gtk_media_stream_unset_prepared()
-// and gtk_media_stream_set_ended(), which are new in gtk 4.4. This version of gtkmm does not require gtk
4.4.
-G_GNUC_BEGIN_IGNORE_DEPRECATIONS
-void MediaStream::prepared(bool has_audio, bool has_video, bool seekable, gint64 duration)
-{
- gtk_media_stream_prepared(gobj(), static_cast<int>(has_audio), static_cast<int>(has_video),
static_cast<int>(seekable), duration);
-}
-
-void MediaStream::unprepared()
-{
- gtk_media_stream_unprepared(gobj());
-}
-
-void MediaStream::ended()
-{
- gtk_media_stream_ended(gobj());
-}
-G_GNUC_END_IGNORE_DEPRECATIONS
-
-} // namesoace Gtk
diff --git a/gtk/src/mediastream.hg b/gtk/src/mediastream.hg
index ef8fa815..0e8015b7 100644
--- a/gtk/src/mediastream.hg
+++ b/gtk/src/mediastream.hg
@@ -82,30 +82,17 @@ public:
// For implementations only
- //TODO: Update in gtkmm 4.4.
- // We hand-code prepared(), unprepared() and ended(). gtk_media_stream_prepared(),
- // gtk_media_stream_unprepared() and gtk_media_stream_ended() are deprecated in gtk 4.4.
- // We can't use the replacements gtk_media_stream_set_prepared(), gtk_media_stream_unset_prepared()
- // and gtk_media_stream_set_ended(), which are new in gtk 4.4. This version of gtkmm does not require gtk
4.4.
- //_WRAP_METHOD(void prepared(bool has_audio, bool has_video, bool seekable, gint64 duration),
- // gtk_media_stream_prepared, deprecated "Use set_prepared() instead.")
- //_WRAP_METHOD(void unprepared(), gtk_media_stream_unprepared, deprecated "Use unset_prepared() instead.")
- //_WRAP_METHOD(void set_prepared(bool has_audio, bool has_video, bool seekable, gint64 duration),
- // gtk_media_stream_set_prepared, newin "4,4")
- //_WRAP_METHOD(void unprepared(), gtk_media_stream_unset_prepared, newin "4,4")
-
- _WRAP_METHOD_DOCS_ONLY(gtk_media_stream_prepared)
- void prepared(bool has_audio, bool has_video, bool seekable, gint64 duration);
- _WRAP_METHOD_DOCS_ONLY(gtk_media_stream_unprepared)
- void unprepared();
+ _WRAP_METHOD(void prepared(bool has_audio, bool has_video, bool seekable, gint64 duration),
+ gtk_media_stream_prepared, deprecated "Use stream_prepared() instead.")
+ _WRAP_METHOD(void unprepared(), gtk_media_stream_unprepared, deprecated "Use stream_unprepared() instead.")
+ _WRAP_METHOD(void stream_prepared(bool has_audio, bool has_video, bool seekable, gint64 duration),
+ gtk_media_stream_stream_prepared, newin "4,4")
+ _WRAP_METHOD(void stream_unprepared(), gtk_media_stream_stream_unprepared, newin "4,4")
_WRAP_METHOD(void update(gint64 timestamp), gtk_media_stream_update)
- //TODO: Update in gtkmm 4.4.
- //_WRAP_METHOD(void ended(), gtk_media_stream_ended, deprecated "Use set_ended() instead.")
- //_WRAP_METHOD(void set_ended(), gtk_media_stream_set_ended, newin "4,4")
- _WRAP_METHOD_DOCS_ONLY(gtk_media_stream_ended)
- void ended();
+ _WRAP_METHOD(void ended(), gtk_media_stream_ended, deprecated "Use stream_ended() instead.")
+ _WRAP_METHOD(void stream_ended(), gtk_media_stream_stream_ended, newin "4,4")
_WRAP_METHOD(void seek_success(), gtk_media_stream_seek_success)
_WRAP_METHOD(void seek_failed(), gtk_media_stream_seek_failed)
diff --git a/gtk/src/menubutton.hg b/gtk/src/menubutton.hg
index ca705ea7..92759c84 100644
--- a/gtk/src/menubutton.hg
+++ b/gtk/src/menubutton.hg
@@ -69,6 +69,9 @@ public:
_WRAP_METHOD(void set_icon_name(const Glib::ustring& icon_name), gtk_menu_button_set_icon_name)
_WRAP_METHOD(Glib::ustring get_icon_name() const, gtk_menu_button_get_icon_name)
+ _WRAP_METHOD(void set_always_show_arrow(bool always_show_arrow = true),
gtk_menu_button_set_always_show_arrow)
+ _WRAP_METHOD(bool get_always_show_arrow() const, gtk_menu_button_get_always_show_arrow)
+
_WRAP_METHOD(void set_label(const Glib::ustring& label), gtk_menu_button_set_label)
_WRAP_METHOD(Glib::ustring get_label() const, gtk_menu_button_get_label)
@@ -113,13 +116,20 @@ public:
*/
void unset_create_popup_func();
+ _WRAP_METHOD(void set_primary(bool primary = true), gtk_menu_button_set_primary)
+ _WRAP_METHOD(bool get_primary() const, gtk_menu_button_get_primary)
+
+ _IGNORE_SIGNAL("activate")dnl// Action signal
+
_WRAP_PROPERTY("menu-model", Glib::RefPtr<Gio::MenuModel>)
_WRAP_PROPERTY("direction", ArrowType)
_WRAP_PROPERTY("popover", Popover*)
_WRAP_PROPERTY("icon-name", Glib::ustring)
+ _WRAP_PROPERTY("always-show-arrow", bool)
_WRAP_PROPERTY("label", Glib::ustring)
_WRAP_PROPERTY("use-underline", bool)
_WRAP_PROPERTY("has-frame", bool)
+ _WRAP_PROPERTY("primary", bool)
};
} /* namespace Gtk */
diff --git a/gtk/src/textview.hg b/gtk/src/textview.hg
index 257610e6..05bdef6c 100644
--- a/gtk/src/textview.hg
+++ b/gtk/src/textview.hg
@@ -216,6 +216,11 @@ public:
_WRAP_METHOD(Glib::RefPtr<Gio::MenuModel> get_extra_menu(), gtk_text_view_get_extra_menu, refreturn)
_WRAP_METHOD(Glib::RefPtr<const Gio::MenuModel> get_extra_menu() const, gtk_text_view_get_extra_menu,
refreturn, constversion)
+ _WRAP_METHOD(Glib::RefPtr<Pango::Context> get_rtl_context(), gtk_text_view_get_rtl_context, refreturn)
+ _WRAP_METHOD(Glib::RefPtr<const Pango::Context> get_rtl_context() const, gtk_text_view_get_rtl_context,
refreturn, constversion)
+ _WRAP_METHOD(Glib::RefPtr<Pango::Context> get_ltr_context(), gtk_text_view_get_ltr_context, refreturn)
+ _WRAP_METHOD(Glib::RefPtr<const Pango::Context> get_ltr_context() const, gtk_text_view_get_ltr_context,
refreturn, constversion)
+
_WRAP_SIGNAL(void set_anchor(), "set_anchor")
#m4 _CONVERSION(`const char*',`const Glib::ustring&',__GCHARP_TO_USTRING)
diff --git a/meson.build b/meson.build
index d2908818..4c972063 100644
--- a/meson.build
+++ b/meson.build
@@ -103,7 +103,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.2.0'
+gtk_req = '>= 4.4.0'
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]