00001
00002
00003
#ifndef _LIBGNOMEUIMM_THUMBNAIL_H
00004
#define _LIBGNOMEUIMM_THUMBNAIL_H
00005
00006
#include <glibmm.h>
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
#include <glibmm/object.h>
00028
#include <gdkmm/pixbuf.h>
00029
00030
00031
#ifndef DOXYGEN_SHOULD_SKIP_THIS
00032
typedef struct _GnomeThumbnailFactory GnomeThumbnailFactory;
00033
typedef struct _GnomeThumbnailFactoryClass GnomeThumbnailFactoryClass;
00034
#endif
00035
00036
00037
namespace Gnome
00038 {
00039
00040
namespace UI
00041 {
class ThumbnailFactory_Class; }
00042
00043 }
00044
namespace Gnome
00045 {
00046
00047
namespace UI
00048 {
00049
00055 enum ThumbnailSize
00056 {
00057 THUMBNAIL_SIZE_NORMAL,
00058 THUMBNAIL_SIZE_LARGE
00059 };
00060
00061
00062 class ThumbnailFactory :
public Glib::
Object
00063 {
00064
00065
#ifndef DOXYGEN_SHOULD_SKIP_THIS
00066
00067
public:
00068
typedef ThumbnailFactory CppObjectType;
00069
typedef ThumbnailFactory_Class CppClassType;
00070
typedef GnomeThumbnailFactory BaseObjectType;
00071
typedef GnomeThumbnailFactoryClass BaseClassType;
00072
00073
private:
friend class ThumbnailFactory_Class;
00074
static CppClassType thumbnailfactory_class_;
00075
00076
private:
00077
00078
ThumbnailFactory(
const ThumbnailFactory&);
00079
ThumbnailFactory& operator=(
const ThumbnailFactory&);
00080
00081
protected:
00082
explicit ThumbnailFactory(
const Glib::ConstructParams& construct_params);
00083
explicit ThumbnailFactory(GnomeThumbnailFactory* castitem);
00084
00085
#endif
00086
00087
public:
00088
virtual ~ThumbnailFactory();
00089
00090
#ifndef DOXYGEN_SHOULD_SKIP_THIS
00091
static GType get_type() G_GNUC_CONST;
00092
static GType get_base_type() G_GNUC_CONST;
00093
#endif
00094
00096 GnomeThumbnailFactory*
gobj() {
return reinterpret_cast<GnomeThumbnailFactory*>(gobject_); }
00097
00099 const GnomeThumbnailFactory*
gobj()
const {
return reinterpret_cast<GnomeThumbnailFactory*>(gobject_); }
00100
00102 GnomeThumbnailFactory*
gobj_copy();
00103
00104
private:
00105
00106
public:
00107
static Glib::RefPtr<ThumbnailFactory> create(ThumbnailSize size);
00108
00109
00110 Glib::ustring lookup(
const Glib::ustring& uri, time_t mtime)
const;
00111
00112
bool has_valid_failed_thumbnail(
const Glib::ustring& uri, time_t mtime)
const;
00113
00114
bool can_thumbnail(
const Glib::ustring& uri,
const Glib::ustring& mime_type, time_t mtime)
const;
00115
00116 Glib::RefPtr<Gdk::Pixbuf> generate_thumbnail(
const Glib::ustring& uri,
const Glib::ustring& mime_type)
const;
00117
00118
void save_thumbnail(
const Glib::RefPtr<Gdk::Pixbuf>& thumbnail,
const Glib::ustring& uri, time_t original_mtime);
00119
00120
void create_failed_thumbnail(
const Glib::ustring& uri, time_t mtime)
const;
00121
00122
00123
public:
00124
00125
public:
00126
00127
00128
protected:
00129
00130
00131
00132
00133
00134 };
00135
00136
00137
bool thumbnail_has_uri(
const Glib::RefPtr<Gdk::Pixbuf>& pixbuf,
const Glib::ustring& uri);
00138
bool thumbnail_is_valid(
const Glib::RefPtr<Gdk::Pixbuf>& pixbuf,
const Glib::ustring& uri, time_t mtime);
00139
00140 Glib::ustring
thumbnail_md5(
const Glib::ustring& uri);
00141 Glib::ustring
thumbnail_path_for_uri(
const Glib::ustring& uri, ThumbnailSize size);
00142
00143
00144 Glib::RefPtr<Gdk::Pixbuf>
thumbnail_scale_down_pixbuf(
const Glib::RefPtr<Gdk::Pixbuf>& pixbuf,
int dest_width,
int dest_height);
00145
00146 }
00147 }
00148
00149
00150
namespace Glib
00151 {
00157 Glib::RefPtr<Gnome::UI::ThumbnailFactory> wrap(GnomeThumbnailFactory* object,
bool take_copy =
false);
00158 }
00159
00160
00161
#endif
00162