diff --git a/Telecom/main_window.cs b/Telecom/main_window.cs index e0aab5f..0557414 100644 --- a/Telecom/main_window.cs +++ b/Telecom/main_window.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Linq; +using principia.ksp_plugin_adapter; using RealAntennas; namespace σκοπός { @@ -64,6 +65,11 @@ protected override void RenderWindowContents(int window_id) { open_contracts_.Add(contract, false); } } + var connection_label_style = Style.Multiline(UnityEngine.GUI.skin.label); + var ok_style = Style.RightAligned(UnityEngine.GUI.skin.label); + var disconnected_style = Style.RightAligned( + Style.Error(UnityEngine.GUI.skin.label)); + foreach (var contract_connections in telecom_.network.connections_by_contract) { var contract = contract_connections.Key; var connections = contract_connections.Value; @@ -85,16 +91,21 @@ protected override void RenderWindowContents(int window_id) { var rx = telecom_.network.GetStation(point_to_multipoint.rx_names[0]); bool available = services.basic.available; string status = available ? "OK" : "Disconnected"; + var status_style = available ? ok_style : disconnected_style; using (new UnityEngine.GUILayout.HorizontalScope()) { UnityEngine.GUILayout.Label( - $"From {tx.displaynodeName} to {rx.displaynodeName}: {status}", - GUILayoutWidth(15)); + $"From {tx.displaynodeName} to {rx.displaynodeName}: ", + connection_label_style, + GUILayoutWidth(11)); + UnityEngine.GUILayout.Label( + $"{status}", status_style, GUILayoutWidth(4)); connection_inspectors_[connection].RenderButton(); } } else { using (new UnityEngine.GUILayout.HorizontalScope()) { UnityEngine.GUILayout.Label( $"Broadcast from {tx.displaynodeName} to:", + connection_label_style, GUILayoutWidth(15)); connection_inspectors_[connection].RenderButton(); } @@ -103,10 +114,15 @@ protected override void RenderWindowContents(int window_id) { var services = point_to_multipoint.channel_services[i]; bool available = services.basic.available; string status = available ? "OK" : "Disconnected"; + var status_style = available ? ok_style : disconnected_style; var rx = telecom_.network.GetStation(point_to_multipoint.rx_names[i]); if (point_to_multipoint.rx_names.Length > 1) { - UnityEngine.GUILayout.Label( - $@"— {rx.displaynodeName}: {status}"); + using (new UnityEngine.GUILayout.HorizontalScope()) { + UnityEngine.GUILayout.Label( + $@"— {rx.displaynodeName}: ", connection_label_style); + UnityEngine.GUILayout.Label( + $"{status}", status_style, GUILayoutWidth(4)); + } } } } else if (connection is DuplexConnection duplex) { @@ -114,10 +130,14 @@ protected override void RenderWindowContents(int window_id) { var trx1 = telecom_.network.GetStation(duplex.trx_names[1]); bool available = duplex.basic_service.available; string status = available ? "OK" : "Disconnected"; + var status_style = available ? ok_style : disconnected_style; using (new UnityEngine.GUILayout.HorizontalScope()) { UnityEngine.GUILayout.Label( - $@"Duplex between {trx0.displaynodeName} and {trx1.displaynodeName}: {status}", - GUILayoutWidth(15)); + $@"Duplex between {trx0.displaynodeName} and {trx1.displaynodeName}", + connection_label_style, + GUILayoutWidth(11)); + UnityEngine.GUILayout.Label( + $"{status}", status_style, GUILayoutWidth(4)); connection_inspectors_[connection].RenderButton(); } }