summaryrefslogtreecommitdiff
path: root/Libraries
diff options
context:
space:
mode:
Diffstat (limited to 'Libraries')
-rw-r--r--Libraries/LibGUI/ColorPicker.cpp64
-rw-r--r--Libraries/LibGUI/ColorPicker.h51
2 files changed, 57 insertions, 58 deletions
diff --git a/Libraries/LibGUI/ColorPicker.cpp b/Libraries/LibGUI/ColorPicker.cpp
index b18ee73cac..1d7fb7a93f 100644
--- a/Libraries/LibGUI/ColorPicker.cpp
+++ b/Libraries/LibGUI/ColorPicker.cpp
@@ -37,6 +37,51 @@
namespace GUI {
+class ColorButton : public AbstractButton {
+ C_OBJECT(ColorButton)
+
+public:
+ virtual ~ColorButton() override;
+
+ void set_selected(bool selected);
+ Color color() const { return m_color; }
+
+ Function<void(const Color)> on_click;
+
+protected:
+ virtual void click() override;
+ virtual void paint_event(PaintEvent&) override;
+
+private:
+ explicit ColorButton(Color color = {});
+
+ Color m_color;
+ bool m_selected { false };
+};
+
+class CustomColorWidget final : public GUI::Widget {
+ C_OBJECT(CustomColorWidget);
+
+public:
+ Function<void(Color)> on_pick;
+ void clear_last_position();
+
+private:
+ CustomColorWidget();
+
+ RefPtr<Gfx::Bitmap> m_custom_colors;
+ bool m_status { false };
+ Gfx::Point m_last_position;
+
+ void fire_event(GUI::MouseEvent& event);
+
+ virtual void mousedown_event(GUI::MouseEvent&) override;
+ virtual void mouseup_event(GUI::MouseEvent&) override;
+ virtual void mousemove_event(GUI::MouseEvent&) override;
+ virtual void paint_event(GUI::PaintEvent&) override;
+ virtual void resize_event(ResizeEvent&) override;
+};
+
ColorPicker::ColorPicker(Color color, Window* parent_window, String title)
: Dialog(parent_window)
, m_color(color)
@@ -135,7 +180,7 @@ void ColorPicker::build_ui_custom(Widget& root_container)
horizontal_container.set_layout<HorizontalBoxLayout>();
// Left Side
- m_custom_color = horizontal_container.add<GUI::CustomColor>();
+ m_custom_color = horizontal_container.add<GUI::CustomColorWidget>();
m_custom_color->set_size_policy(SizePolicy::Fill, SizePolicy::Fill);
m_custom_color->on_pick = [this](Color color) {
if (m_color == color)
@@ -283,7 +328,6 @@ void ColorPicker::create_color_button(Widget& container, unsigned rgb)
m_color_widgets.append(&widget);
}
-
ColorButton::ColorButton(Color color)
{
m_color = color;
@@ -323,7 +367,7 @@ void ColorButton::click()
m_selected = true;
}
-CustomColor::CustomColor()
+CustomColorWidget::CustomColorWidget()
{
m_custom_colors = Gfx::Bitmap::create(Gfx::BitmapFormat::RGB32, { 360, 512 });
auto painter = Gfx::Painter(*m_custom_colors);
@@ -350,13 +394,13 @@ CustomColor::CustomColor()
}
}
-void CustomColor::clear_last_position()
+void CustomColorWidget::clear_last_position()
{
m_last_position = { -1, -1 };
update();
}
-void CustomColor::fire_event(GUI::MouseEvent& event)
+void CustomColorWidget::fire_event(GUI::MouseEvent& event)
{
if (!m_status)
return;
@@ -376,7 +420,7 @@ void CustomColor::fire_event(GUI::MouseEvent& event)
update();
}
-void CustomColor::mousedown_event(GUI::MouseEvent& event)
+void CustomColorWidget::mousedown_event(GUI::MouseEvent& event)
{
if (event.button() == GUI::MouseButton::Left) {
m_status = true;
@@ -385,18 +429,18 @@ void CustomColor::mousedown_event(GUI::MouseEvent& event)
}
}
-void CustomColor::mouseup_event(GUI::MouseEvent& event)
+void CustomColorWidget::mouseup_event(GUI::MouseEvent& event)
{
fire_event(event);
m_status = false;
}
-void CustomColor::mousemove_event(GUI::MouseEvent& event)
+void CustomColorWidget::mousemove_event(GUI::MouseEvent& event)
{
fire_event(event);
}
-void CustomColor::paint_event(GUI::PaintEvent& event)
+void CustomColorWidget::paint_event(GUI::PaintEvent& event)
{
GUI::Painter painter(*this);
Gfx::Rect rect = event.rect();
@@ -409,7 +453,7 @@ void CustomColor::paint_event(GUI::PaintEvent& event)
painter.draw_line({ 0, m_last_position.y() }, { rect.width(), m_last_position.y() }, Color::Black);
}
-void CustomColor::resize_event(ResizeEvent&)
+void CustomColorWidget::resize_event(ResizeEvent&)
{
clear_last_position();
}
diff --git a/Libraries/LibGUI/ColorPicker.h b/Libraries/LibGUI/ColorPicker.h
index 3f8d20a20d..d9cf6d10b1 100644
--- a/Libraries/LibGUI/ColorPicker.h
+++ b/Libraries/LibGUI/ColorPicker.h
@@ -31,52 +31,8 @@
namespace GUI {
-
-class ColorButton : public AbstractButton {
- C_OBJECT(ColorButton)
-
-public:
- explicit ColorButton(Color color = {});
- virtual ~ColorButton() override;
-
- void set_selected(bool selected);
- Color color() const { return m_color; }
-
- Function<void(const Color)> on_click;
-
-protected:
- virtual void click() override;
- virtual void paint_event(PaintEvent&) override;
-
-private:
- Color m_color;
- bool m_selected;
-};
-
-
-class CustomColor final : public GUI::Widget {
- C_OBJECT(CustomColor);
-
-public:
- CustomColor();
-
- Function<void(Color)> on_pick;
- void clear_last_position();
-
-private:
- RefPtr<Gfx::Bitmap> m_custom_colors;
- bool m_status = false;
- Gfx::Point m_last_position;
-
- void fire_event(GUI::MouseEvent& event);
-
- virtual void mousedown_event(GUI::MouseEvent&) override;
- virtual void mouseup_event(GUI::MouseEvent&) override;
- virtual void mousemove_event(GUI::MouseEvent&) override;
- virtual void paint_event(GUI::PaintEvent&) override;
- virtual void resize_event(ResizeEvent&) override;
-};
-
+class ColorButton;
+class CustomColorWidget;
class ColorPicker final : public Dialog {
C_OBJECT(ColorPicker)
@@ -98,8 +54,7 @@ private:
Color m_color;
Vector<ColorButton*> m_color_widgets;
- RefPtr<Widget> m_manin_container;
- RefPtr<CustomColor> m_custom_color;
+ RefPtr<CustomColorWidget> m_custom_color;
RefPtr<Frame> m_preview_widget;
RefPtr<TextBox> m_html_text;
RefPtr<SpinBox> m_red_spinbox;