/// <summary> /// Creates a SelectableBorderedTextButton according to specific /// requirements the container needs /// </summary> /// <returns></returns> private SelectableBorderedTextButton CreateButton(string text, bool selected, EventHandler onClick) { var btn = new SelectableBorderedTextButton(text, Color.White, Colors.MainAccent, selected, onClick) { Height = Height, Tint = Color.Black, Alpha = 0.45f, Text = { FontSize = 14, Font = Fonts.Exo2SemiBold } }; btn.Width++; return(btn); }
/// <inheritdoc /> /// <summary> /// </summary> /// <param name="dialog"></param> /// <param name="name"></param> /// <param name="bindable"></param> public SettingsKeybind(SettingsDialog dialog, string name, Bindable <Keys> bindable) : base(dialog, name) { Dialog = dialog; Bindable = bindable; Button = new SelectableBorderedTextButton(XnaKeyHelper.GetStringFromKey(bindable.Value), Color.White, Colors.MainAccent, false) { Parent = this, Alignment = Alignment.MidRight, X = -20, UsePreviousSpriteBatchOptions = true, Border = { UsePreviousSpriteBatchOptions = true }, Text = { UsePreviousSpriteBatchOptions = true } }; Button.Height -= 6; Button.Clicked += (o, e) => { Button.Text.Text = "Press Key"; Button.Selected = true; WaitingForKeyPress = true; }; Button.ClickedOutside += (o, e) => { if (!dialog.IsOnTop) { return; } var key = XnaKeyHelper.GetStringFromKey(Bindable.Value); if (Button.Text.Text != key) { Button.Text.Text = key; } Button.Selected = false; WaitingForKeyPress = false; }; }
/// <summary> /// Creates the button to select to order by artist. /// </summary> private void CreateOrderByArtistButton() { ButtonOrderByArtist = new SelectableBorderedTextButton("Artist", ColorHelper.HexToColor("#75e475"), ConfigManager.SelectOrderMapsetsBy.Value == OrderMapsetsBy.Artist) { Parent = OrderBy, X = OrderBy.Width + 10, Text = { Font = Fonts.Exo2SemiBold, FontSize = 13, ForceDrawAtSize = true, Alignment = Alignment.TopLeft }, Border = { Visible = false } }; ButtonOrderByArtist.Clicked += (sender, args) => { if (ConfigManager.SelectOrderMapsetsBy.Value == OrderMapsetsBy.Artist) { return; } ConfigManager.SelectOrderMapsetsBy.Value = OrderMapsetsBy.Artist; var selectScreen = View.Screen as SelectScreen; lock (selectScreen.AvailableMapsets) { selectScreen.AvailableMapsets = MapsetHelper.OrderMapsetsByConfigValue(selectScreen.AvailableMapsets); View.MapsetScrollContainer.InitializeWithNewSets(); } }; ButtonOrderByArtist.Size = new ScalableVector2(ButtonOrderByArtist.Text.Width + 20, ButtonOrderByArtist.Text.Height + 8); }
/// <summary> /// Creates the button to order mapsets by their creator. /// </summary> private void CreateOrderByCreatorButton() { ButtonOrderByCreator = new SelectableBorderedTextButton("Creator", ColorHelper.HexToColor("#75e475"), ConfigManager.SelectOrderMapsetsBy.Value == OrderMapsetsBy.Creator) { Parent = OrderBy, X = ButtonOrderByTitle.X + ButtonOrderByTitle.Width - 5, Y = ButtonOrderByArtist.Y, Text = { Font = Fonts.Exo2SemiBold, FontSize = 13, Alignment = Alignment.TopLeft }, Border = { Visible = false } }; ButtonOrderByCreator.Clicked += (o, e) => { if (ConfigManager.SelectOrderMapsetsBy.Value == OrderMapsetsBy.Creator) { return; } ConfigManager.SelectOrderMapsetsBy.Value = OrderMapsetsBy.Creator; var selectScreen = View.Screen as SelectScreen; lock (selectScreen.AvailableMapsets) { selectScreen.AvailableMapsets = MapsetHelper.OrderMapsetsByConfigValue(selectScreen.AvailableMapsets); View.MapsetScrollContainer.InitializeWithNewSets(); } }; ButtonOrderByCreator.Size = new ScalableVector2(ButtonOrderByCreator.Text.Width + 20, ButtonOrderByCreator.Text.Height + 8); }