##// END OF EJS Templates
add an humanize function that prettify shortcut on macos
Matthias Bussonnier -
Show More
@@ -66,6 +66,78 b' define(['
66 { shortcut: cmd_ctrl + "y", help:"redo" },
66 { shortcut: cmd_ctrl + "y", help:"redo" },
67 ].concat( platform_specific );
67 ].concat( platform_specific );
68
68
69 function humanize_key(key){
70 if (platform === 'MacOS'){
71 if (key.length === 1){
72 key = key.toUpperCase();
73 }
74 var d= {
75 // all these are unicode, will probably display badly on anything except macs.
76 // these are the standard symbol that are used in MacOS native menus
77 'cmd':'⌘',
78 'shift':'⇧',
79 'alt':'βŒ₯',
80 'up':'↑',
81 'down':'↓',
82 'left':'←',
83 'right':'β†’',
84 'eject':'⏏',
85 'tab':'β‡₯',
86 'capslock':'⇧',
87 'esc':'βŽ‹',
88 'ctrl':'βŒƒ',
89 'enter':'↩',
90 'pageup':'β‡ž',
91 'pagedown':'β‡Ÿ',
92 'home':'β†–',
93 'end':'β†˜',
94 'altenter':'⌀',
95 'space':'␣',
96 'backspace':'⇀',
97 'apple':'ο£Ώ',
98 };
99 } else {
100 var d = {
101 'shift':'Shift',
102 'alt':'Alt',
103 'up':'Up',
104 'down':'Down',
105 'left':'Left',
106 'right':'Right',
107 'tab':'Tab',
108 'capslock':'Caps Lock',
109 'esc':'Esc',
110 'ctrl':'Ctrl',
111 'enter':'Enter',
112 'pageup':'Page Up',
113 'pagedown':'Page Down',
114 'home':'Home',
115 'end':'End',
116 'space':'Space',
117 'backspace,':'Backaspace',
118 };
119 }
120 return d[key.toLowerCase()]||key;
121 }
122
123 function humanize_sequence(sequence){
124 var joinchar = '-';
125 if (platform === 'MacOS'){
126 joinchar = ' ';
127 }
128 var hum = _.map(sequence.replace(/meta/g, 'cmd').split(','), humanize_shortcut).join(joinchar);
129 return hum;
130 }
131
132 function humanize_shortcut(shortcut){
133 var joinchar = '-';
134 if (platform === 'MacOS'){
135 joinchar = '';
136 }
137 var sh = _.map(shortcut.split('-'), humanize_key ).join(joinchar);
138 return sh;
139 }
140
69
141
70 QuickHelp.prototype.show_keyboard_shortcuts = function () {
142 QuickHelp.prototype.show_keyboard_shortcuts = function () {
71 /**
143 /**
@@ -157,7 +229,12 b' define(['
157
229
158 var build_one = function (s) {
230 var build_one = function (s) {
159 var help = s.help;
231 var help = s.help;
160 var shortcut = prettify(s.shortcut);
232 var shortcut = '';
233 if(s.shortcut){
234 shortcut = prettify(humanize_sequence(s.shortcut));
235 } else {
236 console.error('[debug] - nothing for', s)
237 }
161 return $('<div>').addClass('quickhelp').
238 return $('<div>').addClass('quickhelp').
162 append($('<span/>').addClass('shortcut_key').append($(shortcut))).
239 append($('<span/>').addClass('shortcut_key').append($(shortcut))).
163 append($('<span/>').addClass('shortcut_descr').text(' : ' + help));
240 append($('<span/>').addClass('shortcut_descr').text(' : ' + help));
General Comments 0
You need to be logged in to leave comments. Login now