1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- #ifndef NULLOSFT_MEDIALIBRARY_SKINNED_HEADER_CONTROL_HEADER
- #define NULLOSFT_MEDIALIBRARY_SKINNED_HEADER_CONTROL_HEADER
- #if defined(_MSC_VER) && (_MSC_VER >= 1020)
- #pragma once
- #endif
- #include "./skinnedwnd.h"
- #include <commctrl.h>
- #ifndef HDF_SORTUP
- #define HDF_SORTUP 0x0400
- #define HDF_SORTDOWN 0x0200
- #endif // !HDF_SORTUP
- // size rules
- #define SHS_SIZERULE_WINDOWS 0x00 // Use windows default size rule.
- #define SHS_SIZERULE_ADJUSTONE 0x01 // Resize column and adjust adjacent column.
- #define SHS_SIZERULE_ADJUSTALL 0x03 // Resize column and adjust adjacent column when column reach minimum adjust next one.
- #define SHS_SIZERULE_PROPORTIONAL 0x02 // Resize column and adjust all columns proportionately.
- class SkinnedHeader : public SkinnedWnd
- {
- protected:
- SkinnedHeader(void);
- virtual ~SkinnedHeader(void);
-
- void SetHeight(INT nHeight); // if nHeight == -1 control will calculate height required to fit current font
-
- protected:
- virtual BOOL Attach(HWND hwndHeader);
- virtual LRESULT WindowProc(UINT uMsg, WPARAM wParam, LPARAM lParam);
- virtual BOOL OnReflectedNotify(INT idCtrl, REFLECTPARAM *rParam);
- virtual BOOL OnCustomDraw(HWND hwndFrom, NMCUSTOMDRAW *pnmcd, LRESULT *pResult);
- virtual void OnSkinChanged(BOOL bNotifyChildren, BOOL bRedraw);
- virtual void OnPaint(void);
- virtual BOOL OnLayout(HDLAYOUT *pLayout);
- virtual BOOL OnSetCursor(HWND hwdCursor, UINT hitTest, UINT message);
- virtual BOOL OnBeginTrack(HWND hwndFrom, NMHEADERW *phdn, LRESULT *pResult);
- virtual BOOL OnEndTrack(HWND hwndFrom, NMHEADERW *phdn);
- virtual BOOL OnItemChanging(HWND hwndFrom, NMHEADERW *phdn, LRESULT *pResult);
- virtual BOOL OnItemChanged(HWND hwndFrom, NMHEADERW *phdn);
- virtual void OnTimer(UINT_PTR nIDEvent, TIMERPROC lpTimerFunc);
- virtual BOOL OnCursorNotify(HWND hwndFrom, NMMOUSE *pnm, LRESULT *pResult);
- virtual BOOL OnMediaLibraryIPC(INT msg, INT_PTR param, LRESULT *pResult);
- virtual LRESULT OnSetItem(INT iIndex, HDITEMW *phdItem, BOOL bUnicode);
- private:
- void DrawHeaderItem(LPNMCUSTOMDRAW pnmcd);
- UINT SizeRuleAdjustOne(HDITEMW *phdi, INT index, UINT uMsg);
- UINT SizeRuleProportional(HDITEMW *phdi, INT index, UINT uMsg);
- void BlockRedraw(BOOL bBlock, UINT unblockDelay);
- friend BOOL SkinWindowEx(HWND hwndToSkin, INT type, UINT style);
- public:
- static DWORD GetSortArrowSize(void);
- static BOOL DrawSortArrow(HDC hdc, RECT *prc, COLORREF rgbBk, COLORREF rgbFg, BOOL bAscending);
- static BOOL DrawCloudIcon(HDC hdc, RECT *prc, COLORREF rgbBk, COLORREF rgbFg);
- protected:
- DWORD hdrFlags;
- DWORD hdrSizeRule;
- HCURSOR hcurNormal;
- INT cloudColumn;
- };
- #endif // NULLOSFT_MEDIAIBRARY_SKINNED_HEADER_CONTROL_HEADER
|