示例#1
0
        private void load()
        {
            selectionBox             = composer.CreateSelectionBox();
            selectionBox.DeselectAll = deselectAll;

            var dragBox = new DragBox(select);

            dragBox.DragEnd += () => selectionBox.UpdateVisibility();

            InternalChildren = new[]
            {
                dragBox,
                selectionBox,
                selectionBlueprints = new SelectionBlueprintContainer {
                    RelativeSizeAxes = Axes.Both
                },
                placementBlueprintContainer = new Container <PlacementBlueprint> {
                    RelativeSizeAxes = Axes.Both
                },
                dragBox.CreateProxy()
            };

            foreach (var obj in composer.HitObjects)
            {
                AddBlueprintFor(obj);
            }
        }
示例#2
0
        private void load()
        {
            SelectionHandler             = CreateSelectionHandler();
            SelectionHandler.DeselectAll = deselectAll;

            AddRangeInternal(new[]
            {
                DragBox = CreateDragBox(selectBlueprintsFromDragRectangle),
                SelectionHandler,
                SelectionBlueprints = CreateSelectionBlueprintContainer(),
                SelectionHandler.CreateProxy(),
                DragBox.CreateProxy().With(p => p.Depth = float.MinValue)
            });
        }
示例#3
0
        private void load()
        {
            SelectionHandler             = CreateSelectionHandler();
            SelectionHandler.DeselectAll = deselectAll;

            AddRangeInternal(new[]
            {
                DragBox = CreateDragBox(selectBlueprintsFromDragRectangle),
                SelectionHandler,
                SelectionBlueprints = CreateSelectionBlueprintContainer(),
                SelectionHandler.CreateProxy(),
                DragBox.CreateProxy().With(p => p.Depth = float.MinValue)
            });

            // For non-pooled rulesets, hitobjects are already present in the playfield which allows the blueprints to be loaded in the async context.
            if (Composer != null)
            {
                foreach (var obj in Composer.HitObjects)
                {
                    addBlueprintFor(obj.HitObject);
                }
            }

            selectedHitObjects.BindTo(Beatmap.SelectedHitObjects);
            selectedHitObjects.CollectionChanged += (selectedObjects, args) =>
            {
                switch (args.Action)
                {
                case NotifyCollectionChangedAction.Add:
                    foreach (var o in args.NewItems)
                    {
                        SelectionBlueprints.FirstOrDefault(b => b.HitObject == o)?.Select();
                    }
                    break;

                case NotifyCollectionChangedAction.Remove:
                    foreach (var o in args.OldItems)
                    {
                        SelectionBlueprints.FirstOrDefault(b => b.HitObject == o)?.Deselect();
                    }

                    break;
                }
            };
        }
示例#4
0
        private void load()
        {
            selectionHandler             = CreateSelectionHandler();
            selectionHandler.DeselectAll = deselectAll;

            AddRangeInternal(new[]
            {
                DragBox = CreateDragBox(select),
                selectionHandler,
                selectionBlueprints = new SelectionBlueprintContainer {
                    RelativeSizeAxes = Axes.Both
                },
                DragBox.CreateProxy().With(p => p.Depth = float.MinValue)
            });

            foreach (var obj in beatmap.HitObjects)
            {
                AddBlueprintFor(obj);
            }
        }
示例#5
0
        private void load()
        {
            SelectionHandler             = CreateSelectionHandler();
            SelectionHandler.DeselectAll = deselectAll;

            AddRangeInternal(new[]
            {
                DragBox = CreateDragBox(selectBlueprintsFromDragRectangle),
                SelectionHandler,
                SelectionBlueprints = CreateSelectionBlueprintContainer(),
                SelectionHandler.CreateProxy(),
                DragBox.CreateProxy().With(p => p.Depth = float.MinValue)
            });

            foreach (var obj in Beatmap.HitObjects)
            {
                AddBlueprintFor(obj);
            }

            selectedHitObjects.BindTo(Beatmap.SelectedHitObjects);
            selectedHitObjects.CollectionChanged += (selectedObjects, args) =>
            {
                switch (args.Action)
                {
                case NotifyCollectionChangedAction.Add:
                    foreach (var o in args.NewItems)
                    {
                        SelectionBlueprints.FirstOrDefault(b => b.HitObject == o)?.Select();
                    }
                    break;

                case NotifyCollectionChangedAction.Remove:
                    foreach (var o in args.OldItems)
                    {
                        SelectionBlueprints.FirstOrDefault(b => b.HitObject == o)?.Deselect();
                    }

                    break;
                }
            };
        }
示例#6
0
        private void load()
        {
            selectionHandler             = CreateSelectionHandler();
            selectionHandler.DeselectAll = deselectAll;

            AddRangeInternal(new[]
            {
                DragBox = CreateDragBox(select),
                selectionHandler,
                selectionBlueprints = CreateSelectionBlueprintContainer(),
                DragBox.CreateProxy().With(p => p.Depth = float.MinValue)
            });

            foreach (var obj in beatmap.HitObjects)
            {
                AddBlueprintFor(obj);
            }

            selectedHitObjects.BindTo(beatmap.SelectedHitObjects);
            selectedHitObjects.ItemsAdded += objects =>
            {
                foreach (var o in objects)
                {
                    selectionBlueprints.FirstOrDefault(b => b.HitObject == o)?.Select();
                }

                SelectionChanged?.Invoke(selectedHitObjects);
            };

            selectedHitObjects.ItemsRemoved += objects =>
            {
                foreach (var o in objects)
                {
                    selectionBlueprints.FirstOrDefault(b => b.HitObject == o)?.Deselect();
                }

                SelectionChanged?.Invoke(selectedHitObjects);
            };
        }
示例#7
0
        private void load()
        {
            selectionHandler             = composer.CreateSelectionHandler();
            selectionHandler.DeselectAll = deselectAll;

            InternalChildren = new[]
            {
                dragBox = new DragBox(select),
                selectionHandler,
                selectionBlueprints = new SelectionBlueprintContainer {
                    RelativeSizeAxes = Axes.Both
                },
                placementBlueprintContainer = new Container <PlacementBlueprint> {
                    RelativeSizeAxes = Axes.Both
                },
                dragBox.CreateProxy()
            };

            foreach (var obj in composer.HitObjects)
            {
                addBlueprintFor(obj);
            }
        }