Beispiel #1
0
        public LayerMoveThumb(SelectionLayer layer)
        {
            this.ParentLayer = layer;
            this.Target      = layer.AdornedElement;

            this.RelativeTarget = layer.Storyboard;
        }
Beispiel #2
0
        public LayerResizeThumb(SelectionGripLayer layer)
        {
            this.TargetLayer   = layer.Parent;
            this.TargetElement = layer.Parent.AdornedElement;

            this.RelativeTarget = layer.Parent.Storyboard;
        }
    public UIEquipmentState(UIHandler uiHandler, GameObject parentNode) : base(uiHandler, parentNode)
    {
        slotViews      = parentNode.transform.Find("Slot_Views").GetComponent <ViewGroup>();
        selectionViews = parentNode.transform.Find("Views").GetComponent <ViewGroup>();
        title          = parentNode.transform.Find("Description/Title").GetComponent <PFontText>();
        content        = parentNode.transform.Find("Description/Content").GetComponent <PFontText>();

        currentSelectionLayer = SelectionLayer.SlotSelection;

        itemsPerPage = selectionViews.Row * selectionViews.Column;
    }
        public LayerEventTriggerButton(SelectionLayer layer) : base()
        {
            parentLayer = layer;

            if (layer is IRenderer renderer)
            {
                this.Renderer = renderer;

                this.DataContext = renderer.ProvideValue()[BindOptions.Output].First() as PBinder;
                this.BindOption  = this.Binder.BindOption;

                this.Binder.SetView(this);
                this.Binder.SetRenderer(renderer);
            }
        }
    protected void SetCurrentLayer(SelectionLayer layer)
    {
        currentSelectionLayer = layer;
        switch (layer)
        {
        case SelectionLayer.SlotSelection:
            slotViews.SetClickable(true);
            selectionViews.SetClickable(false);
            break;

        case SelectionLayer.ItemSelection:
            slotViews.SetClickable(false);
            selectionViews.SetClickable(true);
            break;

        default:
            break;
        }
    }
Beispiel #6
0
 public void DestroySelectionLayer()
 {
     ShowSelectionLayer = false;
     SelectionLayer.Clear();
     SelectionLayer.Transform.InitIdentity();
 }
Beispiel #7
0
 public void DestroySelectionLayer()
 {
     ShowSelectionLayer = false;
     SelectionLayer.Clear();
     SelectionLayer.Offset = new PointD(0, 0);
 }
Beispiel #8
0
        private void load(OsuGameBase osuGame)
        {
            try
            {
                rulesetContainer = CreateRulesetContainer(ruleset, osuGame.Beatmap.Value);

                // TODO: should probably be done at a RulesetContainer level to share logic with Player.
                rulesetContainer.Clock = new InterpolatingFramedClock((IAdjustableClock)osuGame.Beatmap.Value.Track ?? new StopwatchClock());
            }
            catch (Exception e)
            {
                Logger.Error(e, "Could not load beatmap sucessfully!");
                return;
            }

            HitObjectOverlayLayer hitObjectOverlayLayer = CreateHitObjectOverlayLayer();
            SelectionLayer        selectionLayer        = new SelectionLayer(rulesetContainer.Playfield);

            var layerBelowRuleset = new BorderLayer
            {
                RelativeSizeAxes = Axes.Both,
                Child            = CreateLayerContainer()
            };

            var layerAboveRuleset = CreateLayerContainer();

            layerAboveRuleset.Children = new Drawable[]
            {
                selectionLayer,              // Below object overlays for input
                hitObjectOverlayLayer,
                selectionLayer.CreateProxy() // Proxy above object overlays for selections
            };

            layerContainers.Add(layerBelowRuleset);
            layerContainers.Add(layerAboveRuleset);

            RadioButtonCollection toolboxCollection;

            InternalChild = new GridContainer
            {
                RelativeSizeAxes = Axes.Both,
                Content          = new[]
                {
                    new Drawable[]
                    {
                        new FillFlowContainer
                        {
                            Name             = "Sidebar",
                            RelativeSizeAxes = Axes.Both,
                            Padding          = new MarginPadding {
                                Right = 10
                            },
                            Children = new Drawable[]
                            {
                                new ToolboxGroup {
                                    Child = toolboxCollection = new RadioButtonCollection {
                                        RelativeSizeAxes = Axes.X
                                    }
                                }
                            }
                        },
                        new Container
                        {
                            Name             = "Content",
                            RelativeSizeAxes = Axes.Both,
                            Children         = new Drawable[]
                            {
                                layerBelowRuleset,
                                rulesetContainer,
                                layerAboveRuleset
                            }
                        }
                    },
                },
                ColumnDimensions = new[]
                {
                    new Dimension(GridSizeMode.Absolute, 200),
                }
            };

            selectionLayer.ObjectSelected   += hitObjectOverlayLayer.AddOverlay;
            selectionLayer.ObjectDeselected += hitObjectOverlayLayer.RemoveOverlay;

            toolboxCollection.Items =
                new[] { new RadioButton("Select", () => setCompositionTool(null)) }
            .Concat(
                CompositionTools.Select(t => new RadioButton(t.Name, () => setCompositionTool(t)))
                )
            .ToList();

            toolboxCollection.Items[0].Select();
        }
        private void UpdateLayersOnTemplateApplied()
        {
            // ensure the default XamlContentLayer
            if (this.contentLayers.Count == 0)
            {
                this.contentLayers.Add(new XamlContentLayer());
            }
            foreach (var layer in this.contentLayers)
            {
                this.AddLayer(layer, this.cellsPanel);
            }

            this.editRowLayer = new GridEditRowLayer();

            this.AddLayer(this.EditRowLayer, this.ContentLayers[0].VisualElement as Panel);

            // ensure the default XamlDecorator layer
            if (this.decorationLayerCache == null)
            {
                this.DecorationLayer = new XamlDecorationLayer();
            }

            this.AddLayer(this.decorationLayerCache, this.decorationsHost);

            if (this.frozenDecorationLayer == null)
            {
                // ensure the frozen XamlDecorator layer
                this.frozenDecorationLayer = new XamlDecorationLayer();
                this.frozenLineDecorationsPresenter.Owner = this.frozenDecorationLayer;
            }

            this.AddLayer(this.frozenDecorationLayer, this.FrozenDecorationsHost);

            // ensure the default XamlSelection layer
            if (this.selectionLayerCache == null)
            {
                this.selectionLayerCache = new XamlSelectionLayer();
                this.selectionDecorationsPresenter.Owner = this.selectionLayerCache;
            }

            this.AddLayer(this.selectionLayerCache, this.decorationsHost);

            if (this.frozenSelectionLayerCache == null)
            {
                this.frozenSelectionLayerCache = new XamlSelectionLayer();
                this.frozenSelectionDecorationsPresenter.Owner = this.frozenSelectionLayerCache;
            }

            this.AddLayer(this.frozenSelectionLayerCache, this.FrozenDecorationsHost);

            // ensure the default XamlVisualState layer
            if (this.visualStateLayerCache == null)
            {
                this.visualStateLayerCache = new XamlVisualStateLayer();
            }

            this.AddLayer(this.visualStateLayerCache, this.decorationsHost);

            if (this.dragAdornerLayerCache == null)
            {
                this.dragAdornerLayerCache = new XamlDragAdornerLayer();
            }

            if (this.frozenVisualStateLayerCache == null)
            {
                this.frozenVisualStateLayerCache = new XamlVisualStateLayer();
            }

            this.AddLayer(this.frozenVisualStateLayerCache, this.FrozenDecorationsHost);

            this.AddLayer(this.dragAdornerLayerCache, this.adornerHostPanel);

            if (this.overlayAdornerLayerCache == null)
            {
                this.overlayAdornerLayerCache = new XamlOverlayAdornerLayer();

                this.visualStateService.RegisterDataLoadingListener(this.overlayAdornerLayerCache);
            }

            this.AddLayer(this.overlayAdornerLayerCache, this.adornerHostPanel);

            if (this.scrolalbleAdornerLayerCache == null)
            {
                this.scrolalbleAdornerLayerCache = new XamlScrollableAdornerLayer();
            }

            this.AddLayer(this.scrolalbleAdornerLayerCache, this.scrollableAdornerHostPanel);

            if (this.FrozenColumnsContentLayer == null)
            {
                this.FrozenColumnsContentLayer = new XamlContentLayer();
            }

            this.AddLayer(this.FrozenColumnsContentLayer, this.frozenColumnsHost);

            if (this.GroupHeadersContentLayer == null)
            {
                this.GroupHeadersContentLayer = new XamlContentLayer();
            }

            this.AddLayer(this.GroupHeadersContentLayer, this.GroupHeadersHost);

            this.frozenEditRowLayer = new GridEditRowLayer();

            this.AddLayer(this.FrozenEditRowLayer, this.FrozenColumnsContentLayer.VisualElement as Panel);
        }
Beispiel #10
0
        private void load([NotNull] OsuGameBase osuGame, [NotNull] IAdjustableClock adjustableClock, [NotNull] IFrameBasedClock framedClock, [CanBeNull] BindableBeatDivisor beatDivisor)
        {
            this.adjustableClock = adjustableClock;

            if (beatDivisor != null)
            {
                this.beatDivisor.BindTo(beatDivisor);
            }

            beatmap.BindTo(osuGame.Beatmap);

            try
            {
                rulesetContainer       = CreateRulesetContainer(ruleset, beatmap.Value);
                rulesetContainer.Clock = framedClock;
            }
            catch (Exception e)
            {
                Logger.Error(e, "Could not load beatmap sucessfully!");
                return;
            }

            HitObjectMaskLayer hitObjectMaskLayer = new HitObjectMaskLayer(this);
            SelectionLayer     selectionLayer     = new SelectionLayer(rulesetContainer.Playfield);

            var layerBelowRuleset = new BorderLayer
            {
                RelativeSizeAxes = Axes.Both,
                Child            = CreateLayerContainer()
            };

            var layerAboveRuleset = CreateLayerContainer();

            layerAboveRuleset.Children = new Drawable[]
            {
                selectionLayer,              // Below object overlays for input
                hitObjectMaskLayer,
                selectionLayer.CreateProxy() // Proxy above object overlays for selections
            };

            layerContainers.Add(layerBelowRuleset);
            layerContainers.Add(layerAboveRuleset);

            RadioButtonCollection toolboxCollection;

            InternalChild = new GridContainer
            {
                RelativeSizeAxes = Axes.Both,
                Content          = new[]
                {
                    new Drawable[]
                    {
                        new FillFlowContainer
                        {
                            Name             = "Sidebar",
                            RelativeSizeAxes = Axes.Both,
                            Padding          = new MarginPadding {
                                Right = 10
                            },
                            Children = new Drawable[]
                            {
                                new ToolboxGroup {
                                    Child = toolboxCollection = new RadioButtonCollection {
                                        RelativeSizeAxes = Axes.X
                                    }
                                }
                            }
                        },
                        new Container
                        {
                            Name             = "Content",
                            RelativeSizeAxes = Axes.Both,
                            Children         = new Drawable[]
                            {
                                layerBelowRuleset,
                                rulesetContainer,
                                layerAboveRuleset
                            }
                        }
                    },
                },
                ColumnDimensions = new[]
                {
                    new Dimension(GridSizeMode.Absolute, 200),
                }
            };

            selectionLayer.ObjectSelected    += hitObjectMaskLayer.AddOverlay;
            selectionLayer.ObjectDeselected  += hitObjectMaskLayer.RemoveOverlay;
            selectionLayer.SelectionCleared  += hitObjectMaskLayer.RemoveSelectionOverlay;
            selectionLayer.SelectionFinished += hitObjectMaskLayer.AddSelectionOverlay;

            toolboxCollection.Items =
                new[] { new RadioButton("Select", () => setCompositionTool(null)) }
            .Concat(
                CompositionTools.Select(t => new RadioButton(t.Name, () => setCompositionTool(t)))
                )
            .ToList();

            toolboxCollection.Items[0].Select();
        }