Exemplo n.º 1
0
        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();
            }
        }
Exemplo n.º 2
0
        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();
            }
        }