annotate pylons_app/public/js/yui/resize/resize.js @ 457:644795a4e8d2

Code cleanups, made js rollup file, some preparation for .egg creation
author Marcin Kuzminski <marcin@python-works.com>
date Sat, 04 Sep 2010 15:20:06 +0200
parents 564e40829f80
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1 /*
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2 Copyright (c) 2009, Yahoo! Inc. All rights reserved.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
3 Code licensed under the BSD License:
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
4 http://developer.yahoo.net/yui/license.txt
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
5 version: 2.8.0r4
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
6 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
7 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
8 * @description <p>Makes an element resizable</p>
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
9 * @namespace YAHOO.util
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
10 * @requires yahoo, dom, dragdrop, element, event
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
11 * @optional animation
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
12 * @module resize
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
13 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
14 (function() {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
15 var D = YAHOO.util.Dom,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
16 Event = YAHOO.util.Event,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
17 Lang = YAHOO.lang;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
18
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
19 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
20 * @constructor
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
21 * @class Resize
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
22 * @extends YAHOO.util.Element
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
23 * @description <p>Makes an element resizable</p>
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
24 * @param {String/HTMLElement} el The element to make resizable.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
25 * @param {Object} attrs Object liternal containing configuration parameters.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
26 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
27
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
28 var Resize = function(el, config) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
29 var oConfig = {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
30 element: el,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
31 attributes: config || {}
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
32 };
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
33
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
34 Resize.superclass.constructor.call(this, oConfig.element, oConfig.attributes);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
35 };
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
36
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
37 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
38 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
39 * @static
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
40 * @property _instances
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
41 * @description Internal hash table for all resize instances
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
42 * @type Object
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
43 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
44 Resize._instances = {};
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
45 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
46 * @static
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
47 * @method getResizeById
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
48 * @description Get's a resize object by the HTML id of the element associated with the Resize object.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
49 * @return {Object} The Resize Object
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
50 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
51 Resize.getResizeById = function(id) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
52 if (Resize._instances[id]) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
53 return Resize._instances[id];
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
54 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
55 return false;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
56 };
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
57
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
58 YAHOO.extend(Resize, YAHOO.util.Element, {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
59 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
60 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
61 * @property CSS_RESIZE
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
62 * @description Base CSS class name
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
63 * @type String
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
64 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
65 CSS_RESIZE: 'yui-resize',
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
66 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
67 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
68 * @property CSS_DRAG
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
69 * @description Class name added when dragging is enabled
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
70 * @type String
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
71 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
72 CSS_DRAG: 'yui-draggable',
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
73 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
74 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
75 * @property CSS_HOVER
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
76 * @description Class name used for hover only handles
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
77 * @type String
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
78 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
79 CSS_HOVER: 'yui-resize-hover',
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
80 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
81 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
82 * @property CSS_PROXY
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
83 * @description Class name given to the proxy element
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
84 * @type String
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
85 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
86 CSS_PROXY: 'yui-resize-proxy',
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
87 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
88 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
89 * @property CSS_WRAP
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
90 * @description Class name given to the wrap element
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
91 * @type String
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
92 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
93 CSS_WRAP: 'yui-resize-wrap',
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
94 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
95 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
96 * @property CSS_KNOB
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
97 * @description Class name used to make the knob style handles
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
98 * @type String
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
99 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
100 CSS_KNOB: 'yui-resize-knob',
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
101 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
102 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
103 * @property CSS_HIDDEN
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
104 * @description Class name given to the wrap element to make all handles hidden
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
105 * @type String
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
106 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
107 CSS_HIDDEN: 'yui-resize-hidden',
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
108 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
109 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
110 * @property CSS_HANDLE
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
111 * @description Class name given to all handles, used as a base for single handle names as well.. Handle "t" will get this.CSS_HANDLE + '-t' as well as this.CSS_HANDLE
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
112 * @type String
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
113 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
114 CSS_HANDLE: 'yui-resize-handle',
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
115 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
116 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
117 * @property CSS_STATUS
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
118 * @description Class name given to the status element
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
119 * @type String
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
120 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
121 CSS_STATUS: 'yui-resize-status',
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
122 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
123 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
124 * @property CSS_GHOST
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
125 * @description Class name given to the wrap element when the ghost property is active
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
126 * @type String
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
127 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
128 CSS_GHOST: 'yui-resize-ghost',
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
129 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
130 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
131 * @property CSS_RESIZING
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
132 * @description Class name given to the wrap element when a resize action is taking place.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
133 * @type String
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
134 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
135 CSS_RESIZING: 'yui-resize-resizing',
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
136 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
137 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
138 * @property _resizeEvent
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
139 * @description The mouse event used to resize with
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
140 * @type Event
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
141 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
142 _resizeEvent: null,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
143 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
144 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
145 * @property dd
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
146 * @description The <a href="YAHOO.util.DragDrop.html">YAHOO.util.DragDrop</a> instance used if draggable is true
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
147 * @type Object
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
148 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
149 dd: null,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
150 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
151 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
152 * @property browser
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
153 * @description A copy of the YAHOO.env.ua property
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
154 * @type Object
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
155 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
156 browser: YAHOO.env.ua,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
157 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
158 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
159 * @property _locked
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
160 * @description A flag to show if the resize is locked
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
161 * @type Boolean
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
162 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
163 _locked: null,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
164 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
165 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
166 * @property _positioned
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
167 * @description A flag to show if the element is absolutely positioned
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
168 * @type Boolean
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
169 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
170 _positioned: null,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
171 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
172 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
173 * @property _dds
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
174 * @description An Object containing references to all of the <a href="YAHOO.util.DragDrop.html">YAHOO.util.DragDrop</a> instances used for the resize handles
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
175 * @type Object
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
176 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
177 _dds: null,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
178 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
179 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
180 * @property _wrap
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
181 * @description The HTML reference of the element wrapper
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
182 * @type HTMLElement
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
183 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
184 _wrap: null,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
185 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
186 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
187 * @property _proxy
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
188 * @description The HTML reference of the element proxy
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
189 * @type HTMLElement
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
190 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
191 _proxy: null,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
192 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
193 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
194 * @property _handles
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
195 * @description An object containing references to all of the resize handles.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
196 * @type Object
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
197 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
198 _handles: null,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
199 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
200 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
201 * @property _currentHandle
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
202 * @description The string identifier of the currently active handle. e.g. 'r', 'br', 'tl'
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
203 * @type String
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
204 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
205 _currentHandle: null,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
206 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
207 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
208 * @property _currentDD
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
209 * @description A link to the currently active DD object
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
210 * @type Object
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
211 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
212 _currentDD: null,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
213 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
214 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
215 * @property _cache
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
216 * @description An lookup table containing key information for the element being resized. e.g. height, width, x position, y position, etc..
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
217 * @type Object
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
218 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
219 _cache: null,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
220 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
221 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
222 * @property _active
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
223 * @description Flag to show if the resize is active. Used for events.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
224 * @type Boolean
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
225 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
226 _active: null,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
227 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
228 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
229 * @method _createProxy
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
230 * @description Creates the proxy element if the proxy config is true
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
231 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
232 _createProxy: function() {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
233 if (this.get('proxy')) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
234 this._proxy = document.createElement('div');
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
235 this._proxy.className = this.CSS_PROXY;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
236 this._proxy.style.height = this.get('element').clientHeight + 'px';
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
237 this._proxy.style.width = this.get('element').clientWidth + 'px';
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
238 this._wrap.parentNode.appendChild(this._proxy);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
239 } else {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
240 this.set('animate', false);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
241 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
242 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
243 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
244 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
245 * @method _createWrap
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
246 * @description Creates the wrap element if the wrap config is true. It will auto wrap the following element types: img, textarea, input, iframe, select
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
247 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
248 _createWrap: function() {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
249 this._positioned = false;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
250 //Force wrap for elements that can't have children
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
251 if (this.get('wrap') === false) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
252 switch (this.get('element').tagName.toLowerCase()) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
253 case 'img':
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
254 case 'textarea':
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
255 case 'input':
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
256 case 'iframe':
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
257 case 'select':
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
258 this.set('wrap', true);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
259 break;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
260 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
261 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
262 if (this.get('wrap') === true) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
263 this._wrap = document.createElement('div');
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
264 this._wrap.id = this.get('element').id + '_wrap';
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
265 this._wrap.className = this.CSS_WRAP;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
266 if (this.get('element').tagName.toLowerCase() == 'textarea') {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
267 D.addClass(this._wrap, 'yui-resize-textarea');
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
268 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
269 D.setStyle(this._wrap, 'width', this.get('width') + 'px');
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
270 D.setStyle(this._wrap, 'height', this.get('height') + 'px');
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
271 D.setStyle(this._wrap, 'z-index', this.getStyle('z-index'));
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
272 this.setStyle('z-index', 0);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
273 var pos = D.getStyle(this.get('element'), 'position');
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
274 D.setStyle(this._wrap, 'position', ((pos == 'static') ? 'relative' : pos));
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
275 D.setStyle(this._wrap, 'top', D.getStyle(this.get('element'), 'top'));
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
276 D.setStyle(this._wrap, 'left', D.getStyle(this.get('element'), 'left'));
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
277 if (D.getStyle(this.get('element'), 'position') == 'absolute') {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
278 this._positioned = true;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
279 D.setStyle(this.get('element'), 'position', 'relative');
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
280 D.setStyle(this.get('element'), 'top', '0');
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
281 D.setStyle(this.get('element'), 'left', '0');
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
282 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
283 var par = this.get('element').parentNode;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
284 par.replaceChild(this._wrap, this.get('element'));
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
285 this._wrap.appendChild(this.get('element'));
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
286 } else {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
287 this._wrap = this.get('element');
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
288 if (D.getStyle(this._wrap, 'position') == 'absolute') {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
289 this._positioned = true;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
290 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
291 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
292 if (this.get('draggable')) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
293 this._setupDragDrop();
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
294 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
295 if (this.get('hover')) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
296 D.addClass(this._wrap, this.CSS_HOVER);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
297 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
298 if (this.get('knobHandles')) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
299 D.addClass(this._wrap, this.CSS_KNOB);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
300 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
301 if (this.get('hiddenHandles')) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
302 D.addClass(this._wrap, this.CSS_HIDDEN);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
303 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
304 D.addClass(this._wrap, this.CSS_RESIZE);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
305 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
306 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
307 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
308 * @method _setupDragDrop
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
309 * @description Setup the <a href="YAHOO.util.DragDrop.html">YAHOO.util.DragDrop</a> instance on the element
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
310 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
311 _setupDragDrop: function() {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
312 D.addClass(this._wrap, this.CSS_DRAG);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
313 this.dd = new YAHOO.util.DD(this._wrap, this.get('id') + '-resize', { dragOnly: true, useShim: this.get('useShim') });
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
314 this.dd.on('dragEvent', function() {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
315 this.fireEvent('dragEvent', arguments);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
316 }, this, true);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
317 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
318 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
319 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
320 * @method _createHandles
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
321 * @description Creates the handles as specified in the config
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
322 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
323 _createHandles: function() {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
324 this._handles = {};
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
325 this._dds = {};
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
326 var h = this.get('handles');
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
327 for (var i = 0; i < h.length; i++) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
328 this._handles[h[i]] = document.createElement('div');
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
329 this._handles[h[i]].id = D.generateId(this._handles[h[i]]);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
330 this._handles[h[i]].className = this.CSS_HANDLE + ' ' + this.CSS_HANDLE + '-' + h[i];
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
331 var k = document.createElement('div');
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
332 k.className = this.CSS_HANDLE + '-inner-' + h[i];
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
333 this._handles[h[i]].appendChild(k);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
334 this._wrap.appendChild(this._handles[h[i]]);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
335 Event.on(this._handles[h[i]], 'mouseover', this._handleMouseOver, this, true);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
336 Event.on(this._handles[h[i]], 'mouseout', this._handleMouseOut, this, true);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
337 this._dds[h[i]] = new YAHOO.util.DragDrop(this._handles[h[i]], this.get('id') + '-handle-' + h, { useShim: this.get('useShim') });
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
338 this._dds[h[i]].setPadding(15, 15, 15, 15);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
339 this._dds[h[i]].on('startDragEvent', this._handleStartDrag, this._dds[h[i]], this);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
340 this._dds[h[i]].on('mouseDownEvent', this._handleMouseDown, this._dds[h[i]], this);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
341 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
342 this._status = document.createElement('span');
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
343 this._status.className = this.CSS_STATUS;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
344 document.body.insertBefore(this._status, document.body.firstChild);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
345 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
346 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
347 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
348 * @method _ieSelectFix
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
349 * @description The function we use as the onselectstart handler when we start a drag in Internet Explorer
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
350 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
351 _ieSelectFix: function() {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
352 return false;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
353 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
354 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
355 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
356 * @property _ieSelectBack
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
357 * @description We will hold a copy of the current "onselectstart" method on this property, and reset it after we are done using it.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
358 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
359 _ieSelectBack: null,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
360 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
361 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
362 * @method _setAutoRatio
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
363 * @param {Event} ev A mouse event.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
364 * @description This method checks to see if the "autoRatio" config is set. If it is, we will check to see if the "Shift Key" is pressed. If so, we will set the config ratio to true.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
365 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
366 _setAutoRatio: function(ev) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
367 if (this.get('autoRatio')) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
368 if (ev && ev.shiftKey) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
369 //Shift Pressed
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
370 this.set('ratio', true);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
371 } else {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
372 this.set('ratio', this._configs.ratio._initialConfig.value);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
373 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
374 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
375 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
376 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
377 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
378 * @method _handleMouseDown
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
379 * @param {Event} ev A mouse event.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
380 * @description This method preps the autoRatio on MouseDown.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
381 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
382 _handleMouseDown: function(ev) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
383 if (this._locked) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
384 return false;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
385 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
386 if (D.getStyle(this._wrap, 'position') == 'absolute') {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
387 this._positioned = true;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
388 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
389 if (ev) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
390 this._setAutoRatio(ev);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
391 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
392 if (this.browser.ie) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
393 this._ieSelectBack = document.body.onselectstart;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
394 document.body.onselectstart = this._ieSelectFix;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
395 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
396 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
397 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
398 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
399 * @method _handleMouseOver
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
400 * @param {Event} ev A mouse event.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
401 * @description Adds CSS class names to the handles
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
402 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
403 _handleMouseOver: function(ev) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
404 if (this._locked) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
405 return false;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
406 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
407 D.removeClass(this._wrap, this.CSS_RESIZE);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
408
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
409 if (this.get('hover')) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
410 D.removeClass(this._wrap, this.CSS_HOVER);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
411 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
412 var tar = Event.getTarget(ev);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
413 if (!D.hasClass(tar, this.CSS_HANDLE)) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
414 tar = tar.parentNode;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
415 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
416 if (D.hasClass(tar, this.CSS_HANDLE) && !this._active) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
417 D.addClass(tar, this.CSS_HANDLE + '-active');
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
418 for (var i in this._handles) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
419 if (Lang.hasOwnProperty(this._handles, i)) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
420 if (this._handles[i] == tar) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
421 D.addClass(tar, this.CSS_HANDLE + '-' + i + '-active');
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
422 break;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
423 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
424 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
425 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
426 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
427
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
428 D.addClass(this._wrap, this.CSS_RESIZE);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
429 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
430 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
431 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
432 * @method _handleMouseOut
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
433 * @param {Event} ev A mouse event.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
434 * @description Removes CSS class names to the handles
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
435 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
436 _handleMouseOut: function(ev) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
437 D.removeClass(this._wrap, this.CSS_RESIZE);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
438 if (this.get('hover') && !this._active) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
439 D.addClass(this._wrap, this.CSS_HOVER);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
440 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
441 var tar = Event.getTarget(ev);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
442 if (!D.hasClass(tar, this.CSS_HANDLE)) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
443 tar = tar.parentNode;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
444 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
445 if (D.hasClass(tar, this.CSS_HANDLE) && !this._active) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
446 D.removeClass(tar, this.CSS_HANDLE + '-active');
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
447 for (var i in this._handles) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
448 if (Lang.hasOwnProperty(this._handles, i)) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
449 if (this._handles[i] == tar) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
450 D.removeClass(tar, this.CSS_HANDLE + '-' + i + '-active');
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
451 break;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
452 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
453 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
454 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
455 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
456 D.addClass(this._wrap, this.CSS_RESIZE);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
457 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
458 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
459 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
460 * @method _handleStartDrag
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
461 * @param {Object} args The args passed from the CustomEvent.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
462 * @param {Object} dd The <a href="YAHOO.util.DragDrop.html">YAHOO.util.DragDrop</a> object we are working with.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
463 * @description Resizes the proxy, sets up the <a href="YAHOO.util.DragDrop.html">YAHOO.util.DragDrop</a> handlers, updates the status div and preps the cache
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
464 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
465 _handleStartDrag: function(args, dd) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
466 var tar = dd.getDragEl();
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
467 if (D.hasClass(tar, this.CSS_HANDLE)) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
468 if (D.getStyle(this._wrap, 'position') == 'absolute') {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
469 this._positioned = true;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
470 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
471 this._active = true;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
472 this._currentDD = dd;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
473 if (this._proxy) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
474 this._proxy.style.visibility = 'visible';
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
475 this._proxy.style.zIndex = '1000';
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
476 this._proxy.style.height = this.get('element').clientHeight + 'px';
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
477 this._proxy.style.width = this.get('element').clientWidth + 'px';
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
478 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
479
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
480 for (var i in this._handles) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
481 if (Lang.hasOwnProperty(this._handles, i)) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
482 if (this._handles[i] == tar) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
483 this._currentHandle = i;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
484 var handle = '_handle_for_' + i;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
485 D.addClass(tar, this.CSS_HANDLE + '-' + i + '-active');
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
486 dd.on('dragEvent', this[handle], this, true);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
487 dd.on('mouseUpEvent', this._handleMouseUp, this, true);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
488 break;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
489 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
490 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
491 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
492
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
493
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
494 D.addClass(tar, this.CSS_HANDLE + '-active');
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
495
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
496 if (this.get('proxy')) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
497 var xy = D.getXY(this.get('element'));
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
498 D.setXY(this._proxy, xy);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
499 if (this.get('ghost')) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
500 this.addClass(this.CSS_GHOST);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
501 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
502 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
503 D.addClass(this._wrap, this.CSS_RESIZING);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
504 this._setCache();
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
505 this._updateStatus(this._cache.height, this._cache.width, this._cache.top, this._cache.left);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
506 this.fireEvent('startResize', { type: 'startresize', target: this});
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
507 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
508 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
509 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
510 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
511 * @method _setCache
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
512 * @description Sets up the this._cache hash table.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
513 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
514 _setCache: function() {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
515 this._cache.xy = D.getXY(this._wrap);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
516 D.setXY(this._wrap, this._cache.xy);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
517 this._cache.height = this.get('clientHeight');
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
518 this._cache.width = this.get('clientWidth');
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
519 this._cache.start.height = this._cache.height;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
520 this._cache.start.width = this._cache.width;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
521 this._cache.start.top = this._cache.xy[1];
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
522 this._cache.start.left = this._cache.xy[0];
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
523 this._cache.top = this._cache.xy[1];
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
524 this._cache.left = this._cache.xy[0];
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
525 this.set('height', this._cache.height, true);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
526 this.set('width', this._cache.width, true);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
527 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
528 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
529 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
530 * @method _handleMouseUp
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
531 * @param {Event} ev A mouse event.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
532 * @description Cleans up listeners, hides proxy element and removes class names.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
533 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
534 _handleMouseUp: function(ev) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
535 this._active = false;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
536
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
537 var handle = '_handle_for_' + this._currentHandle;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
538 this._currentDD.unsubscribe('dragEvent', this[handle], this, true);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
539 this._currentDD.unsubscribe('mouseUpEvent', this._handleMouseUp, this, true);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
540
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
541 if (this._proxy) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
542 this._proxy.style.visibility = 'hidden';
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
543 this._proxy.style.zIndex = '-1';
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
544 if (this.get('setSize')) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
545 this.resize(ev, this._cache.height, this._cache.width, this._cache.top, this._cache.left, true);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
546 } else {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
547 this.fireEvent('resize', { ev: 'resize', target: this, height: this._cache.height, width: this._cache.width, top: this._cache.top, left: this._cache.left });
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
548 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
549
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
550 if (this.get('ghost')) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
551 this.removeClass(this.CSS_GHOST);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
552 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
553 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
554
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
555 if (this.get('hover')) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
556 D.addClass(this._wrap, this.CSS_HOVER);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
557 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
558 if (this._status) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
559 D.setStyle(this._status, 'display', 'none');
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
560 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
561 if (this.browser.ie) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
562 document.body.onselectstart = this._ieSelectBack;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
563 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
564
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
565 if (this.browser.ie) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
566 D.removeClass(this._wrap, this.CSS_RESIZE);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
567 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
568
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
569 for (var i in this._handles) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
570 if (Lang.hasOwnProperty(this._handles, i)) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
571 D.removeClass(this._handles[i], this.CSS_HANDLE + '-active');
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
572 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
573 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
574 if (this.get('hover') && !this._active) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
575 D.addClass(this._wrap, this.CSS_HOVER);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
576 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
577 D.removeClass(this._wrap, this.CSS_RESIZING);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
578
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
579 D.removeClass(this._handles[this._currentHandle], this.CSS_HANDLE + '-' + this._currentHandle + '-active');
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
580 D.removeClass(this._handles[this._currentHandle], this.CSS_HANDLE + '-active');
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
581
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
582 if (this.browser.ie) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
583 D.addClass(this._wrap, this.CSS_RESIZE);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
584 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
585
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
586 this._resizeEvent = null;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
587 this._currentHandle = null;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
588
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
589 if (!this.get('animate')) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
590 this.set('height', this._cache.height, true);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
591 this.set('width', this._cache.width, true);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
592 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
593
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
594 this.fireEvent('endResize', { ev: 'endResize', target: this, height: this._cache.height, width: this._cache.width, top: this._cache.top, left: this._cache.left });
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
595 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
596 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
597 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
598 * @method _setRatio
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
599 * @param {Number} h The height offset.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
600 * @param {Number} w The with offset.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
601 * @param {Number} t The top offset.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
602 * @param {Number} l The left offset.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
603 * @description Using the Height, Width, Top & Left, it recalcuates them based on the original element size.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
604 * @return {Array} The new Height, Width, Top & Left settings
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
605 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
606 _setRatio: function(h, w, t, l) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
607 var oh = h, ow = w;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
608 if (this.get('ratio')) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
609 var orgH = this._cache.height,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
610 orgW = this._cache.width,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
611 nh = parseInt(this.get('height'), 10),
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
612 nw = parseInt(this.get('width'), 10),
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
613 maxH = this.get('maxHeight'),
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
614 minH = this.get('minHeight'),
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
615 maxW = this.get('maxWidth'),
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
616 minW = this.get('minWidth');
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
617
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
618 switch (this._currentHandle) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
619 case 'l':
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
620 h = nh * (w / nw);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
621 h = Math.min(Math.max(minH, h), maxH);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
622 w = nw * (h / nh);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
623 t = (this._cache.start.top - (-((nh - h) / 2)));
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
624 l = (this._cache.start.left - (-((nw - w))));
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
625 break;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
626 case 'r':
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
627 h = nh * (w / nw);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
628 h = Math.min(Math.max(minH, h), maxH);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
629 w = nw * (h / nh);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
630 t = (this._cache.start.top - (-((nh - h) / 2)));
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
631 break;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
632 case 't':
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
633 w = nw * (h / nh);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
634 h = nh * (w / nw);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
635 l = (this._cache.start.left - (-((nw - w) / 2)));
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
636 t = (this._cache.start.top - (-((nh - h))));
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
637 break;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
638 case 'b':
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
639 w = nw * (h / nh);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
640 h = nh * (w / nw);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
641 l = (this._cache.start.left - (-((nw - w) / 2)));
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
642 break;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
643 case 'bl':
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
644 h = nh * (w / nw);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
645 w = nw * (h / nh);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
646 l = (this._cache.start.left - (-((nw - w))));
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
647 break;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
648 case 'br':
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
649 h = nh * (w / nw);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
650 w = nw * (h / nh);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
651 break;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
652 case 'tl':
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
653 h = nh * (w / nw);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
654 w = nw * (h / nh);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
655 l = (this._cache.start.left - (-((nw - w))));
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
656 t = (this._cache.start.top - (-((nh - h))));
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
657 break;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
658 case 'tr':
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
659 h = nh * (w / nw);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
660 w = nw * (h / nh);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
661 l = (this._cache.start.left);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
662 t = (this._cache.start.top - (-((nh - h))));
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
663 break;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
664 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
665 oh = this._checkHeight(h);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
666 ow = this._checkWidth(w);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
667 if ((oh != h) || (ow != w)) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
668 t = 0;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
669 l = 0;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
670 if (oh != h) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
671 ow = this._cache.width;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
672 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
673 if (ow != w) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
674 oh = this._cache.height;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
675 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
676 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
677 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
678 return [oh, ow, t, l];
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
679 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
680 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
681 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
682 * @method _updateStatus
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
683 * @param {Number} h The new height setting.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
684 * @param {Number} w The new width setting.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
685 * @param {Number} t The new top setting.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
686 * @param {Number} l The new left setting.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
687 * @description Using the Height, Width, Top & Left, it updates the status element with the elements sizes.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
688 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
689 _updateStatus: function(h, w, t, l) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
690 if (this._resizeEvent && (!Lang.isString(this._resizeEvent))) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
691 h = ((h === 0) ? this._cache.start.height : h);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
692 w = ((w === 0) ? this._cache.start.width : w);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
693 var h1 = parseInt(this.get('height'), 10),
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
694 w1 = parseInt(this.get('width'), 10);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
695
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
696 if (isNaN(h1)) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
697 h1 = parseInt(h, 10);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
698 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
699 if (isNaN(w1)) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
700 w1 = parseInt(w, 10);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
701 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
702 var diffH = (parseInt(h, 10) - h1);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
703 var diffW = (parseInt(w, 10) - w1);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
704 this._cache.offsetHeight = diffH;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
705 this._cache.offsetWidth = diffW;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
706 if (this.get('status')) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
707 D.setStyle(this._status, 'display', 'inline');
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
708 //This will cause IE8 to crash if the status box is hidden..
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
709 this._status.innerHTML = '<strong>' + parseInt(h, 10) + ' x ' + parseInt(w, 10) + '</strong><em>' + ((diffH > 0) ? '+' : '') + diffH + ' x ' + ((diffW > 0) ? '+' : '') + diffW + '</em>';
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
710 D.setXY(this._status, [Event.getPageX(this._resizeEvent) + 12, Event.getPageY(this._resizeEvent) + 12]);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
711 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
712 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
713 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
714 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
715 * @method lock
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
716 * @description Lock the resize so it can't be resized
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
717 * @param {Boolean} dd If the draggable config is set, lock it too
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
718 * @return {<a href="YAHOO.util.Resize.html">YAHOO.util.Resize</a>} The Resize instance
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
719 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
720 lock: function(dd) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
721 this._locked = true;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
722 if (dd && this.dd) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
723 D.removeClass(this._wrap, 'yui-draggable');
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
724 this.dd.lock();
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
725 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
726 return this;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
727 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
728 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
729 * @method unlock
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
730 * @description Unlock the resize so it can be resized
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
731 * @param {Boolean} dd If the draggable config is set, unlock it too
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
732 * @return {<a href="YAHOO.util.Resize.html">YAHOO.util.Resize</a>} The Resize instance
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
733 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
734 unlock: function(dd) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
735 this._locked = false;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
736 if (dd && this.dd) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
737 D.addClass(this._wrap, 'yui-draggable');
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
738 this.dd.unlock();
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
739 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
740 return this;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
741 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
742 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
743 * @method isLocked
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
744 * @description Check the locked status of the resize instance
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
745 * @return {Boolean}
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
746 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
747 isLocked: function() {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
748 return this._locked;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
749 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
750 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
751 * @method reset
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
752 * @description Resets the element to is start state.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
753 * @return {<a href="YAHOO.util.Resize.html">YAHOO.util.Resize</a>} The Resize instance
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
754 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
755 reset: function() {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
756 this.resize(null, this._cache.start.height, this._cache.start.width, this._cache.start.top, this._cache.start.left, true);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
757 return this;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
758 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
759 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
760 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
761 * @method resize
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
762 * @param {Event} ev The mouse event.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
763 * @param {Number} h The new height setting.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
764 * @param {Number} w The new width setting.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
765 * @param {Number} t The new top setting.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
766 * @param {Number} l The new left setting.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
767 * @param {Boolean} force Resize the element (used for proxy resize).
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
768 * @param {Boolean} silent Don't fire the beforeResize Event.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
769 * @description Resizes the element, wrapper or proxy based on the data from the handlers.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
770 * @return {<a href="YAHOO.util.Resize.html">YAHOO.util.Resize</a>} The Resize instance
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
771 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
772 resize: function(ev, h, w, t, l, force, silent) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
773 if (this._locked) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
774 return false;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
775 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
776 this._resizeEvent = ev;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
777 var el = this._wrap, anim = this.get('animate'), set = true;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
778 if (this._proxy && !force) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
779 el = this._proxy;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
780 anim = false;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
781 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
782 this._setAutoRatio(ev);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
783 if (this._positioned) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
784 if (this._proxy) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
785 t = this._cache.top - t;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
786 l = this._cache.left - l;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
787 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
788 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
789
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
790
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
791 var ratio = this._setRatio(h, w, t, l);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
792 h = parseInt(ratio[0], 10);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
793 w = parseInt(ratio[1], 10);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
794 t = parseInt(ratio[2], 10);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
795 l = parseInt(ratio[3], 10);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
796
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
797 if (t == 0) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
798 //No Offset, get from cache
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
799 t = D.getY(el);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
800 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
801 if (l == 0) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
802 //No Offset, get from cache
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
803 l = D.getX(el);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
804 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
805
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
806
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
807
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
808 if (this._positioned) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
809 if (this._proxy && force) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
810 if (!anim) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
811 el.style.top = this._proxy.style.top;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
812 el.style.left = this._proxy.style.left;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
813 } else {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
814 t = this._proxy.style.top;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
815 l = this._proxy.style.left;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
816 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
817 } else {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
818 if (!this.get('ratio') && !this._proxy) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
819 t = this._cache.top + -(t);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
820 l = this._cache.left + -(l);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
821 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
822 if (t) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
823 if (this.get('minY')) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
824 if (t < this.get('minY')) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
825 t = this.get('minY');
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
826 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
827 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
828 if (this.get('maxY')) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
829 if (t > this.get('maxY')) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
830 t = this.get('maxY');
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
831 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
832 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
833 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
834 if (l) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
835 if (this.get('minX')) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
836 if (l < this.get('minX')) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
837 l = this.get('minX');
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
838 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
839 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
840 if (this.get('maxX')) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
841 if ((l + w) > this.get('maxX')) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
842 l = (this.get('maxX') - w);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
843 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
844 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
845 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
846 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
847 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
848 if (!silent) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
849 var beforeReturn = this.fireEvent('beforeResize', { ev: 'beforeResize', target: this, height: h, width: w, top: t, left: l });
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
850 if (beforeReturn === false) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
851 return false;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
852 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
853 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
854
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
855 this._updateStatus(h, w, t, l);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
856
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
857
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
858 if (this._positioned) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
859 if (this._proxy && force) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
860 //Do nothing
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
861 } else {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
862 if (t) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
863 D.setY(el, t);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
864 this._cache.top = t;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
865 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
866 if (l) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
867 D.setX(el, l);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
868 this._cache.left = l;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
869 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
870 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
871 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
872 if (h) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
873 if (!anim) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
874 set = true;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
875 if (this._proxy && force) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
876 if (!this.get('setSize')) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
877 set = false;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
878 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
879 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
880 if (set) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
881 el.style.height = h + 'px';
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
882 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
883 if ((this._proxy && force) || !this._proxy) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
884 if (this._wrap != this.get('element')) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
885 this.get('element').style.height = h + 'px';
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
886 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
887 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
888 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
889 this._cache.height = h;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
890 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
891 if (w) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
892 this._cache.width = w;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
893 if (!anim) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
894 set = true;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
895 if (this._proxy && force) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
896 if (!this.get('setSize')) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
897 set = false;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
898 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
899 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
900 if (set) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
901 el.style.width = w + 'px';
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
902 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
903 if ((this._proxy && force) || !this._proxy) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
904 if (this._wrap != this.get('element')) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
905 this.get('element').style.width = w + 'px';
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
906 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
907 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
908 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
909 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
910 if (anim) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
911 if (YAHOO.util.Anim) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
912 var _anim = new YAHOO.util.Anim(el, {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
913 height: {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
914 to: this._cache.height
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
915 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
916 width: {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
917 to: this._cache.width
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
918 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
919 }, this.get('animateDuration'), this.get('animateEasing'));
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
920 if (this._positioned) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
921 if (t) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
922 _anim.attributes.top = {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
923 to: parseInt(t, 10)
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
924 };
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
925 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
926 if (l) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
927 _anim.attributes.left = {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
928 to: parseInt(l, 10)
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
929 };
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
930 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
931 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
932
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
933 if (this._wrap != this.get('element')) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
934 _anim.onTween.subscribe(function() {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
935 this.get('element').style.height = el.style.height;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
936 this.get('element').style.width = el.style.width;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
937 }, this, true);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
938 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
939
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
940 _anim.onComplete.subscribe(function() {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
941 this.set('height', h);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
942 this.set('width', w);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
943 this.fireEvent('resize', { ev: 'resize', target: this, height: h, width: w, top: t, left: l });
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
944 }, this, true);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
945 _anim.animate();
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
946
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
947 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
948 } else {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
949 if (this._proxy && !force) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
950 this.fireEvent('proxyResize', { ev: 'proxyresize', target: this, height: h, width: w, top: t, left: l });
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
951 } else {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
952 this.fireEvent('resize', { ev: 'resize', target: this, height: h, width: w, top: t, left: l });
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
953 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
954 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
955 return this;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
956 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
957 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
958 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
959 * @method _handle_for_br
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
960 * @param {Object} args The arguments from the CustomEvent.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
961 * @description Handles the sizes for the Bottom Right handle.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
962 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
963 _handle_for_br: function(args) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
964 var newW = this._setWidth(args.e);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
965 var newH = this._setHeight(args.e);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
966 this.resize(args.e, newH, newW, 0, 0);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
967 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
968 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
969 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
970 * @method _handle_for_bl
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
971 * @param {Object} args The arguments from the CustomEvent.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
972 * @description Handles the sizes for the Bottom Left handle.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
973 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
974 _handle_for_bl: function(args) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
975 var newW = this._setWidth(args.e, true);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
976 var newH = this._setHeight(args.e);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
977 var l = (newW - this._cache.width);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
978 this.resize(args.e, newH, newW, 0, l);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
979 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
980 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
981 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
982 * @method _handle_for_tl
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
983 * @param {Object} args The arguments from the CustomEvent.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
984 * @description Handles the sizes for the Top Left handle.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
985 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
986 _handle_for_tl: function(args) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
987 var newW = this._setWidth(args.e, true);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
988 var newH = this._setHeight(args.e, true);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
989 var t = (newH - this._cache.height);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
990 var l = (newW - this._cache.width);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
991 this.resize(args.e, newH, newW, t, l);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
992 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
993 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
994 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
995 * @method _handle_for_tr
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
996 * @param {Object} args The arguments from the CustomEvent.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
997 * @description Handles the sizes for the Top Right handle.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
998 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
999 _handle_for_tr: function(args) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1000 var newW = this._setWidth(args.e);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1001 var newH = this._setHeight(args.e, true);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1002 var t = (newH - this._cache.height);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1003 this.resize(args.e, newH, newW, t, 0);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1004 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1005 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1006 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1007 * @method _handle_for_r
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1008 * @param {Object} args The arguments from the CustomEvent.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1009 * @description Handles the sizes for the Right handle.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1010 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1011 _handle_for_r: function(args) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1012 this._dds.r.setYConstraint(0,0);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1013 var newW = this._setWidth(args.e);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1014 this.resize(args.e, 0, newW, 0, 0);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1015 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1016 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1017 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1018 * @method _handle_for_l
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1019 * @param {Object} args The arguments from the CustomEvent.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1020 * @description Handles the sizes for the Left handle.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1021 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1022 _handle_for_l: function(args) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1023 this._dds.l.setYConstraint(0,0);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1024 var newW = this._setWidth(args.e, true);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1025 var l = (newW - this._cache.width);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1026 this.resize(args.e, 0, newW, 0, l);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1027 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1028 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1029 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1030 * @method _handle_for_b
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1031 * @param {Object} args The arguments from the CustomEvent.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1032 * @description Handles the sizes for the Bottom handle.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1033 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1034 _handle_for_b: function(args) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1035 this._dds.b.setXConstraint(0,0);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1036 var newH = this._setHeight(args.e);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1037 this.resize(args.e, newH, 0, 0, 0);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1038 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1039 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1040 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1041 * @method _handle_for_t
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1042 * @param {Object} args The arguments from the CustomEvent.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1043 * @description Handles the sizes for the Top handle.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1044 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1045 _handle_for_t: function(args) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1046 this._dds.t.setXConstraint(0,0);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1047 var newH = this._setHeight(args.e, true);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1048 var t = (newH - this._cache.height);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1049 this.resize(args.e, newH, 0, t, 0);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1050 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1051 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1052 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1053 * @method _setWidth
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1054 * @param {Event} ev The mouse event.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1055 * @param {Boolean} flip Argument to determine the direction of the movement.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1056 * @description Calculates the width based on the mouse event.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1057 * @return {Number} The new value
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1058 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1059 _setWidth: function(ev, flip) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1060 var xy = this._cache.xy[0],
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1061 w = this._cache.width,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1062 x = Event.getPageX(ev),
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1063 nw = (x - xy);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1064
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1065 if (flip) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1066 nw = (xy - x) + parseInt(this.get('width'), 10);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1067 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1068
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1069 nw = this._snapTick(nw, this.get('xTicks'));
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1070 nw = this._checkWidth(nw);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1071 return nw;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1072 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1073 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1074 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1075 * @method _checkWidth
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1076 * @param {Number} w The width to check.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1077 * @description Checks the value passed against the maxWidth and minWidth.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1078 * @return {Number} the new value
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1079 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1080 _checkWidth: function(w) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1081 if (this.get('minWidth')) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1082 if (w <= this.get('minWidth')) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1083 w = this.get('minWidth');
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1084 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1085 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1086 if (this.get('maxWidth')) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1087 if (w >= this.get('maxWidth')) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1088 w = this.get('maxWidth');
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1089 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1090 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1091 return w;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1092 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1093 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1094 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1095 * @method _checkHeight
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1096 * @param {Number} h The height to check.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1097 * @description Checks the value passed against the maxHeight and minHeight.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1098 * @return {Number} The new value
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1099 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1100 _checkHeight: function(h) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1101 if (this.get('minHeight')) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1102 if (h <= this.get('minHeight')) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1103 h = this.get('minHeight');
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1104 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1105 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1106 if (this.get('maxHeight')) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1107 if (h >= this.get('maxHeight')) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1108 h = this.get('maxHeight');
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1109 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1110 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1111 return h;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1112 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1113 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1114 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1115 * @method _setHeight
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1116 * @param {Event} ev The mouse event.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1117 * @param {Boolean} flip Argument to determine the direction of the movement.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1118 * @description Calculated the height based on the mouse event.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1119 * @return {Number} The new value
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1120 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1121 _setHeight: function(ev, flip) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1122 var xy = this._cache.xy[1],
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1123 h = this._cache.height,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1124 y = Event.getPageY(ev),
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1125 nh = (y - xy);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1126
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1127 if (flip) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1128 nh = (xy - y) + parseInt(this.get('height'), 10);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1129 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1130 nh = this._snapTick(nh, this.get('yTicks'));
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1131 nh = this._checkHeight(nh);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1132
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1133 return nh;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1134 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1135 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1136 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1137 * @method _snapTick
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1138 * @param {Number} size The size to tick against.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1139 * @param {Number} pix The tick pixels.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1140 * @description Adjusts the number based on the ticks used.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1141 * @return {Number} the new snapped position
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1142 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1143 _snapTick: function(size, pix) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1144 if (!size || !pix) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1145 return size;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1146 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1147 var _s = size;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1148 var _x = size % pix;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1149 if (_x > 0) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1150 if (_x > (pix / 2)) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1151 _s = size + (pix - _x);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1152 } else {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1153 _s = size - _x;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1154 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1155 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1156 return _s;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1157 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1158 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1159 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1160 * @method init
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1161 * @description The Resize class's initialization method
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1162 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1163 init: function(p_oElement, p_oAttributes) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1164 this._locked = false;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1165 this._cache = {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1166 xy: [],
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1167 height: 0,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1168 width: 0,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1169 top: 0,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1170 left: 0,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1171 offsetHeight: 0,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1172 offsetWidth: 0,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1173 start: {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1174 height: 0,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1175 width: 0,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1176 top: 0,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1177 left: 0
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1178 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1179 };
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1180
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1181 Resize.superclass.init.call(this, p_oElement, p_oAttributes);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1182
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1183 this.set('setSize', this.get('setSize'));
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1184
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1185 if (p_oAttributes.height) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1186 this.set('height', parseInt(p_oAttributes.height, 10));
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1187 } else {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1188 var h = this.getStyle('height');
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1189 if (h == 'auto') {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1190 this.set('height', parseInt(this.get('element').offsetHeight, 10));
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1191 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1192 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1193 if (p_oAttributes.width) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1194 this.set('width', parseInt(p_oAttributes.width, 10));
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1195 } else {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1196 var w = this.getStyle('width');
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1197 if (w == 'auto') {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1198 this.set('width', parseInt(this.get('element').offsetWidth, 10));
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1199 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1200 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1201
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1202 var id = p_oElement;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1203 if (!Lang.isString(id)) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1204 id = D.generateId(id);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1205 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1206 Resize._instances[id] = this;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1207
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1208 this._active = false;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1209
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1210 this._createWrap();
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1211 this._createProxy();
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1212 this._createHandles();
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1213
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1214 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1215 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1216 * @method getProxyEl
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1217 * @description Get the HTML reference for the proxy, returns null if no proxy.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1218 * @return {HTMLElement} The proxy element
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1219 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1220 getProxyEl: function() {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1221 return this._proxy;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1222 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1223 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1224 * @method getWrapEl
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1225 * @description Get the HTML reference for the wrap element, returns the current element if not wrapped.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1226 * @return {HTMLElement} The wrap element
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1227 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1228 getWrapEl: function() {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1229 return this._wrap;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1230 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1231 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1232 * @method getStatusEl
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1233 * @description Get the HTML reference for the status element.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1234 * @return {HTMLElement} The status element
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1235 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1236 getStatusEl: function() {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1237 return this._status;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1238 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1239 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1240 * @method getActiveHandleEl
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1241 * @description Get the HTML reference for the currently active resize handle.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1242 * @return {HTMLElement} The handle element that is active
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1243 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1244 getActiveHandleEl: function() {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1245 return this._handles[this._currentHandle];
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1246 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1247 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1248 * @method isActive
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1249 * @description Returns true or false if a resize operation is currently active on the element.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1250 * @return {Boolean}
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1251 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1252 isActive: function() {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1253 return ((this._active) ? true : false);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1254 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1255 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1256 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1257 * @method initAttributes
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1258 * @description Initializes all of the configuration attributes used to create a resizable element.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1259 * @param {Object} attr Object literal specifying a set of
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1260 * configuration attributes used to create the utility.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1261 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1262 initAttributes: function(attr) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1263 Resize.superclass.initAttributes.call(this, attr);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1264
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1265 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1266 * @attribute useShim
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1267 * @description This setting will be passed to the DragDrop instances on the resize handles and for the draggable property.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1268 * This property should be used if you want the resize handles to work over iframe and other elements.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1269 * @type Boolean
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1270 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1271 this.setAttributeConfig('useShim', {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1272 value: ((attr.useShim === true) ? true : false),
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1273 validator: YAHOO.lang.isBoolean,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1274 method: function(u) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1275 for (var i in this._dds) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1276 if (Lang.hasOwnProperty(this._dds, i)) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1277 this._dds[i].useShim = u;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1278 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1279 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1280 if (this.dd) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1281 this.dd.useShim = u;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1282 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1283 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1284 });
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1285 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1286 * @attribute setSize
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1287 * @description Set the size of the resized element, if set to false the element will not be auto resized,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1288 * the resize event will contain the dimensions so the end user can resize it on their own.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1289 * This setting will only work with proxy set to true and animate set to false.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1290 * @type Boolean
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1291 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1292 this.setAttributeConfig('setSize', {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1293 value: ((attr.setSize === false) ? false : true),
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1294 validator: YAHOO.lang.isBoolean
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1295 });
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1296
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1297 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1298 * @attribute wrap
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1299 * @description Should we wrap the element
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1300 * @type Boolean
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1301 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1302 this.setAttributeConfig('wrap', {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1303 writeOnce: true,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1304 validator: YAHOO.lang.isBoolean,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1305 value: attr.wrap || false
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1306 });
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1307
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1308 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1309 * @attribute handles
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1310 * @description The handles to use (any combination of): 't', 'b', 'r', 'l', 'bl', 'br', 'tl', 'tr'. Defaults to: ['r', 'b', 'br'].
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1311 * Can use a shortcut of All. Note: 8 way resizing should be done on an element that is absolutely positioned.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1312 * @type Array
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1313 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1314 this.setAttributeConfig('handles', {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1315 writeOnce: true,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1316 value: attr.handles || ['r', 'b', 'br'],
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1317 validator: function(handles) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1318 if (Lang.isString(handles) && handles.toLowerCase() == 'all') {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1319 handles = ['t', 'b', 'r', 'l', 'bl', 'br', 'tl', 'tr'];
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1320 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1321 if (!Lang.isArray(handles)) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1322 handles = handles.replace(/, /g, ',');
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1323 handles = handles.split(',');
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1324 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1325 this._configs.handles.value = handles;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1326 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1327 });
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1328
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1329 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1330 * @attribute width
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1331 * @description The width of the element
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1332 * @type Number
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1333 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1334 this.setAttributeConfig('width', {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1335 value: attr.width || parseInt(this.getStyle('width'), 10),
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1336 validator: YAHOO.lang.isNumber,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1337 method: function(width) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1338 width = parseInt(width, 10);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1339 if (width > 0) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1340 if (this.get('setSize')) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1341 this.setStyle('width', width + 'px');
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1342 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1343 this._cache.width = width;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1344 this._configs.width.value = width;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1345 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1346 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1347 });
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1348
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1349 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1350 * @attribute height
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1351 * @description The height of the element
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1352 * @type Number
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1353 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1354 this.setAttributeConfig('height', {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1355 value: attr.height || parseInt(this.getStyle('height'), 10),
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1356 validator: YAHOO.lang.isNumber,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1357 method: function(height) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1358 height = parseInt(height, 10);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1359 if (height > 0) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1360 if (this.get('setSize')) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1361 this.setStyle('height', height + 'px');
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1362 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1363 this._cache.height = height;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1364 this._configs.height.value = height;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1365 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1366 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1367 });
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1368
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1369 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1370 * @attribute minWidth
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1371 * @description The minimum width of the element
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1372 * @type Number
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1373 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1374 this.setAttributeConfig('minWidth', {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1375 value: attr.minWidth || 15,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1376 validator: YAHOO.lang.isNumber
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1377 });
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1378
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1379 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1380 * @attribute minHeight
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1381 * @description The minimum height of the element
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1382 * @type Number
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1383 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1384 this.setAttributeConfig('minHeight', {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1385 value: attr.minHeight || 15,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1386 validator: YAHOO.lang.isNumber
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1387 });
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1388
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1389 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1390 * @attribute maxWidth
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1391 * @description The maximum width of the element
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1392 * @type Number
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1393 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1394 this.setAttributeConfig('maxWidth', {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1395 value: attr.maxWidth || 10000,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1396 validator: YAHOO.lang.isNumber
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1397 });
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1398
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1399 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1400 * @attribute maxHeight
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1401 * @description The maximum height of the element
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1402 * @type Number
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1403 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1404 this.setAttributeConfig('maxHeight', {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1405 value: attr.maxHeight || 10000,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1406 validator: YAHOO.lang.isNumber
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1407 });
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1408
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1409 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1410 * @attribute minY
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1411 * @description The minimum y coord of the element
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1412 * @type Number
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1413 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1414 this.setAttributeConfig('minY', {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1415 value: attr.minY || false
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1416 });
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1417
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1418 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1419 * @attribute minX
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1420 * @description The minimum x coord of the element
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1421 * @type Number
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1422 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1423 this.setAttributeConfig('minX', {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1424 value: attr.minX || false
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1425 });
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1426 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1427 * @attribute maxY
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1428 * @description The max y coord of the element
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1429 * @type Number
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1430 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1431 this.setAttributeConfig('maxY', {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1432 value: attr.maxY || false
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1433 });
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1434
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1435 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1436 * @attribute maxX
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1437 * @description The max x coord of the element
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1438 * @type Number
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1439 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1440 this.setAttributeConfig('maxX', {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1441 value: attr.maxX || false
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1442 });
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1443
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1444 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1445 * @attribute animate
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1446 * @description Should be use animation to resize the element (can only be used if we use proxy).
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1447 * @type Boolean
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1448 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1449 this.setAttributeConfig('animate', {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1450 value: attr.animate || false,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1451 validator: function(value) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1452 var ret = true;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1453 if (!YAHOO.util.Anim) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1454 ret = false;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1455 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1456 return ret;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1457 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1458 });
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1459
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1460 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1461 * @attribute animateEasing
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1462 * @description The Easing to apply to the animation.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1463 * @type Object
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1464 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1465 this.setAttributeConfig('animateEasing', {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1466 value: attr.animateEasing || function() {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1467 var easing = false;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1468 if (YAHOO.util.Easing && YAHOO.util.Easing.easeOut) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1469 easing = YAHOO.util.Easing.easeOut;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1470 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1471 return easing;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1472 }()
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1473 });
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1474
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1475 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1476 * @attribute animateDuration
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1477 * @description The Duration to apply to the animation.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1478 * @type Number
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1479 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1480 this.setAttributeConfig('animateDuration', {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1481 value: attr.animateDuration || 0.5
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1482 });
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1483
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1484 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1485 * @attribute proxy
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1486 * @description Resize a proxy element instead of the real element.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1487 * @type Boolean
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1488 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1489 this.setAttributeConfig('proxy', {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1490 value: attr.proxy || false,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1491 validator: YAHOO.lang.isBoolean
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1492 });
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1493
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1494 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1495 * @attribute ratio
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1496 * @description Maintain the element's ratio when resizing.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1497 * @type Boolean
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1498 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1499 this.setAttributeConfig('ratio', {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1500 value: attr.ratio || false,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1501 validator: YAHOO.lang.isBoolean
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1502 });
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1503
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1504 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1505 * @attribute ghost
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1506 * @description Apply an opacity filter to the element being resized (only works with proxy).
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1507 * @type Boolean
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1508 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1509 this.setAttributeConfig('ghost', {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1510 value: attr.ghost || false,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1511 validator: YAHOO.lang.isBoolean
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1512 });
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1513
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1514 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1515 * @attribute draggable
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1516 * @description A convienence method to make the element draggable
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1517 * @type Boolean
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1518 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1519 this.setAttributeConfig('draggable', {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1520 value: attr.draggable || false,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1521 validator: YAHOO.lang.isBoolean,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1522 method: function(dd) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1523 if (dd && this._wrap) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1524 this._setupDragDrop();
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1525 } else {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1526 if (this.dd) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1527 D.removeClass(this._wrap, this.CSS_DRAG);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1528 this.dd.unreg();
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1529 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1530 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1531 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1532 });
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1533
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1534 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1535 * @attribute hover
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1536 * @description Only show the handles when they are being moused over.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1537 * @type Boolean
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1538 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1539 this.setAttributeConfig('hover', {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1540 value: attr.hover || false,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1541 validator: YAHOO.lang.isBoolean
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1542 });
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1543
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1544 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1545 * @attribute hiddenHandles
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1546 * @description Don't show the handles, just use the cursor to the user.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1547 * @type Boolean
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1548 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1549 this.setAttributeConfig('hiddenHandles', {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1550 value: attr.hiddenHandles || false,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1551 validator: YAHOO.lang.isBoolean
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1552 });
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1553
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1554 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1555 * @attribute knobHandles
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1556 * @description Use the smaller handles, instead if the full size handles.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1557 * @type Boolean
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1558 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1559 this.setAttributeConfig('knobHandles', {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1560 value: attr.knobHandles || false,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1561 validator: YAHOO.lang.isBoolean
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1562 });
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1563
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1564 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1565 * @attribute xTicks
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1566 * @description The number of x ticks to span the resize to.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1567 * @type Number or False
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1568 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1569 this.setAttributeConfig('xTicks', {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1570 value: attr.xTicks || false
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1571 });
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1572
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1573 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1574 * @attribute yTicks
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1575 * @description The number of y ticks to span the resize to.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1576 * @type Number or False
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1577 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1578 this.setAttributeConfig('yTicks', {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1579 value: attr.yTicks || false
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1580 });
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1581
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1582 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1583 * @attribute status
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1584 * @description Show the status (new size) of the resize.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1585 * @type Boolean
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1586 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1587 this.setAttributeConfig('status', {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1588 value: attr.status || false,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1589 validator: YAHOO.lang.isBoolean
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1590 });
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1591
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1592 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1593 * @attribute autoRatio
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1594 * @description Using the shift key during a resize will toggle the ratio config.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1595 * @type Boolean
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1596 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1597 this.setAttributeConfig('autoRatio', {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1598 value: attr.autoRatio || false,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1599 validator: YAHOO.lang.isBoolean
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1600 });
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1601
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1602 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1603 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1604 * @method destroy
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1605 * @description Destroys the resize object and all of it's elements & listeners.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1606 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1607 destroy: function() {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1608 for (var h in this._handles) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1609 if (Lang.hasOwnProperty(this._handles, h)) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1610 Event.purgeElement(this._handles[h]);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1611 this._handles[h].parentNode.removeChild(this._handles[h]);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1612 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1613 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1614 if (this._proxy) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1615 this._proxy.parentNode.removeChild(this._proxy);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1616 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1617 if (this._status) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1618 this._status.parentNode.removeChild(this._status);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1619 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1620 if (this.dd) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1621 this.dd.unreg();
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1622 D.removeClass(this._wrap, this.CSS_DRAG);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1623 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1624 if (this._wrap != this.get('element')) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1625 this.setStyle('position', '');
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1626 this.setStyle('top', '');
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1627 this.setStyle('left', '');
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1628 this._wrap.parentNode.replaceChild(this.get('element'), this._wrap);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1629 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1630 this.removeClass(this.CSS_RESIZE);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1631
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1632 delete YAHOO.util.Resize._instances[this.get('id')];
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1633 //Brutal Object Destroy
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1634 for (var i in this) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1635 if (Lang.hasOwnProperty(this, i)) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1636 this[i] = null;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1637 delete this[i];
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1638 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1639 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1640 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1641 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1642 * @method toString
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1643 * @description Returns a string representing the Resize Object.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1644 * @return {String}
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1645 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1646 toString: function() {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1647 if (this.get) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1648 return 'Resize (#' + this.get('id') + ')';
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1649 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1650 return 'Resize Utility';
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1651 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1652 });
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1653
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1654 YAHOO.util.Resize = Resize;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1655
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1656 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1657 * @event dragEvent
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1658 * @description Fires when the <a href="YAHOO.util.DragDrop.html">YAHOO.util.DragDrop</a> dragEvent is fired for the config option draggable.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1659 * @type YAHOO.util.CustomEvent
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1660 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1661 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1662 * @event startResize
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1663 * @description Fires when a resize action is started.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1664 * @type YAHOO.util.CustomEvent
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1665 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1666 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1667 * @event endResize
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1668 * @description Fires when the mouseUp event from the Drag Instance fires.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1669 * @type YAHOO.util.CustomEvent
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1670 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1671 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1672 * @event resize
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1673 * @description Fires on every element resize (only fires once when used with proxy config setting).
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1674 * @type YAHOO.util.CustomEvent
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1675 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1676 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1677 * @event beforeResize
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1678 * @description Fires before every element resize after the size calculations, returning false will stop the resize.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1679 * @type YAHOO.util.CustomEvent
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1680 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1681 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1682 * @event proxyResize
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1683 * @description Fires on every proxy resize (only fires when used with proxy config setting).
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1684 * @type YAHOO.util.CustomEvent
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1685 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1686
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1687 })();
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1688
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1689 YAHOO.register("resize", YAHOO.util.Resize, {version: "2.8.0r4", build: "2449"});