// Copyright 2014 PDFium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
 
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com

#ifndef _FWL_EVENT_H
#define _FWL_EVENT_H

#include "fpdfview.h"

typedef int			FPDF_INT32;
typedef unsigned int FPDF_UINT32;
typedef float		FPDF_FLOAT;
//event type
typedef enum
{
	FWL_EVENTTYPE_Mouse = 0	,
	FWL_EVENTTYPE_MouseWheel,	
	FWL_EVENTTYPE_Key		,
} FWL_EVENTTYPE;

//key flag
typedef enum
{    
	FWL_EVENTFLAG_ShiftKey			= 1 << 0,    
	FWL_EVENTFLAG_ControlKey		= 1 << 1,
    FWL_EVENTFLAG_AltKey			= 1 << 2,
    FWL_EVENTFLAG_MetaKey			= 1 << 3,
    FWL_EVENTFLAG_KeyPad			= 1 << 4,
    FWL_EVENTFLAG_AutoRepeat		= 1 << 5,
    FWL_EVENTFLAG_LeftButtonDown	= 1 << 6,
    FWL_EVENTFLAG_MiddleButtonDown	= 1 << 7,
    FWL_EVENTFLAG_RightButtonDown	= 1 << 8, 
} FWL_EVENTFLAG;  

// Mouse message command
typedef enum
{
	FWL_EVENTMOUSECMD_LButtonDown =	1	,	
	FWL_EVENTMOUSECMD_LButtonUp			,
	FWL_EVENTMOUSECMD_LButtonDblClk		,
	FWL_EVENTMOUSECMD_RButtonDown		,
	FWL_EVENTMOUSECMD_RButtonUp			,
	FWL_EVENTMOUSECMD_RButtonDblClk		,
	FWL_EVENTMOUSECMD_MButtonDown		,
	FWL_EVENTMOUSECMD_MButtonUp			,
	FWL_EVENTMOUSECMD_MButtonDblClk		,
	FWL_EVENTMOUSECMD_MouseMove			,
	FWL_EVENTMOUSECMD_MouseEnter		,
	FWL_EVENTMOUSECMD_MouseHover		,
	FWL_EVENTMOUSECMD_MouseLeave		,
} FWL_EVENT_MOUSECMD;

//mouse event
struct FWL_EVENT_MOUSE 
{
	FPDF_UINT32 command;
	FPDF_DWORD flag;
	FPDF_FLOAT x;
	FPDF_FLOAT y;
};

//mouse wheel
struct FWL_EVENT_MOUSEWHEEL 
{	
	FPDF_DWORD flag;
	FPDF_FLOAT x;
	FPDF_FLOAT y;
	FPDF_FLOAT deltaX;
    FPDF_FLOAT deltaY;  
};

//virtual keycode
typedef enum 
{
  FWL_VKEY_Back		= 0x08,
  FWL_VKEY_Tab		= 0x09,
  FWL_VKEY_Clear	= 0x0C,
  FWL_VKEY_Return	= 0x0D,
  FWL_VKEY_Shift	= 0x10,
  FWL_VKEY_Control	= 0x11,
  FWL_VKEY_Menu		= 0x12,
  FWL_VKEY_Pause	= 0x13,
  FWL_VKEY_Capital	= 0x14,
  FWL_VKEY_Kana		= 0x15,
  FWL_VKEY_Hangul	= 0x15,
  FWL_VKEY_Junja	= 0x17,
  FWL_VKEY_Final	= 0x18,
  FWL_VKEY_Hanja	= 0x19,
  FWL_VKEY_Kanji	= 0x19,
  FWL_VKEY_Escape	= 0x1B,
  FWL_VKEY_Convert	= 0x1C,
  FWL_VKEY_NonConvert = 0x1D,
  FWL_VKEY_Accept	 = 0x1E,
  FWL_VKEY_ModeChange = 0x1F,
  FWL_VKEY_Space = 0x20,
  FWL_VKEY_Prior = 0x21,
  FWL_VKEY_Next = 0x22,
  FWL_VKEY_End = 0x23,
  FWL_VKEY_Home = 0x24,
  FWL_VKEY_Left = 0x25,
  FWL_VKEY_Up = 0x26,
  FWL_VKEY_Right = 0x27,
  FWL_VKEY_Down = 0x28,
  FWL_VKEY_Select = 0x29,
  FWL_VKEY_Print = 0x2A,
  FWL_VKEY_Execute = 0x2B,
  FWL_VKEY_Snapshot = 0x2C,
  FWL_VKEY_Insert = 0x2D,
  FWL_VKEY_Delete = 0x2E,
  FWL_VKEY_Help = 0x2F,
  FWL_VKEY_0 = 0x30,
  FWL_VKEY_1 = 0x31,
  FWL_VKEY_2 = 0x32,
  FWL_VKEY_3 = 0x33,
  FWL_VKEY_4 = 0x34,
  FWL_VKEY_5 = 0x35,
  FWL_VKEY_6 = 0x36,
  FWL_VKEY_7 = 0x37,
  FWL_VKEY_8 = 0x38,
  FWL_VKEY_9 = 0x39,
  FWL_VKEY_A = 0x41,
  FWL_VKEY_B = 0x42,
  FWL_VKEY_C = 0x43,
  FWL_VKEY_D = 0x44,
  FWL_VKEY_E = 0x45,
  FWL_VKEY_F = 0x46,
  FWL_VKEY_G = 0x47,
  FWL_VKEY_H = 0x48,
  FWL_VKEY_I = 0x49,
  FWL_VKEY_J = 0x4A,
  FWL_VKEY_K = 0x4B,
  FWL_VKEY_L = 0x4C,
  FWL_VKEY_M = 0x4D,
  FWL_VKEY_N = 0x4E,
  FWL_VKEY_O = 0x4F,
  FWL_VKEY_P = 0x50,
  FWL_VKEY_Q = 0x51,
  FWL_VKEY_R = 0x52,
  FWL_VKEY_S = 0x53,
  FWL_VKEY_T = 0x54,
  FWL_VKEY_U = 0x55,
  FWL_VKEY_V = 0x56,
  FWL_VKEY_W = 0x57,
  FWL_VKEY_X = 0x58,
  FWL_VKEY_Y = 0x59,
  FWL_VKEY_Z = 0x5A,
  FWL_VKEY_LWin = 0x5B,
  FWL_VKEY_Command = 0x5B,
  FWL_VKEY_RWin = 0x5C,
  FWL_VKEY_Apps = 0x5D,
  FWL_VKEY_Sleep = 0x5F,
  FWL_VKEY_NumPad0 = 0x60,
  FWL_VKEY_NumPad1 = 0x61,
  FWL_VKEY_NumPad2 = 0x62,
  FWL_VKEY_NumPad3 = 0x63,
  FWL_VKEY_NumPad4 = 0x64,
  FWL_VKEY_NumPad5 = 0x65,
  FWL_VKEY_NumPad6 = 0x66,
  FWL_VKEY_NumPad7 = 0x67,
  FWL_VKEY_NumPad8 = 0x68,
  FWL_VKEY_NumPad9 = 0x69,
  FWL_VKEY_Multiply = 0x6A,
  FWL_VKEY_Add = 0x6B,
  FWL_VKEY_Separator = 0x6C,
  FWL_VKEY_Subtract = 0x6D,
  FWL_VKEY_Decimal = 0x6E,
  FWL_VKEY_Divide = 0x6F,
  FWL_VKEY_F1 = 0x70,
  FWL_VKEY_F2 = 0x71,
  FWL_VKEY_F3 = 0x72,
  FWL_VKEY_F4 = 0x73,
  FWL_VKEY_F5 = 0x74,
  FWL_VKEY_F6 = 0x75,
  FWL_VKEY_F7 = 0x76,
  FWL_VKEY_F8 = 0x77,
  FWL_VKEY_F9 = 0x78,
  FWL_VKEY_F10 = 0x79,
  FWL_VKEY_F11 = 0x7A,
  FWL_VKEY_F12 = 0x7B,
  FWL_VKEY_F13 = 0x7C,
  FWL_VKEY_F14 = 0x7D,
  FWL_VKEY_F15 = 0x7E,
  FWL_VKEY_F16 = 0x7F,
  FWL_VKEY_F17 = 0x80,
  FWL_VKEY_F18 = 0x81,
  FWL_VKEY_F19 = 0x82,
  FWL_VKEY_F20 = 0x83,
  FWL_VKEY_F21 = 0x84,
  FWL_VKEY_F22 = 0x85,
  FWL_VKEY_F23 = 0x86,
  FWL_VKEY_F24 = 0x87,
  FWL_VKEY_NunLock = 0x90,
  FWL_VKEY_Scroll = 0x91,
  FWL_VKEY_LShift = 0xA0,
  FWL_VKEY_RShift = 0xA1,
  FWL_VKEY_LControl = 0xA2,
  FWL_VKEY_RControl = 0xA3,
  FWL_VKEY_LMenu = 0xA4,
  FWL_VKEY_RMenu = 0xA5,
  FWL_VKEY_BROWSER_Back = 0xA6,
  FWL_VKEY_BROWSER_Forward = 0xA7,
  FWL_VKEY_BROWSER_Refresh = 0xA8,
  FWL_VKEY_BROWSER_Stop = 0xA9,
  FWL_VKEY_BROWSER_Search = 0xAA,
  FWL_VKEY_BROWSER_Favorites = 0xAB,
  FWL_VKEY_BROWSER_Home = 0xAC,
  FWL_VKEY_VOLUME_Mute = 0xAD,
  FWL_VKEY_VOLUME_Down = 0xAE,
  FWL_VKEY_VOLUME_Up = 0xAF,
  FWL_VKEY_MEDIA_NEXT_Track = 0xB0,
  FWL_VKEY_MEDIA_PREV_Track = 0xB1,
  FWL_VKEY_MEDIA_Stop = 0xB2,
  FWL_VKEY_MEDIA_PLAY_Pause = 0xB3,
  FWL_VKEY_MEDIA_LAUNCH_Mail = 0xB4,
  FWL_VKEY_MEDIA_LAUNCH_MEDIA_Select = 0xB5,
  FWL_VKEY_MEDIA_LAUNCH_APP1 = 0xB6,
  FWL_VKEY_MEDIA_LAUNCH_APP2 = 0xB7,
  FWL_VKEY_OEM_1 = 0xBA,
  FWL_VKEY_OEM_Plus = 0xBB,
  FWL_VKEY_OEM_Comma = 0xBC,
  FWL_VKEY_OEM_Minus = 0xBD,
  FWL_VKEY_OEM_Period = 0xBE,
  FWL_VKEY_OEM_2 = 0xBF,
  FWL_VKEY_OEM_3 = 0xC0,
  FWL_VKEY_OEM_4 = 0xDB,
  FWL_VKEY_OEM_5 = 0xDC,
  FWL_VKEY_OEM_6 = 0xDD,
  FWL_VKEY_OEM_7 = 0xDE,
  FWL_VKEY_OEM_8 = 0xDF,
  FWL_VKEY_OEM_102 = 0xE2,
  FWL_VKEY_ProcessKey = 0xE5,
  FWL_VKEY_Packet = 0xE7,
  FWL_VKEY_Attn = 0xF6,
  FWL_VKEY_Crsel = 0xF7,
  FWL_VKEY_Exsel = 0xF8,
  FWL_VKEY_Ereof = 0xF9,
  FWL_VKEY_Play = 0xFA,
  FWL_VKEY_Zoom = 0xFB,
  FWL_VKEY_NoName = 0xFC,
  FWL_VKEY_PA1 = 0xFD,
  FWL_VKEY_OEM_Clear = 0xFE,
  FWL_VKEY_Unknown = 0,
} FWL_VKEYCODE;

//key event command
typedef enum
{
	FWL_EVENTKEYCMD_KeyDown = 1	,
	FWL_EVENTKEYCMD_KeyUp		,
	FWL_EVENTKEYCMD_Char		,
} FWL_EVENTKEYCMD;

//key event
struct FWL_EVENT_KEY
{
	FPDF_UINT32 command;
	FPDF_DWORD flag;
	union
	{
		//Virtual key code.
		FPDF_UINT32 vkcode;
		//Character code.
		FPDF_DWORD charcode;
	}code;
};

//event type
struct FWL_EVENT 
{
	//structure size.
	FPDF_UINT32 size;
	//FWL_EVENTTYPE.
    FPDF_UINT32 type;
	union
	{
		struct FWL_EVENT_MOUSE mouse;
		struct FWL_EVENT_MOUSEWHEEL wheel;
		struct FWL_EVENT_KEY key;
	}s;
};  

#endif //_FWL_EVENT_H


