src/cm/media/js/lib/yui/yui3.0.0/build/slider/slider-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.0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     6
build: 1549
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('slider', 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
 * Create a sliding value range input visualized as a draggable thumb on a
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    12
 * background element.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    13
 * 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    14
 * @module slider
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    15
 */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    16
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    17
var SLIDER = 'slider',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    18
    RAIL   = 'rail',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    19
    THUMB  = 'thumb',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    20
    VALUE  = 'value',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    21
    MIN    = 'min',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    22
    MAX    = 'max',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    23
    MIN_GUTTER = 'minGutter',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    24
    MAX_GUTTER = 'maxGutter',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    25
    THUMB_IMAGE = 'thumbImage',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    26
    RAIL_SIZE   = 'railSize',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    27
    CONTENT_BOX = 'contentBox',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    28
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    29
    SLIDE_START = 'slideStart',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    30
    SLIDE_END   = 'slideEnd',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    31
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    32
    THUMB_DRAG  = 'thumbDrag',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    33
    SYNC        = 'sync',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    34
    POSITION_THUMB = 'positionThumb',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    35
    RENDERED    = 'rendered',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    36
    DISABLED    = 'disabled',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    37
    DISABLED_CHANGE = 'disabledChange',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    38
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    39
    DOT      = '.',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    40
    PX       = 'px',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    41
    WIDTH    = 'width',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    42
    HEIGHT   = 'height',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    43
    COMPLETE = 'complete',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    44
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    45
    L = Y.Lang,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    46
    isBoolean= L.isBoolean,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    47
    isString = L.isString,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    48
    isNumber = L.isNumber,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    49
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    50
    getCN    = Y.ClassNameManager.getClassName,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    51
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    52
    IMAGE         = 'image',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    53
    C_RAIL        = getCN(SLIDER,RAIL),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    54
    C_THUMB       = getCN(SLIDER,THUMB),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    55
    C_THUMB_IMAGE = getCN(SLIDER,THUMB,IMAGE),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    56
    C_IMAGE_ERROR = getCN(SLIDER,IMAGE,'error'),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    57
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    58
    M        = Math,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    59
    max      = M.max,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    60
    round    = M.round,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    61
    floor    = M.floor;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    62
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    63
/**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    64
 * Create a slider to represent an integer value between a given minimum and
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    65
 * maximum.  Sliders may be aligned vertically or horizontally, based on the
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    66
 * <code>axis</code> configuration.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    67
 *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    68
 * @class Slider
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    69
 * @extends Widget
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    70
 * @param config {Object} Configuration object
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    71
 * @constructor
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    72
 */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    73
function Slider() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    74
    Slider.superclass.constructor.apply(this,arguments);
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
Y.mix(Slider, {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    78
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    79
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    80
     * The identity of the widget.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    81
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    82
     * @property Slider.NAME
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    83
     * @type String
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    84
     * @static
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    85
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    86
    NAME : SLIDER,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    87
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    88
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    89
     * Object property names used for respective X and Y axis Sliders (e.g.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    90
     * &quot;left&quot; vs. &quot;top&quot; for placing the thumb according to
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    91
     * its representative value).
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    92
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    93
     * @property Slider._AXIS_KEYS
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    94
     * @type Object
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    95
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    96
     * @static
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    97
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    98
    _AXIS_KEYS : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    99
        x : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   100
            dim           : WIDTH,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   101
            offAxisDim    : HEIGHT,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   102
            eventPageAxis : 'pageX',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   103
            ddStick       : 'stickX',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   104
            xyIndex       : 0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   105
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   106
        y : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   107
            dim           : HEIGHT,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   108
            offAxisDim    : WIDTH,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   109
            eventPageAxis : 'pageY',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   110
            ddStick       : 'stickY',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   111
            xyIndex       : 1
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   112
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   113
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   114
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   115
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   116
     * Static Object hash used to capture existing markup for progressive
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   117
     * enhancement.  Keys correspond to config attribute names and values
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   118
     * are selectors used to inspect the contentBox for an existing node
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   119
     * structure.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   120
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   121
     * @property Slider.HTML_PARSER
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   122
     * @type Object
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   123
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   124
     * @static
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   125
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   126
    HTML_PARSER : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   127
        rail       : DOT + C_RAIL,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   128
        thumb      : DOT + C_THUMB,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   129
        thumbImage : DOT + C_THUMB_IMAGE
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
     * Static property used to define the default attribute configuration of
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   134
     * the Widget.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   135
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   136
     * @property Slider.ATTRS
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   137
     * @type Object
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   138
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   139
     * @static
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   140
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   141
    ATTRS : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   142
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   143
        /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   144
         * Axis upon which the Slider's thumb moves.  &quot;x&quot; for
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   145
         * horizontal, &quot;y&quot; for vertical.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   146
         *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   147
         * @attribute axis
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   148
         * @type String
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   149
         * @default &quot;x&quot;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   150
         * @writeOnce
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   151
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   152
        axis : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   153
            value : 'x',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   154
            writeOnce : true,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   155
            validator : function (v) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   156
                return this._validateNewAxis(v);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   157
            },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   158
            setter : function (v) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   159
                return this._setAxisFn(v);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   160
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   161
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   162
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   163
        /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   164
         * Value associated with the left or top most position of the thumb on
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   165
         * the rail.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   166
         *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   167
         * @attribute min
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   168
         * @type Number
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   169
         * @default 0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   170
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   171
        min : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   172
            value : 0,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   173
            validator : function (v) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   174
                return this._validateNewMin(v);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   175
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   176
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   177
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   178
        /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   179
         * Value associated with the right or bottom most position of the thumb
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   180
         * on the rail.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   181
         *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   182
         * @attribute max
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   183
         * @type Number
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   184
         * @default 100
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   185
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   186
        max : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   187
            value : 100,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   188
            validator : function (v) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   189
                return this._validateNewMax(v);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   190
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   191
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   192
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   193
        /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   194
         * The current value of the Slider.  This value is interpretted into a
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   195
         * position for the thumb along the Slider's rail.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   196
         *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   197
         * @attribute value
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   198
         * @type Number
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   199
         * @default 0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   200
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   201
        value : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   202
            value : 0,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   203
            validator : function (v) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   204
                return this._validateNewValue(v);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   205
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   206
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   207
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   208
        /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   209
         * The Node representing the Slider's rail, usually visualized as a
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   210
         * bar of some sort using a background image, along which the thumb
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   211
         * moves.  This Node contains the thumb Node.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   212
         *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   213
         * @attribute rail
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   214
         * @type Node
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   215
         * @default null
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   216
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   217
        rail : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   218
            value : null,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   219
            validator : function (v) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   220
                return this._validateNewRail(v);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   221
            },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   222
            setter : function (v) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   223
                return this._setRailFn(v);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   224
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   225
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   226
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   227
        /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   228
         * <p>The Node representing the Slider's thumb, usually visualized as a
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   229
         * pointer using a contained image Node (see thumbImage).  The current
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   230
         * value of the Slider is calculated from the centerpoint of this
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   231
         * Node in relation to the rail Node.  If provided, the thumbImage
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   232
         * Node is contained within this Node.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   233
         *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   234
         * <p>If no thumbImage is provided and the Node passed as the thumb is
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   235
         * an <code>img</code> element, the assigned Node will be allocated to
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   236
         * the thumbImage and the thumb container defaulted.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   237
         *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   238
         * @attribute thumb
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   239
         * @type Node
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   240
         * @default null
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   241
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   242
        thumb : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   243
            value : null,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   244
            validator : function (v) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   245
                return this._validateNewThumb(v);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   246
            },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   247
            setter : function (v) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   248
                return this._setThumbFn(v);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   249
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   250
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   251
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   252
        /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   253
         * <p>The Node representing the image element to use for the Slider's
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   254
         * thumb.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   255
         *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   256
         * <p>Alternately, an image URL can be passed and an <code>img</code>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   257
         * Node will be generated accordingly.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   258
         *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   259
         * <p>If no thumbImage is provided and the Node passed as the thumb is
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   260
         * an <code>img</code> element, the assigned Node will be allocated to
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   261
         * the thumbImage and the thumb container defaulted.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   262
         *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   263
         * <p>If thumbImage is provided but its URL resolves to a 404, a default
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   264
         * style will be applied to maintain basic functionality.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   265
         *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   266
         * @attribute thumbImage
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   267
         * @type Node|String
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   268
         * @default null
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   269
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   270
        thumbImage : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   271
            value : null,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   272
            validator : function (v) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   273
                return this._validateNewThumbImage(v);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   274
            },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   275
            setter : function (v) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   276
                return this._setThumbImageFn(v);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   277
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   278
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   279
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   280
        /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   281
         * <p>The width or height of the rail element representing the physical
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   282
         * space along which the thumb can move.  CSS size values (e.g. '30em')
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   283
         * accepted but converted to pixels during render.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   284
         *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   285
         * <p>Alternately, but not recommended, this attribute can be left
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   286
         * unassigned in favor of specifying height or width.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   287
         *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   288
         * @attribute railSize
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   289
         * @type String
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   290
         * @default '0'
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   291
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   292
        railSize : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   293
            value : '0',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   294
            validator : function (v) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   295
                return this._validateNewRailSize(v);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   296
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   297
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   298
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   299
        /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   300
         * Boolean indicating whether clicking and dragging on the rail will
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   301
         * trigger thumb movement.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   302
         *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   303
         * @attribute railEnabled
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   304
         * @type Boolean
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   305
         * @default true
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   306
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   307
        railEnabled : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   308
            value : true,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   309
            validator : isBoolean
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   310
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   311
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   312
        /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   313
         * Like CSS padding, the distance in pixels from the inner top or left
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   314
         * edge of the rail node within which the thumb can travel.  Negative
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   315
         * values allow the edge of the thumb to escape the rail node
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   316
         * boundaries.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   317
         *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   318
         * @attribute minGutter
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   319
         * @type Number
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   320
         * @default 0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   321
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   322
        minGutter : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   323
            value : 0,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   324
            validator : isNumber
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   325
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   326
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   327
        /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   328
         * Like CSS padding, the distance in pixels from the inner bottom or
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   329
         * right edge of the rail node within which the thumb can travel.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   330
         * Negative values allow the edge of the thumb to escape the rail node
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   331
         * boundaries.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   332
         *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   333
         * @attribute maxGutter
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   334
         * @type Number
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   335
         * @default 0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   336
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   337
        maxGutter : {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   338
            value : 0,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   339
            validator : isNumber
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   340
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   341
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   342
});
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   343
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   344
Y.extend(Slider, Y.Widget, {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   345
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   346
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   347
     * Collection of object property names from the appropriate hash set in
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   348
     * Slider._AXIS_KEYS.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   349
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   350
     * @property _key
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   351
     * @type Object
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   352
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   353
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   354
    _key : null,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   355
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   356
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   357
     * Factor used to translate positional coordinates (e.g. left or top) to
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   358
     * the Slider's value.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   359
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   360
     * @property _factor
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   361
     * @type Number
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   362
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   363
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   364
    _factor : 1,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   365
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   366
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   367
     * Pixel dimension of the rail Node's width for X axis Sliders or height
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   368
     * for Y axis Sliders.  Used with _factor to calculate positional
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   369
     * coordinates for the thumb.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   370
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   371
     * @property _railSize
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   372
     * @type Number
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   373
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   374
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   375
    _railSize : null,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   376
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   377
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   378
     * Pixel dimension of the thumb Node's width for X axis Sliders or height
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   379
     * for Y axis Sliders.  Used with _factor to calculate positional
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   380
     * coordinates for the thumb.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   381
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   382
     * @property _thumbSize
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   383
     * @type Number
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   384
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   385
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   386
    _thumbSize : null,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   387
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   388
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   389
     * Pixel offset of the point in the thumb element from its top/left edge
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   390
     * to where the value calculation should take place.  By default, this is
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   391
     * calculated to half the width of the thumb, causing the value to be
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   392
     * marked from the center of the thumb.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   393
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   394
     * @property _thumbOffset
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   395
     * @type Number
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   396
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   397
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   398
    _thumbOffset : 0,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   399
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   400
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   401
     * Object returned from temporary subscription to disabledChange event to
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   402
     * defer setting the disabled state while Slider is loading the thumb
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   403
     * image.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   404
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   405
     * @property _stall
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   406
     * @type Object
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   407
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   408
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   409
    _stall : false,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   410
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   411
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   412
     * Deferred value for the disabled attribute when stalled (see _stall
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   413
     * property).
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   414
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   415
     * @property _disabled
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   416
     * @type Boolean
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   417
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   418
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   419
    _disabled : false,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   420
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   421
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   422
     * Construction logic executed durint Slider instantiation. Subscribes to
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   423
     * after events for min, max, and railSize.  Publishes custom events
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   424
     * including slideStart and slideEnd.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   425
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   426
     * @method initializer
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   427
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   428
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   429
    initializer : function () {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   430
        this._key = Slider._AXIS_KEYS[this.get('axis')];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   431
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   432
        this.after('minChange',      this._afterMinChange);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   433
        this.after('maxChange',      this._afterMaxChange);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   434
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   435
        this.after('railSizeChange', this._afterRailSizeChange);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   436
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   437
        /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   438
         * Signals the beginning of a thumb drag operation.  Payload includes
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   439
         * the DD.Drag instance's drag:start event under key ddEvent.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   440
         *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   441
         * @event slideStart
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   442
         * @param event {Event.Facade} An Event Facade object with the following attribute specific properties added:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   443
         *  <dl>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   444
         *      <dt>ddEvent</dt>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   445
         *          <dd><code>drag:start</code> event from the managed DD.Drag instance</dd>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   446
         *  </dl>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   447
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   448
        this.publish(SLIDE_START);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   449
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   450
        /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   451
         * Signals the end of a thumb drag operation.  Payload includes
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   452
         * the DD.Drag instance's drag:end event under key ddEvent.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   453
         *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   454
         * @event slideEnd
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   455
         * @param event {Event.Facade} An Event Facade object with the following attribute specific properties added:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   456
         *  <dl>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   457
         *      <dt>ddEvent</dt>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   458
         *          <dd><code>drag:end</code> event from the managed DD.Drag instance</dd>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   459
         *  </dl>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   460
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   461
        this.publish(SLIDE_END);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   462
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   463
        /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   464
         * Communicates a request to synchronize the Slider UI with the
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   465
         * attribute state.  Links the sync request with the default sync
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   466
         * logic in _defSyncFn.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   467
         *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   468
         * @event sync
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   469
         * @param event {Event.Facade} Event Facade object
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   470
         * @preventable _defSyncFn
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   471
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   472
        this.publish(SYNC, { defaultFn: this._defSyncFn });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   473
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   474
        /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   475
         * Signals a request to reposition the thumb in response to API methods.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   476
         * Triggers the thumb placement logic in _defPositionThumbFn.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   477
         *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   478
         * @event positionThumb
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   479
         * @param event {Event.Facade} An Event Facade object with the following attribute specific properties added:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   480
         *  <dl>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   481
         *      <dt>changeEv</dt>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   482
         *          <dd><code>valueChange</code> event fired in response to the change in the value attribute</dd>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   483
         *  </dl>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   484
         * @preventable _defPositionThumbFn
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   485
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   486
        this.publish(POSITION_THUMB, { defaultFn: this._defPositionThumbFn });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   487
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   488
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   489
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   490
     * Create the DOM structure for the Slider.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   491
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   492
     * @method renderUI
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   493
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   494
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   495
    renderUI : function () {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   496
        this._initRail();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   497
        this._initThumb();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   498
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   499
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   500
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   501
     * Creates the rail element if not provided and not discovered via
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   502
     * HTML_PARSER.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   503
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   504
     * @method _initRail
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   505
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   506
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   507
    _initRail : function () {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   508
        var cb   = this.get(CONTENT_BOX),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   509
            rail = this.get(RAIL);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   510
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   511
        // Create rail if necessary. Make sure it's in the contentBox
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   512
        if (!rail) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   513
            rail = cb.appendChild(
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   514
                Y.Node.create('<div class="'+C_RAIL+'"></div>'));
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   515
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   516
            this.set(RAIL,rail);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   517
        } else if (!cb.contains(rail)) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   518
            cb.appendChild(rail);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   519
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   520
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   521
        rail.addClass(C_RAIL);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   522
        rail.addClass(this.getClassName(RAIL,this.get('axis')));
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   523
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   524
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   525
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   526
     * <p>Creates the thumb element (not image) if not provided and not
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   527
     * discovered via HTML_PARSER.  If the thumb is an <code>img</code> element
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   528
     * but no thumbImage configured or discovered, reassigns the thumb element
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   529
     * to the thumbImage and defaults the thumb element as a div.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   530
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   531
     * <p>Makes sure the thumb is a child of the rail element and calls
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   532
     * _initThumbImage if thumbImage is provided.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   533
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   534
     * @method _initThumb
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   535
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   536
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   537
    _initThumb : function () {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   538
        var rail    = this.get(RAIL),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   539
            thumb   = this.get(THUMB);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   540
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   541
        // Passed an img element as the thumb
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   542
        if (thumb && !this.get(THUMB_IMAGE) &&
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   543
            thumb.get('nodeName').toLowerCase() === 'img') {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   544
            this.set(THUMB_IMAGE, thumb);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   545
            this.set(THUMB,null);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   546
            thumb = null;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   547
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   548
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   549
        if (!thumb) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   550
            thumb = Y.Node.create(
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   551
                '<div class="'+C_THUMB+'"></div>');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   552
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   553
            this.set(THUMB,thumb);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   554
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   555
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   556
        thumb.addClass(C_THUMB);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   557
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   558
        if (!rail.contains(thumb)) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   559
            rail.appendChild(thumb);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   560
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   561
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   562
        if (this.get(THUMB_IMAGE)) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   563
            this._initThumbImage();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   564
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   565
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   566
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   567
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   568
     * Ensures the thumbImage is a child of the thumb element.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   569
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   570
     * @method _initThumbImage
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   571
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   572
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   573
    _initThumbImage : function () {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   574
        var thumb = this.get(THUMB),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   575
            img   = this.get(THUMB_IMAGE);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   576
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   577
        if (img) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   578
            img.replaceClass(C_THUMB,C_THUMB_IMAGE);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   579
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   580
            if (!thumb.contains(img)) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   581
                thumb.appendChild(img);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   582
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   583
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   584
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   585
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   586
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   587
     * Creates the Y.DD instance used to handle the thumb movement and binds
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   588
     * Slider interaction to the configured value model.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   589
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   590
     * @method bindUI
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   591
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   592
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   593
    bindUI : function () {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   594
        /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   595
         * Bridges user interaction with the thumb to the value attribute.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   596
         *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   597
         * @event thumbDrag
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   598
         * @param event {Event.Facade} An Event Facade object with the following attribute specific properties added:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   599
         *  <dl>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   600
         *      <dt>ddEvent</dt>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   601
         *          <dd><code>drag:drag</code> event from the managed DD.Drag instance</dd>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   602
         *  </dl>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   603
         * @preventable _defThumbDragFn
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   604
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   605
        this.publish(THUMB_DRAG, {defaultFn: this._defThumbDragFn});
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   606
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   607
        this._bindThumbDD();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   608
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   609
        this.after('valueChange',      this._afterValueChange);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   610
        this.after('thumbImageChange', this._afterThumbImageChange);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   611
        this.after(DISABLED_CHANGE,    this._afterDisabledChange);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   612
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   613
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   614
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   615
     * Creates the Y.DD instance used to handle the thumb interaction.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   616
     * 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   617
     * @method _bindThumbDD
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   618
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   619
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   620
    _bindThumbDD : function () {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   621
        var ddConf = {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   622
                node : this.get(THUMB),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   623
                bubble : false
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   624
            },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   625
            conConf = {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   626
                constrain2node : this.get(RAIL)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   627
            };
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   628
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   629
        conConf[this._key.ddStick] = true;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   630
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   631
        this._dd = new Y.DD.Drag(ddConf).plug(Y.Plugin.DDConstrained, conConf);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   632
        this._dd.on('drag:start', Y.bind(this._onDDStartDrag, this));
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   633
        this._dd.on('drag:drag',  Y.bind(this._onDDDrag,      this));
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   634
        this._dd.on('drag:end',   Y.bind(this._onDDEndDrag,   this));
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   635
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   636
        this._initRailDD();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   637
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   638
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   639
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   640
     * Subscribes to the rail Node's mousedown event to actuate the thumb when
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   641
     * backgroundEnabled is true.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   642
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   643
     * @method _initRailDD
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   644
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   645
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   646
    _initRailDD : function () {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   647
        this.get(RAIL).on('mousedown',Y.bind(this._handleRailMouseDown,this));
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   648
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   649
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   650
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   651
     * If the Slider is not disabled and railEnabled is true, moves the thumb
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   652
     * to the mousedown position and hands control over to DD.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   653
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   654
     * @method _handleRailMouseDown
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   655
     * @param e {Event} Mousedown event facade
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   656
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   657
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   658
    _handleRailMouseDown : function (e) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   659
        if (this.get('railEnabled') && !this.get(DISABLED)) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   660
            var dd      = this._dd,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   661
                xyIndex = this._key.xyIndex,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   662
                xy;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   663
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   664
            if (dd.get('primaryButtonOnly') && e.button > 1) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   665
                Y.log('Mousedown was not produced by the primary button',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   666
                      'warn', 'dd-drag');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   667
                return false;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   668
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   669
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   670
            dd._dragThreshMet = true;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   671
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   672
            dd._fixIEMouseDown();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   673
            e.halt();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   674
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   675
            Y.DD.DDM.activeDrag = dd;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   676
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   677
            // Adjust registered starting position by half the thumb's x/y
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   678
            xy = dd.get('dragNode').getXY();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   679
            xy[xyIndex] += this._thumbOffset;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   680
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   681
            dd._setStartPosition(xy);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   682
            dd.set('activeHandle',dd.get('dragNode'));
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   683
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   684
            dd.start();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   685
            dd._alignNode([e.pageX,e.pageY]);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   686
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   687
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   688
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   689
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   690
     * Synchronizes the DOM state with the attribute settings (most notably
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   691
     * railSize and value).  If thumbImage is provided and is still loading,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   692
     * sync is delayed until it is complete, since the image's dimensions are
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   693
     * taken into consideration for calculations.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   694
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   695
     * @method syncUI
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   696
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   697
    syncUI : function () {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   698
        this.get(CONTENT_BOX).removeClass(C_IMAGE_ERROR);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   699
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   700
        var img = this.get(THUMB_IMAGE);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   701
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   702
        if (this._isImageLoading(img)) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   703
            Y.log('Thumb image loading. Scheduling sync.','info','slider');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   704
            // Schedule the sync for when the image loads/errors
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   705
            this._scheduleSync();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   706
        } else {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   707
            Y.log('No thumb image, or image already loaded. Syncing immediately.','info','slider');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   708
            this._ready(img,!this._isImageLoaded(img));
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   709
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   710
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   711
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   712
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   713
     * Binds to the load and error event on the thumbImage to sync the DOM
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   714
     * state with the attribute settings when the image resource is resolved.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   715
     * The Slider is disabled while it waits.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   716
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   717
     * @method _scheduleSync
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   718
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   719
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   720
    _scheduleSync : function () {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   721
        var img, handler;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   722
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   723
        if (!this._stall) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   724
            // disable the control until the image is loaded
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   725
            this._disabled = this.get(DISABLED);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   726
            this.set(DISABLED,true);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   727
            this._stall    = this.on(DISABLED_CHANGE,this._stallDisabledChange);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   728
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   729
            img     = this.get(THUMB_IMAGE);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   730
            handler = Y.bind(this._imageLoaded,this,img);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   731
            img.on('load', handler);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   732
            img.on('error',handler);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   733
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   734
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   735
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   736
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   737
     * Method subscribed to the disabledChange event when thumbImage is being
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   738
     * loaded.  Prevents manually enabling the Slider until the thumbImage
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   739
     * resource is resolved.  Intended value is stored during load and set upon
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   740
     * completion.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   741
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   742
     * @method _stallDisabledChange
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   743
     * @param e {Event} Change event for the disabled attribute
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   744
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   745
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   746
    _stallDisabledChange : function (e) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   747
        this._disabled = e.newVal;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   748
        e.preventDefault();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   749
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   750
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   751
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   752
     * Event handler assigned to the thumbImage's load and error event if it
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   753
     * was not loaded prior to instantiation.  Restores the disabled value.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   754
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   755
     * @method _imageLoaded
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   756
     * @param img {Node} The thumbImage Node
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   757
     * @param e {Event} load or error event fired by the thumbImage
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   758
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   759
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   760
    _imageLoaded : function (img,e) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   761
        var error = (e.type.toLowerCase().indexOf('error') > -1);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   762
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   763
        // Need to execute inside a setTimeout because IE doesn't report
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   764
        // img.complete === true until after the img.onload handler
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   765
        // @TODO: readyState reports correctly in onload.  Lose this wrapper
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   766
        // and use that in _isImageLoaded.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   767
        Y.later(0, this, function () {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   768
            if (this._stall) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   769
                this._stall.detach();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   770
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   771
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   772
            Y.log('Thumb image '+e.type+'ed.  Syncing','info','slider');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   773
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   774
            this._stall = false;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   775
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   776
            this._ready(img,error);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   777
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   778
            this.set(DISABLED,this._disabled);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   779
        });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   780
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   781
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   782
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   783
     * Applies a class to the content box if the thumbImage failed to resolve,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   784
     * the fires the internal sync event triggering a sync between UI and
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   785
     * state.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   786
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   787
     * @method _ready
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   788
     * @param img {Node} the thumbImage Node
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   789
     * @param error {Boolean} Indicates an error while loading the thumbImage
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   790
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   791
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   792
    _ready : function (img,error) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   793
        var method = error ? 'addClass' : 'removeClass';
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   794
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   795
        // If the thumb image url results in 404, assign a class to provide
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   796
        // default thumb dimensions/UI
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   797
        this.get(CONTENT_BOX)[method](C_IMAGE_ERROR);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   798
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   799
        this.fire(SYNC);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   800
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   801
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   802
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   803
     * The default synchronization behavior, updating the Slider's DOM state to
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   804
     * match the current attribute values.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   805
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   806
     * @method _defSyncFn
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   807
     * @param e {Event} Internal sync event
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   808
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   809
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   810
    _defSyncFn : function (e) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   811
        this._uiSetThumbSize();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   812
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   813
        this._setThumbOffset();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   814
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   815
        this._uiSetRailSize();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   816
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   817
        this._setRailOffsetXY();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   818
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   819
        this._setDDGutter();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   820
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   821
        this._resetDDCacheRegion();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   822
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   823
        this._setFactor();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   824
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   825
        var val = this.get(VALUE);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   826
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   827
        this.fire(POSITION_THUMB, {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   828
            value  : val,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   829
            offset : this._convertValueToOffset(val)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   830
        });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   831
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   832
        // Forces a reflow of the bounding box to address IE8 inline-block
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   833
        // container not expanding correctly. bug 2527905
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   834
        this.get('boundingBox').toggleClass('');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   835
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   836
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   837
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   838
     * Captures the thumb's pixel height or width (depending on the Slider's
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   839
     * axis) for use in positioning calculations.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   840
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   841
     * @method _uiSetThumbSize
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   842
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   843
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   844
    _uiSetThumbSize : function () {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   845
        var thumb = this.get(THUMB),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   846
            dim   = this._key.dim,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   847
            img   = this.get(THUMB_IMAGE),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   848
            size;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   849
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   850
        // offsetWidth fails in hidden containers
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   851
        size = parseInt(thumb.getComputedStyle(dim),10);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   852
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   853
        Y.log('thumb '+dim+': '+size+'px','info','slider');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   854
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   855
        if (img && this._isImageLoaded(img)) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   856
            Y.log('using thumbImage '+dim+' ('+img.get(dim)+') for _thumbSize','info','slider');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   857
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   858
            size = img.get(dim);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   859
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   860
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   861
        this._thumbSize = size;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   862
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   863
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   864
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   865
     * Establishes the point in the thumb that should align to the rail
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   866
     * position representing the calculated value.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   867
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   868
     * @method _setThumbOffset
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   869
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   870
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   871
    _setThumbOffset : function () {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   872
        this._thumbOffset = floor(this._thumbSize / 2);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   873
        Y.log('_thumbOffset calculated to '+this._thumbOffset+'px','info','slider');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   874
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   875
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   876
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   877
     * Stores the rail Node's pixel height or width, depending on the Slider's
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   878
     * axis, for use in calculating thumb position from the value.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   879
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   880
     * @method _uiSetRailSize
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   881
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   882
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   883
    _uiSetRailSize : function () {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   884
        var rail  = this.get(RAIL),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   885
            thumb = this.get(THUMB),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   886
            img   = this.get(THUMB_IMAGE),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   887
            dim   = this._key.dim,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   888
            size  = this.get(RAIL_SIZE),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   889
            setxy = false;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   890
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   891
        if (parseInt(size,10)) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   892
            Y.log('railSize provided: '+size,'info','slider');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   893
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   894
            // Convert to pixels
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   895
            rail.setStyle(dim,size);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   896
            size = parseInt(rail.getComputedStyle(dim),10);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   897
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   898
            Y.log('pixel '+dim+' of railSize: '+size+'px', 'info', 'slider');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   899
        } else {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   900
            Y.log('defaulting railSize from max of computed style and configured '+dim+' attribute value', 'info', 'slider');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   901
            // Default from height or width (axis respective), or dims assigned
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   902
            // via css to the rail or thumb, whichever is largest.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   903
            // Dear implementers, please use railSize, not height/width to
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   904
            // set the rail dims
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   905
            size = this.get(dim);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   906
            if (parseInt(size,10)) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   907
                setxy = true;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   908
                rail.setStyle(dim,size);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   909
                size = parseInt(rail.getComputedStyle(dim),10);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   910
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   911
            size = max(
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   912
                    size|0,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   913
                    parseInt(thumb.getComputedStyle(dim),10),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   914
                    parseInt(rail.getComputedStyle(dim),10));
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   915
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   916
            Y.log('pixel '+dim+' of rail: '+size+'px', 'info', 'slider');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   917
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   918
            if (img && this._isImageLoaded(img)) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   919
                Y.log('using max of thumbImage '+dim+' ('+img.get(dim)+' and '+size+' for railSize', 'info', 'slider');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   920
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   921
                size = max(img.get(dim),size);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   922
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   923
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   924
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   925
        rail.setStyle(dim, size + PX);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   926
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   927
        this._railSize = size;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   928
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   929
        // handle the (not recommended) fallback case of setting rail size via
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   930
        // widget height/width params.  This is the only case that sets the
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   931
        // off-axis rail dim in the code.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   932
        if (setxy) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   933
            dim = this._key.offAxisDim;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   934
            size = this.get(dim);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   935
            if (size) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   936
                rail.set(dim,size);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   937
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   938
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   939
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   940
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   941
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   942
     * Store the current XY position of the rail Node on the page.  For use in
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   943
     * calculating thumb position from value.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   944
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   945
     * @method _setRailOffsetXY
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   946
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   947
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   948
    _setRailOffsetXY : function () {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   949
        this._offsetXY = this.get(RAIL).getXY()[this._key.xyIndex] +
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   950
                         this.get(MIN_GUTTER);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   951
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   952
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   953
   /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   954
    * Passes the gutter attribute value to the DDConstrain gutter attribute.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   955
    *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   956
    * @method _setDDGutter
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   957
    * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   958
    */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   959
    _setDDGutter : function () {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   960
        var gutter = this._key.xyIndex ?
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   961
            this.get(MIN_GUTTER) + " 0 " + this.get(MAX_GUTTER) :
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   962
            "0 " + this.get(MAX_GUTTER) + " 0 " + this.get(MIN_GUTTER);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   963
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   964
        Y.log('setting DDConstrain gutter "'+gutter+'"','info','slider');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   965
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   966
        this._dd.con.set('gutter', gutter);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   967
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   968
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   969
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   970
     * Resets the cached region inside the DD constrain instance to support
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   971
     * repositioning the Slider after instantiation.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   972
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   973
     * @method _resetDDCacheRegion
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   974
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   975
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   976
    _resetDDCacheRegion : function () {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   977
        // Workaround for ticket #2527964
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   978
        this._dd.con._cacheRegion();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   979
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   980
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   981
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   982
     * Calculates the multiplier used to translate the value into a thumb
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   983
     * position.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   984
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   985
     * @method _setFactor
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   986
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   987
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   988
    _setFactor : function () {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   989
        var range = this._railSize - this._thumbSize -
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   990
                    this.get(MIN_GUTTER) - this.get(MAX_GUTTER);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   991
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   992
        this._factor = this._railSize ?
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   993
            (this.get(MAX) - this.get(MIN)) / range :
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   994
            1;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   995
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   996
        Y.log('_factor set to '+this._factor,'info','slider');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   997
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   998
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   999
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1000
     * Convenience method for accessing the current value of the Slider.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1001
     * Equivalent to <code>slider.get(&quot;value&quot;)</code>.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1002
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1003
     * @method getValue
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1004
     * @return {Number} the value
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1005
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1006
    getValue : function () {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1007
        return this.get(VALUE);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1008
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1009
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1010
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1011
     * Convenience method for updating the current value of the Slider.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1012
     * Equivalent to <code>slider.set(&quot;value&quot;,val)</code>.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1013
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1014
     * @method setValue
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1015
     * @param val {Number} the new value
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1016
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1017
    setValue : function (val) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1018
        this.set(VALUE,val);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1019
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1020
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1021
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1022
     * Validator applied to new values for the axis attribute. Only
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1023
     * &quot;x&quot; and &quot;y&quot; are permitted.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1024
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1025
     * @method _validateNewAxis
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1026
     * @param v {String} proposed value for the axis attribute
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1027
     * @return Boolean
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1028
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1029
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1030
    _validateNewAxis : function (v) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1031
        return isString(v) && 'xXyY'.indexOf(v.charAt(0)) > -1;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1032
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1033
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1034
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1035
     * Validator applied to the min attribute.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1036
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1037
     * @method _validateNewMin
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1038
     * @param v {MIXED} proposed value for the min attribute
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1039
     * @return Boolean
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1040
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1041
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1042
    _validateNewMin : function (v) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1043
        return isNumber(v);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1044
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1045
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1046
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1047
     * Validator applied to the max attribute.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1048
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1049
     * @method _validateNewMax
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1050
     * @param v {MIXED} proposed value for the max attribute
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1051
     * @return Boolean
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1052
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1053
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1054
    _validateNewMax : function (v) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1055
        return isNumber(v);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1056
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1057
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1058
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1059
     * Validator applied to the value attribute.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1060
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1061
     * @method _validateNewValue
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1062
     * @param v {MIXED} proposed value for the value attribute
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1063
     * @return Boolean
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1064
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1065
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1066
    _validateNewValue : function (v) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1067
        var min    = this.get(MIN),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1068
            max    = this.get(MAX);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1069
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1070
        return isNumber(v) &&
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1071
                (min < max ? (v >= min && v <= max) : (v >= max && v <= min));
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1072
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1073
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1074
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1075
     * Validator applied to the rail attribute. Rejects all values after the
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1076
     * Slider has been rendered.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1077
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1078
     * @method _validateNewRail
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1079
     * @param v {MIXED} proposed value for the rail attribute
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1080
     * @return Boolean
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1081
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1082
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1083
    _validateNewRail : function (v) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1084
        return !this.get(RENDERED) || v;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1085
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1086
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1087
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1088
     * Validator applied to the thumb attribute.  Rejects all values after the
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1089
     * Slider has been rendered.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1090
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1091
     * @method _validateNewThumb
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1092
     * @param v {MIXED} proposed value for the thumb attribute
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1093
     * @return Boolean
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1094
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1095
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1096
    _validateNewThumb : function (v) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1097
        return !this.get(RENDERED) || v;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1098
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1099
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1100
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1101
     * Validator applied to the thumbImage attribute.  Rejects all values after
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1102
     * the Slider has been rendered.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1103
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1104
     * @method _validateNewThumbImage
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1105
     * @param v {MIXED} proposed value for the thumbImage attribute
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1106
     * @return Boolean
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1107
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1108
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1109
    _validateNewThumbImage : function (v) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1110
        return !this.get(RENDERED) || v;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1111
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1112
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1113
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1114
     * Validator applied to the railSize attribute. Only strings of css size
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1115
     * values (e.g. '200px') are allowed.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1116
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1117
     * @method _validateNewRailSize
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1118
     * @param v {String} proposed value for the railSize attribute
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1119
     * @return Boolean
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1120
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1121
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1122
    _validateNewRailSize : function (v) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1123
        return isString(v) &&
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1124
            (v === '0' || /^\d+(?:p[xtc]|%|e[mx]|in|[mc]m)$/.test(v));
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1125
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1126
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1127
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1128
     * Setter applied to the input when updating the axis attribute.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1129
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1130
     * @method _setAxisFn
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1131
     * @param v {String} proposed value for the axis attribute
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1132
     * @return {String} lowercased first character of the input string
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1133
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1134
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1135
    _setAxisFn : function (v) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1136
        return v.charAt(0).toLowerCase();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1137
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1138
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1139
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1140
     * Setter applied to the input when updating the rail attribute.  Input can
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1141
     * be a Node, raw HTMLElement, or a selector string to locate it.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1142
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1143
     * @method _setRailFn
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1144
     * @param v {Node|String|HTMLElement} The rail element Node or selector
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1145
     * @return {Node} The Node if found.  Otherwise null.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1146
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1147
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1148
    _setRailFn : function (v) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1149
        return Y.get(v) || null;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1150
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1151
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1152
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1153
     * Setter applied to the input when updating the thumb attribute.  Input can
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1154
     * be a Node, raw HTMLElement, or a selector string to locate it.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1155
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1156
     * @method _setThumbFn
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1157
     * @param v {Node|String|HTMLElement} The thumb element Node or selector
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1158
     * @return {Node} The Node if found.  Otherwise null.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1159
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1160
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1161
    _setThumbFn : function (v) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1162
        return Y.get(v) || null;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1163
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1164
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1165
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1166
     * Setter applied to the input when updating the thumbImage attribute.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1167
     * Input can be a Node, raw HTMLElement, selector string to locate it, or
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1168
     * the URL for an image resource.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1169
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1170
     * String input will be treated as a selector.  If no element is found using
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1171
     * the selector, an <code>img</code> Node will be created with the string
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1172
     * used as the <code>src</code> attribute.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1173
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1174
     * @method _setThumbImageFn
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1175
     * @param v {Node|String|HTMLElement} The thumbImage element Node, selector,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1176
     *          or image URL
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1177
     * @return {Node} The Node if found or created.  Otherwise null.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1178
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1179
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1180
    _setThumbImageFn : function (v) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1181
        return v ? Y.get(v) ||
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1182
                Y.Node.create('<img src="'+v+'" alt="Slider thumb">') :
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1183
                null;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1184
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1185
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1186
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1187
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1188
     * Caches the current page position of the rail element and fires the
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1189
     * slideStart event in response to the DD's drag:start.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1190
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1191
     * @method _onDDStartDrag
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1192
     * @param e {Event} the DD instance's drag:start custom event
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1193
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1194
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1195
    _onDDStartDrag : function (e) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1196
        Y.log('slide start','info','slider');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1197
        this._setRailOffsetXY();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1198
        this.fire(SLIDE_START,{ ddEvent: e });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1199
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1200
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1201
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1202
     * Fires the thumbDrag event to queue Slider value update.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1203
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1204
     * @method _onDDDrag
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1205
     * @param e {Event} the DD instance's drag:drag custom event
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1206
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1207
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1208
    _onDDDrag : function (e) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1209
        Y.log('thumb drag','info','slider');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1210
        this.fire(THUMB_DRAG, { ddEvent: e });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1211
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1212
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1213
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1214
     * The default value update behavior in response to Slider thumb
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1215
     * interaction.  Calculates the value using stored offsets, the _factor
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1216
     * multiplier and the min value.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1217
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1218
     * @method _defThumbDragFn
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1219
     * @param e {Event} the internal thumbDrag event
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1220
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1221
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1222
    _defThumbDragFn : function (e) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1223
        var before = this.get(VALUE),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1224
            val    = e.ddEvent[this._key.eventPageAxis] - this._offsetXY;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1225
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1226
        Y.log('setting value from thumb drag: before('+before+') raw('+val+') factored('+this._convertOffsetToValue(val)+')', 'info','slider');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1227
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1228
        val = this._convertOffsetToValue(val);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1229
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1230
        if (before !== val) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1231
            this.set(VALUE, val, { ddEvent: e.ddEvent });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1232
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1233
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1234
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1235
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1236
     * Fires the slideEnd event.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1237
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1238
     * @method _onDDEndDrag
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1239
     * @param e {Event} the DD instance's drag:end custom event
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1240
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1241
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1242
    _onDDEndDrag : function (e) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1243
        Y.log('slide end','info','slider');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1244
        this.fire(SLIDE_END,{ ddEvent: e });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1245
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1246
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1247
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1248
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1249
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1250
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1251
     * Calls _uiPositionThumb with the value of the custom event's
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1252
     * &quot;offset&quot; property.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1253
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1254
     * @method _defPositionThumbFn
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1255
     * @param e {Event} the positionThumb custom event
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1256
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1257
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1258
    _defPositionThumbFn : function (e) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1259
        Y.log('setting thumb offset ('+e.offset+') from value attribute update ('+e.value+')', 'info', 'slider');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1260
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1261
        this._uiPositionThumb(e.offset);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1262
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1263
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1264
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1265
     * Places the thumb at a particular X or Y location based on the configured
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1266
     * axis.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1267
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1268
     * @method _uiPositionThumb
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1269
     * @param xy {Number} the desired left or top pixel position of the thumb
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1270
     *           in relation to the rail Node.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1271
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1272
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1273
    _uiPositionThumb : function (xy) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1274
        var dd     = this._dd,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1275
            thumb  = dd.get('dragNode'),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1276
            hidden = thumb.ancestor(this._isDisplayNone);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1277
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1278
        if (!hidden) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1279
            dd._setStartPosition(dd.get('dragNode').getXY());
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1280
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1281
            // stickX/stickY config on DD instance will negate off-axis move
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1282
            dd._alignNode([xy,xy],true);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1283
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1284
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1285
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1286
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1287
     * Helper function to search up the ancestor axis looking for a node with
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1288
     * style display: none.  This is passed as a function to node.ancestor(..)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1289
     * to test if a given node is in the displayed DOM and can get accurate
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1290
     * positioning information.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1291
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1292
     * @method _isDisplayNone
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1293
     * @param el {Node} ancestor node as the function walks up the parent axis
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1294
     * @return {Boolean} true if the node is styled with display: none
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1295
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1296
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1297
    _isDisplayNone : function (node) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1298
        return node.getComputedStyle('display') === 'none';
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1299
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1300
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1301
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1302
     * Fires the internal positionThumb event in response to a change in the
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1303
     * value attribute.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1304
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1305
     * @method _afterValueChange
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1306
     * @param e {Event} valueChange custom event
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1307
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1308
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1309
    _afterValueChange : function (e) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1310
        if (!e.ddEvent) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1311
            var xy = this._convertValueToOffset(e.newVal);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1312
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1313
            Y.log('firing positionThumb to position thumb', 'info', 'slider');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1314
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1315
            this.fire(POSITION_THUMB,{ value: e.newVal, offset: xy });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1316
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1317
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1318
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1319
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1320
     * Converts a value to a pixel offset for the thumb position on the rail.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1321
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1322
     * @method _convertValueToOffset
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1323
     * @param v {Number} value between the Slider's min and max
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1324
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1325
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1326
    _convertValueToOffset : function (v) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1327
        return round((v - this.get(MIN)) / this._factor) + this._offsetXY;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1328
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1329
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1330
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1331
     * Converts a pixel offset of the thumb on the rail to a value.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1332
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1333
     * @method _convertOffsetToValue
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1334
     * @param v {Number} pixel offset of the thumb on the rail
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1335
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1336
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1337
    _convertOffsetToValue : function (v) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1338
        return round(this.get(MIN) + (v * this._factor));
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1339
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1340
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1341
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1342
     * Replaces the thumb Node in response to a change in the thumb attribute.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1343
     * This only has effect after the Slider is rendered.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1344
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1345
     * @method _afterThumbChange
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1346
     * @param e {Event} thumbChange custom event
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1347
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1348
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1349
    _afterThumbChange : function (e) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1350
        var thumb;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1351
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1352
        if (this.get(RENDERED)) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1353
            if (e.prevValue) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1354
                e.prevValue.get('parentNode').removeChild(e.prevValue);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1355
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1356
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1357
            this._initThumb();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1358
            
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1359
            thumb = this.get(THUMB);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1360
            this._dd.set('node',thumb);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1361
            this._dd.set('dragNode',thumb);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1362
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1363
            this.syncUI();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1364
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1365
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1366
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1367
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1368
     * Sets or replaces the thumb's contained <code>img</code> Node with the
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1369
     * new Node in response to a change in the thumbImage attribute.  This only
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1370
     * has effect after the Slider is rendered.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1371
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1372
     * @method _afterThumbImageChange
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1373
     * @param e {Event} thumbImageChange custom event
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1374
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1375
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1376
    _afterThumbImageChange : function (e) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1377
        if (this.get(RENDERED)) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1378
            if (e.prevValue) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1379
                e.prevValue.get('parentNode').removeChild(e.prevValue);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1380
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1381
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1382
            this._initThumbImage();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1383
            
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1384
            this.syncUI();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1385
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1386
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1387
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1388
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1389
     * Updates the Slider UI in response to change in the min attribute.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1390
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1391
     * @method _afterMinChange
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1392
     * @param e {Event} minChange custom event
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1393
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1394
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1395
    _afterMinChange : function (e) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1396
        this._refresh(e);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1397
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1398
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1399
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1400
     * Updates the Slider UI in response to change in the max attribute.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1401
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1402
     * @method _afterMaxChange
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1403
     * @param e {Event} maxChange custom event
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1404
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1405
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1406
    _afterMaxChange : function (e) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1407
        this._refresh(e);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1408
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1409
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1410
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1411
     * Updates the Slider UI in response to change in the railSize attribute.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1412
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1413
     * @method _afterRailSizeChange
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1414
     * @param e {Event} railSizeChange custom event
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1415
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1416
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1417
    _afterRailSizeChange : function (e) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1418
        this._refresh(e);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1419
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1420
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1421
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1422
     * Locks or unlocks the DD instance in response to a change in the disabled
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1423
     * attribute.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1424
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1425
     * @method _afterDisabledChange
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1426
     * @param e {Event} disabledChange custom event
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1427
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1428
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1429
    _afterDisabledChange : function (e) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1430
        if (this._dd) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1431
            this._dd.set('lock',e.newVal);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1432
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1433
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1434
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1435
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1436
     * Common handler to call syncUI in response to change events that occurred
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1437
     * after the Slider is rendered.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1438
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1439
     * @method _refresh
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1440
     * @param e {Event} An attribute change event
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1441
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1442
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1443
    _refresh : function (e) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1444
        if (e.newVal !== e.prevVal && this.get(RENDERED)) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1445
            this.syncUI();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1446
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1447
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1448
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1449
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1450
     * Used to determine if there is a current or pending request for the
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1451
     * thumbImage resource.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1452
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1453
     * @method _isImageLoading
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1454
     * @param img {Node} <code>img</code> Node
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1455
     * @return Boolean
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1456
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1457
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1458
    _isImageLoading : function (img) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1459
        return img && !img.get(COMPLETE);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1460
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1461
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1462
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1463
     * Used to determine if the image resource loaded successfully or there was
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1464
     * an error.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1465
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1466
     * NOTES:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1467
     * <ul>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1468
     *    <li>img load error fired xbrowser for image resources not yet resolved</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1469
     *    <li>img.complete reports false in IE for images not yet loaded as well as images that failed to load</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1470
     *    <li>img.complete true && img.naturalWidth == 0 in FF and Safari indicate image failed to load</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1471
     *    <li>img.complete && img.width == 0 in Opera indicates image failed to load</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1472
     * </ul>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1473
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1474
     * @method _isImageLoaded
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1475
     * @param img {Node} <code>img</code> Node
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1476
     * @return Boolean
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1477
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1478
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1479
    _isImageLoaded : function (img) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1480
        if (img) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1481
            var w = img.get('naturalWidth');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1482
            return img.get(COMPLETE) && (!isNumber(w) ? img.get(WIDTH) : w);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1483
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1484
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1485
        return true;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1486
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1487
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1488
});
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1489
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1490
Y.Slider = Slider;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1491
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1492
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1493
}, '3.0.0' ,{requires:['widget','dd-constrain']});