Boutons normaux et implémentation du bouton éditeur musique
This commit is contained in:
parent
3c3bbe5e96
commit
8c91ba7a54
|
@ -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
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
@ -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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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)
|
||||||
|
|
Loading…
Reference in New Issue