private static void Main() { tabView = new TabView("A RAGENativeUI Pause Menu"); tabView.MoneySubtitle = "$10.000.000"; tabView.Name = "Here goes the Name! :D"; Dictionary <string, string> listDict = new Dictionary <string, string>() { { "First Item", "Text filler" }, { "Second Item", "Hey, here there's some text" }, { "Third Item", "Duh!" }, }; tabView.AddTab(simpleListTab = new TabItemSimpleList("A List", listDict)); simpleListTab.Activated += (s, e) => Game.DisplaySubtitle("I'm in the simple list tab", 5000); List <MissionInformation> missionsInfo = new List <MissionInformation>() { new MissionInformation("Mission One", new Tuple <string, string>[] { new Tuple <string, string>("This the first info", "Random Info"), new Tuple <string, string>("This the second info", "Random Info #2") }) { Logo = new MissionLogo(Game.CreateTextureFromFile("DefaultSkin.png")) }, new MissionInformation("Mission Two", "I have description!", new Tuple <string, string>[] { new Tuple <string, string>("Objective", "Mission Two Objective") }), }; tabView.AddTab(missionSelectTab = new TabMissionSelectItem("I'm a Mission Select Tab", missionsInfo)); missionSelectTab.OnItemSelect += (info) => { if (info.Name == "Mission One") { Game.DisplaySubtitle("~g~Mission One Activated", 5000); } else if (info.Name == "Mission Two") { Game.DisplaySubtitle("~b~Mission Two Activated", 5000); } }; tabView.AddTab(textTab = new TabTextItem("TabTextItem", "Text Tab Item", "I'm a text tab item")); textTab.Activated += (s, e) => Game.DisplaySubtitle("I'm in the text tab", 5000); List <TabItem> items = new List <TabItem>(); for (int i = 0; i < 10; i++) { TabItem tItem = i < 5 ? (TabItem) new TabTextItem("Item #" + i, "Title #" + i, "Some random text for #" + i) : (TabItem) new TabInteractiveListItem("Item #" + i, CreateMenuItems()); tItem.Activated += (s, e) => Game.DisplaySubtitle("Activated Submenu Item #" + submenuTab.Index, 5000); items.Add(tItem); } tabView.AddTab(submenuTab = new TabSubmenuItem("A submenu", items)); UIMenuItem[] menuItems = CreateMenuItems(); menuItems[0].Activated += (m, s) => Game.DisplaySubtitle("Activated first item!"); TabInteractiveListItem interactiveListItem = new TabInteractiveListItem("An Interactive List", menuItems); // set fast scrolling on scroller item with a slider bar (see MenuExtensions.cs) interactiveListItem.BackingMenu.WithFastScrollingOn(menuItems.Where(i => i is UIMenuScrollerItem s && s.SliderBar != null)); interactiveListItem.BackingMenu.OnIndexChange += (m, i) => Game.DisplaySubtitle("Selected #" + i); tabView.AddTab(interactiveListItem); tabView.RefreshIndex(); // start the fiber which will handle drawing and processing the pause menu GameFiber.StartNew(ProcessMenus); // continue with the plugin... Game.Console.Print($" Press {KeyBinding} to open the pause menu."); Game.DisplayHelp($"Press ~{KeyBinding.GetInstructionalId()}~ to open the pause menu."); }
public static void Main() { Game.FrameRender += Process; tabView = new TabView("A RAGENativeUI Pause Menu"); tabView.MoneySubtitle = "$10.000.000"; tabView.Name = "Here goes the Name! :D"; Dictionary <string, string> listDict = new Dictionary <string, string>() { { "First Item", "Text filler" }, { "Second Item", "Hey, here there's some text" }, { "Third Item", "Duh!" }, }; tabView.AddTab(simpleListTab = new TabItemSimpleList("A List", listDict)); simpleListTab.Activated += SimpleListTab_Activated; List <MissionInformation> missionsInfo = new List <MissionInformation>() { new MissionInformation("Mission One", new Tuple <string, string>[] { new Tuple <string, string>("This the first info", "Random Info"), new Tuple <string, string>("This the second info", "Random Info #2") }) { Logo = new MissionLogo(Game.CreateTextureFromFile("DefaultSkin.png")) }, new MissionInformation("Mission Two", "I have description!", new Tuple <string, string>[] { new Tuple <string, string>("Objective", "Mission Two Objective") }), }; tabView.AddTab(missionSelectTab = new TabMissionSelectItem("I'm a Mission Select Tab", missionsInfo)); missionSelectTab.OnItemSelect += MissionSelectTab_OnItemSelect; tabView.AddTab(textTab = new TabTextItem("TabTextItem", "Text Tab Item", "I'm a text tab item")); textTab.Activated += TextTab_Activated; List <TabItem> items = new List <TabItem>(); for (int i = 0; i < 10; i++) { TabTextItem tItem = new TabTextItem("Item #" + i, "Title #" + i, "Some random text for #" + i); tItem.Activated += SubMenuItem_Activated; items.Add(tItem); } tabView.AddTab(submenuTab = new TabSubmenuItem("A submenu", items)); List <UIMenuItem> menuItems = new List <UIMenuItem>() { new UIMenuItem("First MenuItem!", ""), new UIMenuCheckboxItem("A Checkbox", true), new UIMenuListItem("List", new List <dynamic>() { "something", new Vector3(5, 0, 5), 10, 5, false, }, 0), }; TabInteractiveListItem interactiveListItem = new TabInteractiveListItem("An Interactive List", menuItems); tabView.AddTab(interactiveListItem); tabView.RefreshIndex(); while (true) { GameFiber.Yield(); } }
public async void OpenCustomPauseMenu() { TabView MenuContainer = new TabView("This is the title", "Subtitle"); MenuContainer.SideStringTop = "Player_Name"; MenuContainer.SideStringMiddle = "Middle_String"; MenuContainer.SideStringBottom = "Bottom_string"; MenuContainer.DisplayHeader = true; _menuPool.AddPauseMenu(MenuContainer); TabItem Item1 = new TabItem("simple TabItem"); TabTextItem Item2 = new TabTextItem("TabTextItem", "This is the Title inside", "With a cool text to be added where you can write whatever you want"); TabItemSimpleList Item3 = new TabItemSimpleList("TabItemSimpleList", new Dictionary <string, string>() { ["Item 1"] = "subItem 1", ["Item 2"] = "subItem 2", ["Item 3"] = "subItem 3", ["Item 4"] = "subItem 4", ["Item 5"] = "subItem 5", ["Item 6"] = "subItem 6" }); List <UIMenuItem> items = new List <UIMenuItem>() { new UIMenuItem("Item 1"), new UIMenuCheckboxItem("Item 2", true), new UIMenuListItem("Item 3", new List <dynamic>() { "Item1", 2, 3.0999 }, 0), new UIMenuSliderItem("Item 4", "", true), new UIMenuSliderProgressItem("Item 5", 20, 0), }; TabInteractiveListItem Item4 = new TabInteractiveListItem("TabInteractiveListItem", items); List <MissionInformation> info = new List <MissionInformation>() { new MissionInformation("Mission 1", new List <Tuple <string, string> >() { new Tuple <string, string>("item 1", "description 1"), new Tuple <string, string>("item 2", "description 2"), new Tuple <string, string>("item 3", "description 3"), new Tuple <string, string>("item 4", "description 4"), new Tuple <string, string>("item 5", "description 5"), }), new MissionInformation("Mission 2", new List <Tuple <string, string> >() { new Tuple <string, string>("item 1", "description 1"), new Tuple <string, string>("item 2", "description 2"), new Tuple <string, string>("item 3", "description 3"), new Tuple <string, string>("item 4", "description 4"), new Tuple <string, string>("item 5", "description 5"), }), }; TabSubmenuItem Item5 = new TabSubmenuItem("TabSubmenuItem", new List <TabItem>() { new TabItem("simple TabItem"), new TabTextItem("TabTextItem", "This is the Title inside", "With a cool text to be added where you can write whatever you want"), new TabItemSimpleList("TabItemSimpleList", new Dictionary <string, string>() { ["Item 1"] = "subItem 1", ["Item 2"] = "subItem 2", ["Item 3"] = "subItem 3", ["Item 4"] = "subItem 4", ["Item 5"] = "subItem 5", ["Item 6"] = "subItem 6" }), new TabMissionSelectItem("Mission tab", info), new TabInteractiveListItem("TabInteractiveListItem", items) }); TabMissionSelectItem Item6 = new TabMissionSelectItem("Mission tab", info); MenuContainer.AddTab(Item1); MenuContainer.AddTab(Item2); MenuContainer.AddTab(Item3); MenuContainer.AddTab(Item4); MenuContainer.AddTab(Item5); MenuContainer.AddTab(Item6); // this way we can choose which tab is the defualt one Item1.Active = true; Item1.Focused = true; Item1.Visible = true; MenuContainer.Visible = true; // items have events exactly the same as UIMenuItems and you can handle TabInteractiveListItem items just like that }