Boutons normaux et implémentation du bouton éditeur musique

This commit is contained in:
Mattéo Delabre 2016-04-27 19:44:40 +02:00
parent 3c3bbe5e96
commit 8c91ba7a54
6 changed files with 49 additions and 23 deletions

View File

@ -5,7 +5,6 @@
#include <SFML/Graphics.hpp> #include <SFML/Graphics.hpp>
#include "../objects/object.hpp" #include "../objects/object.hpp"
#include "../states/level.hpp" #include "../states/level.hpp"
#include "object_button.hpp"
/** /**
* Barre d'outils pour les actions en jeu * Barre d'outils pour les actions en jeu
@ -27,6 +26,11 @@ public:
std::function<void()> callback = std::function<void()>() std::function<void()> callback = std::function<void()>()
); );
/**
* Ajoute un nouvel espaceur
*/
void addSpacer(float width, bool expand, bool fill);
/** /**
* Récupère la fenêtre de la barre d'outils * Récupère la fenêtre de la barre d'outils
*/ */

View File

@ -36,7 +36,7 @@ private:
boost::filesystem::path current_music_path; boost::filesystem::path current_music_path;
bool is_playing; bool is_playing;
sf::Music current_music; sf::Music current_music;
float music_volume; bool is_muted;
/** /**
* Construit le gestionnaire de ressources. Comme on ne * Construit le gestionnaire de ressources. Comme on ne
@ -110,14 +110,14 @@ public:
void stopMusic(); 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 #endif

View File

@ -14,9 +14,6 @@
Window { Window {
BackgroundColor: #FFFFFFff; BackgroundColor: #FFFFFFff;
BorderWidth: 0; BorderWidth: 0;
ShadowDistance: 3;
ShadowAlpha: 0;
} }
ScrolledWindow { ScrolledWindow {
@ -49,6 +46,10 @@ ComboBox {
HighlightedColor: #B4B4B4ff; HighlightedColor: #B4B4B4ff;
} }
Button.notext {
BackgroundColor: #00000000;
}
ObjectButton { ObjectButton {
BorderColor: #B4B4B4ff; BorderColor: #B4B4B4ff;
BackgroundColor: #D2D2D2ff; BackgroundColor: #D2D2D2ff;

View File

@ -5,11 +5,7 @@ ActionToolbar::ActionToolbar() {
toolbar_box = sfg::Box::Create(sfg::Box::Orientation::HORIZONTAL, 5.f); toolbar_box = sfg::Box::Create(sfg::Box::Orientation::HORIZONTAL, 5.f);
// création de la fenêtre // création de la fenêtre
toolbar_window = sfg::Window::Create( toolbar_window = sfg::Window::Create(sfg::Window::Style::BACKGROUND);
sfg::Window::Style::BACKGROUND |
sfg::Window::Style::SHADOW
);
toolbar_window->Add(toolbar_box); toolbar_window->Add(toolbar_box);
// pour les styles // pour les styles
@ -18,7 +14,9 @@ ActionToolbar::ActionToolbar() {
void ActionToolbar::addButton(sf::Image image, std::function<void()> callback) { void ActionToolbar::addButton(sf::Image image, std::function<void()> callback) {
// création d'un bouton avec pour image l'image passée // 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 // liaison du bouton avec la callback, s'il y en a une
if (callback) { if (callback) {
@ -29,6 +27,14 @@ void ActionToolbar::addButton(sf::Image image, std::function<void()> callback) {
toolbar_box->PackEnd(button, false, false); 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() { sfg::Window::Ptr ActionToolbar::getWindow() {
return toolbar_window; return toolbar_window;
} }

View File

@ -10,7 +10,7 @@ ResourceManager& ResourceManager::get() {
return manager; 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 // mise en mémoire des chemins vers les dossiers de ressources
fs::path res_path = fs::current_path() / "res"; 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 // initialisation de la musique en bouclage et au volume par défaut
current_music.setLoop(true); current_music.setLoop(true);
current_music.setVolume(music_volume); current_music.setVolume(100);
} }
std::vector<fs::path> ResourceManager::getFiles(fs::path path) const { std::vector<fs::path> ResourceManager::getFiles(fs::path path) const {
@ -179,11 +179,16 @@ void ResourceManager::stopMusic() {
current_music.stop(); current_music.stop();
} }
float ResourceManager::getMusicVolume() const { bool ResourceManager::isMuted() const {
return music_volume; return is_muted;
} }
void ResourceManager::setMusicVolume(float set_music_volume) { void ResourceManager::setMuted(bool set_muted) {
music_volume = set_music_volume; is_muted = set_muted;
current_music.setVolume(music_volume);
if (is_muted) {
current_music.setVolume(0);
} else {
current_music.setVolume(100);
}
} }

View File

@ -42,13 +42,23 @@ Editor::Editor(Manager& manager) : Level(manager),
); );
action_toolbar.addButton( 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( action_toolbar.addButton(
*ResourceManager::get().getImage("toolbar/icon_no_music.tga") *ResourceManager::get().getImage("toolbar/icon_no_music.tga")
); );
action_toolbar.addSpacer(20, true, false);
action_toolbar.addButton( action_toolbar.addButton(
*ResourceManager::get().getImage("toolbar/icon_save.tga"), *ResourceManager::get().getImage("toolbar/icon_save.tga"),
std::bind(&Editor::save, this) std::bind(&Editor::save, this)