From a14f08fcc9496579507870683695810e2d4c6530 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Tue, 21 Jan 2020 20:25:33 +0100 Subject: [PATCH] LibGUI: Import GColorPicker from the PaintBrush application --- Applications/PaintBrush/Makefile | 1 - Applications/PaintBrush/PaletteWidget.cpp | 4 +- .../LibGUI/GColorPicker.cpp | 44 ++++++++++--------- .../LibGUI/GColorPicker.h | 8 ++-- Libraries/LibGUI/Makefile | 1 + 5 files changed, 30 insertions(+), 28 deletions(-) rename Applications/PaintBrush/ColorDialog.cpp => Libraries/LibGUI/GColorPicker.cpp (80%) rename Applications/PaintBrush/ColorDialog.h => Libraries/LibGUI/GColorPicker.h (90%) diff --git a/Applications/PaintBrush/Makefile b/Applications/PaintBrush/Makefile index 29534b135f..9eac769267 100644 --- a/Applications/PaintBrush/Makefile +++ b/Applications/PaintBrush/Makefile @@ -9,7 +9,6 @@ OBJS = \ EllipseTool.o \ EraseTool.o \ BucketTool.o \ - ColorDialog.o \ SprayTool.o \ PickerTool.o \ main.o diff --git a/Applications/PaintBrush/PaletteWidget.cpp b/Applications/PaintBrush/PaletteWidget.cpp index 759ece4cd4..e49fc2e0a1 100644 --- a/Applications/PaintBrush/PaletteWidget.cpp +++ b/Applications/PaintBrush/PaletteWidget.cpp @@ -25,9 +25,9 @@ */ #include "PaletteWidget.h" -#include "ColorDialog.h" #include "PaintableWidget.h" #include +#include class ColorWidget : public GFrame { C_OBJECT(ColorWidget) @@ -49,7 +49,7 @@ public: virtual void mousedown_event(GMouseEvent& event) override { if (event.modifiers() & KeyModifier::Mod_Ctrl && event.button() == GMouseButton::Left) { - auto dialog = ColorDialog::construct(m_color, window()); + auto dialog = GColorPicker::construct(m_color, window()); if (dialog->exec() == GDialog::ExecOK) { m_color = dialog->color(); auto pal = palette(); diff --git a/Applications/PaintBrush/ColorDialog.cpp b/Libraries/LibGUI/GColorPicker.cpp similarity index 80% rename from Applications/PaintBrush/ColorDialog.cpp rename to Libraries/LibGUI/GColorPicker.cpp index 8c1ed59bdb..bbb80728be 100644 --- a/Applications/PaintBrush/ColorDialog.cpp +++ b/Libraries/LibGUI/GColorPicker.cpp @@ -24,14 +24,14 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#include "ColorDialog.h" #include #include +#include #include #include #include -ColorDialog::ColorDialog(Color color, CObject* parent) +GColorPicker::GColorPicker(Color color, CObject* parent) : GDialog(parent) , m_color(color) { @@ -39,11 +39,11 @@ ColorDialog::ColorDialog(Color color, CObject* parent) build(); } -ColorDialog::~ColorDialog() +GColorPicker::~GColorPicker() { } -void ColorDialog::build() +void GColorPicker::build() { auto horizontal_container = GWidget::construct(); horizontal_container->set_fill_with_background_color(true); @@ -58,7 +58,9 @@ void ColorDialog::build() right_vertical_container->set_layout(make(Orientation::Vertical)); enum RGBComponent { - Red, Green, Blue + Red, + Green, + Blue }; m_preview_widget = GFrame::construct(right_vertical_container); @@ -81,27 +83,27 @@ void ColorDialog::build() }; auto make_spinbox = [&](RGBComponent component, int initial_value) { - auto spinbox = GSpinBox::construct(left_vertical_container); - spinbox->set_size_policy(SizePolicy::Fill, SizePolicy::Fixed); - spinbox->set_preferred_size(0, 20); - spinbox->set_min(0); - spinbox->set_max(255); - spinbox->set_value(initial_value); + auto spinbox = GSpinBox::construct(left_vertical_container); + spinbox->set_size_policy(SizePolicy::Fill, SizePolicy::Fixed); + spinbox->set_preferred_size(0, 20); + spinbox->set_min(0); + spinbox->set_max(255); + spinbox->set_value(initial_value); - spinbox->on_change = [this, component](auto value) { - if (component == Red) + spinbox->on_change = [this, component](auto value) { + if (component == Red) m_color.set_red(value); - if (component == Green) + if (component == Green) m_color.set_green(value); - if (component == Blue) + if (component == Blue) m_color.set_blue(value); - auto pal = m_preview_widget->palette(); - pal.set_color(ColorRole::Background, m_color); - m_preview_widget->set_palette(pal); - m_preview_widget->update(); - }; - return spinbox; + auto pal = m_preview_widget->palette(); + pal.set_color(ColorRole::Background, m_color); + m_preview_widget->set_palette(pal); + m_preview_widget->update(); + }; + return spinbox; }; make_spinbox(Red, m_color.red()); diff --git a/Applications/PaintBrush/ColorDialog.h b/Libraries/LibGUI/GColorPicker.h similarity index 90% rename from Applications/PaintBrush/ColorDialog.h rename to Libraries/LibGUI/GColorPicker.h index 61de990df3..c9446753d0 100644 --- a/Applications/PaintBrush/ColorDialog.h +++ b/Libraries/LibGUI/GColorPicker.h @@ -30,15 +30,15 @@ class GFrame; -class ColorDialog final : public GDialog { - C_OBJECT(ColorDialog) +class GColorPicker final : public GDialog { + C_OBJECT(GColorPicker) public: - virtual ~ColorDialog() override; + virtual ~GColorPicker() override; Color color() const { return m_color; } private: - explicit ColorDialog(Color, CObject* parent = nullptr); + explicit GColorPicker(Color, CObject* parent = nullptr); void build(); diff --git a/Libraries/LibGUI/Makefile b/Libraries/LibGUI/Makefile index b9eb21de22..e8c408d4ce 100644 --- a/Libraries/LibGUI/Makefile +++ b/Libraries/LibGUI/Makefile @@ -10,6 +10,7 @@ OBJS = \ GWidget.o \ GLayout.o \ GBoxLayout.o \ + GColorPicker.o \ GMenuBar.o \ GMenu.o \ GMenuItem.o \