From af5633834703625f9942bb6119f9a67a7e27567e Mon Sep 17 00:00:00 2001 From: Misaki Date: Sat, 28 Mar 2026 22:50:28 +0900 Subject: [PATCH] feat(docking): add floating window support --- .../View/Controls/Docking/DockingLayout.cs | 3 ++- .../View/Controls/Docking/FloatingWindow.cs | 22 +++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 src/Editor/Ghost.Editor/View/Controls/Docking/FloatingWindow.cs diff --git a/src/Editor/Ghost.Editor/View/Controls/Docking/DockingLayout.cs b/src/Editor/Ghost.Editor/View/Controls/Docking/DockingLayout.cs index 0502150..5eae0c4 100644 --- a/src/Editor/Ghost.Editor/View/Controls/Docking/DockingLayout.cs +++ b/src/Editor/Ghost.Editor/View/Controls/Docking/DockingLayout.cs @@ -261,6 +261,7 @@ public class DockingLayout : Control internal void CreateFloatingWindow(DockDocument doc) { - // To be implemented in Task 6 + var window = new FloatingWindow(doc); + window.Activate(); } } diff --git a/src/Editor/Ghost.Editor/View/Controls/Docking/FloatingWindow.cs b/src/Editor/Ghost.Editor/View/Controls/Docking/FloatingWindow.cs new file mode 100644 index 0000000..289595e --- /dev/null +++ b/src/Editor/Ghost.Editor/View/Controls/Docking/FloatingWindow.cs @@ -0,0 +1,22 @@ +using Microsoft.UI.Xaml; + +namespace Ghost.Editor.View.Controls.Docking; + +public class FloatingWindow : Window +{ + public FloatingWindow(DockDocument document) + { + var layout = new DockingLayout(); + var group = new DockGroup(); + group.AddChild(document); + + var panel = new DockPanel(); + panel.AddChild(group); + layout.RootPanel = panel; + + Content = layout; + + // Basic window setup + AppWindow.Resize(new Windows.Graphics.SizeInt32(800, 600)); + } +}