private void load(HitObjectComposer composer) { this.composer = composer; maskContainer = new MaskContainer(); var maskSelection = composer.CreateMaskSelection(); maskContainer.MaskSelected += maskSelection.HandleSelected; maskContainer.MaskDeselected += maskSelection.HandleDeselected; maskContainer.MaskSelectionRequested += maskSelection.HandleSelectionRequested; maskContainer.MaskDragRequested += maskSelection.HandleDrag; maskSelection.DeselectAll = maskContainer.DeselectAll; var dragLayer = new DragLayer(maskContainer.Select); dragLayer.DragEnd += () => maskSelection.UpdateVisibility(); InternalChildren = new[] { dragLayer, maskSelection, maskContainer, dragLayer.CreateProxy() }; foreach (var obj in composer.HitObjects) { addMask(obj); } }