1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- #ifndef NULLOSFT_MEDIALIBRARY_SKINNED_BUTTON_HEADER
- #define NULLOSFT_MEDIALIBRARY_SKINNED_BUTTON_HEADER
- #if defined(_MSC_VER) && (_MSC_VER >= 1020)
- #pragma once
- #endif
- #include "./skinnedwnd.h"
- #define BUTTON_TEXT_MAX 512
- typedef struct _BUTTONPAINTSTRUCT
- {
- HDC hdc;
- RECT rcClient;
- RECT rcPaint;
- UINT buttonState;
- UINT windowStyle;
- UINT skinnedStyle;
- HBITMAP hImage;
- INT imageIndex;
- UINT textFormat;
- HFONT hFont;
- COLORREF rgbText;
- COLORREF rgbTextBk;
- INT cchText;
- wchar_t szText[BUTTON_TEXT_MAX];
- } BUTTONPAINTSTRUCT;
- class SkinnedButton : public SkinnedWnd
- {
- protected:
- SkinnedButton(void);
- virtual ~SkinnedButton(void);
- protected:
- virtual BOOL Attach(HWND hwndButton);
- virtual LRESULT WindowProc(UINT uMsg, WPARAM wParam, LPARAM lParam); // treat this as dialog proc
- virtual void OnPaint(void);
- virtual void OnPrintClient(HDC hdc, UINT options);
- virtual void OnSkinChanged(BOOL bNotifyChildren, BOOL bRedraw);
- virtual BOOL OnMediaLibraryIPC(INT msg, INT_PTR param, LRESULT *pResult);
- virtual void OnLButtonDown(UINT flags, POINTS pts);
- virtual void OnLButtonUp(UINT flags, POINTS pts);
- virtual void OnMouseMove(UINT flags, POINTS pts);
- virtual LRESULT GetIdealSize(LPCWSTR pszText);
- protected:
- void Emulate_LeftButtonDown(UINT flags, POINTS pts, BOOL forwardMessage);
- void Emulate_LeftButtonUp(UINT flags, POINTS pts, BOOL forwardMessage);
- public:
- static COLORREF GetButtonBkColor(BOOL bPressed, BOOL *pbUnified);
- static void PrePaint(HWND hwnd, BUTTONPAINTSTRUCT *pbps, UINT skinStyle, UINT uiStat);
- static void DrawButton(BUTTONPAINTSTRUCT *pbps);
- static void DrawPushButton(BUTTONPAINTSTRUCT *pbps);
- static void DrawGroupBox(BUTTONPAINTSTRUCT *pbps);
- static void DrawCheckBox(BUTTONPAINTSTRUCT *pbps);
- static void DrawRadioButton(BUTTONPAINTSTRUCT *pbps);
- static BOOL RegisterImageFilter(HANDLE filterMananger);
- protected:
- MLBUTTONIMAGELIST imagelist;
- private:
- friend BOOL SkinWindowEx(HWND hwndToSkin, INT type, UINT style);
- };
- #endif // NULLOSFT_MEDIALIBRARY_SKINNED_BUTTON_HEADER
|