[gtk+] gdk: Add gdk_content_formats_new_for_gtype()
- From: Benjamin Otte <otte src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] gdk: Add gdk_content_formats_new_for_gtype()
- Date: Sun, 3 Dec 2017 04:54:00 +0000 (UTC)
commit 4e06aaeaa8de2f01e28f68f41c442b6dd66482db
Author: Benjamin Otte <otte redhat com>
Date: Tue Nov 28 02:02:06 2017 +0100
gdk: Add gdk_content_formats_new_for_gtype()
Many places create formats for a single tpye, so make it easy for them
to get this without having to create a builder first.
docs/reference/gdk/gdk4-sections.txt | 1 +
gdk/gdkcontentformats.c | 28 +++++++++++++++++++++++++---
gdk/gdkcontentformats.h | 2 ++
gdk/gdkcontentproviderimpl.c | 5 +----
4 files changed, 29 insertions(+), 7 deletions(-)
---
diff --git a/docs/reference/gdk/gdk4-sections.txt b/docs/reference/gdk/gdk4-sections.txt
index 8deed84..ec11594 100644
--- a/docs/reference/gdk/gdk4-sections.txt
+++ b/docs/reference/gdk/gdk4-sections.txt
@@ -372,6 +372,7 @@ gdk_intern_mime_type
<SUBSECTION>
GdkContentFormats
gdk_content_formats_new
+gdk_content_formats_new_for_gtype
gdk_content_formats_ref
gdk_content_formats_unref
gdk_content_formats_print
diff --git a/gdk/gdkcontentformats.c b/gdk/gdkcontentformats.c
index 8369cdd..5e7d5ea 100644
--- a/gdk/gdkcontentformats.c
+++ b/gdk/gdkcontentformats.c
@@ -137,9 +137,9 @@ gdk_content_formats_new_take (GType * gtypes,
*
* Creates a new #GdkContentFormats from an array of mime types.
*
- * The mime types must be different or the behavior of the return value
- * is undefined. If you cannot guarantee this, use #GdkContentFormatsBuilder
- * instead.
+ * The mime types must be valid and different from each other or the
+ * behavior of the return value is undefined. If you cannot guarantee
+ * this, use #GdkContentFormatsBuilder instead.
*
* Returns: (transfer full): the new #GdkContentFormats.
**/
@@ -162,6 +162,28 @@ gdk_content_formats_new (const char **mime_types,
}
/**
+ * gdk_content_formats_new_for_gtype:
+ * @type: a $GType
+ *
+ * Creates a new #GdkContentFormats for a given #GType.
+ *
+ * Returns: a new #GdkContentFormats
+ **/
+GdkContentFormats *
+gdk_content_formats_new_for_gtype (GType type)
+{
+ GType *data;
+
+ g_return_val_if_fail (type != G_TYPE_INVALID, NULL);
+
+ data = g_new (GType, 2);
+ data[0] = type;
+ data[1] = G_TYPE_INVALID;
+
+ return gdk_content_formats_new_take (data, 1, NULL, 0);
+}
+
+/**
* gdk_content_formats_ref:
* @formats: a #GdkContentFormats
*
diff --git a/gdk/gdkcontentformats.h b/gdk/gdkcontentformats.h
index e265b6a..1e5f714 100644
--- a/gdk/gdkcontentformats.h
+++ b/gdk/gdkcontentformats.h
@@ -39,6 +39,8 @@ GDK_AVAILABLE_IN_3_94
GdkContentFormats * gdk_content_formats_new (const char **mime_types,
guint
n_mime_types);
GDK_AVAILABLE_IN_3_94
+GdkContentFormats * gdk_content_formats_new_for_gtype (GType type);
+GDK_AVAILABLE_IN_3_94
GdkContentFormats * gdk_content_formats_ref (GdkContentFormats *formats);
GDK_AVAILABLE_IN_3_94
void gdk_content_formats_unref (GdkContentFormats *formats);
diff --git a/gdk/gdkcontentproviderimpl.c b/gdk/gdkcontentproviderimpl.c
index 77e4d8d..adb3cc4 100644
--- a/gdk/gdkcontentproviderimpl.c
+++ b/gdk/gdkcontentproviderimpl.c
@@ -64,11 +64,8 @@ static GdkContentFormats *
gdk_content_provider_value_ref_formats (GdkContentProvider *provider)
{
GdkContentProviderValue *content = GDK_CONTENT_PROVIDER_VALUE (provider);
- GdkContentFormatsBuilder *builder;
- builder = gdk_content_formats_builder_new ();
- gdk_content_formats_builder_add_gtype (builder, G_VALUE_TYPE (&content->value));
- return gdk_content_formats_builder_free (builder);
+ return gdk_content_formats_new_for_gtype (G_VALUE_TYPE (&content->value));
}
static gboolean
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]