ladybird/Userland/Applications/ThemeEditor/PreviewWidget.h
thankyouverycool d444724d24 ThemeEditor: Update GML and polish interface
Registers the PreviewWidget for addition directly into GML. Fixes
its previous double Frame borders. Also standardizes the Apply and
Reset buttons as DialogButtons and spaces them consistently with
other apps. Gives the TabWidget some tasteful container margins.
2022-11-19 11:04:11 +01:00

55 lines
1.6 KiB
C++

/*
* Copyright (c) 2020, Andreas Kling <kling@serenityos.org>
* Copyright (c) 2021-2022, Sam Atkins <atkinssj@serenityos.org>
* Copyright (c) 2021, Antonio Di Stefano <tonio9681@gmail.com>
* Copyright (c) 2022, the SerenityOS developers.
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#pragma once
#include <LibGUI/AbstractThemePreview.h>
#include <LibGUI/Application.h>
#include <LibGUI/ColorFilterer.h>
#include <LibGUI/Frame.h>
#include <LibGfx/Bitmap.h>
#include <LibGfx/Filters/ColorBlindnessFilter.h>
#include <LibGfx/Palette.h>
namespace ThemeEditor {
class MiniWidgetGallery;
class PreviewWidget final
: public GUI::AbstractThemePreview
, public GUI::ColorFilterer {
C_OBJECT(PreviewWidget);
public:
virtual ~PreviewWidget() override = default;
virtual void set_color_filter(OwnPtr<Gfx::ColorBlindnessFilter>) override;
private:
explicit PreviewWidget(Gfx::Palette const& = GUI::Application::the()->palette());
virtual void paint_preview(GUI::PaintEvent&) override;
virtual void second_paint_event(GUI::PaintEvent&) override;
virtual void resize_event(GUI::ResizeEvent&) override;
virtual void drag_enter_event(GUI::DragEvent&) override;
virtual void drop_event(GUI::DropEvent&) override;
virtual void palette_changed() override;
void paint_hightlight_window();
void update_preview_window_locations();
Gfx::IntRect m_active_window_rect;
Gfx::IntRect m_inactive_window_rect;
Gfx::IntRect m_highlight_window_rect;
OwnPtr<Gfx::ColorBlindnessFilter> m_color_filter = nullptr;
RefPtr<MiniWidgetGallery> m_gallery;
};
}