Esempio n. 1
0
        public void HandleMessage(AMessage message, VSPCContext context)
        {
            var  textMessage  = (ATextMessage)message;
            bool messageShown = false;

            mainWindow.DoInUIThread(() =>
            {
                foreach (var ccTab in mainWindow.CommChannelTabs.Where(t => !t.IsAllTab))
                {
                    if (ccTab.MessageBelongsToMe(textMessage, context.Callsign))
                    {
                        messageShown |= (!ccTab.IsAllTab || textMessage.SenderIsServer);     // Only mark message as shown if the message is shown in a tab other than "All" with server messages as exception
                        ccTab.ShowMessage(textMessage);
                    }
                }
                if (!messageShown && NewTabShouldBeOpened(textMessage, context))
                {
                    CommChannelTab newCommTab = mainWindow.AddNewCommTab(textMessage.Sender);
                    newCommTab.ShowMessage(textMessage);
                    messageShown = true;
                }

                var allTab = mainWindow.CommChannelTabs.Single(t => t.IsAllTab);
                if (messageShown || textMessage.SenderIsServer)
                {
                    allTab.ShowMessage(textMessage);
                }
            });
        }
Esempio n. 2
0
        internal CommChannelTab AddNewCommTab(string receiver)
        {
            var newTabItem = new TabItem()
            {
                Header = receiver, Content = new ListBox()
            };

            tabControl1.Items.Add(newTabItem);
            var newCommChannelTab = new CommChannelTab()
            {
                TabItem       = newTabItem,
                ListBox       = (ListBox)newTabItem.Content,
                ChannelName   = "",
                ChannelFreq   = receiver,
                IsPrivateChat = true
            };

            commChannelTabs.Add(newCommChannelTab);

            return(newCommChannelTab);
        }
Esempio n. 3
0
        internal CommChannelTab AddNewCommTab(string receiver)
        {
            var newTabItem = new TabItem() { Header = receiver, Content = new ListBox() };
            tabControl1.Items.Add(newTabItem);
            var newCommChannelTab = new CommChannelTab()
                                        {
                                            TabItem = newTabItem,
                                            ListBox = (ListBox) newTabItem.Content,
                                            ChannelName = "",
                                            ChannelFreq = receiver,
                                            IsPrivateChat = true
                                        };
            commChannelTabs.Add(newCommChannelTab);

            return newCommChannelTab;
        }