void UnsignalTab(ConversationViewModel convoVM) { convoVM.IsHighlighted = false; signalledTabs.Remove(convoVM); if (signalledTabs.Count == 0) { tabHighlightTimer.Stop(); } }
void SignalTab(ConversationViewModel convoVM) { if (!signalledTabs.Contains(convoVM)) { if (openTabsView.CurrentItem == convoVM) { return; } if (signalledTabs.Count == 0) { tabHighlightTimer.Start(); } signalledTabs.Add(convoVM); convoVM.IsHighlighted = true; } }
void OnNewConversation(object sender, NewConversationEventArgs e) { dispatcher.Invoke(() => { var convoVM = new ConversationViewModel(client, e.Conversation); convoVM.CloseRequested += OnConversationCloseRequested; openTabs.Add(convoVM); e.Conversation.NewMessage += (_sender, _e) => { SignalTab(convoVM); }; openTabsView.Refresh(); SignalTab(convoVM); if (!e.ClientStarted) { App.NotificationManager.CreateNotification(e.Conversation.Contact.DisplayName, "has started a conversation", Colors.Transparent, App.NotificationManager.DefaultShowTime); } }); }
void CloseConversation(ConversationViewModel vm) { conversations.DeleteConversation(vm.Conversation); openTabs.Remove(vm); vm.Dispose(); }
void UnsignalTab(ConversationViewModel convoVM) { convoVM.IsHighlighted = false; signalledTabs.Remove(convoVM); if (signalledTabs.Count == 0) tabHighlightTimer.Stop(); }
void SignalTab(ConversationViewModel convoVM) { if (!signalledTabs.Contains(convoVM)) { if (openTabsView.CurrentItem == convoVM) return; if (signalledTabs.Count == 0) tabHighlightTimer.Start(); signalledTabs.Add(convoVM); convoVM.IsHighlighted = true; } }