/* * Copyright (c) 2018-2020, Andreas Kling * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include "UndoGlyph.h" #include #include #include #include class GlyphEditorWidget; class GlyphMapWidget; class FontEditorWidget final : public GUI::Widget { C_OBJECT(FontEditorWidget) public: virtual ~FontEditorWidget() override; bool save_as(const String&); bool request_close(); void update_title(); const String& path() { return m_path; } const Gfx::BitmapFont& edited_font() { return *m_edited_font; } void initialize(const String& path, RefPtr&&); void initialize_menubar(GUI::Window&); bool is_showing_font_metadata() { return m_font_metadata; } void set_show_font_metadata(bool b); Function on_initialize; private: FontEditorWidget(const String& path, RefPtr&&); void undo(); void redo(); void did_modify_font(); RefPtr m_edited_font; RefPtr m_glyph_map_widget; RefPtr m_glyph_editor_widget; RefPtr m_new_action; RefPtr m_open_action; RefPtr m_save_action; RefPtr m_save_as_action; RefPtr m_cut_action; RefPtr m_copy_action; RefPtr m_paste_action; RefPtr m_delete_action; RefPtr m_undo_action; RefPtr m_redo_action; RefPtr m_undo_glyph; OwnPtr m_undo_stack; RefPtr m_go_to_glyph_action; RefPtr m_previous_glyph_action; RefPtr m_next_glyph_action; RefPtr m_open_preview_action; RefPtr m_show_metadata_action; GUI::ActionGroup m_glyph_editor_scale_actions; RefPtr m_scale_five_action; RefPtr m_scale_ten_action; RefPtr m_scale_fifteen_action; RefPtr m_font_preview_window; RefPtr m_left_column_container; RefPtr m_glyph_editor_container; RefPtr m_weight_combobox; RefPtr m_spacing_spinbox; RefPtr m_baseline_spinbox; RefPtr m_mean_line_spinbox; RefPtr m_presentation_spinbox; RefPtr m_glyph_editor_width_spinbox; RefPtr m_glyph_editor_present_checkbox; RefPtr m_name_textbox; RefPtr m_family_textbox; RefPtr m_fixed_width_checkbox; RefPtr m_font_metadata_groupbox; String m_path; Vector m_font_weight_list; bool m_font_metadata { true }; };