--- /dev/null
+/*\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