Main Page | Class Hierarchy | Class List | File List | Class Members

ThumbnailFactory.h

00001 00002 // Name: ThumbnailFactory.h 00003 // Purpose: wxThumbnailFactory class 00004 // Author: Alex Thuering 00005 // Created: 15.02.2003 00006 // RCS-ID: $Id: ThumbnailFactory.h,v 1.6 2007/11/15 20:43:42 ntalex Exp $ 00007 // Copyright: (c) Alex Thuering 00008 // Licence: wxWindows licence 00010 00011 #ifndef WXVILLALIB_THUMBNAILFACTORY_H 00012 #define WXVILLALIB_THUMBNAILFACTORY_H 00013 00014 #include <wx/wx.h> 00015 #include <wx/image.h> 00016 #include <wx/thread.h> 00017 #include <wx/dynarray.h> 00018 00019 enum ThumbType 00020 { 00021 THUMBNAIL_NORMAL, 00022 THUMBNAIL_FAILED // cannot be generated 00023 }; 00024 00025 class ThumbInfo; // type of entry in a queue 00026 00027 WX_DEFINE_ARRAY(ThumbInfo*, ThumbInfoArray); // type of queue 00028 00029 class wxThumbnailFactory: public wxThread 00030 { 00031 public: 00032 static void Init(); 00034 static void InitGnome(const char* appName, const char* appVersion, 00035 int argc, char** argv); 00039 static wxImage GetThumbnail(wxWindow* parent, 00040 wxString filename, int width, int height); 00042 static void ClearQueue(wxWindow* parent); 00043 00044 protected: 00045 static ThumbInfoArray m_queue; 00046 static wxMutex m_queueMutex; 00047 static wxThumbnailFactory* thread; 00048 static int maxFileSize; 00050 wxThread::ExitCode Entry(); 00052 static wxImage AddToQueue(ThumbInfo* info); 00056 static ThumbInfo* GetThumbInfo(wxString filename, wxWindow* parent, 00057 int width, int height); 00059 static wxImage LoadThumbnail(ThumbInfo& info, ThumbType type = THUMBNAIL_NORMAL); 00061 static bool CanThumbnail(ThumbInfo& info); 00063 static wxString GetThumbPath(ThumbInfo& info, ThumbType type = THUMBNAIL_NORMAL); 00065 static wxImage GenerateThumbnail(ThumbInfo& info, bool save = true); 00066 }; 00067 00068 #endif //WXVILLALIB_THUMBNAILFACTORY_H

Generated on Mon Nov 19 21:06:44 2007 for wxVillaLib by doxygen 1.3.7