Files
Work/nntp/THMBPAGE.HPP
2024-08-07 09:16:27 -04:00

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