Пример #1
0
        private void changeMapsetFolder()
        {
            var initialDirectory = Path.GetFullPath(project.MapsetPath);

            if (!Directory.Exists(initialDirectory))
            {
                initialDirectory = OsuHelper.GetOsuSongFolder();
            }

            Manager.OpenFilePicker("Pick a new mapset location", "", initialDirectory, ".osu files (*.osu)|*.osu", (newPath) =>
            {
                if (!Directory.Exists(newPath) && File.Exists(newPath))
                {
                    project.MapsetPath = Path.GetDirectoryName(newPath);
                }
                else
                {
                    Manager.ShowMessage("Invalid mapset path.");
                }
            });
        }
Пример #2
0
        public override void Load()
        {
            base.Load();

            WidgetManager.Root.StyleName      = "panel";
            WidgetManager.Root.Add(mainLayout = new LinearLayout(WidgetManager)
            {
                AnchorTarget = WidgetManager.Root,
                AnchorFrom   = BoxAlignment.Centre,
                AnchorTo     = BoxAlignment.Centre,
                Padding      = new FourSide(16),
                FitChildren  = true,
                Children     = new Widget[]
                {
                    new Label(WidgetManager)
                    {
                        Text       = "New Project",
                        AnchorFrom = BoxAlignment.Centre,
                    },
                    projectNameTextbox = new Textbox(WidgetManager)
                    {
                        LabelText  = "Project Name",
                        AnchorFrom = BoxAlignment.Centre,
                    },
                    mapsetPathSelector = new PathSelector(WidgetManager, PathSelectorMode.OpenDirectory)
                    {
                        Value      = OsuHelper.GetOsuSongFolder(),
                        LabelText  = "Mapset Path",
                        AnchorFrom = BoxAlignment.Centre,
                        Filter     = ".osu files (*.osu)|*.osu",
                    },
                    new LinearLayout(WidgetManager)
                    {
                        Horizontal = true,
                        AnchorFrom = BoxAlignment.Centre,
                        Fill       = true,
                        Children   = new Widget[]
                        {
                            startButton = new Button(WidgetManager)
                            {
                                Text       = "Start",
                                AnchorFrom = BoxAlignment.Centre,
                            },
                            cancelButton = new Button(WidgetManager)
                            {
                                Text       = "Cancel",
                                AnchorFrom = BoxAlignment.Centre,
                            },
                        },
                    },
                },
            });

            projectNameTextbox.OnValueChanged  += (sender, e) => updateButtonsState();
            projectNameTextbox.OnValueCommited += (sender, e) =>
            {
                var name = projectNameTextbox.Value;
                foreach (var character in Path.GetInvalidFileNameChars())
                {
                    name = name.Replace(character, '_');
                }
                projectNameTextbox.Value = name;
            };
            mapsetPathSelector.OnValueChanged  += (sender, e) => updateButtonsState();
            mapsetPathSelector.OnValueCommited += (sender, e) =>
            {
                if (!Directory.Exists(mapsetPathSelector.Value) && File.Exists(mapsetPathSelector.Value))
                {
                    mapsetPathSelector.Value = Path.GetDirectoryName(mapsetPathSelector.Value);
                    return;
                }
                updateButtonsState();
            };
            updateButtonsState();

            startButton.OnClick  += (sender, e) => createProject();
            cancelButton.OnClick += (sender, e) => Exit();
        }