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/bandctrlimpl.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/bandctrlimpl.h')
-rw-r--r-- | plugins/HistoryStats/src/bandctrlimpl.h | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/plugins/HistoryStats/src/bandctrlimpl.h b/plugins/HistoryStats/src/bandctrlimpl.h new file mode 100644 index 0000000000..7aa9ce8abb --- /dev/null +++ b/plugins/HistoryStats/src/bandctrlimpl.h @@ -0,0 +1,92 @@ +#if !defined(HISTORYSTATS_GUARD_BANDCTRLIMPL_H)
+#define HISTORYSTATS_GUARD_BANDCTRLIMPL_H
+
+#include "_globals.h"
+#include "bandctrldefs.h"
+
+#include <vector>
+
+#include "themeapi.h"
+
+/*
+ * BandCtrlImpl
+ */
+
+class BandCtrlImpl
+ : public BandCtrlDefs
+ , private pattern::NotCopyable<BandCtrlImpl>
+{
+private:
+ struct ItemData {
+ bool bRight;
+ int nIcon;
+ int nIconD;
+ ext::string text;
+ ext::string tooltip;
+ bool bChecked;
+ bool bVisible;
+ bool bDropDown;
+ DWORD dwData;
+ RECT rItem;
+ UINT uTTId;
+ bool bEnabled;
+ };
+
+private:
+ static const mu_text* m_ClassName;
+ static const int m_PollId;
+ static const int m_PollDelay;
+
+private:
+ static LRESULT CALLBACK staticWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
+
+public:
+ static bool registerClass();
+ static void unregisterClass();
+
+private:
+ HWND m_hWnd;
+ int m_nOwnId;
+ HFONT m_hFont;
+ HTHEME m_hTheme;
+ std::vector<ItemData> m_Items;
+ HIMAGELIST m_hImageList;
+ HIMAGELIST m_hImageListD;
+ SIZE m_IconSize;
+ HWND m_hTooltip;
+ int m_nCurHot;
+ int m_nCurFocused;
+ int m_nCurPressed;
+ bool m_bCurPressedDD;
+ int m_nLayout;
+ int m_nDDWidth;
+ HICON m_hDDIcon;
+
+private:
+ explicit BandCtrlImpl(HWND hWnd, int nOwnId);
+ ~BandCtrlImpl();
+
+private:
+ void onWMPaint();
+ void drawButton(HDC hDC, int nItem, int textHeight, bool bBandEnabled);
+ void reloadTheme();
+ HICON convertToGray(HICON hIcon);
+ int onBCMAddButton(BCBUTTON* pButton);
+ void onBCMCheckButton(int nItem, bool bCheck);
+ void onBCMShowButton(int nItem, bool bShow);
+ void onBCMGetButtonRect(int nItem, RECT* pRect);
+ void onBCMEnableButton(int nItem, bool bEnable);
+ void recalcButtonRects();
+ int getNextButton(int nItem);
+ int getPrevButton(int nItem);
+ void fireEvent(UINT code, int nItem);
+ void onWMSetFocus();
+ void onWMKeyDown(int nVirtKey);
+ void onWMKeyUp(int nVirtKey);
+ void onWMMouseLeave();
+ void onWMMouseMove(POINTS pts);
+ void onWMLButtonDown(POINTS pts);
+ void onWMLButtonUp(POINTS pts);
+};
+
+#endif // HISTORYSTATS_GUARD_BANDCTRLIMPL_H
\ No newline at end of file |