From 75dfb4d63b955420fa82d4b5e89f6f9e6c4caa68 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Wed, 15 Sep 2021 22:08:33 +0200 Subject: [PATCH] API: Add gdk_texture_new_from_filename() There are quite a few places where we can make use of it, in particular in the testsuite and icontheme. --- gdk/gdktexture.c | 33 +++++++++++++++++++++++++++++++++ gdk/gdktexture.h | 3 +++ 2 files changed, 36 insertions(+) diff --git a/gdk/gdktexture.c b/gdk/gdktexture.c index edcf7a9d9c..ec03c72370 100644 --- a/gdk/gdktexture.c +++ b/gdk/gdktexture.c @@ -441,6 +441,39 @@ gdk_texture_new_from_bytes (GBytes *bytes, return texture; } +/** + * gdk_texture_new_from_filename: + * @path: (type filename): the filename to load + * @error: Return location for an error + * + * Creates a new texture by loading an image from a file. + * + * The file format is detected automatically. The supported formats + * are PNG and JPEG, though more formats might be available. + * + * If %NULL is returned, then @error will be set. + * + * Return value: A newly-created `GdkTexture` + */ +GdkTexture * +gdk_texture_new_from_filename (const char *path, + GError **error) +{ + GdkTexture *texture; + GFile *file; + + g_return_val_if_fail (path, NULL); + g_return_val_if_fail (error == NULL || *error == NULL, NULL); + + file = g_file_new_for_path (path); + + texture = gdk_texture_new_from_file (file, error); + + g_object_unref (file); + + return texture; +} + /** * gdk_texture_get_width: (attributes org.gtk.Method.get_property=width) * @texture: a `GdkTexture` diff --git a/gdk/gdktexture.h b/gdk/gdktexture.h index 7cccdb5928..e080679ca1 100644 --- a/gdk/gdktexture.h +++ b/gdk/gdktexture.h @@ -50,6 +50,9 @@ GDK_AVAILABLE_IN_ALL GdkTexture * gdk_texture_new_from_file (GFile *file, GError **error); GDK_AVAILABLE_IN_4_6 +GdkTexture * gdk_texture_new_from_filename (const char *path, + GError **error); +GDK_AVAILABLE_IN_4_6 GdkTexture * gdk_texture_new_from_bytes (GBytes *bytes, GError **error);