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 GameboyConfigViewModel : DisposableViewModel { [Reactive] public GameboyConfig Config { get; set; } [Reactive] public GameboyConfig OriginalConfig { get; set; } [Reactive] public GameboyConfigTab SelectedTab { get; set; } = 0; public ReactiveCommand SetupPlayer { get; } public GameboyConfigViewModel() { Config = ConfigManager.Config.Gameboy; OriginalConfig = Config.Clone(); IObservable button1Enabled = this.WhenAnyValue(x => x.Config.Controller.Type, x => x.CanConfigure()); SetupPlayer = ReactiveCommand.Create