public TabbedViewModelBase(MainContext context) : base(context) { TabItemType selected = SelectedTab; TabItems = new List <TabItem>() { new TabItem { Order = 0, Icon = "M400 96a48 48 0 1 0-48-48 48 48 0 0 0 48 48zm-4 121a31.9 31.9 0 0 0 20 7h64a32 32 0 0 0 0-64h-52.78L356 103a31.94 31.94 0 0 0-40.81.68l-112 96a32 32 0 0 0 3.08 50.92L288 305.12V416a32 32 0 0 0 64 0V288a32 32 0 0 0-14.25-26.62l-41.36-27.57 58.25-49.92zm116 39a128 128 0 1 0 128 128 128 128 0 0 0-128-128zm0 192a64 64 0 1 1 64-64 64 64 0 0 1-64 64zM128 256a128 128 0 1 0 128 128 128 128 0 0 0-128-128zm0 192a64 64 0 1 1 64-64 64 64 0 0 1-64 64z", IsSelected = selected == TabItemType.Rides, OnClick = Context.UI.GoToRideOverviewScreenAsync, }, new TabItem { Order = 1, Icon = "M288 0c-69.59 0-126 56.41-126 126 0 56.26 82.35 158.8 113.9 196.02 6.39 7.54 17.82 7.54 24.2 0C331.65 284.8 414 182.26 414 126 414 56.41 357.59 0 288 0zm0 168c-23.2 0-42-18.8-42-42s18.8-42 42-42 42 18.8 42 42-18.8 42-42 42zM20.12 215.95A32.006 32.006 0 0 0 0 245.66v250.32c0 11.32 11.43 19.06 21.94 14.86L160 448V214.92c-8.84-15.98-16.07-31.54-21.25-46.42L20.12 215.95zM288 359.67c-14.07 0-27.38-6.18-36.51-16.96-19.66-23.2-40.57-49.62-59.49-76.72v182l192 64V266c-18.92 27.09-39.82 53.52-59.49 76.72-9.13 10.77-22.44 16.95-36.51 16.95zm266.06-198.51L416 224v288l139.88-55.95A31.996 31.996 0 0 0 576 426.34V176.02c0-11.32-11.43-19.06-21.94-14.86z", IsSelected = selected == TabItemType.Trails, OnClick = Context.UI.GoToExploreTrailsScreenAsync, }, new TabItem { Order = 2, Icon = "M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z", IsSelected = selected == TabItemType.Profile, OnClick = Context.UI.GoToProfileScreenAsync, }, new TabItem { Order = 3, Icon = "M487.4 315.7l-42.6-24.6c4.3-23.2 4.3-47 0-70.2l42.6-24.6c4.9-2.8 7.1-8.6 5.5-14-11.1-35.6-30-67.8-54.7-94.6-3.8-4.1-10-5.1-14.8-2.3L380.8 110c-17.9-15.4-38.5-27.3-60.8-35.1V25.8c0-5.6-3.9-10.5-9.4-11.7-36.7-8.2-74.3-7.8-109.2 0-5.5 1.2-9.4 6.1-9.4 11.7V75c-22.2 7.9-42.8 19.8-60.8 35.1L88.7 85.5c-4.9-2.8-11-1.9-14.8 2.3-24.7 26.7-43.6 58.9-54.7 94.6-1.7 5.4.6 11.2 5.5 14L67.3 221c-4.3 23.2-4.3 47 0 70.2l-42.6 24.6c-4.9 2.8-7.1 8.6-5.5 14 11.1 35.6 30 67.8 54.7 94.6 3.8 4.1 10 5.1 14.8 2.3l42.6-24.6c17.9 15.4 38.5 27.3 60.8 35.1v49.2c0 5.6 3.9 10.5 9.4 11.7 36.7 8.2 74.3 7.8 109.2 0 5.5-1.2 9.4-6.1 9.4-11.7v-49.2c22.2-7.9 42.8-19.8 60.8-35.1l42.6 24.6c4.9 2.8 11 1.9 14.8-2.3 24.7-26.7 43.6-58.9 54.7-94.6 1.5-5.5-.7-11.3-5.6-14.1zM256 336c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z", IsSelected = selected == TabItemType.Settings, OnClick = Context.UI.GoToSettingsScreenAsync, }, }; }
public TabModel(FrameworkElement content, TabItemType usage) { if (content == null) { throw new ArgumentNullException(nameof(content)); } Content = content; Usage = usage; }
public bool Open(UserTreeViewItem sender) { if (!sender.CanEdit()) { MessageBox.Show(String.Format("Can't open {0}", sender.Header)); return(false); } if (sender.PersonaFile.Object is IPersonaFile pf) { TabItemType DataContextType = TabItemType.Null; object DataContext; string Title = sender.PersonaFile.Name; if (pf.Type == FileType.SPR) { DataContext = new Editors.SPREditorVM(sender.PersonaFile.Object as PersonaEditorLib.FileStructure.SPR.SPR); DataContextType = TabItemType.SPR; } else if (pf.Type == FileType.SPD) { DataContext = new Editors.SPREditorVM(sender.PersonaFile.Object as PersonaEditorLib.FileStructure.SPR.SPD); DataContextType = TabItemType.SPR; } else if (pf.Type == FileType.PTP) { DataContext = new Editors.PTPEditorVM(sender.PersonaFile.Object as PersonaEditorLib.FileStructure.Text.PTP); DataContextType = TabItemType.PTP; } else if (pf.Type == FileType.BMD) { DataContext = new Editors.BMDEditorVM(sender.PersonaFile); DataContextType = TabItemType.BMD; } else if (pf.Type == FileType.FTD) { DataContext = new Editors.FTDEditorVM(sender.PersonaFile.Object as PersonaEditorLib.FileStructure.Text.FTD); DataContextType = TabItemType.FTD; } //else if (pf.Type == FileType.FNT) //{ // DataContext = new Editors.FNTEditorVM(sender.personaFile.Object as PersonaEditorLib.FileStructure.FNT.FNT); // DataContextType = TabItemType.FNT; //} else if (pf.Type == FileType.DAT) { DataContext = new Editors.HEXEditorVM(sender.PersonaFile.Object as PersonaEditorLib.FileStructure.DAT); DataContextType = TabItemType.HEX; } else { return(false); } ClosableTabItemVM closableTabItemVM = new ClosableTabItemVM(); closableTabItemVM.DataContext = DataContext; closableTabItemVM.DataContextType = DataContextType; closableTabItemVM.TabTitle = Title; closableTabItemVM.PropertyChanged += ClosableTabItemVM_PropertyChanged; closableTabItemVM.PersonaFile = sender; tabCollection.Add(closableTabItemVM); SelectedTabIndex = tabCollection.IndexOf(closableTabItemVM); sender.UnEnable(); return(true); } return(false); }