From 3d08bb8dc3772c32a0c1c388a4de098954a5cc65 Mon Sep 17 00:00:00 2001 From: Martin Stubenschrott Date: Wed, 20 Jun 2007 14:07:18 +0000 Subject: [PATCH] keyToString -> event.toString() --- chrome/content/vimperator/ui.js | 4 +- chrome/content/vimperator/vimperator.js | 291 ++++++++---------------- 2 files changed, 99 insertions(+), 196 deletions(-) diff --git a/chrome/content/vimperator/ui.js b/chrome/content/vimperator/ui.js index dcc76f50..33910a16 100644 --- a/chrome/content/vimperator/ui.js +++ b/chrome/content/vimperator/ui.js @@ -264,7 +264,7 @@ function CommandLine () else { //event.stopPropagation(); // XXX: doesnt seem to work - //event.preventDefault(); // so we need to use the hack + //event.preventDefault(); // so we need to use the hack below --mst // NOTE: echo_allowed is a misleading name here, actually this flag is set // so that we don't save a history entry if the user clicks into the text field @@ -280,7 +280,7 @@ function CommandLine () } else if(event.type == "keypress") { - var key = keyToString(event); + var key = event.toString(); /* user pressed ENTER to carry out a command */ if (key == "" || key == "" || key == "") { diff --git a/chrome/content/vimperator/vimperator.js b/chrome/content/vimperator/vimperator.js index 3a860afa..f82695f2 100644 --- a/chrome/content/vimperator/vimperator.js +++ b/chrome/content/vimperator/vimperator.js @@ -325,7 +325,7 @@ function Vimperator() //{{{1 /** * logs any object to the javascript error console - * also prints all properties of thie object + * also prints all properties of the object */ this.logObject = function(object, level) { @@ -452,14 +452,14 @@ function Events() //{{{1 } }; + this.onKeyPress = function(event) { if (event.type != "keypress") return false; - // change the event to a usable string representation - var key = keyToString(event); - //alert(key); + var key = event.toString() + //alert(key); if (key == null) return false; // sometimes the non-content area has focus, making our keys not work @@ -762,6 +762,98 @@ function Events() //{{{1 } +// this function converts the given event to +// a keycode which can be used in mappings +// e.g. pressing ctrl+n would result in the string "" +// null if unknown key +KeyboardEvent.prototype.toString = function () +{ + var key = String.fromCharCode(this.charCode); + var modifier = ""; + if (this.ctrlKey) + modifier += "C-"; + if (this.altKey) + modifier += "A-"; + if (this.metaKey) + modifier += "M-"; + + if (this.charCode == 0) + { + if (this.shiftKey) + modifier += "S-"; + if (this.keyCode == KeyEvent.DOM_VK_ESCAPE) + key = "Esc"; + else if (this.keyCode == KeyEvent.DOM_VK_RETURN) + key = "Return"; + else if (this.keyCode == KeyEvent.DOM_VK_TAB) + key = "Tab"; + else if (this.keyCode == KeyEvent.DOM_VK_DELETE) + key = "Del"; + else if (this.keyCode == KeyEvent.DOM_VK_BACK_SPACE) + key = "BS"; + else if (this.keyCode == KeyEvent.DOM_VK_HOME) + key = "Home"; + else if (this.keyCode == KeyEvent.DOM_VK_END) + key = "End"; + else if (this.keyCode == KeyEvent.DOM_VK_LEFT) + key = "Left"; + else if (this.keyCode == KeyEvent.DOM_VK_RIGHT) + key = "Right"; + else if (this.keyCode == KeyEvent.DOM_VK_UP) + key = "Up"; + else if (this.keyCode == KeyEvent.DOM_VK_DOWN) + key = "Down"; + else if (this.keyCode == KeyEvent.DOM_VK_PAGE_UP) + key = "PageUp"; + else if (this.keyCode == KeyEvent.DOM_VK_PAGE_DOWN) + key = "PageDown"; + else if (this.keyCode == KeyEvent.DOM_VK_F1) + key = "F1"; + else if (this.keyCode == KeyEvent.DOM_VK_F2) + key = "F2"; + else if (this.keyCode == KeyEvent.DOM_VK_F3) + key = "F3"; + else if (this.keyCode == KeyEvent.DOM_VK_F4) + key = "F4"; + else if (this.keyCode == KeyEvent.DOM_VK_F5) + key = "F5"; + else if (this.keyCode == KeyEvent.DOM_VK_F6) + key = "F6"; + else if (this.keyCode == KeyEvent.DOM_VK_F7) + key = "F7"; + else if (this.keyCode == KeyEvent.DOM_VK_F8) + key = "F8"; + else if (this.keyCode == KeyEvent.DOM_VK_F9) + key = "F9"; + else if (this.keyCode == KeyEvent.DOM_VK_F10) + key = "F10"; + else if (this.keyCode == KeyEvent.DOM_VK_F11) + key = "F11"; + else if (this.keyCode == KeyEvent.DOM_VK_F12) + key = "F12"; + else + return null; + } + + // special handling of the Space key + if (this.charCode == 32) + { + if (this.shiftKey) + modifier += "S-"; + key = "Space"; + } + + // a normal key like a, b, c, 0, etc. + if (this.charCode > 0) + { + if (modifier.length > 0 || this.charCode == 32) + return "<" + modifier + key + ">"; + else + return key; + } + else // a key like F1 is always enclosed in < and > + return "<" + modifier + key + ">"; +} /** provides functions for working with tabs * XXX: ATTENTION: We are planning to move to the FUEL API once we switch to @@ -946,13 +1038,9 @@ function Tabs() //{{{1 */ } - - - //////////////////////////////////////////////////////////////////////// -// text input functions /////////////////////////////////////////// {{{1 +// DOM related helper functions /////////////////////////////////// {{{1 //////////////////////////////////////////////////////////////////////// -//TODO: convert all these functions to methods function isFormElemFocused() { var elt = document.commandDispatcher.focusedElement; @@ -972,189 +1060,4 @@ function isFormElemFocused() return false; } - -//////////////////////////////////////////////////////////////////////// -// logging //////////////////////////////////////////////////////// {{{1 -//////////////////////////////////////////////////////////////////////// - -var gConsoleService = Components.classes['@mozilla.org/consoleservice;1'] - .getService(Components.interfaces.nsIConsoleService); - -/** - * logs any object to the javascript error console - * also prints all properties of thie object - */ -function logMessage(msg) -{ - gConsoleService.logStringMessage('vimperator: ' + msg); -} - -/** - * logs any object to the javascript error console - * also prints all properties of thie object - */ -function logObject(object) -{ - if (typeof object != 'object') - return; - - var string = object + '::\n'; - for (var i in object) - { - var value; - try { - var value = object[i]; - } catch (e) { value = '' } - - string += i + ': ' + value + '\n'; - } - logMessage(string); -} - - -//////////////////////////////////////////////////////////////////////// -// misc helper functions ////////////////////////////////////////// {{{1 -//////////////////////////////////////////////////////////////////////// -// this function gets an event as the input and converts it to -// a keycode which can be used in mappings -// e.g. pressing ctrl+n would result in the string "" -// null if unknown key -function keyToString(event) -{ - var key = String.fromCharCode(event.charCode); - var modifier = ""; - if (event.ctrlKey) - modifier += "C-"; - if (event.altKey) - modifier += "A-"; - if (event.metaKey) - modifier += "M-"; - - if (event.charCode == 0) - { - if (event.shiftKey) - modifier += "S-"; - if (event.keyCode == KeyEvent.DOM_VK_ESCAPE) - key = "Esc"; - else if (event.keyCode == KeyEvent.DOM_VK_RETURN) - key = "Return"; - else if (event.keyCode == KeyEvent.DOM_VK_TAB) - key = "Tab"; - else if (event.keyCode == KeyEvent.DOM_VK_DELETE) - key = "Del"; - else if (event.keyCode == KeyEvent.DOM_VK_BACK_SPACE) - key = "BS"; - else if (event.keyCode == KeyEvent.DOM_VK_HOME) - key = "Home"; - else if (event.keyCode == KeyEvent.DOM_VK_END) - key = "End"; - else if (event.keyCode == KeyEvent.DOM_VK_LEFT) - key = "Left"; - else if (event.keyCode == KeyEvent.DOM_VK_RIGHT) - key = "Right"; - else if (event.keyCode == KeyEvent.DOM_VK_UP) - key = "Up"; - else if (event.keyCode == KeyEvent.DOM_VK_DOWN) - key = "Down"; - else if (event.keyCode == KeyEvent.DOM_VK_PAGE_UP) - key = "PageUp"; - else if (event.keyCode == KeyEvent.DOM_VK_PAGE_DOWN) - key = "PageDown"; - else if (event.keyCode == KeyEvent.DOM_VK_F1) - key = "F1"; - else if (event.keyCode == KeyEvent.DOM_VK_F2) - key = "F2"; - else if (event.keyCode == KeyEvent.DOM_VK_F3) - key = "F3"; - else if (event.keyCode == KeyEvent.DOM_VK_F4) - key = "F4"; - else if (event.keyCode == KeyEvent.DOM_VK_F5) - key = "F5"; - else if (event.keyCode == KeyEvent.DOM_VK_F6) - key = "F6"; - else if (event.keyCode == KeyEvent.DOM_VK_F7) - key = "F7"; - else if (event.keyCode == KeyEvent.DOM_VK_F8) - key = "F8"; - else if (event.keyCode == KeyEvent.DOM_VK_F9) - key = "F9"; - else if (event.keyCode == KeyEvent.DOM_VK_F10) - key = "F10"; - else if (event.keyCode == KeyEvent.DOM_VK_F11) - key = "F11"; - else if (event.keyCode == KeyEvent.DOM_VK_F12) - key = "F12"; - else - return null; - } - - // special handling of the Space key - if (event.charCode == 32) - { - if (event.shiftKey) - modifier += "S-"; - key = "Space"; - } - - // a normal key like a, b, c, 0, etc. - if (event.charCode > 0) - { - if (modifier.length > 0 || event.charCode == 32) - return "<" + modifier + key + ">"; - else - return key; - } - else // a key like F1 is always enclosed in < and > - return "<" + modifier + key + ">"; -} - -//////////////////////////////////////////////////////////////////////// -// DOM related helper functsion /////////////////////////////////// {{{1 -//////////////////////////////////////////////////////////////////////// -// Handle frames if they're present -function getPageLinkNodes() -{ - var frames = window._content.frames; - - // The main content may have link nodes as well as it's frames. - var nodes = getLinkNodes(_content.content.document); - var tmp; - for (var i=0; i