diff options
author | Wu Cheng-Han | 2015-05-15 12:58:13 +0800 |
---|---|---|
committer | Wu Cheng-Han | 2015-05-15 12:58:13 +0800 |
commit | 4e64583a0b6175d2c9a6729ffde1472dd55d389c (patch) | |
tree | 75253f2425f2e4f5906ed4fd30eca29a906ee47a /public/vendor/inlineAttachment/codemirror.inline-attachment.js | |
parent | 2d36d7ce84c636faac17cef3d3a7c22568df38fe (diff) |
Marked as 0.2.8
Diffstat (limited to 'public/vendor/inlineAttachment/codemirror.inline-attachment.js')
-rwxr-xr-x | public/vendor/inlineAttachment/codemirror.inline-attachment.js | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/public/vendor/inlineAttachment/codemirror.inline-attachment.js b/public/vendor/inlineAttachment/codemirror.inline-attachment.js new file mode 100755 index 00000000..7816d1c8 --- /dev/null +++ b/public/vendor/inlineAttachment/codemirror.inline-attachment.js @@ -0,0 +1,95 @@ +/*jslint newcap: true */ +/*global inlineAttachment: false */ +/** + * CodeMirror version for inlineAttachment + * + * Call inlineAttachment.attach(editor) to attach to a codemirror instance + */ +(function() { + 'use strict'; + + var codeMirrorEditor = function(instance) { + + if (!instance.getWrapperElement) { + throw "Invalid CodeMirror object given"; + } + + this.codeMirror = instance; + }; + + codeMirrorEditor.prototype.getValue = function() { + return this.codeMirror.getValue(); + }; + + codeMirrorEditor.prototype.insertValue = function(val) { + this.codeMirror.replaceSelection(val); + }; + + codeMirrorEditor.prototype.setValue = function(val) { + var cursor = this.codeMirror.getCursor(); + this.codeMirror.setValue(val); + this.codeMirror.setCursor(cursor); + }; + + codeMirrorEditor.prototype.replaceRange = function(val) { + this.codeMirror.replaceRange(val.replacement, val.from, val.to, "+input"); + }; + + /** + * Attach InlineAttachment to CodeMirror + * + * @param {CodeMirror} codeMirror + */ + codeMirrorEditor.attach = function(codeMirror, options) { + + options = options || {}; + + var editor = new codeMirrorEditor(codeMirror), + inlineattach = new inlineAttachment(options, editor), + el = codeMirror.getWrapperElement(); + + el.addEventListener('paste', function(e) { + inlineattach.onPaste(e); + }, false); + + codeMirror.setOption('onDragEvent', function(data, e) { + if (e.type === "drop") { + e.stopPropagation(); + e.preventDefault(); + return inlineattach.onDrop(e); + } + }); + }; + + inlineAttachment.editors.codemirror3 = codeMirrorEditor; + + var codeMirrorEditor4 = function(instance) { + codeMirrorEditor.call(this, instance); + }; + + codeMirrorEditor4.attach = function(codeMirror, options) { + + options = options || {}; + + var editor = new codeMirrorEditor(codeMirror), + inlineattach = new inlineAttachment(options, editor), + el = codeMirror.getWrapperElement(); + + el.addEventListener('paste', function(e) { + inlineattach.onPaste(e); + }, false); + + codeMirror.on('drop', function(data, e) { + if (inlineattach.onDrop(e)) { + e.stopPropagation(); + e.preventDefault(); + return true; + } else { + return false; + } + }); + }; + + inlineAttachment.editors.codemirror4 = codeMirrorEditor4; + +})();
\ No newline at end of file |