diff options
author | George Hazan <george.hazan@gmail.com> | 2014-03-04 23:23:45 +0000 |
---|---|---|
committer | George Hazan <george.hazan@gmail.com> | 2014-03-04 23:23:45 +0000 |
commit | 15855fa84a09fd1fd486d357c38db0f2bd181e74 (patch) | |
tree | c98d1ae74abca41c776522059343eda13a7e0a31 /plugins/HistoryStats/src/canvas.h | |
parent | 819f8efabea6b0d7d971f9e6e4b21bbc18838874 (diff) |
HistoryStats compiles ok now
git-svn-id: http://svn.miranda-ng.org/main/trunk@8399 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'plugins/HistoryStats/src/canvas.h')
-rw-r--r-- | plugins/HistoryStats/src/canvas.h | 57 |
1 files changed, 57 insertions, 0 deletions
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<Canvas>
+{
+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
|