src/pyams_skin/resources/js/ext/tinymce/dev/plugins/paste/classes/Plugin.js
changeset 69 a361355b55c7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/pyams_skin/resources/js/ext/tinymce/dev/plugins/paste/classes/Plugin.js	Wed Jun 17 10:00:10 2015 +0200
@@ -0,0 +1,110 @@
+/**
+ * Plugin.js
+ *
+ * Copyright, Moxiecode Systems AB
+ * Released under LGPL License.
+ *
+ * License: http://www.tinymce.com/license
+ * Contributing: http://www.tinymce.com/contributing
+ */
+
+/**
+ * This class contains the tinymce plugin logic for the paste plugin.
+ *
+ * @class tinymce.pasteplugin.Plugin
+ * @private
+ */
+define("tinymce/pasteplugin/Plugin", [
+	"tinymce/PluginManager",
+	"tinymce/pasteplugin/Clipboard",
+	"tinymce/pasteplugin/WordFilter",
+	"tinymce/pasteplugin/Quirks"
+], function(PluginManager, Clipboard, WordFilter, Quirks) {
+	var userIsInformed;
+
+	PluginManager.add('paste', function(editor) {
+		var self = this, clipboard, settings = editor.settings;
+
+		function togglePlainTextPaste() {
+			if (clipboard.pasteFormat == "text") {
+				this.active(false);
+				clipboard.pasteFormat = "html";
+			} else {
+				clipboard.pasteFormat = "text";
+				this.active(true);
+
+				if (!userIsInformed) {
+					editor.windowManager.alert(
+						'Paste is now in plain text mode. Contents will now ' +
+						'be pasted as plain text until you toggle this option off.'
+					);
+
+					userIsInformed = true;
+				}
+			}
+		}
+
+		self.clipboard = clipboard = new Clipboard(editor);
+		self.quirks = new Quirks(editor);
+		self.wordFilter = new WordFilter(editor);
+
+		if (editor.settings.paste_as_text) {
+			self.clipboard.pasteFormat = "text";
+		}
+
+		if (settings.paste_preprocess) {
+			editor.on('PastePreProcess', function(e) {
+				settings.paste_preprocess.call(self, self, e);
+			});
+		}
+
+		if (settings.paste_postprocess) {
+			editor.on('PastePostProcess', function(e) {
+				settings.paste_postprocess.call(self, self, e);
+			});
+		}
+
+		editor.addCommand('mceInsertClipboardContent', function(ui, value) {
+			if (value.content) {
+				self.clipboard.pasteHtml(value.content);
+			}
+
+			if (value.text) {
+				self.clipboard.pasteText(value.text);
+			}
+		});
+
+		// Block all drag/drop events
+		if (editor.paste_block_drop) {
+			editor.on('dragend dragover draggesture dragdrop drop drag', function(e) {
+				e.preventDefault();
+				e.stopPropagation();
+			});
+		}
+
+		// Prevent users from dropping data images on Gecko
+		if (!editor.settings.paste_data_images) {
+			editor.on('drop', function(e) {
+				var dataTransfer = e.dataTransfer;
+
+				if (dataTransfer && dataTransfer.files && dataTransfer.files.length > 0) {
+					e.preventDefault();
+				}
+			});
+		}
+
+		editor.addButton('pastetext', {
+			icon: 'pastetext',
+			tooltip: 'Paste as text',
+			onclick: togglePlainTextPaste,
+			active: self.clipboard.pasteFormat == "text"
+		});
+
+		editor.addMenuItem('pastetext', {
+			text: 'Paste as text',
+			selectable: true,
+			active: clipboard.pasteFormat,
+			onclick: togglePlainTextPaste
+		});
+	});
+});
\ No newline at end of file