-/* Import plugin specific language pack */\r
-tinyMCE.importPluginLanguagePack('layer');\r
-\r
-var TinyMCE_LayerPlugin = {\r
- getInfo : function() {\r
- return {\r
- longname : 'Layer',\r
- author : 'Moxiecode Systems AB',\r
- authorurl : 'http://tinymce.moxiecode.com',\r
- infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/layer',\r
- version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion\r
- };\r
- },\r
-\r
- initInstance : function(inst) {\r
- if (tinyMCE.isMSIE && !tinyMCE.isOpera)\r
- inst.getDoc().execCommand('2D-Position');\r
- },\r
-\r
- handleEvent : function(e) {\r
- var inst = tinyMCE.selectedInstance;\r
- var w = inst.getWin(), le = inst._lastStyleElm, e;\r
-\r
- if (tinyMCE.isGecko) {\r
- e = this._getParentLayer(inst.getFocusElement());\r
-\r
- if (e) {\r
- if (!inst._lastStyleElm) {\r
- e.style.overflow = 'auto';\r
- inst._lastStyleElm = e;\r
- }\r
- } else if (le) {\r
- le = inst._lastStyleElm;\r
- le.style.width = le.scrollWidth + 'px';\r
- le.style.height = le.scrollHeight + 'px';\r
- le.style.overflow = '';\r
- inst._lastStyleElm = null;\r
- }\r
- }\r
-\r
- return true;\r
- },\r
-\r
- handleVisualAid : function(el, deep, state, inst) {\r
- var nl = inst.getDoc().getElementsByTagName("div"), i;\r
-\r
- for (i=0; i<nl.length; i++) {\r
- if (new RegExp('absolute|relative|static', 'gi').test(nl[i].style.position)) {\r
- if (state)\r
- tinyMCE.addCSSClass(nl[i], 'mceVisualAid');\r
- else\r
- tinyMCE.removeCSSClass(nl[i], 'mceVisualAid'); \r
+(function() {\r
+ tinymce.create('tinymce.plugins.Layer', {\r
+ init : function(ed, url) {\r
+ var t = this;\r
+\r
+ t.editor = ed;\r
+\r
+ // Register commands\r
+ ed.addCommand('mceInsertLayer', t._insertLayer, t);\r
+\r
+ ed.addCommand('mceMoveForward', function() {\r
+ t._move(1);\r
+ });\r
+\r
+ ed.addCommand('mceMoveBackward', function() {\r
+ t._move(-1);\r
+ });\r
+\r
+ ed.addCommand('mceMakeAbsolute', function() {\r
+ t._toggleAbsolute();\r
+ });\r
+\r
+ // Register buttons\r
+ ed.addButton('moveforward', {title : 'layer.forward_desc', cmd : 'mceMoveForward'});\r
+ ed.addButton('movebackward', {title : 'layer.backward_desc', cmd : 'mceMoveBackward'});\r
+ ed.addButton('absolute', {title : 'layer.absolute_desc', cmd : 'mceMakeAbsolute'});\r
+ ed.addButton('insertlayer', {title : 'layer.insertlayer_desc', cmd : 'mceInsertLayer'});\r
+\r
+ ed.onInit.add(function() {\r
+ if (tinymce.isIE)\r
+ ed.getDoc().execCommand('2D-Position', false, true);\r
+ });\r
+\r
+ ed.onNodeChange.add(t._nodeChange, t);\r
+ ed.onVisualAid.add(t._visualAid, t);\r
+ },\r
+\r
+ getInfo : function() {\r
+ return {\r
+ longname : 'Layer',\r
+ author : 'Moxiecode Systems AB',\r
+ authorurl : 'http://tinymce.moxiecode.com',\r
+ infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/layer',\r
+ version : tinymce.majorVersion + "." + tinymce.minorVersion\r
+ };\r
+ },\r
+\r
+ // Private methods\r
+\r
+ _nodeChange : function(ed, cm, n) {\r
+ var le, p;\r
+\r
+ le = this._getParentLayer(n);\r
+ p = ed.dom.getParent(n, 'DIV,P,IMG');\r
+\r
+ if (!p) {\r
+ cm.setDisabled('absolute', 1);\r
+ cm.setDisabled('moveforward', 1);\r
+ cm.setDisabled('movebackward', 1);\r
+ } else {\r
+ cm.setDisabled('absolute', 0);\r
+ cm.setDisabled('moveforward', !le);\r
+ cm.setDisabled('movebackward', !le);\r
+ cm.setActive('absolute', le && le.style.position.toLowerCase() == "absolute");\r