mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-23 16:10:20 +00:00
8d8ec6365b
Previously, if you wanted to use a custom color, the only way to do so was to first Ctrl+click on one of the pallette colors, which would just change that palette item. Then, you would need to manually click on that color. Now, you can just click on the preview of the primary/secondary color to open up the picker and only temporarily use the new color without affecting the palette at all.
51 lines
1.3 KiB
C++
51 lines
1.3 KiB
C++
/*
|
|
* Copyright (c) 2018-2020, Andreas Kling <kling@serenityos.org>
|
|
* Copyright (c) 2021, Felix Rauch <noreply@felixrau.ch>
|
|
* Copyright (c) 2021, Mustafa Quraish <mustafa@cs.toronto.edu>
|
|
*
|
|
* SPDX-License-Identifier: BSD-2-Clause
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <AK/Result.h>
|
|
#include <AK/Vector.h>
|
|
#include <LibGUI/Frame.h>
|
|
|
|
namespace PixelPaint {
|
|
|
|
class ImageEditor;
|
|
class SelectedColorWidget;
|
|
|
|
class PaletteWidget final : public GUI::Frame {
|
|
C_OBJECT(PaletteWidget);
|
|
|
|
public:
|
|
virtual ~PaletteWidget() override;
|
|
|
|
void set_primary_color(Color);
|
|
void set_secondary_color(Color);
|
|
|
|
void display_color_list(Vector<Color> const&);
|
|
|
|
Vector<Color> colors();
|
|
|
|
static Result<Vector<Color>, String> load_palette_fd_and_close(int);
|
|
static Result<Vector<Color>, String> load_palette_path(String const&);
|
|
static Result<void, String> save_palette_fd_and_close(Vector<Color>, int);
|
|
static Vector<Color> fallback_colors();
|
|
|
|
void set_image_editor(ImageEditor&);
|
|
|
|
private:
|
|
static Result<Vector<Color>, String> load_palette_file(Core::File&);
|
|
|
|
explicit PaletteWidget();
|
|
|
|
ImageEditor* m_editor { nullptr };
|
|
RefPtr<SelectedColorWidget> m_primary_color_widget;
|
|
RefPtr<SelectedColorWidget> m_secondary_color_widget;
|
|
RefPtr<GUI::Widget> m_color_container;
|
|
};
|
|
|
|
}
|