view src/thumb_standard.h @ 41:6281cc38e5ca

Wed Apr 27 15:17:57 2005 John Ellis <johne@verizon.net> * bar_info.c, bar_sort.c: Update for new pref_toolbar_button args. * fullscreen.c, layout.c: Remove use of GDK_HINT_USER_SIZE as we never actually set these dimensions. Increase default size of main window. * layout_util.c: Use GTkToolbar for the main window toolbar. * pixbuf_util.[ch]: Add inline pixbufs for thumb and float icons. * rcfile.c: Add note to config file that it is autogenerated. * typedefs.h: Remove no longer used tooltip in LayoutWindow. * ui_misc.[ch]: pref_toolbar additions. * icons/icon_float.png, icons/icon_thumb.png: Icons in png format. * icons/icon_float.xpm, icons/icon_thumb.xpm: Remove xpm versions. * icons/Makefile.am: Add above icons to inline pixbuf list. ##### Note: GQview CVS on sourceforge is not always up to date, please use ##### ##### an offical release when making enhancements and translation updates. #####
author gqview
date Wed, 27 Apr 2005 19:29:15 +0000
parents d907d608745f
children 528e3432e0c0
line wrap: on
line source

/*
 * GQview
 * (C) 2005 John Ellis
 *
 * Author: John Ellis
 *
 * This software is released under the GNU General Public License (GNU GPL).
 * Please read the included file COPYING for more information.
 * This software comes with no warranty of any kind, use at your own risk!
 */


#ifndef THUMB_STANDARD_H
#define THUMB_STANDARD_H


#define THUMB_FOLDER        ".thumbnails"
#define THUMB_FOLDER_NORMAL "normal"
#define THUMB_FOLDER_LARGE  "large"
#define THUMB_FOLDER_FAIL   "fail/gqview-1.0"
#define THUMB_NAME_EXTENSION ".png"


typedef struct _ThumbLoaderStd ThumbLoaderStd;
typedef void (* ThumbLoaderStdFunc)(ThumbLoaderStd *tl, gpointer data);

struct _ThumbLoaderStd
{
	gint standard_loader;

	GdkPixbuf *pixbuf;
	ImageLoader *il;

	gchar *source_path;

	time_t source_mtime;
	off_t source_size;
	mode_t source_mode;

	gchar *thumb_path;
	gchar *thumb_uri;
	const gchar *local_uri;

	gint thumb_path_local;

	gint requested_width;
	gint requested_height;

	gint cache_enable;
	gint cache_local;
	gint cache_hit;
	gint cache_retry;

	gdouble progress;

	ThumbLoaderStdFunc func_done;
	ThumbLoaderStdFunc func_error;
	ThumbLoaderStdFunc func_progress;

	gpointer data;
};


ThumbLoaderStd *thumb_loader_std_new(gint width, gint height);
void thumb_loader_std_set_callbacks(ThumbLoaderStd *tl,
				    ThumbLoaderStdFunc func_done,
				    ThumbLoaderStdFunc func_error,
				    ThumbLoaderStdFunc func_progress,
				    gpointer data);
void thumb_loader_std_set_cache(ThumbLoaderStd *tl, gint enable_cache, gint local, gint retry_failed);
gint thumb_loader_std_start(ThumbLoaderStd *tl, const gchar *path);
void thumb_loader_std_free(ThumbLoaderStd *tl);

GdkPixbuf *thumb_loader_std_get_pixbuf(ThumbLoaderStd *tl, gint with_fallback);


/* validates a non local thumbnail file,
 * calling func_valid with the information when app is idle
 * for thumbnail's without a file: uri, validates against allowed_age in days
 */
ThumbLoaderStd *thumb_loader_std_thumb_file_validate(const gchar *thumb_path, gint allowed_age,
						     void (*func_valid)(const gchar *path, gint valid, gpointer data),
						     gpointer data);
void thumb_loader_std_thumb_file_validate_cancel(ThumbLoaderStd *tl);


void thumb_std_maint_removed(const gchar *source);
void thumb_std_maint_moved(const gchar *source, const gchar *dest);


#endif