// Copyright (C) 2021 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only import QtQuick import QtQuick.Layouts import QtQuick.VirtualKeyboard import QtQuick.VirtualKeyboard.Components KeyboardLayoutLoader { property bool secondPage onVisibleChanged: if (!visible) secondPage = false sourceComponent: secondPage ? page2 : page1 Component { id: page1 KeyboardLayout { keyWeight: 160 smallTextVisible: true readonly property real normalKeyWidth: normalKey.width readonly property real functionKeyWidth: mapFromItem(normalKey, normalKey.width / 2, 0).x KeyboardRow { Key { key: 0x0661 text: "\u0661" alternativeKeys: "\u06611" } Key { id: normalKey key: 0x0662 text: "\u0662" alternativeKeys: "\u06622" } Key { key: 0x0663 text: "\u0663" alternativeKeys: "\u06633" } Key { key: 0x0664 text: "\u0664" alternativeKeys: "\u06644" } Key { key: 0x0665 text: "\u0665" alternativeKeys: "\u06655" } Key { key: 0x0666 text: "\u0666" alternativeKeys: "\u06666" } Key { key: 0x0667 text: "\u0667" alternativeKeys: "\u06677" } Key { key: 0x0668 text: "\u0668" alternativeKeys: "\u06688" } Key { key: 0x0669 text: "\u0669" alternativeKeys: "\u06699" } Key { key: 0x0660 text: "\u0660" alternativeKeys: "\u06600" } } KeyboardRow { Key { key: Qt.Key_At text: "@" } Key { key: Qt.Key_NumberSign text: "#" } Key { key: Qt.Key_Percent text: "%" } Key { key: Qt.Key_Ampersand text: "&" } Key { key: Qt.Key_Asterisk text: "*" } Key { key: Qt.Key_Underscore text: "_" } Key { key: Qt.Key_Minus text: "-" } Key { key: Qt.Key_Plus text: "+" } Key { key: Qt.Key_ParenLeft text: "(" } Key { key: Qt.Key_ParenRight text: ")" } } KeyboardRow { Key { displayText: "1/2" functionKey: true onClicked: secondPage = !secondPage highlighted: true } Key { key: Qt.Key_QuoteDbl text: '"' } Key { key: Qt.Key_Less text: "<" } Key { key: Qt.Key_Greater text: ">" } Key { key: Qt.Key_Apostrophe text: "'" } Key { key: Qt.Key_Semicolon text: "\u061B" alternativeKeys: "\u061B;" } Key { key: Qt.Key_Slash text: "/" } Key { key: Qt.Key_Exclam text: "!" } Key { key: Qt.Key_Question text: "\u061F" alternativeKeys: "\u061F?" } BackspaceKey { } } KeyboardRow { SymbolModeKey { weight: functionKeyWidth Layout.fillWidth: false displayText: "\u0623\u200C\u0628\u200C\u062C" } ChangeLanguageKey { weight: normalKeyWidth Layout.fillWidth: false } Key { key: Qt.Key_Comma weight: normalKeyWidth Layout.fillWidth: false text: "\u060C" smallText: "\u2699" smallTextVisible: keyboard.isFunctionPopupListAvailable() highlighted: true } SpaceKey { } Key { key: Qt.Key_Period weight: normalKeyWidth Layout.fillWidth: false text: "." alternativeKeys: "!,\u060C." highlighted: true } EnterKey { weight: functionKeyWidth Layout.fillWidth: false } } } } Component { id: page2 KeyboardLayout { keyWeight: 160 smallTextVisible: true readonly property real normalKeyWidth: normalKey.width readonly property real functionKeyWidth: mapFromItem(normalKey, normalKey.width / 2, 0).x KeyboardRow { Key { key: Qt.Key_AsciiTilde text: "~" } Key { id: normalKey key: Qt.Key_Agrave text: "`" } Key { key: Qt.Key_Bar text: "|" } Key { key: 0x7B text: "·" } Key { key: 0x221A text: "√" } Key { key: Qt.Key_division text: "÷" } Key { key: Qt.Key_multiply text: "×" } Key { key: Qt.Key_onehalf text: "½" alternativeKeys: "¼⅓½¾⅞" } Key { key: Qt.Key_BraceLeft text: "{" } Key { key: Qt.Key_BraceRight text: "}" } } KeyboardRow { Key { key: Qt.Key_Dollar text: "$" } Key { key: 0x20AC text: "€" } Key { key: 0xC2 text: "£" } Key { key: 0xA2 text: "¢" } Key { key: 0xA5 text: "¥" } Key { key: Qt.Key_AsciiCircum text: "^" } Key { key: Qt.Key_Equal text: "=" } Key { key: Qt.Key_section text: "§" } Key { key: Qt.Key_BracketLeft text: "[" } Key { key: Qt.Key_BracketRight text: "]" } } KeyboardRow { Key { displayText: "2/2" functionKey: true onClicked: secondPage = !secondPage highlighted: true } Key { key: 0x2122 text: '™' } Key { key: 0x00AE text: '®' } Key { key: Qt.Key_guillemotleft text: '«' } Key { key: Qt.Key_guillemotright text: '»' } Key { key: Qt.Key_Colon text: ":" } Key { key: 0x201C text: '“' } Key { key: 0x201D text: '”' } Key { key: Qt.Key_Backslash text: "\\" } BackspaceKey { } } KeyboardRow { SymbolModeKey { weight: functionKeyWidth Layout.fillWidth: false displayText: "\u0623\u200C\u0628\u200C\u062C" } ChangeLanguageKey { weight: normalKeyWidth Layout.fillWidth: false } Key { key: Qt.Key_Comma weight: normalKeyWidth Layout.fillWidth: false text: "\u060C" smallText: "\u2699" smallTextVisible: keyboard.isFunctionPopupListAvailable() highlighted: true } SpaceKey { } Key { key: 0x2026 weight: normalKeyWidth Layout.fillWidth: false text: "\u2026" highlighted: true } EnterKey { weight: functionKeyWidth Layout.fillWidth: false } } } } }