Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        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();
        }
Exemplo n.º 3
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);
        }
Exemplo n.º 5
0
        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;
        }
Exemplo n.º 6
0
        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();
        }