public PrivateMessageControl(string name) { InitializeComponent(); ChatBox.Font = Program.Conf.ChatFont; Name = name; UserName = name; ChatBox.MouseUp += autoscrollRichTextBox1_MouseUp; ChatBox.FocusInputRequested += (s, e) => GoToSendBox(); ChatBox.ChatBackgroundColor = TextColor.background; //same as Program.Conf.BgColor but TextWindow.cs need this. ChatBox.IRCForeColor = 14; //mirc grey. Unknown use HistoryManager.InsertLastLines(UserName, ChatBox); VisibleChanged += PrivateMessageControl_VisibleChanged; Program.TasClient.BattleUserJoined += TasClient_BattleUserJoined; Program.TasClient.UserAdded += TasClient_UserAdded; Program.TasClient.UserRemoved += TasClient_UserRemoved; var extras = new BitmapButton(); extras.Text = "Extras"; extras.Click += (s, e) => { ContextMenus.GetPrivateMessageContextMenu(this).Show(extras, new Point(0, 0)); }; ChatBox.Controls.Add(extras); sendBox.CompleteWord += (word) => //autocomplete of username { var w = word.ToLower(); string[] nameInArray = new string[1] { name }; System.Collections.Generic.IEnumerable <string> firstResult = nameInArray .Where(x => x.ToLower().StartsWith(w)) .Union(nameInArray.Where(x => x.ToLower().Contains(w)));; if (true) { ChatControl zkChatArea = Program.MainWindow.navigationControl.ChatTab.GetChannelControl("zk"); if (zkChatArea != null) { System.Collections.Generic.IEnumerable <string> extraResult = zkChatArea.playerBox.GetUserNames() .Where(x => x.ToLower().StartsWith(w)) .Union(zkChatArea.playerBox.GetUserNames().Where(x => x.ToLower().Contains(w))); firstResult = firstResult.Concat(extraResult); //Reference: http://stackoverflow.com/questions/590991/merging-two-ienumerablets } } return(firstResult); }; }
public ChatControl(string name) { InitializeComponent(); var isDesignMode = Process.GetCurrentProcess().ProcessName == "devenv"; // workaround for this.DesignMode not working in constructor if (isDesignMode) { return; } var extras = new BitmapButton(); extras.Text = "Extras"; extras.Click += (s, e) => { ContextMenus.GetChannelContextMenu(this).Show(extras, new Point(0, 0)); }; ChatBox.Controls.Add(extras); playerBox.DrawMode = DrawMode.OwnerDrawVariable; playerBox.MeasureItem += (s, e) => { }; // needed for ListBox.OnMeasureItem playerBox.BackColor = Program.Conf.BgColor; playerBox.ForeColor = Program.Conf.TextColor; playerSearchBox.BackColor = Program.Conf.BgColor; playerSearchBox.ForeColor = Program.Conf.TextColor; ChatBox.Font = Program.Conf.ChatFont; //make sure this is done before HistoryManager adds text, or text becomes black. Name = name; ChannelName = name; if (!DesignMode) { HistoryManager.InsertLastLines(ChannelName, ChatBox); } playerBox.Sorted = true; var lookingGlass = new PictureBox { Width = 20, Height = 20, Image = ZklResources.search, SizeMode = PictureBoxSizeMode.CenterImage }; searchBarContainer.Controls.Add(lookingGlass); Program.ToolTip.SetText(lookingGlass, "Enter name or country shortcut to find"); Program.ToolTip.SetText(playerSearchBox, "Enter name or country shortcut to find"); VisibleChanged += ChatControl_VisibleChanged; ChatBox.MouseUp += chatBox_MouseUp; ChatBox.MouseDown += chatBox_MouseDown; ChatBox.MouseMove += chatBox_MouseMove; ChatBox.FocusInputRequested += (s, e) => GoToSendBox(); ChatBox.ChatBackgroundColor = TextColor.background; //same as Program.Conf.BgColor but TextWindow.cs need this. ChatBox.IRCForeColor = 14; //mirc grey. Unknown use Program.TasClient.ChannelUserAdded += client_ChannelUserAdded; Program.TasClient.ChannelUserRemoved += client_ChannelUserRemoved; Program.TasClient.UserStatusChanged += TasClient_UserStatusChanged; Program.TasClient.ChannelUsersAdded += TasClient_ChannelUsersAdded; Program.TasClient.Said += client_Said; Program.TasClient.UserRemoved += TasClient_UserRemoved; Program.TasClient.ChannelTopicChanged += TasClient_ChannelTopicChanged; Program.TasClient.HourChime += client_HourChime; Channel channel; Program.TasClient.JoinedChannels.TryGetValue(ChannelName, out channel); //Topic Box that displays over the channel topicBox.IRCForeColor = 14; //mirc grey. Unknown use topicBox.ChatBackgroundColor = TextColor.topicBackground; topicBox.HorizontalScroll.Enabled = true; topicBox.BorderStyle = BorderStyle.FixedSingle; topicBox.VerticalScroll.Visible = false; topicBox.VerticalScroll.Enabled = false; topicBox.AutoSize = true; topicBox.AutoSizeMode = AutoSizeMode.GrowAndShrink; topicBox.HideScroll = true; topicBox.ShowUnreadLine = false; topicBox.ShowHistory = false; //hide mappanel for normal chat operation. Overriden in BattleChatControl.cs playerListMapSplitContainer.Panel2Collapsed = true; sendBox.CompleteWord += (word) => //autocomplete of username { var w = word.ToLower(); IEnumerable <string> firstResult = playerBox.GetUserNames() .Where(x => x.ToLower().StartsWith(w)) .Union(playerBox.GetUserNames().Where(x => x.ToLower().Contains(w))); if (true) { ChatControl zkChatArea = Program.MainWindow.navigationControl.ChatTab.GetChannelControl("zk"); if (zkChatArea != null) { IEnumerable <string> extraResult = zkChatArea.playerBox.GetUserNames() .Where(x => x.ToLower().StartsWith(w)) .Union(zkChatArea.playerBox.GetUserNames().Where(x => x.ToLower().Contains(w))); firstResult = firstResult.Concat(extraResult); //Reference: http://stackoverflow.com/questions/590991/merging-two-ienumerablets } } return(firstResult); }; if (channel != null) { foreach (var userName in Program.TasClient.JoinedChannels[ChannelName].ChannelUsers) { AddUser(userName); } } }
public ChatControl(string name) { InitializeComponent(); Init(searchBarContainer); Init(playerListMapSplitContainer); if (this.IsInDesignMode()) { return; } ChatBox.Font = Config.ChatFont; //make sure this is done before HistoryManager adds text, or text becomes black. Name = name; ChannelName = name; if (!DesignMode) { HistoryManager.InsertLastLines(ChannelName, ChatBox); } playerBox.IsSorted = true; Program.ToolTip.SetText(playerSearchBox.TextBox, "Enter name or country shortcut to find"); VisibleChanged += ChatControl_VisibleChanged; ChatBox.MouseUp += chatBox_MouseUp; ChatBox.MouseDown += chatBox_MouseDown; ChatBox.MouseMove += chatBox_MouseMove; ChatBox.FocusInputRequested += (s, e) => GoToSendBox(); ChatBox.ChatBackgroundColor = TextColor.background; //same as Program.Conf.BgColor but TextWindow.cs need this. ChatBox.IRCForeColor = 14; //mirc grey. Unknown use Program.TasClient.ChannelUserAdded += client_ChannelUserAdded; Program.TasClient.ChannelUserRemoved += client_ChannelUserRemoved; Program.TasClient.UserStatusChanged += TasClient_UserStatusChanged; // Program.TasClient.ChannelUsersAdded += TasClient_ChannelUsersAdded; Program.TasClient.Said += client_Said; Program.TasClient.UserRemoved += TasClient_UserRemoved; Program.TasClient.ChannelTopicChanged += TasClient_ChannelTopicChanged; Program.SteamHandler.Voice.UserStartsTalking += VoiceOnUserChanged; Program.SteamHandler.Voice.UserStopsTalking += VoiceOnUserChanged; Program.SteamHandler.Voice.UserVoiceEnabled += VoiceOnUserChanged; Channel channel; Program.TasClient.JoinedChannels.TryGetValue(ChannelName, out channel); minuteTimer = new Timer(60000) { AutoReset = true }; minuteTimer.Elapsed += (s, e) => { if (DateTime.Now.Minute == 0 && IsHandleCreated && !IsDisposed) { Invoke(new Action(() => AddLine(new ChimeLine()))); } }; minuteTimer.Start(); //Topic Box that displays over the channel topicBox.IRCForeColor = 14; //mirc grey. Unknown use topicBox.ChatBackgroundColor = TextColor.topicBackground; topicBox.HorizontalScroll.Enabled = true; topicBox.BorderStyle = BorderStyle.FixedSingle; topicBox.VerticalScroll.Visible = false; topicBox.VerticalScroll.Enabled = false; topicBox.AutoSize = true; topicBox.AutoSizeMode = AutoSizeMode.GrowAndShrink; topicBox.HideScroll = true; topicBox.ShowUnreadLine = false; topicBox.ShowHistory = false; //hide mappanel for normal chat operation. Overriden in BattleChatControl.cs playerListMapSplitContainer.Panel2Collapsed = true; sendBox.CompleteWord += (word) => //autocomplete of username { var w = word.ToLower(); var firstResult = playerBox.GetUserNames().Where(x => x.ToLower().StartsWith(w)).Union(playerBox.GetUserNames().Where(x => x.ToLower().Contains(w))); if (true) { var zkChatArea = Program.MainWindow.navigationControl.ChatTab.GetChannelControl("zk"); if (zkChatArea != null) { var extraResult = zkChatArea.playerBox.GetUserNames() .Where(x => x.ToLower().StartsWith(w)) .Union(zkChatArea.playerBox.GetUserNames().Where(x => x.ToLower().Contains(w))); firstResult = firstResult.Concat(extraResult); //Reference: http://stackoverflow.com/questions/590991/merging-two-ienumerablets } } return(firstResult); }; if (channel != null) { foreach (var userName in Program.TasClient.JoinedChannels[ChannelName].Users.Keys) { AddUser(userName); } } }