winamp/Src/Plugins/Library/ml_online/Setup/setupListbox.h

84 lines
3.4 KiB
C++

#ifndef NULLOSFT_ONLINEMEDIA_PLUGIN_SETUPLISTBOX_HEADER
#define NULLOSFT_ONLINEMEDIA_PLUGIN_SETUPLISTBOX_HEADER
#if defined(_MSC_VER) && (_MSC_VER >= 1020)
#pragma once
#endif
#include <windows.h>
class SetupGroupList;
class SetupListboxItem;
class __declspec(novtable) SetupListbox
{
public:
typedef enum
{
menuGroupContext = 0,
} contextMenu;
public:
static HRESULT CreateInstance(HWND hListbox, SetupGroupList *groupList, SetupListbox **pInstance);
static SetupListbox *GetInstance(HWND hListbox);
public:
virtual HWND GetHwnd() = 0;
virtual HFONT GetFont() = 0;
virtual LRESULT CallDefaultProc(UINT uMsg, WPARAM wParam, LPARAM lParam) = 0;
virtual LRESULT CallPrevProc(UINT uMsg, WPARAM wParam, LPARAM lParam) = 0;
virtual BOOL MeasureItem(INT itemId, UINT *cx, UINT *cy) = 0;
virtual BOOL DrawItem(HDC hdc, const RECT *prcItem, INT itemId, UINT itemState, UINT itemAction) = 0;
virtual INT_PTR KeyToItem(INT vKey, INT caretPos) = 0;
virtual INT_PTR CharToItem(INT vKey, INT caretPos) = 0;
virtual BOOL DrawCheckbox(HDC hdc, BOOL checked, UINT state, const RECT *pRect, const RECT *pClipRect) = 0;
virtual BOOL GetCheckboxMetrics(HDC hdc, BOOL checked, UINT state, SIZE *pSize) = 0;
virtual void SetCapture(SetupListboxItem *item) = 0;
virtual SetupListboxItem *GetCapture() = 0;
virtual void ReleaseCapture() = 0;
virtual BOOL InvalidateRect(const RECT *prcInvalidate, BOOL fErase) = 0;
virtual BOOL InvalidateItem(INT iItem, BOOL fErase) = 0;
virtual void UpdateCount() = 0;
virtual BOOL DrawExpandbox(HDC hdc, BOOL fExpanded, const RECT *pRect, COLORREF rgbBk, COLORREF rgbFg) = 0;
virtual BOOL GetExpandboxMetrics(HDC hdc, BOOL fExpanded, SIZE *pSize) = 0;
virtual INT GetPageCount() = 0;
virtual INT GetNextEnabledItem(INT iItem, SetupListboxItem **itemOut) = 0;
virtual INT GetPrevEnabledItem(INT iItem, SetupListboxItem **itemOut) = 0;
virtual SetupListboxItem *GetSelection() = 0;
virtual BOOL SetSelection(SetupListboxItem *item) = 0;
virtual BOOL GetIndex(SetupListboxItem *item, INT *iItem) = 0;
virtual HMENU GetContextMenu(UINT menuId) = 0;
};
class __declspec(novtable) SetupListboxItem
{
public:
virtual BOOL MeasureItem(SetupListbox *instance, UINT *cx, UINT *cy) = 0;
virtual BOOL DrawItem(SetupListbox *instance, HDC hdc, const RECT *prc, UINT state) = 0;
virtual INT_PTR KeyToItem(SetupListbox *instance, const RECT *prcItem, INT vKey) = 0;
virtual BOOL MouseMove(SetupListbox *instance, const RECT *prcItem, UINT mouseFlags, POINT pt) = 0;
virtual BOOL MouseLeave(SetupListbox *instance, const RECT *prcItem) = 0;
virtual BOOL LButtonDown(SetupListbox *instance, const RECT *prcItem, UINT mouseFlags, POINT pt) = 0;
virtual BOOL LButtonUp(SetupListbox *instance, const RECT *prcItem, UINT mouseFlags, POINT pt) = 0;
virtual BOOL LButtonDblClk(SetupListbox *instance, const RECT *prcItem, UINT mouseFlags, POINT pt) = 0;
virtual BOOL RButtonDown(SetupListbox *instance, const RECT *prcItem, UINT mouseFlags, POINT pt) = 0;
virtual BOOL RButtonUp(SetupListbox *instance, const RECT *prcItem, UINT mouseFlags, POINT pt) = 0;
virtual void CaptureChanged(SetupListbox *instance, const RECT *prcItem, SetupListboxItem *captured) = 0;
virtual BOOL IsDisabled() = 0;
virtual void Command(SetupListbox *instance, INT commandId, INT eventId) = 0;
virtual HWND CreateDetailsView(HWND hParent) = 0;
virtual BOOL GetUniqueName(LPWSTR pszBuffer, UINT cchBufferMax) = 0;
};
#endif //NULLOSFT_ONLINEMEDIA_PLUGIN_SETUPLISTBOX_HEADER