// 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 XFA_FWL_FWL_WIDGETDEF_H_
#define XFA_FWL_FWL_WIDGETDEF_H_

#define FWL_WGTSTYLE_OverLapper 0
#define FWL_WGTSTYLE_Popup (1L << 0)
#define FWL_WGTSTYLE_Child (2L << 0)
#define FWL_WGTSTYLE_WindowTypeMask (3L << 0)
#define FWL_WGTSTYLE_Border (1L << 2)
#define FWL_WGTSTYLE_VScroll (1L << 11)
#define FWL_WGTSTYLE_Group (1L << 22)
#define FWL_WGTSTYLE_NoBackground (1L << 28)

#define FWL_WGTSTATE_Disabled (1L << 2)
#define FWL_WGTSTATE_Focused (1L << 4)
#define FWL_WGTSTATE_Invisible (1L << 5)
#define FWL_WGTSTATE_MAX (6)

// Same as enum FWL_VKEYCODE in public/fpdf_fwlevent.h, but duplicated to keep
// xfa/fwl standalone.
enum XFA_FWL_VKEYCODE {
  XFA_FWL_VKEY_Back = 0x08,
  XFA_FWL_VKEY_Tab = 0x09,
  XFA_FWL_VKEY_NewLine = 0x0A,
  XFA_FWL_VKEY_Clear = 0x0C,
  XFA_FWL_VKEY_Return = 0x0D,
  XFA_FWL_VKEY_Shift = 0x10,
  XFA_FWL_VKEY_Control = 0x11,
  XFA_FWL_VKEY_Menu = 0x12,
  XFA_FWL_VKEY_Pause = 0x13,
  XFA_FWL_VKEY_Capital = 0x14,
  XFA_FWL_VKEY_Kana = 0x15,
  XFA_FWL_VKEY_Hangul = 0x15,
  XFA_FWL_VKEY_Junja = 0x17,
  XFA_FWL_VKEY_Final = 0x18,
  XFA_FWL_VKEY_Hanja = 0x19,
  XFA_FWL_VKEY_Kanji = 0x19,
  XFA_FWL_VKEY_Escape = 0x1B,
  XFA_FWL_VKEY_Convert = 0x1C,
  XFA_FWL_VKEY_NonConvert = 0x1D,
  XFA_FWL_VKEY_Accept = 0x1E,
  XFA_FWL_VKEY_ModeChange = 0x1F,
  XFA_FWL_VKEY_Space = 0x20,
  XFA_FWL_VKEY_Prior = 0x21,
  XFA_FWL_VKEY_Next = 0x22,
  XFA_FWL_VKEY_End = 0x23,
  XFA_FWL_VKEY_Home = 0x24,
  XFA_FWL_VKEY_Left = 0x25,
  XFA_FWL_VKEY_Up = 0x26,
  XFA_FWL_VKEY_Right = 0x27,
  XFA_FWL_VKEY_Down = 0x28,
  XFA_FWL_VKEY_Select = 0x29,
  XFA_FWL_VKEY_Print = 0x2A,
  XFA_FWL_VKEY_Execute = 0x2B,
  XFA_FWL_VKEY_Snapshot = 0x2C,
  XFA_FWL_VKEY_Insert = 0x2D,
  XFA_FWL_VKEY_Delete = 0x2E,
  XFA_FWL_VKEY_Help = 0x2F,
  XFA_FWL_VKEY_0 = 0x30,
  XFA_FWL_VKEY_1 = 0x31,
  XFA_FWL_VKEY_2 = 0x32,
  XFA_FWL_VKEY_3 = 0x33,
  XFA_FWL_VKEY_4 = 0x34,
  XFA_FWL_VKEY_5 = 0x35,
  XFA_FWL_VKEY_6 = 0x36,
  XFA_FWL_VKEY_7 = 0x37,
  XFA_FWL_VKEY_8 = 0x38,
  XFA_FWL_VKEY_9 = 0x39,
  XFA_FWL_VKEY_A = 0x41,
  XFA_FWL_VKEY_B = 0x42,
  XFA_FWL_VKEY_C = 0x43,
  XFA_FWL_VKEY_D = 0x44,
  XFA_FWL_VKEY_E = 0x45,
  XFA_FWL_VKEY_F = 0x46,
  XFA_FWL_VKEY_G = 0x47,
  XFA_FWL_VKEY_H = 0x48,
  XFA_FWL_VKEY_I = 0x49,
  XFA_FWL_VKEY_J = 0x4A,
  XFA_FWL_VKEY_K = 0x4B,
  XFA_FWL_VKEY_L = 0x4C,
  XFA_FWL_VKEY_M = 0x4D,
  XFA_FWL_VKEY_N = 0x4E,
  XFA_FWL_VKEY_O = 0x4F,
  XFA_FWL_VKEY_P = 0x50,
  XFA_FWL_VKEY_Q = 0x51,
  XFA_FWL_VKEY_R = 0x52,
  XFA_FWL_VKEY_S = 0x53,
  XFA_FWL_VKEY_T = 0x54,
  XFA_FWL_VKEY_U = 0x55,
  XFA_FWL_VKEY_V = 0x56,
  XFA_FWL_VKEY_W = 0x57,
  XFA_FWL_VKEY_X = 0x58,
  XFA_FWL_VKEY_Y = 0x59,
  XFA_FWL_VKEY_Z = 0x5A,
  XFA_FWL_VKEY_LWin = 0x5B,
  XFA_FWL_VKEY_Command = 0x5B,
  XFA_FWL_VKEY_RWin = 0x5C,
  XFA_FWL_VKEY_Apps = 0x5D,
  XFA_FWL_VKEY_Sleep = 0x5F,
  XFA_FWL_VKEY_NumPad0 = 0x60,
  XFA_FWL_VKEY_NumPad1 = 0x61,
  XFA_FWL_VKEY_NumPad2 = 0x62,
  XFA_FWL_VKEY_NumPad3 = 0x63,
  XFA_FWL_VKEY_NumPad4 = 0x64,
  XFA_FWL_VKEY_NumPad5 = 0x65,
  XFA_FWL_VKEY_NumPad6 = 0x66,
  XFA_FWL_VKEY_NumPad7 = 0x67,
  XFA_FWL_VKEY_NumPad8 = 0x68,
  XFA_FWL_VKEY_NumPad9 = 0x69,
  XFA_FWL_VKEY_Multiply = 0x6A,
  XFA_FWL_VKEY_Add = 0x6B,
  XFA_FWL_VKEY_Separator = 0x6C,
  XFA_FWL_VKEY_Subtract = 0x6D,
  XFA_FWL_VKEY_Decimal = 0x6E,
  XFA_FWL_VKEY_Divide = 0x6F,
  XFA_FWL_VKEY_F1 = 0x70,
  XFA_FWL_VKEY_F2 = 0x71,
  XFA_FWL_VKEY_F3 = 0x72,
  XFA_FWL_VKEY_F4 = 0x73,
  XFA_FWL_VKEY_F5 = 0x74,
  XFA_FWL_VKEY_F6 = 0x75,
  XFA_FWL_VKEY_F7 = 0x76,
  XFA_FWL_VKEY_F8 = 0x77,
  XFA_FWL_VKEY_F9 = 0x78,
  XFA_FWL_VKEY_F10 = 0x79,
  XFA_FWL_VKEY_F11 = 0x7A,
  XFA_FWL_VKEY_F12 = 0x7B,
  XFA_FWL_VKEY_F13 = 0x7C,
  XFA_FWL_VKEY_F14 = 0x7D,
  XFA_FWL_VKEY_F15 = 0x7E,
  XFA_FWL_VKEY_F16 = 0x7F,
  XFA_FWL_VKEY_F17 = 0x80,
  XFA_FWL_VKEY_F18 = 0x81,
  XFA_FWL_VKEY_F19 = 0x82,
  XFA_FWL_VKEY_F20 = 0x83,
  XFA_FWL_VKEY_F21 = 0x84,
  XFA_FWL_VKEY_F22 = 0x85,
  XFA_FWL_VKEY_F23 = 0x86,
  XFA_FWL_VKEY_F24 = 0x87,
  XFA_FWL_VKEY_NunLock = 0x90,
  XFA_FWL_VKEY_Scroll = 0x91,
  XFA_FWL_VKEY_LShift = 0xA0,
  XFA_FWL_VKEY_RShift = 0xA1,
  XFA_FWL_VKEY_LControl = 0xA2,
  XFA_FWL_VKEY_RControl = 0xA3,
  XFA_FWL_VKEY_LMenu = 0xA4,
  XFA_FWL_VKEY_RMenu = 0xA5,
  XFA_FWL_VKEY_BROWSER_Back = 0xA6,
  XFA_FWL_VKEY_BROWSER_Forward = 0xA7,
  XFA_FWL_VKEY_BROWSER_Refresh = 0xA8,
  XFA_FWL_VKEY_BROWSER_Stop = 0xA9,
  XFA_FWL_VKEY_BROWSER_Search = 0xAA,
  XFA_FWL_VKEY_BROWSER_Favorites = 0xAB,
  XFA_FWL_VKEY_BROWSER_Home = 0xAC,
  XFA_FWL_VKEY_VOLUME_Mute = 0xAD,
  XFA_FWL_VKEY_VOLUME_Down = 0xAE,
  XFA_FWL_VKEY_VOLUME_Up = 0xAF,
  XFA_FWL_VKEY_MEDIA_NEXT_Track = 0xB0,
  XFA_FWL_VKEY_MEDIA_PREV_Track = 0xB1,
  XFA_FWL_VKEY_MEDIA_Stop = 0xB2,
  XFA_FWL_VKEY_MEDIA_PLAY_Pause = 0xB3,
  XFA_FWL_VKEY_MEDIA_LAUNCH_Mail = 0xB4,
  XFA_FWL_VKEY_MEDIA_LAUNCH_MEDIA_Select = 0xB5,
  XFA_FWL_VKEY_MEDIA_LAUNCH_APP1 = 0xB6,
  XFA_FWL_VKEY_MEDIA_LAUNCH_APP2 = 0xB7,
  XFA_FWL_VKEY_OEM_1 = 0xBA,
  XFA_FWL_VKEY_OEM_Plus = 0xBB,
  XFA_FWL_VKEY_OEM_Comma = 0xBC,
  XFA_FWL_VKEY_OEM_Minus = 0xBD,
  XFA_FWL_VKEY_OEM_Period = 0xBE,
  XFA_FWL_VKEY_OEM_2 = 0xBF,
  XFA_FWL_VKEY_OEM_3 = 0xC0,
  XFA_FWL_VKEY_OEM_4 = 0xDB,
  XFA_FWL_VKEY_OEM_5 = 0xDC,
  XFA_FWL_VKEY_OEM_6 = 0xDD,
  XFA_FWL_VKEY_OEM_7 = 0xDE,
  XFA_FWL_VKEY_OEM_8 = 0xDF,
  XFA_FWL_VKEY_OEM_102 = 0xE2,
  XFA_FWL_VKEY_ProcessKey = 0xE5,
  XFA_FWL_VKEY_Packet = 0xE7,
  XFA_FWL_VKEY_Attn = 0xF6,
  XFA_FWL_VKEY_Crsel = 0xF7,
  XFA_FWL_VKEY_Exsel = 0xF8,
  XFA_FWL_VKEY_Ereof = 0xF9,
  XFA_FWL_VKEY_Play = 0xFA,
  XFA_FWL_VKEY_Zoom = 0xFB,
  XFA_FWL_VKEY_NoName = 0xFC,
  XFA_FWL_VKEY_PA1 = 0xFD,
  XFA_FWL_VKEY_OEM_Clear = 0xFE,
  XFA_FWL_VKEY_Unknown = 0,
};

#endif  // XFA_FWL_FWL_WIDGETDEF_H_
