Editor/XGUIDesigner.cs
using Editor;
using Editor.PanelInspector;
using System.Collections.Generic;
namespace XGUI;
public static class XGUIMenu
{
[Menu( "Editor", "XGUI/Designer" )]
public static void OpenMyMenu()
{
var b = new XGUIDesigner();
}
}
public class XGUIDesigner : DockWindow
{/*
private readonly UndoStack _undoStack = new();
private Option _undoOption;
private Option _redoOption;
private Option _undoMenuOption;
private Option _redoMenuOption;*/
private Menu _recentFilesMenu;
private readonly List<string> _recentFiles = new();
XGUIView _view;
PanelInspectorWidget _inspector;
Widget _widget;
public XGUIDesigner()
{
DeleteOnClose = true;
Title = "XGUI Window Designer";
Size = new Vector2( 1280, 720 );
//_graph = new();
//CreateToolBar();
//_recentFiles = FileSystem.Temporary.ReadJsonOrDefault( "xguiwindowdesigner_recentfiles.json", _recentFiles )
// .Where( x => System.IO.File.Exists( x ) ).ToList();
CreateUI();
Show();
//CreateNew();
}
protected override bool OnClose()
{
_view.CleanUp();
return base.OnClose();
}
public void CreateUI()
{
BuildMenuBar();
_view = new XGUIView();
_view.SetSizeMode( SizeMode.Expand, SizeMode.Expand );
var b = new Widget();
_inspector = new PanelInspectorWidget( b );
this.DockManager.AddDock( null, _view );
this.DockManager.AddDock( null, b, split: 0.21f );
}
public void BuildMenuBar()
{
var file = MenuBar.AddMenu( "File" );
file.AddOption( "New", "common/new.png", New, "Ctrl+N" ).StatusText = "New Graph";
file.AddOption( "Open", "common/open.png", Open, "Ctrl+O" ).StatusText = "Open Graph";
file.AddOption( "Save", "common/save.png", () => Save(), "Ctrl+S" ).StatusText = "Save Graph";
file.AddOption( "Save As...", "common/save.png", () => Save( true ), "Ctrl+Shift+S" ).StatusText = "Save Graph As...";
file.AddSeparator();
_recentFilesMenu = file.AddMenu( "Recent Files" );
file.AddSeparator();
file.AddOption( "Quit", null, Close, "Ctrl+Q" ).StatusText = "Quit";
var edit = MenuBar.AddMenu( "Edit" );/*
_undoMenuOption = edit.AddOption( "Undo", "undo", Undo, "Ctrl+Z" );
_redoMenuOption = edit.AddOption( "Redo", "redo", Redo, "Ctrl+Y" );
_undoMenuOption.Enabled = _undoStack.CanUndo;
_redoMenuOption.Enabled = _undoStack.CanRedo;*/
edit.AddSeparator();
edit.AddOption( "Cut", "common/cut.png", CutSelection, "Ctrl+X" );
edit.AddOption( "Copy", "common/copy.png", CopySelection, "Ctrl+C" );
edit.AddOption( "Paste", "common/paste.png", PasteSelection, "Ctrl+V" );
edit.AddOption( "Select All", "select_all", SelectAll, "Ctrl+A" );
}
void New()
{
}
void Open()
{
}
void Save( bool saveas = false )
{
}
void CutSelection()
{
}
void CopySelection()
{
}
void PasteSelection()
{
}
void SelectAll()
{
}
}