MapFrame

MapFrame is a frame where every child node can be placed in an arbitrary location.

MapFrame supports drag & drop.

Constructors

this
this(T children)

Construct the space. Arguments are either nodes, or positions/vectors affecting the next node added through the constructor.

Members

Aliases

DropDirection
alias DropDirection = MapDropDirection
Undocumented in source.
DropVector
alias DropVector = MapDropVector
Undocumented in source.
Position
alias Position = MapPosition
Undocumented in source.

Functions

addChild
void addChild(Node node, Position position)

Add a new child to the space and assign it some position.

addChild
void addChild(Node node, Vector2 vector)
Undocumented in source.
addFocusedChild
void addFocusedChild(Node node, Position position)

Add a new child to the space and assign it some position.

dragChildBy
void dragChildBy(Node node, Vector2 delta)

Drag the given child, changing its position relatively.

drawImpl
void drawImpl(Rectangle outer, Rectangle inner)
Undocumented in source. Be warned that the author may not have intended to support it.
drop
void drop(Vector2 , Rectangle rectangle, Node node)
Undocumented in source. Be warned that the author may not have intended to support it.
dropHover
void dropHover(Vector2 position, Rectangle rectangle)
Undocumented in source. Be warned that the author may not have intended to support it.
mouseDrag
Node mouseDrag(Node node)

Make a node move relatively according to mouse position changes, making it behave as if it was being dragged by the mouse.

mouseDrag
inout(Node) mouseDrag()

Get the node currently affected by mouseDrag.

moveChild
void moveChild(Node node, Position position)
Undocumented in source.
moveChild
void moveChild(Node node, Vector2 vector)
Undocumented in source.
moveChild
void moveChild(Node node, DropVector vector)
Undocumented in source.
resizeImpl
void resizeImpl(Vector2 space)
Undocumented in source. Be warned that the author may not have intended to support it.
stopMouseDrag
void stopMouseDrag()

Stop current mouse movements

Variables

positions
Position[Node] positions;

Mapping of nodes to their positions.

preventOverflow
bool preventOverflow;

If true, the node will prevent its children from leaving the screen space.

Inherited Members

From Frame

isDropHovered
bool isDropHovered;

If true, a drag & drop node hovers this frame.

dropSelector
Selector dropSelector;

Selector (same as in themes) used to decide which nodes can be dropped inside, defaults to none.

dropCursor
Vector2 dropCursor;

Position of the cursor, indicating the area of the drop.

dropSize
Vector2 dropSize;

Size of the droppable area.

resizeImpl
void resizeImpl(Vector2 availableSpace)
Undocumented in source. Be warned that the author may not have intended to support it.
drawImpl
void drawImpl(Rectangle outer, Rectangle inner)
Undocumented in source. Be warned that the author may not have intended to support it.
hoveredImpl
bool hoveredImpl(Rectangle rect, Vector2 mousePosition)
Undocumented in source. Be warned that the author may not have intended to support it.
childOffset
Vector2 childOffset(Vector2 currentOffset, Vector2 childSpace)
Undocumented in source. Be warned that the author may not have intended to support it.
dropOffset
Vector2 dropOffset(Vector2 offset)

Drag and drop implementation: Offset nodes to provide space for the dropped node.

canDrop
bool canDrop(Node node)
dropHover
void dropHover(Vector2 position, Rectangle rectangle)
Undocumented in source. Be warned that the author may not have intended to support it.
drop
void drop(Vector2 position, Rectangle rectangle, Node node)
Undocumented in source. Be warned that the author may not have intended to support it.

Meta