diff options
author | Hisham Muhammad <hisham@gobolinux.org> | 2010-03-03 21:13:33 +0000 |
---|---|---|
committer | Hisham Muhammad <hisham@gobolinux.org> | 2010-03-03 21:13:33 +0000 |
commit | b4a63409f54b9c324d1baf0f153fe615a21502aa (patch) | |
tree | a017ffab35707ff1335db6a6efba4017fba00dbd /Panel.c | |
parent | 282f16c4b8df9fb5bac6c7952afe5b49c1b4dd11 (diff) |
* Add Bash/emacs style navigation keys
(thanks to Daniel Schuler)
Diffstat (limited to 'Panel.c')
-rw-r--r-- | Panel.c | 8 |
1 files changed, 8 insertions, 0 deletions
@@ -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; |