Example #1
0
        /// <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;
            };
        }
Example #3
0
        /// <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);
        }