From 9e0a0e8ba4e34d4d15c1522c93e7aa7267681e50 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matt=C3=A9o=20Delabre?= Date: Tue, 5 Apr 2016 20:07:58 +0200 Subject: [PATCH] Ajout des fonctions pour changer le titre --- include/editor.hpp | 5 +++++ include/game.hpp | 5 +++++ include/level.hpp | 4 ++-- include/manager.hpp | 11 +++++++++++ src/editor.cpp | 5 +++++ src/game.cpp | 5 +++++ src/manager.cpp | 18 +++++++++++++++--- 7 files changed, 48 insertions(+), 5 deletions(-) diff --git a/include/editor.hpp b/include/editor.hpp index c077155..a79dc14 100644 --- a/include/editor.hpp +++ b/include/editor.hpp @@ -41,6 +41,11 @@ public: Editor(Manager& manager); virtual ~Editor(); + /** + * Charge un niveau de jeu depuis le fichier donné + */ + virtual void load(std::ifstream& file); + /** * Demande le passage à la frame suivante sur * cette vue diff --git a/include/game.hpp b/include/game.hpp index 97a446a..559af1d 100644 --- a/include/game.hpp +++ b/include/game.hpp @@ -21,6 +21,11 @@ public: Game(Manager& manager); virtual ~Game(); + /** + * Charge un niveau de jeu depuis le fichier donné + */ + virtual void load(std::ifstream& file); + /** * Demande le passage à la frame suivante sur * cette vue diff --git a/include/level.hpp b/include/level.hpp index eea93ad..ac2234a 100644 --- a/include/level.hpp +++ b/include/level.hpp @@ -34,12 +34,12 @@ public: /** * Charge un niveau de jeu depuis le fichier donné */ - void load(std::ifstream& file); + virtual void load(std::ifstream& file); /** * Sauvegarde la configuration actuelle comme un niveau */ - void save(); + virtual void save(); /** * Récupère le nom du niveau diff --git a/include/manager.hpp b/include/manager.hpp index c42e48c..68cd25e 100644 --- a/include/manager.hpp +++ b/include/manager.hpp @@ -14,6 +14,7 @@ private: sf::RenderWindow window; sf::Clock clock; sf::View window_view; + std::string title; ResourceManager resource_manager; std::vector events; @@ -64,6 +65,16 @@ public: */ void setWindowView(sf::View set_window_view); + /** + * Renvoie le titre actuel de la fenêtre + */ + std::string getTitle(); + + /** + * Modifie le titre actuel de la fenêtre + */ + void setTitle(std::string set_title); + /** * Renvoie un booléen attestant de l'appui sur la * touche donnée ou non diff --git a/src/editor.cpp b/src/editor.cpp index aaedf70..b85a81a 100644 --- a/src/editor.cpp +++ b/src/editor.cpp @@ -12,6 +12,11 @@ Editor::Editor(Manager& manager) : Level(manager) { Editor::~Editor() {} +void Editor::load(std::ifstream& file) { + Level::load(file); + manager.setTitle("Edition de " + getName()); +} + void Editor::frame() { const std::vector& events = manager.getEvents(); diff --git a/src/game.cpp b/src/game.cpp index f3a7f48..cfb02cd 100644 --- a/src/game.cpp +++ b/src/game.cpp @@ -11,6 +11,11 @@ Game::Game(Manager& manager) : Level(manager), next_frame_time(manager.getCurren Game::~Game() {} +void Game::load(std::ifstream& file) { + Level::load(file); + manager.setTitle(getName()); +} + void Game::frame() { sf::Time current_time = manager.getCurrentTime(); diff --git a/src/manager.cpp b/src/manager.cpp index 9de7d5e..57b753c 100644 --- a/src/manager.cpp +++ b/src/manager.cpp @@ -3,9 +3,7 @@ Manager::Manager() : window( sf::VideoMode(704, 480), "Skizzle", sf::Style::Default, sf::ContextSettings(0, 0, 2) -), view(NULL) { - window_view = window.getView(); -} +), window_view(window.getView()), title(""), view(NULL) {} void Manager::start() { while (window.isOpen()) { @@ -70,6 +68,20 @@ void Manager::setWindowView(sf::View set_window_view) { window_view = set_window_view; } +std::string Manager::getTitle() { + return title; +} + +void Manager::setTitle(std::string set_title) { + title = set_title; + + if (title.empty()) { + window.setTitle("Skizzle"); + } else { + window.setTitle("Skizzle - " + title); + } +} + bool Manager::isKeyPressed(sf::Keyboard::Key key) const { return sf::Keyboard::isKeyPressed(key) && window.hasFocus(); }