Пример #1
0
        public PreferencesWindow()
        {
            InitializeComponent();
            #if DEBUG
            this.AttachDevTools();
            #endif

            UpdateTopmost(Preferences.AlwaysOnTop);
            Preferences.AlwaysOnTopChanged += UpdateTopmost;

            Preferences.Window = this;

            TextBlock Version = this.Get <TextBlock>("Version");
            Version.Text += Program.Version;

            if (Github.AvaloniaVersion() != "")
            {
                ToolTip.SetTip(Version, $"Avalonia {Github.AvaloniaVersion()}");
            }

            AlwaysOnTop.IsChecked         = Preferences.AlwaysOnTop;
            CenterTrackContents.IsChecked = Preferences.CenterTrackContents;

            ChainSignalIndicators.IsChecked  = Preferences.ChainSignalIndicators;
            DeviceSignalIndicators.IsChecked = Preferences.DeviceSignalIndicators;

            ColorDisplayFormat.SelectedIndex = (int)Preferences.ColorDisplayFormat;

            LaunchpadStyle.SelectedIndex        = (int)Preferences.LaunchpadStyle;
            LaunchpadGridRotation.SelectedIndex = Convert.ToInt32(Preferences.LaunchpadGridRotation);
            LaunchpadModel.SelectedIndex        = (int)Preferences.LaunchpadModel;

            AutoCreateKeyFilter.IsChecked   = Preferences.AutoCreateKeyFilter;
            AutoCreateMacroFilter.IsChecked = Preferences.AutoCreateMacroFilter;
            AutoCreatePattern.IsChecked     = Preferences.AutoCreatePattern;

            FadeSmoothness.Value = Preferences.FadeSmoothnessSlider;

            CopyPreviousFrame.IsChecked = Preferences.CopyPreviousFrame;
            CaptureLaunchpad.IsChecked  = Preferences.CaptureLaunchpad;
            EnableGestures.IsChecked    = Preferences.EnableGestures;

            Monochrome.IsChecked      = Preferences.ImportPalette == Palettes.Monochrome;
            NovationPalette.IsChecked = Preferences.ImportPalette == Palettes.NovationPalette;
            CustomPalette.Content     = $"Custom Retina Palette - {Preferences.PaletteName}";
            CustomPalette.IsChecked   = Preferences.ImportPalette == Palettes.CustomPalette;

            Dark.IsChecked  = Preferences.Theme == ThemeType.Dark;
            Light.IsChecked = Preferences.Theme == ThemeType.Light;

            Backup.IsChecked   = Preferences.Backup;
            Autosave.IsChecked = Preferences.Autosave;

            UndoLimit.IsChecked = Preferences.UndoLimit;

            DiscordPresence.IsChecked = Preferences.DiscordPresence;
            DiscordFilename.IsChecked = Preferences.DiscordFilename;

            CheckForUpdates.IsChecked = Preferences.CheckForUpdates;

            UpdateTime(null, EventArgs.Empty);
            Timer = new DispatcherTimer()
            {
                Interval = new TimeSpan(0, 0, 1)
            };
            Timer.Tick += UpdateTime;
            Timer.Start();

            UpdatePorts();
            MIDI.DevicesUpdated += HandlePorts;

            fade.MIDIExit = FadeExit;
        }
Пример #2
0
        public PreferencesWindow()
        {
            InitializeComponent();
            #if DEBUG
            this.AttachDevTools();
            #endif

            UpdateTopmost(Preferences.AlwaysOnTop);
            Preferences.AlwaysOnTopChanged += UpdateTopmost;

            Preferences.Window = this;

            TextBlock Version = this.Get <TextBlock>("Version");
            Version.Text += Program.Version;

            if (Github.AvaloniaVersion() != "")
            {
                ToolTip.SetTip(Version, $"Avalonia {Github.AvaloniaVersion()}");
            }

            ToolTip.SetTip(this.Get <TextBlock>("LaunchpadHeader"), $"RtMidi APIs:\n{string.Join("- \n", MidiDeviceManager.Default.GetAvailableMidiApis())}");

            fade.MIDIExit = FadeExit;
            fade.Initialize();

            AlwaysOnTop.IsChecked         = Preferences.AlwaysOnTop;
            CenterTrackContents.IsChecked = Preferences.CenterTrackContents;

            ChainSignalIndicators.IsChecked  = Preferences.ChainSignalIndicators;
            DeviceSignalIndicators.IsChecked = Preferences.DeviceSignalIndicators;

            ColorDisplayFormat.SelectedIndex = (int)Preferences.ColorDisplayFormat;

            LaunchpadStyle.SelectedIndex        = (int)Preferences.LaunchpadStyle;
            LaunchpadGridRotation.SelectedIndex = Convert.ToInt32(Preferences.LaunchpadGridRotation);
            LaunchpadModel.SelectedIndex        = (int)Preferences.LaunchpadModel;

            AutoCreateKeyFilter.IsChecked   = Preferences.AutoCreateKeyFilter;
            AutoCreateMacroFilter.IsChecked = Preferences.AutoCreateMacroFilter;
            AutoCreatePattern.IsChecked     = Preferences.AutoCreatePattern;

            FPSLimit.RawValue = Preferences.FPSLimit;

            CopyPreviousFrame.IsChecked       = Preferences.CopyPreviousFrame;
            CaptureLaunchpad.IsChecked        = Preferences.CaptureLaunchpad;
            EnableGestures.IsChecked          = Preferences.EnableGestures;
            RememberPatternPosition.IsChecked = Preferences.RememberPatternPosition;

            Monochrome.IsChecked      = Preferences.ImportPalette == Palettes.Monochrome;
            NovationPalette.IsChecked = Preferences.ImportPalette == Palettes.NovationPalette;
            CustomPalette.Content     = $"Custom Retina Palette - {Preferences.PaletteName}";
            CustomPalette.IsChecked   = Preferences.ImportPalette == Palettes.CustomPalette;

            Dark.IsChecked  = Preferences.Theme == ThemeType.Dark;
            Light.IsChecked = Preferences.Theme == ThemeType.Light;

            Backup.IsChecked   = Preferences.Backup;
            Autosave.IsChecked = Preferences.Autosave;

            UndoLimit.IsChecked = Preferences.UndoLimit;

            DiscordPresence.IsChecked = Preferences.DiscordPresence;
            DiscordFilename.IsChecked = Preferences.DiscordFilename;

            CheckForUpdates.IsChecked = Preferences.CheckForUpdates;

#if !PRERELEASE
            if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
            {
                CheckForUpdates.IsChecked = false;
#endif
            CheckForUpdates.IsEnabled = false;

#if PRERELEASE
            ToolTip.SetTip((Control)CheckForUpdates.Parent, "Auto-updating is not supported on prerelease");
#else
            ToolTip.SetTip((Control)CheckForUpdates.Parent, "Auto-updating is not supported on Linux");
        }
#endif

            UpdateTime(null, EventArgs.Empty);
            Timer = new DispatcherTimer()
            {
                Interval = new TimeSpan(0, 0, 1)
            }
            ;
            Timer.Tick += UpdateTime;
            Timer.Start();

            UpdatePorts();
            MIDI.DevicesUpdated += HandlePorts;
        }