Skip to content

Commit

Permalink
[Pipeline Tool] Upgrade Eto to 2.4.1 (#6208)
Browse files Browse the repository at this point in the history
  • Loading branch information
harry-cpp authored and dellis1972 committed Mar 1, 2018
1 parent dc23a64 commit 4217dc7
Show file tree
Hide file tree
Showing 15 changed files with 185 additions and 723 deletions.
12 changes: 3 additions & 9 deletions Build/Projects/Pipeline.definition
Expand Up @@ -31,6 +31,7 @@
</CustomDefinitions>
<FrameworkVersions>
<Platform Name="MacOS"><Version>v4.6.1</Version></Platform>
<Platform Name="Linux"><Version>v4.6.1</Version></Platform>
</FrameworkVersions>
<IncludeMonoRuntimeOnMac>True</IncludeMonoRuntimeOnMac>
<ImportPipelineTargets>True</ImportPipelineTargets>
Expand Down Expand Up @@ -93,9 +94,6 @@
<Compile Include="Styles.Windows.cs">
<Platforms>Windows</Platforms>
</Compile>
<Compile Include="Controls\ProjectControl.xwt.cs">
<Platforms>Windows</Platforms>
</Compile>

<!-- Native Linux -->
<EmbeddedResource Include="MainWindow.glade">
Expand All @@ -114,9 +112,6 @@
<Compile Include="Styles.Linux.cs">
<Platforms>Linux</Platforms>
</Compile>
<Compile Include="Controls\ProjectControl.xwt.cs">
<Platforms>Linux</Platforms>
</Compile>

<!-- Native Mac -->
<Compile Include="Global.Mac.cs">
Expand All @@ -126,9 +121,6 @@
<Compile Include="Styles.Mac.cs">
<Platforms>MacOS</Platforms>
</Compile>
<Compile Include="Controls\ProjectControl.eto.cs">
<Platforms>MacOS</Platforms>
</Compile>

<!-- GUI Controls -->
<Compile Include="Controls\PropertyCells\CellBase.cs" />
Expand Down Expand Up @@ -158,6 +150,8 @@
<Compile Include="Controls\PropertyGridTable.eto.cs">
<DependentUpon>PropertyGridTable.cs</DependentUpon>
</Compile>
<Compile Include="Controls\ProjectControl.eto.cs">
</Compile>

<!-- GUI Dialogs -->
<Compile Include="Dialogs\AddItemDialog.cs" />
Expand Down
143 changes: 105 additions & 38 deletions Build/Projects/PipelineReferences.definition

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion ThirdParty/Dependencies
Expand Up @@ -46,8 +46,8 @@ private void Toggle()
{
var obj = _objects[i];

oldValues.Add(_property.GetValue(obj));
_property.SetValue(obj, _values[i]);
oldValues.Add(_property.GetValue(obj, null));
_property.SetValue(obj, _values[i], null);
}

_view.UpdateProperties();
Expand Down
94 changes: 42 additions & 52 deletions Tools/Pipeline/Controls/ProjectControl.eto.cs
Expand Up @@ -12,44 +12,34 @@ namespace MonoGame.Tools.Pipeline
{
public partial class ProjectControl : Pad
{
private TreeView _treeView;
private TreeGridView _treeView;
private Bitmap _iconRoot;
private TreeItem _treeBase, _treeRoot;
private TreeGridItem _treeBase, _treeRoot;
private bool _rootExists;
private ContextMenu _contextMenu;

public ProjectControl()
{
Title = "Project";
_treeView = new TreeView();
_treeView.DataStore = _treeBase = new TreeItem();
_treeView = new TreeGridView();
_treeView.ShowHeader = false;
_treeView.AllowMultipleSelection = true;
_treeView.Columns.Add(new GridColumn { DataCell = new ImageTextCell(0, 1), AutoSize = true });
_treeView.DataStore = _treeBase = new TreeGridItem();
CreateContent(_treeView);

_iconRoot = Bitmap.FromResource("TreeView.Root.png");

_treeView.SelectionChanged += TreeView_SelectedItemChanged;
_treeView.Expanded += TreeView1_SaveExpanded;
_treeView.Collapsed += TreeView1_SaveExpanded;
}

private void TreeView1_SaveExpanded(object sender, TreeViewItemEventArgs e)
{
// This fixes a bug with Eto Froms
e.Item.Expanded = e.Item.Expanded;
}

private void TreeView_SelectedItemChanged(object sender, EventArgs e)
{
var items = new List<IProjectItem>();

var item = _treeView.SelectedItem as TreeItem;
if (item != null)
{
var tag = item.Tag as IProjectItem;

if (tag != null)
items.Add(tag);
}
foreach (TreeGridItem selected in _treeView.SelectedItems)
if (selected.Tag is IProjectItem)
items.Add(selected.Tag as IProjectItem);

PipelineController.Instance.SelectionChanged(items);
}
Expand All @@ -68,26 +58,26 @@ public void SetRoot(IProjectItem item)
{
if (item == null)
{
_treeView.DataStore = _treeBase = new TreeItem();
_treeView.DataStore = _treeBase = new TreeGridItem();
_rootExists = false;
_treeView.ContextMenu = null;
return;
}

if (!_rootExists)
{
_treeRoot = new TreeItem();
_treeRoot = new TreeGridItem();
_treeBase.Children.Add(_treeRoot);

_rootExists = true;
}

_treeRoot.Image = _iconRoot;
_treeRoot.Text = item.Name;
_treeRoot.SetValue(0, _iconRoot);
_treeRoot.SetValue(1, item.Name);
_treeRoot.Tag = item;
_treeRoot.Expanded = true;

_treeView.RefreshItem(_treeRoot);
_treeView.ReloadItem(_treeRoot);
_treeView.ContextMenu = _contextMenu;
}

Expand All @@ -96,7 +86,7 @@ public void AddItem(IProjectItem citem)
AddItem(_treeRoot, citem, citem.OriginalPath, "");
}

public void AddItem(TreeItem root, IProjectItem citem, string path, string currentPath)
public void AddItem(TreeGridItem root, IProjectItem citem, string path, string currentPath)
{
var split = path.Split('/');
var item = GetorAddItem(root, split.Length > 1 ? new DirectoryItem(split[0], currentPath) { Exists = citem.Exists } : citem);
Expand All @@ -107,27 +97,27 @@ public void AddItem(TreeItem root, IProjectItem citem, string path, string curre

public void RemoveItem(IProjectItem item)
{
TreeItem titem;
TreeGridItem titem;
if (FindItem(_treeRoot, item.OriginalPath, out titem))
{
var parrent = titem.Parent as TreeItem;
var parrent = titem.Parent as TreeGridItem;
parrent.Children.Remove(titem);
_treeView.RefreshItem(parrent);
_treeView.ReloadItem(parrent);
}
}

public void UpdateItem(IProjectItem item)
{
TreeItem titem;
TreeGridItem titem;
if (FindItem(_treeRoot, item.OriginalPath, out titem))
{
var parrent = titem.Parent as TreeItem;
var parrent = titem.Parent as TreeGridItem;
var selected = _treeView.SelectedItem;

if (item.ExpandToThis)
{
parrent.Expanded = true;
_treeView.RefreshItem(parrent);
_treeView.ReloadItem(parrent);
item.ExpandToThis = false;
}

Expand All @@ -143,7 +133,7 @@ public void UpdateItem(IProjectItem item)
}
}

private void SetExists(TreeItem titem, bool exists)
private void SetExists(TreeGridItem titem, bool exists)
{
var item = titem.Tag as IProjectItem;

Expand All @@ -158,22 +148,22 @@ private void SetExists(TreeItem titem, bool exists)

while (enumerator.MoveNext())
{
var citem = enumerator.Current as TreeItem;
var citem = enumerator.Current as TreeGridItem;
if (!(citem.Tag as IProjectItem).Exists)
fex = false;
}

titem.Image = Global.GetEtoDirectoryIcon(fex);
titem.SetValue(0, Global.GetEtoDirectoryIcon(fex));
}
else
titem.Image = Global.GetEtoFileIcon(PipelineController.Instance.GetFullPath(item.OriginalPath), exists);
titem.SetValue(0, Global.GetEtoFileIcon(PipelineController.Instance.GetFullPath(item.OriginalPath), exists));

var parrent = titem.Parent as TreeItem;
_treeView.RefreshItem(parrent);
var parrent = titem.Parent as TreeGridItem;
_treeView.ReloadItem(parrent);
SetExists(parrent, exists);
}

private bool FindItem(TreeItem root, string path, out TreeItem item)
private bool FindItem(TreeGridItem root, string path, out TreeGridItem item)
{
var split = path.Split('/');

Expand All @@ -188,15 +178,15 @@ private bool FindItem(TreeItem root, string path, out TreeItem item)
return false;
}

private bool GetItem(TreeItem root, string text, out TreeItem item)
private bool GetItem(TreeGridItem root, string text, out TreeGridItem item)
{
var enumerator = root.Children.GetEnumerator();

while (enumerator.MoveNext())
{
var citem = enumerator.Current as TreeItem;
var citem = enumerator.Current as TreeGridItem;

if (citem.Text == text)
if (citem.GetValue(1).ToString() == text)
{
item = citem;
return true;
Expand All @@ -207,7 +197,7 @@ private bool GetItem(TreeItem root, string text, out TreeItem item)
return false;
}

private TreeItem GetorAddItem(TreeItem root, IProjectItem item)
private TreeGridItem GetorAddItem(TreeGridItem root, IProjectItem item)
{
var enumerator = root.Children.GetEnumerator();
var folder = item is DirectoryItem;
Expand All @@ -217,41 +207,41 @@ private TreeItem GetorAddItem(TreeItem root, IProjectItem item)

while (enumerator.MoveNext())
{
var citem = enumerator.Current as TreeItem;
var citem = enumerator.Current as TreeGridItem;

if (citem.Text == item.Name)
if (citem.GetValue(1).ToString() == item.Name)
return citem;

if (folder)
{
if (citem.Tag is DirectoryItem)
items.Add(citem.Text);
items.Add(citem.GetValue(1).ToString());
}
else
{
if (citem.Tag is DirectoryItem)
pos++;
else
items.Add(citem.Text);
items.Add(citem.GetValue(1).ToString());
}
}

items.Add(item.Name);
items.Sort();
pos += items.IndexOf(item.Name);

var ret = new TreeItem();
var ret = new TreeGridItem();

if (item is DirectoryItem)
ret.Image = Global.GetEtoDirectoryIcon(item.Exists);
ret.SetValue(0, Global.GetEtoDirectoryIcon(item.Exists));
else
ret.Image = Global.GetEtoFileIcon(PipelineController.Instance.GetFullPath(item.OriginalPath), item.Exists);
ret.SetValue(0, Global.GetEtoFileIcon(PipelineController.Instance.GetFullPath(item.OriginalPath), item.Exists));

ret.Text = item.Name;
ret.SetValue(1, item.Name);
ret.Tag = item;

root.Children.Insert(pos, ret);
_treeView.RefreshItem(root);
_treeView.ReloadItem(root);

return ret;
}
Expand Down

0 comments on commit 4217dc7

Please sign in to comment.