Пример #1
0
        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);
        }
Пример #2
0
 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);
     }
 }