use markdown visualizer in doc viewer

This commit is contained in:
Dmitry Stepanov
2026-10-04 12:24:09 +03:00
parent cc6c564877
commit e01fb1337c
2 changed files with 15 additions and 27 deletions
+1 -1
View File
@@ -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();
+14 -26
View File
@@ -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<Window>,
text: Handle<TextBox>,
scroll_viewer: Handle<ScrollViewer>,
}
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 {