Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/ClusterM/hakchi2.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexey 'Cluster' Avdyukhin <clusterrr@clusterrr.com>2017-02-09 05:22:59 +0300
committerAlexey 'Cluster' Avdyukhin <clusterrr@clusterrr.com>2017-02-09 05:22:59 +0300
commit7bd3f9ccccbd52496c063b03564c2d5ee8458454 (patch)
treef4f997468b4144164abd3bfe2d7e84488d108baf /NesMenuCollection.cs
parent8e50d166c21dcc8a69a808a31e49d4727b9847e8 (diff)
Unsplit feature
Diffstat (limited to 'NesMenuCollection.cs')
-rw-r--r--NesMenuCollection.cs30
1 files changed, 27 insertions, 3 deletions
diff --git a/NesMenuCollection.cs b/NesMenuCollection.cs
index 95e4294b..ddbc8408 100644
--- a/NesMenuCollection.cs
+++ b/NesMenuCollection.cs
@@ -61,8 +61,12 @@ namespace com.clusterrr.hakchi_gui
root = new NesMenuCollection();
root.AddRange(this.Where(o => !(o is NesDefaultGame)));
this.RemoveAll(o => !(o is NesDefaultGame));
- this.Add(new NesMenuFolder() { Name = Resources.FolderNameMoreGames,
- Position = NesMenuFolder.Priority.Rightmost, ChildMenuCollection = root });
+ this.Add(new NesMenuFolder()
+ {
+ Name = Resources.FolderNameMoreGames,
+ Position = NesMenuFolder.Priority.Rightmost,
+ ChildMenuCollection = root
+ });
}
var sorted = root.OrderBy(o => o.Name);
@@ -159,7 +163,7 @@ namespace com.clusterrr.hakchi_gui
foreach (var letter in letters.Keys)
if (letters[letter].Count > 0)
{
- string folderImageId = "folder_"+letter.ToString().ToLower();
+ string folderImageId = "folder_" + letter.ToString().ToLower();
if (letter < 'A' || letter > 'Z') folderImageId = "folder_number";
var folder = new NesMenuFolder() { ChildMenuCollection = letters[letter], Name = letter.ToString(), Position = NesMenuFolder.Priority.Right, ImageId = folderImageId };
if (style == SplitStyle.FoldersAlphabetic_PagesEqual)
@@ -190,6 +194,26 @@ namespace com.clusterrr.hakchi_gui
}
}
+ public void Unsplit(List<NesMenuCollection> ignore = null)
+ {
+ if (ignore == null)
+ ignore = new List<NesMenuCollection>();
+ ignore.Add(this);
+ var newElements = new List<INesMenuElement>();
+ var oldElements = new List<INesMenuElement>();
+ foreach (NesMenuFolder item in from i in this where i is NesMenuFolder select i)
+ {
+ if (ignore.Contains(item.ChildMenuCollection))
+ continue;
+ item.ChildMenuCollection.Unsplit(ignore);
+ newElements.AddRange(item.ChildMenuCollection);
+ item.ChildMenuCollection.Clear();
+ oldElements.Add(item);
+ }
+ this.AddRange(newElements);
+ this.RemoveAll(o => oldElements.Contains(o));
+ }
+
void TrimFolderNames(NesMenuCollection nesMenuCollection)
{
const int minChars = 3;