Index: _source/core/editor.js =================================================================== --- _source/core/editor.js (revision 3491) +++ _source/core/editor.js (working copy) @@ -270,6 +270,9 @@ if ( editor.config.autoUpdateElement ) attachToForm( editor ); + + if ( typeof( CKEDITOR.highContrast ) == 'function' && CKEDITOR.highContrast() ) + editor.container.getFirst().$.className = CKEDITOR.env.cssClass; }); }; Index: _source/core/highcontrast.js =================================================================== --- _source/core/highcontrast.js (revision 0) +++ _source/core/highcontrast.js (revision 0) @@ -0,0 +1,32 @@ +/* +Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.html or http://ckeditor.com/license +*/ + +/** + * @fileOverview Detects whether the editor is in high contrast mode. + */ + +(function() +{ + var imagePath = CKEDITOR.basePath + 'images/spacer.gif'; + var hcDetect; + + CKEDITOR.highContrast = function() + { + if ( !hcDetect ) + { + hcDetect = CKEDITOR.dom.element.createFromHtml( '
', CKEDITOR.document ); + hcDetect.appendTo( CKEDITOR.document.getBody() ); + } + + var retval = ( hcDetect.getComputedStyle( 'background-image' ) == 'none' ); + + if ( retval ) + CKEDITOR.env.cssClass += ' cke_highcontrast'; + + return ( CKEDITOR.highContrast = retval ); + }; +})(); Index: _source/core/loader.js =================================================================== --- _source/core/loader.js (revision 3496) +++ _source/core/loader.js (working copy) @@ -50,6 +50,7 @@ 'core/env' : [], 'core/event' : [], 'core/focusmanager' : [], + 'core/highcontrast' : [ 'core/dom/element' ], 'core/htmlparser' : [], 'core/htmlparser/comment' : [ 'core/htmlparser' ], 'core/htmlparser/element' : [ 'core/htmlparser', 'core/htmlparser/fragment' ], @@ -64,7 +65,7 @@ 'core/resourcemanager' : [ 'core/scriptloader', 'core/tools' ], 'core/scriptloader' : [ 'core/dom/element', 'core/env' ], 'core/skins' : [ 'core/imagecacher', 'core/scriptloader' ], - 'core/themes' : [ 'core/resourcemanager' ], + 'core/themes' : [ 'core/resourcemanager', 'core/highcontrast' ], 'core/tools' : [ 'core/env' ], 'core/ui' : [], 'core/xml' : [ 'core/env' ] Index: _source/skins/office2003/richcombo.css =================================================================== --- _source/skins/office2003/richcombo.css (revision 3491) +++ _source/skins/office2003/richcombo.css (working copy) @@ -23,6 +23,12 @@ opacity: 0.70; /* Safari, Opera and Mozilla */ } +.cke_skin_office2003 .cke_highcontrast .cke_rcombo a +{ + filter: alpha(opacity=100); /* IE */ + opacity: 1.0; /* Safari, Opera and Mozilla */ +} + .cke_skin_office2003 .cke_rcombo .cke_label { display: inline-block; @@ -38,6 +44,12 @@ _background-repeat: repeat-x; } +.cke_skin_office2003 .cke_highcontrast .cke_rcombo .cke_label +{ + filter: alpha(opacity=100); + opacity: 1.0; +} + .cke_skin_office2003 .cke_rtl .cke_rcombo .cke_label { padding-right: 4px; @@ -171,6 +183,12 @@ opacity: 0.3; /* Safari, Opera and Mozilla */ } +.cke_skin_office2003 .cke_highcontrast .cke_rcombo .cke_disabled .cke_label +{ + filter: alpha(opacity=70); + opacity: 0.7; +} + .cke_skin_office2003 .cke_rcombo .cke_disabled .cke_text, .cke_skin_office2003 .cke_rcombo .cke_disabled .cke_openbutton { @@ -178,6 +196,13 @@ opacity: 0.5; /* Safari, Opera and Mozilla */ } +.cke_skin_office2003 .cke_highcontrast .cke_rcombo .cke_disabled .cke_text, +.cke_skin_office2003 .cke_highcontrast .cke_rcombo .cke_disabled .cke_openbutton +{ + filter: alpha(opacity=80); + opacity: 0.8; +} + .cke_skin_office2003 .cke_rcombo .cke_disabled .cke_text { color: #fff; Index: _source/skins/office2003/toolbar.css =================================================================== --- _source/skins/office2003/toolbar.css (revision 3491) +++ _source/skins/office2003/toolbar.css (working copy) @@ -134,6 +134,13 @@ _margin: 3px 1px 1px 1px; } +.cke_skin_office2003 .cke_highcontrast .cke_button a, +.cke_skin_office2003 .cke_highcontrast .cke_button a.cke_off +{ + opacity: 1.0; + filter: alpha(opacity=100); +} + .cke_skin_office2003 .cke_button a.cke_on { border: solid 1px #316ac5; @@ -144,6 +151,12 @@ _margin: 2px 0 0 0; } +.cke_skin_office2003 .cke_highcontrast .cke_button a.cke_on .cke_label +{ + font-weight: bolder; + text-decoration: underline; +} + .cke_skin_office2003 .cke_button a.cke_disabled, .cke_skin_office2003 .cke_button a:hover.cke_disabled, .cke_skin_office2003 .cke_button a:focus.cke_disabled, @@ -158,6 +171,13 @@ _margin: 3px 1px 1px 1px; } +.cke_skin_office2003 .cke_highcontrast .cke_button a.cke_disabled, +.cke_skin_office2003 .cke_browser_ie.cke_highcontrast a:hover.cke_button .cke_disabled +{ + filter: alpha(opacity=60); + opacity: 0.6; +} + .cke_skin_office2003 .cke_button a:hover.cke_on, .cke_skin_office2003 .cke_button a:focus.cke_on, .cke_skin_office2003 .cke_button a:active.cke_on, /* IE */ @@ -196,6 +216,22 @@ _background-repeat: repeat-x; } +.cke_skin_office2003 .cke_highcontrast .cke_button .cke_label +{ + display: inline-block; +} + +.cke_skin_office2003 .cke_highcontrast .cke_button .cke_icon +{ + display: none; +} + +.cke_skin_office2003 .cke_accessibility +{ + position: absolute; + top: -1000000px; +} + .cke_skin_office2003 .cke_button a:hover .cke_label { _background-color: #dff1ff; @@ -287,6 +323,11 @@ float: left; } +.cke_skin_office2003 .cke_browser_gecko.cke_highcontrast .cke_button .cke_icon +{ + display: none; +} + .cke_skin_office2003 .cke_rtl.cke_browser_gecko .cke_toolbar, .cke_skin_office2003 .cke_rtl.cke_browser_gecko .cke_button a, .cke_skin_office2003 .cke_rtl.cke_browser_gecko .cke_button a.cke_off, Index: _source/skins/v2/richcombo.css =================================================================== --- _source/skins/v2/richcombo.css (revision 3491) +++ _source/skins/v2/richcombo.css (working copy) @@ -21,6 +21,12 @@ opacity: 0.70; /* Safari, Opera and Mozilla */ } +.cke_skin_v2 .cke_highcontrast .cke_rcombo a +{ + filter: alpha(opacity=100); /* IE */ + opacity: 1.0; /* Safari, Opera and Mozilla */ +} + .cke_skin_v2 .cke_rcombo .cke_label { display: inline-block; @@ -33,6 +39,12 @@ background-color: #f1f1e3; /* Because of IE6+ClearType */ } +.cke_skin_v2 .cke_highcontrast .cke_rcombo .cke_label +{ + filter: alpha(opacity=100); + opacity: 1.0; +} + .cke_skin_v2 .cke_rtl .cke_rcombo .cke_label { padding-right: 4px; @@ -166,6 +178,12 @@ opacity: 0.3; /* Safari, Opera and Mozilla */ } +.cke_skin_v2 .cke_highcontrast .cke_rcombo .cke_disabled .cke_label +{ + filter: alpha(opacity=70); + opacity: 0.7; +} + .cke_skin_v2 .cke_rcombo .cke_disabled .cke_text, .cke_skin_v2 .cke_rcombo .cke_disabled .cke_openbutton { @@ -173,6 +191,13 @@ opacity: 0.5; /* Safari, Opera and Mozilla */ } +.cke_skin_v2 .cke_highcontrast .cke_rcombo .cke_disabled .cke_text, +.cke_skin_v2 .cke_highcontrast .cke_rcombo .cke_disabled .cke_openbutton +{ + filter: alpha(opacity=80); + opacity: 0.8; +} + .cke_skin_v2 .cke_rcombo .cke_disabled .cke_text { color: #fff; Index: _source/skins/v2/toolbar.css =================================================================== --- _source/skins/v2/toolbar.css (revision 3491) +++ _source/skins/v2/toolbar.css (working copy) @@ -110,14 +110,26 @@ height: 18px; } +.cke_skin_v2 .cke_highcontrast .cke_button a, +.cke_skin_v2 .cke_highcontrast .cke_button a.cke_off +{ + opacity: 1.0; + filter: alpha(opacity=100); +} + .cke_skin_v2 .cke_button a.cke_on { - border: solid 1px #316ac5; + border: solid 3px #316ac5; background-color: #a3d7ff; filter: alpha(opacity=100); /* IE */ opacity: 1; /* Safari, Opera and Mozilla */ } +.cke_skin_v2 .cke_highcontrast .cke_button a.cke_on +{ + padding: 0 2px; +} + .cke_skin_v2 .cke_button a.cke_disabled, .cke_skin_v2 .cke_browser_ie a:hover.cke_button .cke_disabled { @@ -127,6 +139,13 @@ opacity : 0.3; /* Safari, Opera and Mozilla */ } +.cke_skin_v2 .cke_highcontrast .cke_button a.cke_disabled, +.cke_skin_v2 .cke_browser_ie.cke_highcontrast a:hover.cke_button .cke_disabled +{ + filter: alpha(opacity=60); + opacity: 0.6; +} + .cke_skin_v2 .cke_button a:hover.cke_on, .cke_skin_v2 .cke_button a:focus.cke_on, .cke_skin_v2 .cke_button a:active.cke_on, /* IE */ @@ -138,6 +157,7 @@ background-color: #dff1ff; filter: alpha(opacity=100); /* IE */ opacity: 1; /* Safari, Opera and Mozilla */ + padding: 2px 4px; } .cke_skin_v2 .cke_button .cke_icon @@ -158,6 +178,16 @@ vertical-align: 3px; } +.cke_skin_v2 .cke_highcontrast .cke_button .cke_label +{ + display: inline-block; +} + +.cke_skin_v2 .cke_highcontrast .cke_button .cke_icon +{ + display: none; +} + .cke_skin_v2 .cke_accessibility { position: absolute; @@ -242,6 +272,11 @@ float: left; } +.cke_skin_v2 .cke_browser_gecko.cke_highcontrast .cke_button .cke_icon +{ + display: none; +} + .cke_skin_v2 .cke_rtl.cke_browser_gecko .cke_toolbar, .cke_skin_v2 .cke_rtl.cke_browser_gecko .cke_button a, .cke_skin_v2 .cke_rtl.cke_browser_gecko .cke_button a.cke_off,