private void Setup() { _title = new TrackLabel(this) { Dock = Dock.Top, TextRequest = (o, current) => { return(GetTitle()); } }; _linecount = new TrackLabel(this) { Dock = Dock.Top, Margin = new Margin(0, 5, 0, 0), TextRequest = (o, current) => { var u = (int)_linecount.UserData; if (u != _editor.LineCount) { _linecount.UserData = _editor.LineCount; return("Lines: " + _editor.LineCount.ToString()); } return(current); }, UserData = 0, Text = "Lines: 0", }; }
private void Setup() { _bottombar = new Panel(this) { AutoSizeToContents = true, ShouldDrawBackground = false, MouseInputEnabled = false, Dock = Dock.Top }; _topbar = new Panel(this) { AutoSizeToContents = true, ShouldDrawBackground = false, MouseInputEnabled = false, Dock = Dock.Top }; _speedincrease = CreateButton(_topbar, GameResources.fast_forward, "Increase Speed"); _speedincrease.Clicked += (o, e) => _editor.PlaybackSpeedUp(); _speedincrease.Dock = Dock.Right; _speeddecrease = CreateButton(_topbar, GameResources.rewind, "Decrease Speed"); _speeddecrease.Clicked += (o, e) => _editor.PlaybackSpeedDown(); _speeddecrease.Dock = Dock.Left; Playhead = new Playhead(_topbar, _editor); Playhead.Dock = Dock.Fill; Panel time = new Panel(_bottombar) { Dock = Dock.Fill, AutoSizeToContents = true, ShouldDrawBackground = false, MouseInputEnabled = false, }; _iterations = new TrackLabel(time) { Dock = Dock.Fill, TextRequest = (o, e) => { switch (_editor.IterationsOffset) { case 0: return("Physics Iteration: 0 (momentum tick)"); case 1: return("Physics Iteration: 1"); case 2: return("Physics Iteration: 2"); case 3: return("Physics Iteration: 3"); case 4: return("Physics Iteration: 4"); case 5: return("Physics Iteration: 5"); default: return(""); } }, Alignment = Pos.Center, }; _timecurrent = new TrackLabel(time) { Dock = Dock.Left, TextRequest = (o, e) => { string ret = GetTimeString((int)Playhead.Value); return(ret); }, Alignment = Pos.Center, }; _timemax = new TrackLabel(time) { Dock = Dock.Right, TextRequest = (o, e) => { string ret = GetTimeString((int)Playhead.DisplayMax); return(ret); }, Alignment = Pos.Center, }; }
private void Setup() { _title = new TrackLabel(this) { Dock = Dock.Top, TextRequest = (o, current) => { return(GetTitle()); } }; _linecount = new TrackLabel(this) { Dock = Dock.Top, Margin = new Margin(0, 5, 0, 0), TextRequest = (o, current) => { var u = (int)_linecount.UserData; if (u != _editor.LineCount) { _linecount.UserData = _editor.LineCount; var lineCountText = "Lines: " + _editor.LineCount.ToString(); return(lineCountText); } return(current); }, UserData = 0, Text = "Lines: 0", }; _selectioncount = new TrackLabel(this) { Dock = Dock.Top, Margin = new Margin(0, 5, 0, 0), TextRequest = (o, current) => { if (!_editor.Paused || TrackRecorder.Recording) { return(""); } var u = (int)_selectioncount.UserData; if (CurrentTools.SelectedTool == CurrentTools.SelectTool) { var linecount = ((SelectTool)(CurrentTools.SelectedTool)).GetLineSelectionsInBox().Count; if (linecount == 0) { linecount = ((SelectTool)(CurrentTools.SelectedTool)).GetLineSelections().Count; } if (u != linecount) { if (linecount > 0) { _selectioncount.UserData = linecount; return("Selected: " + linecount.ToString()); } return(""); } } return(current); }, UserData = 0, }; }
private void Setup() { _iconpanel = new Panel(this) { ShouldDrawBackground = false, Dock = Dock.Top, Width = 32, Height = 32, }; _fpslabel = new TrackLabel(this) { Dock = Dock.Top, Alignment = Pos.Right | Pos.CenterV, TextRequest = (o, currenttext) => { var rec = Settings.Local.RecordingMode; if (rec && Settings.Recording.ShowFps) { return(Settings.RecordSmooth ? "60 FPS" : "40 FPS"); } else if (!_fpswatch.IsRunning || _fpswatch.ElapsedMilliseconds > 500) { _fpswatch.Restart(); return(Math.Round(_editor.FramerateCounter.FPS) + " FPS"); } return(currenttext); }, Margin = new Margin(0, 0, 5, 0) }; _riderspeedlabel = new TrackLabel(this) { Dock = Dock.Top, Alignment = Pos.Right | Pos.CenterV, TextRequest = (o, e) => { var ppf = _editor.RenderRider.CalculateMomentum().Length; var n = (double)_riderspeedlabel.UserData; var roundppf = Math.Round(ppf, 2); if (n != ppf) { _riderspeedlabel.UserData = roundppf; return(string.Format("{0:N2}", Math.Round(ppf, 2)) + " P/f"); } return(e); }, Margin = new Margin(0, 0, 5, 0), UserData = 0.0, }; _cameraoffsetlabel = new TrackLabel(this) { Dock = Dock.Top, Alignment = Pos.Right | Pos.CenterV, TextRequest = (o, e) => { var x = string.Format("{0:N2}", Math.Round(_editor.CameraOffset.X, 2)); var y = string.Format("{0:N2}", Math.Round(_editor.CameraOffset.Y, 2)); return("Camera Offset: (" + x + "," + y + ")"); }, Margin = new Margin(0, 0, 5, 0), UserData = 0.0, }; _camerazoomlabel = new TrackLabel(this) { Dock = Dock.Top, Alignment = Pos.Right | Pos.CenterV, TextRequest = (o, e) => { //var zoom = string.Format("{0:N2}", Math.Round(_editor.Zoom, 2)); var zoom = _editor.Zoom; return("Camera Zoom: " + zoom); }, Margin = new Margin(0, 0, 5, 0), UserData = 0.0, }; _playbackratelabel = new TrackLabel(this) { Dock = Dock.Top, Alignment = Pos.Right | Pos.CenterV, TextRequest = (o, e) => { var rate = Math.Round(_editor.Scheduler.UpdatesPerSecond / 40.0, 3); string x = ""; if (rate.ToString() != "1") { x = $"{rate}x"; } return(x); }, Margin = new Margin(0, 0, 5, 0), }; _usercamerasprite = new Sprite(_iconpanel) { Dock = Dock.Right, IsHidden = true, Tooltip = "Click to Reset Camera\n(Default hotkey N)", MouseInputEnabled = true, TooltipDelay = 0, }; _usercamerasprite.Clicked += (o, e) => { _editor.Zoom = _editor.Timeline.GetFrameZoom(_editor.Offset); _editor.UseUserZoom = false; _editor.UpdateCamera(); }; _usercamerasprite.SetImage(GameResources.camera_need_reset); }