/* * Copyright (c) 2022, kleines Filmröllchen * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include "Image.h" #include #include namespace PixelPaint { class ScopeWidget : public GUI::Frame , public ImageClient { C_OBJECT_ABSTRACT(ScopeWidget); public: virtual ~ScopeWidget() override; void set_image(Image*); virtual void image_changed() = 0; void set_color_at_mouseposition(Color); void set_scope_visibility(bool); bool read_visibility_from_configuration(); protected: virtual void paint_event(GUI::PaintEvent&) override = 0; virtual AK::StringView widget_config_name() const = 0; bool should_process_data(); Color m_color_at_mouseposition = Color::Transparent; RefPtr m_image; }; }