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 "../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<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
*/

View File

@ -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

View File

@ -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;

View File

@ -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<void()> 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<void()> 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;
}

View File

@ -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<fs::path> 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);
}
}

View File

@ -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)