/// <summary> /// Update the UI state when new state data is received from the server. /// </summary> /// <param name="state">State data sent by the server.</param> public void UpdateState(BoundUserInterfaceState state) { var castState = (ReagentDispenserBoundUserInterfaceState)state; Title = castState.DispenserName; UpdateContainerInfo(castState); // Disable all buttons if not powered if (Contents.Children != null) { ButtonHelpers.SetButtonDisabledRecursive(Contents, !castState.HasPower); EjectButton.Disabled = false; } // Disable the Clear & Eject button if no beaker if (!castState.HasBeaker) { ClearButton.Disabled = true; EjectButton.Disabled = true; } switch (castState.SelectedDispenseAmount.Int()) { case 1: DispenseButton1.Pressed = true; break; case 5: DispenseButton5.Pressed = true; break; case 10: DispenseButton10.Pressed = true; break; case 15: DispenseButton15.Pressed = true; break; case 20: DispenseButton20.Pressed = true; break; case 25: DispenseButton25.Pressed = true; break; case 30: DispenseButton30.Pressed = true; break; case 50: DispenseButton50.Pressed = true; break; case 100: DispenseButton100.Pressed = true; break; } }
public static async Task <DialogButton> ShowDialog(SmartSpriteBatch spriteBatch, string title, string body, List <DialogButton> buttons) { TaskCompletionSource <DialogButton> completionSource = new TaskCompletionSource <DialogButton>(); XuiDialog dialog = new XuiDialog(); DialogScreen screen = new DialogScreen { Buttons = new List <StaticButtonAsset>() }; float margin = 0.005f; List <StaticButtonAsset> buttonStack = ButtonHelpers.CreateButtonHorizontalStack(new FloatRectangle(0.15f, 0.75f - margin - margin, 0.75f, 0.1f), 0.1f, margin, buttons.Select(t => new ButtonBasics(t.Text, (args) => { dialog.HandleClick(t, completionSource, screen); })).ToList()); screen.Buttons.AddRange(buttonStack); screen.Title = title; screen.Body = body; await screen.Initialise(); Solids.Instance.ScreenManager.Add(screen); Solids.Instance.ScreenManager.BringToFront(screen); return(await completionSource.Task); }
public static async Task <int> ShowDialog(SmartSpriteBatch spriteBatch, string title, string body, List <string> buttons) { TaskCompletionSource <int> completionSource = new TaskCompletionSource <int>(); XuiDialog dialog = new XuiDialog(); DialogScreen screen = new DialogScreen { Buttons = new List <StaticButtonAsset>() }; List <StaticButtonAsset> buttonStack = ButtonHelpers.CreateButtonHorizontalStack(new Vector2(0.2f, 0.65f), 0.3f, 0.1f, 0.025f, buttons.Select(t => new ButtonBasics(t, (args) => { dialog.HandleClick(t, buttons.IndexOf(t), completionSource, screen); })).ToList()); screen.Buttons.AddRange(buttonStack); screen.Title = title; screen.Body = body; await screen.Initialise(); Solids.Instance.ScreenManager.Add(screen); return(await completionSource.Task); }
/// <summary> /// Update the UI state when new state data is received from the server. /// </summary> /// <param name="state">State data sent by the server.</param> public void UpdateState(BoundUserInterfaceState state) { var castState = (ChemMasterBoundUserInterfaceState)state; Title = castState.DispenserName; UpdatePanelInfo(castState); if (Contents.Children != null) { ButtonHelpers.SetButtonDisabledRecursive(Contents, !castState.HasPower); EjectButton.Disabled = !castState.HasBeaker; } }
/// <summary> /// Update the UI state when new state data is received from the server. /// </summary> /// <param name="state">State data sent by the server.</param> public void UpdateState(BoundUserInterfaceState state) { var castState = (AMEControllerBoundUserInterfaceState)state; // Disable all buttons if not powered if (Contents.Children != null) { ButtonHelpers.SetButtonDisabledRecursive(Contents, !castState.HasPower); EjectButton.Disabled = false; } if (!castState.HasFuelJar) { EjectButton.Disabled = true; ToggleInjection.Disabled = true; FuelAmount.Text = Loc.GetString("ame-window-fuel-not-inserted-text"); } else { EjectButton.Disabled = false; ToggleInjection.Disabled = false; FuelAmount.Text = $"{castState.FuelAmount}"; } if (!castState.IsMaster) { ToggleInjection.Disabled = true; } if (!castState.Injecting) { InjectionStatus.Text = Loc.GetString("ame-window-engine-injection-status-not-injecting-label") + " "; } else { InjectionStatus.Text = Loc.GetString("ame-window-engine-injection-status-injecting-label") + " "; } CoreCount.Text = $"{castState.CoreCount}"; InjectionAmount.Text = $"{castState.InjectionAmount}"; }
/// <summary> /// Runs every time interval if emulation is running /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Tick(object sender, EventArgs e) { for (var i = 0; i < _deviceDTOs.Length; i++) { _deviceManager.UpdateUIDevice(ref _deviceDTOs[i], timerTaskInterval * 1000 / oneMinuteEmulationInterval); if (_deviceDTOs[i].Status.Equals(Status.Disabled.ToString())) { _emulationTimer.Stop(); emulationSwitch.Text = Resources.StartEmulation; emulationSwitch.BackColor = Color.DarkGreen; increaseSpeedButton.Enabled = true; decreaseSpeedButton.Enabled = true; for (var j = 0; j < _deviceDTOs.Length; j++) { _deviceDTOs[j].Status = Status.Disabled.ToString(); _deviceDTOs[j].ForeColorOfBar = Color.Gray; _deviceDTOs[j].BackColorOfBar = Color.Gray; ButtonHelpers.Disable((Button)Controls.Find(_deviceDTOs[j].Name, true).Single()); } } } }