15 |
|
#include "Display.hpp" |
16 |
|
#include "Filter.hpp" |
17 |
|
|
18 |
< |
struct MenuList |
18 |
> |
class MenuList |
19 |
|
{ |
20 |
– |
protected: |
20 |
|
static MenuList *previous; |
22 |
– |
|
23 |
– |
private: |
21 |
|
MenuList *parent; |
22 |
|
Display &display; |
23 |
|
size_t cursor; |
71 |
|
protected: |
72 |
|
Audacious::Audacious &audacious; |
73 |
|
bool &append; |
77 |
– |
MusicLibrary::Library &library; |
74 |
|
|
75 |
< |
MusicItem(Audacious::Audacious &audacious, bool &append, MusicLibrary::Library &library); |
75 |
> |
MusicItem(Audacious::Audacious &audacious, bool &append); |
76 |
|
}; |
77 |
|
|
78 |
|
std::vector<MenuItem *> list; |
88 |
|
void Render(); |
89 |
|
MenuList &operator ++(); |
90 |
|
MenuList &operator --(); |
91 |
+ |
|
92 |
+ |
friend struct TopList; |
93 |
|
}; |
94 |
|
|
95 |
|
class TopList : public MenuList |
118 |
|
virtual operator bool() const; |
119 |
|
}; |
120 |
|
|
121 |
< |
struct MusicItem : public MenuItem, public SubItem, public MenuList::MusicItem |
121 |
> |
class MusicItem : public MenuItem, public SubItem, public MenuList::MusicItem |
122 |
|
{ |
123 |
+ |
MusicLibrary::Library &library; |
124 |
+ |
|
125 |
+ |
public: |
126 |
|
MusicItem(MenuList *list, Audacious::Audacious &audacious, bool &append, MusicLibrary::Library &library); |
127 |
|
|
128 |
|
virtual MenuList *Select(); |
135 |
|
|
136 |
|
class ArtistList : public MenuList |
137 |
|
{ |
138 |
< |
struct AllItem : public MenuItem, public MusicItem |
138 |
> |
class AllItem : public MenuItem, public MusicItem |
139 |
|
{ |
140 |
+ |
MusicLibrary::Library &library; |
141 |
+ |
|
142 |
+ |
public: |
143 |
|
AllItem(MenuList *list, Audacious::Audacious &audacious, bool &append, MusicLibrary::Library &library); |
144 |
|
|
145 |
|
virtual MenuList *Select(); |
146 |
|
virtual operator std::string() const; |
147 |
|
}; |
148 |
|
|
149 |
< |
/*struct ArtistItem : public MenuItem, public SubItem |
149 |
> |
class ArtistItem : public MenuItem, public SubItem, public MusicItem |
150 |
|
{ |
151 |
< |
};*/ |
151 |
> |
MusicLibrary::Artist artist; |
152 |
> |
|
153 |
> |
public: |
154 |
> |
ArtistItem(MenuList *list, Audacious::Audacious &audacious, bool append, MusicLibrary::Artist artist); |
155 |
> |
virtual ~ArtistItem() {} |
156 |
> |
|
157 |
> |
virtual MenuList *Select(); |
158 |
> |
virtual operator std::string() const; |
159 |
> |
}; |
160 |
|
|
161 |
|
public: |
162 |
|
ArtistList(MenuList *parent, Audacious::Audacious &audacious, bool &append, MusicLibrary::Library &library); |