148 lines
2.9 KiB
C++
148 lines
2.9 KiB
C++
#ifndef _NNTP_THUMBPAGE_HPP_
|
|
#define _NNTP_THUMBPAGE_HPP_
|
|
#ifndef _COMMON_WINDOWS_HPP_
|
|
#include <common/windows.hpp>
|
|
#endif
|
|
#ifndef _COMMON_BLOCK_HPP_
|
|
#include <common/block.hpp>
|
|
#endif
|
|
#ifndef _COMMON_PUREDEVICE_HPP_
|
|
#include <common/purehdc.hpp>
|
|
#endif
|
|
#ifndef _COMMON_SMARTPOINTER_HPP_
|
|
#include <common/pointer.hpp>
|
|
#endif
|
|
#ifndef _NNTP_THUMBNAIL_HPP_
|
|
#include <nntp/thmbnail.hpp>
|
|
#endif
|
|
#ifndef _JPGIMG_DIB24_HPP_
|
|
#include <jpgimg/dib24.hpp>
|
|
#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<SmartPointer<ThumbNail> > 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<SmartPointer<ThumbNail> >&)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
|