/*************************************************************************** ** ** Copyright (C) 2015 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com, author Tobias Koenig ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the plugins of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser ** General Public License version 3 as published by the Free Software ** Foundation and appearing in the file LICENSE.LGPL3 included in the ** packaging of this file. Please review the following information to ** ensure the GNU Lesser General Public License version 3 requirements ** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU ** General Public License version 2.0 or (at your option) the GNU General ** Public license version 3 or any later version approved by the KDE Free ** Qt Foundation. The licenses are as published by the Free Software ** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 ** included in the packaging of this file. Please review the following ** information to ensure the GNU General Public License requirements will ** be met: https://www.gnu.org/licenses/gpl-2.0.html and ** https://www.gnu.org/licenses/gpl-3.0.html. ** ** $QT_END_LICENSE$ ** ****************************************************************************/ #include "qhaikukeymapper.h" QT_BEGIN_NAMESPACE uint32 Haiku_ScanCodes[] = { Qt::Key_Escape, 0x01, Qt::Key_F1, 0x02, Qt::Key_F2, 0x03, Qt::Key_F3, 0x04, Qt::Key_F4, 0x05, Qt::Key_F5, 0x06, Qt::Key_F6, 0x07, Qt::Key_F7, 0x08, Qt::Key_F8, 0x09, Qt::Key_F9, 0x0A, Qt::Key_F10, 0x0B, Qt::Key_F11, 0x0C, Qt::Key_F12, 0x0D, Qt::Key_Print, 0x0E, Qt::Key_Pause, 0x22, Qt::Key_AsciiTilde, 0x11, Qt::Key_1, 0x12, Qt::Key_2, 0x13, Qt::Key_3, 0x14, Qt::Key_4, 0x15, Qt::Key_5, 0x16, Qt::Key_6, 0x17, Qt::Key_7, 0x18, Qt::Key_8, 0x19, Qt::Key_9, 0x1A, Qt::Key_0, 0x1B, Qt::Key_Minus, 0x1C, Qt::Key_Plus, 0x1D, Qt::Key_Backspace, 0x1E, Qt::Key_Insert, 0x1F, Qt::Key_Home, 0x20, Qt::Key_PageUp, 0x21, Qt::Key_Slash, 0x23, Qt::Key_Asterisk, 0x24, Qt::Key_Minus, 0x25, Qt::Key_Tab, 0x26, Qt::Key_Q, 0x27, Qt::Key_W, 0x28, Qt::Key_E, 0x29, Qt::Key_R, 0x2A, Qt::Key_T, 0x2B, Qt::Key_Y, 0x2C, Qt::Key_U, 0x2D, Qt::Key_I, 0x2E, Qt::Key_O, 0x2F, Qt::Key_P, 0x30, Qt::Key_BracketLeft, 0x31, Qt::Key_BracketRight, 0x32, Qt::Key_Backslash, 0x33, Qt::Key_Delete, 0x34, Qt::Key_End, 0x35, Qt::Key_PageDown, 0x36, Qt::Key_Home, 0x37, // numpad Qt::Key_Up, 0x38, // numpad Qt::Key_PageUp, 0x39, // numpad Qt::Key_Plus, 0x3A, // numpad Qt::Key_A, 0x3C, Qt::Key_S, 0x3D, Qt::Key_D, 0x3E, Qt::Key_F, 0x3F, Qt::Key_G, 0x40, Qt::Key_H, 0x41, Qt::Key_J, 0x42, Qt::Key_K, 0x43, Qt::Key_L, 0x44, Qt::Key_Colon, 0x45, Qt::Key_QuoteDbl, 0x46, Qt::Key_Return, 0x47, Qt::Key_Left, 0x48, // numpad Qt::Key_5, 0x49, // numpad ??? Qt::Key_Right, 0x4A, // numpad Qt::Key_Z, 0x4C, Qt::Key_X, 0x4D, Qt::Key_C, 0x4E, Qt::Key_V, 0x4F, Qt::Key_B, 0x50, Qt::Key_N, 0x51, Qt::Key_M, 0x51, Qt::Key_Less, 0x52, Qt::Key_Greater, 0x54, Qt::Key_Question, 0x55, Qt::Key_Up, 0x57, // cursor Qt::Key_End, 0x58, // numpad Qt::Key_Down, 0x59, // numpad Qt::Key_PageDown, 0x5A, // numpad Qt::Key_Enter, 0x5B, // numpad Qt::Key_Space, 0x5E, Qt::Key_Left, 0x61, // cursor Qt::Key_Down, 0x62, // cursor Qt::Key_Right, 0x63, // cursor Qt::Key_Insert, 0x64, // cursor Qt::Key_Delete, 0x65, // numpad 0, 0x00 }; uint32 Haiku_ScanCodes_Numlock[] = { Qt::Key_7, 0x37, Qt::Key_8, 0x38, Qt::Key_9, 0x39, Qt::Key_Plus, 0x3A, Qt::Key_4, 0x48, Qt::Key_5, 0x49, Qt::Key_6, 0x4A, Qt::Key_1, 0x58, Qt::Key_2, 0x59, Qt::Key_3, 0x5A, Qt::Key_Enter, 0x5B, Qt::Key_Comma, 0x65, 0, 0x00 }; uint32 QHaikuKeyMapper::translateKeyCode(uint32 key, bool numlockActive) { uint32 code = 0; int i = 0; if (numlockActive) { while (Haiku_ScanCodes_Numlock[i]) { if (key == Haiku_ScanCodes_Numlock[i + 1]) { code = Haiku_ScanCodes_Numlock[i]; break; } i += 2; } if (code > 0) return code; } i = 0; while (Haiku_ScanCodes[i]) { if (key == Haiku_ScanCodes[i + 1]) { code = Haiku_ScanCodes[i]; break; } i += 2; } return code; } QT_END_NAMESPACE