From 8c91ba7a54ac6d2ec4ad8c0a74113a73b153d88d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matt=C3=A9o=20Delabre?= Date: Wed, 27 Apr 2016 19:44:40 +0200 Subject: [PATCH] =?UTF-8?q?Boutons=20normaux=20et=20impl=C3=A9mentation=20?= =?UTF-8?q?du=20bouton=20=C3=A9diteur=20musique?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/gui/action_toolbar.hpp | 6 +++++- include/resource_manager.hpp | 10 +++++----- res/gui.theme | 7 ++++--- src/gui/action_toolbar.cpp | 18 ++++++++++++------ src/resource_manager.cpp | 19 ++++++++++++------- src/states/editor.cpp | 12 +++++++++++- 6 files changed, 49 insertions(+), 23 deletions(-) diff --git a/include/gui/action_toolbar.hpp b/include/gui/action_toolbar.hpp index 5999a94..f5b544b 100644 --- a/include/gui/action_toolbar.hpp +++ b/include/gui/action_toolbar.hpp @@ -5,7 +5,6 @@ #include #include "../objects/object.hpp" #include "../states/level.hpp" -#include "object_button.hpp" /** * Barre d'outils pour les actions en jeu @@ -27,6 +26,11 @@ public: std::function callback = std::function() ); + /** + * Ajoute un nouvel espaceur + */ + void addSpacer(float width, bool expand, bool fill); + /** * Récupère la fenêtre de la barre d'outils */ diff --git a/include/resource_manager.hpp b/include/resource_manager.hpp index 596b7df..6d06549 100644 --- a/include/resource_manager.hpp +++ b/include/resource_manager.hpp @@ -36,7 +36,7 @@ private: boost::filesystem::path current_music_path; bool is_playing; sf::Music current_music; - float music_volume; + bool is_muted; /** * Construit le gestionnaire de ressources. Comme on ne @@ -110,14 +110,14 @@ public: void stopMusic(); /** - * Récupère le volume de la musique de fond + * Récupère si le volume est muet ou non */ - float getMusicVolume() const; + bool isMuted() const; /** - * Modifie le volume de la musique de fond + * Modifie le drapeau pour le muet */ - void setMusicVolume(float set_music_volume); + void setMuted(bool set_muted); }; #endif diff --git a/res/gui.theme b/res/gui.theme index 9f22363..efed20e 100644 --- a/res/gui.theme +++ b/res/gui.theme @@ -14,9 +14,6 @@ Window { BackgroundColor: #FFFFFFff; BorderWidth: 0; - - ShadowDistance: 3; - ShadowAlpha: 0; } ScrolledWindow { @@ -49,6 +46,10 @@ ComboBox { HighlightedColor: #B4B4B4ff; } +Button.notext { + BackgroundColor: #00000000; +} + ObjectButton { BorderColor: #B4B4B4ff; BackgroundColor: #D2D2D2ff; diff --git a/src/gui/action_toolbar.cpp b/src/gui/action_toolbar.cpp index 85337c8..a0bbe05 100644 --- a/src/gui/action_toolbar.cpp +++ b/src/gui/action_toolbar.cpp @@ -5,11 +5,7 @@ ActionToolbar::ActionToolbar() { toolbar_box = sfg::Box::Create(sfg::Box::Orientation::HORIZONTAL, 5.f); // création de la fenêtre - toolbar_window = sfg::Window::Create( - sfg::Window::Style::BACKGROUND | - sfg::Window::Style::SHADOW - ); - + toolbar_window = sfg::Window::Create(sfg::Window::Style::BACKGROUND); toolbar_window->Add(toolbar_box); // pour les styles @@ -18,7 +14,9 @@ ActionToolbar::ActionToolbar() { void ActionToolbar::addButton(sf::Image image, std::function callback) { // création d'un bouton avec pour image l'image passée - ObjectButton::Ptr button = ObjectButton::Create(sfg::Image::Create(image)); + sfg::Button::Ptr button = sfg::Button::Create(""); + button->SetImage(sfg::Image::Create(image)); + button->SetClass("notext"); // liaison du bouton avec la callback, s'il y en a une if (callback) { @@ -29,6 +27,14 @@ void ActionToolbar::addButton(sf::Image image, std::function callback) { toolbar_box->PackEnd(button, false, false); } +void ActionToolbar::addSpacer(float width, bool expand, bool fill) { + sfg::Alignment::Ptr spacer = sfg::Alignment::Create(); + spacer->SetRequisition(sf::Vector2f(width, 1.f)); + + // ajout de l'espaceur à la barre + toolbar_box->PackEnd(spacer, expand, fill); +} + sfg::Window::Ptr ActionToolbar::getWindow() { return toolbar_window; } diff --git a/src/resource_manager.cpp b/src/resource_manager.cpp index def6855..ac66cdb 100644 --- a/src/resource_manager.cpp +++ b/src/resource_manager.cpp @@ -10,7 +10,7 @@ ResourceManager& ResourceManager::get() { return manager; } -ResourceManager::ResourceManager() : is_playing(false), music_volume(20) { +ResourceManager::ResourceManager() : is_playing(false), is_muted(false) { // mise en mémoire des chemins vers les dossiers de ressources fs::path res_path = fs::current_path() / "res"; @@ -21,7 +21,7 @@ ResourceManager::ResourceManager() : is_playing(false), music_volume(20) { // initialisation de la musique en bouclage et au volume par défaut current_music.setLoop(true); - current_music.setVolume(music_volume); + current_music.setVolume(100); } std::vector ResourceManager::getFiles(fs::path path) const { @@ -179,11 +179,16 @@ void ResourceManager::stopMusic() { current_music.stop(); } -float ResourceManager::getMusicVolume() const { - return music_volume; +bool ResourceManager::isMuted() const { + return is_muted; } -void ResourceManager::setMusicVolume(float set_music_volume) { - music_volume = set_music_volume; - current_music.setVolume(music_volume); +void ResourceManager::setMuted(bool set_muted) { + is_muted = set_muted; + + if (is_muted) { + current_music.setVolume(0); + } else { + current_music.setVolume(100); + } } diff --git a/src/states/editor.cpp b/src/states/editor.cpp index 24dbb5a..d5d0958 100644 --- a/src/states/editor.cpp +++ b/src/states/editor.cpp @@ -42,13 +42,23 @@ Editor::Editor(Manager& manager) : Level(manager), ); action_toolbar.addButton( - *ResourceManager::get().getImage("toolbar/icon_music.tga") + *ResourceManager::get().getImage("toolbar/icon_music.tga"), + []() { + // on inverse le drapeau de muet + ResourceManager::get().setMuted( + !ResourceManager::get().isMuted() + ); + } ); + action_toolbar.addSpacer(20, true, false); + action_toolbar.addButton( *ResourceManager::get().getImage("toolbar/icon_no_music.tga") ); + action_toolbar.addSpacer(20, true, false); + action_toolbar.addButton( *ResourceManager::get().getImage("toolbar/icon_save.tga"), std::bind(&Editor::save, this)