From e01fb1337cb808e50cd5e99003f9da2da6e0fced Mon Sep 17 00:00:00 2001 From: Dmitry Stepanov Date: Sun, 4 Oct 2026 12:24:09 +0300 Subject: [PATCH] use markdown visualizer in doc viewer --- editor/src/lib.rs | 2 +- editor/src/utils/doc.rs | 40 ++++++++++++++-------------------------- 2 files changed, 15 insertions(+), 27 deletions(-) diff --git a/editor/src/lib.rs b/editor/src/lib.rs index e3df46842..da8ae6f80 100644 --- a/editor/src/lib.rs +++ b/editor/src/lib.rs @@ -2766,7 +2766,7 @@ impl Editor { } Message::ShowDocumentation(doc) => { self.doc_window - .open(doc, self.engine.user_interfaces.first()); + .open(doc, self.engine.user_interfaces.first_mut()); } Message::SaveLayout => { self.save_layout(); diff --git a/editor/src/utils/doc.rs b/editor/src/utils/doc.rs index 61d478c9a..1686ba582 100644 --- a/editor/src/utils/doc.rs +++ b/editor/src/utils/doc.rs @@ -21,26 +21,22 @@ use crate::fyrox::{ core::pool::Handle, gui::{ - formatted_text::WrapMode, - scroll_viewer::ScrollViewerBuilder, - text::TextMessage, - text_box::TextBoxBuilder, + markdown, + scroll_viewer::{ScrollViewer, ScrollViewerBuilder, ScrollViewerMessage}, widget::WidgetBuilder, - window::{WindowBuilder, WindowMessage, WindowTitle}, - BuildContext, Thickness, UserInterface, + window::{Window, WindowAlignment, WindowBuilder, WindowMessage, WindowTitle}, + BuildContext, UserInterface, }, }; -use fyrox::gui::text_box::TextBox; -use fyrox::gui::window::{Window, WindowAlignment}; pub struct DocWindow { pub window: Handle, - text: Handle, + scroll_viewer: Handle, } impl DocWindow { pub fn new(ctx: &mut BuildContext) -> Self { - let text; + let scroll_viewer = ScrollViewerBuilder::new(WidgetBuilder::new()).build(ctx); let window = WindowBuilder::new( WidgetBuilder::new() .with_name("DocPanel") @@ -48,26 +44,18 @@ impl DocWindow { .with_height(300.0), ) .open(false) - .with_content( - ScrollViewerBuilder::new(WidgetBuilder::new()) - .with_content({ - text = TextBoxBuilder::new( - WidgetBuilder::new().with_margin(Thickness::uniform(3.0)), - ) - .with_editable(false) - .with_wrap(WrapMode::Word) - .build(ctx); - text - }) - .build(ctx), - ) + .with_content(scroll_viewer) .with_title(WindowTitle::text("Documentation")) .build(ctx); - Self { window, text } + Self { + window, + scroll_viewer, + } } - pub fn open(&self, doc: String, ui: &UserInterface) { - ui.send(self.text, TextMessage::Text(doc)); + pub fn open(&self, doc: String, ui: &mut UserInterface) { + let content = markdown::markdown_to_visual_tree(ui, doc); + ui.send(self.scroll_viewer, ScrollViewerMessage::Content(content)); ui.send( self.window, WindowMessage::Open {