From c5f63c7112842e2faeb0ff7ff3d1d7489b7b9916 Mon Sep 17 00:00:00 2001 From: Fabian Jakobs Date: Wed, 15 Dec 2010 11:04:14 +0100 Subject: [PATCH] put functions from old "ace/lib" modules directly on "exports" --- demo/demo_startup.js | 2 +- lib/ace/background_tokenizer.js | 2 +- lib/ace/document.js | 4 +- lib/ace/editor.js | 6 +- lib/ace/keybinding.js | 4 +- lib/ace/layer/cursor.js | 2 +- lib/ace/layer/text.js | 4 +- lib/ace/mode/css.js | 2 +- lib/ace/mode/css_highlight_rules.js | 4 +- lib/ace/mode/doc_comment_highlight_rules.js | 2 +- lib/ace/mode/html.js | 2 +- lib/ace/mode/html_highlight_rules.js | 2 +- lib/ace/mode/javascript.js | 2 +- lib/ace/mode/javascript_highlight_rules.js | 4 +- lib/ace/mode/python.js | 2 +- lib/ace/mode/python_highlight_rules.js | 4 +- lib/ace/mode/xml.js | 2 +- lib/ace/mode/xml_highlight_rules.js | 2 +- lib/ace/renderloop.js | 2 +- lib/ace/scrollbar.js | 8 +- lib/ace/search.js | 4 +- lib/ace/selection.js | 4 +- lib/ace/test/event_emitter_test.js | 2 +- lib/ace/textinput.js | 2 +- lib/ace/theme/clouds.js | 2 +- lib/ace/theme/clouds_mignight.js | 2 +- lib/ace/theme/cobalt.js | 2 +- lib/ace/theme/dawn.js | 2 +- lib/ace/theme/eclipse.js | 2 +- lib/ace/theme/idle_fingers.js | 2 +- lib/ace/theme/kr_theme.js | 2 +- lib/ace/theme/mono_industrial.js | 2 +- lib/ace/theme/monokai.js | 2 +- lib/ace/theme/textmate.js | 2 +- lib/ace/theme/twilight.js | 2 +- lib/ace/virtual_renderer.js | 8 +- plugins/cockpit/cli.js | 2 +- plugins/cockpit/ui/plain.js | 2 +- plugins/pilot/canon.js | 2 +- plugins/pilot/core.js | 35 +- plugins/pilot/dom.js | 163 ++++----- plugins/pilot/event.js | 383 ++++++++++---------- plugins/pilot/event_emitter.js | 2 +- plugins/pilot/lang.js | 144 ++++---- plugins/pilot/oop.js | 33 +- plugins/pilot/settings.js | 2 +- 46 files changed, 428 insertions(+), 444 deletions(-) diff --git a/demo/demo_startup.js b/demo/demo_startup.js index 99823cc9..1e71e8b3 100644 --- a/demo/demo_startup.js +++ b/demo/demo_startup.js @@ -41,7 +41,7 @@ define(function(require, exports, module) { exports.launch = function(env) { - var event = require("pilot/event").event; + var event = require("pilot/event"); var Editor = require("ace/editor").Editor; var Renderer = require("ace/virtual_renderer").VirtualRenderer; var theme = require("ace/theme/textmate"); diff --git a/lib/ace/background_tokenizer.js b/lib/ace/background_tokenizer.js index 811eeb8d..a95da503 100644 --- a/lib/ace/background_tokenizer.js +++ b/lib/ace/background_tokenizer.js @@ -37,7 +37,7 @@ define(function(require, exports, module) { -var oop = require("pilot/oop").oop; +var oop = require("pilot/oop"); var EventEmitter = require("pilot/event_emitter").EventEmitter; var BackgroundTokenizer = function(tokenizer, editor) { diff --git a/lib/ace/document.js b/lib/ace/document.js index 357520cb..6b792a5b 100644 --- a/lib/ace/document.js +++ b/lib/ace/document.js @@ -37,8 +37,8 @@ define(function(require, exports, module) { -var oop = require("pilot/oop").oop; -var lang = require("pilot/lang").lang; +var oop = require("pilot/oop"); +var lang = require("pilot/lang"); var EventEmitter = require("pilot/event_emitter").EventEmitter; var Selection = require("ace/selection").Selection; var TextMode = require("ace/mode/text").Mode; diff --git a/lib/ace/editor.js b/lib/ace/editor.js index 63c99563..2ccdf0fc 100644 --- a/lib/ace/editor.js +++ b/lib/ace/editor.js @@ -37,9 +37,9 @@ define(function(require, exports, module) { -var oop = require("pilot/oop").oop; -var event = require("pilot/event").event; -var lang = require("pilot/lang").lang; +var oop = require("pilot/oop"); +var event = require("pilot/event"); +var lang = require("pilot/lang"); var TextInput = require("ace/textinput").TextInput; var KeyBinding = require("ace/keybinding").KeyBinding; var Document = require("ace/document").Document; diff --git a/lib/ace/keybinding.js b/lib/ace/keybinding.js index d9ecd4a1..a57c71cc 100644 --- a/lib/ace/keybinding.js +++ b/lib/ace/keybinding.js @@ -37,8 +37,8 @@ define(function(require, exports, module) { -var core = require("pilot/core").core; -var event = require("pilot/event").event; +var core = require("pilot/core"); +var event = require("pilot/event"); var default_mac = require("ace/conf/keybindings/default_mac").bindings; var default_win = require("ace/conf/keybindings/default_win").bindings; var canon = require("pilot/canon"); diff --git a/lib/ace/layer/cursor.js b/lib/ace/layer/cursor.js index 57ffc7f7..7d1b7fa6 100644 --- a/lib/ace/layer/cursor.js +++ b/lib/ace/layer/cursor.js @@ -37,7 +37,7 @@ define(function(require, exports, module) { -var dom = require("pilot/dom").dom; +var dom = require("pilot/dom"); var Cursor = function(parentEl) { this.element = document.createElement("div"); diff --git a/lib/ace/layer/text.js b/lib/ace/layer/text.js index 9ba67f43..724b5f36 100644 --- a/lib/ace/layer/text.js +++ b/lib/ace/layer/text.js @@ -37,8 +37,8 @@ define(function(require, exports, module) { -var oop = require("pilot/oop").oop; -var dom = require("pilot/dom").dom; +var oop = require("pilot/oop"); +var dom = require("pilot/dom"); var EventEmitter = require("pilot/event_emitter").EventEmitter; var Text = function(parentEl) { diff --git a/lib/ace/mode/css.js b/lib/ace/mode/css.js index 7f69fdf1..21a1df85 100644 --- a/lib/ace/mode/css.js +++ b/lib/ace/mode/css.js @@ -37,7 +37,7 @@ define(function(require, exports, module) { -var oop = require("pilot/oop").oop; +var oop = require("pilot/oop"); var TextMode = require("ace/mode/text").Mode; var Tokenizer = require("ace/tokenizer").Tokenizer; var CssHighlightRules = require("ace/mode/css_highlight_rules").CssHighlightRules; diff --git a/lib/ace/mode/css_highlight_rules.js b/lib/ace/mode/css_highlight_rules.js index a4445f41..f448f87f 100644 --- a/lib/ace/mode/css_highlight_rules.js +++ b/lib/ace/mode/css_highlight_rules.js @@ -37,8 +37,8 @@ define(function(require, exports, module) { -var oop = require("pilot/oop").oop; -var lang = require("pilot/lang").lang; +var oop = require("pilot/oop"); +var lang = require("pilot/lang"); var TextHighlightRules = require("ace/mode/text_highlight_rules").TextHighlightRules; var CssHighlightRules = function() { diff --git a/lib/ace/mode/doc_comment_highlight_rules.js b/lib/ace/mode/doc_comment_highlight_rules.js index 48812aed..d88a9d2d 100644 --- a/lib/ace/mode/doc_comment_highlight_rules.js +++ b/lib/ace/mode/doc_comment_highlight_rules.js @@ -37,7 +37,7 @@ define(function(require, exports, module) { -var oop = require("pilot/oop").oop; +var oop = require("pilot/oop"); var TextHighlightRules = require("ace/mode/text_highlight_rules").TextHighlightRules; var DocCommentHighlightRules = function() { diff --git a/lib/ace/mode/html.js b/lib/ace/mode/html.js index 25746d8e..a6ecc6c8 100644 --- a/lib/ace/mode/html.js +++ b/lib/ace/mode/html.js @@ -37,7 +37,7 @@ define(function(require, exports, module) { -var oop = require("pilot/oop").oop; +var oop = require("pilot/oop"); var TextMode = require("ace/mode/text").Mode; var JavaScriptMode = require("ace/mode/javascript").Mode; var CssMode = require("ace/mode/css").Mode; diff --git a/lib/ace/mode/html_highlight_rules.js b/lib/ace/mode/html_highlight_rules.js index be441552..6193cb91 100644 --- a/lib/ace/mode/html_highlight_rules.js +++ b/lib/ace/mode/html_highlight_rules.js @@ -37,7 +37,7 @@ define(function(require, exports, module) { -var oop = require("pilot/oop").oop; +var oop = require("pilot/oop"); var CssHighlightRules = require("ace/mode/css_highlight_rules").CssHighlightRules; var JavaScriptHighlightRules = require("ace/mode/javascript_highlight_rules").JavaScriptHighlightRules; var TextHighlightRules = require("ace/mode/text_highlight_rules").TextHighlightRules; diff --git a/lib/ace/mode/javascript.js b/lib/ace/mode/javascript.js index 66d6c317..1e4eb24b 100644 --- a/lib/ace/mode/javascript.js +++ b/lib/ace/mode/javascript.js @@ -37,7 +37,7 @@ define(function(require, exports, module) { -var oop = require("pilot/oop").oop; +var oop = require("pilot/oop"); var TextMode = require("ace/mode/text").Mode; var Tokenizer = require("ace/tokenizer").Tokenizer; var JavaScriptHighlightRules = require("ace/mode/javascript_highlight_rules").JavaScriptHighlightRules; diff --git a/lib/ace/mode/javascript_highlight_rules.js b/lib/ace/mode/javascript_highlight_rules.js index 0cbad802..3dd063f2 100644 --- a/lib/ace/mode/javascript_highlight_rules.js +++ b/lib/ace/mode/javascript_highlight_rules.js @@ -37,8 +37,8 @@ define(function(require, exports, module) { -var oop = require("pilot/oop").oop; -var lang = require("pilot/lang").lang; +var oop = require("pilot/oop"); +var lang = require("pilot/lang"); var DocCommentHighlightRules = require("ace/mode/doc_comment_highlight_rules").DocCommentHighlightRules; var TextHighlightRules = require("ace/mode/text_highlight_rules").TextHighlightRules; diff --git a/lib/ace/mode/python.js b/lib/ace/mode/python.js index 4111b877..7687e553 100644 --- a/lib/ace/mode/python.js +++ b/lib/ace/mode/python.js @@ -37,7 +37,7 @@ define(function(require, exports, module) { -var oop = require("pilot/oop").oop; +var oop = require("pilot/oop"); var TextMode = require("./text").Mode; var Tokenizer = require("../tokenizer").Tokenizer; var PythonHighlightRules = require("./python_highlight_rules").PythonHighlightRules; diff --git a/lib/ace/mode/python_highlight_rules.js b/lib/ace/mode/python_highlight_rules.js index 0a48fcd3..5190178b 100644 --- a/lib/ace/mode/python_highlight_rules.js +++ b/lib/ace/mode/python_highlight_rules.js @@ -40,8 +40,8 @@ define(function(require, exports, module) { -var oop = require("pilot/oop").oop; -var lang = require("pilot/lang").lang; +var oop = require("pilot/oop"); +var lang = require("pilot/lang"); var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; PythonHighlightRules = function() { diff --git a/lib/ace/mode/xml.js b/lib/ace/mode/xml.js index e51bd7f8..5208709d 100644 --- a/lib/ace/mode/xml.js +++ b/lib/ace/mode/xml.js @@ -37,7 +37,7 @@ define(function(require, exports, module) { -var oop = require("pilot/oop").oop; +var oop = require("pilot/oop"); var TextMode = require("ace/mode/text").Mode; var Tokenizer = require("ace/tokenizer").Tokenizer; var XmlHighlightRules = require("ace/mode/xml_highlight_rules").XmlHighlightRules; diff --git a/lib/ace/mode/xml_highlight_rules.js b/lib/ace/mode/xml_highlight_rules.js index b1c6e874..7e758c63 100644 --- a/lib/ace/mode/xml_highlight_rules.js +++ b/lib/ace/mode/xml_highlight_rules.js @@ -37,7 +37,7 @@ define(function(require, exports, module) { -var oop = require("pilot/oop").oop; +var oop = require("pilot/oop"); var TextHighlightRules = require("ace/mode/text_highlight_rules").TextHighlightRules; var XmlHighlightRules = function() { diff --git a/lib/ace/renderloop.js b/lib/ace/renderloop.js index 20fa21fb..afe2b8b0 100644 --- a/lib/ace/renderloop.js +++ b/lib/ace/renderloop.js @@ -37,7 +37,7 @@ define(function(require, exports, module) { -var event = require("pilot/event").event; +var event = require("pilot/event"); var RenderLoop = function(onRender) { this.onRender = onRender; diff --git a/lib/ace/scrollbar.js b/lib/ace/scrollbar.js index 67411c15..e74dbf76 100644 --- a/lib/ace/scrollbar.js +++ b/lib/ace/scrollbar.js @@ -37,10 +37,10 @@ define(function(require, exports, module) { -var oop = require("pilot/oop").oop; -var lang = require("pilot/lang").lang; -var dom = require("pilot/dom").dom; -var event = require("pilot/event").event; +var oop = require("pilot/oop"); +var lang = require("pilot/lang"); +var dom = require("pilot/dom"); +var event = require("pilot/event"); var EventEmitter = require("pilot/event_emitter").EventEmitter; var ScrollBar = function(parent) { diff --git a/lib/ace/search.js b/lib/ace/search.js index 3ea5eba0..43f399de 100644 --- a/lib/ace/search.js +++ b/lib/ace/search.js @@ -37,8 +37,8 @@ define(function(require, exports, module) { -var lang = require("pilot/lang").lang; -var oop = require("pilot/oop").oop; +var lang = require("pilot/lang"); +var oop = require("pilot/oop"); var Range = require("ace/range").Range; var Search = function() { diff --git a/lib/ace/selection.js b/lib/ace/selection.js index 3b551667..236d546e 100644 --- a/lib/ace/selection.js +++ b/lib/ace/selection.js @@ -37,8 +37,8 @@ define(function(require, exports, module) { -var oop = require("pilot/oop").oop; -var lang = require("pilot/lang").lang; +var oop = require("pilot/oop"); +var lang = require("pilot/lang"); var EventEmitter = require("pilot/event_emitter").EventEmitter; var Range = require("ace/range").Range; diff --git a/lib/ace/test/event_emitter_test.js b/lib/ace/test/event_emitter_test.js index f28a345a..c414e0b3 100644 --- a/lib/ace/test/event_emitter_test.js +++ b/lib/ace/test/event_emitter_test.js @@ -37,7 +37,7 @@ require("../../../support/paths"); -var oop = require("pilot/oop").oop; +var oop = require("pilot/oop"); EventEmitter = require("pilot/event_emitter").EventEmitter, assert = require("./assertions"); diff --git a/lib/ace/textinput.js b/lib/ace/textinput.js index d4abdc96..076f7875 100644 --- a/lib/ace/textinput.js +++ b/lib/ace/textinput.js @@ -37,7 +37,7 @@ define(function(require, exports, module) { -var event = require("pilot/event").event; +var event = require("pilot/event"); var TextInput = function(parentNode, host) { diff --git a/lib/ace/theme/clouds.js b/lib/ace/theme/clouds.js index 6f1fa494..0211aeff 100644 --- a/lib/ace/theme/clouds.js +++ b/lib/ace/theme/clouds.js @@ -37,7 +37,7 @@ define(function(require, exports, module) { - var dom = require("pilot/dom").dom; + var dom = require("pilot/dom"); var cssText = ".ace-clouds .ace_editor {\ border: 2px solid rgb(159, 159, 159);\ diff --git a/lib/ace/theme/clouds_mignight.js b/lib/ace/theme/clouds_mignight.js index d73350f2..16011ba9 100644 --- a/lib/ace/theme/clouds_mignight.js +++ b/lib/ace/theme/clouds_mignight.js @@ -37,7 +37,7 @@ define(function(require, exports, module) { - var dom = require("pilot/dom").dom; + var dom = require("pilot/dom"); var cssText = ".ace-clouds-midnight .ace_editor {\ border: 2px solid rgb(159, 159, 159);\ diff --git a/lib/ace/theme/cobalt.js b/lib/ace/theme/cobalt.js index 5ae45ca1..409b1e80 100644 --- a/lib/ace/theme/cobalt.js +++ b/lib/ace/theme/cobalt.js @@ -37,7 +37,7 @@ define(function(require, exports, module) { - var dom = require("pilot/dom").dom; + var dom = require("pilot/dom"); var cssText = ".ace-cobalt .ace_editor {\ border: 2px solid rgb(159, 159, 159);\ diff --git a/lib/ace/theme/dawn.js b/lib/ace/theme/dawn.js index 02a46140..7c6a9525 100644 --- a/lib/ace/theme/dawn.js +++ b/lib/ace/theme/dawn.js @@ -37,7 +37,7 @@ define(function(require, exports, module) { - var dom = require("pilot/dom").dom; + var dom = require("pilot/dom"); var cssText = ".ace-dawn .ace_editor {\ border: 2px solid rgb(159, 159, 159);\ diff --git a/lib/ace/theme/eclipse.js b/lib/ace/theme/eclipse.js index 9545a5eb..1d0b062d 100644 --- a/lib/ace/theme/eclipse.js +++ b/lib/ace/theme/eclipse.js @@ -37,7 +37,7 @@ define(function(require, exports, module) { - var dom = require("pilot/dom").dom; + var dom = require("pilot/dom"); var cssText = require("text!ace/theme/eclipse.css"); // import CSS once diff --git a/lib/ace/theme/idle_fingers.js b/lib/ace/theme/idle_fingers.js index c0e3733a..3e7fd8ce 100644 --- a/lib/ace/theme/idle_fingers.js +++ b/lib/ace/theme/idle_fingers.js @@ -37,7 +37,7 @@ define(function(require, exports, module) { - var dom = require("pilot/dom").dom; + var dom = require("pilot/dom"); var cssText = ".ace-idle-fingers .ace_editor {\ border: 2px solid rgb(159, 159, 159);\ diff --git a/lib/ace/theme/kr_theme.js b/lib/ace/theme/kr_theme.js index 164232d7..2a2f6b82 100644 --- a/lib/ace/theme/kr_theme.js +++ b/lib/ace/theme/kr_theme.js @@ -37,7 +37,7 @@ define(function(require, exports, module) { - var dom = require("pilot/dom").dom; + var dom = require("pilot/dom"); var cssText = ".ace-kr-theme .ace_editor {\ border: 2px solid rgb(159, 159, 159);\ diff --git a/lib/ace/theme/mono_industrial.js b/lib/ace/theme/mono_industrial.js index 20a0efbb..72eebb12 100644 --- a/lib/ace/theme/mono_industrial.js +++ b/lib/ace/theme/mono_industrial.js @@ -37,7 +37,7 @@ define(function(require, exports, module) { - var dom = require("pilot/dom").dom; + var dom = require("pilot/dom"); var cssText = ".ace-mono-industrial .ace_editor {\ border: 2px solid rgb(159, 159, 159);\ diff --git a/lib/ace/theme/monokai.js b/lib/ace/theme/monokai.js index 3e116bc6..ce579cbb 100644 --- a/lib/ace/theme/monokai.js +++ b/lib/ace/theme/monokai.js @@ -37,7 +37,7 @@ define(function(require, exports, module) { - var dom = require("pilot/dom").dom; + var dom = require("pilot/dom"); var cssText = ".ace-monokai .ace_editor {\ border: 2px solid rgb(159, 159, 159);\ diff --git a/lib/ace/theme/textmate.js b/lib/ace/theme/textmate.js index 19d65d27..3311b1e3 100644 --- a/lib/ace/theme/textmate.js +++ b/lib/ace/theme/textmate.js @@ -37,7 +37,7 @@ define(function(require, exports, module) { - var dom = require("pilot/dom").dom; + var dom = require("pilot/dom"); var cssText = require("text!ace/theme/tm.css"); // import CSS once diff --git a/lib/ace/theme/twilight.js b/lib/ace/theme/twilight.js index dba0f7a4..ea5f0eca 100644 --- a/lib/ace/theme/twilight.js +++ b/lib/ace/theme/twilight.js @@ -37,7 +37,7 @@ define(function(require, exports, module) { - var dom = require("pilot/dom").dom; + var dom = require("pilot/dom"); var cssText = ".ace-twilight .ace_editor {\ border: 2px solid rgb(159, 159, 159);\ diff --git a/lib/ace/virtual_renderer.js b/lib/ace/virtual_renderer.js index 08155d9c..bc289dc7 100644 --- a/lib/ace/virtual_renderer.js +++ b/lib/ace/virtual_renderer.js @@ -37,10 +37,10 @@ define(function(require, exports, module) { -var oop = require("pilot/oop").oop; -var lang = require("pilot/lang").lang; -var dom = require("pilot/dom").dom; -var event = require("pilot/event").event; +var oop = require("pilot/oop"); +var lang = require("pilot/lang"); +var dom = require("pilot/dom"); +var event = require("pilot/event"); var GutterLayer = require("ace/layer/gutter").Gutter; var MarkerLayer = require("ace/layer/marker").Marker; var TextLayer = require("ace/layer/text").Text; diff --git a/plugins/cockpit/cli.js b/plugins/cockpit/cli.js index 85382cb9..e8764c88 100644 --- a/plugins/cockpit/cli.js +++ b/plugins/cockpit/cli.js @@ -40,7 +40,7 @@ define(function(require, exports, module) { var console = require('pilot/console'); var util = require('pilot/util'); -var oop = require('pilot/oop').oop; +var oop = require('pilot/oop'); var EventEmitter = require('pilot/event_emitter').EventEmitter; //var keyboard = require('keyboard/keyboard'); diff --git a/plugins/cockpit/ui/plain.js b/plugins/cockpit/ui/plain.js index 445a7864..618f3943 100644 --- a/plugins/cockpit/ui/plain.js +++ b/plugins/cockpit/ui/plain.js @@ -38,7 +38,7 @@ define(function(require, exports, module) { var editorCss = require("text!cockpit/ui/plain.css"); -var dom = require("pilot/dom").dom; +var dom = require("pilot/dom"); dom.importCssString(editorCss); var CliRequisition = require('cockpit/cli').CliRequisition; diff --git a/plugins/pilot/canon.js b/plugins/pilot/canon.js index 5bf4e79a..ce987290 100644 --- a/plugins/pilot/canon.js +++ b/plugins/pilot/canon.js @@ -39,7 +39,7 @@ define(function(require, exports, module) { var console = require('pilot/console'); var Trace = require('pilot/stacktrace').Trace; -var oop = require('pilot/oop').oop; +var oop = require('pilot/oop'); var EventEmitter = require('pilot/event_emitter').EventEmitter; var catalog = require('pilot/catalog'); var Status = require('pilot/types').Status; diff --git a/plugins/pilot/core.js b/plugins/pilot/core.js index 29aacf9e..e0332633 100644 --- a/plugins/pilot/core.js +++ b/plugins/pilot/core.js @@ -37,27 +37,24 @@ define(function(require, exports, module) { - var core = {}; - var os = (navigator.platform.match(/mac|win|linux/i) || ["other"])[0].toLowerCase(); +var os = (navigator.platform.match(/mac|win|linux/i) || ["other"])[0].toLowerCase(); - core.isWin = (os == "win"); - core.isMac = (os == "mac"); - core.isLinux = (os == "linux"); - core.isIE = ! + "\v1"; - core.isGecko = window.controllers && window.navigator.product === "Gecko"; +exports.isWin = (os == "win"); +exports.isMac = (os == "mac"); +exports.isLinux = (os == "linux"); +exports.isIE = ! + "\v1"; +exports.isGecko = window.controllers && window.navigator.product === "Gecko"; - core.provide = function(namespace) { - var parts = namespace.split("."); - var obj = window; - for (var i=0; i 5 || Math.abs(e.clientY - startY) > 5) - clicks = 0; - - if (clicks == count) { - clicks = 0; - callback(e); - } - return event.preventDefault(e); - }; - - event.addListener(el, "mousedown", listener); - core.isIE && event.addListener(el, "dblclick", listener); - }; - - event.addKeyListener = function(el, callback) { - var lastDown = null; - - event.addListener(el, "keydown", function(e) { - lastDown = e.keyIdentifier || e.keyCode; - return callback(e); - }); - - // repeated keys are fired as keypress and not keydown events - if (core.isMac && core.isGecko) { - event.addListener(el, "keypress", function(e) { - var keyId = e.keyIdentifier || e.keyCode; - if (lastDown !== keyId) { - return callback(e); - } else { - lastDown = null; - } - }); +if (document.documentElement.setCapture) { + exports.capture = function(el, eventHandler, releaseCaptureHandler) { + function onMouseMove(e) { + eventHandler(e); + return exports.stopPropagation(e); } + + function onReleaseCapture(e) { + eventHandler && eventHandler(e); + releaseCaptureHandler && releaseCaptureHandler(); + + exports.removeListener(el, "mousemove", eventHandler); + exports.removeListener(el, "mouseup", onReleaseCapture); + exports.removeListener(el, "losecapture", onReleaseCapture); + + el.releaseCapture(); + } + + exports.addListener(el, "mousemove", eventHandler); + exports.addListener(el, "mouseup", onReleaseCapture); + exports.addListener(el, "losecapture", onReleaseCapture); + el.setCapture(); + }; +} +else { + exports.capture = function(el, eventHandler, releaseCaptureHandler) { + function onMouseMove(e) { + eventHandler(e); + e.stopPropagation(); + } + + function onMouseUp(e) { + eventHandler && eventHandler(e); + releaseCaptureHandler && releaseCaptureHandler(); + + exports.removeEventListener("mousemove", onMouseMove, true); + exports.removeEventListener("mouseup", onMouseUp, true); + + e.stopPropagation(); + } + + exports.addEventListener("mousemove", onMouseMove, true); + exports.addEventListener("mouseup", onMouseUp, true); + }; +} + +exports.addMouseWheelListener = function(el, callback) { + var listener = function(e) { + if (e.wheelDelta !== undefined) { + if (e.wheelDeltaX !== undefined) { + e.wheelX = -e.wheelDeltaX / 8; + e.wheelY = -e.wheelDeltaY / 8; + } else { + e.wheelX = 0; + e.wheelY = -e.wheelDelta / 8; + } + } + else { + if (e.axis && e.axis == e.HORIZONTAL_AXIS) { + e.wheelX = (e.detail || 0) * 5; + e.wheelY = 0; + } else { + e.wheelX = 0; + e.wheelY = (e.detail || 0) * 5; + } + } + callback(e); + }; + exports.addListener(el, "DOMMouseScroll", listener); + exports.addListener(el, "mousewheel", listener); +}; + +exports.addMultiMouseDownListener = function(el, button, count, timeout, callback) { + var clicks = 0; + var startX, startY; + + var listener = function(e) { + clicks += 1; + if (clicks == 1) { + startX = e.clientX; + startY = e.clientY; + + setTimeout(function() { + clicks = 0; + }, timeout || 600); + } + + if (exports.getButton(e) != button + || Math.abs(e.clientX - startX) > 5 || Math.abs(e.clientY - startY) > 5) + clicks = 0; + + if (clicks == count) { + clicks = 0; + callback(e); + } + return exports.preventDefault(e); }; - exports.event = event; + exports.addListener(el, "mousedown", listener); + core.isIE && exports.addListener(el, "dblclick", listener); +}; + +exports.addKeyListener = function(el, callback) { + var lastDown = null; + + exports.addListener(el, "keydown", function(e) { + lastDown = e.keyIdentifier || e.keyCode; + return callback(e); + }); + + // repeated keys are fired as keypress and not keydown events + if (core.isMac && core.isGecko) { + exports.addListener(el, "keypress", function(e) { + var keyId = e.keyIdentifier || e.keyCode; + if (lastDown !== keyId) { + return callback(e); + } else { + lastDown = null; + } + }); + } +}; }); diff --git a/plugins/pilot/event_emitter.js b/plugins/pilot/event_emitter.js index c7ddf1cd..cff5b379 100644 --- a/plugins/pilot/event_emitter.js +++ b/plugins/pilot/event_emitter.js @@ -37,7 +37,7 @@ define(function(require, exports, module) { -var lang = require('pilot/lang').lang; +var lang = require('pilot/lang'); var EventEmitter = {}; diff --git a/plugins/pilot/lang.js b/plugins/pilot/lang.js index f4538dbf..49ba8763 100644 --- a/plugins/pilot/lang.js +++ b/plugins/pilot/lang.js @@ -37,90 +37,86 @@ define(function(require, exports, module) { +exports.stringReverse = function(string) { + return string.split("").reverse().join(""); +}; - var lang = {}; +exports.stringRepeat = function (string, count) { + return new Array(count + 1).join(string); +}; - lang.stringReverse = function(string) { - return string.split("").reverse().join(""); +if (Array.prototype.indexOf) { + exports.arrayIndexOf = function(array, searchElement) { + return array.indexOf(searchElement); }; - - lang.stringRepeat = function (string, count) { - return new Array(count + 1).join(string); - }; - - if (Array.prototype.indexOf) { - lang.arrayIndexOf = function(array, searchElement) { - return array.indexOf(searchElement); - }; - } - else { - lang.arrayIndexOf = function(array, searchElement) { - for (var i=0; i