void TabHost_TabItemSelected(object sender, TabItemEventArgs e) { stopwatch.Stop(); if (e.TabItem.Content == null && e.TabItem.Tag is IViewPlugin) { // Lazy-initialize the contents of the tabitem var view = (IViewPlugin) e.TabItem.Tag; e.TabItem.Content = view.CreateView(); } string tabName; if (e.TabItem.Content is IControllableTab) { var tab = (IControllableTab) e.TabItem.Content; TabHost.HeaderContent = tab.CustomHeaderContent ?? dock; tabName = tab.Title; } else { TabHost.HeaderContent = dock; tabName = dock.GetType().ToString().Split('.').Last(); } // Switch focus to first responder (if any) if (e.TabItem.Content as FrameworkElement != null) e.TabItem.FocusFirstResponder(); stopwatch.Start(); ClientStats.LogEventWithTime("Trace Closed", (int)stopwatch.Elapsed.TotalMinutes); ClientStats.CreateNewTrace(); ClientStats.LogEventWithSegment("Switch to tab", e.TabItem.WellKnownView.ToString()); EventBroker.Publish(AppEvents.TabChanged, tabName); }
void TabControl_TabItemSelected(object sender, TabItemEventArgs e) { if (!visited.Contains(e.TabItem)) visited.Add(e.TabItem); }
void StreamsTab_TabItemSelected(object sender, TabItemEventArgs e) { var ti = (OverviewColumnTabItem)e.TabItem; var stream = ti.Content as RealtimeStream; if (stream == null) { if (ti.Channel == null && String.IsNullOrEmpty(ti.Keyword)) { ClientStats.LogEventWithSegment("Change tab in realtime streams overview column", "All streams"); // All docked accounts tab stream = new RealtimeStream(ti.Channel, ti.Keyword) { IsColumnView = true }; } else { ClientStats.LogEventWithSegment("Change tab in realtime streams overview column", ti.Channel.Configuration.DisplayName); stream = ControlCache.Get(ti.Channel, ti.Keyword, true); stream.UpdateDockState(); // Disconnect from any parent that might hold the visual tree for our element if (stream.Parent != null) ((ContentControl)stream.Parent).Content = null; stream.AfterUndock = delegate { stream.StatusUpdated -= Stream_StatusUpdated; stream.AfterUndock = null; }; } stream.StatusUpdated += Stream_StatusUpdated; ti.Content = stream; } // Updates visual appearance of tab control depending of wether we have a sub-tab or not StreamsTab.Tag = stream.SupportsMentions ? "StreamColumnWithMentions" : "StreamColumn"; OnPropertyChanged("Channel"); }