Correction problème bouton d'objets
This commit is contained in:
parent
bc8baf0b82
commit
8684953938
|
@ -1,5 +1,5 @@
|
||||||
#ifndef __SKIZZLE_OBJECT_BUTTON_HPP__
|
#ifndef __SKIZZLE_ICON_RADIO_BUTTON_HPP__
|
||||||
#define __SKIZZLE_OBJECT_BUTTON_HPP__
|
#define __SKIZZLE_ICON_RADIO_BUTTON_HPP__
|
||||||
|
|
||||||
#include <SFGUI/Image.hpp>
|
#include <SFGUI/Image.hpp>
|
||||||
#include <SFGUI/RadioButton.hpp>
|
#include <SFGUI/RadioButton.hpp>
|
||||||
|
@ -16,10 +16,10 @@
|
||||||
* (note: cette classe suit les conventions de nommage de SFGUI, pas
|
* (note: cette classe suit les conventions de nommage de SFGUI, pas
|
||||||
* celles de Skizzle, pour plus de cohérence)
|
* celles de Skizzle, pour plus de cohérence)
|
||||||
*/
|
*/
|
||||||
class ObjectButton : public sfg::RadioButton {
|
class IconRadioButton : public sfg::RadioButton {
|
||||||
public:
|
public:
|
||||||
typedef std::shared_ptr<ObjectButton> Ptr;
|
typedef std::shared_ptr<IconRadioButton> Ptr;
|
||||||
typedef std::shared_ptr<const ObjectButton> PtrConst;
|
typedef std::shared_ptr<const IconRadioButton> PtrConst;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Crée un nouveau bouton d'objet. La convention pour les widgets
|
* Crée un nouveau bouton d'objet. La convention pour les widgets
|
||||||
|
@ -42,7 +42,7 @@ protected:
|
||||||
* On utilise le constructeur par défaut, mais on est obligés de le
|
* On utilise le constructeur par défaut, mais on est obligés de le
|
||||||
* déclarer explicitement pour qu'il soit protégé
|
* déclarer explicitement pour qu'il soit protégé
|
||||||
*/
|
*/
|
||||||
ObjectButton() = default;
|
IconRadioButton() = default;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Recalcule la géométrie du widget
|
* Recalcule la géométrie du widget
|
|
@ -7,7 +7,7 @@
|
||||||
#include <functional>
|
#include <functional>
|
||||||
#include "../objects/object.hpp"
|
#include "../objects/object.hpp"
|
||||||
#include "../utility.hpp"
|
#include "../utility.hpp"
|
||||||
#include "object_button.hpp"
|
#include "icon_radio_button.hpp"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Barre d'outils qui affiche une liste d'objets à choisir
|
* Barre d'outils qui affiche une liste d'objets à choisir
|
||||||
|
@ -21,7 +21,7 @@ private:
|
||||||
// types d'objets de la barre d'outils
|
// types d'objets de la barre d'outils
|
||||||
sfg::RadioButtonGroup::Ptr creators_group;
|
sfg::RadioButtonGroup::Ptr creators_group;
|
||||||
sfg::Table::Ptr creators_table;
|
sfg::Table::Ptr creators_table;
|
||||||
std::map<ObjectButton::Ptr, std::function<Object::Ptr()>> creators;
|
std::map<IconRadioButton::Ptr, std::function<Object::Ptr()>> creators;
|
||||||
|
|
||||||
int creators_table_pos_x, creators_table_pos_y;
|
int creators_table_pos_x, creators_table_pos_y;
|
||||||
|
|
||||||
|
|
|
@ -60,7 +60,8 @@ Button.icon {
|
||||||
BackgroundColor: #00000000;
|
BackgroundColor: #00000000;
|
||||||
}
|
}
|
||||||
|
|
||||||
Entry {
|
Entry, IconRadioButton {
|
||||||
|
BorderWidth: 0;
|
||||||
BackgroundColor: #D2D2D2ff;
|
BackgroundColor: #D2D2D2ff;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -69,12 +70,7 @@ ComboBox {
|
||||||
HighlightedColor: #B4B4B4ff;
|
HighlightedColor: #B4B4B4ff;
|
||||||
}
|
}
|
||||||
|
|
||||||
ObjectButton {
|
IconRadioButton:PRELIGHT {
|
||||||
BorderColor: #B4B4B4ff;
|
|
||||||
BackgroundColor: #D2D2D2ff;
|
|
||||||
}
|
|
||||||
|
|
||||||
ObjectButton:PRELIGHT {
|
|
||||||
BackgroundColor: #E6E6E6ff;
|
BackgroundColor: #E6E6E6ff;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -3,13 +3,13 @@
|
||||||
#include <SFGUI/Renderer.hpp>
|
#include <SFGUI/Renderer.hpp>
|
||||||
#include <SFGUI/RenderQueue.hpp>
|
#include <SFGUI/RenderQueue.hpp>
|
||||||
#include <cmath>
|
#include <cmath>
|
||||||
#include "gui/object_button.hpp"
|
#include "gui/icon_radio_button.hpp"
|
||||||
|
|
||||||
ObjectButton::Ptr ObjectButton::Create(
|
IconRadioButton::Ptr IconRadioButton::Create(
|
||||||
sfg::Image::Ptr image,
|
sfg::Image::Ptr image,
|
||||||
std::shared_ptr<sfg::RadioButtonGroup> group
|
std::shared_ptr<sfg::RadioButtonGroup> group
|
||||||
) {
|
) {
|
||||||
auto ptr = Ptr(new ObjectButton);
|
auto ptr = Ptr(new IconRadioButton);
|
||||||
ptr->SetImage(image);
|
ptr->SetImage(image);
|
||||||
ptr->SetLabel(L"");
|
ptr->SetLabel(L"");
|
||||||
|
|
||||||
|
@ -24,12 +24,12 @@ ObjectButton::Ptr ObjectButton::Create(
|
||||||
return ptr;
|
return ptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
const std::string& ObjectButton::GetName() const {
|
const std::string& IconRadioButton::GetName() const {
|
||||||
static const std::string name = "ObjectButton";
|
static const std::string name = "IconRadioButton";
|
||||||
return name;
|
return name;
|
||||||
}
|
}
|
||||||
|
|
||||||
sf::Vector2f ObjectButton::CalculateRequisition() {
|
sf::Vector2f IconRadioButton::CalculateRequisition() {
|
||||||
float padding = sfg::Context::Get().GetEngine().GetProperty<float>(
|
float padding = sfg::Context::Get().GetEngine().GetProperty<float>(
|
||||||
"Padding", shared_from_this()
|
"Padding", shared_from_this()
|
||||||
);
|
);
|
||||||
|
@ -44,9 +44,13 @@ sf::Vector2f ObjectButton::CalculateRequisition() {
|
||||||
return child_req;
|
return child_req;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::unique_ptr<sfg::RenderQueue> ObjectButton::InvalidateImpl() const {
|
std::unique_ptr<sfg::RenderQueue> IconRadioButton::InvalidateImpl() const {
|
||||||
auto queue = std::unique_ptr<sfg::RenderQueue>(new sfg::RenderQueue);
|
auto queue = std::unique_ptr<sfg::RenderQueue>(new sfg::RenderQueue);
|
||||||
|
|
||||||
|
auto border_width = sfg::Context::Get().GetEngine().GetProperty<float>(
|
||||||
|
"BorderWidth", shared_from_this()
|
||||||
|
);
|
||||||
|
|
||||||
auto border_color = sfg::Context::Get().GetEngine().GetProperty<sf::Color>(
|
auto border_color = sfg::Context::Get().GetEngine().GetProperty<sf::Color>(
|
||||||
"BorderColor", shared_from_this()
|
"BorderColor", shared_from_this()
|
||||||
);
|
);
|
||||||
|
@ -76,7 +80,7 @@ std::unique_ptr<sfg::RenderQueue> ObjectButton::InvalidateImpl() const {
|
||||||
}
|
}
|
||||||
|
|
||||||
queue->Add(sfg::Renderer::Get().CreatePane(
|
queue->Add(sfg::Renderer::Get().CreatePane(
|
||||||
position, size, 1.f,
|
position, size, border_width,
|
||||||
background_color, border_color, 0
|
background_color, border_color, 0
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
@ -98,6 +102,6 @@ std::unique_ptr<sfg::RenderQueue> ObjectButton::InvalidateImpl() const {
|
||||||
return queue;
|
return queue;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ObjectButton::HandleStateChange(sfg::Widget::State old_state) {
|
void IconRadioButton::HandleStateChange(sfg::Widget::State old_state) {
|
||||||
Invalidate();
|
Invalidate();
|
||||||
}
|
}
|
|
@ -68,9 +68,10 @@ ObjectToolbar::ObjectToolbar() {
|
||||||
|
|
||||||
void ObjectToolbar::addCreator(std::string path, std::function<Object::Ptr()> creator) {
|
void ObjectToolbar::addCreator(std::string path, std::function<Object::Ptr()> creator) {
|
||||||
// on crée un bouton d'objet correspondant au créateur donné
|
// on crée un bouton d'objet correspondant au créateur donné
|
||||||
ObjectButton::Ptr button = ObjectButton::Create(sfg::Image::Create(
|
IconRadioButton::Ptr button = IconRadioButton::Create(
|
||||||
*ResourceManager::get().getImage(path + ".tga")
|
sfg::Image::Create(*ResourceManager::get().getImage(path + ".tga")),
|
||||||
));
|
creators_group
|
||||||
|
);
|
||||||
|
|
||||||
creators[button] = creator;
|
creators[button] = creator;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue