src/cm/media/js/lib/yui/yui_3.0.0b1/build/dd/dd-ddm-debug.js
author Yves-Marie Haussonne <ymh.work+github@gmail.com>
Fri, 09 May 2014 18:35:26 +0200
changeset 656 a84519031134
parent 0 40c8f766c9b8
permissions -rw-r--r--
add link to "privacy policy" in the header test
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     1
/*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     2
Copyright (c) 2009, Yahoo! Inc. All rights reserved.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     3
Code licensed under the BSD License:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     4
http://developer.yahoo.net/yui/license.txt
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     5
version: 3.0.0b1
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     6
build: 1163
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     7
*/
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     8
YUI.add('dd-ddm', function(Y) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     9
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    10
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    11
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    12
     * Extends the dd-ddm-base Class to add support for the viewport shim to allow a draggable node to drag to be dragged over an iframe or any other node that traps mousemove events.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    13
     * It is also required to have Drop Targets enabled, as the viewport shim will contain the shims for the Drop Targets.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    14
     * @module dd
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    15
     * @submodule dd-ddm
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    16
     * @for DDM
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    17
     * @namespace DD
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    18
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    19
    Y.mix(Y.DD.DDM, {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    20
        /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    21
        * @private
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    22
        * @property _pg
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    23
        * @description The shim placed over the screen to track the mousemove event.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    24
        * @type {Node}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    25
        */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    26
        _pg: null,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    27
        /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    28
        * @private
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    29
        * @property _debugShim
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    30
        * @description Set this to true to set the shims opacity to .5 for debugging it, default: false.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    31
        * @type {Boolean}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    32
        */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    33
        _debugShim: false,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    34
        _activateTargets: function() {},
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    35
        _deactivateTargets: function() {},
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    36
        _startDrag: function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    37
            if (this.activeDrag.get('useShim')) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    38
                this._pg_activate();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    39
                this._activateTargets();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    40
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    41
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    42
        _endDrag: function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    43
            this._pg_deactivate();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    44
            this._deactivateTargets();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    45
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    46
        /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    47
        * @private
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    48
        * @method _pg_deactivate
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    49
        * @description Deactivates the shim
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    50
        */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    51
        _pg_deactivate: function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    52
            this._pg.setStyle('display', 'none');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    53
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    54
        /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    55
        * @private
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    56
        * @method _pg_activate
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    57
        * @description Activates the shim
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    58
        */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    59
        _pg_activate: function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    60
            var ah = this.activeDrag.get('activeHandle'), cur = 'auto';
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    61
            if (ah) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    62
                cur = ah.getStyle('cursor');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    63
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    64
            if (cur == 'auto') {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    65
                cur = this.get('dragCursor');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    66
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    67
            
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    68
            this._pg_size();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    69
            this._pg.setStyles({
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    70
                top: 0,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    71
                left: 0,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    72
                display: 'block',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    73
                opacity: ((this._debugShim) ? '.5' : '0'),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    74
                cursor: cur
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    75
            });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    76
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    77
        /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    78
        * @private
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    79
        * @method _pg_size
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    80
        * @description Sizes the shim on: activatation, window:scroll, window:resize
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    81
        */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    82
        _pg_size: function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    83
            if (this.activeDrag) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    84
                var b = Y.get('body'),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    85
                h = b.get('docHeight'),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    86
                w = b.get('docWidth');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    87
                this._pg.setStyles({
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    88
                    height: h + 'px',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    89
                    width: w + 'px'
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    90
                });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    91
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    92
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    93
        /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    94
        * @private
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    95
        * @method _createPG
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    96
        * @description Creates the shim and adds it's listeners to it.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    97
        */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    98
        _createPG: function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    99
            var pg = Y.Node.create('<div></div>'),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   100
            bd = Y.get('body');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   101
            pg.setStyles({
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   102
                top: '0',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   103
                left: '0',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   104
                position: 'absolute',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   105
                zIndex: '9999',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   106
                overflow: 'hidden',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   107
                backgroundColor: 'red',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   108
                display: 'none',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   109
                height: '5px',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   110
                width: '5px'
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   111
            });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   112
            pg.set('id', Y.stamp(pg));
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   113
            pg.addClass('yui-dd-shim');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   114
            if (bd.get('firstChild')) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   115
                bd.insertBefore(pg, bd.get('firstChild'));
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   116
            } else {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   117
                bd.appendChild(pg);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   118
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   119
            this._pg = pg;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   120
            this._pg.on('mouseup', Y.bind(this._end, this));
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   121
            this._pg.on('mousemove', Y.bind(this._move, this));
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   122
            
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   123
            var win = Y.get(window);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   124
            win.on('resize', Y.bind(this._pg_size, this));
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   125
            win.on('scroll', Y.bind(this._pg_size, this));
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   126
        }   
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   127
    }, true);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   128
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   129
    Y.on('domready', Y.bind(Y.DD.DDM._createPG, Y.DD.DDM));
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   130
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   131
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   132
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   133
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   134
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   135
}, '3.0.0b1' ,{requires:['dd-ddm-base'], skinnable:false});