1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 19:58:11 +00:00
serenity/Userland/Applications/FontEditor/NewFontDialog.h
thankyouverycool a486415f03 FontEditor: Update editor to handle new font format
The editor now unmasks fonts on load, mapping their glyphs to the
complete unicode character set, and masks them upon saving to
reduce disk space. This is a naive approach in terms of memory
usage and can be improved but whose immediate goal is to allow
editing any glyph without concern for range allocation.
2021-09-19 00:58:59 +02:00

63 lines
1.6 KiB
C++

/*
* Copyright (c) 2021, the SerenityOS developers.
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#pragma once
#include <LibGUI/Window.h>
#include <LibGUI/Wizards/WizardDialog.h>
#include <LibGUI/Wizards/WizardPage.h>
#include <LibGfx/BitmapFont.h>
class NewFontDialog final : public GUI::WizardDialog {
C_OBJECT(NewFontDialog);
public:
auto new_font_metadata()
{
save_metadata();
return m_new_font_metadata;
}
private:
NewFontDialog(GUI::Window* parent_window);
void save_metadata();
struct NewFontMetadata {
u8 glyph_width;
u8 glyph_height;
u8 glyph_spacing;
u8 baseline;
u8 mean_line;
u8 presentation_size;
u16 weight;
String name;
String family;
bool is_fixed_width;
} m_new_font_metadata;
RefPtr<GUI::WizardPage> m_font_selection_page;
RefPtr<GUI::ComboBox> m_select_font_combobox;
RefPtr<GUI::Button> m_browse_button;
RefPtr<GUI::WizardPage> m_font_properties_page;
RefPtr<GUI::TextBox> m_name_textbox;
RefPtr<GUI::TextBox> m_family_textbox;
RefPtr<GUI::ComboBox> m_weight_combobox;
RefPtr<GUI::SpinBox> m_presentation_spinbox;
RefPtr<GUI::WizardPage> m_glyph_properties_page;
RefPtr<GUI::Widget> m_glyph_editor_container;
RefPtr<GUI::SpinBox> m_glyph_height_spinbox;
RefPtr<GUI::SpinBox> m_glyph_width_spinbox;
RefPtr<GUI::SpinBox> m_baseline_spinbox;
RefPtr<GUI::SpinBox> m_mean_line_spinbox;
RefPtr<GUI::SpinBox> m_spacing_spinbox;
RefPtr<GUI::CheckBox> m_fixed_width_checkbox;
Vector<String> m_font_list;
Vector<String> m_font_weight_list;
};