From a70b338b3c13b77cdc01e7e3eccc02fda60fb5f9 Mon Sep 17 00:00:00 2001 From: Michael Becker Date: Wed, 22 May 2019 18:45:17 -0400 Subject: [PATCH] Start working seriously on UWT --- .../UWT/UniversalEditor.Engines.UWT/Editor.cs | 53 ++++++++++++++++ .../UniversalEditor.Engines.UWT/MainWindow.cs | 63 +++++++++++++------ .../UniversalEditor.Engines.UWT/UWTEngine.cs | 2 +- .../UniversalEditor.Engines.UWT.csproj | 4 ++ 4 files changed, 101 insertions(+), 21 deletions(-) create mode 100644 CSharp/Engines/UWT/UniversalEditor.Engines.UWT/Editor.cs diff --git a/CSharp/Engines/UWT/UniversalEditor.Engines.UWT/Editor.cs b/CSharp/Engines/UWT/UniversalEditor.Engines.UWT/Editor.cs new file mode 100644 index 00000000..56c8b194 --- /dev/null +++ b/CSharp/Engines/UWT/UniversalEditor.Engines.UWT/Editor.cs @@ -0,0 +1,53 @@ +using System; +using UniversalEditor.UserInterface; +using UniversalWidgetToolkit; + +namespace UniversalEditor.Engines.UWT +{ + public class Editor : Control, IEditorImplementation + { + public Editor() + { + } + + public string Title => throw new NotImplementedException(); + + public event ToolboxItemEventHandler ToolboxItemAdded; + public event ToolboxItemEventHandler ToolboxItemSelected; + + public void Copy() + { + throw new NotImplementedException(); + } + + public void Delete() + { + throw new NotImplementedException(); + } + + public EditorReference MakeReference() + { + throw new NotImplementedException(); + } + + public void Paste() + { + throw new NotImplementedException(); + } + + public void Redo() + { + throw new NotImplementedException(); + } + + public bool SelectToolboxItem(ToolboxItem item) + { + throw new NotImplementedException(); + } + + public void Undo() + { + throw new NotImplementedException(); + } + } +} diff --git a/CSharp/Engines/UWT/UniversalEditor.Engines.UWT/MainWindow.cs b/CSharp/Engines/UWT/UniversalEditor.Engines.UWT/MainWindow.cs index c5011a15..a5d5a96d 100644 --- a/CSharp/Engines/UWT/UniversalEditor.Engines.UWT/MainWindow.cs +++ b/CSharp/Engines/UWT/UniversalEditor.Engines.UWT/MainWindow.cs @@ -9,6 +9,8 @@ using UniversalWidgetToolkit.Controls.Docking; using UniversalWidgetToolkit.Dialogs; using UniversalWidgetToolkit.Input.Keyboard; +// TODO: We need to work on UWT signaling to native objects... + namespace UniversalEditor.Engines.UWT { public class MainWindow : Window, IHostApplicationWindow @@ -33,19 +35,8 @@ namespace UniversalEditor.Engines.UWT tbsDocumentTabs = new DockingContainer (); - Container ctStartPage = new Container(); - - Label lblStartPage = new Label(); - lblStartPage.Text = "this is a start page"; - ctStartPage.Controls.Add(lblStartPage); - - InitDocTab("Start Page", ctStartPage); - - TextBox txt = new TextBox(); - txt.Multiline = true; - - InitDocTab("file1.txt", txt); - InitDocTab("Archive3.zip", null); + InitStartPage(); + InitEditorPage("test.txt"); this.Controls.Add(tbsDocumentTabs, new UniversalWidgetToolkit.Layouts.BoxLayout.Constraints(true, true, 0, UniversalWidgetToolkit.Layouts.BoxLayout.PackType.End)); @@ -54,6 +45,21 @@ namespace UniversalEditor.Engines.UWT this.Text = "Universal Editor"; } + private void InitEditorPage(string title) + { + TextBox txt = new TextBox(); + txt.Text = "Testing for " + title; + txt.Multiline = true; + + InitDocTab(title, txt); + } + private void InitStartPage() + { + Label lblStartPage = new Label(); + lblStartPage.Text = "this is a start page"; + InitDocTab("Start Page", lblStartPage); + } + private void InitDocTab(string title, Control content) { DockingItem item = new DockingItem(title, content); @@ -298,9 +304,7 @@ namespace UniversalEditor.Engines.UWT public void OpenFile (params Document[] documents) { foreach (Document doc in documents) { - TabPage tab = new TabPage (); - tab.Text = doc.Title; - // tbsDocumentTabs.TabPages.Add (tab); + InitEditorPage(doc.Title); } } @@ -369,9 +373,17 @@ namespace UniversalEditor.Engines.UWT throw new NotImplementedException (); } + private System.Collections.Generic.List Windows = new System.Collections.Generic.List(); public void CloseFile () { - throw new NotImplementedException (); + if (tbsDocumentTabs.CurrentItem != null) + { + tbsDocumentTabs.Items.Remove(tbsDocumentTabs.CurrentItem); + } + if (this.Windows.Count == 0) + { + this.Destroy(); + } } public void CloseProject () @@ -386,12 +398,23 @@ namespace UniversalEditor.Engines.UWT public IEditorImplementation GetCurrentEditor () { - return null; + DockingItem curitem = tbsDocumentTabs.CurrentItem; + if (curitem == null) return null; + + Editor editor = (curitem.ChildControl as Editor); + if (editor == null) return null; + + return editor; } public bool ShowOptionsDialog () { - throw new NotImplementedException (); + OptionsDialog dlg = new OptionsDialog(); + if (dlg.ShowDialog() == DialogResult.OK) + { + return true; + } + return false; } public void ToggleMenuItemEnabled (string menuItemName, bool enabled) @@ -426,7 +449,7 @@ namespace UniversalEditor.Engines.UWT public void ShowStartPage () { - throw new NotImplementedException (); + InitStartPage(); } public void SetWindowListVisible (bool visible, bool modal) diff --git a/CSharp/Engines/UWT/UniversalEditor.Engines.UWT/UWTEngine.cs b/CSharp/Engines/UWT/UniversalEditor.Engines.UWT/UWTEngine.cs index 8330000b..ee5af6e5 100644 --- a/CSharp/Engines/UWT/UniversalEditor.Engines.UWT/UWTEngine.cs +++ b/CSharp/Engines/UWT/UniversalEditor.Engines.UWT/UWTEngine.cs @@ -26,7 +26,7 @@ namespace UniversalEditor.Engines.UWT MainWindow mw = new MainWindow (); LastWindow = mw; mw.Show (); - return mw; + return mw; } public override void ShowAboutDialog (DataFormatReference dfr) { diff --git a/CSharp/Engines/UWT/UniversalEditor.Engines.UWT/UniversalEditor.Engines.UWT.csproj b/CSharp/Engines/UWT/UniversalEditor.Engines.UWT/UniversalEditor.Engines.UWT.csproj index 182dfb24..b504f1c5 100644 --- a/CSharp/Engines/UWT/UniversalEditor.Engines.UWT/UniversalEditor.Engines.UWT.csproj +++ b/CSharp/Engines/UWT/UniversalEditor.Engines.UWT/UniversalEditor.Engines.UWT.csproj @@ -35,6 +35,7 @@ + @@ -55,4 +56,7 @@ UniversalEditor.UserInterface + + + \ No newline at end of file