diff --git a/src/Screens/MusicSelect/Panel.cpp b/src/Screens/MusicSelect/Panel.cpp index b8238ac..687babd 100644 --- a/src/Screens/MusicSelect/Panel.cpp +++ b/src/Screens/MusicSelect/Panel.cpp @@ -12,8 +12,8 @@ void MusicSelect::ColorPanel::draw(const Resources& resources, sf::RenderTarget& target.draw(panel); } -void MusicSelect::CategoryPanel::click(Screen& screen) { - +void MusicSelect::CategoryPanel::click(Ribbon& ribbon) { + ribbon.move_to_next_category(); } void MusicSelect::CategoryPanel::draw(const Resources& resources, sf::RenderTarget& target, sf::FloatRect area) { @@ -64,7 +64,7 @@ void MusicSelect::CategoryPanel::draw(const Resources& resources, sf::RenderTarg -void MusicSelect::SongPanel::click(Screen& screen) { +void MusicSelect::SongPanel::click(Ribbon& ribbon) { } diff --git a/src/Screens/MusicSelect/Panel.hpp b/src/Screens/MusicSelect/Panel.hpp index ab08bac..26f1fab 100644 --- a/src/Screens/MusicSelect/Panel.hpp +++ b/src/Screens/MusicSelect/Panel.hpp @@ -15,7 +15,7 @@ namespace MusicSelect { class Panel { public: // What happens when you click on the panel - virtual void click(Screen& screen) = 0; + virtual void click(Ribbon& ribbon) = 0; // How the panel should be displayed virtual void draw(const Resources& resources, sf::RenderTarget& target, sf::FloatRect area) = 0; virtual ~Panel() = default; @@ -23,14 +23,14 @@ namespace MusicSelect { class EmptyPanel final : public Panel { public: - void click(Screen& screen) override {return;}; + void click(Ribbon& ribbon) override {return;}; void draw(const Resources& resources, sf::RenderTarget& target, sf::FloatRect area) override {return;}; }; class ColorPanel final : public Panel { public: explicit ColorPanel(const sf::Color& t_color) : color(t_color) {}; - void click(Screen& screen) override {return;}; + void click(Ribbon& ribbon) override {return;}; void draw(const Resources& resources, sf::RenderTarget& target, sf::FloatRect area) override; private: const sf::Color color; @@ -39,7 +39,7 @@ namespace MusicSelect { class CategoryPanel final : public Panel { public: explicit CategoryPanel(const std::string& t_label) : label(t_label) {}; - void click(Screen& screen) override; + void click(Ribbon& ribbon) override; void draw(const Resources& resources, sf::RenderTarget& target, sf::FloatRect area) override; private: std::string label; @@ -48,7 +48,7 @@ namespace MusicSelect { class SongPanel final : public Panel { public: explicit SongPanel(const Data::Song& t_song) : song(t_song) {}; - void click(Screen& screen) override; + void click(Ribbon& ribbon) override; void draw(const Resources& resources, sf::RenderTarget& target, sf::FloatRect area) override; private: const Data::Song& song; diff --git a/src/Screens/MusicSelect/Ribbon.hpp b/src/Screens/MusicSelect/Ribbon.hpp index dbc683a..28e050c 100644 --- a/src/Screens/MusicSelect/Ribbon.hpp +++ b/src/Screens/MusicSelect/Ribbon.hpp @@ -40,6 +40,7 @@ namespace MusicSelect { const std::shared_ptr& at(std::size_t button_index) const; void move_right(); void move_left(); + void move_to_next_category(); void draw_debug() override; private: void draw(sf::RenderTarget& target, sf::RenderStates states) const override;