11 #include "IListProvider.h" 12 #include "threads/CriticalSection.h" 17 typedef std::unique_ptr<IListProvider> IListProviderPtr;
30 std::unique_ptr<IListProvider>
Clone()
override;
31 bool Update(
bool forceRefresh)
override;
32 void Fetch(std::vector<CGUIListItemPtr> &items)
override;
34 void Reset()
override;
35 bool OnClick(
const CGUIListItemPtr &item)
override;
36 bool OnInfo(
const CGUIListItemPtr &item)
override;
40 typedef size_t item_key_type;
41 static item_key_type GetItemKey(CGUIListItemPtr
const &item);
42 std::vector<IListProviderPtr> m_providers;
43 std::map<item_key_type, IListProvider*> m_itemMap;
44 CCriticalSection m_section;
An interface for providing lists to UI containers.
Definition: IListProvider.h:22
A listprovider that handles multiple individual providers.
Definition: MultiProvider.h:23
std::unique_ptr< IListProvider > Clone() override
Create an instance of the derived class. Allows for polymorphic copies.
Definition: MultiProvider.cpp:36
void Reset() override
Reset the current list of items. Derived classes may choose to ignore this.
Definition: MultiProvider.cpp:76
bool OnClick(const CGUIListItemPtr &item) override
Click event on an item.
Definition: MultiProvider.cpp:87
bool OnInfo(const CGUIListItemPtr &item) override
Open the info dialog for an item provided by this IListProvider.
Definition: MultiProvider.cpp:98
bool IsUpdating() const override
Check whether the list provider is updating content.
Definition: MultiProvider.cpp:68
bool OnContextMenu(const CGUIListItemPtr &item) override
Open the context menu for an item provided by this IListProvider.
Definition: MultiProvider.cpp:109
bool Update(bool forceRefresh) override
Update the list content.
Definition: MultiProvider.cpp:41
void Fetch(std::vector< CGUIListItemPtr > &items) override
Fetch the current list of items.
Definition: MultiProvider.cpp:49