/*
    SDL - Simple DirectMedia Layer
    Copyright (C) 1997-2006 Sam Lantinga

    This library is free software; you can redistribute it and/or
    modify it under the terms of the GNU Lesser General Public
    License as published by the Free Software Foundation; either
    version 2.1 of the License, or (at your option) any later version.

    This library is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    Lesser General Public License for more details.

    You should have received a copy of the GNU Lesser General Public
    License along with this library; if not, write to the Free Software
    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA

    Sam Lantinga
    slouken@libsdl.org
*/

/* These are the Macintosh key scancode constants -- from Inside Macintosh */

#define MK_ESCAPE		0x35
#define MK_F1			0x7A
#define MK_F2			0x78
#define MK_F3			0x63
#define MK_F4			0x76
#define MK_F5			0x60
#define MK_F6			0x61
#define MK_F7			0x62
#define MK_F8			0x64
#define MK_F9			0x65
#define MK_F10			0x6D
#define MK_F11			0x67
#define MK_F12			0x6F
#define MK_PRINT		0x69
#define MK_SCROLLOCK		0x6B
#define MK_PAUSE		0x71
#define MK_POWER		0x7F
#define MK_BACKQUOTE		0x32
#define MK_1			0x12
#define MK_2			0x13
#define MK_3			0x14
#define MK_4			0x15
#define MK_5			0x17
#define MK_6			0x16
#define MK_7			0x1A
#define MK_8			0x1C
#define MK_9			0x19
#define MK_0			0x1D
#define MK_MINUS		0x1B
#define MK_EQUALS		0x18
#define MK_BACKSPACE		0x33
#define MK_INSERT		0x72
#define MK_HOME			0x73
#define MK_PAGEUP		0x74
#define MK_NUMLOCK		0x47
#define MK_KP_EQUALS		0x51
#define MK_KP_DIVIDE		0x4B
#define MK_KP_MULTIPLY		0x43
#define MK_TAB			0x30
#define MK_q			0x0C
#define MK_w			0x0D
#define MK_e			0x0E
#define MK_r			0x0F
#define MK_t			0x11
#define MK_y			0x10
#define MK_u			0x20
#define MK_i			0x22
#define MK_o			0x1F
#define MK_p			0x23
#define MK_LEFTBRACKET		0x21
#define MK_RIGHTBRACKET		0x1E
#define MK_BACKSLASH		0x2A
#define MK_DELETE		0x75
#define MK_END			0x77
#define MK_PAGEDOWN		0x79
#define MK_KP7			0x59
#define MK_KP8			0x5B
#define MK_KP9			0x5C
#define MK_KP_MINUS		0x4E
#define MK_CAPSLOCK		0x39
#define MK_a			0x00
#define MK_s			0x01
#define MK_d			0x02
#define MK_f			0x03
#define MK_g			0x05
#define MK_h			0x04
#define MK_j			0x26
#define MK_k			0x28
#define MK_l			0x25
#define MK_SEMICOLON		0x29
#define MK_QUOTE		0x27
#define MK_RETURN		0x24
#define MK_KP4			0x56
#define MK_KP5			0x57
#define MK_KP6			0x58
#define MK_KP_PLUS		0x45
#define MK_LSHIFT		0x38
#define MK_z			0x06
#define MK_x			0x07
#define MK_c			0x08
#define MK_v			0x09
#define MK_b			0x0B
#define MK_n			0x2D
#define MK_m			0x2E
#define MK_COMMA		0x2B
#define MK_PERIOD		0x2F
#define MK_SLASH		0x2C
#if 0	/* These are the same as the left versions - use left by default */
#define MK_RSHIFT		0x38
#endif
#define MK_UP			0x7E
#define MK_KP1			0x53
#define MK_KP2			0x54
#define MK_KP3			0x55
#define MK_KP_ENTER		0x4C
#define MK_LCTRL		0x3B
#define MK_LALT			0x3A
#define MK_LMETA		0x37
#define MK_SPACE		0x31
#if 0	/* These are the same as the left versions - use left by default */
#define MK_RMETA		0x37
#define MK_RALT			0x3A
#define MK_RCTRL		0x3B
#endif
#define MK_LEFT			0x7B
#define MK_DOWN			0x7D
#define MK_RIGHT		0x7C
#define MK_KP0			0x52
#define MK_KP_PERIOD		0x41

/* Wierd, these keys are on my iBook under Mac OS X */
#define MK_IBOOK_ENTER		0x34
#define MK_IBOOK_LEFT		0x3B
#define MK_IBOOK_RIGHT		0x3C
#define MK_IBOOK_DOWN		0x3D
#define MK_IBOOK_UP		0x3E
