void DrawClientsList() { var clients = Server.Clients.ToList(); // Resize window if number of connected clients changes if (clients.Count != numClientsDisplayed) { numClientsDisplayed = clients.Count; resized = true; } // Get list of client descriptions IDictionary <IClient, string> clientDescriptions = new Dictionary <IClient, string> (); if (clients.Count > 0) { foreach (var client in clients) { try { var clientName = client.Name; clientDescriptions [client] = (clientName.Length == 0 ? unknownClientNameText : clientName) + " @ " + client.Address; } catch (ClientDisconnectedException) { } } } // Display the list of clients if (clientDescriptions.Any()) { foreach (var entry in clientDescriptions) { var client = entry.Key; var description = entry.Value; GUILayout.BeginHorizontal(); GUILayoutExtensions.Light(IsClientActive(client), lightStyle); GUILayout.Label(description, stretchyLabelStyle); if (GUILayout.Button(new GUIContent(Icons.Instance.ButtonDisconnectClient, "Disconnect client"), buttonStyle, GUILayout.MaxWidth(20), GUILayout.MaxHeight(20))) { if (Config.ConfirmRemoveClient) { ClientDisconnectDialog.Show(client); } else { client.Close(); } } GUILayout.EndHorizontal(); } } else { GUILayout.BeginHorizontal(); GUILayout.Label(noClientsConnectedText, labelStyle); GUILayout.EndHorizontal(); } }
void DrawClients(IServer server) { var clients = server.Clients.ToList(); IDictionary <IClient, string> clientDescriptions = new Dictionary <IClient, string> (); if (clients.Count > 0) { foreach (var client in clients) { try { var clientName = client.Name; clientDescriptions [client] = (clientName.Length == 0 ? unknownClientNameText : clientName) + " @ " + client.Address; } catch (ClientDisconnectedException) { } } } if (clientDescriptions.Any()) { foreach (var entry in clientDescriptions) { var client = entry.Key; var description = entry.Value; GUILayout.BeginHorizontal(); GUILayoutExtensions.Light(IsClientActive(client), lightStyle); GUILayout.Label(description, stretchyLabelStyle); if (GUILayout.Button(new GUIContent(Icons.Instance.ButtonDisconnectClient, "Disconnect client"), buttonStyle, GUILayout.MaxWidth(20), GUILayout.MaxHeight(20))) { if (config.Configuration.ConfirmRemoveClient) { ClientDisconnectDialog.Show(client); } else { client.Close(); } } GUILayout.EndHorizontal(); } } else { GUILayout.BeginHorizontal(); GUILayout.Label(noClientsConnectedText, labelStyle); GUILayout.EndHorizontal(); } }