diff options
| author | John T <[email protected]> | 2017-11-11 08:53:55 -0500 |
|---|---|---|
| committer | John T <[email protected]> | 2017-11-11 08:53:55 -0500 |
| commit | 97722fbe9d474adffbba0b92e9727c48a8205234 (patch) | |
| tree | 65dfe45bbfd194ddb534cc80107ab8e6d80cf5bc /ShiftOS.Main/ShiftOS/Apps/FileSkimmer.cs | |
| parent | a10440a45c40652b13e883aec832a0c8ded685e8 (diff) | |
| download | shiftos-rewind-97722fbe9d474adffbba0b92e9727c48a8205234.tar.gz shiftos-rewind-97722fbe9d474adffbba0b92e9727c48a8205234.tar.bz2 shiftos-rewind-97722fbe9d474adffbba0b92e9727c48a8205234.zip | |
Only 1/4 broken ShiftFS and WIP File Skimmer
Diffstat (limited to 'ShiftOS.Main/ShiftOS/Apps/FileSkimmer.cs')
| -rw-r--r-- | ShiftOS.Main/ShiftOS/Apps/FileSkimmer.cs | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/ShiftOS.Main/ShiftOS/Apps/FileSkimmer.cs b/ShiftOS.Main/ShiftOS/Apps/FileSkimmer.cs new file mode 100644 index 0000000..ae26b2d --- /dev/null +++ b/ShiftOS.Main/ShiftOS/Apps/FileSkimmer.cs @@ -0,0 +1,104 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Windows.Forms; +using ShiftOS.Engine.Misc; +using ShiftOS.Engine.ShiftFS; +using ShiftOS.Engine.WindowManager; +using System.Linq; + +namespace ShiftOS.Main.ShiftOS.Apps +{ + public partial class FileSkimmer : UserControl, IShiftWindowExtensions + { + ShiftDirectory _currentDirectory; + + public FileSkimmer() + { + InitializeComponent(); + } + + public void OnLoaded(ShiftWindow window) + { + Debug.WriteLine(ShiftFS.Drives.Count); + listView1.ShowDrivesList(window); + } + + void toolStripDropDownButton1_DropDownItemClicked(object sender, ToolStripItemClickedEventArgs e) + { + switch (e.ClickedItem.Text) + { + case "Small Icons": + listView1.View = View.SmallIcon; + break; + case "Details": + listView1.View = View.Details; + break; + case "List": + listView1.View = View.List; + break; + case "Tiles": + listView1.View = View.Tile; + break; + default: + listView1.View = View.LargeIcon; + break; + } + } + + void listView1_MouseDoubleClick(object sender, MouseEventArgs e) + { + var hit = listView1.HitTest(e.Location); + + if (!(hit.Item.Tag is ShiftDirectory dir)) return; + + listView1.Items.Clear(); + listView1.DisplayShiftFolder(dir); + _currentDirectory = dir; + breadcrumbsBar.Items.Add(new ToolStripButton(dir.Name) { Tag = dir }); + } + + void toolStripButton1_Click(object sender, EventArgs e) + { + listView1.Items.Clear(); + if (breadcrumbsBar.Items.Count > 1) + { + breadcrumbsBar.Items.Remove(breadcrumbsBar.Items.OfType<ToolStripItem>().Last()); + var dir = breadcrumbsBar.Items.OfType<ToolStripItem>().Last().Tag as ShiftDirectory; + _currentDirectory = dir; + listView1.DisplayShiftFolder(dir); + } + else + { + breadcrumbsBar.Items.Clear(); + listView1.ShowDrivesList(); + } + } + + void breadcrumbsBar_ItemClicked(object sender, ToolStripItemClickedEventArgs e) + { + var items = new List<ToolStripItem>(breadcrumbsBar.Items.OfType<ToolStripItem>() + .Where((_, y) => y > breadcrumbsBar.Items.IndexOf(e.ClickedItem))); + + foreach (var item in items) + { + breadcrumbsBar.Items.Remove(item); + } + + toolStripButton1_Click(null, EventArgs.Empty); + } + + void textFileToolStripMenuItem_Click(object sender, EventArgs e) + { + _currentDirectory.Add(new ShiftFile<string>("Text file")); + } + + void listView1_MouseClick(object sender, MouseEventArgs e) + { + if (e.Button == MouseButtons.Right) + { + contextMenuStrip1.Show(MousePosition); + } + } + } +} |
