public JumpTo() : base(LocalisationManager.GetString(OsuString.JumpToDialog_Title), true) { spriteManager.Add(new pBox(new Vector2(PADDING, 79), new Vector2(GameBase.WindowManager.WidthScaled - (PADDING * 2), 1), 1, Color.White)); spriteManager.Add(new pBox(new Vector2(PADDING, 440), new Vector2(GameBase.WindowManager.WidthScaled - (PADDING * 2), 1), 1, Color.White)); Rectangle scrollableArea = new Rectangle(PADDING, 80, (int)(640 * GameBase.WindowManager.WidthWidescreenRatio) - (PADDING * 2), 360); scrollableView = new pScrollableArea(scrollableArea, Vector2.Zero, true, 0, defaultTargetType); mapManager = new SpriteManager(true); topLayer = new SpriteManager(true); mapManager.SetWidescreen(GameBase.WindowManager.IsWidescreen); collectionLabel = new pText(LocalisationManager.GetString(OsuString.SongSelection_Collections) + ":", 20, new Vector2(PADDING, 30), 2, true, new Color(254, 220, 97)); collections = new pDropdown(topLayer, "All", new Vector2(PADDING, 55), 140, 3); searchBox = new pSearchBox(20, new Vector2(PADDING, 50), 20, Graphics.Renderers.TextAlignment.Right); searchTime = -1; spriteManager.Add(searchBox.SpriteCollection); spriteManager.Add(collectionLabel); scrollableView.AddChild(mapManager); searchBox.OnChange += delegate(pTextBox sender, bool newText) { if (!newText) { return; } if (searchBox.IsDefault && searchBox.textBeforeCommit.Length == 1) { searchTime = GameBase.Time; } else if (!searchBox.IsDefault) { searchTime = GameBase.Time + 300; } }; Closed += delegate { MusicControl.ClearPool(); }; collections.AddOption("All", "All"); collections.SetSelected("All", true); foreach (string c in CollectionManager.Collections.Keys) { collections.AddOption(c, c); } collections.OnSelect += collections_OnSelect; SelectedMap = BeatmapManager.Current; layout(); }
internal override void Display() { spriteManager.HandleOverlayInput = true; pText t = new pText("Game Name:", 16, new Vector2(30, 100), 0.92f, true, Color.White); spriteManager.Add(t); gameName = new pTextBox(ConfigManager.sUsername + "'s game", 16, new Vector2(150, 100), 450, 0.92f); gameName.LengthLimit = 50; gameName.OnCommit += gameName_OnCommit; gameName.ResetTextOnEdit = true; spriteManager.Add(gameName.SpriteCollection); usePassword = new pCheckbox("Require password to join", new Vector2(30, 130), 0.92f, false); usePassword.OnCheckChanged += usePassword_OnCheckChanged; spriteManager.Add(usePassword.SpriteCollection); t = new pText("Password:"******"", 16, new Vector2(150, 160), 450, 0.92f); gamePassword.LengthLimit = 50; spriteManager.Add(gamePassword.SpriteCollection); passwordSprites.AddRange(gamePassword.SpriteCollection); t = new pText("Max Players:", 16, new Vector2(30, 190), 0.92f, true, Color.White); spriteManager.Add(t); currentVerticalSpace = 250; AddOption("Start Game", Color.LimeGreen, onClick, false); AddOption("Cancel", Color.LightGray, cancel, false); playerCount = new pDropdown(null, "", new Vector2(150, 190), 200, 0.96f); playerCount.AddOption("2 players", 2); playerCount.AddOption("3 players", 3); playerCount.AddOption("4 players", 4); playerCount.AddOption("5 players", 5); playerCount.AddOption("6 players", 6); playerCount.AddOption("7 players", 7); playerCount.AddOption("8 players", 8); if (bMatch.MAX_PLAYERS > 8) { playerCount.AddOption(bMatch.MAX_PLAYERS + " players", bMatch.MAX_PLAYERS); } playerCount.SetSelected(8, true); playerCount.SpriteManager = spriteManager; spriteManager.Add(playerCount.SpriteCollection); base.Display(); Background.InitialColour = new Color(0, 0, 0, 200); passwordSprites.ForEach(s => s.FadeOut(0)); }
public OptionDropdown(OsuString title, IEnumerable <pDropdownItem> items = null, HasObjectValue binding = null, EventHandler onChange = null) { this.binding = binding; ValueChangedObservable changeObservation = binding as ValueChangedObservable; if (changeObservation != null) { changeObservation.ValueChanged += changeObservation_ValueChanged; } string text = LocalisationManager.GetString(title); pText header = new pText(text, 12, Vector2.Zero, 1, true, Color.White); spriteManager.Add(header); Size = header.MeasureText() + new Vector2(5, 0); Dropdown = new pDropdown(spriteManager, String.Empty, new Vector2(Size.X, 0), ELEMENT_SIZE - Size.X, 1) { ColumnLimit = 10 }; Dropdown.OnSelect += Dropdown_OnSelect; Dropdown.OnDisplayChanged += Dropdown_OnDisplayChanged; Dropdown.SpriteMainBox.ClickRequiresConfirmation = true; if (onChange != null) { Dropdown.OnSelect += onChange; } if (items != null) { foreach (pDropdownItem i in items) { Dropdown.AddOption(i); addKeyword(i.Text); } } if (binding != null) { Dropdown.SetSelected(binding.ObjectValue, true); } addKeyword(text); addKeyword(title.ToString()); }
internal OptionsManiaBindingWizard() : base(LocalisationManager.GetString(OsuString.Options_TabSkin_CustonKey), false) { SkinManager.CreateUserSkin(); spriteManager.HandleOverlayInput = true; BackButton back = new BackButton(delegate { Close(); }, false, true); spriteManager.Add(back.SpriteCollection); int horizontal = 225 + (int)GameBase.WindowManager.OffsetXScaled; int vertCurrent = 80; int vertSpacing = 35; dKeyConfig = new pDropdown(spriteManager, String.Empty, new Vector2(horizontal + 10, vertCurrent), 75, 1); for (int i = 1; i <= StageMania.MAX_COLUMNS; incrementKeyConfig(ref i)) { dKeyConfig.AddOption(getKeyOptionText(i, i >= 10), i); } dKeyConfig.OnSelect += (obj, ev) => { currentKeyConfig = (int)obj; cBindAlternateKeys.SetStatusQuietly(false); LoadKeys(true); }; cSplitLayout = new pCheckbox(LocalisationManager.GetString(OsuString.Options_TabSkin_SplitLayout), new Vector2(horizontal + 105, vertCurrent), 0.8F, false); cSplitLayout.OnCheckChanged += (obj, bl) => { LoadKeys(); }; spriteManager.Add(cSplitLayout.SpriteCollection); vertCurrent = 300; dSpecialStyle = new pDropdown(spriteManager, string.Empty, new Vector2(horizontal - 65, vertCurrent), 150, 0.8f, false); dSpecialStyle.AddOption(LocalisationManager.GetString(OsuString.Options_ManiaSpecial_Normal), 0); dSpecialStyle.AddOption(LocalisationManager.GetString(OsuString.Options_ManiaSpecial_Left), 1); dSpecialStyle.AddOption(LocalisationManager.GetString(OsuString.Options_ManiaSpecial_Right), 2); dSpecialStyle.OnSelect += (obj, ev) => { switch ((int)obj) { case 1: stage.Skin.SpecialStyle = ManiaSpecialStyle.Left; break; case 2: stage.Skin.SpecialStyle = ManiaSpecialStyle.Right; break; default: stage.Skin.SpecialStyle = ManiaSpecialStyle.None; break; } SkinManager.SaveSkin(); LoadKeys(); }; cBindAlternateKeys = new pCheckbox(LocalisationManager.GetString(OsuString.Options_TabSkin_BindAlternateSpecialKeys), new Vector2(horizontal + 105, vertCurrent), 0.8F, false); cBindAlternateKeys.OnCheckChanged += (obj, bl) => { LoadKeys(); }; spriteManager.Add(cBindAlternateKeys.SpriteCollection); vertCurrent += vertSpacing; cUpsideDown = new pCheckbox(LocalisationManager.GetString(OsuString.Options_TabSkin_UpsiedDown), new Vector2(horizontal, vertCurrent), 0.8F, false); cUpsideDown.OnCheckChanged += (obj, bl) => { stage.Skin.UpsideDown = bl; SkinManager.SaveSkin(); }; spriteManager.Add(cUpsideDown.SpriteCollection); vertCurrent += vertSpacing; cJudgementLine = new pCheckbox(LocalisationManager.GetString(OsuString.Options_TabSkin_ShowJudgement), new Vector2(horizontal, vertCurrent), 0.8F, false); cJudgementLine.OnCheckChanged += (obj, bl) => { stage.Skin.JudgementLine = bl; SkinManager.SaveSkin(); }; spriteManager.Add(cJudgementLine.SpriteCollection); dKeyConfig.SetSelected(currentKeyConfig, false); }
public OnlineSelection(Game game) : base(game) { if (AudioEngine.AudioState == AudioStates.Playing) { wasPlayingAudio = true; AudioEngine.TogglePause(); } spriteManager = new SpriteManager(true); resultsPane = new pScrollableArea(new Rectangle(0, 82, GameBase.WindowManager.WidthScaled - 4 - OsuDirect.WIDTH, 350), Vector2.Zero, true); spriteManagerFg = new SpriteManager(true); searchInfo = new pText("Type a search to begin.", 11, new Vector2(20, 40), 1, true, Color.YellowGreen); searchInfo.TextBold = true; spriteManager.Add(searchInfo); results = new pText("", 16, new Vector2(20, 80), 1, true, Color.White); spriteManager.Add(results); searchTextBox = new pTextBoxOmniscient(18, new Vector2(20, 20), 300, false, 1.1f); searchTextBox.OnChange += delegate { nextSearchUpdate = GameBase.Time + 600; }; spriteManagerFg.Add(searchTextBox.SpriteCollection); loadingText = new pSprite(TextureManager.Load(@"searching", SkinSource.Osu), new Vector2(320, 240), 1f, true, Color.TransparentWhite); loadingText.Origin = Origins.Centre; loadingText.UpdateTextureAlignment(); GameBase.spriteManager.Add(loadingText); backButton = new BackButton(delegate { GameBase.ChangeMode(OsuModes.Menu); }); spriteManagerFg.Add(backButton.SpriteCollection); int xPos = 330; pButton pb = new pButton("Newest Maps", new Vector2(xPos, 20), new Vector2(100, 20), 1, Color.Orange, delegate { lastSearch = "Newest"; searchTextBox.SetToDefault(); displayModeDropdown.SetSelected(0, false); }); spriteManager.Add(pb.SpriteCollection); xPos += 105; pb = new pButton("Top Rated", new Vector2(xPos, 20), new Vector2(100, 20), 1, Color.OrangeRed, delegate { lastSearch = "Top Rated"; searchTextBox.SetToDefault(); displayModeDropdown.SetSelected(0, false); }); spriteManager.Add(pb.SpriteCollection); xPos += 105; pb = new pButton("Most Played", new Vector2(xPos, 20), new Vector2(100, 20), 1, Color.SkyBlue, delegate { lastSearch = "Most Played"; searchTextBox.SetToDefault(); displayModeDropdown.SetSelected(0, false); }); spriteManager.Add(pb.SpriteCollection); pText t = new pText("Display:", 11, new Vector2(5, 55), 1, true, Color.White); t.TextBold = true; spriteManager.Add(t); displayExisting = new pCheckbox("Show already downloaded maps", 0.88f, new Vector2(320, 54), 1, false); spriteManager.Add(displayExisting.SpriteCollection); displayExisting.OnCheckChanged += displayExisting_OnCheckChanged; displayModeDropdown = new pDropdown(spriteManagerFg, "", new Vector2(50, 54)); displayModeDropdown.AddOption("All", 4); displayModeDropdown.AddOption("Ranked", 0); displayModeDropdown.AddOption("Ranked (Played)", 7); displayModeDropdown.AddOption("Qualified", 3); displayModeDropdown.AddOption("Pending/Help", 2); displayModeDropdown.AddOption("Graveyard", 5); displayModeDropdown.SetSelected(4, true); displayModeDropdown.OnSelect += pd_OnSelect; t = new pText("Mode:", 11, new Vector2(180, 55), 1, true, Color.White); t.TextBold = true; spriteManager.Add(t); displayOsuModeDropdown = new pDropdown(spriteManagerFg, "", new Vector2(220, 54), 85, 1); displayOsuModeDropdown.AddOption(@"All", -1); displayOsuModeDropdown.AddOption(@"osu!", 0); displayOsuModeDropdown.AddOption(@"Taiko", 1); displayOsuModeDropdown.AddOption(@"Catch the Beat", 2); displayOsuModeDropdown.AddOption(@"osu!mania", 3); displayOsuModeDropdown.SetSelected(-1, true); displayOsuModeDropdown.OnSelect += mode_OnSelect; KeyboardHandler.OnKeyRepeat += KeyboardHandler_OnKeyRepeat; }
internal override void Display() { descriptionTexts = new List <pText>(); currentVerticalSpace = 300; const int width = 450; int horizontalPosition = -width / 2; Fields fields = Fields.Centre; pText reportedUserText = new pText(LocalisationManager.GetString(OsuString.UserReportDialog_ReportedUser), 15, new Vector2(horizontalPosition, -100), 0.92f, true, Color.White); reportedUserText.Field = fields; reportedUserText.Origin = Origins.TopLeft; descriptionTexts.Add(reportedUserText); spriteManager.Add(reportedUserText); pText reportReasonText = new pText(LocalisationManager.GetString(OsuString.UserReportDialog_SelectReason), 15, new Vector2(horizontalPosition, -70), 0.92f, true, Color.White); reportReasonText.Field = fields; reportReasonText.Origin = Origins.TopLeft; descriptionTexts.Add(reportReasonText); spriteManager.Add(reportReasonText); pText reportReasonInfoText = new pText(LocalisationManager.GetString(OsuString.UserReportDialog_AdditionalInfo), 15, new Vector2(horizontalPosition, -40), 0.92f, true, Color.White); reportReasonInfoText.Field = fields; reportReasonInfoText.Origin = Origins.TopLeft; descriptionTexts.Add(reportReasonInfoText); spriteManager.Add(reportReasonInfoText); int biggestText = descriptionTexts.Max(e => (int)e.MeasureText().X); descriptionTexts.ForEach(e => e.MoveToX(e.CurrentPositionActual.X + ((float)biggestText - e.MeasureText().X), 0)); int widthOfBoxes = width - biggestText; int horizontalPositionOfBoxes = horizontalPosition + biggestText + 5; pText reportedUserName = new pText(reportedUser.Name, 15, new Vector2(horizontalPositionOfBoxes - 1, -100), 0.92f, true, Color.White); reportedUserName.TextBold = true; reportedUserName.Field = fields; reportedUserName.Origin = Origins.TopLeft; spriteManager.Add(reportedUserName); reportReason = new pDropdown(null, string.Empty, new Vector2(horizontalPositionOfBoxes, -70), widthOfBoxes, 0.96f); reportReason.AddOption(LocalisationManager.GetString(OsuString.UserReportDialog_ReasonSpamming), Reasons.Spam); reportReason.AddOption(LocalisationManager.GetString(OsuString.UserReportDialog_ReasonInsults), Reasons.Insults); reportReason.AddOption(LocalisationManager.GetString(OsuString.UserReportDialog_ReasonFoulPlay), Reasons.Cheating); reportReason.AddOption(LocalisationManager.GetString(OsuString.UserReportDialog_ReasonUnwantedContent), Reasons.UnwantedContent); reportReason.AddOption(LocalisationManager.GetString(OsuString.UserReportDialog_ReasonNonsense), Reasons.Nonsense); reportReason.AddOption(LocalisationManager.GetString(OsuString.UserReportDialog_ReasonOther), Reasons.Other); reportReason.SetSelected(Reasons.Spam, true); reportReason.SpriteManager = spriteManager; reportReason.SpriteCollection.ForEach(s => s.Field = fields); reportReason.SpriteMainBox.BorderColour = ColourHelper.Darken(reportReason.HighlightColour, 0.2f); reportReason.SpriteMainBox.BorderWidth = 1; spriteManager.Add(reportReason.SpriteCollection); reportReasonInfo = new pTextBox(string.Empty, 15, new Vector2(horizontalPositionOfBoxes, -40), widthOfBoxes, 0.92f); reportReasonInfo.SpriteCollection.ForEach(s => s.Field = fields); reportReasonInfo.Focus(true); reportReasonInfo.InputControl.OnKey += InputControl_OnKey; spriteManager.Add(reportReasonInfo.SpriteCollection); AddOption(LocalisationManager.GetString(OsuString.UserReportDialog_SendReport), Color.Red, OnReportClick, true); AddCancel(LocalisationManager.GetString(OsuString.General_Cancel), Color.LightGray, null); base.Display(); }