From b4a63409f54b9c324d1baf0f153fe615a21502aa Mon Sep 17 00:00:00 2001 From: Hisham Muhammad Date: Wed, 3 Mar 2010 21:13:33 +0000 Subject: * Add Bash/emacs style navigation keys (thanks to Daniel Schuler) --- Panel.c | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'Panel.c') diff --git a/Panel.c b/Panel.c index 438cf614..f4f286e5 100644 --- a/Panel.c +++ b/Panel.c @@ -64,6 +64,10 @@ char* PANEL_CLASS = "Panel"; #define PANEL_CLASS NULL #endif +#define KEY_CTRLN 0016 /* control-n key */ +#define KEY_CTRLP 0020 /* control-p key */ +#define KEY_CTRLF 0006 /* control-f key */ +#define KEY_CTRLB 0002 /* control-b key */ Panel* Panel_new(int x, int y, int w, int h, char* type, bool owner, Object_Compare compare) { Panel* this; @@ -330,10 +334,12 @@ bool Panel_onKey(Panel* this, int key) { assert (this != NULL); switch (key) { case KEY_DOWN: + case KEY_CTRLN: if (this->selected + 1 < Vector_size(this->items)) this->selected++; return true; case KEY_UP: + case KEY_CTRLP: if (this->selected > 0) this->selected--; return true; @@ -360,12 +366,14 @@ bool Panel_onKey(Panel* this, int key) { return true; #endif case KEY_LEFT: + case KEY_CTRLB: if (this->scrollH > 0) { this->scrollH -= 5; this->needsRedraw = true; } return true; case KEY_RIGHT: + case KEY_CTRLF: this->scrollH += 5; this->needsRedraw = true; return true; -- cgit v1.2.3