private List <FilesystemItem> GetFilesystemItems(List <string> paths) { var items = new List <FilesystemItem>(); foreach (var path in paths) { FilesystemItem item; items.Add(item = new FilesystemItem(path)); item.CompoundPresenter.Add(new SyncDelegatePresenter <Widget>(_ => { if (item.IsMouseOverThisOrDescendant()) { item.PrepareRendererState(); Renderer.DrawRect(Vector2.Zero, item.Size, Theme.Colors.DirectoryPickerItemHoveredBackground); } })); item.Updating += (float delta) => { if (item.Input.WasMouseReleased(0)) { window.Close(); openPath(item.FilesystemPath); } else if (item.Input.WasMouseReleased(1)) { SystemShellContextMenu.Instance.Show(item.FilesystemPath); } }; } return(items); }
private void RenderFSItemSelection(FilesystemItem filesystemItem) { if (selection.Contains(filesystemItem.FilesystemPath)) { filesystemItem.PrepareRendererState(); Renderer.DrawRect(Vector2.Zero, filesystemItem.Size, Theme.Colors.SelectedBackground); } else if (filesystemItem.IsMouseOverThisOrDescendant()) { filesystemItem.PrepareRendererState(); Renderer.DrawRect( Vector2.Zero, filesystemItem.Size, Theme.Colors.HoveredBackground); } if (filesystemItem == lastKeyboardRangeSelectionEndFilesystemItem) { filesystemItem.PrepareRendererState(); Renderer.DrawRectOutline(Vector2.Zero, filesystemItem.Size, Theme.Colors.SelectedBorder); } }