From 3a638f60e08a017785bc0dbf4fae447da5ab5315 Mon Sep 17 00:00:00 2001 From: Michael Becker Date: Sun, 25 Jun 2023 00:27:26 -0400 Subject: [PATCH] allow stock icons in document explorer nodes --- .../EditorDocumentExplorerNode.cs | 6 +++++- .../Panels/DocumentExplorerPanel.cs | 7 ++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/Libraries/UniversalEditor.UserInterface/EditorDocumentExplorerNode.cs b/Libraries/UniversalEditor.UserInterface/EditorDocumentExplorerNode.cs index 0308ec40..770805a4 100644 --- a/Libraries/UniversalEditor.UserInterface/EditorDocumentExplorerNode.cs +++ b/Libraries/UniversalEditor.UserInterface/EditorDocumentExplorerNode.cs @@ -38,15 +38,19 @@ namespace UniversalEditor.UserInterface } } - public EditorDocumentExplorerNode(string text) + public EditorDocumentExplorerNode(string text) : this(text, StockType.None) { } + public EditorDocumentExplorerNode(string text, StockType stockType) { Text = text; + StockType = stockType; Nodes = new EditorDocumentExplorerNodeCollection(); } public EditorDocumentExplorerNode.EditorDocumentExplorerNodeCollection Nodes { get; private set; } = null; public string Text { get; set; } + public StockType StockType { get; set; } = StockType.None; + private Dictionary _ExtraData = new Dictionary(); public T GetExtraData(string key, T defaultValue = default(T)) { diff --git a/Libraries/UniversalEditor.UserInterface/Panels/DocumentExplorerPanel.cs b/Libraries/UniversalEditor.UserInterface/Panels/DocumentExplorerPanel.cs index a445be52..552c5c93 100644 --- a/Libraries/UniversalEditor.UserInterface/Panels/DocumentExplorerPanel.cs +++ b/Libraries/UniversalEditor.UserInterface/Panels/DocumentExplorerPanel.cs @@ -22,10 +22,10 @@ namespace UniversalEditor.UserInterface.Panels lv.BeforeContextMenu += lv_BeforeContextMenu; lv.SelectionChanged += lv_SelectionChanged; - tm = new DefaultTreeModel(new Type[] { typeof(string) }); + tm = new DefaultTreeModel(new Type[] { typeof(string), typeof(MBS.Framework.UserInterface.Drawing.Image) }); lv.Model = tm; lv.HeaderStyle = ColumnHeaderStyle.None; - lv.Columns.Add(new ListViewColumn("Item", new CellRenderer[] { new CellRendererText(tm.Columns[0]) })); + lv.Columns.Add(new ListViewColumn("Item", new CellRenderer[] { new CellRendererImage(tm.Columns[1]), new CellRendererText(tm.Columns[0]) })); Controls.Add(lv, new BoxLayout.Constraints(true, true)); } @@ -69,7 +69,8 @@ namespace UniversalEditor.UserInterface.Panels { TreeModelRow row = new TreeModelRow(new TreeModelRowColumn[] { - new TreeModelRowColumn(tm.Columns[0], node.Text) + new TreeModelRowColumn(tm.Columns[0], node.Text), + new TreeModelRowColumn(tm.Columns[1], MBS.Framework.UserInterface.Drawing.Image.FromStock(node.StockType, 16)) }); row.SetExtraData("node", node); for (int i = 0; i < node.Nodes.Count; i++)