summaryrefslogtreecommitdiff
path: root/javascript/domTT_drag.js
diff options
context:
space:
mode:
Diffstat (limited to 'javascript/domTT_drag.js')
-rw-r--r--javascript/domTT_drag.js102
1 files changed, 102 insertions, 0 deletions
diff --git a/javascript/domTT_drag.js b/javascript/domTT_drag.js
new file mode 100644
index 0000000..794ab42
--- /dev/null
+++ b/javascript/domTT_drag.js
@@ -0,0 +1,102 @@
+/** $Id: domTT_drag.js,v 1.1 2007/01/04 22:29:18 thomas Exp $ */
+// {{{ license
+
+/*
+ * Copyright 2002-2005 Dan Allen, Mojavelinux.com (dan.allen@mojavelinux.com)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+// }}}
+// {{{ globals (DO NOT EDIT)
+
+var domTT_dragEnabled = true;
+var domTT_currentDragTarget;
+var domTT_dragMouseDown;
+var domTT_dragOffsetLeft;
+var domTT_dragOffsetTop;
+
+// }}}
+// {{{ domTT_dragStart()
+
+function domTT_dragStart(in_this, in_event)
+{
+ if (typeof(in_event) == 'undefined') { in_event = window.event; }
+
+ var eventButton = in_event[domLib_eventButton];
+ if (eventButton != 1 && !domLib_isKHTML)
+ {
+ return;
+ }
+
+ domTT_currentDragTarget = in_this;
+ in_this.style.cursor = 'move';
+
+ // upgrade our z-index
+ in_this.style.zIndex = ++domLib_zIndex;
+
+ var eventPosition = domLib_getEventPosition(in_event);
+
+ var targetPosition = domLib_getOffsets(in_this);
+ domTT_dragOffsetLeft = eventPosition.get('x') - targetPosition.get('left');
+ domTT_dragOffsetTop = eventPosition.get('y') - targetPosition.get('top');
+ domTT_dragMouseDown = true;
+}
+
+// }}}
+// {{{ domTT_dragUpdate()
+
+function domTT_dragUpdate(in_event)
+{
+ if (domTT_dragMouseDown)
+ {
+ if (domLib_isGecko)
+ {
+ window.getSelection().removeAllRanges()
+ }
+
+ if (domTT_useGlobalMousePosition && domTT_mousePosition != null)
+ {
+ var eventPosition = domTT_mousePosition;
+ }
+ else
+ {
+ if (typeof(in_event) == 'undefined') { in_event = window.event; }
+ var eventPosition = domLib_getEventPosition(in_event);
+ }
+
+ domTT_currentDragTarget.style.left = (eventPosition.get('x') - domTT_dragOffsetLeft) + 'px';
+ domTT_currentDragTarget.style.top = (eventPosition.get('y') - domTT_dragOffsetTop) + 'px';
+
+ // update the collision detection
+ domLib_detectCollisions(domTT_currentDragTarget);
+ }
+}
+
+// }}}
+// {{{ domTT_dragStop()
+
+function domTT_dragStop()
+{
+ if (domTT_dragMouseDown) {
+ domTT_dragMouseDown = false;
+ domTT_currentDragTarget.style.cursor = 'default';
+ domTT_currentDragTarget = null;
+ if (domLib_isGecko)
+ {
+ window.getSelection().removeAllRanges()
+ }
+ }
+}
+
+// }}}