1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-28 18:35:09 +00:00

LibGUI: Allow disabling the alpha channel in ColorInput widgets

This commit is contained in:
Andreas Kling 2020-04-29 15:32:18 +02:00
parent 17e76b4760
commit c7107385ee
2 changed files with 19 additions and 1 deletions

View file

@ -70,6 +70,19 @@ void ColorInput::set_color(Color color)
set_text(color.to_string());
};
void ColorInput::set_color_has_alpha_channel(bool has_alpha)
{
if (m_color_has_alpha_channel == has_alpha)
return;
m_color_has_alpha_channel = has_alpha;
m_color.set_alpha(0xff);
if (!has_alpha)
set_text(m_color.to_string_without_alpha());
else
set_text(m_color.to_string());
}
void ColorInput::mousedown_event(MouseEvent& event)
{
if (event.button() == MouseButton::Left) {

View file

@ -35,9 +35,11 @@ class ColorInput final : public TextEditor {
C_OBJECT(ColorInput);
public:
ColorInput();
virtual ~ColorInput() override;
bool has_alpha_channel() const { return m_color_has_alpha_channel; }
void set_color_has_alpha_channel(bool);
void set_color(Color);
Color color() { return m_color; }
@ -52,11 +54,14 @@ protected:
virtual void paint_event(PaintEvent&) override;
private:
ColorInput();
Gfx::Rect color_rect() const;
void set_color_without_changing_text(Color);
Color m_color;
String m_color_picker_title { "Select color" };
bool m_color_has_alpha_channel { true };
};
}