void UpdateBuild(bool release, bool dx) { DateTime last = release ? view.LastStable : view.LastDev; Build build = release ? stable : dev; if (last == DateTime.MinValue || build.DirectXSize < 50000 || build.OpenGLSize < 50000) { return; } view.gameOpen = CheckClientInstances(); view.SetWarning(); LauncherWidget widget = widgets[view.statusIndex]; game.ClearArea(widget.X, widget.Y, widget.Width, widget.Height); RedrawWidget(widgets[view.statusIndex]); if (view.gameOpen) { return; } string path = dx ? build.DirectXPath : build.OpenGLPath; Utils.LogDebug("Updating to: " + path); Applier.PatchTime = build.TimeBuilt; Applier.FetchUpdate(path); game.ShouldExit = true; game.ShouldUpdate = true; }
protected void RedrawWidget(LauncherWidget widget) { using ( drawer ) { drawer.SetBitmap(game.Framebuffer); widget.Redraw(drawer); } game.Dirty = true; }
protected override void SelectWidget(LauncherWidget widget) { base.SelectWidget(widget); if (widget is LauncherInputWidget) { widgetOpenTime = DateTime.UtcNow; lastCaretFlash = false; } }
protected override void UnselectWidget(LauncherWidget widget) { base.UnselectWidget(widget); if (signingIn || !resumeValid || widget != widgets[4]) { return; } SetStatus(""); }
string GetCol(byte col, bool force) { if (force) { return(col.ToString()); } LauncherWidget widget = widgets[widgetIndex]; return(widget == null?col.ToString() : widget.Text); }
/// <summary> Called when user has moved their mouse over a given widget. </summary> protected virtual void SelectWidget(LauncherWidget widget) { LauncherButtonWidget button = widget as LauncherButtonWidget; if (button != null) { button.Active = true; button.RedrawBackground(); RedrawWidget(button); } }
protected override void SelectWidget(LauncherWidget widget) { base.SelectWidget(widget); if (signingIn || !resumeValid || widget != widgets[4]) { return; } const string format = "&eResume to {0}:{1}, as {2}"; SetStatus(String.Format(format, resumeIp, resumePort, resumeUser)); }
protected override void WidgetUnclicked(LauncherWidget widget) { LauncherInputWidget input = widget as LauncherInputWidget; if (input == null) { return; } input.Active = false; RedrawWidget(input); lastInput = null; game.Dirty = true; }
void FailedUpdateCheck(UpdateCheckTask task) { view.LastStable = DateTime.MaxValue; view.LastDev = DateTime.MaxValue; task.Exception = null; LauncherWidget w = widgets[view.devIndex - 1]; game.ClearArea(w.X, w.Y, w.Width, w.Height); w = widgets[view.relIndex - 1]; game.ClearArea(w.X, w.Y, w.Width, w.Height); game.RedrawBackground(); Resize(); }
protected void HandleTab() { if (tabDown) { return; } tabDown = true; int index = lastClicked == null ? -1 : Array.IndexOf <LauncherWidget>(widgets, lastClicked); int dir = (game.Window.Keyboard[Key.ShiftLeft] || game.Window.Keyboard[Key.ShiftRight]) ? -1 : 1; index += dir; Utils.Clamp(ref index, 0, widgets.Length - 1); for (int j = 0; j < widgets.Length * 2; j++) { int i = (j * dir + index) % widgets.Length; if (i < 0) { i += widgets.Length; } if (widgets[i] is LauncherInputWidget || widgets[i] is LauncherButtonWidget) { LauncherWidget widget = widgets[i]; moveArgs.X = widget.X + widget.Width / 2; moveArgs.Y = widget.Y + widget.Height / 2; pressArgs.Button = MouseButton.Left; pressArgs.IsPressed = true; pressArgs.X = moveArgs.X; pressArgs.Y = moveArgs.Y; MouseMove(null, moveArgs); Point p = game.Window.PointToScreen(Point.Empty); p.Offset(moveArgs.X, moveArgs.Y); game.Window.DesktopCursorPos = p; lastClicked = widget; if (widgets[i] is LauncherInputWidget) { MouseButtonDown(null, pressArgs); ((LauncherInputWidget)widgets[i]).CaretPos = -1; } break; } } }
void KeyDown(object sender, KeyboardKeyEventArgs e) { if (e.Key == Key.Tab) { HandleTab(); } else if (e.Key == Key.Enter) { LauncherWidget widget = selectedWidget; if (widget != null && widget.OnClick != null) { widget.OnClick(0, 0); } } }
protected void MouseButtonDown(object sender, MouseButtonEventArgs e) { if (e.Button != MouseButton.Left) { return; } if (lastClicked != null && lastClicked != selectedWidget) { WidgetUnclicked(lastClicked); } if (selectedWidget != null && selectedWidget.OnClick != null) { selectedWidget.OnClick(e.X, e.Y); } lastClicked = selectedWidget; }
public override void Tick() { ; if (checkTask.Done && checkTask.Exception == null) { return; } if (!checkTask.TaskTick(SuccessfulUpdateCheck)) { view.LastStable = DateTime.MaxValue; view.LastDev = DateTime.MaxValue; checkTask.Exception = null; LauncherWidget w = widgets[view.devIndex - 1]; game.ClearArea(w.X, w.Y, w.Width, w.Height); w = widgets[view.relIndex - 1]; game.ClearArea(w.X, w.Y, w.Width, w.Height); Resize(); } }
protected virtual void MouseMove(object sender, MouseMoveEventArgs e) { if (supressMove) { supressMove = false; return; } mouseMoved = true; for (int i = 0; i < widgets.Length; i++) { LauncherWidget widget = widgets[i]; if (widget == null) { continue; } if (e.X >= widget.X && e.Y >= widget.Y && e.X < widget.X + widget.Width && e.Y < widget.Y + widget.Height) { if (selectedWidget == widget) { return; } if (selectedWidget != null) { UnselectWidget(selectedWidget); } SelectWidget(widget); selectedWidget = widget; return; } } if (selectedWidget == null) { return; } UnselectWidget(selectedWidget); selectedWidget = null; }
public UpdatesView(LauncherWindow game) : base(game) { widgets = new LauncherWidget[13]; }
public DirectConnectView(LauncherWindow game) : base(game) { widgets = new LauncherWidget[8]; }
protected virtual void WidgetUnclicked(LauncherWidget widget) { }
public ColoursView(LauncherWindow game) : base(game) { widgets = new LauncherWidget[25]; }
public ResourcesView(LauncherWindow game) : base(game) { widgets = new LauncherWidget[4]; }
public MainView(LauncherWindow game) : base(game) { widgets = new LauncherWidget[16]; }
protected string Get(int index) { LauncherWidget widget = widgets[index]; return(widget == null ? "" : widget.Text); }
public ServersView(LauncherWindow game) : base(game) { widgets = new LauncherWidget[7]; }
protected virtual void KeyDown(object sender, KeyboardKeyEventArgs e) { if (e.Key == Key.Enter && enterIndex >= 0) { LauncherWidget widget = (selectedWidget != null && mouseMoved) ? selectedWidget : widgets[enterIndex]; if (widget.OnClick != null) { widget.OnClick(0, 0); } } else if (e.Key == Key.Tab) { HandleTab(); } if (lastInput == null) { if (e.Key == Key.Escape) { game.SetScreen(new MainScreen(game)); } return; } if (e.Key == Key.BackSpace && lastInput.BackspaceChar()) { RedrawLastInput(); OnRemovedChar(); } else if (e.Key == Key.Delete && lastInput.DeleteChar()) { RedrawLastInput(); OnRemovedChar(); } else if (e.Key == Key.C && ControlDown) { lastInput.CopyToClipboard(); } else if (e.Key == Key.V && ControlDown) { if (lastInput.CopyFromClipboard()) { RedrawLastInput(); } } else if (e.Key == Key.Escape) { if (lastInput.ClearText()) { RedrawLastInput(); } } else if (e.Key == Key.Left) { lastInput.AdvanceCursorPos(-1); RedrawLastInput(); } else if (e.Key == Key.Right) { lastInput.AdvanceCursorPos(+1); RedrawLastInput(); } }
public ChooseModeView(LauncherWindow game) : base(game) { widgets = new LauncherWidget[14]; }