#ifndef _MEDIAMENU_H_ #define _MEDIAMENU_H_ #include "cowsite.h" class CMediaBand; #define MEDIA_MRU_LIMIT 10 class CMediaMRU { public: CMediaMRU(); ~CMediaMRU(); VOID Load(PTSTR pszKey); VOID Add(PTSTR pszData); BOOL Get(INT iWhich, PTSTR pszOut); VOID Delete(INT iWhich); private: HKEY _hkey; }; class CMediaWidget { public: CMediaWidget(HWND, int cx, int cy); ~CMediaWidget(); virtual LRESULT Draw(LPNMTBCUSTOMDRAW pnmc) = 0; virtual BOOL IsEnabled() = 0; virtual HRESULT TranslateAccelerator(LPMSG pMsg) = 0; //private: HWND _hwnd, _hwndParent; INT _cx, _cy; }; enum { MWB_NORMAL = 0, MWB_DISABLED, MWB_HOT, MWB_PRESSED }; class CMediaWidgetButton : public CMediaWidget { public: CMediaWidgetButton(HWND, int, int); ~CMediaWidgetButton(); HRESULT SetImageList(INT iResource); HRESULT SetAlternateImageList(INT iResource); HRESULT SetImageSource(BOOL fImageSource); HRESULT SetMode(DWORD); virtual HRESULT Initialize(int idCommand, int idTooltip=0, int idTooltipAlt=0); LRESULT Draw(LPNMTBCUSTOMDRAW pnmc); BOOL IsEnabled(); HRESULT TranslateAccelerator(LPMSG pMsg); //private: HIMAGELIST _himl, _himlAlt; INT _iTooltip, _iTooltipAlt, _iCommand; BOOL _fImageSource; DWORD _dwMode; }; CMediaWidgetButton * CMediaWidgetButton_CreateInstance(HWND hwnd, int cx, int cy, int idCommand, int idImageList, int idAlt=0, int idTooltip=0, int idTooltipAlt=0); class CMediaWidgetToggle : public CMediaWidgetButton { public: CMediaWidgetToggle(HWND, int, int); LRESULT Draw(LPNMTBCUSTOMDRAW pnmc); VOID SetState(BOOL fState); BOOL IsEnabled() { return TRUE; }; BOOL _fState; }; class CMediaWidgetOptions : public CMediaWidgetButton { public: CMediaWidgetOptions(HWND, int, int); LRESULT Draw(LPNMTBCUSTOMDRAW pnmc); BOOL IsEnabled() { return TRUE; } HRESULT Initialize(int idCommand, int idTooltip=0, int idTooltipAlt=0); VOID SetDepth(BOOL fDepth) { _fDepth = fDepth; }; BOOL _fDepth; }; class CMediaWidgetVolume : public CMediaWidget { public: CMediaWidgetVolume() : CMediaWidget(NULL, 0, 0) {}; LRESULT Draw(LPNMTBCUSTOMDRAW pnmc) { return CDRF_DODEFAULT; }; BOOL IsEnabled() { return TRUE; }; HRESULT TranslateAccelerator(LPMSG pMsg); HRESULT Initialize(HWND hwnd); }; class CMediaWidgetSeek : public CMediaWidget { public: CMediaWidgetSeek() : CMediaWidget(NULL, 0, 0) { _fState = FALSE; }; LRESULT Draw(LPNMTBCUSTOMDRAW pnmc) { return CDRF_DODEFAULT; }; BOOL IsEnabled() { return _fState; }; HRESULT TranslateAccelerator(LPMSG pMsg); HRESULT Initialize(HWND hwnd); VOID SetState(BOOL fState); BOOL _fState; }; #define crMask RGB(255, 0, 255) #define COLOR_BKGND RGB(71, 80, 158) #define COLOR_BKGND2 RGB(92, 118, 186) #endif