summaryrefslogtreecommitdiff
path: root/Applications/FontEditor
diff options
context:
space:
mode:
authorStephan Unverwerth <s.unverwerth@gmx.de>2020-12-31 14:01:59 +0100
committerAndreas Kling <kling@serenityos.org>2020-12-31 23:40:27 +0100
commitbb27b212de2544186b58928759c8c2a2e56944f9 (patch)
tree2292fa75c9a45c9271e0108648e52612c3c5d7b2 /Applications/FontEditor
parentac50bc79e4f0992edf69196efd2788f7be81730c (diff)
downloadserenity-bb27b212de2544186b58928759c8c2a2e56944f9.zip
LibGfx: Introduce provisional font interface
Old font functionality has been moved into BitmapFont and an abstract Font interface has been introduced to faciliate further development of TTF font integration.
Diffstat (limited to 'Applications/FontEditor')
-rw-r--r--Applications/FontEditor/FontEditor.cpp4
-rw-r--r--Applications/FontEditor/FontEditor.h5
-rw-r--r--Applications/FontEditor/GlyphEditorWidget.cpp4
-rw-r--r--Applications/FontEditor/GlyphEditorWidget.h9
-rw-r--r--Applications/FontEditor/GlyphMapWidget.cpp4
-rw-r--r--Applications/FontEditor/GlyphMapWidget.h9
-rw-r--r--Applications/FontEditor/main.cpp12
7 files changed, 25 insertions, 22 deletions
diff --git a/Applications/FontEditor/FontEditor.cpp b/Applications/FontEditor/FontEditor.cpp
index 25e3479346..56cbf3e06b 100644
--- a/Applications/FontEditor/FontEditor.cpp
+++ b/Applications/FontEditor/FontEditor.cpp
@@ -38,11 +38,11 @@
#include <LibGUI/SpinBox.h>
#include <LibGUI/TextBox.h>
#include <LibGUI/Window.h>
-#include <LibGfx/Font.h>
+#include <LibGfx/BitmapFont.h>
#include <LibGfx/Palette.h>
#include <stdlib.h>
-FontEditorWidget::FontEditorWidget(const String& path, RefPtr<Gfx::Font>&& edited_font)
+FontEditorWidget::FontEditorWidget(const String& path, RefPtr<Gfx::BitmapFont>&& edited_font)
: m_edited_font(move(edited_font))
, m_path(path)
{
diff --git a/Applications/FontEditor/FontEditor.h b/Applications/FontEditor/FontEditor.h
index 785af863e3..ed904e8e7d 100644
--- a/Applications/FontEditor/FontEditor.h
+++ b/Applications/FontEditor/FontEditor.h
@@ -28,6 +28,7 @@
#include <AK/Function.h>
#include <LibGUI/Widget.h>
+#include <LibGfx/BitmapFont.h>
class GlyphEditorWidget;
class GlyphMapWidget;
@@ -45,8 +46,8 @@ public:
const String& path() { return m_path; }
private:
- FontEditorWidget(const String& path, RefPtr<Gfx::Font>&&);
- RefPtr<Gfx::Font> m_edited_font;
+ FontEditorWidget(const String& path, RefPtr<Gfx::BitmapFont>&&);
+ RefPtr<Gfx::BitmapFont> m_edited_font;
RefPtr<GlyphMapWidget> m_glyph_map_widget;
RefPtr<GlyphEditorWidget> m_glyph_editor_widget;
diff --git a/Applications/FontEditor/GlyphEditorWidget.cpp b/Applications/FontEditor/GlyphEditorWidget.cpp
index 57cbed8058..6f545c1ccd 100644
--- a/Applications/FontEditor/GlyphEditorWidget.cpp
+++ b/Applications/FontEditor/GlyphEditorWidget.cpp
@@ -26,10 +26,10 @@
#include "GlyphEditorWidget.h"
#include <LibGUI/Painter.h>
-#include <LibGfx/Font.h>
+#include <LibGfx/BitmapFont.h>
#include <LibGfx/Palette.h>
-GlyphEditorWidget::GlyphEditorWidget(Gfx::Font& mutable_font)
+GlyphEditorWidget::GlyphEditorWidget(Gfx::BitmapFont& mutable_font)
: m_font(mutable_font)
{
set_relative_rect({ 0, 0, preferred_width(), preferred_height() });
diff --git a/Applications/FontEditor/GlyphEditorWidget.h b/Applications/FontEditor/GlyphEditorWidget.h
index f53d78d851..a54c551642 100644
--- a/Applications/FontEditor/GlyphEditorWidget.h
+++ b/Applications/FontEditor/GlyphEditorWidget.h
@@ -28,6 +28,7 @@
#include <AK/Function.h>
#include <LibGUI/Frame.h>
+#include <LibGfx/BitmapFont.h>
class GlyphEditorWidget final : public GUI::Frame {
C_OBJECT(GlyphEditorWidget)
@@ -40,20 +41,20 @@ public:
int preferred_width() const;
int preferred_height() const;
- Gfx::Font& font() { return *m_font; }
- const Gfx::Font& font() const { return *m_font; }
+ Gfx::BitmapFont& font() { return *m_font; }
+ const Gfx::BitmapFont& font() const { return *m_font; }
Function<void(u8)> on_glyph_altered;
private:
- GlyphEditorWidget(Gfx::Font&);
+ GlyphEditorWidget(Gfx::BitmapFont&);
virtual void paint_event(GUI::PaintEvent&) override;
virtual void mousedown_event(GUI::MouseEvent&) override;
virtual void mousemove_event(GUI::MouseEvent&) override;
void draw_at_mouse(const GUI::MouseEvent&);
- RefPtr<Gfx::Font> m_font;
+ RefPtr<Gfx::BitmapFont> m_font;
int m_glyph { 0 };
int m_scale { 10 };
};
diff --git a/Applications/FontEditor/GlyphMapWidget.cpp b/Applications/FontEditor/GlyphMapWidget.cpp
index 6d0561ad89..ed6a65493f 100644
--- a/Applications/FontEditor/GlyphMapWidget.cpp
+++ b/Applications/FontEditor/GlyphMapWidget.cpp
@@ -26,10 +26,10 @@
#include "GlyphMapWidget.h"
#include <LibGUI/Painter.h>
-#include <LibGfx/Font.h>
+#include <LibGfx/BitmapFont.h>
#include <LibGfx/Palette.h>
-GlyphMapWidget::GlyphMapWidget(Gfx::Font& mutable_font)
+GlyphMapWidget::GlyphMapWidget(Gfx::BitmapFont& mutable_font)
: m_font(mutable_font)
{
m_glyph_count = mutable_font.glyph_count();
diff --git a/Applications/FontEditor/GlyphMapWidget.h b/Applications/FontEditor/GlyphMapWidget.h
index 4c6243ef68..2c8443a251 100644
--- a/Applications/FontEditor/GlyphMapWidget.h
+++ b/Applications/FontEditor/GlyphMapWidget.h
@@ -29,6 +29,7 @@
#include <AK/Function.h>
#include <AK/StdLibExtras.h>
#include <LibGUI/Frame.h>
+#include <LibGfx/BitmapFont.h>
class GlyphMapWidget final : public GUI::Frame {
C_OBJECT(GlyphMapWidget)
@@ -44,22 +45,22 @@ public:
int preferred_width() const;
int preferred_height() const;
- Gfx::Font& font() { return *m_font; }
- const Gfx::Font& font() const { return *m_font; }
+ Gfx::BitmapFont& font() { return *m_font; }
+ const Gfx::BitmapFont& font() const { return *m_font; }
void update_glyph(int);
Function<void(int)> on_glyph_selected;
private:
- explicit GlyphMapWidget(Gfx::Font&);
+ explicit GlyphMapWidget(Gfx::BitmapFont&);
virtual void paint_event(GUI::PaintEvent&) override;
virtual void mousedown_event(GUI::MouseEvent&) override;
virtual void keydown_event(GUI::KeyEvent&) override;
Gfx::IntRect get_outer_rect(int glyph) const;
- RefPtr<Gfx::Font> m_font;
+ RefPtr<Gfx::BitmapFont> m_font;
int m_glyph_count;
int m_columns { 32 };
int m_horizontal_spacing { 2 };
diff --git a/Applications/FontEditor/main.cpp b/Applications/FontEditor/main.cpp
index 9108445f1b..873248bd4e 100644
--- a/Applications/FontEditor/main.cpp
+++ b/Applications/FontEditor/main.cpp
@@ -36,7 +36,7 @@
#include <LibGUI/MessageBox.h>
#include <LibGUI/Window.h>
#include <LibGfx/Bitmap.h>
-#include <LibGfx/Font.h>
+#include <LibGfx/BitmapFont.h>
#include <LibGfx/FontDatabase.h>
#include <LibGfx/Point.h>
#include <stdio.h>
@@ -60,12 +60,12 @@ int main(int argc, char** argv)
args_parser.add_positional_argument(path, "The font file for editing.", "file", Core::ArgsParser::Required::No);
args_parser.parse(argc, argv);
- RefPtr<Gfx::Font> edited_font;
+ RefPtr<Gfx::BitmapFont> edited_font;
if (path == nullptr) {
path = "/tmp/saved.font";
- edited_font = Gfx::FontDatabase::default_font().clone();
+ edited_font = static_ptr_cast<Gfx::BitmapFont>(Gfx::FontDatabase::default_font().clone());
} else {
- edited_font = Gfx::Font::load_from_file(path)->clone();
+ edited_font = static_ptr_cast<Gfx::BitmapFont>(Gfx::Font::load_from_file(path)->clone());
if (!edited_font) {
String message = String::formatted("Couldn't load font: {}\n", path);
GUI::MessageBox::show(nullptr, message, "Font Editor", GUI::MessageBox::Type::Error);
@@ -78,7 +78,7 @@ int main(int argc, char** argv)
auto window = GUI::Window::construct();
window->set_icon(app_icon.bitmap_for_size(16));
- auto set_edited_font = [&](const String& path, RefPtr<Gfx::Font>&& font, Gfx::IntPoint point) {
+ auto set_edited_font = [&](const String& path, RefPtr<Gfx::BitmapFont>&& font, Gfx::IntPoint point) {
// Convert 256 char font to 384 char font.
if (font->type() == Gfx::FontTypes::Default)
font->set_type(Gfx::FontTypes::LatinExtendedA);
@@ -97,7 +97,7 @@ int main(int argc, char** argv)
if (!open_path.has_value())
return;
- RefPtr<Gfx::Font> new_font = Gfx::Font::load_from_file(open_path.value())->clone();
+ RefPtr<Gfx::BitmapFont> new_font = static_ptr_cast<Gfx::BitmapFont>(Gfx::Font::load_from_file(open_path.value())->clone());
if (!new_font) {
String message = String::formatted("Couldn't load font: {}\n", open_path.value());
GUI::MessageBox::show(window, message, "Font Editor", GUI::MessageBox::Type::Error);