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