File: System\Windows\Input\Stylus\Common\StylusPointProperty.cs
Web Access
Project: src\src\Microsoft.DotNet.Wpf\src\PresentationCore\PresentationCore.csproj (PresentationCore)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
 
 
using System;
using System.Windows;
using System.Windows.Input;
using System.Globalization;
using System.Windows.Media;
using System.Collections.Generic;
using SR = MS.Internal.PresentationCore.SR;
 
namespace System.Windows.Input
{
    /// <summary>
    /// StylusPointProperty
    /// </summary>
    public class StylusPointProperty
    {
        /// <summary>
        /// Instance data
        /// </summary>
        private Guid                    _id;
        private bool                    _isButton;
 
        /// <summary>
        /// StylusPointProperty
        /// </summary>
        /// <param name="identifier">identifier</param>
        /// <param name="isButton">isButton</param>
        public StylusPointProperty(Guid identifier, bool isButton)
        {
            Initialize(identifier, isButton);
        }
 
        /// <summary>
        /// StylusPointProperty
        /// </summary>
        /// <param name="stylusPointProperty"></param>
        /// <remarks>Protected - used by the StylusPointPropertyInfo ctor</remarks>
        protected StylusPointProperty(StylusPointProperty stylusPointProperty)
        {
            ArgumentNullException.ThrowIfNull(stylusPointProperty);
            Initialize(stylusPointProperty.Id, stylusPointProperty.IsButton);
        }
 
        /// <summary>
        /// Common ctor helper
        /// </summary>
        /// <param name="identifier">identifier</param>
        /// <param name="isButton">isButton</param>
        private void Initialize(Guid identifier, bool isButton)
        {
            //
            // validate isButton for known guids
            //
            if (StylusPointPropertyIds.IsKnownButton(identifier))
            {
                if (!isButton)
                {
                    //error, this is a known button
                    throw new ArgumentException(SR.InvalidIsButtonForId, "isButton");
                }
            }
            else
            {
                if (StylusPointPropertyIds.IsKnownId(identifier) && isButton)
                {
                    //error, this is a known guid that is NOT a button
                    throw new ArgumentException(SR.InvalidIsButtonForId2, "isButton");
                }
            }
 
            _id = identifier;
            _isButton = isButton;
        }
 
        /// <summary>
        /// Id
        /// </summary>
        public Guid Id 
        {
            get { return _id; }
        }
 
        /// <summary>
        /// IsButton
        /// </summary>
        public bool IsButton
        {
            get { return _isButton; }
        }
 
        /// <summary>
        /// Returns a human readable string representation
        /// </summary>
        public override string ToString()
        {
            return "{Id=" +
                StylusPointPropertyIds.GetStringRepresentation(_id) +
                ", IsButton=" +
                _isButton.ToString(CultureInfo.InvariantCulture) +
                "}";
        }
    }
}