Added ImageButton::HoveredImageColor and other state variants
This commit is contained in:
@@ -8,12 +8,30 @@ namespace JUI {
|
||||
}
|
||||
|
||||
class JUI::ImageButton : public ImageBase, public Button {
|
||||
public:
|
||||
void Update(float delta) override;
|
||||
void Draw() override;
|
||||
public:
|
||||
ImageButton();
|
||||
explicit ImageButton(Widget* parent);
|
||||
public:
|
||||
~ImageButton() override = default;
|
||||
void Update(float delta) override;
|
||||
void Draw() override;
|
||||
|
||||
[[nodiscard]] Color4 HoveredImageColor() const;
|
||||
[[nodiscard]] Color4 BaseImageColor() const;
|
||||
[[nodiscard]] Color4 PressedImageColor() const;
|
||||
[[nodiscard]] Color4 DisabledImageColor() const;
|
||||
|
||||
void HoveredImageColor(const Color4& value);
|
||||
void BaseImageColor(const Color4& value);
|
||||
void PressedImageColor(const Color4& value);
|
||||
void DisabledImageColor(const Color4& value);
|
||||
|
||||
void ImageColors(const Color4& hover, const Color4& base, const Color4& press, const Color4& disabled);
|
||||
|
||||
protected:
|
||||
void UpdateImageVisualState();
|
||||
protected:
|
||||
Color4 hover_img_color = Colors::White;
|
||||
Color4 base_img_color = Colors::White;
|
||||
Color4 pressed_img_color = Colors::White;
|
||||
Color4 disabled_img_color = Colors::White;
|
||||
};
|
@@ -2,6 +2,7 @@
|
||||
|
||||
void JUI::ImageButton::Update(float delta) {
|
||||
Button::Update(delta);
|
||||
UpdateImageVisualState();
|
||||
}
|
||||
|
||||
void JUI::ImageButton::Draw() {
|
||||
@@ -12,3 +13,45 @@ void JUI::ImageButton::Draw() {
|
||||
JUI::ImageButton::ImageButton() : ImageBase(), Button() {}
|
||||
|
||||
JUI::ImageButton::ImageButton(JUI::Widget *parent) : ImageButton() { Parent(parent); }
|
||||
|
||||
void JUI::ImageButton::HoveredImageColor(const Color4 &value) {
|
||||
hover_img_color = value;
|
||||
}
|
||||
|
||||
void JUI::ImageButton::BaseImageColor(const Color4 &value) {
|
||||
base_img_color = value;
|
||||
}
|
||||
|
||||
void JUI::ImageButton::PressedImageColor(const Color4 &value) {
|
||||
pressed_img_color = value;
|
||||
}
|
||||
|
||||
void JUI::ImageButton::DisabledImageColor(const Color4 &value) {
|
||||
disabled_img_color = value;
|
||||
}
|
||||
|
||||
void JUI::ImageButton::UpdateImageVisualState() {
|
||||
if (Disabled())
|
||||
ImageBase::Color(DisabledImageColor());
|
||||
else if (IsClicked())
|
||||
ImageBase::Color(PressedImageColor());
|
||||
else if (IsHovered())
|
||||
ImageBase::Color(HoveredImageColor());
|
||||
else
|
||||
ImageBase::Color(BaseImageColor());
|
||||
}
|
||||
|
||||
Color4 JUI::ImageButton::HoveredImageColor() const {return hover_img_color;}
|
||||
|
||||
Color4 JUI::ImageButton::BaseImageColor() const { return base_img_color; }
|
||||
|
||||
Color4 JUI::ImageButton::PressedImageColor() const { return pressed_img_color; }
|
||||
|
||||
Color4 JUI::ImageButton::DisabledImageColor() const { return disabled_img_color; }
|
||||
|
||||
void JUI::ImageButton::ImageColors(const Color4 &hover, const Color4 &base, const Color4 &press, const Color4 &disabled) {
|
||||
HoveredImageColor(hover);
|
||||
BaseImageColor(base);
|
||||
PressedImageColor(press);
|
||||
DisabledImageColor(disabled);
|
||||
}
|
||||
|
Reference in New Issue
Block a user