123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131 |
- #ifndef NULLOSFT_ONLINEMEDIA_PLUGIN_SETUPGROUP_HEADER
- #define NULLOSFT_ONLINEMEDIA_PLUGIN_SETUPGROUP_HEADER
- #if defined(_MSC_VER) && (_MSC_VER >= 1020)
- #pragma once
- #endif
- #include <wtypes.h>
- #include "./setupRecord.h"
- #include "./setupListbox.h"
- #include <vector>
- class SetupListboxLabel;
- class SetupLog;
- class SetupPage;
- class ifc_omstorage;
- class SetupGroup : public SetupListboxItem
- {
- public:
- typedef enum
- {
- styleDefaultUnsubscribed = 0x00000001,
- styleDefaultSubscribed = 0x00000002,
- styleSortAlphabetically = 0x00000008,
- styleSaveAll = 0x00000010,
- } GroupStyles;
- protected:
- typedef enum
- {
- flagCollapsed = 0x0001,
- flagMenuActive = 0x0002,
- flagLoading = 0x0004,
- } GroupFlags;
- protected:
- SetupGroup(INT groupId, LPCWSTR pszName, LPCWSTR pszAddress, const GUID *storageId, const GUID *filterId, UINT fStyle);
- ~SetupGroup();
- public:
- static SetupGroup *CreateInstance(INT groupId, LPCWSTR pszName, LPCWSTR pszAddress, const GUID *storageId, const GUID *filterId, UINT fStyle);
- public:
- ULONG AddRef();
- ULONG Release();
- INT GetId() { return id; }
- HRESULT GetName(LPWSTR pszBuffer, INT cchBufferMax);
- HRESULT GetLongName(LPWSTR pszBuffer, INT cchBufferMax);
- HRESULT GetDescription(LPWSTR pszBuffer, INT cchBufferMax);
- size_t GetRecordCount();
- SetupRecord *GetRecord(size_t index) { return list[index]; }
- size_t GetListboxCount();
- SetupListboxItem *GetListboxItem(size_t index);
- BOOL IsModified();
-
- BOOL IsExpanded();
- void SetExpanded(BOOL fExpanded);
- void SelectAll(SetupListbox *instance, BOOL fSelect);
- HRESULT RequestReload();
- HRESULT Save(SetupLog *log);
- void SetEmptyText(LPCWSTR pszText, BOOL fInvalidate);
- void SetLongName(LPCWSTR pszText);
- void SetDescription(LPCWSTR pszText);
-
- void GetColors(HDC hdc, UINT state, COLORREF *rgbBkOut, COLORREF *rgbTextOut);
- HBRUSH GetBrush(HDC hdc, UINT state);
- HRESULT SignalLoadCompleted(HANDLE event);
- void ValidateSelection(SetupListbox *instance);
- /* SetupListboxItem */
- BOOL MeasureItem(SetupListbox *instance, UINT *cx, UINT *cy);
- BOOL DrawItem(SetupListbox *instance, HDC hdc, const RECT *prc, UINT state);
- INT_PTR KeyToItem(SetupListbox *instance, const RECT *prcItem, INT vKey);
- BOOL MouseMove(SetupListbox *instance, const RECT *prcItem, UINT mouseFlags, POINT pt);
- BOOL MouseLeave(SetupListbox *instance, const RECT *prcItem);
- BOOL LButtonDown(SetupListbox *instance, const RECT *prcItem, UINT mouseFlags, POINT pt);
- BOOL LButtonUp(SetupListbox *instance, const RECT *prcItem, UINT mouseFlags, POINT pt);
- BOOL LButtonDblClk(SetupListbox *instance, const RECT *prcItem, UINT mouseFlags, POINT pt);
- BOOL RButtonDown(SetupListbox *instance, const RECT *prcItem, UINT mouseFlags, POINT pt);
- BOOL RButtonUp(SetupListbox *instance, const RECT *prcItem, UINT mouseFlags, POINT pt);
- void CaptureChanged(SetupListbox *instance, const RECT *prcItem, SetupListboxItem *captured);
- BOOL IsDisabled() { return FALSE; }
- void Command(SetupListbox *instance, INT commandId, INT eventId);
- HWND CreateDetailsView(HWND hParent);
- BOOL GetUniqueName(LPWSTR pszBuffer, UINT cchBufferMax);
- void SetError(HRESULT code) { errorCode = code; }
- HRESULT GetError() { return errorCode; }
- void Clear(BOOL fInvalidate);
- void SetPageWnd(HWND hPage);
- protected:
- void InvertExpanded(SetupListbox *instance);
- void OnLoadCompleted();
-
- private:
- friend static void CALLBACK SetupGroup_LoadCallback(ifc_omstorageasync *result);
-
- protected:
- ULONG ref;
- INT id;
- LPWSTR name;
- LPWSTR longName;
- LPWSTR description;
- UINT style;
- UINT flags;
- LPWSTR address;
- GUID storageId;
- GUID filterId;
- HRESULT errorCode;
- std::vector<SetupRecord*> list;
- SetupListboxLabel *emptyLabel;
- CRITICAL_SECTION lock;
- ifc_omstorageasync *loadResult;
- HWND hPage;
- HANDLE loadComplete;
- };
- #endif //NULLOSFT_ONLINEMEDIA_PLUGIN_SETUPGROUP_HEADER
|