misu – Rev 1

Subversion Repositories:
Rev:
using System.ComponentModel;
using System.Runtime.CompilerServices;
using System.Xml.Serialization;
using Configuration.Properties;

namespace Configuration
{
    [XmlRoot(ElementName = "Settings")]
    public class Settings : INotifyPropertyChanged
    {
        #region Public Enums, Properties and Fields

        [XmlElement(ElementName = "LaunchOnBoot")]
        public bool LaunchOnBoot
        {
            get => _launchOnBoot;
            set
            {
                if (value == _launchOnBoot)
                {
                    return;
                }

                _launchOnBoot = value;
                OnPropertyChanged();
            }
        }

        [XmlElement(ElementName = "Mouse")]
        public bool Mouse
        {
            get => _mouse;
            set
            {
                if (value == _mouse)
                {
                    return;
                }

                _mouse = value;
                OnPropertyChanged();
            }
        }

        [XmlElement(ElementName = "Keyboard")]
        public bool Keyboard
        {
            get => _keyboard;
            set
            {
                if (value == _keyboard)
                {
                    return;
                }

                _keyboard = value;
                OnPropertyChanged();
            }
        }

        [XmlElement(ElementName = "Binding")]
        public Binding Binding
        {
            get => _binding;
            set
            {
                if (value == _binding)
                {
                    return;
                }

                _binding = value;
                OnPropertyChanged();
            }
        }

        #endregion

        #region Private Delegates, Events, Enums, Properties, Indexers and Fields

        private Binding _binding = new Binding();

        private bool _keyboard = true;

        private bool _launchOnBoot;

        private bool _mouse = true;

        #endregion

        #region Constructors, Destructors and Finalizers

        [UsedImplicitly]
        public Settings()
        {
        }

        #endregion

        #region Interface

        public event PropertyChangedEventHandler PropertyChanged;

        #endregion

        #region Private Methods

        [NotifyPropertyChangedInvocator]
        protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
        {
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
        }

        #endregion
    }
}

Generated by GNU Enscript 1.6.5.90.