-const wxEventType wxEVT_NAVIGATION_KEY = wxEVT_FIRST + 213;
+const wxEventType wxEVT_CHAR_HOOK = wxEVT_FIRST + 213;
+const wxEventType wxEVT_NAVIGATION_KEY = wxEVT_FIRST + 214;
+const wxEventType wxEVT_KEY_DOWN = wxEVT_FIRST + 215;
+const wxEventType wxEVT_KEY_UP = wxEVT_FIRST + 216;
const wxEventType wxEVT_QUERY_END_SESSION = wxEVT_FIRST + 404;
const wxEventType wxEVT_ACTIVATE_APP = wxEVT_FIRST + 405;
const wxEventType wxEVT_POWER = wxEVT_FIRST + 406;
const wxEventType wxEVT_QUERY_END_SESSION = wxEVT_FIRST + 404;
const wxEventType wxEVT_ACTIVATE_APP = wxEVT_FIRST + 405;
const wxEventType wxEVT_POWER = wxEVT_FIRST + 406;
const wxEventType wxEVT_ACTIVATE = wxEVT_FIRST + 409;
const wxEventType wxEVT_CREATE = wxEVT_FIRST + 410;
const wxEventType wxEVT_DESTROY = wxEVT_FIRST + 411;
const wxEventType wxEVT_ACTIVATE = wxEVT_FIRST + 409;
const wxEventType wxEVT_CREATE = wxEVT_FIRST + 410;
const wxEventType wxEVT_DESTROY = wxEVT_FIRST + 411;
#define EVT_PAINT(func) { wxEVT_PAINT, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxPaintEventFunction) & func, (wxObject *) NULL },
#define EVT_ERASE_BACKGROUND(func) { wxEVT_ERASE_BACKGROUND, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxEraseEventFunction) & func, (wxObject *) NULL },
#define EVT_CHAR(func) { wxEVT_CHAR, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxCharEventFunction) & func, (wxObject *) NULL },
#define EVT_PAINT(func) { wxEVT_PAINT, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxPaintEventFunction) & func, (wxObject *) NULL },
#define EVT_ERASE_BACKGROUND(func) { wxEVT_ERASE_BACKGROUND, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxEraseEventFunction) & func, (wxObject *) NULL },
#define EVT_CHAR(func) { wxEVT_CHAR, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxCharEventFunction) & func, (wxObject *) NULL },
+#define EVT_KEY_DOWN(func) { wxEVT_KEY_DOWN, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxCharEventFunction) & func, (wxObject *) NULL },
+#define EVT_KEY_UP(func) { wxEVT_KEY_UP, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxCharEventFunction) & func, (wxObject *) NULL },
#define EVT_CHAR_HOOK(func) { wxEVT_CHAR_HOOK, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxCharEventFunction) & func, NULL },
#define EVT_MENU_HIGHLIGHT(id, func) { wxEVT_MENU_HIGHLIGHT, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxMenuEventFunction) & func, (wxObject *) NULL },
#define EVT_MENU_HIGHLIGHT_ALL(func) { wxEVT_MENU_HIGHLIGHT, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxMenuEventFunction) & func, (wxObject *) NULL },
#define EVT_CHAR_HOOK(func) { wxEVT_CHAR_HOOK, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxCharEventFunction) & func, NULL },
#define EVT_MENU_HIGHLIGHT(id, func) { wxEVT_MENU_HIGHLIGHT, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxMenuEventFunction) & func, (wxObject *) NULL },
#define EVT_MENU_HIGHLIGHT_ALL(func) { wxEVT_MENU_HIGHLIGHT, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxMenuEventFunction) & func, (wxObject *) NULL },