using System;
using System.Windows.Forms;
using Sfs2X.Core;
using Sfs2X.Entities;
using Sfs2X.Requests;

public partial class RoomForm : Form
{
    /// 
    /// コンストラクタ
    /// 
    public RoomForm() {
        InitializeComponent();
    }

    /// 
    /// ロードイベント
    /// 
    /// 
    /// 
    private void RoomForm_Load(object sender, EventArgs e) {
        Program.smartFox.AddEventListener(SFSEvent.PUBLIC_MESSAGE, OnPublicMessage);
        RoomListBox.Items.Clear();
        foreach (string room in Program.roomStrings) {
            RoomListBox.Items.Add(room);
        }
        RoomListBox.SelectedIndex = 0;
    }

    /// 
    /// Publicメッセージイベント
    /// 
    /// 
    public void OnPublicMessage(BaseEvent evt) {
        string message = (string)evt.Params["message"];
        User sender = (User)evt.Params["sender"];
        MessagesListBox.Items.Add(sender.Name + ": " + message);
    }

    /// 
    /// 閉じるボタン処理
    /// 
    /// 
    /// 
    private void RoomForm_FormClosing(object sender, FormClosingEventArgs e) {
        Logout();
    }

    /// 
    /// ログアウト処理
    /// 
    private void Logout() {
        Program.smartFox.Send(new LogoutRequest());
        Program.lobbyForm.Show();
    }

    /// 
    /// メッセージ送信
    /// 
    /// 
    /// 
    private void SendButton_Click(object sender, EventArgs e) {
        Program.smartFox.Send(new PublicMessageRequest(MessageTextBox.Text));
        MessageTextBox.Text = String.Empty;
    }

    /// 
    /// アップデートイベント
    /// 
    /// 
    /// 
    private void UpdateTimer_Tick(object sender, EventArgs e) {
        if (Program.smartFox.LastJoinedRoom == null) {
            return;
        }
        UserListBox.Items.Clear();
        foreach (User user in Program.smartFox.LastJoinedRoom.UserList) {
            UserListBox.Items.Add(user.Name);
        }
    }

    /// 
    /// ルーム切り替え
    /// 
    /// 
    /// 
    private void RoomListBox_SelectedIndexChanged(object sender, EventArgs e) {
        MessagesListBox.Items.Clear();
        Program.JoinRoom(RoomListBox.SelectedItem.ToString());
    }
}

inserted by FC2 system