added support of shift+f10 for menu calling

This commit is contained in:
coderaiser 2012-08-20 07:04:07 -04:00
parent 1d95942afa
commit 50b0c11ff3
3 changed files with 45 additions and 23 deletions

View file

@ -1030,6 +1030,8 @@ CloudClient._changeLinks = function(pPanelID){
var lOnContextMenu_f = function(pEvent){
var lReturn_b = true;
CloudCommander.keyBinded = false;
/* getting html element
* currentTarget - DOM event
* target - jquery event

View file

@ -5,8 +5,10 @@ var CloudFunc;
CloudCommander.KEY = {
TAB : 9,
ENTER : 13,
ESC : 27,
PAGE_DOWN : 34,
PPAGE_UP : 33,
PAGE_DOWN : 34,
END : 35,
HOME : 36,
UP : 38,
@ -117,7 +119,6 @@ CloudCommander.keyBinding = (function(){
CloudCommander.Menu();
event.preventDefault();//запрет на дальнейшее действие
event.returnValue = false;
}
/* навигация по таблице файлов*/
/* если нажали клавишу вверх*/
@ -220,7 +221,7 @@ CloudCommander.keyBinding = (function(){
/* если нажали клавишу page up
* проматываем экран
*/
else if(event.keyCode === 33){
else if(event.keyCode === lKEY.PAGE_UP){
Util.getPanel().scrollByPages(-1);
lCurrentFile = Util.getCurrentFile();
@ -244,7 +245,7 @@ CloudCommander.keyBinding = (function(){
}
/* если нажали Enter - открываем папку*/
else if(event.keyCode === 13){
else if(event.keyCode === lKEY.ENTER){
lCurrentFile = Util.getCurrentFile();
/* если ненайдены выделенные файлы - выходим*/
if(!lCurrentFile)return;
@ -348,7 +349,7 @@ CloudCommander.keyBinding = (function(){
* устанавливаем все обработчики
* нажатий клавиш
*/
else if(event && event.keyCode === lKEY.S &&
else if(event.keyCode === lKEY.S &&
event.altKey){
/* обрабатываем нажатия на клавиши*/
CloudCommander.keyBinded = true;

View file

@ -6,7 +6,8 @@ CloudCommander.Menu = new CloudCommander.Util();
CloudCommander.Menu.dir = './lib/client/menu/';
/* enable and disable menu constant */
CloudCommander.Menu.ENABLED = false;
/* function return configureation
* for menu
@ -16,6 +17,7 @@ CloudCommander.Menu.getConfig = (function(){
return{
// define which elements trigger this menu
selector: 'li',
// define the elements of the menu
items: {
view: {name: 'View', callback: function(key, opt){
@ -26,6 +28,8 @@ CloudCommander.Menu.getConfig = (function(){
if(lViewer && lViewer.show)
lViewer.show();
}
CloudCommander.keyBinded = true;
}},
edit: {name: 'Edit', callback: function(key, opt){
@ -39,11 +43,14 @@ CloudCommander.Menu.getConfig = (function(){
lEditor.show();
}
CloudCommander.keyBinded = true;
}},
'delete': {name: 'Delete',
callback: function(key, opt){
console.log('delete menu item choosen');
CloudCommander.keyBinded = true;
}},
download: {name: 'Download',callback: function(key, opt){
@ -77,6 +84,8 @@ CloudCommander.Menu.getConfig = (function(){
responseText: 'Error: You trying to' +
'download same file to often'});
}
CloudCommander.keyBinded = true;
}}
}
};
@ -129,8 +138,9 @@ CloudCommander.Menu.set = (function(){
*/
document.onclick = function(pEvent){
if(pEvent && pEvent.x && pEvent.y){
if(lLayer){
var lLayer = lThis.getById('context-menu-layer');
var lLayer = lThis.getById('context-menu-layer');
if(lLayer){
var lStyle;
if(lLayer)
@ -163,6 +173,8 @@ CloudCommander.Menu.set = (function(){
*/
if(typeof lFunc_f === 'function')
lFunc_f();
CloudCommander.keyBinded = true;
}
}
};
@ -192,29 +204,36 @@ CloudCommander.Menu.show = (function(pParent, pPosition){
/* key binding function */
CloudCommander.Menu.Keys = (function(pPosition){
"use strict";
var lFunc = document.oncontextmenu;
document.oncontextmenu = function(){
if(typeof lFunc === 'function')
lFunc();
return CloudCommander.Menu.ENABLED;
};
var key_event = (function(){
return function(pEvent){
/* если клавиши можно обрабатывать */
if(CloudCommander.keyBinded)
/* if shift + F10 pressed */
if(pEvent.keyCode === CloudCommander.KEY.F10 &&
pEvent.shiftKey){
CloudCommander.Menu.show();
pEvent.preventDefault();
}
};
var key_event = (function(pEvent){
/* если клавиши можно обрабатывать */
if(pEvent.keyCode === CloudCommander.KEY.ESC)
CloudCommander.keyBinded = true;
/* if shift + F10 pressed */
if(pEvent.keyCode === CloudCommander.KEY.F10 &&
pEvent.shiftKey){
var lCurrent = this.getCurrentFile();
if(lCurrent)
$(lCurrent).contextMenu();
}
pEvent.preventDefault();
});
/* добавляем обработчик клавишь */
if (document.addEventListener)
document.addEventListener('keydown', key_event(),false);
document.addEventListener('keydown', key_event.bind(this),false);
else{
var lFunc;
else{
if(typeof document.onkeydown === 'function')
lFunc = document.onkeydown;
else lFunc = null;
document.onkeydown = function(){
if(lFunc)