protected override ControlLayout Layout(ControlLayout layout) { Label buttonQuit, buttonSave, buttonContinue; var vbox = base.Layout(layout).AddLayoutVertical(); var heightForLabels = 10; if (!Orts.MultiPlayer.MPManager.IsMultiPlayer()) { heightForLabels = (vbox.RemainingHeight - 2 * ControlLayout.SeparatorSize) / 3; } else { heightForLabels = (vbox.RemainingHeight - 2 * ControlLayout.SeparatorSize) / 2; } var spacing = (heightForLabels - Owner.TextFontDefault.Height) / 2; vbox.AddSpace(0, spacing); vbox.Add(buttonQuit = new Label(vbox.RemainingWidth, Owner.TextFontDefault.Height, Viewer.Catalog.GetString("Quit {1} ({0})", Owner.Viewer.Settings.Input.UserCommands[UserCommand.GameQuit], Application.ProductName), LabelAlignment.Center)); vbox.AddSpace(0, spacing); vbox.AddHorizontalSeparator(); if (!Orts.MultiPlayer.MPManager.IsMultiPlayer()) { buttonSave = new Label(vbox.RemainingWidth, Owner.TextFontDefault.Height, Viewer.Catalog.GetString("Save your game ({0})", Owner.Viewer.Settings.Input.UserCommands[UserCommand.GameSave]), LabelAlignment.Center); vbox.AddSpace(0, spacing); vbox.Add(buttonSave); vbox.AddSpace(0, spacing); vbox.AddHorizontalSeparator(); buttonSave.Click += new Action <Control, Point>(buttonSave_Click); } vbox.AddSpace(0, spacing); vbox.Add(buttonContinue = new Label(vbox.RemainingWidth, Owner.TextFontDefault.Height, Viewer.Catalog.GetString("Continue playing ({0})", Owner.Viewer.Settings.Input.UserCommands[UserCommand.GamePauseMenu]), LabelAlignment.Center)); buttonQuit.Click += new Action <Control, Point>(buttonQuit_Click); buttonContinue.Click += new Action <Control, Point>(buttonContinue_Click); return(vbox); }
protected override ControlLayout Layout(ControlLayout layout) { var vbox = base.Layout(layout).AddLayoutVertical(); var boxWidth = vbox.RemainingWidth; var hbox1 = vbox.AddLayoutHorizontalLineOfText(); hbox1.Add(new Label(boxWidth, hbox1.RemainingHeight, Viewer.Catalog.GetString("This train is about to split."), LabelAlignment.Left)); var hbox2 = vbox.AddLayoutHorizontalLineOfText(); hbox2.Add(ThisPortionLine = new Label(boxWidth, hbox2.RemainingHeight, "", LabelAlignment.Left)); var hbox3 = vbox.AddLayoutHorizontalLineOfText(); hbox3.Add(OtherPortionLine = new Label(boxWidth, hbox3.RemainingHeight, "", LabelAlignment.Left)); var hbox4 = vbox.AddLayoutHorizontalLineOfText(); hbox4.Add(new Label(boxWidth, hbox4.RemainingHeight, Viewer.Catalog.GetString("Use 'cab switch' command to select cab in required portion."), LabelAlignment.Left)); vbox.AddSpace(0, Owner.TextFontDefault.Height); vbox.AddHorizontalSeparator(); vbox.AddSpace(0, Owner.TextFontDefault.Height); vbox.Add(ButtonDetach = new Label(vbox.RemainingWidth, Owner.TextFontDefault.Height, Viewer.Catalog.GetString("Perform Detach"), LabelAlignment.Center)); ButtonDetach.Click += new Action <Control, Point>(ButtonDetach_Click); return(vbox); }
protected override ControlLayout Layout(ControlLayout layout) { var vbox = base.Layout(layout).AddLayoutVertical(); { var hbox = vbox.AddLayoutHorizontalLineOfText(); pageDown = new Label(hbox.RemainingWidth, hbox.RemainingHeight, HUDWindow.hudWindowLinesPagesCount > 1 ? Viewer.Catalog.GetString("▼ Page Down (") + HUDWindow.hudWindowLinesActualPage + "/" + HUDWindow.hudWindowLinesPagesCount + ")" : Viewer.Catalog.GetString("▼ Page Down")) { Color = (HUDWindow.hudWindowLinesPagesCount > HUDWindow.hudWindowLinesActualPage) ? Color.Gray : Color.Black }; pageDown.Click += PageDown_Click; vbox.Add(pageDown); pageUp = new Label(hbox.RemainingWidth, hbox.RemainingHeight, HUDWindow.hudWindowLinesPagesCount > 1 ? Viewer.Catalog.GetString("▲ Page Up (") + HUDWindow.hudWindowLinesActualPage + " / " + HUDWindow.hudWindowLinesPagesCount + ")" : Viewer.Catalog.GetString("▲ Page Up")) { Color = HUDWindow.hudWindowLinesActualPage > 1 ? Color.Gray : Color.Black }; pageUp.Click += PageUp_Click; vbox.Add(pageUp); vbox.AddHorizontalSeparator(); pageLeft = new Label(hbox.RemainingWidth, hbox.RemainingHeight, Viewer.Catalog.GetString("◄ Page Left")) { Color = HUDWindow.hudWindowColumnsActualPage > 0 ? Color.Gray : Color.Black }; pageLeft.Click += PageLeft_Click; vbox.Add(pageLeft); pageRight = new Label(hbox.RemainingWidth, hbox.RemainingHeight, Viewer.Catalog.GetString("► Page Right")) { Color = HUDWindow.hudWindowColumnsPagesCount > 0 && HUDWindow.hudWindowColumnsActualPage < HUDWindow.hudWindowColumnsPagesCount ? Color.Gray : Color.Black }; pageRight.Click += PageRight_Click; vbox.Add(pageRight); vbox.AddHorizontalSeparator(); nextLoco = new Label(hbox.RemainingWidth, hbox.RemainingHeight, !HUDWindow.hudWindowSteamLocoLead && HUDWindow.hudWindowLocoActualPage > 0 ? Viewer.Catalog.GetString("▼ Next Loco (") + HUDWindow.hudWindowLocoActualPage + "/" + HUDWindow.hudWindowLocoPagesCount + ")" : Viewer.Catalog.GetPluralString("= One Locomotive.", "= All Locomotives.", (long)HUDWindow.hudWindowLocoPagesCount), LabelAlignment.Left) { Color = HUDWindow.hudWindowSteamLocoLead || HUDWindow.hudWindowLocoPagesCount > HUDWindow.hudWindowLocoActualPage ? Color.Gray : Color.Black }; nextLoco.Click += NextLoco_Click; vbox.Add(nextLoco); prevLoco = new Label(hbox.RemainingWidth, hbox.RemainingHeight, Viewer.Catalog.GetString("▲ Prev. Loco")) { Color = !HUDWindow.hudWindowSteamLocoLead && HUDWindow.hudWindowLocoActualPage > 0 ? Color.Gray : Color.Black }; prevLoco.Click += PrevLoco_Click; vbox.Add(prevLoco); vbox.AddHorizontalSeparator(); screenMode = new Label(hbox.RemainingWidth, hbox.RemainingHeight, (HUDWindow.hudWindowFullScreen? Viewer.Catalog.GetString("Screen: Normal"): Viewer.Catalog.GetString("Screen: Full")), LabelAlignment.Center) { Color = Color.Gray }; screenMode.Click += ScreenMode_Click; vbox.Add(screenMode); } return(vbox); }
protected override ControlLayout Layout(ControlLayout layout) { var textHeight = Owner.TextFontDefault.Height; var hbox = base.Layout(layout).AddLayoutHorizontal(); var scrollbox = hbox.AddLayoutScrollboxHorizontal(hbox.RemainingHeight); if (PlayerTrain != null) { int carPosition = 0; foreach (var car in PlayerTrain.Cars) { var carLabel = new TrainOperationsLabel(textHeight * 6, textHeight, Owner.Viewer, car, carPosition, LabelAlignment.Center); carLabel.Click += new Action <Control, Point>(carLabel_Click); if (car == PlayerTrain.LeadLocomotive) { carLabel.Color = Color.Green; } if (car.BrakesStuck || ((car is MSTSLocomotive) && (car as MSTSLocomotive).PowerReduction > 0)) { carLabel.Color = Color.Red; } scrollbox.Add(carLabel); if (car != PlayerTrain.Cars.Last()) { scrollbox.Add(new TrainOperationsCoupler(0, 0, textHeight, Owner.Viewer, car, carPosition)); } carPosition++; } } return(hbox); }
protected virtual ControlLayout Layout(ControlLayout layout) { // Pad window by 4px, add caption and space between to content area. var content = layout.AddLayoutOffset(4, 4, 4, 4).AddLayoutVertical(); content.Add(new Label(content.RemainingWidth, Owner.TextFontDefault.Height, Caption, LabelAlignment.Center)); content.AddSpace(0, 5); return(content); }
protected override ControlLayout Layout(ControlLayout layout) { ControlLayoutVertical vbox = base.Layout(layout).AddLayoutVertical(); { ControlLayoutHorizontal hbox = vbox.AddLayoutHorizontalLineOfText(); hbox.Add(messageLabel = new Label(hbox.RemainingWidth, hbox.RemainingHeight, string.Empty)); } return(vbox); }
protected override ControlLayout Layout(ControlLayout layout) { var vbox = base.Layout(layout).AddLayoutVertical(); { var hbox = vbox.AddLayoutHorizontalLineOfText(); hbox.Add(Message = new Label(hbox.RemainingWidth, hbox.RemainingHeight, "")); } return(vbox); }
protected override ControlLayout Layout(ControlLayout layout) { var vbox = base.Layout(layout).AddLayoutVertical(); var boxWidth = vbox.RemainingWidth / 8; { var hbox = vbox.AddLayoutHorizontalLineOfText(); hbox.Add(StationPlatform = new Label(boxWidth * 3, hbox.RemainingHeight, "", LabelAlignment.Left)); hbox.Add(CurrentDelay = new Label(boxWidth * 4, hbox.RemainingHeight, "")); hbox.Add(CurrentTime = new Label(boxWidth, hbox.RemainingHeight, "", LabelAlignment.Center)); } vbox.AddHorizontalSeparator(); { var hbox = vbox.AddLayoutHorizontalLineOfText(); hbox.Add(new Label(boxWidth * 3, hbox.RemainingHeight, Viewer.Catalog.GetString("Station"))); hbox.Add(new Label(boxWidth, hbox.RemainingHeight, Viewer.Catalog.GetString("Distance"), LabelAlignment.Center)); hbox.Add(new Label(boxWidth, hbox.RemainingHeight, Viewer.Catalog.GetString("Arrive"), LabelAlignment.Center)); hbox.Add(new Label(boxWidth, hbox.RemainingHeight, Viewer.Catalog.GetString("Actual"), LabelAlignment.Center)); hbox.Add(new Label(boxWidth, hbox.RemainingHeight, Viewer.Catalog.GetString("Depart"), LabelAlignment.Center)); hbox.Add(new Label(boxWidth, hbox.RemainingHeight, Viewer.Catalog.GetString("Actual"), LabelAlignment.Center)); } { var hbox = vbox.AddLayoutHorizontalLineOfText(); hbox.Add(StationPreviousName = new Label(boxWidth * 3, hbox.RemainingHeight, "")); hbox.Add(StationPreviousDistance = new Label(boxWidth, hbox.RemainingHeight, "", LabelAlignment.Center)); hbox.Add(StationPreviousArriveScheduled = new Label(boxWidth, hbox.RemainingHeight, "", LabelAlignment.Center)); hbox.Add(StationPreviousArriveActual = new Label(boxWidth, hbox.RemainingHeight, "", LabelAlignment.Center)); hbox.Add(StationPreviousDepartScheduled = new Label(boxWidth, hbox.RemainingHeight, "", LabelAlignment.Center)); hbox.Add(StationPreviousDepartActual = new Label(boxWidth, hbox.RemainingHeight, "", LabelAlignment.Center)); } { var hbox = vbox.AddLayoutHorizontalLineOfText(); hbox.Add(StationCurrentName = new Label(boxWidth * 3, hbox.RemainingHeight, "")); hbox.Add(StationCurrentDistance = new Label(boxWidth, hbox.RemainingHeight, "", LabelAlignment.Center)); hbox.Add(StationCurrentArriveScheduled = new Label(boxWidth, hbox.RemainingHeight, "", LabelAlignment.Center)); hbox.Add(StationCurrentArriveActual = new Label(boxWidth, hbox.RemainingHeight, "", LabelAlignment.Center)); hbox.Add(StationCurrentDepartScheduled = new Label(boxWidth, hbox.RemainingHeight, "", LabelAlignment.Center)); hbox.AddSpace(boxWidth, hbox.RemainingHeight); } { var hbox = vbox.AddLayoutHorizontalLineOfText(); hbox.Add(StationNextName = new Label(boxWidth * 3, hbox.RemainingHeight, "")); hbox.Add(StationNextDistance = new Label(boxWidth, hbox.RemainingHeight, "", LabelAlignment.Center)); hbox.Add(StationNextArriveScheduled = new Label(boxWidth, hbox.RemainingHeight, "", LabelAlignment.Center)); hbox.AddSpace(boxWidth, hbox.RemainingHeight); hbox.Add(StationNextDepartScheduled = new Label(boxWidth, hbox.RemainingHeight, "", LabelAlignment.Center)); hbox.AddSpace(boxWidth, hbox.RemainingHeight); } vbox.AddHorizontalSeparator(); { var hbox = vbox.AddLayoutHorizontalLineOfText(); hbox.Add(Message = new Label(boxWidth * 7, hbox.RemainingHeight, "")); } return(vbox); }
protected internal void Layout() { var windowLayout = new WindowControlLayout(this, location.Width, location.Height); windowLayout.TextHeight = Owner.TextFontDefault.Height; if (Owner.ScreenSize != Point.Zero) { Layout(windowLayout); } windowLayout.Initialize(Owner); WindowLayout = windowLayout; }
protected override ControlLayout Layout(ControlLayout layout) { var vbox = base.Layout(layout).AddLayoutVertical(); vbox.Add(Compass = new PopupCompass(vbox.RemainingWidth, vbox.RemainingHeight - vbox.TextHeight)); { var hbox = vbox.AddLayoutHorizontalLineOfText(); var w = hbox.RemainingWidth / 9; hbox.Add(new Label(1 * w, hbox.RemainingHeight, Viewer.Catalog.GetString("Lat:"), LabelAlignment.Right)); hbox.Add(Latitude = new Label(3 * w, hbox.RemainingHeight, "000.000000", LabelAlignment.Right)); hbox.AddSpace(w, hbox.RemainingHeight); hbox.Add(new Label(1 * w, hbox.RemainingHeight, Viewer.Catalog.GetString("Lon:"), LabelAlignment.Right)); hbox.Add(Longitude = new Label(3 * w, hbox.RemainingHeight, "000.000000", LabelAlignment.Right)); } return(vbox); }
protected override ControlLayout Layout(ControlLayout layout) { var vbox = base.Layout(layout).AddLayoutVertical(); var maxLines = vbox.RemainingHeight / TextSize; var messages = Messages.Take(maxLines).Reverse().ToList(); vbox.AddSpace(0, vbox.RemainingHeight - TextSize * messages.Count); foreach (var message in messages) { var hbox = vbox.AddLayoutHorizontal(TextSize); var width = Owner.Viewer.WindowManager.TextFontDefault.MeasureString(message.Text); hbox.Add(message.LabelShadow = new LabelShadow(width, hbox.RemainingHeight)); hbox.Add(message.LabelText = new Label(-width, 0, width, TextSize, message.Text)); } return(vbox); }
protected override ControlLayout Layout(ControlLayout layout) { Label ID, buttonHandbrake, buttonTogglePower, buttonToggleMU, buttonToggleBatterySwitch, buttonToggleElectricTrainSupplyCable, buttonToggleBrakeHose, buttonToggleAngleCockA, buttonToggleAngleCockB, buttonToggleBleedOffValve, buttonClose; var vbox = base.Layout(layout).AddLayoutVertical(); vbox.Add(ID = new Label(vbox.RemainingWidth, Owner.TextFontDefault.Height, Viewer.Catalog.GetString("Car ID") + " " + (CarPosition >= Viewer.PlayerTrain.Cars.Count? " " :Viewer.PlayerTrain.Cars[CarPosition].CarID), LabelAlignment.Center)); ID.Color = Color.Red; vbox.AddHorizontalSeparator(); vbox.Add(buttonHandbrake = new Label(vbox.RemainingWidth, Owner.TextFontDefault.Height, Viewer.Catalog.GetString("Toggle Handbrake"), LabelAlignment.Center)); vbox.AddHorizontalSeparator(); vbox.Add(buttonTogglePower = new Label(vbox.RemainingWidth, Owner.TextFontDefault.Height, Viewer.Catalog.GetString("Toggle Power"), LabelAlignment.Center)); vbox.AddHorizontalSeparator(); vbox.Add(buttonToggleMU = new Label(vbox.RemainingWidth, Owner.TextFontDefault.Height, Viewer.Catalog.GetString("Toggle MU Connection"), LabelAlignment.Center)); vbox.AddHorizontalSeparator(); vbox.Add(buttonToggleBatterySwitch = new Label(vbox.RemainingWidth, Owner.TextFontDefault.Height, Viewer.Catalog.GetString("Toggle Battery Switch"), LabelAlignment.Center)); vbox.AddHorizontalSeparator(); vbox.Add(buttonToggleElectricTrainSupplyCable = new Label(vbox.RemainingWidth, Owner.TextFontDefault.Height, Viewer.Catalog.GetString("Toggle Electric Train Supply Connection"), LabelAlignment.Center)); vbox.AddHorizontalSeparator(); vbox.Add(buttonToggleBrakeHose = new Label(vbox.RemainingWidth, Owner.TextFontDefault.Height, Viewer.Catalog.GetString("Toggle Brake Hose Connection"), LabelAlignment.Center)); vbox.AddHorizontalSeparator(); vbox.Add(buttonToggleAngleCockA = new Label(vbox.RemainingWidth, Owner.TextFontDefault.Height, Viewer.Catalog.GetString("Open/Close Front Angle C**k"), LabelAlignment.Center)); vbox.AddHorizontalSeparator(); vbox.Add(buttonToggleAngleCockB = new Label(vbox.RemainingWidth, Owner.TextFontDefault.Height, Viewer.Catalog.GetString("Open/Close Rear Angle C**k"), LabelAlignment.Center)); vbox.AddHorizontalSeparator(); vbox.Add(buttonToggleBleedOffValve = new Label(vbox.RemainingWidth, Owner.TextFontDefault.Height, Viewer.Catalog.GetString("Open/Close Bleed Off Valve"), LabelAlignment.Center)); vbox.AddHorizontalSeparator(); vbox.Add(buttonClose = new Label(vbox.RemainingWidth, Owner.TextFontDefault.Height, Viewer.Catalog.GetString("Close window"), LabelAlignment.Center)); buttonHandbrake.Click += new Action <Control, Point>(buttonHandbrake_Click); buttonTogglePower.Click += new Action <Control, Point>(buttonTogglePower_Click); buttonToggleMU.Click += new Action <Control, Point>(buttonToggleMU_Click); buttonToggleBatterySwitch.Click += new Action <Control, Point>(buttonToggleBatterySwitch_Click); buttonToggleElectricTrainSupplyCable.Click += new Action <Control, Point>(buttonToggleElectricTrainSupplyCable_Click); buttonToggleBrakeHose.Click += new Action <Control, Point>(buttonToggleBrakeHose_Click); buttonToggleAngleCockA.Click += new Action <Control, Point>(buttonToggleAngleCockA_Click); buttonToggleAngleCockB.Click += new Action <Control, Point>(buttonToggleAngleCockB_Click); buttonToggleBleedOffValve.Click += new Action <Control, Point>(buttonToggleBleedOffValve_Click); buttonClose.Click += new Action <Control, Point>(buttonClose_Click); return(vbox); }
protected override ControlLayout Layout(ControlLayout layout) { var hbox = base.Layout(layout).AddLayoutHorizontal(); { var vbox1 = hbox.AddLayoutVertical(SwitchImageSize); vbox1.Add(ForwardEye = new Image(0, 0, SwitchImageSize, SwitchImageSize / 2)); vbox1.Add(TrainDirection = new Image(0, 0, SwitchImageSize, SwitchImageSize)); vbox1.Add(BackwardEye = new Image(0, 0, SwitchImageSize, SwitchImageSize / 2)); var vbox2 = hbox.AddLayoutVertical(hbox.RemainingWidth); vbox2.Add(SwitchForwards = new Image(0, 0, SwitchImageSize, SwitchImageSize)); vbox2.Add(SwitchBackwards = new Image(0, 0, SwitchImageSize, SwitchImageSize)); SwitchForwards.Texture = SwitchBackwards.Texture = SwitchStates; SwitchForwards.Click += new Action <Control, Point>(SwitchForwards_Click); SwitchBackwards.Click += new Action <Control, Point>(SwitchBackwards_Click); TrainDirection.Texture = ForwardEye.Texture = BackwardEye.Texture = SwitchStates; } return(hbox); }
protected override ControlLayout Layout(ControlLayout layout) { var originalMessage = Message == null ? null : Message.Text; var originalResumeLabel = ResumeLabel == null ? null : ResumeLabel.Text; var originalCloseLabel = CloseLabel == null ? null : CloseLabel.Text; var originalQuitLabel = QuitLabel == null ? null : QuitLabel.Text; var originalEventNameLabel = EventNameLabel == null ? null : EventNameLabel.Text; var originalStatusLabel = StatusLabel == null ? null : StatusLabel.Text; var originalStatusLabelColor = StatusLabel == null ? null : new Color?(StatusLabel.Color); var vbox = base.Layout(layout).AddLayoutVertical(); { var hbox = vbox.AddLayoutHorizontal(vbox.RemainingHeight - (ControlLayout.SeparatorSize + vbox.TextHeight) * 2); var scrollbox = hbox.AddLayoutScrollboxVertical(hbox.RemainingWidth); scrollbox.Add(Message = new TextFlow(scrollbox.RemainingWidth - scrollbox.TextHeight, originalMessage)); MessageScroller = (ControlLayoutScrollbox)hbox.Controls.Last(); } vbox.AddHorizontalSeparator(); { var hbox = vbox.AddLayoutHorizontalLineOfText(); var boxWidth = hbox.RemainingWidth / 3; hbox.Add(ResumeLabel = new Label(boxWidth, hbox.RemainingHeight, originalResumeLabel, LabelAlignment.Center)); hbox.Add(CloseLabel = new Label(boxWidth, hbox.RemainingHeight, originalCloseLabel, LabelAlignment.Center)); hbox.Add(QuitLabel = new Label(boxWidth, hbox.RemainingHeight, originalQuitLabel, LabelAlignment.Center)); ResumeLabel.Click += new Action <Control, Point>(ResumeActivity_Click); CloseLabel.Click += new Action <Control, Point>(CloseBox_Click); QuitLabel.Click += new Action <Control, Point>(QuitActivity_Click); } vbox.AddHorizontalSeparator(); { var hbox = vbox.AddLayoutHorizontalLineOfText(); var boxWidth = hbox.RemainingWidth / 2; hbox.Add(EventNameLabel = new Label(boxWidth, hbox.RemainingHeight, originalEventNameLabel, LabelAlignment.Left)); hbox.Add(StatusLabel = new Label(boxWidth, hbox.RemainingHeight, originalStatusLabel, LabelAlignment.Left)); StatusLabel.Color = originalStatusLabelColor.HasValue ? originalStatusLabelColor.Value : Color.LightSalmon; } return(vbox); }
protected override ControlLayout Layout(ControlLayout layout) { // Display main HUD data var vbox = base.Layout(layout).AddLayoutVertical(); if (ListToLabel.Count > 0) { var colWidth = ListToLabel.Max(x => x.FirstColWidth) + (StandardHUD ? FontToBold ? 19 : 16 : 8); var TimeHboxPositionY = 0; foreach (var data in ListToLabel) { if (data.FirstCol.Contains(Viewer.Catalog.GetString("NwLn"))) { var hbox = vbox.AddLayoutHorizontalLineOfText(); hbox.Add(new Label(colWidth * 2, hbox.RemainingHeight, " ")); } else if (data.FirstCol.Contains("Sprtr")) { vbox.AddHorizontalSeparator(); } else { var hbox = vbox.AddLayoutHorizontalLineOfText(); var FirstCol = data.FirstCol; var LastCol = data.LastCol; var SymbolCol = data.SymbolCol; if (ColorCode.Keys.Any(FirstCol.EndsWith) || ColorCode.Keys.Any(LastCol.EndsWith) || ColorCode.Keys.Any(data.keyPressed.EndsWith) || ColorCode.Keys.Any(data.SymbolCol.EndsWith)) { //var colorFirstColEndsWith = ColorCode.Keys.Any(FirstCol.EndsWith) ? ColorCode[FirstCol.Substring(FirstCol.Length - 3)] : Color.White; //var colorLastColEndsWith = ColorCode.Keys.Any(LastCol.EndsWith) ? ColorCode[LastCol.Substring(LastCol.Length - 3)] : Color.White; //var colorKeyPressed = ColorCode.Keys.Any(data.keyPressed.EndsWith) ? ColorCode[data.keyPressed.Substring(data.keyPressed.Length - 3)] : Color.White; //var colorSymbolCol = ColorCode.Keys.Any(data.SymbolCol.EndsWith) ? ColorCode[data.SymbolCol.Substring(data.SymbolCol.Length - 3)] : Color.White; //// Erase the color code at the string end //FirstCol = ColorCode.Keys.Any(FirstCol.EndsWith) ? FirstCol.Substring(0, FirstCol.Length - 3) : FirstCol; //LastCol = ColorCode.Keys.Any(LastCol.EndsWith) ? LastCol.Substring(0, LastCol.Length - 3) : LastCol; //keyPressed = ColorCode.Keys.Any(data.keyPressed.EndsWith) ? data.keyPressed.Substring(0, data.keyPressed.Length - 3) : data.keyPressed; //SymbolCol = ColorCode.Keys.Any(data.SymbolCol.EndsWith) ? data.SymbolCol.Substring(0, data.SymbolCol.Length - 3) : data.SymbolCol; //hbox.Add(indicator = new Label(TextSize, hbox.RemainingHeight, keyPressed, LabelAlignment.Center)); //indicator.Color = colorKeyPressed; //hbox.Add(indicator = new Label(colWidth, hbox.RemainingHeight, FirstCol)); //indicator.Color = colorFirstColEndsWith; //if (data.keyPressed != null && data.keyPressed != "") //{ // hbox.Add(indicator = new Label(-TextSize, 0, TextSize, hbox.RemainingHeight, keyPressed, LabelAlignment.Right)); // indicator.Color = colorKeyPressed; //} //if (data.SymbolCol != null && data.SymbolCol != "") //{ // hbox.Add(indicator = new Label(-(TextSize + 3), 0, TextSize, hbox.RemainingHeight, SymbolCol, LabelAlignment.Right)); // indicator.Color = colorSymbolCol; //} //// Apply color to LastCol //hbox.Add(indicator = new Label(colWidth, hbox.RemainingHeight, LastCol)); //indicator.Color = colorFirstColEndsWith == Color.White ? colorLastColEndsWith : colorFirstColEndsWith; } else { // blanck space keyPressed = ""; hbox.Add(indicator = new Label(TextSize, hbox.RemainingHeight, keyPressed, LabelAlignment.Center)); indicator.Color = Color.White; // Default color //Avoids troubles when the Main Scale (Windows DPI settings) is not set to 100% if (FirstCol.Contains(StandardHUD? Viewer.Catalog.GetString("Time"): Viewer.Catalog.GetString("Status"))) { TimeHboxPositionY = hbox.Position.Y; } hbox.Add(indicator = new Label(colWidth, hbox.RemainingHeight, FirstCol)); indicator.Color = Color.White; // Default color // Font to bold if (hbox.Position.Y == TimeHboxPositionY && FirstCol.Contains(Viewer.Catalog.GetString("Time"))) // Time line. { hbox.Add(LabelFontToBold = new Label(-colWidth, 0, data.FirstColWidth, hbox.RemainingHeight, " ")); LabelFontToBold.Color = Color.White; LabelFontToBold.Click += new Action <Control, Point>(FontToBold_Click); } else { hbox.Add(indicator = new Label(colWidth, hbox.RemainingHeight, LastCol)); indicator.Color = Color.White; // Default color } } // Clickable symbol if (hbox.Position.Y == TimeHboxPositionY) { hbox.Add(ExpandWindow = new Label(hbox.RemainingWidth - TextSize, 0, TextSize, hbox.RemainingHeight, expandWindow.ToString(), LabelAlignment.Right)); ExpandWindow.Color = Color.Yellow; ExpandWindow.Click += new Action <Control, Point>(ExpandWindow_Click); } // Separator line if (data.FirstCol.Contains("Sprtr")) { hbox.AddHorizontalSeparator(); } } } }// close return(vbox); }
protected override ControlLayout Layout(ControlLayout layout) { return(layout); }
protected override ControlLayout Layout(ControlLayout layout) { // Display main HUD data var vbox = base.Layout(layout).AddLayoutVertical(); if (labels.Count > 0) { var colWidth = labels.Max(x => x.FirstColWidth) + (FontToBold ? 19 : 16); var TimeHboxPositionY = 0; foreach (var data in labels) { if (data.FirstCol.Contains("NwLn")) { var hbox = vbox.AddLayoutHorizontalLineOfText(); hbox.Add(new Label(colWidth * 2, hbox.RemainingHeight, " ")); } else if (data.FirstCol.Contains("Sprtr")) { vbox.AddHorizontalSeparator(); } else { var hbox = vbox.AddLayoutHorizontalLineOfText(); var FirstCol = data.FirstCol; var LastCol = data.LastCol; var SymbolCol = data.SymbolCol; { // blanck space keyPressed = ""; hbox.Add(indicator = new Label(TextSize, hbox.RemainingHeight, keyPressed, LabelAlignment.Center)); indicator.Color = Color.White; // Default color //Avoids troubles when the Main Scale (Windows DPI settings) is not set to 100% if (FirstCol.Contains(Viewer.Catalog.GetString("Time"))) { TimeHboxPositionY = hbox.Position.Y; } hbox.Add(indicator = new Label(colWidth, hbox.RemainingHeight, FirstCol)); indicator.Color = Color.White; // Default color // Font to bold if (hbox.Position.Y == TimeHboxPositionY && FirstCol.Contains(Viewer.Catalog.GetString("Time"))) // Time line. { hbox.Add(LabelFontToBold = new Label(-colWidth, 0, data.FirstColWidth, hbox.RemainingHeight, " ")); LabelFontToBold.Color = Color.White; LabelFontToBold.Click += new Action <Control, Point>(FontToBold_Click); } else { hbox.Add(indicator = new Label(colWidth, hbox.RemainingHeight, LastCol)); indicator.Color = Color.White; // Default color } } // Separator line if (data.FirstCol.Contains("Sprtr")) { hbox.AddHorizontalSeparator(); } } } }// close return(vbox); }
protected override ControlLayout Layout(ControlLayout layout) { var vbox = base.Layout(layout).AddLayoutVertical(); if (Owner.Viewer.Simulator.Activity != null || Owner.Viewer.Simulator.TimetableMode) { var colWidth = (vbox.RemainingWidth - vbox.TextHeight * 2) / 5; { var line = vbox.AddLayoutHorizontalLineOfText(); line.Add(new Label(colWidth, line.RemainingHeight, Viewer.Catalog.GetString("Number"))); line.Add(new Label(colWidth * 3, line.RemainingHeight, Viewer.Catalog.GetString("Service Name"), LabelAlignment.Left)); line.Add(new Label(colWidth, line.RemainingHeight, Viewer.Catalog.GetString("Viewed"), LabelAlignment.Right)); } vbox.AddHorizontalSeparator(); var scrollbox = vbox.AddLayoutScrollboxVertical(vbox.RemainingWidth); var train0 = Owner.Viewer.Simulator.Trains.Find(item => item.IsActualPlayerTrain); if (train0 != null) { TrainLabel number, name, viewed; var line = scrollbox.AddLayoutHorizontalLineOfText(); line.Add(number = new TrainLabel(colWidth, line.RemainingHeight, Owner.Viewer, train0, train0.Number.ToString(), LabelAlignment.Left)); line.Add(name = new TrainLabel(colWidth * 4 - Owner.TextFontDefault.Height, line.RemainingHeight, Owner.Viewer, train0, train0.Name, LabelAlignment.Left)); if (train0 == Owner.Viewer.SelectedTrain) { line.Add(viewed = new TrainLabel(Owner.TextFontDefault.Height, line.RemainingHeight, Owner.Viewer, train0, "*", LabelAlignment.Right)); viewed.Color = Color.Red; } if (Owner.Viewer.Simulator.IsAutopilotMode) { number.Color = train0.IsPlayable ? Color.LightGreen : Color.White; name.Color = train0.IsPlayable ? Color.LightGreen : Color.White; } if (train0 is AITrain && (train0 as AITrain).MovementState == AITrain.AI_MOVEMENT_STATE.SUSPENDED) { number.Color = Color.Orange; name.Color = Color.Orange; } if (train0.IsActualPlayerTrain) { number.Color = Color.Red; name.Color = Color.Red; } } foreach (var thisTrain in Owner.Viewer.Simulator.AI.AITrains) { if (thisTrain.MovementState != AITrain.AI_MOVEMENT_STATE.AI_STATIC && thisTrain.TrainType != Train.TRAINTYPE.PLAYER && !(thisTrain.TrainType == Train.TRAINTYPE.AI_INCORPORATED && !thisTrain.IncorporatingTrain.IsPathless)) { var line = scrollbox.AddLayoutHorizontalLineOfText(); TrainLabel number, name, viewed; line.Add(number = new TrainLabel(colWidth, line.RemainingHeight, Owner.Viewer, thisTrain, thisTrain.Number.ToString(), LabelAlignment.Left)); line.Add(name = new TrainLabel(colWidth * 4 - Owner.TextFontDefault.Height, line.RemainingHeight, Owner.Viewer, thisTrain, thisTrain.Name, LabelAlignment.Left)); if (thisTrain == Owner.Viewer.SelectedTrain) { line.Add(viewed = new TrainLabel(Owner.TextFontDefault.Height, line.RemainingHeight, Owner.Viewer, thisTrain, "*", LabelAlignment.Right)); viewed.Color = Color.Red; } if (Owner.Viewer.Simulator.IsAutopilotMode) { number.Color = thisTrain.IsPlayable ? Color.LightGreen : Color.White; name.Color = thisTrain.IsPlayable ? Color.LightGreen : Color.White; } if (thisTrain.MovementState == AITrain.AI_MOVEMENT_STATE.SUSPENDED) { number.Color = Color.Orange; name.Color = Color.Orange; } if (thisTrain.IsActualPlayerTrain) { number.Color = Color.Red; name.Color = Color.Red; } } } // Now list static trains with loco and cab if (Owner.Viewer.Simulator.IsAutopilotMode) { foreach (var thisTrain in Owner.Viewer.Simulator.Trains) { if (thisTrain.TrainType == Train.TRAINTYPE.STATIC && thisTrain.IsPlayable) { var line = scrollbox.AddLayoutHorizontalLineOfText(); TrainLabel number, name, viewed; line.Add(number = new TrainLabel(colWidth, line.RemainingHeight, Owner.Viewer, thisTrain, thisTrain.Number.ToString(), LabelAlignment.Left)); line.Add(name = new TrainLabel(colWidth * 4 - Owner.TextFontDefault.Height, line.RemainingHeight, Owner.Viewer, thisTrain, thisTrain.Name, LabelAlignment.Left)); if (thisTrain == Owner.Viewer.SelectedTrain) { line.Add(viewed = new TrainLabel(Owner.TextFontDefault.Height, line.RemainingHeight, Owner.Viewer, thisTrain, "*", LabelAlignment.Right)); viewed.Color = Color.Red; } number.Color = Color.Yellow; name.Color = Color.Yellow; } } } } return(vbox); }