mirror of
https://github.com/SerenityOS/serenity
synced 2024-07-22 10:36:24 +00:00
FontEditor: Update GML for new layout system
This patch removes deprecated GML properties and manual sizing calculations in favor of the new UIDimensions, and registers more widgets in the FontEditor namespace to simplify widget setup.
This commit is contained in:
parent
1b9dff5fb1
commit
dc3ee84aca
|
@ -23,6 +23,7 @@
|
|||
#include <LibGUI/Clipboard.h>
|
||||
#include <LibGUI/ComboBox.h>
|
||||
#include <LibGUI/FilePicker.h>
|
||||
#include <LibGUI/GlyphMapWidget.h>
|
||||
#include <LibGUI/GroupBox.h>
|
||||
#include <LibGUI/InputBox.h>
|
||||
#include <LibGUI/ItemListModel.h>
|
||||
|
@ -40,10 +41,11 @@
|
|||
#include <LibGfx/Font/BitmapFont.h>
|
||||
#include <LibGfx/Font/Emoji.h>
|
||||
#include <LibGfx/Font/FontStyleMapping.h>
|
||||
#include <LibGfx/Palette.h>
|
||||
#include <LibGfx/TextDirection.h>
|
||||
#include <LibUnicode/CharacterTypes.h>
|
||||
|
||||
namespace FontEditor {
|
||||
|
||||
static constexpr Array pangrams = {
|
||||
"quick fox jumps nightly above wizard",
|
||||
"five quacking zephyrs jolt my wax bed",
|
||||
|
@ -387,13 +389,9 @@ FontEditorWidget::FontEditorWidget()
|
|||
|
||||
m_font_metadata_groupbox = find_descendant_of_type_named<GUI::GroupBox>("font_metadata_groupbox");
|
||||
m_unicode_block_container = find_descendant_of_type_named<GUI::Widget>("unicode_block_container");
|
||||
m_glyph_editor_container = *find_descendant_of_type_named<GUI::Widget>("glyph_editor_container");
|
||||
m_left_column_container = *find_descendant_of_type_named<GUI::Widget>("left_column_container");
|
||||
|
||||
auto& glyph_map_container = *find_descendant_of_type_named<GUI::Widget>("glyph_map_container");
|
||||
m_glyph_editor_widget = m_glyph_editor_container->add<GlyphEditorWidget>();
|
||||
m_glyph_map_widget = glyph_map_container.add<GUI::GlyphMapWidget>();
|
||||
|
||||
m_glyph_map_widget = find_descendant_of_type_named<GUI::GlyphMapWidget>("glyph_map_widget");
|
||||
m_glyph_editor_widget = find_descendant_of_type_named<GlyphEditorWidget>("glyph_editor_widget");
|
||||
m_glyph_editor_widget->on_glyph_altered = [this](int glyph) {
|
||||
m_glyph_map_widget->update_glyph(glyph);
|
||||
update_preview();
|
||||
|
@ -569,7 +567,7 @@ ErrorOr<void> FontEditorWidget::initialize(String const& path, RefPtr<Gfx::Bitma
|
|||
|
||||
m_glyph_map_widget->set_font(*m_edited_font);
|
||||
m_glyph_editor_widget->initialize(*m_edited_font);
|
||||
did_resize_glyph_editor();
|
||||
m_glyph_editor_widget->set_fixed_size(m_glyph_editor_widget->preferred_width(), m_glyph_editor_widget->preferred_height());
|
||||
|
||||
m_glyph_editor_width_spinbox->set_visible(!m_edited_font->is_fixed_width());
|
||||
m_glyph_editor_width_spinbox->set_max(m_edited_font->max_glyph_width(), GUI::AllowCallback::No);
|
||||
|
@ -899,16 +897,6 @@ void FontEditorWidget::drop_event(GUI::DropEvent& event)
|
|||
}
|
||||
}
|
||||
|
||||
void FontEditorWidget::did_resize_glyph_editor()
|
||||
{
|
||||
constexpr int button_width = 22;
|
||||
constexpr int buttons_per_bar = 4;
|
||||
constexpr int spacing = (buttons_per_bar - 1) * 2 + 10;
|
||||
constexpr int glyph_toolbars_width = button_width * buttons_per_bar + spacing;
|
||||
m_glyph_editor_container->set_fixed_size(m_glyph_editor_widget->preferred_width(), m_glyph_editor_widget->preferred_height());
|
||||
m_left_column_container->set_fixed_width(max(m_glyph_editor_widget->preferred_width(), glyph_toolbars_width));
|
||||
}
|
||||
|
||||
void FontEditorWidget::set_scale(i32 scale)
|
||||
{
|
||||
m_glyph_editor_widget->set_scale(scale);
|
||||
|
@ -918,7 +906,7 @@ void FontEditorWidget::set_scale_and_save(i32 scale)
|
|||
{
|
||||
set_scale(scale);
|
||||
Config::write_i32("FontEditor", "GlyphEditor", "Scale", scale);
|
||||
did_resize_glyph_editor();
|
||||
m_glyph_editor_widget->set_fixed_size(m_glyph_editor_widget->preferred_width(), m_glyph_editor_widget->preferred_height());
|
||||
}
|
||||
|
||||
void FontEditorWidget::copy_selected_glyphs()
|
||||
|
@ -1011,3 +999,5 @@ void FontEditorWidget::delete_selected_glyphs()
|
|||
m_glyph_map_widget->update();
|
||||
update_statusbar();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -15,6 +15,8 @@
|
|||
#include <LibGUI/Widget.h>
|
||||
#include <LibGfx/Font/BitmapFont.h>
|
||||
|
||||
namespace FontEditor {
|
||||
|
||||
class GlyphEditorWidget;
|
||||
|
||||
class FontEditorWidget final : public GUI::Widget {
|
||||
|
@ -63,7 +65,6 @@ private:
|
|||
void undo();
|
||||
void redo();
|
||||
void did_modify_font();
|
||||
void did_resize_glyph_editor();
|
||||
void update_statusbar();
|
||||
void update_preview();
|
||||
void set_scale(i32);
|
||||
|
@ -123,8 +124,6 @@ private:
|
|||
RefPtr<GUI::Action> m_rotate_counterclockwise_action;
|
||||
|
||||
RefPtr<GUI::Statusbar> m_statusbar;
|
||||
RefPtr<GUI::Widget> m_left_column_container;
|
||||
RefPtr<GUI::Widget> m_glyph_editor_container;
|
||||
RefPtr<GUI::Widget> m_unicode_block_container;
|
||||
RefPtr<GUI::ComboBox> m_weight_combobox;
|
||||
RefPtr<GUI::ComboBox> m_slope_combobox;
|
||||
|
@ -156,3 +155,5 @@ private:
|
|||
bool m_unicode_blocks { true };
|
||||
Unicode::CodePointRange m_range { 0x0000, 0x10FFFF };
|
||||
};
|
||||
|
||||
}
|
||||
|
|
|
@ -17,23 +17,25 @@
|
|||
|
||||
@GUI::Widget {
|
||||
name: "left_column_container"
|
||||
preferred_width: "shrink"
|
||||
layout: @GUI::VerticalBoxLayout {}
|
||||
|
||||
@GUI::Widget {
|
||||
name: "glyph_editor_container"
|
||||
layout: @GUI::VerticalBoxLayout {}
|
||||
@FontEditor::GlyphEditorWidget {
|
||||
name: "glyph_editor_widget"
|
||||
}
|
||||
|
||||
@GUI::Widget {
|
||||
shrink_to_fit: true
|
||||
preferred_height: "shrink"
|
||||
layout: @GUI::VerticalBoxLayout {}
|
||||
|
||||
@GUI::SpinBox {
|
||||
name: "glyph_editor_width_spinbox"
|
||||
preferred_width: "fit"
|
||||
}
|
||||
|
||||
@GUI::CheckBox {
|
||||
name: "glyph_editor_present_checkbox"
|
||||
preferred_width: "fit"
|
||||
text: "Present"
|
||||
focus_policy: "TabFocus"
|
||||
}
|
||||
|
@ -64,21 +66,19 @@
|
|||
@GUI::Widget {
|
||||
layout: @GUI::VerticalBoxLayout {}
|
||||
|
||||
@GUI::Widget {
|
||||
name: "glyph_map_container"
|
||||
layout: @GUI::VerticalBoxLayout {}
|
||||
@GUI::GlyphMapWidget {
|
||||
name: "glyph_map_widget"
|
||||
}
|
||||
|
||||
@GUI::GroupBox {
|
||||
name: "font_metadata_groupbox"
|
||||
title: "Metadata"
|
||||
shrink_to_fit: true
|
||||
preferred_height: "shrink"
|
||||
layout: @GUI::VerticalBoxLayout {
|
||||
margins: [6, 6, 6, 6]
|
||||
}
|
||||
|
||||
@GUI::Widget {
|
||||
fixed_height: 22
|
||||
layout: @GUI::HorizontalBoxLayout {}
|
||||
|
||||
@GUI::Label {
|
||||
|
@ -94,7 +94,6 @@
|
|||
}
|
||||
|
||||
@GUI::Widget {
|
||||
fixed_height: 22
|
||||
layout: @GUI::HorizontalBoxLayout {}
|
||||
|
||||
@GUI::Label {
|
||||
|
@ -110,7 +109,6 @@
|
|||
}
|
||||
|
||||
@GUI::Widget {
|
||||
fixed_height: 22
|
||||
layout: @GUI::HorizontalBoxLayout {}
|
||||
|
||||
@GUI::Label {
|
||||
|
@ -127,7 +125,6 @@
|
|||
}
|
||||
|
||||
@GUI::Widget {
|
||||
fixed_height: 22
|
||||
layout: @GUI::HorizontalBoxLayout {}
|
||||
|
||||
@GUI::Label {
|
||||
|
@ -144,7 +141,6 @@
|
|||
}
|
||||
|
||||
@GUI::Widget {
|
||||
fixed_height: 22
|
||||
layout: @GUI::HorizontalBoxLayout {}
|
||||
|
||||
@GUI::Label {
|
||||
|
@ -162,7 +158,6 @@
|
|||
}
|
||||
|
||||
@GUI::Widget {
|
||||
fixed_height: 22
|
||||
layout: @GUI::HorizontalBoxLayout {}
|
||||
|
||||
@GUI::Label {
|
||||
|
@ -179,7 +174,6 @@
|
|||
}
|
||||
|
||||
@GUI::Widget {
|
||||
fixed_height: 22
|
||||
layout: @GUI::HorizontalBoxLayout {}
|
||||
|
||||
@GUI::Label {
|
||||
|
@ -196,7 +190,6 @@
|
|||
}
|
||||
|
||||
@GUI::Widget {
|
||||
fixed_height: 22
|
||||
layout: @GUI::HorizontalBoxLayout {}
|
||||
|
||||
@GUI::Label {
|
||||
|
|
|
@ -14,6 +14,10 @@
|
|||
#include <LibGfx/Palette.h>
|
||||
#include <string.h>
|
||||
|
||||
REGISTER_WIDGET(FontEditor, GlyphEditorWidget);
|
||||
|
||||
namespace FontEditor {
|
||||
|
||||
void GlyphEditorWidget::initialize(Gfx::BitmapFont& mutable_font)
|
||||
{
|
||||
if (m_font == mutable_font)
|
||||
|
@ -271,3 +275,5 @@ void GlyphEditorWidget::set_scale(int scale)
|
|||
m_scale = clamp(scale, 1, 15);
|
||||
update();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -11,6 +11,8 @@
|
|||
#include <LibGUI/Frame.h>
|
||||
#include <LibGfx/Font/BitmapFont.h>
|
||||
|
||||
namespace FontEditor {
|
||||
|
||||
class GlyphEditorWidget final : public GUI::Frame {
|
||||
C_OBJECT(GlyphEditorWidget)
|
||||
public:
|
||||
|
@ -71,3 +73,5 @@ private:
|
|||
Mode m_mode { Paint };
|
||||
bool m_is_clicking_valid_cell { false };
|
||||
};
|
||||
|
||||
}
|
||||
|
|
|
@ -23,16 +23,15 @@
|
|||
#include <LibGfx/Font/FontStyleMapping.h>
|
||||
#include <LibGfx/Palette.h>
|
||||
|
||||
namespace GUI {
|
||||
namespace FontEditor {
|
||||
|
||||
class GlyphPreviewWidget final : public Frame {
|
||||
class GlyphPreviewWidget final : public GUI::Frame {
|
||||
C_OBJECT(GlyphPreviewWidget)
|
||||
public:
|
||||
void set_preview_size(int width, int height)
|
||||
{
|
||||
m_width = width;
|
||||
m_height = height;
|
||||
m_glyph_width = width;
|
||||
for (int i = 10; i > 0; i--) {
|
||||
if ((frame_thickness() * 2 + (m_width * i) - 1) <= 250
|
||||
&& (frame_thickness() * 2 + (m_height * i) - 1) <= 205) {
|
||||
|
@ -53,10 +52,10 @@ private:
|
|||
{
|
||||
set_preview_size(m_width, m_height);
|
||||
}
|
||||
virtual void paint_event(PaintEvent& event) override
|
||||
virtual void paint_event(GUI::PaintEvent& event) override
|
||||
{
|
||||
Frame::paint_event(event);
|
||||
Painter painter(*this);
|
||||
GUI::Frame::paint_event(event);
|
||||
GUI::Painter painter(*this);
|
||||
painter.add_clip_rect(frame_inner_rect());
|
||||
painter.add_clip_rect(event.rect());
|
||||
painter.fill_rect(frame_inner_rect(), palette().base());
|
||||
|
@ -75,7 +74,7 @@ private:
|
|||
for (int y = 0; y < m_height; ++y) {
|
||||
for (int x = 0; x < m_width; ++x) {
|
||||
Gfx::IntRect rect { x * m_scale, y * m_scale, m_scale, m_scale };
|
||||
if (x >= m_glyph_width) {
|
||||
if (x >= m_width) {
|
||||
painter.fill_rect(rect, palette().threed_shadow1());
|
||||
} else {
|
||||
if (m_bits[x][y])
|
||||
|
@ -84,19 +83,19 @@ private:
|
|||
}
|
||||
}
|
||||
}
|
||||
virtual void mousedown_event(MouseEvent& event) override
|
||||
virtual void mousedown_event(GUI::MouseEvent& event) override
|
||||
{
|
||||
draw_at_mouse(event);
|
||||
}
|
||||
virtual void mousemove_event(MouseEvent& event) override
|
||||
virtual void mousemove_event(GUI::MouseEvent& event) override
|
||||
{
|
||||
if (event.buttons() & (GUI::MouseButton::Primary | GUI::MouseButton::Secondary))
|
||||
draw_at_mouse(event);
|
||||
}
|
||||
void draw_at_mouse(MouseEvent const& event)
|
||||
void draw_at_mouse(GUI::MouseEvent const& event)
|
||||
{
|
||||
bool set = event.buttons() & MouseButton::Primary;
|
||||
bool unset = event.buttons() & MouseButton::Secondary;
|
||||
bool set = event.buttons() & GUI::MouseButton::Primary;
|
||||
bool unset = event.buttons() & GUI::MouseButton::Secondary;
|
||||
if (!(set ^ unset))
|
||||
return;
|
||||
int x = (event.x() - 1) / m_scale;
|
||||
|
@ -114,7 +113,6 @@ private:
|
|||
int m_scale { 10 };
|
||||
int m_width { 20 };
|
||||
int m_height { 20 };
|
||||
int m_glyph_width { 20 };
|
||||
int m_mean_line { 2 };
|
||||
int m_baseline { 16 };
|
||||
u8 m_bits[Gfx::GlyphBitmap::max_width()][Gfx::GlyphBitmap::max_height()] {};
|
||||
|
@ -122,6 +120,8 @@ private:
|
|||
|
||||
}
|
||||
|
||||
REGISTER_WIDGET(FontEditor, GlyphPreviewWidget);
|
||||
|
||||
NewFontDialog::NewFontDialog(GUI::Window* parent_window)
|
||||
: GUI::WizardDialog(parent_window)
|
||||
{
|
||||
|
@ -159,7 +159,6 @@ NewFontDialog::NewFontDialog(GUI::Window* parent_window)
|
|||
m_glyph_properties_page->body_widget().load_from_gml(new_font_dialog_page_2_gml);
|
||||
m_glyph_properties_page->set_is_final_page(true);
|
||||
|
||||
m_glyph_editor_container = m_glyph_properties_page->body_widget().find_descendant_of_type_named<GUI::Widget>("glyph_editor_container");
|
||||
m_glyph_height_spinbox = m_glyph_properties_page->body_widget().find_descendant_of_type_named<GUI::SpinBox>("height_spinbox");
|
||||
m_glyph_width_spinbox = m_glyph_properties_page->body_widget().find_descendant_of_type_named<GUI::SpinBox>("width_spinbox");
|
||||
m_baseline_spinbox = m_glyph_properties_page->body_widget().find_descendant_of_type_named<GUI::SpinBox>("baseline_spinbox");
|
||||
|
@ -178,23 +177,15 @@ NewFontDialog::NewFontDialog(GUI::Window* parent_window)
|
|||
m_spacing_spinbox->set_value(1);
|
||||
m_fixed_width_checkbox->set_checked(false);
|
||||
|
||||
auto& preview_editor = m_glyph_editor_container->add<GUI::GlyphPreviewWidget>();
|
||||
preview_editor.set_preview_size(20, 20);
|
||||
m_glyph_editor_container->set_fixed_height(20 * 20 + preview_editor.frame_thickness() * 4);
|
||||
auto& preview_editor = *m_glyph_properties_page->body_widget().find_descendant_of_type_named<FontEditor::GlyphPreviewWidget>("glyph_preview_widget");
|
||||
|
||||
m_glyph_width_spinbox->on_change = [&](int value) {
|
||||
preview_editor.set_preview_size(value, m_glyph_height_spinbox->value());
|
||||
deferred_invoke([&] {
|
||||
m_glyph_editor_container->set_fixed_height(1 + preview_editor.height() + preview_editor.frame_thickness() * 2);
|
||||
});
|
||||
};
|
||||
m_glyph_height_spinbox->on_change = [&](int value) {
|
||||
preview_editor.set_preview_size(m_glyph_width_spinbox->value(), value);
|
||||
m_mean_line_spinbox->set_max(max(value - 2, 0));
|
||||
m_baseline_spinbox->set_max(max(value - 2, 0));
|
||||
deferred_invoke([&] {
|
||||
m_glyph_editor_container->set_fixed_height(1 + preview_editor.height() + preview_editor.frame_thickness() * 2);
|
||||
});
|
||||
};
|
||||
m_baseline_spinbox->on_change = [&](int value) {
|
||||
preview_editor.set_baseline(value);
|
||||
|
|
|
@ -52,7 +52,6 @@ private:
|
|||
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;
|
||||
|
|
|
@ -1,127 +1,119 @@
|
|||
@GUI::Widget {
|
||||
layout: @GUI::VerticalBoxLayout {
|
||||
layout: @GUI::HorizontalBoxLayout {
|
||||
margins: [20]
|
||||
}
|
||||
|
||||
@GUI::Widget {
|
||||
layout: @GUI::HorizontalBoxLayout {}
|
||||
@GUI::GroupBox {
|
||||
title: "Metadata"
|
||||
fixed_width: 200
|
||||
layout: @GUI::VerticalBoxLayout {
|
||||
margins: [6]
|
||||
}
|
||||
|
||||
@GUI::GroupBox {
|
||||
title: "Metadata"
|
||||
fixed_width: 200
|
||||
layout: @GUI::VerticalBoxLayout {
|
||||
margins: [6]
|
||||
@GUI::Widget {
|
||||
layout: @GUI::HorizontalBoxLayout {}
|
||||
|
||||
@GUI::Label {
|
||||
fixed_width: 80
|
||||
text_alignment: "CenterLeft"
|
||||
text: "Height:"
|
||||
}
|
||||
|
||||
@GUI::Widget {
|
||||
layout: @GUI::HorizontalBoxLayout {}
|
||||
|
||||
@GUI::Label {
|
||||
fixed_width: 80
|
||||
text_alignment: "CenterLeft"
|
||||
text: "Height:"
|
||||
}
|
||||
|
||||
@GUI::SpinBox {
|
||||
name: "height_spinbox"
|
||||
min: 1
|
||||
}
|
||||
}
|
||||
|
||||
@GUI::Widget {
|
||||
layout: @GUI::HorizontalBoxLayout {}
|
||||
|
||||
@GUI::Label {
|
||||
fixed_width: 80
|
||||
text_alignment: "CenterLeft"
|
||||
text: "Width:"
|
||||
}
|
||||
|
||||
@GUI::SpinBox {
|
||||
name: "width_spinbox"
|
||||
min: 1
|
||||
}
|
||||
}
|
||||
|
||||
@GUI::Widget {
|
||||
layout: @GUI::HorizontalBoxLayout {}
|
||||
|
||||
@GUI::Label {
|
||||
fixed_width: 80
|
||||
text_alignment: "CenterLeft"
|
||||
text: "Mean line:"
|
||||
}
|
||||
|
||||
@GUI::SpinBox {
|
||||
name: "mean_line_spinbox"
|
||||
min: 0
|
||||
}
|
||||
}
|
||||
|
||||
@GUI::Widget {
|
||||
layout: @GUI::HorizontalBoxLayout {}
|
||||
|
||||
@GUI::Label {
|
||||
fixed_width: 80
|
||||
text_alignment: "CenterLeft"
|
||||
text: "Baseline:"
|
||||
}
|
||||
|
||||
@GUI::SpinBox {
|
||||
name: "baseline_spinbox"
|
||||
min: 0
|
||||
}
|
||||
}
|
||||
|
||||
@GUI::HorizontalSeparator {
|
||||
fixed_height: 22
|
||||
}
|
||||
|
||||
@GUI::Widget {
|
||||
layout: @GUI::HorizontalBoxLayout {}
|
||||
|
||||
@GUI::Label {
|
||||
fixed_width: 80
|
||||
text_alignment: "CenterLeft"
|
||||
text: "Spacing:"
|
||||
}
|
||||
|
||||
@GUI::SpinBox {
|
||||
name: "spacing_spinbox"
|
||||
min: 0
|
||||
max: 255
|
||||
}
|
||||
}
|
||||
|
||||
@GUI::Widget {
|
||||
fixed_height: 22
|
||||
layout: @GUI::HorizontalBoxLayout {}
|
||||
|
||||
@GUI::Widget {
|
||||
fixed_width: 80
|
||||
}
|
||||
|
||||
@GUI::CheckBox {
|
||||
name: "fixed_width_checkbox"
|
||||
text: "Fixed width"
|
||||
autosize: true
|
||||
}
|
||||
@GUI::SpinBox {
|
||||
name: "height_spinbox"
|
||||
min: 1
|
||||
}
|
||||
}
|
||||
|
||||
@GUI::Widget {
|
||||
layout: @GUI::VerticalBoxLayout {}
|
||||
layout: @GUI::HorizontalBoxLayout {}
|
||||
|
||||
@GUI::Widget {}
|
||||
|
||||
@GUI::Widget {
|
||||
name: "glyph_editor_container"
|
||||
layout: @GUI::VerticalBoxLayout {
|
||||
margins: [5, 0, 0]
|
||||
}
|
||||
@GUI::Label {
|
||||
fixed_width: 80
|
||||
text_alignment: "CenterLeft"
|
||||
text: "Width:"
|
||||
}
|
||||
|
||||
@GUI::Widget {}
|
||||
@GUI::SpinBox {
|
||||
name: "width_spinbox"
|
||||
min: 1
|
||||
}
|
||||
}
|
||||
|
||||
@GUI::Widget {
|
||||
layout: @GUI::HorizontalBoxLayout {}
|
||||
|
||||
@GUI::Label {
|
||||
fixed_width: 80
|
||||
text_alignment: "CenterLeft"
|
||||
text: "Mean line:"
|
||||
}
|
||||
|
||||
@GUI::SpinBox {
|
||||
name: "mean_line_spinbox"
|
||||
min: 0
|
||||
}
|
||||
}
|
||||
|
||||
@GUI::Widget {
|
||||
layout: @GUI::HorizontalBoxLayout {}
|
||||
|
||||
@GUI::Label {
|
||||
fixed_width: 80
|
||||
text_alignment: "CenterLeft"
|
||||
text: "Baseline:"
|
||||
}
|
||||
|
||||
@GUI::SpinBox {
|
||||
name: "baseline_spinbox"
|
||||
min: 0
|
||||
}
|
||||
}
|
||||
|
||||
@GUI::HorizontalSeparator {
|
||||
fixed_height: 22
|
||||
}
|
||||
|
||||
@GUI::Widget {
|
||||
layout: @GUI::HorizontalBoxLayout {}
|
||||
|
||||
@GUI::Label {
|
||||
fixed_width: 80
|
||||
text_alignment: "CenterLeft"
|
||||
text: "Spacing:"
|
||||
}
|
||||
|
||||
@GUI::SpinBox {
|
||||
name: "spacing_spinbox"
|
||||
min: 0
|
||||
max: 255
|
||||
}
|
||||
}
|
||||
|
||||
@GUI::Widget {
|
||||
layout: @GUI::HorizontalBoxLayout {}
|
||||
|
||||
@GUI::Widget {
|
||||
fixed_width: 80
|
||||
}
|
||||
|
||||
@GUI::CheckBox {
|
||||
name: "fixed_width_checkbox"
|
||||
text: "Fixed width"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@GUI::Widget {
|
||||
layout: @GUI::VerticalBoxLayout {}
|
||||
|
||||
@GUI::Layout::Spacer {}
|
||||
|
||||
@FontEditor::GlyphPreviewWidget {
|
||||
name: "glyph_preview_widget"
|
||||
layout: @GUI::VerticalBoxLayout {}
|
||||
}
|
||||
|
||||
@GUI::Layout::Spacer {}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -42,7 +42,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
|
|||
window->set_icon(app_icon.bitmap_for_size(16));
|
||||
window->resize(640, 470);
|
||||
|
||||
auto font_editor = TRY(window->try_set_main_widget<FontEditorWidget>());
|
||||
auto font_editor = TRY(window->try_set_main_widget<FontEditor::FontEditorWidget>());
|
||||
TRY(font_editor->initialize_menubar(*window));
|
||||
|
||||
if (path) {
|
||||
|
|
Loading…
Reference in a new issue