File: System\Windows\Documents\RtfToken.cs
Web Access
Project: src\src\Microsoft.DotNet.Wpf\src\PresentationFramework\PresentationFramework.csproj (PresentationFramework)
// 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.
 
//
// Description: Rtf token that will specify the rtf token type, control and name.
//
 
namespace System.Windows.Documents
{
    /// <summary>
    /// Rtf token that include rtf token type, control, name and parameter value.
    /// </summary>
    internal class RtfToken
    {
        #region Internal Consts
 
        //------------------------------------------------------
        //
        //  Internal Consts
        //
        //------------------------------------------------------
 
        internal const long INVALID_PARAMETER = 0x10000000;
 
        #endregion Internal Consts
 
        //------------------------------------------------------
        //
        //  Constructors
        //
        //------------------------------------------------------
 
        #region Constructors
 
        /// <summary>
        /// 
        /// </summary>
        internal RtfToken()
        {
        }
 
        #endregion Constructors
 
        //------------------------------------------------------
        //
        //  Internal Methods
        //
        //------------------------------------------------------
 
        #region Internal Methods
 
        internal void Empty()
        {
            _type = RtfTokenType.TokenInvalid;
            _rtfControlWordInfo = null;
            _parameter = INVALID_PARAMETER;
            _text = "";
        }
 
        #endregion Internal Methods
 
        //------------------------------------------------------
        //
        //  Internal Properties
        //
        //------------------------------------------------------
 
        #region Internal Properties
 
        internal RtfTokenType Type
        {
            get
            {
                return _type;
            }
            set
            {
                _type = value;
            }
        }
 
        internal RtfControlWordInfo RtfControlWordInfo
        {
            get
            {
                return _rtfControlWordInfo;
            }
            set
            {
                _rtfControlWordInfo = value;
            }
        }
 
        internal long Parameter
        {
            get
            {
                return HasParameter ? _parameter : 0;
            }
            set
            {
                _parameter = value;
            }
        }
 
        internal string Text
        {
            get
            {
                return _text;
            }
            set
            {
                _text = value;
            }
        }
 
        internal long ToggleValue
        {
            get
            {
                return HasParameter ? Parameter : 1;
            }
        }
 
        internal bool FlagValue
        {
            get
            {
                return (!HasParameter || (HasParameter && Parameter > 0) ? true : false);
            }
        }
 
        internal bool HasParameter
        {
            get
            {
                return _parameter != INVALID_PARAMETER;
            }
        }
 
        #endregion Internal Properties
 
        //------------------------------------------------------
        //
        //  Private Fields
        //
        //------------------------------------------------------
 
        #region Private Fields
 
        private RtfTokenType _type;
 
        private RtfControlWordInfo _rtfControlWordInfo;
 
        private long _parameter;
 
        private string _text;
 
        #endregion Private Fields
    }
}