File: System\Windows\Automation\Provider\ITransformProvider.cs
Web Access
Project: src\src\Microsoft.DotNet.Wpf\src\UIAutomation\UIAutomationProvider\UIAutomationProvider.csproj (UIAutomationProvider)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
 
// Description: Transform pattern provider interface
 
using System.Runtime.InteropServices;
 
namespace System.Windows.Automation.Provider
{
    /// <summary>
    /// Expose an element's ability to change its on-screen position, size or orientation
    /// </summary>
    [ComVisible(true)]
    [Guid("6829ddc4-4f91-4ffa-b86f-bd3e2987cb4c")]
    [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
#if (NO_INTERNAL_COMPILE_BUG1080665)
    internal interface ITransformProvider
#else
    public interface ITransformProvider
#endif
    {
        /// <summary>
        /// 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. 
        /// </summary>
        /// 
        /// <param name="x">absolute on-screen position of the top left corner</param>
        /// <param name="y">absolute on-screen position of the top left corner</param>
        void Move( double x, double y );
 
        /// <summary>
        /// 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.
        /// </summary>
        /// <param name="width">The requested width of the window.</param>
        /// <param name="height">The requested height of the window.</param>
        void Resize( double width, double height );
 
        /// <summary>
        /// Rotate the element the specified number of degrees.
        /// </summary>
        /// <param name="degrees">The requested degrees to rotate the element.  A positive number rotates clockwise
        /// a negative number rotates counter clockwise</param>
        void Rotate( double degrees );
 
        /// <summary>Returns true if the element can be moved otherwise returns false.</summary>
        bool CanMove 
        {
            [return: MarshalAs(UnmanagedType.Bool)] // Without this, only lower SHORT of BOOL*pRetVal param is updated.
            get;
        }
        
        /// <summary>Returns true if the element can be resized otherwise returns false.</summary>
        bool CanResize
        {
            [return: MarshalAs(UnmanagedType.Bool)] // Without this, only lower SHORT of BOOL*pRetVal param is updated.
            get;
        }
        
        /// <summary>Returns true if the element can be rotated otherwise returns false.</summary>
        bool CanRotate
        {
            [return: MarshalAs(UnmanagedType.Bool)] // Without this, only lower SHORT of BOOL*pRetVal param is updated.
            get;
        }
    }
}