// Copyright (C) 2021 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only import QtQuick import QtQuick.VirtualKeyboard import QtQuick.VirtualKeyboard.Components import QtQuick.Layouts KeyboardLayoutLoader { sharedLayouts: ['symbols'] sourceComponent: InputContext.inputEngine.inputMode === InputEngine.InputMode.Greek ? greekLayout : latinLayout Component { id: greekLayout KeyboardLayout { keyWeight: 160 readonly property real normalKeyWidth: normalKey.width readonly property real functionKeyWidth: mapFromItem(normalKey, normalKey.width / 2, 0).x KeyboardRow { Key { text: "ς" } Key { id: normalKey text: "ε" alternativeKeys: "εέ" } Key { text: "ρ" } Key { text: "τ" } Key { text: "ψ" } Key { text: "υ" alternativeKeys: "υύϋΰ" } Key { text: "θ" } Key { text: "ι" alternativeKeys: "ιίϊΐ" } Key { text: "ο" alternativeKeys: "οό" } Key { text: "π" } } KeyboardRow { KeyboardRow { Layout.preferredWidth: functionKeyWidth Layout.fillWidth: false FillerKey { } Key { text: "α" alternativeKeys: "αά" weight: normalKeyWidth Layout.fillWidth: false } } Key { text: "σ" } Key { text: "δ" } Key { text: "φ" } Key { text: "γ" } Key { text: "η" alternativeKeys: "ηή" } Key { text: "ξ" } Key { text: "κ" } KeyboardRow { Layout.preferredWidth: functionKeyWidth Layout.fillWidth: false Key { text: "λ" weight: normalKeyWidth Layout.fillWidth: false } FillerKey { } } } KeyboardRow { ShiftKey { weight: functionKeyWidth Layout.fillWidth: false } Key { text: "ζ" } Key { text: "χ" } Key { text: "ψ" } Key { text: "ω" alternativeKeys: "ωώ" } Key { text: "β" } Key { text: "ν" } Key { text: "μ" } BackspaceKey { weight: functionKeyWidth Layout.fillWidth: false } } KeyboardRow { SymbolModeKey { weight: functionKeyWidth Layout.fillWidth: false } ChangeLanguageKey { weight: normalKeyWidth Layout.fillWidth: false } Key { key: Qt.Key_Comma weight: normalKeyWidth Layout.fillWidth: false text: "," smallText: "\u2699" smallTextVisible: keyboard.isFunctionPopupListAvailable() highlighted: true } InputModeKey { inputModes: [InputEngine.InputMode.Greek, InputEngine.InputMode.Latin] weight: normalKeyWidth Layout.fillWidth: false } SpaceKey { } Key { key: Qt.Key_Period weight: normalKeyWidth Layout.fillWidth: false text: "." alternativeKeys: "!.?" smallText: "!?" smallTextVisible: true highlighted: true } HideKeyboardKey { weight: normalKeyWidth Layout.fillWidth: false } EnterKey { weight: functionKeyWidth Layout.fillWidth: false } } } } Component { id: latinLayout KeyboardLayout { keyWeight: 160 readonly property real normalKeyWidth: normalKey.width readonly property real functionKeyWidth: mapFromItem(normalKey, normalKey.width / 2, 0).x KeyboardRow { Key { key: Qt.Key_Q text: "q" } Key { id: normalKey key: Qt.Key_W text: "w" } Key { key: Qt.Key_E text: "e" alternativeKeys: "êeëèé" } Key { key: Qt.Key_R text: "r" alternativeKeys: "ŕrř" } Key { key: Qt.Key_T text: "t" alternativeKeys: "ţtŧť" } Key { key: Qt.Key_Y text: "y" alternativeKeys: "ÿyýŷ" } Key { key: Qt.Key_U text: "u" alternativeKeys: "űūũûüuùú" } Key { key: Qt.Key_I text: "i" alternativeKeys: "îïīĩiìí" } Key { key: Qt.Key_O text: "o" alternativeKeys: "œøõôöòóo" } Key { key: Qt.Key_P text: "p" } } KeyboardRow { KeyboardRow { Layout.preferredWidth: functionKeyWidth Layout.fillWidth: false FillerKey { } Key { key: Qt.Key_A text: "a" alternativeKeys: (InputContext.inputMethodHints & (Qt.ImhEmailCharactersOnly | Qt.ImhUrlCharactersOnly)) ? "a@äåãâàá" : "aäåãâàá" smallTextVisible: (InputContext.inputMethodHints & (Qt.ImhEmailCharactersOnly | Qt.ImhUrlCharactersOnly)) weight: normalKeyWidth Layout.fillWidth: false } } Key { key: Qt.Key_S text: "s" alternativeKeys: "šsşś" } Key { key: Qt.Key_D text: "d" alternativeKeys: "dđď" } Key { key: Qt.Key_F text: "f" } Key { key: Qt.Key_G text: "g" alternativeKeys: "ġgģĝğ" } Key { key: Qt.Key_H text: "h" } Key { key: Qt.Key_J text: "j" } Key { key: Qt.Key_K text: "k" } KeyboardRow { Layout.preferredWidth: functionKeyWidth Layout.fillWidth: false Key { key: Qt.Key_L text: "l" alternativeKeys: "ĺŀłļľl" weight: normalKeyWidth Layout.fillWidth: false } FillerKey { } } } KeyboardRow { ShiftKey { weight: functionKeyWidth Layout.fillWidth: false } Key { key: Qt.Key_Z text: "z" alternativeKeys: "zžż" } Key { key: Qt.Key_X text: "x" } Key { key: Qt.Key_C text: "c" alternativeKeys: "çcċčć" } Key { key: Qt.Key_V text: "v" } Key { key: Qt.Key_B text: "b" } Key { key: Qt.Key_N text: "n" alternativeKeys: "ņńnň" } Key { key: Qt.Key_M text: "m" } BackspaceKey { weight: functionKeyWidth Layout.fillWidth: false } } KeyboardRow { SymbolModeKey { weight: functionKeyWidth Layout.fillWidth: false } ChangeLanguageKey { weight: normalKeyWidth Layout.fillWidth: false } Key { key: Qt.Key_Comma weight: normalKeyWidth Layout.fillWidth: false text: "," smallText: "\u2699" smallTextVisible: keyboard.isFunctionPopupListAvailable() highlighted: true } InputModeKey { inputModes: [InputEngine.InputMode.Greek, InputEngine.InputMode.Latin] weight: normalKeyWidth Layout.fillWidth: false } SpaceKey { } Key { key: Qt.Key_Period weight: normalKeyWidth Layout.fillWidth: false text: "." alternativeKeys: "!.?" smallText: "!?" smallTextVisible: true highlighted: true } HideKeyboardKey { weight: normalKeyWidth Layout.fillWidth: false } EnterKey { weight: functionKeyWidth Layout.fillWidth: false } } } } }