+++ /dev/null
-/*\r
-Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.\r
-For licensing, see LICENSE.html or http://ckeditor.com/license\r
-*/\r
-\r
-CKEDITOR.dialog.add( 'a11yHelp', function( editor )\r
-{\r
- var lang = editor.lang.accessibilityHelp,\r
- id = CKEDITOR.tools.getNextId();\r
-\r
- // CharCode <-> KeyChar.\r
- var keyMap =\r
- {\r
- 8 : "BACKSPACE",\r
- 9 : "TAB" ,\r
- 13 : "ENTER" ,\r
- 16 : "SHIFT" ,\r
- 17 : "CTRL" ,\r
- 18 : "ALT" ,\r
- 19 : "PAUSE" ,\r
- 20 : "CAPSLOCK" ,\r
- 27 : "ESCAPE" ,\r
- 33 : "PAGE UP" ,\r
- 34 : "PAGE DOWN" ,\r
- 35 : "END" ,\r
- 36 : "HOME" ,\r
- 37 : "LEFT ARROW" ,\r
- 38 : "UP ARROW" ,\r
- 39 : "RIGHT ARROW" ,\r
- 40 : "DOWN ARROW" ,\r
- 45 : "INSERT" ,\r
- 46 : "DELETE" ,\r
- 91 : "LEFT WINDOW KEY" ,\r
- 92 : "RIGHT WINDOW KEY" ,\r
- 93 : "SELECT KEY" ,\r
- 96 : "NUMPAD 0" ,\r
- 97 : "NUMPAD 1" ,\r
- 98 : "NUMPAD 2" ,\r
- 99 : "NUMPAD 3" ,\r
- 100 : "NUMPAD 4" ,\r
- 101 : "NUMPAD 5" ,\r
- 102 : "NUMPAD 6" ,\r
- 103 : "NUMPAD 7" ,\r
- 104 : "NUMPAD 8" ,\r
- 105 : "NUMPAD 9" ,\r
- 106 : "MULTIPLY" ,\r
- 107 : "ADD" ,\r
- 109 : "SUBTRACT" ,\r
- 110 : "DECIMAL POINT" ,\r
- 111 : "DIVIDE" ,\r
- 112 : "F1" ,\r
- 113 : "F2" ,\r
- 114 : "F3" ,\r
- 115 : "F4" ,\r
- 116 : "F5" ,\r
- 117 : "F6" ,\r
- 118 : "F7" ,\r
- 119 : "F8" ,\r
- 120 : "F9" ,\r
- 121 : "F10" ,\r
- 122 : "F11" ,\r
- 123 : "F12" ,\r
- 144 : "NUM LOCK" ,\r
- 145 : "SCROLL LOCK" ,\r
- 186 : "SEMI-COLON" ,\r
- 187 : "EQUAL SIGN" ,\r
- 188 : "COMMA" ,\r
- 189 : "DASH" ,\r
- 190 : "PERIOD" ,\r
- 191 : "FORWARD SLASH" ,\r
- 192 : "GRAVE ACCENT" ,\r
- 219 : "OPEN BRACKET" ,\r
- 220 : "BACK SLASH" ,\r
- 221 : "CLOSE BRAKET" ,\r
- 222 : "SINGLE QUOTE"\r
- };\r
-\r
- // Modifier keys override.\r
- keyMap[ CKEDITOR.ALT ] = 'ALT';\r
- keyMap[ CKEDITOR.SHIFT ] = 'SHIFT';\r
- keyMap[ CKEDITOR.CTRL ] = 'CTRL';\r
-\r
- // Sort in desc.\r
- var modifiers = [ CKEDITOR.ALT, CKEDITOR.SHIFT, CKEDITOR.CTRL ];\r
-\r
- function representKeyStroke( keystroke )\r
- {\r
- var quotient,\r
- modifier,\r
- presentation = [];\r
-\r
- for ( var i = 0; i < modifiers.length; i++ )\r
- {\r
- modifier = modifiers[ i ];\r
- quotient = keystroke / modifiers[ i ];\r
- if ( quotient > 1 && quotient <= 2 )\r
- {\r
- keystroke -= modifier;\r
- presentation.push( keyMap[ modifier ] );\r
- }\r
- }\r
-\r
- presentation.push( keyMap[ keystroke ]\r
- || String.fromCharCode( keystroke ) );\r
-\r
- return presentation.join( '+' );\r
- }\r
-\r
- var variablesPattern = /\$\{(.*?)\}/g;\r
- function replaceVariables( match, name )\r
- {\r
- var keystrokes = editor.config.keystrokes,\r
- definition,\r
- length = keystrokes.length;\r
-\r
- for ( var i = 0; i < length; i++ )\r
- {\r
- definition = keystrokes[ i ];\r
- if ( definition[ 1 ] == name )\r
- break;\r
- }\r
- return representKeyStroke( definition[ 0 ] );\r
- }\r
-\r
- // Create the help list directly from lang file entries.\r
- function buildHelpContents()\r
- {\r
- var pageTpl = '<div class="cke_accessibility_legend" role="document" aria-labelledby="' + id + '_arialbl" tabIndex="-1">%1</div>' +\r
- '<span id="' + id + '_arialbl" class="cke_voice_label">' + lang.contents + ' </span>',\r
- sectionTpl = '<h1>%1</h1><dl>%2</dl>',\r
- itemTpl = '<dt>%1</dt><dd>%2</dd>';\r
-\r
- var pageHtml = [],\r
- sections = lang.legend,\r
- sectionLength = sections.length;\r
-\r
- for ( var i = 0; i < sectionLength; i++ )\r
- {\r
- var section = sections[ i ],\r
- sectionHtml = [],\r
- items = section.items,\r
- itemsLength = items.length;\r
-\r
- for ( var j = 0; j < itemsLength; j++ )\r
- {\r
- var item = items[ j ],\r
- itemHtml;\r
- itemHtml = itemTpl.replace( '%1', item.name ).\r
- replace( '%2', item.legend.replace( variablesPattern, replaceVariables ) );\r
- sectionHtml.push( itemHtml );\r
- }\r
-\r
- pageHtml.push( sectionTpl.replace( '%1', section.name ).replace( '%2', sectionHtml.join( '' ) ) );\r
- }\r
-\r
- return pageTpl.replace( '%1', pageHtml.join( '' ) );\r
- }\r
-\r
- return {\r
- title : lang.title,\r
- minWidth : 600,\r
- minHeight : 400,\r
- contents : [\r
- {\r
- id : 'info',\r
- label : editor.lang.common.generalTab,\r
- expand : true,\r
- elements :\r
- [\r
- {\r
- type : 'html',\r
- id : 'legends',\r
- style : 'white-space:normal;',\r
- focus : function() {},\r
- html : buildHelpContents() +\r
- '<style type="text/css">' +\r
- '.cke_accessibility_legend' +\r
- '{' +\r
- 'width:600px;' +\r
- 'height:400px;' +\r
- 'padding-right:5px;' +\r
- 'overflow-y:auto;' +\r
- 'overflow-x:hidden;' +\r
- '}' +\r
- // Some adjustments are to be done for IE6 and Quirks to work "properly" (#5757)\r
- '.cke_browser_quirks .cke_accessibility_legend,' +\r
- '.cke_browser_ie6 .cke_accessibility_legend' +\r
- '{' +\r
- 'height:390px' +\r
- '}' +\r
- // Override non-wrapping white-space rule in reset css.\r
- '.cke_accessibility_legend *' +\r
- '{' +\r
- 'white-space:normal;' +\r
- '}' +\r
- '.cke_accessibility_legend h1' +\r
- '{' +\r
- 'font-size: 20px;' +\r
- 'border-bottom: 1px solid #AAA;' +\r
- 'margin: 5px 0px 15px;' +\r
- '}' +\r
- '.cke_accessibility_legend dl' +\r
- '{' +\r
- 'margin-left: 5px;' +\r
- '}' +\r
- '.cke_accessibility_legend dt' +\r
- '{' +\r
- 'font-size: 13px;' +\r
- 'font-weight: bold;' +\r
- '}' +\r
- '.cke_accessibility_legend dd' +\r
- '{' +\r
- 'margin:10px' +\r
- '}' +\r
- '</style>'\r
- }\r
- ]\r
- }\r
- ],\r
- buttons : [ CKEDITOR.dialog.cancelButton ]\r
- };\r
-});\r