/// <summary> /// /// </summary> /// <param name="eventArgs"></param> /// <returns></returns> private TabUiItem GetRequestedTabFromOpenTabEventArgs(OpenTabEventArgs eventArgs) { bool isValidUrl = WebUriProcessorComponent.IsValidUri(eventArgs.RequestedUrl); if (isValidUrl) { Uri uri = new Uri(eventArgs.RequestedUrl); if (uri.Scheme.ToLowerInvariant() == App.BROWSER_RESERVED_SCHEME) { switch (uri.Host) { case BrowserReservedPages.ABOUT: { TabUiItem aboutTabUiItem = this.GenerateAboutPage(); return(aboutTabUiItem); } break; case BrowserReservedPages.SETTINGS: { TabUiItem aboutTabUiItem = this.GenerateSettingsPage(); return(aboutTabUiItem); } break; } } } return(new TabUiItem()); }
/// <summary> /// /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void ViewModel_OnOpenTabRequested(object sender, EventArgs e) { OpenTabEventArgs eventArgs = (e as OpenTabEventArgs); TabUiItem requestedTab = this.GetRequestedTabFromOpenTabEventArgs(eventArgs); this.AddTab(requestedTab); }
/// <summary> /// /// </summary> /// <param name="eventArgs"></param> private void OnTabViewTabCloseRequested(TabViewTabCloseRequestedEventArgs eventArgs) { TabUiItem tabUiItem = (eventArgs.Item as TabUiItem); TabViewItem tabViewItem = (eventArgs.Tab as TabViewItem); this.CurrentTabUiItems.Remove(tabUiItem); this.CheckTabItemsEmptyTabs(); }
/// <summary> /// /// </summary> /// <param name="content"></param> /// <param name="title"></param> /// <param name="icon"></param> private TabUiItem GenerateTabUiItem(object content, string title, IconSource icon) { TabUiItem tabUiItem = new TabUiItem { DocumentTitle = title, Content = content, DocumentIcon = icon }; return(tabUiItem); }
/// <summary> /// /// </summary> /// <param name="tabUiItem"></param> private void AddTab(TabUiItem tabUiItem) { /* * foreach(TabUiItem tab in this.CurrentTabUiItems) * { * tab.IsSelected = false; * } * * tabUiItem.IsSelected = true; * /* */ this.CurrentTabUiItems.Add(tabUiItem); }
/// <summary> /// /// </summary> private void OpenNewDefaultWebViewTab() { Browser browserControl = new Browser(); browserControl.ViewModel.OnWebViewHeaderChanged += ViewModel_OnWebViewHeaderChanged; browserControl.ViewModel.OnOpenTabRequested += ViewModel_OnOpenTabRequested; TabUiItem tabUiItem = new TabUiItem { DocumentTitle = " ", Content = browserControl }; this.AddTab(tabUiItem); }
/// <summary> /// /// </summary> private TabUiItem GenerateSettingsPage() { ResourceLoader resources = ResourceLoader.GetForCurrentView("Resources"); string title = resources.GetString("ViewTitleSettings"); IconSource icon = new FontIconSource { Glyph = "\uE713", FontFamily = new FontFamily("Segoe MDL2 Assets"), FontSize = 20 }; SettingsView view = new SettingsView(); view.ViewModel.OnOpenTabRequested += ViewModel_OnOpenTabRequested; TabUiItem tabUiItem = this.GenerateTabUiItem(view, title, icon); return(tabUiItem); }
/// <summary> /// /// </summary> /// <param name="eventArgs"></param> private void ProcessWebViewHeaderChanged(WebViewHeaderChangedEventArgs eventArgs) { Guid browserId = eventArgs.BrowserId; TabUiItem tabUiItem = this.CurrentTabUiItems.FirstOrDefault(x => x.Content.GetType() == typeof(Browser) && (x.Content as Browser).ViewModel.GetId().Equals(browserId)); if (tabUiItem != null) { string documentTitle = eventArgs.DocumentTitle; tabUiItem.DocumentTitle = documentTitle; string documentIcon = eventArgs.DocumentIcon; if (documentIcon == null) { tabUiItem.DocumentIcon = null; } else { tabUiItem.DocumentIcon = new BitmapIconSource { UriSource = new Uri(documentIcon), ShowAsMonochrome = false }; } } }
/// <summary> /// /// </summary> /// <param name="selectedItem"></param> public TabIndexChangedEventArgs(TabUiItem selectedItem) { SelectedItem = selectedItem; }
/// <summary> /// /// </summary> private void OpenSettingsPage() { TabUiItem tabUiItem = this.GenerateSettingsPage(); this.AddTab(tabUiItem); }
/// <summary> /// /// </summary> private void OpenAboutPage() { TabUiItem tabUiItem = this.GenerateAboutPage(); this.AddTab(tabUiItem); }