TransformPattern.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / UIAutomation / UIAutomationClient / System / Windows / Automation / TransformPattern.cs / 1305600 / TransformPattern.cs

                            //---------------------------------------------------------------------------- 
//
// 
//    Copyright (C) Microsoft Corporation.  All rights reserved.
//  
//
// 
// Description: Client-side wrapper for Transform Pattern 
//
// History: 
//  02/02/2004 : preid created
//
//---------------------------------------------------------------------------
 
using System;
using System.Windows.Automation.Provider; 
using MS.Internal.Automation; 

namespace System.Windows.Automation 
{

    ///wrapper class for Transform pattern 
#if (INTERNAL_COMPILE) 
    internal class TransformPattern: BasePattern
#else 
    public class TransformPattern: BasePattern 
#endif
    { 
        //-----------------------------------------------------
        //
        //  Constructors
        // 
        //-----------------------------------------------------
 
        #region Constructors 

        private TransformPattern(AutomationElement el, SafePatternHandle hPattern, bool cached) 
            : base(el, hPattern)
        {
            _hPattern = hPattern;
            _cached = cached; 
        }
 
        #endregion Constructors 

 
        //------------------------------------------------------
        //
        //  Public Constants / Readonly Fields
        // 
        //-----------------------------------------------------
 
        #region Public Constants and Readonly Fields 

        /// Returns the Transform pattern identifier 
        public static readonly AutomationPattern Pattern = TransformPatternIdentifiers.Pattern;

        /// Property ID: CanMove - This window can be moved
        public static readonly AutomationProperty CanMoveProperty = TransformPatternIdentifiers.CanMoveProperty; 

        /// Property ID: CanResize - This window can be resized 
        public static readonly AutomationProperty CanResizeProperty = TransformPatternIdentifiers.CanResizeProperty; 

        /// Property ID: CanRotate - This window can be rotated 
        public static readonly AutomationProperty CanRotateProperty = TransformPatternIdentifiers.CanRotateProperty;


        #endregion Public Constants and Readonly Fields 

 
        //------------------------------------------------------ 
        //
        //  Public Methods 
        //
        //------------------------------------------------------

        #region Public Methods 

        ///  
        /// Used to adjust an element's current location. The x, and y parameters represent the 
        /// absolute on-screen position of the top-left corner in pixels, not the delta between the
        /// desired location and the window's current location. 
        /// 
        ///
        /// absolute on-screen position of the top left corner
        /// absolute on-screen position of the top left corner 
        ///
        ///  
        /// This API does not work inside the secure execution environment. 
        /// 
        ///  
        public void Move( double x, double y )
        {
            UiaCoreApi.TransformPattern_Move(_hPattern, x, y);
        } 

        ///  
        /// Used to modify element's on-screen dimensions (affects the 
        /// BoundingRectangle and BoundingGeometry properties)
        /// When called on a split pane, it may have the side-effect of resizing 
        /// other surrounding panes.
        /// 
        /// The requested width of the window.
        /// The requested height of the window. 
        /// 
        /// This API does not work inside the secure execution environment. 
        ///  
        /// 
        public void Resize( double width, double height ) 
        {
            UiaCoreApi.TransformPattern_Resize(_hPattern, width, height);
        }
 
        /// 
        /// Rotate the element the specified number of degrees. 
        ///  
        /// The requested degrees to rotate the element.  A positive number rotates clockwise
        /// a negative number rotates counter clockwise 
        /// 
        /// This API does not work inside the secure execution environment.
        /// 
        ///  
        public void Rotate( double degrees )
        { 
            UiaCoreApi.TransformPattern_Rotate(_hPattern, degrees); 
        }
 

        #endregion Public Methods

 
        //-----------------------------------------------------
        // 
        //  Public Properties 
        //
        //------------------------------------------------------ 

        #region Public Properties
        /// 
        /// This member allows access to previously requested 
        /// cached properties for this element. The returned object
        /// has accessors for each property defined for this pattern. 
        ///  
        /// 
        /// Cached property values must have been previously requested 
        /// using a CacheRequest. If you try to access a cached
        /// property that was not previously requested, an InvalidOperation
        /// Exception will be thrown.
        /// 
        /// To get the value of a property at the current point in time,
        /// access the property via the Current accessor instead of 
        /// Cached. 
        /// 
        public TransformPatternInformation Cached 
        {
            get
            {
                Misc.ValidateCached(_cached); 
                return new TransformPatternInformation(_el, true);
            } 
        } 

        ///  
        /// This member allows access to current property values
        /// for this element. The returned object has accessors for
        /// each property defined for this pattern.
        ///  
        /// 
        /// This pattern must be from an AutomationElement with a 
        /// Full reference in order to get current values. If the 
        /// AutomationElement was obtained using AutomationElementMode.None,
        /// then it contains only cached data, and attempting to get 
        /// the current value of any property will throw an InvalidOperationException.
        ///
        /// To get the cached value of a property that was previously
        /// specified using a CacheRequest, access the property via the 
        /// Cached accessor instead of Current.
        ///  
        public TransformPatternInformation Current 
        {
            get 
            {
                Misc.ValidateCurrent(_hPattern);
                return new TransformPatternInformation(_el, false);
            } 
        }
 
 
        #endregion Public Properties
 

        //-----------------------------------------------------
        //
        //  Internal Methods 
        //
        //----------------------------------------------------- 
 
        #region Internal Methods
 
        internal static object Wrap(AutomationElement el, SafePatternHandle hPattern, bool cached)
        {
            return new TransformPattern(el, hPattern, cached);
        } 

        #endregion Internal Methods 
 

        //----------------------------------------------------- 
        //
        //  Private Fields
        //
        //------------------------------------------------------ 

        #region Private Fields 
 
        private SafePatternHandle _hPattern;
        private bool _cached; 

        #endregion Private Fields

 
        //-----------------------------------------------------
        // 
        //  Nested Classes 
        //
        //------------------------------------------------------ 

        #region Nested Classes

        ///  
        /// This class provides access to either Cached or Current
        /// properties on a pattern via the pattern's .Cached or 
        /// .Current accessors. 
        /// 
        public struct TransformPatternInformation 
        {
            //------------------------------------------------------
            //
            //  Constructors 
            //
            //----------------------------------------------------- 
 
            #region Constructors
 
            internal TransformPatternInformation(AutomationElement el, bool useCache)
            {
                _el = el;
                _useCache = useCache; 
            }
 
            #endregion Constructors 

 
            //------------------------------------------------------
            //
            //  Public Properties
            // 
            //-----------------------------------------------------
 
            #region Public Properties 

            /// Returns true if the element can be moved otherwise returns false. 
            ///
            /// 
            /// This API does not work inside the secure execution environment.
            ///  
            /// 
            public bool CanMove 
            { 
                get
                { 
                    return (bool)_el.GetPatternPropertyValue(CanMoveProperty, _useCache);
                }
            }
 
            /// Returns true if the element can be resized otherwise returns false.
            /// 
            ///  
            /// This API does not work inside the secure execution environment.
            ///  
            /// 
            public bool CanResize
            {
                get 
                {
                    return (bool)_el.GetPatternPropertyValue(CanResizeProperty, _useCache); 
                } 
            }
 
            /// Returns true if the element can be rotated otherwise returns false.
            ///
            /// 
            /// This API does not work inside the secure execution environment. 
            /// 
            ///  
            public bool CanRotate 
            {
                get 
                {
                    return (bool)_el.GetPatternPropertyValue(CanRotateProperty, _useCache);
                }
            } 

            #endregion Public Properties 
 
            //-----------------------------------------------------
            // 
            //  Private Fields
            //
            //-----------------------------------------------------
 
            #region Private Fields
 
            private AutomationElement _el; // AutomationElement that contains the cache or live reference 
            private bool _useCache; // true to use cache, false to use live reference to get current values
 
            #endregion Private Fields
        }
        #endregion Nested Classes
    } 
}

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
//---------------------------------------------------------------------------- 
//
// 
//    Copyright (C) Microsoft Corporation.  All rights reserved.
//  
//
// 
// Description: Client-side wrapper for Transform Pattern 
//
// History: 
//  02/02/2004 : preid created
//
//---------------------------------------------------------------------------
 
using System;
using System.Windows.Automation.Provider; 
using MS.Internal.Automation; 

namespace System.Windows.Automation 
{

    ///wrapper class for Transform pattern 
#if (INTERNAL_COMPILE) 
    internal class TransformPattern: BasePattern
#else 
    public class TransformPattern: BasePattern 
#endif
    { 
        //-----------------------------------------------------
        //
        //  Constructors
        // 
        //-----------------------------------------------------
 
        #region Constructors 

        private TransformPattern(AutomationElement el, SafePatternHandle hPattern, bool cached) 
            : base(el, hPattern)
        {
            _hPattern = hPattern;
            _cached = cached; 
        }
 
        #endregion Constructors 

 
        //------------------------------------------------------
        //
        //  Public Constants / Readonly Fields
        // 
        //-----------------------------------------------------
 
        #region Public Constants and Readonly Fields 

        /// Returns the Transform pattern identifier 
        public static readonly AutomationPattern Pattern = TransformPatternIdentifiers.Pattern;

        /// Property ID: CanMove - This window can be moved
        public static readonly AutomationProperty CanMoveProperty = TransformPatternIdentifiers.CanMoveProperty; 

        /// Property ID: CanResize - This window can be resized 
        public static readonly AutomationProperty CanResizeProperty = TransformPatternIdentifiers.CanResizeProperty; 

        /// Property ID: CanRotate - This window can be rotated 
        public static readonly AutomationProperty CanRotateProperty = TransformPatternIdentifiers.CanRotateProperty;


        #endregion Public Constants and Readonly Fields 

 
        //------------------------------------------------------ 
        //
        //  Public Methods 
        //
        //------------------------------------------------------

        #region Public Methods 

        ///  
        /// Used to adjust an element's current location. The x, and y parameters represent the 
        /// absolute on-screen position of the top-left corner in pixels, not the delta between the
        /// desired location and the window's current location. 
        /// 
        ///
        /// absolute on-screen position of the top left corner
        /// absolute on-screen position of the top left corner 
        ///
        ///  
        /// This API does not work inside the secure execution environment. 
        /// 
        ///  
        public void Move( double x, double y )
        {
            UiaCoreApi.TransformPattern_Move(_hPattern, x, y);
        } 

        ///  
        /// Used to modify element's on-screen dimensions (affects the 
        /// BoundingRectangle and BoundingGeometry properties)
        /// When called on a split pane, it may have the side-effect of resizing 
        /// other surrounding panes.
        /// 
        /// The requested width of the window.
        /// The requested height of the window. 
        /// 
        /// This API does not work inside the secure execution environment. 
        ///  
        /// 
        public void Resize( double width, double height ) 
        {
            UiaCoreApi.TransformPattern_Resize(_hPattern, width, height);
        }
 
        /// 
        /// Rotate the element the specified number of degrees. 
        ///  
        /// The requested degrees to rotate the element.  A positive number rotates clockwise
        /// a negative number rotates counter clockwise 
        /// 
        /// This API does not work inside the secure execution environment.
        /// 
        ///  
        public void Rotate( double degrees )
        { 
            UiaCoreApi.TransformPattern_Rotate(_hPattern, degrees); 
        }
 

        #endregion Public Methods

 
        //-----------------------------------------------------
        // 
        //  Public Properties 
        //
        //------------------------------------------------------ 

        #region Public Properties
        /// 
        /// This member allows access to previously requested 
        /// cached properties for this element. The returned object
        /// has accessors for each property defined for this pattern. 
        ///  
        /// 
        /// Cached property values must have been previously requested 
        /// using a CacheRequest. If you try to access a cached
        /// property that was not previously requested, an InvalidOperation
        /// Exception will be thrown.
        /// 
        /// To get the value of a property at the current point in time,
        /// access the property via the Current accessor instead of 
        /// Cached. 
        /// 
        public TransformPatternInformation Cached 
        {
            get
            {
                Misc.ValidateCached(_cached); 
                return new TransformPatternInformation(_el, true);
            } 
        } 

        ///  
        /// This member allows access to current property values
        /// for this element. The returned object has accessors for
        /// each property defined for this pattern.
        ///  
        /// 
        /// This pattern must be from an AutomationElement with a 
        /// Full reference in order to get current values. If the 
        /// AutomationElement was obtained using AutomationElementMode.None,
        /// then it contains only cached data, and attempting to get 
        /// the current value of any property will throw an InvalidOperationException.
        ///
        /// To get the cached value of a property that was previously
        /// specified using a CacheRequest, access the property via the 
        /// Cached accessor instead of Current.
        ///  
        public TransformPatternInformation Current 
        {
            get 
            {
                Misc.ValidateCurrent(_hPattern);
                return new TransformPatternInformation(_el, false);
            } 
        }
 
 
        #endregion Public Properties
 

        //-----------------------------------------------------
        //
        //  Internal Methods 
        //
        //----------------------------------------------------- 
 
        #region Internal Methods
 
        internal static object Wrap(AutomationElement el, SafePatternHandle hPattern, bool cached)
        {
            return new TransformPattern(el, hPattern, cached);
        } 

        #endregion Internal Methods 
 

        //----------------------------------------------------- 
        //
        //  Private Fields
        //
        //------------------------------------------------------ 

        #region Private Fields 
 
        private SafePatternHandle _hPattern;
        private bool _cached; 

        #endregion Private Fields

 
        //-----------------------------------------------------
        // 
        //  Nested Classes 
        //
        //------------------------------------------------------ 

        #region Nested Classes

        ///  
        /// This class provides access to either Cached or Current
        /// properties on a pattern via the pattern's .Cached or 
        /// .Current accessors. 
        /// 
        public struct TransformPatternInformation 
        {
            //------------------------------------------------------
            //
            //  Constructors 
            //
            //----------------------------------------------------- 
 
            #region Constructors
 
            internal TransformPatternInformation(AutomationElement el, bool useCache)
            {
                _el = el;
                _useCache = useCache; 
            }
 
            #endregion Constructors 

 
            //------------------------------------------------------
            //
            //  Public Properties
            // 
            //-----------------------------------------------------
 
            #region Public Properties 

            /// Returns true if the element can be moved otherwise returns false. 
            ///
            /// 
            /// This API does not work inside the secure execution environment.
            ///  
            /// 
            public bool CanMove 
            { 
                get
                { 
                    return (bool)_el.GetPatternPropertyValue(CanMoveProperty, _useCache);
                }
            }
 
            /// Returns true if the element can be resized otherwise returns false.
            /// 
            ///  
            /// This API does not work inside the secure execution environment.
            ///  
            /// 
            public bool CanResize
            {
                get 
                {
                    return (bool)_el.GetPatternPropertyValue(CanResizeProperty, _useCache); 
                } 
            }
 
            /// Returns true if the element can be rotated otherwise returns false.
            ///
            /// 
            /// This API does not work inside the secure execution environment. 
            /// 
            ///  
            public bool CanRotate 
            {
                get 
                {
                    return (bool)_el.GetPatternPropertyValue(CanRotateProperty, _useCache);
                }
            } 

            #endregion Public Properties 
 
            //-----------------------------------------------------
            // 
            //  Private Fields
            //
            //-----------------------------------------------------
 
            #region Private Fields
 
            private AutomationElement _el; // AutomationElement that contains the cache or live reference 
            private bool _useCache; // true to use cache, false to use live reference to get current values
 
            #endregion Private Fields
        }
        #endregion Nested Classes
    } 
}

// 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