| File: System\Windows\Forms\Design\ISelectionUIHandler.cs | Web Access |
| Project: src\winforms\src\System.Windows.Forms.Design\src\System.Windows.Forms.Design.csproj (System.Windows.Forms.Design) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System.ComponentModel; using System.Drawing; namespace System.Windows.Forms.Design; /// <summary> /// This interface allows a designer to provide information to the selection UI /// service that is needed to allow it to draw selection UI and to provide /// automatic component drag support. /// </summary> internal interface ISelectionUIHandler { /// <summary> /// Begins a drag on the currently selected designer. The designer should provide /// UI feedback about the drag at this time. Typically, this feedback consists /// of an inverted rectangle for each component, or a caret if the component /// is text. /// </summary> bool BeginDrag(object[] components, SelectionRules rules, int initialX, int initialY); /// <summary> /// Called when the user has moved the mouse. This will only be called on /// the designer that returned true from beginDrag. The designer /// should update its UI feedback here. /// </summary> void DragMoved(object[] components, Rectangle offset); /// <summary> /// Called when the user has completed the drag. The designer should /// remove any UI feedback it may be providing. /// </summary> void EndDrag(object[] components, bool cancel); /// <summary> /// Retrieves the shape of the component. The component's shape should be in /// absolute coordinates and in pixels, where 0,0 is the upper left corner of /// the screen. /// </summary> Rectangle GetComponentBounds(object component); /// <summary> /// Retrieves a set of rules concerning the movement capabilities of a component. /// This should be one or more flags from the SelectionRules class. If no designer /// provides rules for a component, the component will not get any UI services. /// </summary> SelectionRules GetComponentRules(object component); /// <summary> /// Determines the rectangle that any selection adornments should be clipped /// to. This is normally the client area (in screen coordinates) of the /// container. /// </summary> Rectangle GetSelectionClipRect(object component); /// <summary> /// Handle a double-click on the selection rectangle /// of the given component. /// </summary> void OnSelectionDoubleClick(IComponent component); /// <summary> /// Queries to see if a drag operation /// is valid on this handler for the given set of components. /// If it returns true, BeginDrag will be called immediately after. /// </summary> bool QueryBeginDrag(object[] components, SelectionRules rules, int initialX, int initialY); /// <summary> /// Shows the context menu for the given component. /// </summary> void ShowContextMenu(IComponent component); void OleDragEnter(DragEventArgs de); void OleDragDrop(DragEventArgs de); void OleDragOver(DragEventArgs de); void OleDragLeave(); }