aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Ava/Ui/Controls/MiniCommand.cs
diff options
context:
space:
mode:
authorIsaac Marovitz <42140194+IsaacMarovitz@users.noreply.github.com>2022-12-29 14:24:05 +0000
committerGitHub <noreply@github.com>2022-12-29 15:24:05 +0100
commit76671d63d4f3ea18f8ad99e9ce9f0b2ec9a2599d (patch)
tree05013214e4696a9254369d0706173f58877f6a83 /Ryujinx.Ava/Ui/Controls/MiniCommand.cs
parent3d1a0bf3749afa14da5b5ba1e0666fdb78c99beb (diff)
Ava GUI: Restructure `Ryujinx.Ava` (#4165)
* Restructure `Ryujinx.Ava` * Stylistic consistency * Update Ryujinx.Ava/UI/Controls/UserEditor.axaml.cs Co-authored-by: TSRBerry <20988865+TSRBerry@users.noreply.github.com> * Update Ryujinx.Ava/UI/Controls/UserEditor.axaml.cs Co-authored-by: TSRBerry <20988865+TSRBerry@users.noreply.github.com> * Update Ryujinx.Ava/UI/Controls/UserSelector.axaml.cs Co-authored-by: TSRBerry <20988865+TSRBerry@users.noreply.github.com> * Update Ryujinx.Ava/UI/Controls/SaveManager.axaml.cs Co-authored-by: TSRBerry <20988865+TSRBerry@users.noreply.github.com> * Update Ryujinx.Ava/UI/Controls/SaveManager.axaml.cs Co-authored-by: TSRBerry <20988865+TSRBerry@users.noreply.github.com> * Update Ryujinx.Ava/UI/Windows/SettingsWindow.axaml.cs Co-authored-by: TSRBerry <20988865+TSRBerry@users.noreply.github.com> * Update Ryujinx.Ava/UI/Helpers/EmbeddedWindow.cs Co-authored-by: TSRBerry <20988865+TSRBerry@users.noreply.github.com> * Update Ryujinx.Ava/UI/Helpers/EmbeddedWindow.cs Co-authored-by: TSRBerry <20988865+TSRBerry@users.noreply.github.com> * Update Ryujinx.Ava/UI/Helpers/EmbeddedWindow.cs Co-authored-by: TSRBerry <20988865+TSRBerry@users.noreply.github.com> * Update Ryujinx.Ava/UI/Helpers/EmbeddedWindow.cs Co-authored-by: TSRBerry <20988865+TSRBerry@users.noreply.github.com> * Update Ryujinx.Ava/UI/Windows/SettingsWindow.axaml.cs Co-authored-by: TSRBerry <20988865+TSRBerry@users.noreply.github.com> * Update Ryujinx.Ava/UI/ViewModels/UserProfileViewModel.cs Co-authored-by: TSRBerry <20988865+TSRBerry@users.noreply.github.com> * Update Ryujinx.Ava/UI/ViewModels/UserProfileViewModel.cs Co-authored-by: TSRBerry <20988865+TSRBerry@users.noreply.github.com> * Update Ryujinx.Ava/UI/Helpers/EmbeddedWindow.cs Co-authored-by: TSRBerry <20988865+TSRBerry@users.noreply.github.com> * Fix redundancies * Remove redunancies * Add back elses Co-authored-by: TSRBerry <20988865+TSRBerry@users.noreply.github.com>
Diffstat (limited to 'Ryujinx.Ava/Ui/Controls/MiniCommand.cs')
-rw-r--r--Ryujinx.Ava/Ui/Controls/MiniCommand.cs71
1 files changed, 0 insertions, 71 deletions
diff --git a/Ryujinx.Ava/Ui/Controls/MiniCommand.cs b/Ryujinx.Ava/Ui/Controls/MiniCommand.cs
deleted file mode 100644
index e14cfa6f..00000000
--- a/Ryujinx.Ava/Ui/Controls/MiniCommand.cs
+++ /dev/null
@@ -1,71 +0,0 @@
-using System;
-using System.Threading.Tasks;
-using System.Windows.Input;
-
-namespace Ryujinx.Ava.Ui.Models
-{
- public sealed class MiniCommand<T> : MiniCommand, ICommand
- {
- private readonly Action<T> _callback;
- private bool _busy;
- private 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 abstract bool CanExecute(object parameter);
- public abstract void Execute(object parameter);
- public abstract event EventHandler CanExecuteChanged;
- }
-} \ No newline at end of file