From 6b3ded37e4a4825be2df3612bdcbb7dfc00a1800 Mon Sep 17 00:00:00 2001 From: George Hazan Date: Tue, 4 Mar 2014 20:41:13 +0000 Subject: HistoryStats sources git-svn-id: http://svn.miranda-ng.org/main/trunk@8397 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- plugins/!NotAdopted/HistoryStats/bandctrlimpl.h | 92 +++++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 plugins/!NotAdopted/HistoryStats/bandctrlimpl.h (limited to 'plugins/!NotAdopted/HistoryStats/bandctrlimpl.h') diff --git a/plugins/!NotAdopted/HistoryStats/bandctrlimpl.h b/plugins/!NotAdopted/HistoryStats/bandctrlimpl.h new file mode 100644 index 0000000000..7aa9ce8abb --- /dev/null +++ b/plugins/!NotAdopted/HistoryStats/bandctrlimpl.h @@ -0,0 +1,92 @@ +#if !defined(HISTORYSTATS_GUARD_BANDCTRLIMPL_H) +#define HISTORYSTATS_GUARD_BANDCTRLIMPL_H + +#include "_globals.h" +#include "bandctrldefs.h" + +#include + +#include "themeapi.h" + +/* + * BandCtrlImpl + */ + +class BandCtrlImpl + : public BandCtrlDefs + , private pattern::NotCopyable +{ +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 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 -- cgit v1.2.3