public void Aggregate(AggregationEntry entry, AggregationContext context) { if (disableWhen(inputHelper)) { return; } if (!context.FirstEntry) { return; } double timeDelta = context.Time(span => span.TotalSeconds); if (ShouldHandle(next, AggregationAction.Next, timeDelta)) { context.Reset(); context.FocusControlAt(context.Indexer.Next); } if (ShouldHandle(previous, AggregationAction.Previous, timeDelta)) { context.Reset(); context.FocusControlAt(context.Indexer.Previous); } if (ShouldHandle(trigger, AggregationAction.Trigger, timeDelta)) { context[context.Indexer.Current].Events.OnClicked(); } aggrAction = scriptHasEvaluated ? aggrAction : AggregationAction.None; scriptHasEvaluated = false; context.FirstEntry = false; }
private void CheckClick(AggregationEntry entry, AggregationContext context) { if (entry.Token.CanBeClicked && entry.Token.HasHover && input.IsLeftButtonReleased()) { entry.Control.Events.OnClicked(); } }
private void CheckSelected(AggregationEntry entry, AggregationContext context) { if (input.IsLeftButtonClicked()) { if (entry.Token.HasHover) { entry.Token.CanBeClicked = true; } } if (!input.IsLeftButtonPressed()) { entry.Token.CanBeClicked = false; } }
private void CheckMouseHover(AggregationEntry entry, AggregationContext context) { var currentHasHover = entry.Control.Region.Frame.Contains(input.MousePosition); if (currentHasHover && !entry.Token.HasHover) { entry.Control.HasHover = true; } else if (!currentHasHover && entry.Token.HasHover) { entry.Control.HasHover = false; } entry.Token.HasHover = currentHasHover; }
public void Aggregate(AggregationEntry entry, AggregationContext context) { if (!entry.Control.Options.IsEnabled || !this.IsEnabled) { return; } CheckMouseHover(entry, context); CheckClick(entry, context); if (entry.Control.Options.IsFocusEnabled) { CheckFocus(entry, context); } }
private void CheckFocus(AggregationEntry entry, AggregationContext context) { if (input.IsLeftButtonClicked()) { if (entry.Token.HasHover && !entry.Control.HasFocus) { context.FocusControlAt(entry.Index); entry.Token.GotFocusBy = this; } else if (!entry.Token.HasHover && entry.Control.HasFocus) { context.Reset(); entry.Token.GotFocusBy = null; } } CheckSelected(entry, context); }