Files
ReJUI/src/JUI/Widgets/ImageButton.cpp
2025-02-17 22:35:08 -05:00

60 lines
1.7 KiB
C++

#include <JUI/Widgets/ImageButton.hpp>
void JUI::ImageButton::Update(float delta) {
Button::Update(delta);
UpdateImageVisualState();
}
void JUI::ImageButton::Draw() {
Button::Draw();
ImageBase::Draw(GetAbsolutePosition()+GetAbsolutePaddingTopLeft(), GetAbsoluteSize()-GetAbsolutePaddingBottomRight());
}
JUI::ImageButton::ImageButton() : ImageBase(), Button() {
Name("ImageButton");
}
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);
}