123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- #ifndef NULLSOFT_WINAMP_OMBROWSER_TOOLBARITEM_HEADER
- #define NULLSOFT_WINAMP_OMBROWSER_TOOLBARITEM_HEADER
- #if defined(_MSC_VER) && (_MSC_VER >= 1020)
- #pragma once
- #endif
- #include <wtypes.h>
- #define ICON_NONE (-1)
- class __declspec(novtable) ToolbarItem
- {
- public:
- typedef enum
- {
- stateHidden = 0x0001,
- stateDisabled = 0x0002,
- statePressed = 0x0004,
- stateHighlighted = 0x0008,
- stateFocused = 0x0010,
- stateNoFocusRect = 0x0020,
-
- styleChevronOnly = 0x0100,
- styleNoChevron = 0x0200,
- stylePopup = 0x0400,
- styleFlexible = 0x1000, // item can change it width
- styleStatic = 0x2000, // item not reacting on mouse or keyboard events
- styleWantKey = 0x4000,
- styleTabstop = 0x8000, // item wants to have it's own tabstop (not TBS_TABSTOP)
- } Styles;
- typedef struct __Template
- {
- LPCSTR name;
- LPCWSTR text;
- LPCWSTR description;
- INT iconId;
- INT commandId;
- UINT style;
- } Template;
- protected:
- ToolbarItem(LPCSTR pszName, UINT nStyle, INT nIcon, LPCWSTR pszText, LPCWSTR pszDescription);
- virtual ~ToolbarItem();
- public:
- ULONG AddRef();
- ULONG Release();
-
- LPCSTR GetName();
- virtual UINT GetStyle();
- virtual void SetStyle(HWND hToolbar, UINT newStyle, UINT styleMask); // if NULL != hToolbar - item will be invalidated
-
- virtual BOOL SetRect(const RECT *prc);
- BOOL GetRect(RECT *prc);
- BOOL OffsetRect(INT dx, INT dy);
- virtual BOOL SetRectEmpty();
- BOOL IsRectEmpty();
- BOOL PtInRect(POINT pt);
-
- BOOL IntersectRect(RECT *prcDst, const RECT *prcSrc);
-
- BOOL IsEqual(LPCSTR pszName, INT cchName);
- virtual HRESULT GetText(LPWSTR pszBuffer, UINT cchBufferMax);
- virtual HRESULT GetTextLength(size_t *pcchLength) { return E_NOTIMPL; }
- virtual HRESULT GetDescription(LPWSTR pszBuffer, UINT cchBufferMax);
- virtual BOOL SetDescription(HWND hToolbar, LPCWSTR pszDescription);
- virtual BOOL AdjustRect(HWND hToolbar, RECT *proposedRect) { return FALSE; }
- virtual BOOL Paint(HWND hToolbar, HDC hdc, const RECT *paintRect, UINT state) { return FALSE;}
- virtual INT GetTip(LPTSTR pszBuffer, INT cchBufferMax) { return 0; }
- virtual void MouseMove(HWND hToolbar, UINT mouseFlags, POINT pt) {}
- virtual void MouseLeave(HWND hToolbar) {}
- virtual void LButtonDown(HWND hToolbar, UINT mouseFlags, POINT pt) {}
- virtual void LButtonUp(HWND hToolbar, UINT mouseFlags, POINT pt) {}
- virtual void Click(HWND hToolbar, UINT mouseFlags, POINT pt) {}
- virtual BOOL SetValueInt(HWND hToolbar, INT value) { return FALSE; }
- virtual BOOL SetValueStr(HWND hToolbar, LPCWSTR value) { return FALSE; }
- virtual INT GetCommandId() { return 0; }
- virtual void UpdateSkin(HWND hToolbar) {}
- virtual BOOL PtInItem(POINT pt);
- virtual BOOL FillMenuInfo(HWND hToolbar, MENUITEMINFO *pmii, LPWSTR pszBuffer, INT cchBufferMax) { return FALSE; }
- virtual BOOL KeyDown(HWND hToolbar, INT vKey, UINT flags) { return FALSE; }
- virtual BOOL KeyUp(HWND hToolbar, INT vKey, UINT flags) { return FALSE; }
- virtual void SetFocus(HWND hToolbar, ToolbarItem *focusItem, BOOL fSet) {}
- virtual BOOL SetCursor(HWND hToolbar, HWND hCursor, UINT hitTest, UINT messageId) { return FALSE; }
- virtual void CommandSent(HWND hToolbar, INT commandId) {}
- virtual BOOL DisplayContextMenu(HWND hToolbar, INT x, INT y) { return FALSE; }
- protected:
- ULONG ref;
- LPSTR name;
- UINT style;
- RECT rect;
- INT iconId;
- LPWSTR text;
- LPWSTR description;
- };
- #endif // NULLSOFT_WINAMP_OMBROWSER_TOOLBARITEM_HEADER
|