public void SelectItem(ItemClass item, double x = 0, double y = 0) { if (item == null) { ActivePath = ""; } else { //var r = AppStateSettings.Instance.ViewDef.MapControl.Resolution; ActivePath = item.Path; if (item.Type == ItemType.folder || item.Type == ItemType.shortcut) { SelectFolder(item.Path); return; } if (item.Type == ItemType.web) { AppState.TriggerScriptCommand(this, "web:" + item.Path); //Process.Start(item.Path); } if (item.Type == ItemType.batch) { Process.Start(item.Path); } if (item.Type == ItemType.script) { var pth = new FileInfo(item.Path); if (pth.Directory != null) { // List<ItemClass> items = GetOrderedItemList(pth.Directory.FullName); var items = GetOrderedItemListCurrentFolder(pth.Directory.FullName) .Where(k => k.Type != ItemType.folder && k.Visible) .ToList(); var tempi = items.FirstOrDefault(k => k.Path == item.Path && k.Visible); var idx = items.IndexOf(tempi); PreviousVisibility = (!CanShowNextPrevious || idx == 0) ? Visibility.Collapsed : Visibility.Visible; NextVisibility = (!CanShowNextPrevious || items.Count == idx + 1) ? Visibility.Collapsed : Visibility.Visible; PlManager.AddItem(item); if (PlManager.Items.Count == 1) PlManager.Play(); else PlManager.Next(); } //PlManager.ClearList(); //var pth = new FileInfo(item.Path); //var items = GetOrderedItemList(pth.Directory.FullName); ////foreach(var itm in items) //// PlManager.AddItem(itm); //PlManager.AddItem(item); //var idx = items.IndexOf(items.FirstOrDefault(k=>k.Name == item.Name)); //PreviousVisibility = idx == 0 ? Visibility.Collapsed : Visibility.Visible; //NextVisibility = items.Count == idx + 1 ? Visibility.Collapsed : Visibility.Visible; //PlManager.Play(); ////PlManager.Next(); } //NextVisibility = Visibility.Visible; //PreviousVisibility = Visibility.Visible; } var a = new ItemSelectedArgs { Item = item }; if (item != null) item.Explorer = this; if (x != 0) a.Pos = new Point(x, y); OnActivePathChanged(a); }
private void OnActivePathChanged(ItemSelectedArgs a) { var handler = ActivePathChanged; if (handler != null) handler(this, a); }
private void MetroExplorerActivePathChanged(object sender, ItemSelectedArgs e) { if (e.Item == null || e.Item.Type == ItemType.folder) return; var d = e.Item.GetDocument(); if (d.FileType == FileTypes.unknown) return; var shortcut = RetreiveShortcut(e.Item.Path); var fe = shortcut != null && shortcut.ItemType == ItemType.qr ? FloatingHelpers.CreateFloatingElementWithQrBackside(d, shortcut.Path) : FloatingHelpers.CreateFloatingElement(d); if (e.Pos != new Point(0, 0)) { fe.AnimationSpeed = new TimeSpan(0, 0, 0, 0, 500); //fe.StartSize= new Size(0,0); fe.OriginPosition = e.Pos; fe.Height = 400; fe.OriginSize = new Size(0, 0); } fe.CanFullScreen = true; var x = ((view.ActualWidth - 600)/view.ActualWidth)*e.Pos.X + 300; fe.StartPosition = new Point(x, 300 + rnd.Next(200) - 100); fe.Title = e.Item.Name; AppState.FloatingItems.AddFloatingElement(fe); //if (e.Item.Type == ItemType.script) StartScript(e.Item); }