mirror of
https://github.com/Ryubing/Ryujinx.git
synced 2025-03-10 09:04:23 +00:00
misc: chore: Remove MiniCommand
This commit is contained in:
parent
ffdc419417
commit
c410474d83
@ -40,19 +40,19 @@ namespace Ryujinx.Ava.UI.Helpers
|
|||||||
SecondaryButtonText = secondaryButton,
|
SecondaryButtonText = secondaryButton,
|
||||||
CloseButtonText = closeButton,
|
CloseButtonText = closeButton,
|
||||||
Content = content,
|
Content = content,
|
||||||
PrimaryButtonCommand = MiniCommand.Create(() =>
|
PrimaryButtonCommand = Commands.Create(() =>
|
||||||
{
|
{
|
||||||
result = primaryButtonResult;
|
result = primaryButtonResult;
|
||||||
})
|
})
|
||||||
};
|
};
|
||||||
|
|
||||||
contentDialog.SecondaryButtonCommand = MiniCommand.Create(() =>
|
contentDialog.SecondaryButtonCommand = Commands.Create(() =>
|
||||||
{
|
{
|
||||||
result = UserResult.No;
|
result = UserResult.No;
|
||||||
contentDialog.PrimaryButtonClick -= deferCloseAction;
|
contentDialog.PrimaryButtonClick -= deferCloseAction;
|
||||||
});
|
});
|
||||||
|
|
||||||
contentDialog.CloseButtonCommand = MiniCommand.Create(() =>
|
contentDialog.CloseButtonCommand = Commands.Create(() =>
|
||||||
{
|
{
|
||||||
result = UserResult.Cancel;
|
result = UserResult.Cancel;
|
||||||
contentDialog.PrimaryButtonClick -= deferCloseAction;
|
contentDialog.PrimaryButtonClick -= deferCloseAction;
|
||||||
|
@ -1,72 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
using System.Windows.Input;
|
|
||||||
|
|
||||||
namespace Ryujinx.Ava.UI.Helpers
|
|
||||||
{
|
|
||||||
public sealed class MiniCommand<T> : MiniCommand, ICommand
|
|
||||||
{
|
|
||||||
private readonly Action<T> _callback;
|
|
||||||
private bool _busy;
|
|
||||||
private readonly Func<T, Task> _asyncCallback;
|
|
||||||
|
|
||||||
public MiniCommand(Action<T> callback)
|
|
||||||
{
|
|
||||||
_callback = callback;
|
|
||||||
}
|
|
||||||
|
|
||||||
public MiniCommand(Func<T, Task> callback)
|
|
||||||
{
|
|
||||||
_asyncCallback = callback;
|
|
||||||
}
|
|
||||||
|
|
||||||
private bool Busy
|
|
||||||
{
|
|
||||||
get => _busy;
|
|
||||||
set
|
|
||||||
{
|
|
||||||
_busy = value;
|
|
||||||
CanExecuteChanged?.Invoke(this, EventArgs.Empty);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public override event EventHandler CanExecuteChanged;
|
|
||||||
public override bool CanExecute(object parameter) => !_busy;
|
|
||||||
|
|
||||||
public override async void Execute(object parameter)
|
|
||||||
{
|
|
||||||
if (Busy)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
try
|
|
||||||
{
|
|
||||||
Busy = true;
|
|
||||||
if (_callback != null)
|
|
||||||
{
|
|
||||||
_callback((T)parameter);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
await _asyncCallback((T)parameter);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
finally
|
|
||||||
{
|
|
||||||
Busy = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public abstract class MiniCommand : ICommand
|
|
||||||
{
|
|
||||||
public static MiniCommand Create(Action callback) => new MiniCommand<object>(_ => callback());
|
|
||||||
public static MiniCommand Create<TArg>(Action<TArg> callback) => new MiniCommand<TArg>(callback);
|
|
||||||
public static MiniCommand CreateFromTask(Func<Task> callback) => new MiniCommand<object>(_ => callback());
|
|
||||||
public static MiniCommand CreateFromTask<TArg>(Func<TArg, Task> callback) => new MiniCommand<TArg>(callback);
|
|
||||||
|
|
||||||
public abstract bool CanExecute(object parameter);
|
|
||||||
public abstract void Execute(object parameter);
|
|
||||||
public abstract event EventHandler CanExecuteChanged;
|
|
||||||
}
|
|
||||||
}
|
|
@ -73,7 +73,7 @@ namespace Ryujinx.Ava.UI.Views.Main
|
|||||||
{
|
{
|
||||||
Content = $".{it.FileName}",
|
Content = $".{it.FileName}",
|
||||||
IsChecked = it.FileType.GetConfigValue(ConfigurationState.Instance.UI.ShownFileTypes),
|
IsChecked = it.FileType.GetConfigValue(ConfigurationState.Instance.UI.ShownFileTypes),
|
||||||
Command = MiniCommand.Create(() => Window.ToggleFileType(it.FileName))
|
Command = Commands.Create(() => Window.ToggleFileType(it.FileName))
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -108,7 +108,7 @@ namespace Ryujinx.Ava.UI.Views.Main
|
|||||||
Margin = new Thickness(3, 0, 3, 0),
|
Margin = new Thickness(3, 0, 3, 0),
|
||||||
HorizontalAlignment = HorizontalAlignment.Stretch,
|
HorizontalAlignment = HorizontalAlignment.Stretch,
|
||||||
Header = languageName,
|
Header = languageName,
|
||||||
Command = MiniCommand.Create(() => MainWindowViewModel.ChangeLanguage(language))
|
Command = Commands.Create(() => MainWindowViewModel.ChangeLanguage(language))
|
||||||
};
|
};
|
||||||
|
|
||||||
yield return menuItem;
|
yield return menuItem;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user