Widow – Rev 1

Subversion Repositories:
Rev:
using System.ComponentModel;
using System.Runtime.CompilerServices;
using System.Xml.Serialization;
using Windows.Annotations;

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

        [XmlElement(ElementName = "Name")]
        public string Name
        {
            get => _name;
            set
            {
                if (value == _name)
                {
                    return;
                }

                _name = value;
                OnPropertyChanged();
            }
        }

        [XmlElement(ElementName = "Width")]
        public int Width
        {
            get => _width;
            set
            {
                if (value == _width)
                {
                    return;
                }

                _width = value;
                OnPropertyChanged();
            }
        }

        [XmlElement(ElementName = "Height")]
        public int Height
        {
            get => _height;
            set
            {
                if (value == _height)
                {
                    return;
                }

                _height = value;
                OnPropertyChanged();
            }
        }

        [XmlElement(ElementName = "Left")]
        public int Left
        {
            get => _left;
            set
            {
                if (value == _left)
                {
                    return;
                }

                _left = value;
                OnPropertyChanged();
            }
        }

        [XmlElement(ElementName = "Top")]
        public int Top
        {
            get => _top;
            set
            {
                if (value == _top)
                {
                    return;
                }

                _top = value;
                OnPropertyChanged();
            }
        }

        #endregion

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

        private int _height;

        private int _left;

        private string _name;

        private int _top;

        private int _width;

        #endregion

        #region Constructors, Destructors and Finalizers

        [UsedImplicitly]
        public Window()
        {
        }
        public Window(string name, int top, int left, int width, int height) : this()
        {
            Name = name;
            Top = top;
            Left = left;
            Width = width;
            Height = height;
        }

        #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.