public ButtonEventArgs(ButtonCategory category, int index, bool previousValue, bool newValue) { Category = category; Index = index; PreviousValue = previousValue; NewValue = newValue; }
private void HandleOperator(char op) { _display.Print(_display.ParseDisplay()); if (UnaryOperatorProvider.IsUnaryOperator(op)) { var fun = UnaryOperatorProvider.GetOperator(op); _display.Print(fun(_display.ParseDisplay())); _lastPressed = ButtonCategory.UnaryOperator; } else if (BinaryOperatorProvider.IsBinaryOperator(op)) { if (double.IsNaN(_lastResult)) { _lastResult = _display.ParseDisplay(); } if (_operator != EMPTY_OPERATOR && _lastPressed != ButtonCategory.BinaryOperator) { double number = _display.ParseDisplay(); var fun = BinaryOperatorProvider.GetOperator(_operator); _lastResult = fun(_lastResult, number); _display.Print(_lastResult); } _operator = op; _lastPressed = ButtonCategory.BinaryOperator; } else { throw new ArgumentException($"Unknown operator '{op}'"); } }
public CategoryView(ButtonCategory cat) { category = cat; InitializeComponent(); BuildComponent(); Background = Brushes.Purple; }
public Calculator() { _display = new Display(); _operator = EMPTY_OPERATOR; _lastResult = double.NaN; CultureInfo.CurrentCulture = new CultureInfo("hr-HR"); _lastPressed = ButtonCategory.Nothing; _memory = "0"; }
/// <summary> /// Call in HudManager.Start /// </summary> private CooldownButton(Assembly asm, Action onClick, float cooldown, string embeddedResourcePath /*, float pixelsPerUnit*/, Vector2 positionOffset, ButtonCategory category, HudManager hudManager, bool hasEffectDuration, float effectDuration, Action onEffectEnd) { OnEffectEnd = onEffectEnd; PositionOffset = positionOffset; EffectDuration = effectDuration; Category = category; //PixelsPerUnit = pixelsPerUnit; MaxTimer = cooldown; Timer = MaxTimer; Buttons.Add(this); string embeddedResourceFullPath = asm.GetManifestResourceNames().FirstOrDefault(resourceName => resourceName.EndsWith(embeddedResourcePath, StringComparison.Ordinal)); if (string.IsNullOrEmpty(embeddedResourceFullPath)) { throw new ArgumentNullException(nameof(embeddedResourcePath), $"The embedded resource \"{embeddedResourcePath}\" was not found in assembly \"{asm.GetName().Name}\"."); } Stream resourceStream = asm.GetManifestResourceStream(embeddedResourceFullPath); KillButtonManager = Object.Instantiate(hudManager.KillButton, hudManager.transform); //StartColorButton = killButtonManager.renderer.color; StartColorText = KillButtonManager.TimerText.Color; KillButtonManager.gameObject.SetActive(true); KillButtonManager.renderer.enabled = true; Texture2D tex = GUIExtensions.CreateEmptyTexture(); byte[] buttonTexture = Reactor.Extensions.Extensions.ReadFully(resourceStream); ImageConversion.LoadImage(tex, buttonTexture, false); KillButtonManager.renderer.sprite = GUIExtensions.CreateSprite(tex); PassiveButton button = KillButtonManager.GetComponent <PassiveButton>(); button.OnClick.RemoveAllListeners(); button.OnClick.AddListener(new Action(() => { if (Timer < 0f && CanUse) { KillButtonManager.renderer.color = new Color(1f, 1f, 1f, 0.3f); if (hasEffectDuration) { IsEffectActive = true; Timer = EffectDuration; KillButtonManager.TimerText.Color = new Color(0, 255, 0); } onClick(); } })); }
public void SetUp (ButtonCategory category) { Show (); ButtonCategoryDescriptor buttonDescriptor = category.Descriptor; pin.Text = buttonDescriptor.GetNotifications (category.Category).GetNumber ().ToString (); nameLabel.Text = buttonDescriptor.name; icon.lowerLeftPixel = buttonDescriptor.lowerLeft; SetUpTabs (); CreateList (); Reset (); }
public void InterpolateBetween(ButtonCategory firstState, ButtonCategory secondState, float interpolationValue) { #if DEBUG if (float.IsNaN(interpolationValue)) { throw new System.Exception("interpolationValue cannot be NaN"); } #endif switch (firstState) { case ButtonCategory.Enabled: break; case ButtonCategory.Disabled: break; case ButtonCategory.Highlighted: break; case ButtonCategory.Pushed: break; } switch (secondState) { case ButtonCategory.Enabled: break; case ButtonCategory.Disabled: break; case ButtonCategory.Highlighted: break; case ButtonCategory.Pushed: break; } var wasSuppressed = mIsLayoutSuspended; if (wasSuppressed == false) { SuspendLayout(true); } if (interpolationValue < 1) { mCurrentButtonCategoryState = firstState; } else { mCurrentButtonCategoryState = secondState; } if (!wasSuppressed) { ResumeLayout(true); } }
public void Press(char inPressedDigit) { Console.WriteLine($"Pressed : {inPressedDigit}"); Console.WriteLine($"Last result : {_lastResult}"); Console.WriteLine($"Operator : {_operator}"); Console.WriteLine("------------------------------"); if (char.IsDigit(inPressedDigit)) { HandleDigit(inPressedDigit); } else if (inPressedDigit == ',') { _lastPressed = ButtonCategory.Comma; _display.Append(inPressedDigit); } else if (inPressedDigit == '=') { EqualsSign(); } else if (inPressedDigit == 'M') { ChangeSign(); } else if (inPressedDigit == 'C') { _display.Clear(); } else if (inPressedDigit == 'O') { _display.Clear(); _lastResult = double.NaN; _lastPressed = ButtonCategory.Nothing; } else if (inPressedDigit == 'P') { _memory = _display.CurrentState; } else if (inPressedDigit == 'G') { _display.Print(_memory); } else { HandleOperator(inPressedDigit); } }
public void InterpolateBetween(ButtonCategory firstState, ButtonCategory secondState, float interpolationValue) { #if DEBUG if (float.IsNaN(interpolationValue)) { throw new System.Exception("interpolationValue cannot be NaN"); } #endif switch (firstState) { case ButtonCategory.Enabled: break; case ButtonCategory.Disabled: break; case ButtonCategory.Highlighted: break; case ButtonCategory.Pushed: break; } switch (secondState) { case ButtonCategory.Enabled: break; case ButtonCategory.Disabled: break; case ButtonCategory.Highlighted: break; case ButtonCategory.Pushed: break; } if (interpolationValue < 1) { mCurrentButtonCategoryState = firstState; } else { mCurrentButtonCategoryState = secondState; } }
public FlatRedBall.Glue.StateInterpolation.Tweener InterpolateToRelative(ButtonCategory toState, double secondsToTake, FlatRedBall.Glue.StateInterpolation.InterpolationType interpolationType, FlatRedBall.Glue.StateInterpolation.Easing easing, object owner = null) { Gum.DataTypes.Variables.StateSave current = GetCurrentValuesOnState(toState); Gum.DataTypes.Variables.StateSave toAsStateSave = AddToCurrentValuesWithState(toState); FlatRedBall.Glue.StateInterpolation.Tweener tweener = new FlatRedBall.Glue.StateInterpolation.Tweener(from: 0, to: 1, duration: (float)secondsToTake, type: interpolationType, easing: easing); if (owner == null) { tweener.Owner = this; } else { tweener.Owner = owner; } tweener.PositionChanged = newPosition => this.InterpolateBetween(current, toAsStateSave, newPosition); tweener.Ended += () => this.CurrentButtonCategoryState = toState; tweener.Start(); StateInterpolationPlugin.TweenerManager.Self.Add(tweener); return(tweener); }
private Gum.DataTypes.Variables.StateSave AddToCurrentValuesWithState(ButtonCategory state) { Gum.DataTypes.Variables.StateSave newState = new Gum.DataTypes.Variables.StateSave(); switch (state) { case ButtonCategory.Enabled: break; case ButtonCategory.Disabled: break; case ButtonCategory.Highlighted: break; case ButtonCategory.Pushed: break; } return(newState); }
private void HandleDigit(char digit) { if (_display.CurrentState == "0" && digit == '0') { return; } if (_lastPressed == ButtonCategory.BinaryOperator && double.IsNaN(_lastResult)) { _lastResult = _display.ParseDisplay(); } if (_lastPressed != ButtonCategory.Comma && _lastPressed != ButtonCategory.Digit) { _display.Delete(); } _display.Append(digit); _lastPressed = ButtonCategory.Digit; }
private bool IsVisible(CockpitMode mode, ButtonCategory category) { switch (category) { case ButtonCategory.Cockpit: return(mode.HasFlag(CockpitMode.Cockpit)); case ButtonCategory.ShipCockpit: return(mode.HasFlag(CockpitMode.Cockpit) && mode.HasFlag(CockpitMode.InShip)); case ButtonCategory.MainShipCockpit: return(mode.HasFlag(CockpitMode.Cockpit) && mode.HasFlag(CockpitMode.InMainShip)); case ButtonCategory.FighterCockpit: return(mode.HasFlag(CockpitMode.Cockpit) && mode.HasFlag(CockpitMode.InFighter)); case ButtonCategory.SRVCockpit: return(mode.HasFlag(CockpitMode.Cockpit) && mode.HasFlag(CockpitMode.InSRV)); default: throw new Exception("Unknown CockpitMode"); } }
/// <summary> /// Call in HudManager.Start /// </summary> public CooldownButton(Action onClick, float cooldown, string imageEmbededResourcePath, Vector2 positionOffset, ButtonCategory category, HudManager hudManager) : this(Assembly.GetCallingAssembly(), onClick, cooldown, imageEmbededResourcePath, positionOffset, category, hudManager, false, 0F, null) { }
/// <summary> /// Call in HudManager.Start /// </summary> public CooldownButton(Action onClick, float cooldown, string imageEmbededResourcePath, Vector2 positionOffset, ButtonCategory category, HudManager hudManager, float effectDuration, Action onEffectEnd) : this(Assembly.GetCallingAssembly(), onClick, cooldown, imageEmbededResourcePath, positionOffset, category, hudManager, true, effectDuration, onEffectEnd) { }
private Gum.DataTypes.Variables.StateSave AddToCurrentValuesWithState(ButtonCategory state) { Gum.DataTypes.Variables.StateSave newState = new Gum.DataTypes.Variables.StateSave(); switch (state) { case ButtonCategory.Enabled: newState.Variables.Add(new Gum.DataTypes.Variables.VariableSave() { SetsValue = true, Name = "SpriteInstance.Alpha", Type = "int", Value = SpriteInstance.Alpha + 255 } ); newState.Variables.Add(new Gum.DataTypes.Variables.VariableSave() { SetsValue = true, Name = "SpriteInstance.Blue", Type = "int", Value = SpriteInstance.Blue + 255 } ); newState.Variables.Add(new Gum.DataTypes.Variables.VariableSave() { SetsValue = true, Name = "SpriteInstance.Green", Type = "int", Value = SpriteInstance.Green + 255 } ); newState.Variables.Add(new Gum.DataTypes.Variables.VariableSave() { SetsValue = true, Name = "SpriteInstance.Red", Type = "int", Value = SpriteInstance.Red + 255 } ); break; case ButtonCategory.Disabled: newState.Variables.Add(new Gum.DataTypes.Variables.VariableSave() { SetsValue = true, Name = "SpriteInstance.Alpha", Type = "int", Value = SpriteInstance.Alpha + 100 } ); newState.Variables.Add(new Gum.DataTypes.Variables.VariableSave() { SetsValue = true, Name = "SpriteInstance.Blue", Type = "int", Value = SpriteInstance.Blue + 100 } ); newState.Variables.Add(new Gum.DataTypes.Variables.VariableSave() { SetsValue = true, Name = "SpriteInstance.Green", Type = "int", Value = SpriteInstance.Green + 100 } ); newState.Variables.Add(new Gum.DataTypes.Variables.VariableSave() { SetsValue = true, Name = "SpriteInstance.Red", Type = "int", Value = SpriteInstance.Red + 100 } ); break; case ButtonCategory.Highlighted: newState.Variables.Add(new Gum.DataTypes.Variables.VariableSave() { SetsValue = true, Name = "SpriteInstance.Alpha", Type = "int", Value = SpriteInstance.Alpha + 255 } ); newState.Variables.Add(new Gum.DataTypes.Variables.VariableSave() { SetsValue = true, Name = "SpriteInstance.Blue", Type = "int", Value = SpriteInstance.Blue + 255 } ); newState.Variables.Add(new Gum.DataTypes.Variables.VariableSave() { SetsValue = true, Name = "SpriteInstance.Green", Type = "int", Value = SpriteInstance.Green + 255 } ); newState.Variables.Add(new Gum.DataTypes.Variables.VariableSave() { SetsValue = true, Name = "SpriteInstance.Red", Type = "int", Value = SpriteInstance.Red + 0 } ); break; case ButtonCategory.Pushed: newState.Variables.Add(new Gum.DataTypes.Variables.VariableSave() { SetsValue = true, Name = "SpriteInstance.Alpha", Type = "int", Value = SpriteInstance.Alpha + 255 } ); newState.Variables.Add(new Gum.DataTypes.Variables.VariableSave() { SetsValue = true, Name = "SpriteInstance.Blue", Type = "int", Value = SpriteInstance.Blue + 255 } ); newState.Variables.Add(new Gum.DataTypes.Variables.VariableSave() { SetsValue = true, Name = "SpriteInstance.Green", Type = "int", Value = SpriteInstance.Green + 255 } ); newState.Variables.Add(new Gum.DataTypes.Variables.VariableSave() { SetsValue = true, Name = "SpriteInstance.Red", Type = "int", Value = SpriteInstance.Red + 0 } ); break; } return(newState); }
public void InterpolateBetween(ButtonCategory firstState, ButtonCategory secondState, float interpolationValue) { #if DEBUG if (float.IsNaN(interpolationValue)) { throw new System.Exception("interpolationValue cannot be NaN"); } #endif bool setSpriteInstanceAlphaFirstValue = false; bool setSpriteInstanceAlphaSecondValue = false; int SpriteInstanceAlphaFirstValue = 0; int SpriteInstanceAlphaSecondValue = 0; bool setSpriteInstanceBlueFirstValue = false; bool setSpriteInstanceBlueSecondValue = false; int SpriteInstanceBlueFirstValue = 0; int SpriteInstanceBlueSecondValue = 0; bool setSpriteInstanceGreenFirstValue = false; bool setSpriteInstanceGreenSecondValue = false; int SpriteInstanceGreenFirstValue = 0; int SpriteInstanceGreenSecondValue = 0; bool setSpriteInstanceRedFirstValue = false; bool setSpriteInstanceRedSecondValue = false; int SpriteInstanceRedFirstValue = 0; int SpriteInstanceRedSecondValue = 0; switch (firstState) { case ButtonCategory.Enabled: setSpriteInstanceAlphaFirstValue = true; SpriteInstanceAlphaFirstValue = 255; setSpriteInstanceBlueFirstValue = true; SpriteInstanceBlueFirstValue = 255; setSpriteInstanceGreenFirstValue = true; SpriteInstanceGreenFirstValue = 255; setSpriteInstanceRedFirstValue = true; SpriteInstanceRedFirstValue = 255; break; case ButtonCategory.Disabled: setSpriteInstanceAlphaFirstValue = true; SpriteInstanceAlphaFirstValue = 100; setSpriteInstanceBlueFirstValue = true; SpriteInstanceBlueFirstValue = 100; setSpriteInstanceGreenFirstValue = true; SpriteInstanceGreenFirstValue = 100; setSpriteInstanceRedFirstValue = true; SpriteInstanceRedFirstValue = 100; break; case ButtonCategory.Highlighted: setSpriteInstanceAlphaFirstValue = true; SpriteInstanceAlphaFirstValue = 255; setSpriteInstanceBlueFirstValue = true; SpriteInstanceBlueFirstValue = 255; setSpriteInstanceGreenFirstValue = true; SpriteInstanceGreenFirstValue = 255; setSpriteInstanceRedFirstValue = true; SpriteInstanceRedFirstValue = 0; break; case ButtonCategory.Pushed: setSpriteInstanceAlphaFirstValue = true; SpriteInstanceAlphaFirstValue = 255; setSpriteInstanceBlueFirstValue = true; SpriteInstanceBlueFirstValue = 255; setSpriteInstanceGreenFirstValue = true; SpriteInstanceGreenFirstValue = 255; setSpriteInstanceRedFirstValue = true; SpriteInstanceRedFirstValue = 0; break; } switch (secondState) { case ButtonCategory.Enabled: setSpriteInstanceAlphaSecondValue = true; SpriteInstanceAlphaSecondValue = 255; setSpriteInstanceBlueSecondValue = true; SpriteInstanceBlueSecondValue = 255; setSpriteInstanceGreenSecondValue = true; SpriteInstanceGreenSecondValue = 255; setSpriteInstanceRedSecondValue = true; SpriteInstanceRedSecondValue = 255; break; case ButtonCategory.Disabled: setSpriteInstanceAlphaSecondValue = true; SpriteInstanceAlphaSecondValue = 100; setSpriteInstanceBlueSecondValue = true; SpriteInstanceBlueSecondValue = 100; setSpriteInstanceGreenSecondValue = true; SpriteInstanceGreenSecondValue = 100; setSpriteInstanceRedSecondValue = true; SpriteInstanceRedSecondValue = 100; break; case ButtonCategory.Highlighted: setSpriteInstanceAlphaSecondValue = true; SpriteInstanceAlphaSecondValue = 255; setSpriteInstanceBlueSecondValue = true; SpriteInstanceBlueSecondValue = 255; setSpriteInstanceGreenSecondValue = true; SpriteInstanceGreenSecondValue = 255; setSpriteInstanceRedSecondValue = true; SpriteInstanceRedSecondValue = 0; break; case ButtonCategory.Pushed: setSpriteInstanceAlphaSecondValue = true; SpriteInstanceAlphaSecondValue = 255; setSpriteInstanceBlueSecondValue = true; SpriteInstanceBlueSecondValue = 255; setSpriteInstanceGreenSecondValue = true; SpriteInstanceGreenSecondValue = 255; setSpriteInstanceRedSecondValue = true; SpriteInstanceRedSecondValue = 0; break; } if (setSpriteInstanceAlphaFirstValue && setSpriteInstanceAlphaSecondValue) { SpriteInstance.Alpha = FlatRedBall.Math.MathFunctions.RoundToInt(SpriteInstanceAlphaFirstValue * (1 - interpolationValue) + SpriteInstanceAlphaSecondValue * interpolationValue); } if (setSpriteInstanceBlueFirstValue && setSpriteInstanceBlueSecondValue) { SpriteInstance.Blue = FlatRedBall.Math.MathFunctions.RoundToInt(SpriteInstanceBlueFirstValue * (1 - interpolationValue) + SpriteInstanceBlueSecondValue * interpolationValue); } if (setSpriteInstanceGreenFirstValue && setSpriteInstanceGreenSecondValue) { SpriteInstance.Green = FlatRedBall.Math.MathFunctions.RoundToInt(SpriteInstanceGreenFirstValue * (1 - interpolationValue) + SpriteInstanceGreenSecondValue * interpolationValue); } if (setSpriteInstanceRedFirstValue && setSpriteInstanceRedSecondValue) { SpriteInstance.Red = FlatRedBall.Math.MathFunctions.RoundToInt(SpriteInstanceRedFirstValue * (1 - interpolationValue) + SpriteInstanceRedSecondValue * interpolationValue); } if (interpolationValue < 1) { mCurrentButtonCategoryState = firstState; } else { mCurrentButtonCategoryState = secondState; } }
public void ChangeButtonLED(ButtonCategory category, int index, bool state) { var selector = (byte)(category + index); Output.WriteShort(MidiStatusByte.ControlChange, selector, (byte)(state ? 0x7F : 0x00)); }