示例#1
0
        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);
            };
        }
示例#2
0
        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);
                }
            }
        }
示例#3
0
        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);
                }
            }
        }