Mimimum syndical pour en faire un produit zope / cmf.
[ckeditor.git] / skins / ckeditor / _source / skins / kama / skin.js
diff --git a/skins/ckeditor/_source/skins/kama/skin.js b/skins/ckeditor/_source/skins/kama/skin.js
new file mode 100644 (file)
index 0000000..922bf19
--- /dev/null
@@ -0,0 +1,236 @@
+/*\r
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.html or http://ckeditor.com/license\r
+*/\r
+\r
+CKEDITOR.skins.add( 'kama', (function()\r
+{\r
+       var uiColorStylesheetId = 'cke_ui_color';\r
+\r
+       return {\r
+               editor          : { css : [ 'editor.css' ] },\r
+               dialog          : { css : [ 'dialog.css' ] },\r
+               richcombo       : { canGroup: false },\r
+               templates       : { css : [ 'templates.css' ] },\r
+               margins         : [ 0, 0, 0, 0 ],\r
+               init : function( editor )\r
+               {\r
+                       if ( editor.config.width && !isNaN( editor.config.width ) )\r
+                               editor.config.width -= 12;\r
+\r
+                       var uiColorMenus = [];\r
+                       var uiColorRegex = /\$color/g;\r
+                       var uiColorMenuCss = "/* UI Color Support */\\r
+.cke_skin_kama .cke_menuitem .cke_icon_wrapper\\r
+{\\r
+       background-color: $color !important;\\r
+       border-color: $color !important;\\r
+}\\r
+\\r
+.cke_skin_kama .cke_menuitem a:hover .cke_icon_wrapper,\\r
+.cke_skin_kama .cke_menuitem a:focus .cke_icon_wrapper,\\r
+.cke_skin_kama .cke_menuitem a:active .cke_icon_wrapper\\r
+{\\r
+       background-color: $color !important;\\r
+       border-color: $color !important;\\r
+}\\r
+\\r
+.cke_skin_kama .cke_menuitem a:hover .cke_label,\\r
+.cke_skin_kama .cke_menuitem a:focus .cke_label,\\r
+.cke_skin_kama .cke_menuitem a:active .cke_label\\r
+{\\r
+       background-color: $color !important;\\r
+}\\r
+\\r
+.cke_skin_kama .cke_menuitem a.cke_disabled:hover .cke_label,\\r
+.cke_skin_kama .cke_menuitem a.cke_disabled:focus .cke_label,\\r
+.cke_skin_kama .cke_menuitem a.cke_disabled:active .cke_label\\r
+{\\r
+       background-color: transparent !important;\\r
+}\\r
+\\r
+.cke_skin_kama .cke_menuitem a.cke_disabled:hover .cke_icon_wrapper,\\r
+.cke_skin_kama .cke_menuitem a.cke_disabled:focus .cke_icon_wrapper,\\r
+.cke_skin_kama .cke_menuitem a.cke_disabled:active .cke_icon_wrapper\\r
+{\\r
+       background-color: $color !important;\\r
+       border-color: $color !important;\\r
+}\\r
+\\r
+.cke_skin_kama .cke_menuitem a.cke_disabled .cke_icon_wrapper\\r
+{\\r
+       background-color: $color !important;\\r
+       border-color: $color !important;\\r
+}\\r
+\\r
+.cke_skin_kama .cke_menuseparator\\r
+{\\r
+       background-color: $color !important;\\r
+}\\r
+\\r
+.cke_skin_kama .cke_menuitem a:hover,\\r
+.cke_skin_kama .cke_menuitem a:focus,\\r
+.cke_skin_kama .cke_menuitem a:active\\r
+{\\r
+       background-color: $color !important;\\r
+}";\r
+                       // We have to split CSS declarations for webkit.\r
+                       if ( CKEDITOR.env.webkit )\r
+                       {\r
+                               uiColorMenuCss = uiColorMenuCss.split( '}' ).slice( 0, -1 );\r
+                               for ( var i = 0 ; i < uiColorMenuCss.length ; i++ )\r
+                                       uiColorMenuCss[ i ] = uiColorMenuCss[ i ].split( '{' );\r
+                       }\r
+\r
+                       function getStylesheet( document )\r
+                       {\r
+                               var node = document.getById( uiColorStylesheetId );\r
+                               if ( !node )\r
+                               {\r
+                                       node = document.getHead().append( 'style' );\r
+                                       node.setAttribute( "id", uiColorStylesheetId );\r
+                                       node.setAttribute( "type", "text/css" );\r
+                               }\r
+                               return node;\r
+                       }\r
+\r
+                       function updateStylesheets( styleNodes, styleContent, replace )\r
+                       {\r
+                               var r, i, content;\r
+                               for ( var id  = 0 ; id < styleNodes.length ; id++ )\r
+                               {\r
+                                       if ( CKEDITOR.env.webkit )\r
+                                       {\r
+                                               for ( i = 0 ; i < styleContent.length ; i++ )\r
+                                               {\r
+                                                       content = styleContent[ i ][ 1 ];\r
+                                                       for ( r  = 0 ; r < replace.length ; r++ )\r
+                                                               content = content.replace( replace[ r ][ 0 ], replace[ r ][ 1 ] );\r
+\r
+                                                       styleNodes[ id ].$.sheet.addRule( styleContent[ i ][ 0 ], content );\r
+                                               }\r
+                                       }\r
+                                       else\r
+                                       {\r
+                                               content = styleContent;\r
+                                               for ( r  = 0 ; r < replace.length ; r++ )\r
+                                                       content = content.replace( replace[ r ][ 0 ], replace[ r ][ 1 ] );\r
+\r
+                                               if ( CKEDITOR.env.ie )\r
+                                                       styleNodes[ id ].$.styleSheet.cssText += content;\r
+                                               else\r
+                                                       styleNodes[ id ].$.innerHTML += content;\r
+                                       }\r
+                               }\r
+                       }\r
+\r
+                       var uiColorRegexp = /\$color/g;\r
+\r
+                       CKEDITOR.tools.extend( editor,\r
+                       {\r
+                               uiColor: null,\r
+\r
+                               getUiColor : function()\r
+                               {\r
+                                       return this.uiColor;\r
+                               },\r
+\r
+                               setUiColor : function( color )\r
+                               {\r
+                                       var cssContent,\r
+                                               uiStyle = getStylesheet( CKEDITOR.document ),\r
+                                               cssId = '.' + editor.id;\r
+\r
+                                       var cssSelectors =\r
+                                               [\r
+                                                       cssId + " .cke_wrapper",\r
+                                                       cssId + "_dialog .cke_dialog_contents",\r
+                                                       cssId + "_dialog a.cke_dialog_tab",\r
+                                                       cssId + "_dialog .cke_dialog_footer"\r
+                                               ].join( ',' );\r
+                                       var cssProperties = "background-color: $color !important;";\r
+\r
+                                       if ( CKEDITOR.env.webkit )\r
+                                               cssContent = [ [ cssSelectors, cssProperties ] ];\r
+                                       else\r
+                                               cssContent = cssSelectors + '{' + cssProperties + '}';\r
+\r
+                                       return ( this.setUiColor =\r
+                                               function( color )\r
+                                               {\r
+                                                       var replace = [ [ uiColorRegexp, color ] ];\r
+                                                       editor.uiColor = color;\r
+\r
+                                                       // Update general style.\r
+                                                       updateStylesheets( [ uiStyle ], cssContent, replace );\r
+\r
+                                                       // Update menu styles.\r
+                                                       updateStylesheets( uiColorMenus, uiColorMenuCss, replace );\r
+                                               })( color );\r
+                               }\r
+                       });\r
+\r
+                       editor.on( 'menuShow', function( event )\r
+                       {\r
+                               var panel = event.data[ 0 ];\r
+                               var iframe = panel.element.getElementsByTag( 'iframe' ).getItem( 0 ).getFrameDocument();\r
+\r
+                               // Add stylesheet if missing.\r
+                               if ( !iframe.getById( 'cke_ui_color' ) )\r
+                               {\r
+                                       var node = getStylesheet( iframe );\r
+                                       uiColorMenus.push( node );\r
+\r
+                                       var color = editor.getUiColor();\r
+                                       // Set uiColor for new menu.\r
+                                       if ( color )\r
+                                               updateStylesheets( [ node ], uiColorMenuCss, [ [ uiColorRegexp, color ] ] );\r
+                               }\r
+                       });\r
+\r
+                       // Apply UI color if specified in config.\r
+                       if ( editor.config.uiColor )\r
+                               editor.setUiColor( editor.config.uiColor );\r
+               }\r
+       };\r
+})() );\r
+\r
+(function()\r
+{\r
+       CKEDITOR.dialog ? dialogSetup() : CKEDITOR.on( 'dialogPluginReady', dialogSetup );\r
+\r
+       function dialogSetup()\r
+       {\r
+               CKEDITOR.dialog.on( 'resize', function( evt )\r
+                       {\r
+                               var data = evt.data,\r
+                                       width = data.width,\r
+                                       height = data.height,\r
+                                       dialog = data.dialog,\r
+                                       contents = dialog.parts.contents;\r
+\r
+                               if ( data.skin != 'kama' )\r
+                                       return;\r
+\r
+                               contents.setStyles(\r
+                                       {\r
+                                               width : width + 'px',\r
+                                               height : height + 'px'\r
+                                       });\r
+                       });\r
+       }\r
+})();\r
+\r
+/**\r
+ * The base user interface color to be used by the editor. Not all skins are\r
+ * compatible with this setting.\r
+ * @name CKEDITOR.config.uiColor\r
+ * @type String\r
+ * @default '' (empty)\r
+ * @example\r
+ * // Using a color code.\r
+ * config.uiColor = '#AADC6E';\r
+ * @example\r
+ * // Using an HTML color name.\r
+ * config.uiColor = 'Gold';\r
+ */\r