Serious-Engine/Sources/Engine/Base/SDL/SDLEvents.h
2016-04-09 02:18:57 -04:00

133 lines
4.1 KiB
C

/* Copyright (c) 2002-2012 Croteam Ltd. All rights reserved. */
#ifndef SE_INCL_SDLEVENTS_H
#define SE_INCL_SDLEVENTS_H
#ifdef PRAGMA_ONCE
#pragma once
#endif
#include <Engine/Base/Types.h>
#include "SDL.h"
typedef struct SSAM_SDL_MSG {
UINT message;
WPARAM wParam;
LPARAM lParam;
Uint16 unicode;
} MSG, *PMSG;
#define PM_REMOVE 37337 // super l33t. :)
#define WM_CHAR (SDL_TEXTINPUT)
#define WM_MOUSEWHEEL (SDL_MOUSEWHEEL)
#define WM_KEYDOWN (SDL_KEYDOWN)
#define WM_KEYUP (SDL_KEYUP)
#define WM_MOUSEMOVE (SDL_MOUSEMOTION)
#define WM_QUIT (SDL_QUIT)
extern SDL_EventType WM_SYSKEYDOWN;
extern SDL_EventType WM_LBUTTONDOWN;
extern SDL_EventType WM_LBUTTONUP;
extern SDL_EventType WM_RBUTTONDOWN;
extern SDL_EventType WM_RBUTTONUP;
extern SDL_EventType WM_PAINT;
// !!! FIXME: are these not used? Because we can deal with some of these in SDL2.
#define WM_NULL (SDL_FIRSTEVENT)
#define WM_CLOSE (SDL_FIRSTEVENT)
#define WM_COMMAND (SDL_FIRSTEVENT)
#define WM_ERASEBKGND (SDL_FIRSTEVENT)
#define WM_KILLFOCUS (SDL_FIRSTEVENT)
#define WM_MOUSEFIRST (SDL_FIRSTEVENT)
#define WM_MOUSELAST (SDL_FIRSTEVENT)
#define WM_LBUTTONDBLCLK (SDL_FIRSTEVENT)
#define WM_RBUTTONDBLCLK (SDL_FIRSTEVENT)
#define WM_SYSCOMMAND (SDL_FIRSTEVENT)
#define WM_SETFOCUS (SDL_FIRSTEVENT)
#define WM_ACTIVATE (SDL_FIRSTEVENT)
#define WM_ACTIVATEAPP (SDL_FIRSTEVENT)
#define WM_CANCELMODE (SDL_FIRSTEVENT)
BOOL PeekMessage(MSG *msg, void *hwnd, UINT wMsgFilterMin,
UINT wMsgFilterMax, UINT wRemoveMsg);
void TranslateMessage(MSG *msg);
void DispatchMessage(MSG *msg);
#define VK_ADD SDLK_KP_PLUS
#define VK_BACK SDLK_BACKSPACE
#define VK_CAPITAL SDLK_CAPSLOCK
#define VK_CONTROL SDLK_RCTRL
#define VK_DECIMAL SDLK_KP_PERIOD
#define VK_DELETE SDLK_DELETE
#define VK_DIVIDE SDLK_KP_DIVIDE
#define VK_DOWN SDLK_DOWN
#define VK_END SDLK_END
#define VK_ESCAPE SDLK_ESCAPE
#define VK_F1 SDLK_F1
#define VK_F2 SDLK_F2
#define VK_F3 SDLK_F3
#define VK_F4 SDLK_F4
#define VK_F5 SDLK_F5
#define VK_F6 SDLK_F6
#define VK_F7 SDLK_F7
#define VK_F8 SDLK_F8
#define VK_F9 SDLK_F9
#define VK_F10 SDLK_F10
#define VK_F11 SDLK_F11
#define VK_F12 SDLK_F12
#define VK_HOME SDLK_HOME
#define VK_INSERT SDLK_INSERT
#define VK_LCONTROL SDLK_LCTRL
#define VK_LEFT SDLK_LEFT
#define VK_LMENU SDLK_LALT
#define VK_LSHIFT SDLK_LSHIFT
#define VK_MENU SDLK_LALT
#define VK_MULTIPLY SDLK_KP_MULTIPLY
#define VK_NEXT SDLK_PAGEDOWN
#define VK_NUMLOCK SDLK_NUMLOCK
#define VK_NUMPAD0 SDLK_KP0
#define VK_NUMPAD1 SDLK_KP1
#define VK_NUMPAD2 SDLK_KP2
#define VK_NUMPAD3 SDLK_KP3
#define VK_NUMPAD4 SDLK_KP4
#define VK_NUMPAD5 SDLK_KP5
#define VK_NUMPAD6 SDLK_KP6
#define VK_NUMPAD7 SDLK_KP7
#define VK_NUMPAD8 SDLK_KP8
#define VK_NUMPAD9 SDLK_KP9
#define VK_PAUSE SDLK_PAUSE
#define VK_PRIOR SDLK_PAGEUP
#define VK_RCONTROL SDLK_RCTRL
#define VK_RETURN SDLK_RETURN
#define VK_RIGHT SDLK_RIGHT
#define VK_RMENU SDLK_RALT
#define VK_RSHIFT SDLK_RSHIFT
#define VK_SCROLL SDLK_SCROLLOCK
#define VK_SEPARATOR SDLK_KP_ENTER
#define VK_SHIFT SDLK_LSHIFT
#define VK_SNAPSHOT SDLK_PRINT
#define VK_SPACE SDLK_SPACE
#define VK_SUBTRACT SDLK_KP_MINUS
#define VK_TAB SDLK_TAB
#define VK_UP SDLK_UP
// Pray these never get filled.
#define VK_LBUTTON 1
#define VK_RBUTTON 2
#define VK_MBUTTON 3
BOOL IsIconic(void *hWnd);
SHORT GetKeyState(int vk);
SHORT GetAsyncKeyState(int vk);
BOOL GetCursorPos(LPPOINT lpPoint);
BOOL ScreenToClient(void *hWnd, LPPOINT lpPoint);
int ShowCursor(BOOL yes);
#define LOWORD(x) (x & 0x0000FFFF)
#define HIWORD(x) ((x >> 16) & 0x0000FFFF)
#endif /* include-once blocker. */