On Wed, 2018-01-17 at 13:15 +0100, Bastien Nocera wrote:
> Hey,
> 
> I wanted to start a discussion about replacing GnomeDesktopThumbnail
> with an API that would live in the GLib/GTK+ stack.
<snip>
> 
> To sum up, here are the questions:
> - Do we want the API in GTK+ and depending on gdk-pixbuf, even if
> it's
> only really meant to be used on "freedesktop" platforms?
> - Are there specific API entry points that people need besides the
> current API (including [1]) with async support?

This is the API that I came up with, which could live in either gdk-
pixbuf, or GTK+, dependency-wise. It might also be small enough to
copy/paste although I count 15 users of just the C API in Debian
Codesearch[1], so it might be worth having in a shared library anyway.

typedef enum {
    GNOME_DESKTOP_THUMBNAIL_FLAGS_NONE = 0,
    GNOME_DESKTOP_THUMBNAIL_FLAGS_SAVE,  // Whether to save the created 
(successful or failed) thumbnail to the cache
} GnomeDesktopThumbnailFlag;

#define GNOME_DESKTOP_THUMBNAIL_FILE_ATTRIBUTES                 \
        G_FILE_ATTRIBUTE_THUMBNAIL_PATH ","                     \
        G_FILE_ATTRIBUTE_THUMBNAILING_FAILED ","                \
        G_FILE_ATTRIBUTE_THUMBNAIL_IS_VALID ","                 \
        G_FILE_ATTRIBUTE_PREVIEW_ICON ","                       \
        G_FILE_ATTRIBUTE_TIME_MODIFIED ","                      \
        G_FILE_ATTRIBUTE_STANDARD_FAST_CONTENT_TYPE

// About @info:
// NULL means we'll look it up if necessary, otherwise must include
// GNOME_DESKTOP_THUMBNAIL_FILE_ATTRIBUTES,
// G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE will however be used rather
// than G_FILE_ATTRIBUTE_STANDARD_FAST_CONTENT_TYPE if present

GdkPixbuf *
gnome_desktop_thumbnail_generate_thumbnail_sync (GnomeDesktopThumbnailFactory  
*factory,
                                                 GFile                         
*file,       // instead of a URI?
                                                 GFileInfo                     
*info,       
                                                 GnomeDesktopThumbnailFlags     
flag,
                                                 char                         
**ret_thumbnail_path,
                                                 GError                       
**error);

[1]: 
https://codesearch.debian.net/search?q=gnome_desktop_thumbnail_factory_new&perpkg=1
_______________________________________________
gtk-devel-list mailing list
gtk-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtk-devel-list

Reply via email to