/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /* * This file is part of the LibreOffice project. * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. * * This file incorporates work covered by the following license notice: * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed * with this work for additional information regarding copyright * ownership. The ASF licenses this file to you under the Apache * License, Version 2.0 (the "License"); you may not use this file * except in compliance with the License. You may obtain a copy of * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ #ifndef INCLUDED_VCL_KEYCODES_HXX #define INCLUDED_VCL_KEYCODES_HXX #include #include #include #define KEY_CODE_MASK (sal_uInt16(0x0FFF)) // Modifier keys #define KEY_SHIFT (sal_uInt16(0x1000)) #define KEY_MOD1 (sal_uInt16(0x2000)) #define KEY_MOD2 (sal_uInt16(0x4000)) #define KEY_MOD3 (sal_uInt16(0x8000)) #define KEY_MODIFIERS_MASK (sal_uInt16(0xF000)) // Key groups #define KEYGROUP_NUM (sal_uInt16(css::awt::KeyGroup::NUM)) #define KEYGROUP_ALPHA (sal_uInt16(css::awt::KeyGroup::ALPHA)) #define KEYGROUP_FKEYS (sal_uInt16(css::awt::KeyGroup::FKEYS)) #define KEYGROUP_CURSOR (sal_uInt16(css::awt::KeyGroup::CURSOR)) #define KEYGROUP_MISC (sal_uInt16(css::awt::KeyGroup::MISC)) #define KEYGROUP_TYPE (sal_uInt16(css::awt::KeyGroup::TYPE)) // Key codes #define KEY_0 (sal_uInt16(css::awt::Key::NUM0)) #define KEY_1 (sal_uInt16(css::awt::Key::NUM1)) #define KEY_2 (sal_uInt16(css::awt::Key::NUM2)) #define KEY_3 (sal_uInt16(css::awt::Key::NUM3)) #define KEY_4 (sal_uInt16(css::awt::Key::NUM4)) #define KEY_5 (sal_uInt16(css::awt::Key::NUM5)) #define KEY_6 (sal_uInt16(css::awt::Key::NUM6)) #define KEY_7 (sal_uInt16(css::awt::Key::NUM7)) #define KEY_8 (sal_uInt16(css::awt::Key::NUM8)) #define KEY_9 (sal_uInt16(css::awt::Key::NUM9)) #define KEY_A (sal_uInt16(css::awt::Key::A)) #define KEY_B (sal_uInt16(css::awt::Key::B)) #define KEY_C (sal_uInt16(css::awt::Key::C)) #define KEY_D (sal_uInt16(css::awt::Key::D)) #define KEY_E (sal_uInt16(css::awt::Key::E)) #define KEY_F (sal_uInt16(css::awt::Key::F)) #define KEY_G (sal_uInt16(css::awt::Key::G)) #define KEY_H (sal_uInt16(css::awt::Key::H)) #define KEY_I (sal_uInt16(css::awt::Key::I)) #define KEY_J (sal_uInt16(css::awt::Key::J)) #define KEY_K (sal_uInt16(css::awt::Key::K)) #define KEY_L (sal_uInt16(css::awt::Key::L)) #define KEY_M (sal_uInt16(css::awt::Key::M)) #define KEY_N (sal_uInt16(css::awt::Key::N)) #define KEY_O (sal_uInt16(css::awt::Key::O)) #define KEY_P (sal_uInt16(css::awt::Key::P)) #define KEY_Q (sal_uInt16(css::awt::Key::Q)) #define KEY_R (sal_uInt16(css::awt::Key::R)) #define KEY_S (sal_uInt16(css::awt::Key::S)) #define KEY_T (sal_uInt16(css::awt::Key::T)) #define KEY_U (sal_uInt16(css::awt::Key::U)) #define KEY_V (sal_uInt16(css::awt::Key::V)) #define KEY_W (sal_uInt16(css::awt::Key::W)) #define KEY_X (sal_uInt16(css::awt::Key::X)) #define KEY_Y (sal_uInt16(css::awt::Key::Y)) #define KEY_Z (sal_uInt16(css::awt::Key::Z)) #define KEY_F1 (sal_uInt16(css::awt::Key::F1)) #define KEY_F2 (sal_uInt16(css::awt::Key::F2)) #define KEY_F3 (sal_uInt16(css::awt::Key::F3)) #define KEY_F4 (sal_uInt16(css::awt::Key::F4)) #define KEY_F5 (sal_uInt16(css::awt::Key::F5)) #define KEY_F6 (sal_uInt16(css::awt::Key::F6)) #define KEY_F7 (sal_uInt16(css::awt::Key::F7)) #define KEY_F8 (sal_uInt16(css::awt::Key::F8)) #define KEY_F9 (sal_uInt16(css::awt::Key::F9)) #define KEY_F10 (sal_uInt16(css::awt::Key::F10)) #define KEY_F11 (sal_uInt16(css::awt::Key::F11)) #define KEY_F12 (sal_uInt16(css::awt::Key::F12)) #define KEY_F13 (sal_uInt16(css::awt::Key::F13)) #define KEY_F14 (sal_uInt16(css::awt::Key::F14)) #define KEY_F15 (sal_uInt16(css::awt::Key::F15)) #define KEY_F16 (sal_uInt16(css::awt::Key::F16)) #define KEY_F17 (sal_uInt16(css::awt::Key::F17)) #define KEY_F18 (sal_uInt16(css::awt::Key::F18)) #define KEY_F19 (sal_uInt16(css::awt::Key::F19)) #define KEY_F20 (sal_uInt16(css::awt::Key::F20)) #define KEY_F21 (sal_uInt16(css::awt::Key::F21)) #define KEY_F22 (sal_uInt16(css::awt::Key::F22)) #define KEY_F23 (sal_uInt16(css::awt::Key::F23)) #define KEY_F24 (sal_uInt16(css::awt::Key::F24)) #define KEY_F25 (sal_uInt16(css::awt::Key::F25)) #define KEY_F26 (sal_uInt16(css::awt::Key::F26)) #define KEY_DOWN (sal_uInt16(css::awt::Key::DOWN)) #define KEY_UP (sal_uInt16(css::awt::Key::UP)) #define KEY_LEFT (sal_uInt16(css::awt::Key::LEFT)) #define KEY_RIGHT (sal_uInt16(css::awt::Key::RIGHT)) #define KEY_HOME (sal_uInt16(css::awt::Key::HOME)) #define KEY_END (sal_uInt16(css::awt::Key::END)) #define KEY_PAGEUP (sal_uInt16(css::awt::Key::PAGEUP)) #define KEY_PAGEDOWN (sal_uInt16(css::awt::Key::PAGEDOWN)) #define KEY_RETURN (sal_uInt16(css::awt::Key::RETURN)) #define KEY_ESCAPE (sal_uInt16(css::awt::Key::ESCAPE)) #define KEY_TAB (sal_uInt16(css::awt::Key::TAB)) #define KEY_BACKSPACE (sal_uInt16(css::awt::Key::BACKSPACE)) #define KEY_SPACE (sal_uInt16(css::awt::Key::SPACE)) #define KEY_INSERT (sal_uInt16(css::awt::Key::INSERT)) #define KEY_DELETE (sal_uInt16(css::awt::Key::DELETE)) #define KEY_ADD (sal_uInt16(css::awt::Key::ADD)) #define KEY_SUBTRACT (sal_uInt16(css::awt::Key::SUBTRACT)) #define KEY_MULTIPLY (sal_uInt16(css::awt::Key::MULTIPLY)) #define KEY_DIVIDE (sal_uInt16(css::awt::Key::DIVIDE)) #define KEY_POINT (sal_uInt16(css::awt::Key::POINT)) #define KEY_COMMA (sal_uInt16(css::awt::Key::COMMA)) #define KEY_LESS (sal_uInt16(css::awt::Key::LESS)) #define KEY_GREATER (sal_uInt16(css::awt::Key::GREATER)) #define KEY_EQUAL (sal_uInt16(css::awt::Key::EQUAL)) #define KEY_OPEN (sal_uInt16(css::awt::Key::OPEN)) #define KEY_CUT (sal_uInt16(css::awt::Key::CUT)) #define KEY_COPY (sal_uInt16(css::awt::Key::COPY)) #define KEY_PASTE (sal_uInt16(css::awt::Key::PASTE)) #define KEY_UNDO (sal_uInt16(css::awt::Key::UNDO)) #define KEY_REPEAT (sal_uInt16(css::awt::Key::REPEAT)) #define KEY_FIND (sal_uInt16(css::awt::Key::FIND)) #define KEY_PROPERTIES (sal_uInt16(css::awt::Key::PROPERTIES)) #define KEY_FRONT (sal_uInt16(css::awt::Key::FRONT)) #define KEY_CONTEXTMENU (sal_uInt16(css::awt::Key::CONTEXTMENU)) #define KEY_MENU (sal_uInt16(css::awt::Key::MENU)) #define KEY_HELP (sal_uInt16(css::awt::Key::HELP)) #define KEY_HANGUL_HANJA (sal_uInt16(css::awt::Key::HANGUL_HANJA)) #define KEY_DECIMAL (sal_uInt16(css::awt::Key::DECIMAL)) #define KEY_TILDE (sal_uInt16(css::awt::Key::TILDE)) #define KEY_QUOTELEFT (sal_uInt16(css::awt::Key::QUOTELEFT)) #define KEY_BRACKETLEFT (sal_uInt16(css::awt::Key::BRACKETLEFT)) #define KEY_BRACKETRIGHT (sal_uInt16(css::awt::Key::BRACKETRIGHT)) #define KEY_SEMICOLON (sal_uInt16(css::awt::Key::SEMICOLON)) #define KEY_QUOTERIGHT (sal_uInt16(css::awt::Key::QUOTERIGHT)) #define KEY_CAPSLOCK (sal_uInt16(css::awt::Key::CAPSLOCK)) #define KEY_NUMLOCK (sal_uInt16(css::awt::Key::NUMLOCK)) #define KEY_SCROLLLOCK (sal_uInt16(css::awt::Key::SCROLLLOCK)) // extended Modifier-Keys (only used for modkey events) enum class ModKeyFlags { NONE = 0x0000, LeftShift = 0x0001, RightShift = 0x0002, LeftMod1 = 0x0004, RightMod1 = 0x0008, LeftMod2 = 0x0010, RightMod2 = 0x0020, LeftMod3 = 0x0040, RightMod3 = 0x0080, Mod1Msk = LeftMod1 | RightMod1, // should be Mod1Mask, but that conflicts with a X.h macro grrrr Mod2Msk = LeftMod2 | RightMod2, }; namespace o3tl { template<> struct typed_flags : is_typed_flags {}; } enum class KeyIndicatorState { NONE = 0x0000, CAPSLOCK = 0x0001, NUMLOCK = 0x0002, SCROLLLOCK = 0x0004 }; namespace o3tl { template<> struct typed_flags : is_typed_flags {}; } #endif // INCLUDED_VCL_KEYCODES_HXX /* vim:set shiftwidth=4 softtabstop=4 expandtab: */