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<std::shared_ptr<CGUIListItem>>& items)
override;
34 void Reset()
override;
35 bool OnClick(
const std::shared_ptr<CGUIListItem>& item)
override;
36 bool OnInfo(
const std::shared_ptr<CGUIListItem>& item)
override;
37 bool OnContextMenu(
const std::shared_ptr<CGUIListItem>& item)
override;
40 typedef size_t item_key_type;
41 static item_key_type GetItemKey(std::shared_ptr<CGUIListItem>
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:21
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
bool OnContextMenu(const std::shared_ptr< CGUIListItem > &item) override
Open the context menu for an item provided by this IListProvider.
Definition: MultiProvider.cpp:109
void Reset() override
Reset the current list of items. Derived classes may choose to ignore this.
Definition: MultiProvider.cpp:76
bool OnInfo(const std::shared_ptr< CGUIListItem > &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 Update(bool forceRefresh) override
Update the list content.
Definition: MultiProvider.cpp:41
bool OnClick(const std::shared_ptr< CGUIListItem > &item) override
Click event on an item.
Definition: MultiProvider.cpp:87
void Fetch(std::vector< std::shared_ptr< CGUIListItem >> &items) override
Fetch the current list of items.
Definition: MultiProvider.cpp:49