Skip to content

DragService

Dirkster99 edited this page May 12, 2020 · 30 revisions

Overview

The DragService class in the LayoutFloatingWindowControl manages the drag & drop behavior when the user drags a document (LayoutDocument) or toolwindow (LayoutAnchoreable) and drops it in an alternative position. This behavior is implemented via the LayoutFloatingWindowControl which can in turn contain other elements, such as:

Initiating Drag & Drop

A drag & drop action for Anchoreables or Documents is usually initiated through one of the methods listed below:

Anchorable

Document

Methods

Public Methods

Update Mouse Position

public void UpdateMouseLocation( Point dragPosition )

TBD

Drop

public void Drop( Point dropLocation, out bool dropHandled )

The Drop method is executed when a LayoutAnchorable or LayoutDocument is dragged out of its current position and dropped into a new docking position.

This code in the Drop() method checks whether there is a new docking position and handles the drop:

private IDropTarget _currentDropTarget;

...
if( _currentDropTarget != null )
{
  _currentWindow.DragDrop( _currentDropTarget );
  root.CollectGarbage();
  dropHandled = true;
}

The call to OverlayWindow.DragDrop( _currentDropTarget ) is relayed to the:

using the LayoutFloatingWindowControl _floatingWindow.Model as LayoutFloatingWindow of the OverlayWindow as parameter.

Internal Methods

Abort

internal void Abort()

TBD

See also

Demo Projects

Controls

Layout Models

Interfaces

Class Designs

Bugs

Manual Tests

Clone this wiki locally