// // Solution.cs // //code taken in project https://sourceforge.net/projects/syncproj/ // no licence info was included, I took the liberty to modify it. // Author: // tarmopikaro // 2018 Jean-Philippe Bruyère //MIT-licenced using System; using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; using System.IO; using System.Linq; using System.Reflection; using Microsoft.Build.Construction; namespace Crow.Coding { public class StyleItemContainer { public object Value; public string Name; public StyleItemContainer(string name, object _value){ Name = name; Value = _value; } } public class StyleContainer : IValueChange { #region IValueChange implementation public event EventHandler ValueChanged; public virtual void NotifyValueChanged(string MemberName, object _value) { ValueChanged.Raise(this, new ValueChangeEventArgs(MemberName, _value)); } #endregion Style style; bool isExpanded; public string Name; public List Items; public bool IsExpanded { get { return isExpanded; } set { if (value == isExpanded) return; isExpanded = value; NotifyValueChanged ("IsExpanded", isExpanded); } } public StyleContainer(string name, Style _style){ Name = name; style = _style; Items = new List (); foreach (string k in style.Keys) { Items.Add(new StyleItemContainer(k, style[k])); } } } /// /// .sln loaded into class. /// public class Workspace: IValueChange { #region IValueChange implementation public event EventHandler ValueChanged; public virtual void NotifyValueChanged(string MemberName, object _value) { ValueChanged.Raise(this, new ValueChangeEventArgs(MemberName, _value)); } #endregion SolutionFile solutionFile; ProjectItem selectedItem = null; object selectedItemElement = null; ObservableList openedItems = new ObservableList(); ObservableList toolboxItems; public Dictionary Styling; public Dictionary DefaultTemplates; public List