karyfoundation/graph

View on GitHub
core/objects/dot/drag-move.ts

Summary

Maintainability
B
5 hrs
Test Coverage

//
// Copyright 2016 Kary Foundation, Inc.
//   Author: Pouya Kary <k@karyfoundation.org>
//

namespace KaryGraph {

    //
    // ─── DRAG MOVE FUNCTION LIST ────────────────────────────────────────────────────
    //

        export const DragMoveFunctions = [
            DragModeFunctionMoveMode,
            DragModeFunctionRemoveMode,
            DragModeFunctionEditMode,
            DragModeFunctionSelectMode
        ];

    //
    // ─── DRAG MOVE - MOVE MODE ──────────────────────────────────────────────────────
    //

        export function DragModeFunctionMoveMode( circle: ISnapObject, dx: number,
                                                  dy: number, posx: number, posy: number ) {
            posy -= GraphMarginTop;
            ( <Dot> Storage.Nodes[ circle.id ] ).MoveTo( posx , posy );

            ScriptEngine.EventHandler.RunEvents( 'OnMove', circle.id );
        }

    //
    // ─── DRAG MOVE - REMOVE MODE ────────────────────────────────────────────────────
    //

        export function DragModeFunctionRemoveMode( circle: ISnapObject, dx: number,
                                                    dy: number, posx: number, posy: number ) {

            ScriptEngine.EventHandler.RunEvents( 'OnRemove', circle.id );
        }

    //
    // ─── DRAG MOVE - EDIT MOVE ──────────────────────────────────────────────────────
    //

        export function DragModeFunctionEditMode( circle: ISnapObject, dx: number,
                                                  dy: number, posx: number, posy: number ) {

            ScriptEngine.EventHandler.RunEvents( 'OnMove', circle.id );
        }

    //
    // ─── DRAG MOVE - SELECT MOVE ────────────────────────────────────────────────────
    //

        export function DragModeFunctionSelectMode( circle: ISnapObject, dx: number,
                                                    dy: number, posx: number, posy: number ) {

            ScriptEngine.EventHandler.RunEvents( 'OnSelect', circle.id );
        }

    // ────────────────────────────────────────────────────────────────────────────────

}