From 3d484383fc7b59354d47d6209661818903379a02 Mon Sep 17 00:00:00 2001 From: MihailRis Date: Fri, 6 Dec 2024 19:36:38 +0300 Subject: [PATCH] replace 'markdown' (bool) property with 'markup' (str) --- doc/en/text-styles.md | 2 +- doc/ru/text-styles.md | 2 +- res/layouts/console.xml | 4 ++-- src/graphics/ui/elements/Label.cpp | 10 +++++----- src/graphics/ui/elements/Label.hpp | 8 ++++---- src/graphics/ui/elements/TextBox.cpp | 12 ++++++------ src/graphics/ui/elements/TextBox.hpp | 9 ++++----- src/graphics/ui/gui_xml.cpp | 8 ++++---- 8 files changed, 27 insertions(+), 28 deletions(-) diff --git a/doc/en/text-styles.md b/doc/en/text-styles.md index 93964429..e85437e1 100644 --- a/doc/en/text-styles.md +++ b/doc/en/text-styles.md @@ -1,7 +1,7 @@ # Text styles A proprietary Markdown dialect is used to mark up text styles. -Formatting works on UI elements: label and textbox, if `markdown="true"` is explicitly specified. +Formatting works on UI elements: label and textbox, if `markup="md"` is explicitly specified. ## Styles diff --git a/doc/ru/text-styles.md b/doc/ru/text-styles.md index cb174687..0a09abe3 100644 --- a/doc/ru/text-styles.md +++ b/doc/ru/text-styles.md @@ -1,7 +1,7 @@ # Стили текста Для разметки стилей текста используется собственный диалект Markdown. -Форматирование работает на UI элементах: label и textbox, если явно указано `markdown="true"`. +Форматирование работает на UI элементах: label и textbox, если явно указано `markup="md"`. ## Стили diff --git a/res/layouts/console.xml b/res/layouts/console.xml index 2096fb68..43e72dd8 100644 --- a/res/layouts/console.xml +++ b/res/layouts/console.xml @@ -22,7 +22,7 @@ multiline='true' size-func="gui.get_viewport()[1],40" gravity="bottom-left" - markdown="true" + markup="md" > styles) { diff --git a/src/graphics/ui/elements/Label.hpp b/src/graphics/ui/elements/Label.hpp index 669dbd96..df177f71 100644 --- a/src/graphics/ui/elements/Label.hpp +++ b/src/graphics/ui/elements/Label.hpp @@ -53,8 +53,8 @@ namespace gui { /// @brief Auto resize label to fit text bool autoresize = false; - /// @brief Enable text markdown - bool markdown = false; + /// @brief Text markup language + std::string markup; std::unique_ptr styles; public: @@ -116,8 +116,8 @@ namespace gui { virtual void setTextWrapping(bool flag); virtual bool isTextWrapping() const; - virtual void setMarkdown(bool flag); - virtual bool isMarkdown() const; + virtual void setMarkup(std::string_view lang); + virtual const std::string& getMarkup() const; virtual void setStyles(std::unique_ptr styles); }; diff --git a/src/graphics/ui/elements/TextBox.cpp b/src/graphics/ui/elements/TextBox.cpp index ef528ec8..e55e1c5b 100644 --- a/src/graphics/ui/elements/TextBox.cpp +++ b/src/graphics/ui/elements/TextBox.cpp @@ -194,7 +194,7 @@ void TextBox::refreshLabel() { label->setColor(textColor * glm::vec4(input.empty() ? 0.5f : 1.0f)); const auto& displayText = input.empty() && !hint.empty() ? hint : getText(); - if (markdown) { + if (markup == "md") { auto [processedText, styles] = markdown::process(displayText, !focused); label->setText(std::move(processedText)); label->setStyles(std::move(styles)); @@ -850,7 +850,7 @@ bool TextBox::isShowLineNumbers() const { return showLineNumbers; } -void TextBox::setSyntax(const std::string& lang) { +void TextBox::setSyntax(std::string_view lang) { syntax = lang; if (syntax.empty()) { label->setStyles(nullptr); @@ -859,10 +859,10 @@ void TextBox::setSyntax(const std::string& lang) { } } -void TextBox::setMarkdown(bool flag) { - markdown = flag; +void TextBox::setMarkup(std::string_view lang) { + markup = lang; } -bool TextBox::isMarkdown() const { - return markdown; +const std::string& TextBox::getMarkup() const { + return markup; } diff --git a/src/graphics/ui/elements/TextBox.hpp b/src/graphics/ui/elements/TextBox.hpp index 95c3cef8..0b89b21b 100644 --- a/src/graphics/ui/elements/TextBox.hpp +++ b/src/graphics/ui/elements/TextBox.hpp @@ -56,8 +56,7 @@ namespace gui { bool editable = true; bool autoresize = false; bool showLineNumbers = false; - bool markdown = false; - + std::string markup; std::string syntax; void stepLeft(bool shiftPressed, bool breakSelection); @@ -227,9 +226,9 @@ namespace gui { virtual void setOnUpPressed(const runnable &callback); virtual void setOnDownPressed(const runnable &callback); - virtual void setSyntax(const std::string& lang); + virtual void setSyntax(std::string_view lang); - virtual void setMarkdown(bool flag); - virtual bool isMarkdown() const; + virtual void setMarkup(std::string_view lang); + virtual const std::string& getMarkup() const; }; } diff --git a/src/graphics/ui/gui_xml.cpp b/src/graphics/ui/gui_xml.cpp index f26b62f4..22e3caf4 100644 --- a/src/graphics/ui/gui_xml.cpp +++ b/src/graphics/ui/gui_xml.cpp @@ -278,8 +278,8 @@ static std::shared_ptr readLabel( if (element.has("text-wrap")) { label->setTextWrapping(element.attr("text-wrap").asBool()); } - if (element.has("markdown")) { - label->setMarkdown(element.attr("markdown").asBool()); + if (element.has("markup")) { + label->setMarkup(element.attr("markup").getText()); } return label; } @@ -384,8 +384,8 @@ static std::shared_ptr readTextBox(UiXmlReader& reader, const xml::xmlel if (element.has("line-numbers")) { textbox->setShowLineNumbers(element.attr("line-numbers").asBool()); } - if (element.has("markdown")) { - textbox->setMarkdown(element.attr("markdown").asBool()); + if (element.has("markup")) { + textbox->setMarkup(element.attr("markup").getText()); } if (element.has("consumer")) { textbox->setTextConsumer(scripting::create_wstring_consumer(