From 3d503af241561f06846e2327e7a5af37246d174c Mon Sep 17 00:00:00 2001 From: Jarod42 Date: Wed, 14 Aug 2024 22:54:25 +0200 Subject: [PATCH] Add missing `Widget::getGlobalFont`. [Example] Use SdlTrueTypeFont --- examples/dactylographe.ttf | Bin 0 -> 63308 bytes examples/widgets_example.hpp | 37 +++++++++++++++++++++++++++++------ include/guisan/widget.hpp | 9 +++++++++ src/widget.cpp | 5 +++++ 4 files changed, 45 insertions(+), 6 deletions(-) create mode 100644 examples/dactylographe.ttf diff --git a/examples/dactylographe.ttf b/examples/dactylographe.ttf new file mode 100644 index 0000000000000000000000000000000000000000..e795dc320748775d2c1d0bb7bcc927cf2de3d3d7 GIT binary patch literal 63308 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 N#k=>BV+8(({|DEHenbEO literal 0 HcmV?d00001 diff --git a/examples/widgets_example.hpp b/examples/widgets_example.hpp index 4c539f0..d082035 100644 --- a/examples/widgets_example.hpp +++ b/examples/widgets_example.hpp @@ -12,12 +12,21 @@ namespace WidgetsExample MainContainer(gcn::Gui& gui, int width, int height) : demoListModel{{"zero", "one", "two", "three", "four"}} { +#if USE_SDL2_TTF + TTF_Init(); + + trueFont = std::make_unique("dactylographe.ttf", 12); +#endif // Load the image font. - font = std::make_unique( + imageFont = std::make_unique( "fixedfont.bmp", " abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"); - // The global font is static and must be set. - gcn::Widget::setGlobalFont(font.get()); + // The global font is static and must be set. +#if USE_SDL2_TTF + gcn::Widget::setGlobalFont(trueFont.get()); +#else + gcn::Widget::setGlobalFont(imageFont.get()); +#endif top = std::make_unique(); // Set the dimension of the top container to match the screen. top->setDimension(gcn::Rectangle(0, 0, width, height)); @@ -82,7 +91,8 @@ namespace WidgetsExample checkBox1 = std::make_unique("Checkbox 1"); checkBox2 = std::make_unique("Checkbox 2"); - toggleButton = std::make_unique("Toggle button"); + toggleButton = std::make_unique("Toggle font"); + toggleButton->addActionListener(this); radioButton1 = std::make_unique("Radio Button 1", "radiogroup", true); radioButton2 = std::make_unique("Radio Button 2", "radiogroup"); @@ -178,6 +188,19 @@ namespace WidgetsExample label->adjustSize(); } } + else if (actionEvent.getSource() == toggleButton.get()) + { + if (gcn::Widget::getGlobalFont() == imageFont.get()) + { +#if USE_SDL2_TTF + gcn::Widget::setGlobalFont(trueFont.get()); +#endif + } + else + { + gcn::Widget::setGlobalFont(imageFont.get()); + } + } else if (actionEvent.getSource() == messageBox.get()) { switch (messageBox->getClickedButton()) @@ -195,8 +218,10 @@ namespace WidgetsExample } private: - std::unique_ptr font; // A font - + std::unique_ptr imageFont; // A font +#if USE_SDL2_TTF + std::unique_ptr trueFont; // A font +#endif /* * All of the widgets */ diff --git a/include/guisan/widget.hpp b/include/guisan/widget.hpp index 1311906..0e0e933 100644 --- a/include/guisan/widget.hpp +++ b/include/guisan/widget.hpp @@ -721,6 +721,15 @@ namespace gcn */ static void setGlobalFont(Font* font); + /** + * Gets the global font to be used by default for all widgets. + * + * @return font The global font. + * @see setGlobalFont + * @since 1.2.0 + */ + static Font* getGlobalFont(); + /** * Set the base color for all widgets * diff --git a/src/widget.cpp b/src/widget.cpp index 7b5c329..55785af 100644 --- a/src/widget.cpp +++ b/src/widget.cpp @@ -513,6 +513,11 @@ namespace gcn } } + Font* Widget::getGlobalFont() + { + return mGlobalFont; + } + void Widget::setWidgetsBaseColor(Color color) { for (Widget* w : mWidgetInstances)