/* * Copyright (c) 2018-2020, Andreas Kling * Copyright (c) 2021, Felix Rauch * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include namespace PixelPaint { class ImageEditor; 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 const&); Vector colors(); static Result, String> load_palette_fd_and_close(int); static Result, String> load_palette_path(String const&); static Result save_palette_fd_and_close(Vector, int); static Vector fallback_colors(); void set_image_editor(ImageEditor&); private: static Result, String> load_palette_file(Core::File&); explicit PaletteWidget(); ImageEditor* m_editor { nullptr }; RefPtr m_primary_color_widget; RefPtr m_secondary_color_widget; RefPtr m_color_container; }; }