public ChatFrm()
{
InitializeComponent();
TopLevel = false;
Dock = DockStyle.Fill;
Visible = true;
m_searchReset = new Timer { Interval = 1000 };
m_filterUsers = new List<UserData>();
//chat packets
Program.ChatServer.UserListUpdate += UpdateUserList;
Program.ChatServer.UpdateUserInfo += UpdateUserInfo;
Program.ChatServer.FriendList += CreateFriendList;
Program.ChatServer.TeamList += CreateTeamList;
Program.ChatServer.JoinChannel += ChannelAccept;
Program.ChatServer.ChatMessage += WriteMessage;
Program.ChatServer.DuelRequest += HandleDuelRequest;
Program.ChatServer.TeamRequest += HandleTeamRequest;
Program.ChatServer.DuelAccepted += StartDuelRequest;
Program.ChatServer.DuelRefused += DuelRequestRefused;
Program.ChatServer.ChannelUserList += UpdateOrAddChannelList;
Program.ChatServer.AddUserToChannel += AddChannelUser;
Program.ChatServer.RemoveUserFromChannel += RemoveChannelUser;
//form events
ChannelTabs.SelectedIndexChanged += UpdateChannelList;
UserSearch.Enter += UserSearch_Enter;
UserSearch.Leave += UserSearch_Leave;
UserSearch.TextChanged += UserSearch_TextChanged;
UserListTabs.SelectedIndexChanged += UserSearch_Reset;
ChatInput.KeyPress += ChatInput_KeyPress;
ChannelList.DoubleClick += List_DoubleClick;
UserList.DoubleClick += List_DoubleClick;
m_searchReset.Tick += SearchTick;
ApplyOptionEvents();
ChannelList.MouseUp += UserList_MouseUp;
UserList.MouseUp += UserList_MouseUp;
IgnoreList.MouseUp += IgnoreList_MouseUp;
//custom form drawing
ChannelList.DrawItem += UserList_DrawItem;
UserList.DrawItem += UserList_DrawItem;
ChatHelper.LoadChatTags();
LoadIgnoreList();
ApplyTranslations();
ApplyChatSettings();
WriteSystemMessage(lang.chatMsg1);
WriteSystemMessage(lang.chatMsg2);
}