ThumbnailFactory.h
00001
00002
00003
00004
00005
00006
00007
00008
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
00023 };
00024
00025 class ThumbInfo;
00026
00027 WX_DEFINE_ARRAY(ThumbInfo*, ThumbInfoArray);
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
1.3.7