From fe96f9e0a5337c286f52afc9b2d4c688bdf22589 Mon Sep 17 00:00:00 2001 From: Anand Chitipothu Date: Fri, 14 Nov 2008 15:01:01 +0530 Subject: [PATCH] setup key listeners --- GnuBook/GnuBook.js | 58 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) diff --git a/GnuBook/GnuBook.js b/GnuBook/GnuBook.js index 3002a2c..d05e755 100644 --- a/GnuBook/GnuBook.js +++ b/GnuBook/GnuBook.js @@ -71,6 +71,8 @@ GnuBook.prototype.init = function() { e.data.loadLeafs(); }); + this.setupKeyListeners(); + $(window).bind('resize', this, function(e) { //console.log('resize!'); if (1 == e.data.mode) { @@ -100,6 +102,45 @@ GnuBook.prototype.init = function() { } } +GnuBook.prototype.setupKeyListeners = function() { + var self = this; + + var KEY_PGUP = 33; + var KEY_PGDOWN = 34; + var KEY_END = 35; + var KEY_HOME = 36; + + var KEY_LEFT = 37; + var KEY_UP = 38; + var KEY_RIGHT = 39; + var KEY_DOWN = 40; + + $(window).keypress(function(e) { + switch(e.keyCode) { + case KEY_PGUP: + self.prev(); + break; + case KEY_PGDOWN: + self.next(); + break; + case KEY_END: + self.end(); + break; + case KEY_HOME: + self.home(); + break; + case KEY_UP: + case KEY_LEFT: + if (2 == self.mode) + self.prev(); + case KEY_DOWN: + case KEY_RIGHT: + if (2 == self.mode) + self.next(); + } + }); +} + // drawLeafs() //______________________________________________________________________________ GnuBook.prototype.drawLeafs = function() { @@ -754,6 +795,23 @@ GnuBook.prototype.prev = function() { } } +GnuBook.prototype.home = function() { + if (2 == this.mode) { + this.jumpToIndex(2); + } + else { + this.jumpToIndex(0); + } +} + +GnuBook.prototype.end = function() { + if (2 == this.mode) { + this.jumpToIndex(this.numLeafs-5); + } + else { + this.jumpToIndex(this.numLeafs-1); + } +} // flipBackToIndex() //______________________________________________________________________________ -- 2.20.1