internal void RefreshDisplay() { pa.ClearSprites(false); const int height = 17; int currentHeight = 0; bool editor = false; for (int i = 1; i < BindingManager.BindingNames.Length; i++) { string na = BindingManager.BindingNames[i]; //Check for skip flag if (na.StartsWith(@"__")) { continue; } bool header = na[0] == '_'; if (header) { na = na.Substring(1); } pText naText = new pText(na, header ? 16 : 14, new Vector2(0, currentHeight), new Vector2(402, height), header ? 0.97f : 0.98f, true, Color.White, false); pa.ContentSpriteManager.Add(naText); naText.BackgroundColour = Color.Black; if (header) { naText.TextColour = Color.YellowGreen; naText.TextAlignment = TextAlignment.Centre; } else { naText.BorderWidth = 2; naText.BorderColour = Color.LightGray; naText.HandleInput = true; naText.OnHover += delegate { naText.BackgroundColour = Color.Gray; naText.TextColour = Color.Black; naText.TextChanged = true; }; naText.OnHoverLost += delegate { naText.BackgroundColour = Color.Black; naText.TextColour = Color.White; naText.TextChanged = true; }; string name = na; Bindings b = (Bindings)i; naText.OnClick += delegate { startBinding(b, name); }; naText.ClickRequiresConfirmation = true; naText.TextAlignment = TextAlignment.LeftFixed; pText naText2 = new pText(BindingManager.NiceName((Bindings)i), 12, new Vector2(300, currentHeight + 1), new Vector2(100, height - 2), 1, true, Color.Gold, false); naText2.BackgroundColour = new Color(0, 0, 0, 160); naText2.BorderWidth = 2; naText2.BorderColour = Color.LightGray; naText2.TextAlignment = TextAlignment.Centre; pa.ContentSpriteManager.Add(naText2); } currentHeight += height; } pText reset = new pText(LocalisationManager.GetString(OsuString.Options_ResetAllBindings), 14, new Vector2(0, currentHeight), new Vector2(402, height), 0.98f, true, Color.White, false); reset.BorderColour = Color.LightGray; reset.BackgroundColour = Color.Black; reset.TextColour = Color.White; reset.HandleInput = true; reset.OnHover += delegate { reset.BackgroundColour = Color.Red; reset.TextChanged = true; }; reset.OnHoverLost += delegate { reset.BackgroundColour = Color.Black; reset.TextChanged = true; }; reset.OnClick += delegate { //pDialogConfirmation d = new pDialogConfirmation(LocalisationManager.GetString(OsuString.Options_ResetAllBindings_Confirm), delegate //{ BindingManager.Initialize(true); RefreshDisplay(); pa.ScrollToPosition(0, -0.99f); //}, null); //GameBase.ShowDialog(d); }; reset.TextAlignment = TextAlignment.Centre; currentHeight += height; pa.ContentSpriteManager.Add(reset); pa.SetContentDimensions(new Vector2(510, currentHeight)); }
protected virtual void InitializeSpecifics() { pText pt = new pText(BeatmapManager.Current.DisplayTitle, 22, new Vector2(0, 0), Vector2.Zero, 0.991F, true, Color.White, false); pt.ViewOffsetImmune = true; spriteManagerWideScrolling.Add(pt); pt = new pText("Beatmap by " + BeatmapManager.Current.Creator, 16, new Vector2(1, 20), Vector2.Zero, 0.991F, true, Color.White, false); pt.ViewOffsetImmune = true; spriteManagerWideScrolling.Add(pt); pt = new pText(string.Format("Played by {0} on {1}.", score.PlayerName, score.Date.ToLocalTime()), 16, new Vector2(1, 34), Vector2.Zero, 0.991F, true, Color.White, false); pt.ViewOffsetImmune = true; spriteManagerWideScrolling.Add(pt); float buttonPosition = 360; if (!ReplayMode) { if (SkinManager.UseNewLayout) { b_retry = new pSprite(TextureManager.Load(@"pause-retry"), Fields.TopRight, Origins.CentreRight, Clocks.Game, new Vector2(0, buttonPosition), 0.94F, true, new Color(255, 255, 255, 178)); } else { b_retry = new pSprite(TextureManager.Load(@"ranking-retry"), Fields.TopRight, Origins.CentreRight, Clocks.Game, new Vector2(0, buttonPosition), 0.94F, true, new Color(255, 255, 255, 178)); } b_retry.OnClick += retry_OnClick; b_retry.HandleInput = true; b_retry.HoverEffect = new Transformation(TransformationType.Fade, 0.7F, 1, 0, 200); spriteManagerWideScrolling.Add(b_retry); buttonPosition += 60; } if ((score.Replay != null && score.Replay.Count > 0) || score.ReplayCompressed != null || score.LocalReplayPresent || score.HasOnlineReplay) { if (!GameBase.Tournament) { if (SkinManager.UseNewLayout) { b_replay = new pSprite(TextureManager.Load(@"pause-replay"), Fields.TopRight, Origins.CentreRight, Clocks.Game, new Vector2(0, buttonPosition), 0.94F, true, new Color(255, 255, 255, 178)); } else { b_replay = new pSprite(TextureManager.Load(@"ranking-replay"), Fields.TopRight, Origins.CentreRight, Clocks.Game, new Vector2(0, buttonPosition), 0.94F, true, new Color(255, 255, 255, 178)); } b_replay.OnClick += replay_OnClick; b_replay.HandleInput = true; b_replay.HoverEffect = new Transformation(TransformationType.Fade, 0.7F, 1, 0, 200); spriteManagerWideScrolling.Add(b_replay); buttonPosition += 60; } } if (rankingDialog != null) { onlineRankingButton = new pButton("▼ Online Ranking ▼", new Vector2(GameBase.WindowManager.WidthScaled / 2 - 100, GameBase.WindowManager.HeightScaled - 26), new Vector2(200, 30), 0.95f, Color.BlueViolet, delegate { scrollableArea.ScrollToPosition(GameBase.WindowManager.HeightScaled * 0.875f, -0.99f); }, true, false, null, false); spriteManagerWideAbove.Add(onlineRankingButton.SpriteCollection); } }