From 15855fa84a09fd1fd486d357c38db0f2bd181e74 Mon Sep 17 00:00:00 2001 From: George Hazan Date: Tue, 4 Mar 2014 23:23:45 +0000 Subject: HistoryStats compiles ok now git-svn-id: http://svn.miranda-ng.org/main/trunk@8399 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- plugins/HistoryStats/src/canvas.h | 57 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 plugins/HistoryStats/src/canvas.h (limited to 'plugins/HistoryStats/src/canvas.h') diff --git a/plugins/HistoryStats/src/canvas.h b/plugins/HistoryStats/src/canvas.h new file mode 100644 index 0000000000..6b3c40e70e --- /dev/null +++ b/plugins/HistoryStats/src/canvas.h @@ -0,0 +1,57 @@ +#if !defined(HISTORYSTATS_GUARD_CANVAS_H) +#define HISTORYSTATS_GUARD_CANVAS_H + +#include "_globals.h" + +class Canvas + : private pattern::NotCopyable +{ +public: + class Digest + { + public: + unsigned char m_Digest[20]; + + Digest() { memset(m_Digest, 0, 20); } + Digest(const Digest& other) { memcpy(m_Digest, other.m_Digest, 20); } + const Digest& operator =(const Digest& other) { memcpy(m_Digest, other.m_Digest, 20); return *this; } + + bool operator ==(const Digest& other) const { return (memcmp(m_Digest, other.m_Digest, 20) == 0); } + bool operator <(const Digest& other) const { return (memcmp(m_Digest, other.m_Digest, 20) < 0); } + }; + +public: + static bool hasPNG() { return mu::png::_available(); } + +private: + int m_nChannels; + int m_nWidth; + int m_nHeight; + int m_nLineLength; + + bool m_bTransColor; + COLORREF m_TransColor; + + BITMAPINFOHEADER* m_pBMIH; + HDC m_hDC; + HBITMAP m_hBmp; + HGDIOBJ m_hOldBmp; + +private: + void updateTrans(BYTE* pData); + +public: + explicit Canvas(int nWidth, int nHeight); + ~Canvas(); + + void setTrans(COLORREF transColor, bool bFill = false); + void fillBackground(COLORREF bkColor); + + HDC beginDraw(); + void endDraw(); + + bool getDigest(Digest& digest); + bool writePNG(const mu_text* szFileName); +}; + +#endif // HISTORYSTATS_GUARD_CANVAS_H -- cgit v1.2.3