using Avalonia; using Avalonia.Controls; using Avalonia.VisualTree; using Mesen.Config; using Mesen.Utilities; using Mesen.Windows; using ReactiveUI; using ReactiveUI.Fody.Helpers; using System; using System.Reactive; namespace Mesen.ViewModels { public class GbaConfigViewModel : DisposableViewModel { [Reactive] public GbaConfig Config { get; set; } [Reactive] public GbaConfig OriginalConfig { get; set; } [Reactive] public GbaConfigTab SelectedTab { get; set; } = 0; public ReactiveCommand SetupPlayer { get; } public GbaConfigViewModel() { Config = ConfigManager.Config.Gba; OriginalConfig = Config.Clone(); IObservable button1Enabled = this.WhenAnyValue(x => x.Config.Controller.Type, x => x.CanConfigure()); SetupPlayer = ReactiveCommand.Create