#ifndef _NNTP_THUMBPAGE_HPP_ #define _NNTP_THUMBPAGE_HPP_ #ifndef _COMMON_WINDOWS_HPP_ #include #endif #ifndef _COMMON_BLOCK_HPP_ #include #endif #ifndef _COMMON_PUREDEVICE_HPP_ #include #endif #ifndef _COMMON_SMARTPOINTER_HPP_ #include #endif #ifndef _NNTP_THUMBNAIL_HPP_ #include #endif #ifndef _JPGIMG_DIB24_HPP_ #include #endif class DIBitmap; class GUIWindow; class ThumbPage { public: ThumbPage(void); virtual ~ThumbPage(); ThumbNail &operator[](UINT index); void draw(GUIWindow &guiWindow); void draw(PureDevice &pureDevice,const Rect &dstRect,const Point &srcPoint); bool insert(const String &strPathFileName,PureDevice &pureDevice); bool insert(PakEntry &pakEntry,PureDevice &pureDevice); bool insert(const String &strPathFileName); void remove(const String &strPathFileName); void update(GUIWindow &guiWindow); DWORD width(void)const; DWORD height(void)const; DWORD widthThumbNail(void)const; bool isDirty(void)const; void isDirty(bool isDirty); DWORD entries(void)const; DWORD rowItems(GUIWindow &guiWindow)const; DWORD rowItems(void)const; DWORD memoryUsage(void)const; bool hitTest(GUIWindow &guiWindow,const Point &clickPoint,String &strPathFileName); bool isOkay(void)const; private: enum {Separator=5,BkColorBits=255}; ThumbPage(const ThumbPage &someThumbPage); ThumbPage &operator=(const ThumbPage &someThumbPage); int getDimensions(GUIWindow &guiWindow,GDIPoint &gdiPoint); bool createBitmap(GUIWindow &someGUIWindow); bool drawThumbNails(PureDevice &pureDevice,GUIWindow &guiWindow); bool drawThumbNails(GUIWindow &guiWindow); void rowItems(DWORD rowItems); Block > mThumbNails; DIB24 mDIB24; DWORD mRowItems; bool mIsDirty; }; inline ThumbPage::ThumbPage(void) : mIsDirty(false), mRowItems(0) { } inline ThumbPage::ThumbPage(const ThumbPage &/*someThumbPage*/) { // private implementation } inline ThumbPage::~ThumbPage() { } inline ThumbNail &ThumbPage::operator[](UINT index) { return *(mThumbNails[index]); } inline ThumbPage &ThumbPage::operator=(const ThumbPage &/*someThumbPage*/) { // private implementation return *this; } inline DWORD ThumbPage::entries(void)const { return mThumbNails.size(); } inline DWORD ThumbPage::widthThumbNail(void)const { if(!entries())return 0; return ((Block >&)mThumbNails)[0]->width(); } inline DWORD ThumbPage::width(void)const { return mDIB24.width(); } inline DWORD ThumbPage::height(void)const { return mDIB24.height(); } inline bool ThumbPage::isDirty(void)const { return mIsDirty; } inline void ThumbPage::isDirty(bool isDirty) { mIsDirty=isDirty; } inline DWORD ThumbPage::rowItems(void)const { return mRowItems; } inline void ThumbPage::rowItems(DWORD rowItems) { mRowItems=rowItems; } inline bool ThumbPage::isOkay(void)const { return mThumbNails.size()&&mDIB24.isOkay(); } #endif