/* * Copyright (c) 2024, Sam Atkins * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include "EditAnnotationWidget.h" #include "HexDocument.h" #include "Selection.h" #include #include #include #include #include class EditAnnotationDialog : public GUI::Dialog { C_OBJECT_ABSTRACT(EditAnnotationDialog) public: static ExecResult show_create_dialog(GUI::Window* parent_window, HexDocument&, Selection); static ExecResult show_edit_dialog(GUI::Window* parent_window, HexDocument&, Annotation&); static ErrorOr> try_create(GUI::Window* parent_window, HexDocument&, Variant); private: EditAnnotationDialog(GUI::Window* parent_window, NonnullRefPtr, HexDocument&, Variant); virtual ~EditAnnotationDialog() override = default; WeakPtr m_document; Optional m_annotation; RefPtr m_start_offset; RefPtr m_end_offset; RefPtr m_background_color; RefPtr m_comments; RefPtr m_save_button; RefPtr m_cancel_button; };