PasswordBoxAutomationPeer.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Framework / System / Windows / Automation / Peers / PasswordBoxAutomationPeer.cs / 1 / PasswordBoxAutomationPeer.cs

                            //---------------------------------------------------------------------------- 
//
// File: PasswordBoxAutomationPeer.cs
//
// Copyright (C) Microsoft Corporation.  All rights reserved. 
//
// Description: The AutomationPeer for PasswordBox. 
// 
//---------------------------------------------------------------------------
 
using System;
using System.Runtime.InteropServices;
using System.Security;
using System.Text; 
using System.Windows;
using System.Windows.Automation.Provider; 
using System.Windows.Controls; 
using System.Windows.Controls.Primitives;
using System.Windows.Interop; 
using System.Windows.Media;

using MS.Internal;
using MS.Win32; 

namespace System.Windows.Automation.Peers 
{ 
    ///
    public class PasswordBoxAutomationPeer : FrameworkElementAutomationPeer, IValueProvider 
    {
        /// 
        /// Constructor
        ///  
        /// PasswordBox for which this is an AutomationPeer
        public PasswordBoxAutomationPeer(PasswordBox owner): base(owner) 
        {} 

        ///  
        /// Class name for the type for which this is a peer.
        /// 
        /// 
        override protected string GetClassNameCore() 
        {
            return "PasswordBox"; 
        } 

        ///  
        /// Type for which this is a peer.
        /// 
        /// 
        override protected AutomationControlType GetAutomationControlTypeCore() 
        {
            return AutomationControlType.Edit; 
        } 

        ///  
        /// Return the patterns supported by PasswordBoxAutomationPeer
        /// 
        /// 
        ///  
        override public object GetPattern(PatternInterface patternInterface)
        { 
            object returnValue = null; 

            if (patternInterface == PatternInterface.Value) 
            {
                returnValue = this;
            }
            else if (patternInterface == PatternInterface.Scroll) 
            {
                PasswordBox owner = (PasswordBox)Owner; 
                if (owner.ScrollViewer != null) 
                {
                    returnValue = owner.ScrollViewer.CreateAutomationPeer(); 
                    ((AutomationPeer)returnValue).EventsSource = this;
                }
            }
 
            return returnValue;
        } 
 
        /// 
        /// Indicates whether or not this is a password control 
        /// 
        /// true
        override protected bool IsPasswordCore()
        { 
            return true;
        } 
 
        bool IValueProvider.IsReadOnly
        { 
            get
            {
                return false;
            } 
        }
 
        string IValueProvider.Value 
        {
            get 
            {
                throw new InvalidOperationException();
            }
        } 

        void IValueProvider.SetValue(string value) 
        { 
            if(!IsEnabled())
                throw new ElementNotEnabledException(); 

            PasswordBox owner = (PasswordBox)Owner;

            if (value == null) 
            {
                throw new ArgumentNullException("value"); 
            } 

            owner.Password = value; 
        }

        //
        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] 
        internal void RaiseValuePropertyChangedEvent(string oldValue, string newValue)
        { 
            if (oldValue != newValue) 
            {
                RaisePropertyChangedEvent(ValuePatternIdentifiers.ValueProperty, oldValue, newValue); 
            }
        }

        // 
        [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
        internal void RaiseIsReadOnlyPropertyChangedEvent(bool oldValue, bool newValue) 
        { 
            if (oldValue != newValue)
            { 
                RaisePropertyChangedEvent(ValuePatternIdentifiers.IsReadOnlyProperty, oldValue, newValue);
            }
        }
    } 
}
 

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.


                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK