diff options
Diffstat (limited to 'src/styles')
75 files changed, 4169 insertions, 1014 deletions
diff --git a/src/styles/CMakeLists.txt b/src/styles/CMakeLists.txt index cff82c77..48c39017 100644 --- a/src/styles/CMakeLists.txt +++ b/src/styles/CMakeLists.txt @@ -1,60 +1,53 @@ -# Generated from styles.pro. +# Copyright (C) 2022 The Qt Company Ltd. +# SPDX-License-Identifier: BSD-3-Clause + +set(styles_imports) +if(NOT QT_FEATURE_vkb_no_builtin_style) + add_subdirectory(builtin) + list(APPEND styles_imports QtQuick.VirtualKeyboard.Styles.Builtin/auto) +endif() ##################################################################### -## qtquickvirtualkeyboardstylesplugin Plugin: +## QtQuick.VirtualKeyboard.Styles ##################################################################### -qt_add_qml_module(qtquickvirtualkeyboardstylesplugin +qt_internal_add_qml_module(qtvkbstylesplugin URI "QtQuick.VirtualKeyboard.Styles" - VERSION "2.${CMAKE_PROJECT_VERSION_MINOR}" - CLASSNAME QtQuickVirtualKeyboardStylesPlugin + VERSION "${PROJECT_VERSION}" + PAST_MAJOR_VERSIONS 2 1 + PLUGIN_TARGET qtvkbstylesplugin + CLASS_NAME "QtQuickVirtualKeyboardStylesPlugin" + # Note: The plugin source is defined manually because it uses an + # image provider. Once the image provider doesn't need an + # engine anymore, we can auto-generate the plugin. + NO_GENERATE_PLUGIN_SOURCE + NO_PLUGIN_OPTIONAL DEPENDENCIES - QtQuick/2.0 - SKIP_TYPE_REGISTRATION + QtQuick/auto + IMPORTS + ${styles_imports} SOURCES qtquickvirtualkeyboardstylesplugin.cpp qtquickvirtualkeyboardstylesplugin.h svgimageprovider.cpp svgimageprovider.h + QML_FILES + KeyboardStyle.qml + KeyIcon.qml + KeyPanel.qml + SelectionListItem.qml + TraceInputKeyPanel.qml + TraceCanvas.qml + TraceUtils.js DEFINES QT_ASCII_CAST_WARNINGS QT_NO_CAST_FROM_ASCII QT_NO_CAST_FROM_BYTEARRAY QT_NO_CAST_TO_ASCII - PUBLIC_LIBRARIES + LIBRARIES Qt::Core Qt::Gui Qt::Qml Qt::Quick Qt::Svg - Qt::VirtualKeyboardPrivate -) - -# Resources: -set(styles_resource_files - "KeyIcon.qml" - "KeyPanel.qml" - "KeyboardStyle.qml" - "SelectionListItem.qml" - "TraceCanvas.qml" - "TraceInputKeyPanel.qml" - "TraceUtils.js" -) - -qt_add_resource(qtquickvirtualkeyboardstylesplugin "styles" - PREFIX - "/QtQuick/VirtualKeyboard/Styles/content" - FILES - ${styles_resource_files} + Qt::VirtualKeyboard + NO_GENERATE_CPP_EXPORTS ) - - -#### Keys ignored in scope 1:.:.:styles.pro:<TRUE>: -# IMPORT_VERSION = "2.$$QT_MINOR_VERSION" -# OTHER_FILES = "plugins.qmltypes" "qmldir" -# TARGETPATH = "QtQuick/VirtualKeyboard/Styles" - -## Scopes: -##################################################################### - -#### Keys ignored in scope 2:.:.:styles.pro:WIN32: -# QMAKE_TARGET_DESCRIPTION = "Virtual Keyboard for Qt." -# QMAKE_TARGET_PRODUCT = "Qt Virtual Keyboard (Qt $$QT_VERSION)" diff --git a/src/styles/KeyIcon.qml b/src/styles/KeyIcon.qml index 645fe11e..5ee413e6 100644 --- a/src/styles/KeyIcon.qml +++ b/src/styles/KeyIcon.qml @@ -1,38 +1,13 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the Qt Virtual Keyboard module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL$ -** 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 General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 or (at your option) 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.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-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only -import QtQuick 2.0 +import QtQuick /*! \qmltype KeyIcon \inqmlmodule QtQuick.VirtualKeyboard.Styles \brief Key icon with adjustable color. + \ingroup qmlclass \ingroup qtvirtualkeyboard-styles-qml The KeyIcon item displays an icon with adjustable color. diff --git a/src/styles/KeyPanel.qml b/src/styles/KeyPanel.qml index 4e12b9a8..a85f0305 100644 --- a/src/styles/KeyPanel.qml +++ b/src/styles/KeyPanel.qml @@ -1,38 +1,13 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the Qt Virtual Keyboard module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL$ -** 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 General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 or (at your option) 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.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-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only -import QtQuick 2.0 +import QtQuick /*! \qmltype KeyPanel \inqmlmodule QtQuick.VirtualKeyboard.Styles \brief A base type of the styled keys. + \ingroup qmlclass \ingroup qtvirtualkeyboard-styles-qml All the key delegates provided by the style should be based on this type. @@ -82,7 +57,8 @@ Item { implicitHeight: keyPanelInfoText.height + 4 Text { id: keyPanelInfoText - text: root.parent.width + "x" + root.parent.height + property point pos: keyboard.keyboardLayoutLoader.item.mapFromItem(root.parent, 0, 0) + text: "(%1,%2)\n%3x%4\nweight: %5".arg(pos.x).arg(pos.y).arg(root.parent.width).arg(root.parent.height).arg(root.parent.control.weight) font.pixelSize: 12 color: "white" anchors.centerIn: parent diff --git a/src/styles/KeyboardStyle.qml b/src/styles/KeyboardStyle.qml index c3a6f4dd..459a885e 100644 --- a/src/styles/KeyboardStyle.qml +++ b/src/styles/KeyboardStyle.qml @@ -1,38 +1,13 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the Qt Virtual Keyboard module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL$ -** 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 General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 or (at your option) 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.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-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -import QtQuick 2.0 +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only + +import QtQuick /*! \qmltype KeyboardStyle \inqmlmodule QtQuick.VirtualKeyboard.Styles \brief Provides a styling interface for the Virtual Keyboard. + \ingroup qmlclass \ingroup qtvirtualkeyboard-styles-qml The style type provides the style definitions that are used by @@ -527,4 +502,31 @@ QtObject { The default color is set to \c fullScreenInputColor. */ property color fullScreenInputSelectedTextColor: fullScreenInputColor + + /*! \since QtQuick.VirtualKeyboard.Styles 6.2 + + Template for the function list item. + + \note The delegate is used in a \l ListView. + + The following properties are available to the item: + \list + \li \c keyboardFunction - Keyboard function of the current item. + \endlist + */ + property Component functionPopupListDelegate: null + + /*! \since QtQuick.VirtualKeyboard.Styles 6.2 + + Template for the function popup list highlight. + + \note The delegate is used as \c ListView.highlight. + */ + property Component functionPopupListHighlight: null + + /*! \since QtQuick.VirtualKeyboard.Styles 6.2 + + Template for the function popup list background. + */ + property Component functionPopupListBackground: null } diff --git a/src/styles/SelectionListItem.qml b/src/styles/SelectionListItem.qml index bea759ed..d6790f44 100644 --- a/src/styles/SelectionListItem.qml +++ b/src/styles/SelectionListItem.qml @@ -1,38 +1,13 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the Qt Virtual Keyboard module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL$ -** 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 General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 or (at your option) 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.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-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only -import QtQuick 2.0 +import QtQuick /*! \qmltype SelectionListItem \inqmlmodule QtQuick.VirtualKeyboard.Styles \brief A base type for selection list item delegates. + \ingroup qmlclass \ingroup qtvirtualkeyboard-styles-qml The SelectionListItem enables mouse handling for the selection list item diff --git a/src/styles/TraceCanvas.qml b/src/styles/TraceCanvas.qml index ce8f03a7..9d17ad7f 100644 --- a/src/styles/TraceCanvas.qml +++ b/src/styles/TraceCanvas.qml @@ -1,39 +1,15 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the Qt Virtual Keyboard module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL$ -** 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 General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 or (at your option) 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.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-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -import QtQuick 2.0 +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only + +import QtQuick import "TraceUtils.js" as TraceUtils +import QtQuick.VirtualKeyboard /*! \qmltype TraceCanvas \inqmlmodule QtQuick.VirtualKeyboard.Styles \brief A specialized Canvas type for rendering Trace objects. + \ingroup qmlclass \ingroup qtvirtualkeyboard-styles-qml \inherits Canvas \since QtQuick.VirtualKeyboard 2.0 @@ -96,19 +72,20 @@ Canvas { /*! Provides access to \l Trace object. */ - property var trace + property Trace trace /*! Enables auto destruction mode. If enabled, this item will be destroyed when the \c trace object is destroyed. - The default value is false. + The default value is false. In this case the canvas can be reused after + onRecycle signal is triggered. */ property bool autoDestroy /*! Specifies the approximate delay in milliseconds, counted from the beginning of the - auto destruction, before the object is to be destroyed. + auto destruction, before the object is to be destroyed or recycled. This delay makes it possible, for example, to animate the item before destruction. @@ -136,7 +113,61 @@ Canvas { __renderPos = TraceUtils.renderSmoothedLine(getContext("2d"), trace, __renderPos) } - onTraceChanged: if (trace === null && autoDestroy) destroy(autoDestroyDelay) + /*! Clears screen and resets the rendering. + + \since QtQuick.VirtualKeyboard.Styles 6.1 + */ + function renderClear() { + var ctx = getContext("2d") + ctx.clearRect(0, 0, width, height) + __renderPos = 0 + } + + /*! Recycles trace canvas by clearing all drawings and resetting the variables. + + The function triggers onRecycle signal after completed (before the return). + + The function returns true when recycling is successful. + + \since QtQuick.VirtualKeyboard.Styles 6.1 + */ + function recycle() { + if (!available) { + destroy() + return false + } + + trace = null + recycleTimer.stop() + opacity = Qt.binding(function() { + return trace ? trace.opacity : 1.0 + }) + requestAnimationFrame(renderClear) + onRecycle(canvas) + + return true + } + + /*! Emitted when the \a traceCanvas is recycled. + + \since QtQuick.VirtualKeyboard.Styles 6.1 + */ + signal onRecycle(var traceCanvas) + + Timer { + id: recycleTimer + interval: canvas.autoDestroyDelay + onTriggered: canvas.recycle() + } + + onTraceChanged: { + if (trace === null) { + if (autoDestroy || !available) + destroy(autoDestroyDelay) + else + recycleTimer.restart() + } + } onAvailableChanged: { __renderingEnabled = available @@ -146,8 +177,8 @@ Canvas { Connections { target: canvas.__renderingEnabled && trace ? trace : null - onLengthChanged: if (renderFunction) canvas.requestAnimationFrame(renderFunction) - onFinalChanged: if (renderFunction) canvas.requestAnimationFrame(renderFunction) + function onLengthChanged() { if (renderFunction) canvas.requestAnimationFrame(renderFunction) } + function onFinalChanged() { if (renderFunction) canvas.requestAnimationFrame(renderFunction) } } opacity: trace ? trace.opacity : 1.0 diff --git a/src/styles/TraceInputKeyPanel.qml b/src/styles/TraceInputKeyPanel.qml index d128a12b..d023103a 100644 --- a/src/styles/TraceInputKeyPanel.qml +++ b/src/styles/TraceInputKeyPanel.qml @@ -1,38 +1,13 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the Qt Virtual Keyboard module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL$ -** 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 General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 or (at your option) 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.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-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only -import QtQuick 2.0 +import QtQuick /*! \qmltype TraceInputKeyPanel \inqmlmodule QtQuick.VirtualKeyboard.Styles \brief A base type of the trace input key. + \ingroup qmlclass \ingroup qtvirtualkeyboard-styles-qml \since QtQuick.VirtualKeyboard 2.0 diff --git a/src/styles/TraceUtils.js b/src/styles/TraceUtils.js index c02ce5e9..d11970c3 100644 --- a/src/styles/TraceUtils.js +++ b/src/styles/TraceUtils.js @@ -1,31 +1,5 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the Qt Virtual Keyboard module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL$ -** 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 General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 or (at your option) 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.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-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only .pragma library diff --git a/src/styles/builtin/CMakeLists.txt b/src/styles/builtin/CMakeLists.txt new file mode 100644 index 00000000..ac3a2491 --- /dev/null +++ b/src/styles/builtin/CMakeLists.txt @@ -0,0 +1,95 @@ +# Copyright (C) 2022 The Qt Company Ltd. +# SPDX-License-Identifier: BSD-3-Clause + +qt_internal_add_qml_module(qtvkbbuiltinstylesplugin + URI "QtQuick.VirtualKeyboard.Styles.Builtin" + VERSION "${PROJECT_VERSION}" + PAST_MAJOR_VERSIONS 2 1 + PLUGIN_TARGET qtvkbbuiltinstylesplugin + CLASS_NAME "QtQuickVirtualKeyboardStylesBuiltinPlugin" + NO_PLUGIN_OPTIONAL + NO_GENERATE_PLUGIN_SOURCE + SOURCES + qtquickvirtualkeyboardbstylesbuiltinplugin.cpp qtquickvirtualkeyboardbstylesbuiltinplugin.h + NO_GENERATE_CPP_EXPORTS +) + +# Resources: +set(virtualkeyboard_default_style_resource_files + "default/images/backspace-fff.svg" + "default/images/check-fff.svg" + "default/images/enter-fff.svg" + "default/images/globe-fff.svg" + "default/images/handwriting-fff.svg" + "default/images/hidekeyboard-fff.svg" + "default/images/search-fff.svg" + "default/images/selectionhandle-bottom.svg" + "default/images/shift-80c342.svg" + "default/images/shift-fff.svg" + "default/images/shift-c5d6b6.svg" + "default/images/textmode-fff.svg" + "default/images/settings-fff.svg" + "default/style.qml" +) + +qt_internal_add_resource(qtvkbbuiltinstylesplugin "virtualkeyboard_default_style" + PREFIX + "/qt-project.org/imports/QtQuick/VirtualKeyboard/Styles/Builtin/default" + BASE + "default" + FILES + ${virtualkeyboard_default_style_resource_files} +) +set(virtualkeyboard_retro_style_resource_files + "retro/images/backspace-c5a96f.svg" + "retro/images/check-c5a96f.svg" + "retro/images/enter-c5a96f.svg" + "retro/images/globe-110b05.svg" + "retro/images/globe-c5a96f.svg" + "retro/images/globe-fff.svg" + "retro/images/handwriting-110b05.svg" + "retro/images/handwriting-c5a96f.svg" + "retro/images/handwriting-fff.svg" + "retro/images/hidekeyboard-110b05.svg" + "retro/images/hidekeyboard-c5a96f.svg" + "retro/images/hidekeyboard-fff.svg" + "retro/images/key154px_black.png" + "retro/images/key154px_black.svg" + "retro/images/key154px_black_long.png" + "retro/images/key154px_capslock.png" + "retro/images/key154px_capslock_long.png" + "retro/images/key154px_colorA.png" + "retro/images/key154px_colorA.svg" + "retro/images/key154px_colorA_long.png" + "retro/images/key154px_colorB.png" + "retro/images/key154px_shiftcase.png" + "retro/images/key154px_shiftcase_long.png" + "retro/images/key156px_black_long.png" + "retro/images/key156px_black_medium_long.png" + "retro/images/key156px_colorA.png" + "retro/images/key156px_colorB.png" + "retro/images/key160px_black.png" + "retro/images/key160px_colorA.png" + "retro/images/key160px_colorB.png" + "retro/images/key_preview.png" + "retro/images/search-c5a96f.svg" + "retro/images/selectionhandle-bottom.svg" + "retro/images/shift-c5a96f.svg" + "retro/images/shift-cd8865.svg" + "retro/images/shift-dc4f28.svg" + "retro/images/textmode-110b05.svg" + "retro/images/textmode-c5a96f.svg" + "retro/images/textmode-fff.svg" + "retro/images/triangle_black.png" + "retro/images/triangle_highlight.png" + "retro/style.qml" +) + +qt_internal_add_resource(qtvkbbuiltinstylesplugin "virtualkeyboard_retro_style" + PREFIX + "/qt-project.org/imports/QtQuick/VirtualKeyboard/Styles/Builtin/retro" + BASE + "retro" + FILES + ${virtualkeyboard_retro_style_resource_files} +) diff --git a/src/styles/builtin/default/images/backspace-fff.svg b/src/styles/builtin/default/images/backspace-fff.svg new file mode 100644 index 00000000..e3dac14a --- /dev/null +++ b/src/styles/builtin/default/images/backspace-fff.svg @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + width="159px" height="88px" viewBox="0 0 159 88" enable-background="new 0 0 159 88" xml:space="preserve"> +<g> + <rect fill="none" width="159" height="88"/> + <g> + <g> + <path fill="#fff" d="M158.8,88H44L0,44L44,0h114.8V88z M48.7,76.7h98.8V11.3H48.7L16,44L48.7,76.7z"/> + </g> + <g> + <g> + + <rect x="87.3" y="16.2" transform="matrix(-0.7071 -0.7071 0.7071 -0.7071 127.5895 140.8497)" fill="#fff" width="11.3" height="55.7"/> + </g> + <g> + + <rect x="65.1" y="38.4" transform="matrix(-0.7071 -0.7071 0.7071 -0.7071 127.5954 140.8499)" fill="#fff" width="55.7" height="11.3"/> + </g> + </g> + </g> +</g> +</svg> diff --git a/src/styles/builtin/default/images/check-fff.svg b/src/styles/builtin/default/images/check-fff.svg new file mode 100644 index 00000000..9e5ebb00 --- /dev/null +++ b/src/styles/builtin/default/images/check-fff.svg @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + width="170px" height="119px" viewBox="0 0 170 119" enable-background="new 0 0 170 119" xml:space="preserve"> +<g> + <polygon fill="#fff" points="62.3,119 0,56.7 11.3,45.3 62.3,96.3 158.7,0 170,11.3 "/> +</g> +</svg> diff --git a/src/styles/builtin/default/images/enter-fff.svg b/src/styles/builtin/default/images/enter-fff.svg new file mode 100644 index 00000000..3a400341 --- /dev/null +++ b/src/styles/builtin/default/images/enter-fff.svg @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + width="211px" height="80px" viewBox="0 0 211 80" enable-background="new 0 0 211 80" xml:space="preserve"> +<g> + <rect fill="none" width="211" height="80"/> + <g> + <rect x="9.2" y="33.8" fill="#fff" width="201.8" height="12.3"/> + <rect x="198.7" y="10.7" fill="#fff" width="12.3" height="35.3"/> + <polygon fill="#fff" points="44.5,0 44.5,79.8 0,40.7 "/> + </g> +</g> +</svg> diff --git a/src/styles/builtin/default/images/globe-fff.svg b/src/styles/builtin/default/images/globe-fff.svg new file mode 100644 index 00000000..e865b9fd --- /dev/null +++ b/src/styles/builtin/default/images/globe-fff.svg @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + width="144px" height="144px" viewBox="0 0 144 144" enable-background="new 0 0 144 144" xml:space="preserve"> +<g> + <rect fill="none" width="144" height="144"/> + <g> + <path fill="#fff" d="M72,144c-39.5,0-71.8-32.1-72-71.6C-0.2,32.7,31.9,0.2,71.6,0h0.7c19.1,0.1,37.1,7.6,50.6,21.1 + s21,31.5,21.1,50.5c0.1,19.2-7.3,37.4-20.8,51c-13.5,13.7-31.6,21.3-50.8,21.4C72.2,144,72.1,144,72,144z M76.3,101.3v32.3 + c9-8.1,16-17.9,20.6-28.7C90.2,102.9,83.3,101.7,76.3,101.3z M47,104.9c3.2,7.4,7.5,14.3,12.8,20.6c2.4,2.9,5.1,5.6,7.9,8.1v-32.3 + C60.7,101.7,53.8,102.9,47,104.9z M105.2,107.9c-3.9,9.2-9.2,17.6-15.9,25.1c10.4-2.9,19.9-8.5,27.8-16.4c0.5-0.5,1-1.1,1.6-1.6 + C114.3,112.1,109.8,109.8,105.2,107.9z M25.5,114.9c7.8,8.5,17.9,14.8,29.3,18c-0.5-0.6-1.1-1.2-1.6-1.8 + c-6-7.1-10.8-14.9-14.3-23.3C34.2,109.8,29.8,112.1,25.5,114.9z M108.1,99.7c5.5,2.3,10.8,5.1,15.9,8.4 + c6.5-9.4,10.4-20.3,11.2-31.8h-22.9c-0.1,1.2-0.1,2.4-0.2,3.7C111.4,86.8,110.1,93.4,108.1,99.7z M8.8,76.3 + C9.6,88.1,13.6,99,20,108.1c5.1-3.3,10.4-6.1,15.8-8.4c-2.4-7.5-3.7-15.4-4.1-23.4L8.8,76.3L8.8,76.3z M40.4,76.3 + c0.3,7,1.5,13.8,3.6,20.4c7.7-2.4,15.7-3.8,23.7-4.1V76.3H40.4z M76.3,92.6c8,0.4,15.9,1.7,23.6,4.1c1.7-5.6,2.9-11.5,3.4-17.5 + c0.1-1,0.1-2,0.2-2.9H76.3V92.6z M112.2,67.7h23c-0.8-11.5-4.6-22.4-11.2-31.8c-5.1,3.4-10.5,6.2-16.1,8.5 + C110.4,51.9,111.8,59.7,112.2,67.7z M76.3,67.7h27.2c-0.4-7-1.6-13.8-3.7-20.4c-7.7,2.4-15.5,3.7-23.5,4.1V67.7z M40.5,67.7h27.2 + V51.4c-7.9-0.4-15.8-1.7-23.4-4.1c-1.8,5.8-3,11.9-3.6,18.1C40.6,66.2,40.5,66.9,40.5,67.7z M8.8,67.7h23c0.1-1,0.1-2,0.2-3 + c0.6-7,2-13.8,4-20.3c-5.5-2.3-10.9-5.1-16-8.5C13.6,45,9.6,55.9,8.8,67.7z M76.3,11.1v31.6c6.9-0.3,13.7-1.5,20.4-3.5 + c-3.1-7.1-7.3-13.9-12.5-20C81.8,16.3,79.1,13.6,76.3,11.1z M47.3,39.2c6.7,2,13.5,3.2,20.4,3.5V11.1C58.8,19,51.9,28.6,47.3,39.2 + z M88.4,10.8c0.8,0.9,1.6,1.8,2.4,2.8c5.9,6.9,10.6,14.6,14.1,22.7c4.7-2,9.3-4.3,13.7-7.2c-0.6-0.6-1.2-1.2-1.8-1.9 + C108.8,19.2,99,13.6,88.4,10.8z M25.5,29.1c4.4,2.8,8.9,5.2,13.6,7.1c4-9.3,9.5-17.9,16.5-25.4C43.8,14,33.5,20.4,25.5,29.1z"/> + </g> +</g> +</svg> diff --git a/src/styles/builtin/default/images/handwriting-fff.svg b/src/styles/builtin/default/images/handwriting-fff.svg new file mode 100644 index 00000000..cc74e1d5 --- /dev/null +++ b/src/styles/builtin/default/images/handwriting-fff.svg @@ -0,0 +1,62 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.1" + id="Layer_1" + x="0px" + y="0px" + width="156" + height="156" + viewBox="0 0 156 156" + enable-background="new 0 0 156 104" + xml:space="preserve" + sodipodi:docname="handwriting-868482.svg" + inkscape:version="1.0.2-2 (e86c870879, 2021-01-15)"><metadata + id="metadata15"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs + id="defs13" /><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="1920" + inkscape:window-height="1055" + id="namedview11" + showgrid="false" + inkscape:zoom="6.6858974" + inkscape:cx="78" + inkscape:cy="52" + inkscape:window-x="-7" + inkscape:window-y="-7" + inkscape:window-maximized="1" + inkscape:current-layer="Layer_1" /> +<g + id="g8" + transform="translate(0,26.023835)"> + <rect + fill="none" + width="156" + height="104" + id="rect2" + x="0" + y="0" /> + <g + id="g6"> + <path + fill="#ffffff" + d="M 37.6,103.3 C 27.5,103.3 18.7,98.3 14.5,89.7 4.4,68.7 19.9,52.3 36.2,35 37.4,33.8 38.6,32.5 39.8,31.2 45.1,25.5 45,19.7 43.3,16.4 41.5,13 37.8,11.5 33.1,12.2 16.6,14.8 11.9,38.6 11.9,38.8 L 0,36.6 C 0.3,35.3 6.4,4.3 31.2,0.3 41,-1.3 49.7,2.7 53.9,10.7 c 4.7,8.9 2.6,20.1 -5.3,28.6 -1.2,1.3 -2.4,2.6 -3.6,3.8 -16.7,17.8 -25.9,28.5 -19.6,41.4 3.3,6.8 11.1,7.6 16.9,6.3 C 51.5,88.7 62.1,79.7 62,61.3 61.8,33.2 78.2,19.5 92.2,16.4 c 14.5,-3.2 28.4,3.6 34.7,17 1.3,2.8 2.3,5.4 3.1,8.1 13.3,0.7 25.5,4.3 26,4.4 l -3.4,11.5 c -0.1,0 -9.7,-2.8 -20.6,-3.8 0.5,16.5 -8.6,28.9 -20.1,34.7 -11.9,6 -24,3.8 -28.9,-5.2 -3.1,-5.6 -1.9,-14.7 2.9,-22.5 7.9,-13 21.3,-17.4 31.5,-18.8 C 117,40.6 116.5,39.4 116,38.4 112.1,30.1 103.8,26 94.9,28 c -9.7,2.2 -21,12.1 -20.8,33.1 0.2,25.5 -15.6,38.1 -29,41.3 -2.6,0.6 -5.1,0.9 -7.5,0.9 z m 82.2,-49.6 c -14,1.5 -20.6,8.5 -23.4,12.9 -3.3,5.2 -3.4,9.8 -2.9,10.9 1.6,2.9 7.3,3 13,0.2 10.8,-5.5 13.8,-15.1 13.3,-24 z" + id="path4" /> + </g> +</g> +</svg> diff --git a/src/styles/builtin/default/images/hidekeyboard-fff.svg b/src/styles/builtin/default/images/hidekeyboard-fff.svg new file mode 100644 index 00000000..a4f0b9b3 --- /dev/null +++ b/src/styles/builtin/default/images/hidekeyboard-fff.svg @@ -0,0 +1,55 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + width="144px" height="127px" viewBox="0 0 144 127" enable-background="new 0 0 144 127" xml:space="preserve"> +<g> + <rect fill="none" width="144" height="127"/> + <g> + <g> + <path fill="#fff" d="M144,90.3H0V0h144V90.3z M10.9,79.4h122.2V10.9H10.9V79.4z"/> + </g> + <g> + <rect x="19.5" y="20.2" fill="#fff" width="11.7" height="11.7"/> + </g> + <g> + <rect x="38.1" y="20.2" fill="#fff" width="11.7" height="11.7"/> + </g> + <g> + <rect x="56.8" y="20.2" fill="#fff" width="11.7" height="11.7"/> + </g> + <g> + <rect x="75.5" y="20.2" fill="#fff" width="11.7" height="11.7"/> + </g> + <g> + <rect x="94.2" y="20.2" fill="#fff" width="11.7" height="11.7"/> + </g> + <g> + <rect x="112.9" y="20.2" fill="#fff" width="11.7" height="11.7"/> + </g> + <g> + <rect x="19.5" y="39.7" fill="#fff" width="11.7" height="11.7"/> + </g> + <g> + <rect x="38.1" y="39.7" fill="#fff" width="11.7" height="11.7"/> + </g> + <g> + <rect x="56.8" y="39.7" fill="#fff" width="11.7" height="11.7"/> + </g> + <g> + <rect x="75.5" y="39.7" fill="#fff" width="11.7" height="11.7"/> + </g> + <g> + <rect x="94.2" y="39.7" fill="#fff" width="11.7" height="11.7"/> + </g> + <g> + <rect x="112.9" y="39.7" fill="#fff" width="11.7" height="11.7"/> + </g> + <g> + <rect x="38.1" y="59.2" fill="#fff" width="67.7" height="11.7"/> + </g> + <g> + <polygon fill="#fff" points="72,115.2 62.2,108.2 45.9,108.2 72,126.9 98.1,108.2 81.8,108.2 "/> + </g> + </g> +</g> +</svg> diff --git a/src/styles/builtin/default/images/search-fff.svg b/src/styles/builtin/default/images/search-fff.svg new file mode 100644 index 00000000..9c21e291 --- /dev/null +++ b/src/styles/builtin/default/images/search-fff.svg @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + width="148px" height="148px" viewBox="0 0 148 148" enable-background="new 0 0 148 148" xml:space="preserve"> +<g> + <rect fill="none" width="148" height="148"/> + <g> + <path fill="#fff" d="M146.8,132.7c1.6,1.6,1.6,4.1,0,5.7l-8.5,8.5c-1.6,1.6-4.1,1.6-5.7,0l-44.6-44.6c-1.6-1.6-1.6-4.1,0-5.7 + l8.5-8.5c1.6-1.6,4.1-1.6,5.7,0L146.8,132.7z"/> + <path fill="#fff" d="M58,12c25.4,0,46,20.6,46,46s-20.6,46-46,46c-25.4,0-46-20.6-46-46S32.6,12,58,12 M58,0C26,0,0,26,0,58 + s26,58,58,58c32,0,58-26,58-58S90,0,58,0L58,0z"/> + </g> +</g> +</svg> diff --git a/src/styles/builtin/default/images/selectionhandle-bottom.svg b/src/styles/builtin/default/images/selectionhandle-bottom.svg new file mode 100644 index 00000000..312e3ab5 --- /dev/null +++ b/src/styles/builtin/default/images/selectionhandle-bottom.svg @@ -0,0 +1,201 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:osb="http://www.openswatchbook.org/uri/2009/osb" + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="405.39487" + height="603.25201" + id="svg2" + version="1.1" + inkscape:version="0.48.4 r9939" + sodipodi:docname="selectionhandle-bottom.svg"> + <defs + id="defs4"> + <linearGradient + inkscape:collect="always" + id="linearGradient3964"> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="0" + id="stop3966" /> + <stop + style="stop-color:#000000;stop-opacity:0;" + offset="1" + id="stop3968" /> + </linearGradient> + <linearGradient + id="linearGradient3825" + osb:paint="solid"> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="0" + id="stop3827" /> + </linearGradient> + <linearGradient + id="linearGradient3797"> + <stop + style="stop-color:#a7a7a7;stop-opacity:1;" + offset="0" + id="stop3799" /> + <stop + style="stop-color:#959595;stop-opacity:1;" + offset="1" + id="stop3801" /> + </linearGradient> + <filter + id="filter3991" + inkscape:label="Drop Shadow" + color-interpolation-filters="sRGB"> + <feFlood + id="feFlood3993" + flood-opacity="0.9" + flood-color="rgb(0,0,0)" + result="flood" /> + <feComposite + id="feComposite3995" + in2="SourceGraphic" + in="flood" + operator="in" + result="composite1" /> + <feGaussianBlur + id="feGaussianBlur3997" + stdDeviation="9" + result="blur" /> + <feOffset + id="feOffset3999" + dx="-4" + dy="-4" + result="offset" /> + <feComposite + id="feComposite4001" + in2="offset" + in="SourceGraphic" + operator="over" + result="fbSourceGraphic" /> + <feColorMatrix + result="fbSourceGraphicAlpha" + in="fbSourceGraphic" + values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0" + id="feColorMatrix4003" /> + <feFlood + id="feFlood4005" + flood-opacity="0.9" + flood-color="rgb(0,0,0)" + result="flood" + in="fbSourceGraphic" /> + <feComposite + id="feComposite4007" + in2="fbSourceGraphic" + in="flood" + operator="in" + result="composite1" /> + <feGaussianBlur + id="feGaussianBlur4009" + stdDeviation="9" + result="blur" /> + <feOffset + id="feOffset4011" + dx="-4" + dy="-4" + result="offset" /> + <feComposite + id="feComposite4013" + in2="offset" + in="fbSourceGraphic" + operator="over" + result="composite2" /> + </filter> + <filter + inkscape:collect="always" + id="filter3941" + x="-0.31598809" + width="1.6319762" + y="-0.21141379" + height="1.4228276" + color-interpolation-filters="sRGB"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="52.664682" + id="feGaussianBlur3943" /> + </filter> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3964" + id="linearGradient3970" + x1="77.14286" + y1="559.86218" + x2="477.14285" + y2="559.86218" + gradientUnits="userSpaceOnUse" /> + <filter + inkscape:collect="always" + id="filter4040" + color-interpolation-filters="sRGB"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.49892857" + id="feGaussianBlur4042" /> + </filter> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="0.83834513" + inkscape:cx="219.23008" + inkscape:cy="314.00438" + inkscape:document-units="px" + inkscape:current-layer="layer1" + showgrid="false" + inkscape:window-width="1176" + inkscape:window-height="719" + inkscape:window-x="188" + inkscape:window-y="121" + inkscape:window-maximized="0" + fit-margin-top="1" + fit-margin-left="1" + fit-margin-right="1" + fit-margin-bottom="1" /> + <metadata + id="metadata7"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:groupmode="layer" + id="layer2" + inkscape:label="Lag" + style="display:inline" + transform="translate(-125.874,-261.09332)" /> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(-125.874,-261.09332)"> + <path + style="fill:#bfbfbf;fill-opacity:1;stroke:url(#linearGradient3970);filter:url(#filter4040)" + d="m 477.14286,660.93361 0,-400 -400.000003,0 0,400 200.714283,197.85714 z" + id="path2987" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccccc" + transform="matrix(-1,0,0,-1,605.71429,1122.5815)" /> + </g> +</svg> diff --git a/src/styles/builtin/default/images/settings-fff.svg b/src/styles/builtin/default/images/settings-fff.svg new file mode 100644 index 00000000..fdda82fa --- /dev/null +++ b/src/styles/builtin/default/images/settings-fff.svg @@ -0,0 +1,61 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + width="16.303936mm" + height="16.548409mm" + viewBox="0 0 16.303937 16.548409" + version="1.1" + id="svg5" + inkscape:version="1.1-alpha (b0f32e08fc, 2021-03-07)" + sodipodi:docname="settings.svg" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg"> + <sodipodi:namedview + id="namedview7" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + objecttolerance="10.0" + gridtolerance="10.0" + guidetolerance="10.0" + inkscape:pageshadow="2" + inkscape:pageopacity="0.0" + inkscape:pagecheckerboard="0" + inkscape:document-units="mm" + showgrid="false" + inkscape:zoom="4.2532751" + inkscape:cx="-41.732546" + inkscape:cy="41.967659" + inkscape:window-width="1848" + inkscape:window-height="1016" + inkscape:window-x="72" + inkscape:window-y="27" + inkscape:window-maximized="1" + inkscape:current-layer="layer1" + inkscape:snap-others="false" + fit-margin-top="0.1" + fit-margin-right="0.1" + fit-margin-bottom="0.1" + fit-margin-left="0.1" /> + <defs + id="defs2" /> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + style="display:inline" + transform="translate(-86.699353,-53.971583)"> + <path + id="path914" + style="fill:#fff;fill-opacity:1;stroke:none;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + inkscape:transform-center-y="-7.0565799" + d="M 93.952921,54.071633 93.755,55.875142 a 6.4693593,6.4693593 0 0 0 -1.75028,0.583427 l -1.230934,-1.354439 -1.454174,1.056783 0.904854,1.584399 a 6.4693593,6.4693593 0 0 0 -1.094507,1.488797 l -1.775084,-0.368969 -0.555522,1.708941 1.647444,0.743106 a 6.4693593,6.4693593 0 0 0 -0.08165,0.932243 6.4693593,6.4693593 0 0 0 0.08113,0.925523 l -1.646928,0.742075 0.555522,1.709457 1.771467,-0.367938 a 6.4693593,6.4693593 0 0 0 1.095539,1.492933 l -0.902269,1.579231 1.454174,1.056267 1.225764,-1.348237 a 6.4693593,6.4693593 0 0 0 1.755966,0.58601 l 0.197405,1.79524 h 1.797304 l 0.197406,-1.798341 a 6.4693593,6.4693593 0 0 0 1.731161,-0.58756 l 0.0186,-0.0021 1.231966,1.355471 1.453666,-1.056783 -0.907963,-1.590082 0.01447,-0.03152 A 6.4693593,6.4693593 0 0 0 100.537,65.270404 l 0.0181,-0.01654 1.79317,0.372586 0.55501,-1.708941 -1.66967,-0.752925 -0.007,-0.03359 a 6.4693593,6.4693593 0 0 0 0.077,-0.8816 6.4693593,6.4693593 0 0 0 -0.0692,-0.922941 l 1.66864,-0.751893 -0.55501,-1.709457 -1.7911,0.372071 a 6.4693593,6.4693593 0 0 0 -1.080039,-1.489832 l 0.906399,-1.586466 -1.454168,-1.056266 -1.225765,1.347721 a 6.4693593,6.4693593 0 0 0 -1.754933,-0.575159 l -0.198438,-1.805575 z m 0.8816,3.507798 a 4.6701392,4.6701392 0 0 1 4.669999,4.669999 4.6701392,4.6701392 0 0 1 -4.669999,4.670515 4.6701392,4.6701392 0 0 1 -4.669999,-4.670515 4.6701392,4.6701392 0 0 1 4.669999,-4.669999 z" /> + <circle + style="display:inline;fill:#fff;fill-opacity:1;stroke:none;stroke-width:0.529167;stroke-linejoin:round;stroke-opacity:1" + id="circle12597" + cx="94.834518" + cy="62.249687" + r="1.7568086" /> + </g> +</svg> diff --git a/src/styles/builtin/default/images/shift-80c342.svg b/src/styles/builtin/default/images/shift-80c342.svg new file mode 100644 index 00000000..d39a2230 --- /dev/null +++ b/src/styles/builtin/default/images/shift-80c342.svg @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + width="144px" height="134px" viewBox="0 0 144 134" enable-background="new 0 0 144 134" xml:space="preserve"> +<g> + <rect fill="none" width="144" height="134"/> + <g> + <path fill="#80C342" d="M103.6,134H40.2V77.5H0L71.9,0l71.9,77.5h-40.2V134L103.6,134z M51.7,122.5h40.5V66.1h25.4L71.9,16.8 + L26.2,66.1h25.4L51.7,122.5L51.7,122.5z"/> + </g> +</g> +</svg> diff --git a/src/styles/builtin/default/images/shift-c5d6b6.svg b/src/styles/builtin/default/images/shift-c5d6b6.svg new file mode 100644 index 00000000..22f9d5de --- /dev/null +++ b/src/styles/builtin/default/images/shift-c5d6b6.svg @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + width="144px" height="134px" viewBox="0 0 144 134" enable-background="new 0 0 144 134" xml:space="preserve"> +<g> + <rect fill="none" width="144" height="134"/> + <g> + <path fill="#C5D6B6" d="M103.6,134H40.2V77.5H0L71.9,0l71.9,77.5h-40.2V134L103.6,134z M51.7,122.5h40.5V66.1h25.4L71.9,16.8 + L26.2,66.1h25.4L51.7,122.5L51.7,122.5z"/> + </g> +</g> +</svg> diff --git a/src/styles/builtin/default/images/shift-fff.svg b/src/styles/builtin/default/images/shift-fff.svg new file mode 100644 index 00000000..ff65317b --- /dev/null +++ b/src/styles/builtin/default/images/shift-fff.svg @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + width="144px" height="134px" viewBox="0 0 144 134" enable-background="new 0 0 144 134" xml:space="preserve"> +<g> + <rect fill="none" width="144" height="134"/> + <g> + <path fill="#fff" d="M103.6,134H40.2V77.5H0L71.9,0l71.9,77.5h-40.2V134L103.6,134z M51.7,122.5h40.5V66.1h25.4L71.9,16.8 + L26.2,66.1h25.4L51.7,122.5L51.7,122.5z"/> + </g> +</g> +</svg> diff --git a/src/styles/builtin/default/images/textmode-fff.svg b/src/styles/builtin/default/images/textmode-fff.svg new file mode 100644 index 00000000..bdb144cd --- /dev/null +++ b/src/styles/builtin/default/images/textmode-fff.svg @@ -0,0 +1,80 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.1" + id="Layer_1" + x="0px" + y="0px" + width="124" + height="124" + viewBox="0 0 124 124" + enable-background="new 0 0 124 96" + xml:space="preserve" + sodipodi:docname="textmode-868482.svg" + inkscape:version="1.0.2-2 (e86c870879, 2021-01-15)"><metadata + id="metadata25"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs + id="defs23" /><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="1920" + inkscape:window-height="1055" + id="namedview21" + showgrid="false" + inkscape:zoom="8.4112903" + inkscape:cx="62" + inkscape:cy="48" + inkscape:window-x="-7" + inkscape:window-y="-7" + inkscape:window-maximized="1" + inkscape:current-layer="Layer_1" /> +<g + id="g18" + transform="translate(0,14)"> + <g + id="g14"> + <g + id="g6"> + <path + fill="#ffffff" + d="M 55.4,70.8 46.9,49 H 19.4 L 11,70.8 H 2.9 L 30,2 h 6.7 l 27,68.8 z m -11,-29 -8,-21.2 c -1,-2.7 -2.1,-6 -3.2,-9.9 -0.7,3 -1.7,6.3 -3,9.9 l -8.1,21.2 z" + id="path2" /> + <path + fill="#ffffff" + d="M 66.6,72.8 H 54.1 L 45.5,51 H 20.8 L 12.4,72.8 H 0 L 28.7,0 h 9.4 z m -9.8,-4 h 4 L 35.4,4 h -1.9 l 1.7,6.2 c 1.1,3.8 2.1,7.1 3.1,9.7 l 9,24 h -28 L 28.4,20 c 1.2,-3.5 2.2,-6.7 2.9,-9.6 L 32.8,4 H 31.4 L 5.9,68.8 H 9.7 L 18.1,47 h 30.2 z m -31.7,-29 h 16.4 l -7,-18.5 c -0.4,-1.1 -0.8,-2.2 -1.2,-3.4 -0.4,1.1 -0.7,2.2 -1.2,3.4 z" + id="path4" /> + </g> + <g + id="g12"> + <path + fill="#ffffff" + d="m 116.2,70.8 -1.5,-7.3 h -0.4 c -2.6,3.2 -5.1,5.4 -7.7,6.5 -2.6,1.1 -5.7,1.7 -9.5,1.7 -5.1,0 -9.1,-1.3 -12,-3.9 -2.9,-2.6 -4.3,-6.4 -4.3,-11.2 0,-10.4 8.3,-15.8 24.9,-16.3 l 8.7,-0.3 v -3.2 c 0,-4 -0.9,-7 -2.6,-8.9 C 110.1,26 107.3,25 103.5,25 99.2,25 94.4,26.3 89,28.9 l -2.4,-6 c 2.5,-1.4 5.3,-2.5 8.3,-3.2 3,-0.7 6,-1.2 9.1,-1.2 6.1,0 10.7,1.4 13.6,4.1 2.9,2.7 4.4,7.1 4.4,13.1 V 70.8 Z M 98.7,65.3 c 4.8,0 8.6,-1.3 11.4,-4 2.8,-2.7 4.1,-6.4 4.1,-11.2 v -4.6 l -7.8,0.3 C 100.2,46 95.8,47 93,48.7 c -2.8,1.7 -4,4.4 -4,8 0,2.8 0.9,5 2.6,6.4 1.7,1.4 4,2.2 7.1,2.2 z" + id="path8" /> + <path + fill="#ffffff" + d="m 97.1,73.8 c -5.6,0 -10.1,-1.5 -13.3,-4.5 -3.3,-3 -5,-7.3 -5,-12.7 0,-11.6 9,-17.8 26.8,-18.3 l 6.8,-0.2 v -1.3 c 0,-3.5 -0.7,-6.1 -2.1,-7.6 -1.3,-1.5 -3.6,-2.2 -6.8,-2.2 -4,0 -8.6,1.3 -13.7,3.7 l -1.9,0.9 -3.9,-9.5 1.6,-0.8 c 2.7,-1.4 5.6,-2.6 8.8,-3.4 3.2,-0.8 6.4,-1.2 9.6,-1.2 6.6,0 11.7,1.6 15,4.6 3.4,3.1 5.1,8 5.1,14.5 v 37.1 h -9.4 l -1.1,-5.3 c -2,2 -4,3.5 -6,4.4 -2.9,1.1 -6.4,1.8 -10.5,1.8 z M 103.5,23 c 4.4,0 7.7,1.2 9.8,3.5 2.1,2.3 3.1,5.7 3.1,10.3 V 42 l -10.7,0.3 c -23,0.7 -23,10.9 -23,14.3 0,4.3 1.2,7.5 3.7,9.7 2.5,2.3 6.1,3.4 10.6,3.4 3.5,0 6.4,-0.5 8.7,-1.5 2.2,-1 4.6,-3 6.9,-6 l 0.6,-0.8 h 2.6 l 0.7,1.6 1.2,5.7 h 2.1 V 35.8 c 0,-5.4 -1.3,-9.3 -3.8,-11.6 -2.6,-2.4 -6.7,-3.5 -12.3,-3.5 -2.8,0 -5.7,0.4 -8.6,1.1 -2.2,0.6 -4.3,1.3 -6.3,2.3 l 0.9,2.3 C 94.9,24.1 99.4,23 103.5,23 Z m -4.8,44.3 c -3.5,0 -6.4,-0.9 -8.5,-2.7 C 88,62.8 87,60.1 87,56.7 c 0,-4.3 1.7,-7.6 5,-9.6 3.1,-1.9 7.8,-3 14.4,-3.2 l 9.9,-0.4 v 6.7 c 0,5.3 -1.6,9.6 -4.8,12.6 -3.2,3 -7.5,4.5 -12.8,4.5 z m 13.5,-19.7 -5.7,0.2 c -5.8,0.2 -10,1.1 -12.4,2.6 -2.1,1.4 -3.1,3.4 -3.1,6.3 0,2.2 0.6,3.8 1.9,4.9 1.3,1.1 3.3,1.7 5.8,1.7 4.3,0 7.6,-1.1 10,-3.4 2.4,-2.3 3.5,-5.5 3.5,-9.7 z" + id="path10" /> + </g> + </g> + <rect + y="88" + fill="#ffffff" + width="124" + height="8" + id="rect16" + x="0" /> +</g> +</svg> diff --git a/src/styles/builtin/default/style.qml b/src/styles/builtin/default/style.qml new file mode 100644 index 00000000..0681ef43 --- /dev/null +++ b/src/styles/builtin/default/style.qml @@ -0,0 +1,1215 @@ +// Copyright (C) 2016 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.Styles + +KeyboardStyle { + id: currentStyle + readonly property bool compactSelectionList: [InputEngine.InputMode.Pinyin, InputEngine.InputMode.Cangjie, InputEngine.InputMode.Zhuyin].indexOf(InputContext.inputEngine.inputMode) !== -1 + readonly property string fontFamily: "Sans" + readonly property real keyBackgroundMargin: Math.round(8 * scaleHint) + readonly property real keyContentMargin: Math.round(40 * scaleHint) + readonly property real keyIconScale: scaleHint * 0.8 + readonly property string resourcePrefix: "qrc:/qt-project.org/imports/QtQuick/VirtualKeyboard/Styles/Builtin/default/" + + readonly property string inputLocale: InputContext.locale + property color primaryColor: "#263238" + property color primaryLightColor: "#4f5b62" + property color primaryDarkColor: "#000a12" + property color textOnPrimaryColor: "#ffffff" + property color secondaryColor: "#01579b" + property color secondaryLightColor: "#4f83cc" + property color secondaryDarkColor: "#002f6c" + property color textOnSecondaryColor: "#ffffff" + + property color keyboardBackgroundColor: primaryColor + property color normalKeyBackgroundColor: primaryDarkColor + property color highlightedKeyBackgroundColor: primaryLightColor + property color capsLockKeyAccentColor: secondaryColor + property color modeKeyAccentColor: textOnPrimaryColor + property color keyTextColor: textOnPrimaryColor + property color keySmallTextColor: textOnPrimaryColor + property color popupBackgroundColor: secondaryColor + property color popupBorderColor: secondaryLightColor + property color popupTextColor: textOnSecondaryColor + property color popupHighlightColor: secondaryLightColor + property color selectionListTextColor: textOnPrimaryColor + property color selectionListSeparatorColor: primaryLightColor + property color selectionListBackgroundColor: primaryColor + property color navigationHighlightColor: "yellow" + + property real inputLocaleIndicatorOpacity: 1.0 + property Timer inputLocaleIndicatorHighlightTimer: Timer { + interval: 1000 + onTriggered: inputLocaleIndicatorOpacity = 0.5 + } + onInputLocaleChanged: { + inputLocaleIndicatorOpacity = 1.0 + inputLocaleIndicatorHighlightTimer.restart() + } + + property Component component_settingsIcon: Component { + Image { + sourceSize.width: 80 * keyIconScale + sourceSize.height: 80 * keyIconScale + smooth: false + source: resourcePrefix + "images/settings-fff.svg" + } + } + + keyboardDesignWidth: 2560 + keyboardDesignHeight: 800 + keyboardRelativeLeftMargin: 6 / keyboardDesignWidth + keyboardRelativeRightMargin: 6 / keyboardDesignWidth + keyboardRelativeTopMargin: 6 / keyboardDesignHeight + keyboardRelativeBottomMargin: 6 / keyboardDesignHeight + + keyboardBackground: Rectangle { + color: keyboardBackgroundColor + } + + keyPanel: KeyPanel { + id: keyPanel + Rectangle { + id: keyBackground + radius: 5 + color: control && control.highlighted ? highlightedKeyBackgroundColor : normalKeyBackgroundColor + anchors.fill: keyPanel + anchors.margins: keyBackgroundMargin + Text { + id: keySmallText + text: control.smallText + visible: control.smallTextVisible + color: keySmallTextColor + anchors.right: parent.right + anchors.top: parent.top + anchors.margins: keyContentMargin / 3 + font { + family: fontFamily + weight: Font.Normal + pixelSize: 60 * scaleHint + capitalization: control.uppercased ? Font.AllUppercase : Font.MixedCase + } + } + Loader { + id: loader_settingsIcon + anchors.right: parent.right + anchors.top: parent.top + anchors.margins: keyContentMargin / 3 + } + Text { + id: keyText + text: control.displayText + color: keyTextColor + horizontalAlignment: Text.AlignHCenter + verticalAlignment: control.displayText.length > 1 ? Text.AlignVCenter : Text.AlignBottom + anchors.fill: parent + anchors.leftMargin: keyContentMargin + anchors.topMargin: keyContentMargin + anchors.rightMargin: keyContentMargin + anchors.bottomMargin: keyContentMargin + font { + family: fontFamily + weight: Font.Normal + pixelSize: 60 * scaleHint + capitalization: control.uppercased ? Font.AllUppercase : Font.MixedCase + } + } + states: [ + State { + when: control.smallText === "\u2699" && control.smallTextVisible + PropertyChanges { + target: keySmallText + visible: false + } + PropertyChanges { + target: loader_settingsIcon + sourceComponent: component_settingsIcon + } + } + ] + } + states: [ + State { + name: "pressed" + when: control.pressed + PropertyChanges { + target: keyBackground + opacity: 0.75 + } + PropertyChanges { + target: keyText + opacity: 0.5 + } + }, + State { + name: "disabled" + when: !control.enabled + PropertyChanges { + target: keyBackground + opacity: 0.75 + } + PropertyChanges { + target: keyText + opacity: 0.05 + } + } + ] + } + + backspaceKeyPanel: KeyPanel { + id: backspaceKeyPanel + Rectangle { + id: backspaceKeyBackground + radius: 5 + color: control && control.highlighted ? highlightedKeyBackgroundColor : normalKeyBackgroundColor + anchors.fill: backspaceKeyPanel + anchors.margins: keyBackgroundMargin + Image { + id: backspaceKeyIcon + anchors.centerIn: parent + sourceSize.height: 88 * keyIconScale + smooth: false + source: resourcePrefix + "images/backspace-fff.svg" + } + } + states: [ + State { + name: "pressed" + when: control.pressed + PropertyChanges { + target: backspaceKeyBackground + opacity: 0.80 + } + PropertyChanges { + target: backspaceKeyIcon + opacity: 0.6 + } + }, + State { + name: "disabled" + when: !control.enabled + PropertyChanges { + target: backspaceKeyBackground + opacity: 0.8 + } + PropertyChanges { + target: backspaceKeyIcon + opacity: 0.2 + } + } + ] + } + + languageKeyPanel: KeyPanel { + id: languageKeyPanel + Rectangle { + id: languageKeyBackground + radius: 5 + color: control && control.highlighted ? highlightedKeyBackgroundColor : normalKeyBackgroundColor + anchors.fill: languageKeyPanel + anchors.margins: keyBackgroundMargin + Image { + id: languageKeyIcon + anchors.centerIn: parent + sourceSize.height: 127 * keyIconScale + smooth: false + source: resourcePrefix + "images/globe-fff.svg" + } + } + states: [ + State { + name: "pressed" + when: control.pressed + PropertyChanges { + target: languageKeyBackground + opacity: 0.80 + } + PropertyChanges { + target: languageKeyIcon + opacity: 0.75 + } + }, + State { + name: "disabled" + when: !control.enabled + PropertyChanges { + target: languageKeyBackground + opacity: 0.8 + } + PropertyChanges { + target: languageKeyIcon + opacity: 0.2 + } + } + ] + } + + enterKeyPanel: KeyPanel { + id: enterKeyPanel + Rectangle { + id: enterKeyBackground + radius: 5 + color: control && control.highlighted ? highlightedKeyBackgroundColor : normalKeyBackgroundColor + anchors.fill: enterKeyPanel + anchors.margins: keyBackgroundMargin + Image { + id: enterKeyIcon + visible: enterKeyText.text.length === 0 + anchors.centerIn: parent + readonly property size enterKeyIconSize: { + switch (control.actionId) { + case EnterKeyAction.Go: + case EnterKeyAction.Send: + case EnterKeyAction.Next: + case EnterKeyAction.Done: + return Qt.size(170, 119) + case EnterKeyAction.Search: + return Qt.size(148, 148) + default: + return Qt.size(211, 80) + } + } + sourceSize.height: enterKeyIconSize.height * keyIconScale + smooth: false + source: { + switch (control.actionId) { + case EnterKeyAction.Go: + case EnterKeyAction.Send: + case EnterKeyAction.Next: + case EnterKeyAction.Done: + return resourcePrefix + "images/check-fff.svg" + case EnterKeyAction.Search: + return resourcePrefix + "images/search-fff.svg" + default: + return resourcePrefix + "images/enter-fff.svg" + } + } + } + Text { + id: enterKeyText + visible: text.length !== 0 + text: control.actionId !== EnterKeyAction.None ? control.displayText : "" + clip: true + fontSizeMode: Text.HorizontalFit + horizontalAlignment: Text.AlignHCenter + verticalAlignment: Text.AlignVCenter + color: keyTextColor + font { + family: fontFamily + weight: Font.Normal + pixelSize: 50 * scaleHint + capitalization: Font.AllUppercase + } + anchors.fill: parent + anchors.margins: Math.round(42 * scaleHint) + } + } + states: [ + State { + name: "pressed" + when: control.pressed + PropertyChanges { + target: enterKeyBackground + opacity: 0.80 + } + PropertyChanges { + target: enterKeyIcon + opacity: 0.6 + } + PropertyChanges { + target: enterKeyText + opacity: 0.6 + } + }, + State { + name: "disabled" + when: !control.enabled + PropertyChanges { + target: enterKeyBackground + opacity: 0.8 + } + PropertyChanges { + target: enterKeyIcon + opacity: 0.2 + } + PropertyChanges { + target: enterKeyText + opacity: 0.2 + } + } + ] + } + + hideKeyPanel: KeyPanel { + id: hideKeyPanel + Rectangle { + id: hideKeyBackground + radius: 5 + color: control && control.highlighted ? highlightedKeyBackgroundColor : normalKeyBackgroundColor + anchors.fill: hideKeyPanel + anchors.margins: keyBackgroundMargin + Image { + id: hideKeyIcon + anchors.centerIn: parent + sourceSize.height: 127 * keyIconScale + smooth: false + source: resourcePrefix + "images/hidekeyboard-fff.svg" + } + } + states: [ + State { + name: "pressed" + when: control.pressed + PropertyChanges { + target: hideKeyBackground + opacity: 0.80 + } + PropertyChanges { + target: hideKeyIcon + opacity: 0.6 + } + }, + State { + name: "disabled" + when: !control.enabled + PropertyChanges { + target: hideKeyBackground + opacity: 0.8 + } + PropertyChanges { + target: hideKeyIcon + opacity: 0.2 + } + } + ] + } + + shiftKeyPanel: KeyPanel { + id: shiftKeyPanel + Rectangle { + id: shiftKeyBackground + radius: 5 + color: control && control.highlighted ? highlightedKeyBackgroundColor : normalKeyBackgroundColor + anchors.fill: shiftKeyPanel + anchors.margins: keyBackgroundMargin + Image { + id: shiftKeyIcon + anchors.centerIn: parent + sourceSize.height: 134 * keyIconScale + smooth: false + source: resourcePrefix + "images/shift-fff.svg" + } + states: [ + State { + name: "capsLockActive" + when: InputContext.capsLockActive + PropertyChanges { + target: shiftKeyBackground + color: capsLockKeyAccentColor + } + PropertyChanges { + target: shiftKeyIcon + source: resourcePrefix + "images/shift-c5d6b6.svg" + } + }, + State { + name: "shiftActive" + when: InputContext.shiftActive + PropertyChanges { + target: shiftKeyIcon + source: resourcePrefix + "images/shift-80c342.svg" + } + } + ] + } + states: [ + State { + name: "pressed" + when: control.pressed + PropertyChanges { + target: shiftKeyBackground + opacity: 0.80 + } + PropertyChanges { + target: shiftKeyIcon + opacity: 0.6 + } + }, + State { + name: "disabled" + when: !control.enabled + PropertyChanges { + target: shiftKeyBackground + opacity: 0.8 + } + PropertyChanges { + target: shiftKeyIcon + opacity: 0.2 + } + } + ] + } + + spaceKeyPanel: KeyPanel { + id: spaceKeyPanel + Rectangle { + id: spaceKeyBackground + radius: 5 + color: control && control.highlighted ? highlightedKeyBackgroundColor : normalKeyBackgroundColor + anchors.fill: spaceKeyPanel + anchors.margins: keyBackgroundMargin + Text { + id: spaceKeyText + text: Qt.locale(InputContext.locale).nativeLanguageName + color: keyTextColor + opacity: inputLocaleIndicatorOpacity + Behavior on opacity { PropertyAnimation { duration: 250 } } + anchors.centerIn: parent + font { + family: fontFamily + weight: Font.Normal + pixelSize: 60 * scaleHint + } + } + } + states: [ + State { + name: "pressed" + when: control.pressed + PropertyChanges { + target: spaceKeyBackground + opacity: 0.80 + } + }, + State { + name: "disabled" + when: !control.enabled + PropertyChanges { + target: spaceKeyBackground + opacity: 0.8 + } + } + ] + } + + symbolKeyPanel: KeyPanel { + id: symbolKeyPanel + Rectangle { + id: symbolKeyBackground + radius: 5 + color: control && control.highlighted ? highlightedKeyBackgroundColor : normalKeyBackgroundColor + anchors.fill: symbolKeyPanel + anchors.margins: keyBackgroundMargin + Text { + id: symbolKeyText + text: control.displayText + color: keyTextColor + horizontalAlignment: Text.AlignHCenter + verticalAlignment: Text.AlignVCenter + anchors.fill: parent + anchors.margins: keyContentMargin + font { + family: fontFamily + weight: Font.Normal + pixelSize: 60 * scaleHint + capitalization: Font.AllUppercase + } + } + } + states: [ + State { + name: "pressed" + when: control.pressed + PropertyChanges { + target: symbolKeyBackground + opacity: 0.80 + } + PropertyChanges { + target: symbolKeyText + opacity: 0.6 + } + }, + State { + name: "disabled" + when: !control.enabled + PropertyChanges { + target: symbolKeyBackground + opacity: 0.8 + } + PropertyChanges { + target: symbolKeyText + opacity: 0.2 + } + } + ] + } + + modeKeyPanel: KeyPanel { + id: modeKeyPanel + Rectangle { + id: modeKeyBackground + radius: 5 + color: control && control.highlighted ? highlightedKeyBackgroundColor : normalKeyBackgroundColor + anchors.fill: modeKeyPanel + anchors.margins: keyBackgroundMargin + Text { + id: modeKeyText + text: control.displayText + color: keyTextColor + horizontalAlignment: Text.AlignHCenter + verticalAlignment: Text.AlignVCenter + anchors.fill: parent + anchors.margins: keyContentMargin + font { + family: fontFamily + weight: Font.Normal + pixelSize: 60 * scaleHint + capitalization: Font.AllUppercase + } + } + Rectangle { + id: modeKeyIndicator + implicitHeight: parent.height * 0.1 + anchors.left: parent.left + anchors.right: parent.right + anchors.bottom: parent.bottom + anchors.leftMargin: parent.width * 0.4 + anchors.rightMargin: parent.width * 0.4 + anchors.bottomMargin: parent.height * 0.12 + color: modeKeyAccentColor + radius: 3 + visible: control.mode + } + } + states: [ + State { + name: "pressed" + when: control.pressed + PropertyChanges { + target: modeKeyBackground + opacity: 0.80 + } + PropertyChanges { + target: modeKeyText + opacity: 0.6 + } + }, + State { + name: "disabled" + when: !control.enabled + PropertyChanges { + target: modeKeyBackground + opacity: 0.8 + } + PropertyChanges { + target: modeKeyText + opacity: 0.2 + } + } + ] + } + + handwritingKeyPanel: KeyPanel { + id: handwritingKeyPanel + Rectangle { + id: hwrKeyBackground + radius: 5 + color: control && control.highlighted ? highlightedKeyBackgroundColor : normalKeyBackgroundColor + anchors.fill: handwritingKeyPanel + anchors.margins: keyBackgroundMargin + Image { + id: hwrKeyIcon + anchors.centerIn: parent + sourceSize.height: 127 * keyIconScale + smooth: false + source: resourcePrefix + (keyboard.handwritingMode ? "images/textmode-fff.svg" : "images/handwriting-fff.svg") + } + } + states: [ + State { + name: "pressed" + when: control.pressed + PropertyChanges { + target: hwrKeyBackground + opacity: 0.80 + } + PropertyChanges { + target: hwrKeyIcon + opacity: 0.6 + } + }, + State { + name: "disabled" + when: !control.enabled + PropertyChanges { + target: hwrKeyBackground + opacity: 0.8 + } + PropertyChanges { + target: hwrKeyIcon + opacity: 0.2 + } + } + ] + } + + characterPreviewMargin: 0 + characterPreviewDelegate: Item { + property string text + property string flickLeft + property string flickTop + property string flickRight + property string flickBottom + readonly property bool flickKeysSet: flickLeft || flickTop || flickRight || flickBottom + readonly property bool flickKeysVisible: text && flickKeysSet && + text !== flickLeft && text !== flickTop && text !== flickRight && text !== flickBottom + id: characterPreview + Rectangle { + id: characterPreviewBackground + anchors.fill: parent + color: popupBackgroundColor + radius: 5 + readonly property int largeTextHeight: Math.round(height / 3 * 2) + readonly property int smallTextHeight: Math.round(height / 3) + readonly property int smallTextMargin: Math.round(3 * scaleHint) + Text { + id: characterPreviewText + color: popupTextColor + text: characterPreview.text + fontSizeMode: Text.VerticalFit + horizontalAlignment: Text.AlignHCenter + verticalAlignment: Text.AlignVCenter + anchors.horizontalCenter: parent.horizontalCenter + anchors.verticalCenter: parent.verticalCenter + height: characterPreviewBackground.largeTextHeight + font { + family: fontFamily + weight: Font.Normal + pixelSize: 82 * scaleHint + } + } + Text { + color: popupTextColor + text: characterPreview.flickLeft + visible: characterPreview.flickKeysVisible + opacity: 0.8 + fontSizeMode: Text.VerticalFit + horizontalAlignment: Text.AlignHCenter + verticalAlignment: Text.AlignVCenter + anchors.left: parent.left + anchors.leftMargin: characterPreviewBackground.smallTextMargin + anchors.verticalCenter: parent.verticalCenter + height: characterPreviewBackground.smallTextHeight + font { + family: fontFamily + weight: Font.Normal + pixelSize: 62 * scaleHint + } + } + Text { + color: popupTextColor + text: characterPreview.flickTop + visible: characterPreview.flickKeysVisible + opacity: 0.8 + fontSizeMode: Text.VerticalFit + horizontalAlignment: Text.AlignHCenter + verticalAlignment: Text.AlignVCenter + anchors.top: parent.top + anchors.topMargin: characterPreviewBackground.smallTextMargin + anchors.horizontalCenter: parent.horizontalCenter + height: characterPreviewBackground.smallTextHeight + font { + family: fontFamily + weight: Font.Normal + pixelSize: 62 * scaleHint + } + } + Text { + color: popupTextColor + text: characterPreview.flickRight + visible: characterPreview.flickKeysVisible + opacity: 0.8 + fontSizeMode: Text.VerticalFit + horizontalAlignment: Text.AlignHCenter + verticalAlignment: Text.AlignVCenter + anchors.right: parent.right + anchors.rightMargin: characterPreviewBackground.smallTextMargin + anchors.verticalCenter: parent.verticalCenter + height: characterPreviewBackground.smallTextHeight + font { + family: fontFamily + weight: Font.Normal + pixelSize: 62 * scaleHint + } + } + Text { + color: popupTextColor + text: characterPreview.flickBottom + visible: characterPreview.flickKeysVisible + opacity: 0.8 + fontSizeMode: Text.VerticalFit + horizontalAlignment: Text.AlignHCenter + verticalAlignment: Text.AlignVCenter + anchors.bottom: parent.bottom + anchors.bottomMargin: characterPreviewBackground.smallTextMargin + anchors.horizontalCenter: parent.horizontalCenter + height: characterPreviewBackground.smallTextHeight + font { + family: fontFamily + weight: Font.Normal + pixelSize: 62 * scaleHint + } + } + states: State { + name: "flickKeysVisible" + when: characterPreview.flickKeysVisible + PropertyChanges { + target: characterPreviewText + height: characterPreviewBackground.smallTextHeight + } + } + } + } + + alternateKeysListItemWidth: 120 * scaleHint + alternateKeysListItemHeight: 170 * scaleHint + alternateKeysListDelegate: Item { + id: alternateKeysListItem + width: alternateKeysListItemWidth + height: alternateKeysListItemHeight + Text { + id: listItemText + text: model.text + color: popupTextColor + opacity: 0.8 + font { + family: fontFamily + weight: Font.Normal + pixelSize: 60 * scaleHint + } + anchors.centerIn: parent + } + states: State { + name: "current" + when: alternateKeysListItem.ListView.isCurrentItem + PropertyChanges { + target: listItemText + opacity: 1 + } + } + } + alternateKeysListHighlight: Rectangle { + color: popupHighlightColor + radius: 5 + } + alternateKeysListBackground: Item { + Rectangle { + readonly property real margin: 20 * scaleHint + x: -margin + y: -margin + width: parent.width + 2 * margin + height: parent.height + 2 * margin + radius: 5 + color: popupBackgroundColor + border { + width: 1 + color: popupBorderColor + } + } + } + + selectionListHeight: 85 * scaleHint + selectionListDelegate: SelectionListItem { + id: selectionListItem + width: Math.round(selectionListLabel.width + selectionListLabel.anchors.leftMargin * 2) + Text { + id: selectionListLabel + anchors.left: parent.left + anchors.leftMargin: Math.round((compactSelectionList ? 50 : 140) * scaleHint) + anchors.verticalCenter: parent.verticalCenter + text: decorateText(display, wordCompletionLength) + color: selectionListTextColor + opacity: 0.9 + font { + family: fontFamily + weight: Font.Normal + pixelSize: 44 * scaleHint + } + function decorateText(text, wordCompletionLength) { + if (wordCompletionLength > 0) { + return text.slice(0, -wordCompletionLength) + '<u>' + text.slice(-wordCompletionLength) + '</u>' + } + return text + } + } + Rectangle { + id: selectionListSeparator + width: 4 * scaleHint + height: 36 * scaleHint + radius: 2 + color: selectionListSeparatorColor + anchors.verticalCenter: parent.verticalCenter + anchors.right: parent.left + } + states: State { + name: "current" + when: selectionListItem.ListView.isCurrentItem + PropertyChanges { + target: selectionListLabel + opacity: 1 + } + } + } + selectionListBackground: Rectangle { + color: selectionListBackgroundColor + } + selectionListAdd: Transition { + NumberAnimation { property: "y"; from: wordCandidateView.height; duration: 200 } + NumberAnimation { property: "opacity"; from: 0; to: 1; duration: 200 } + } + selectionListRemove: Transition { + NumberAnimation { property: "y"; to: -wordCandidateView.height; duration: 200 } + NumberAnimation { property: "opacity"; to: 0; duration: 200 } + } + + navigationHighlight: Rectangle { + color: "transparent" + border.color: navigationHighlightColor + border.width: 5 + } + + traceInputKeyPanelDelegate: TraceInputKeyPanel { + id: traceInputKeyPanel + traceMargins: keyBackgroundMargin + Rectangle { + id: traceInputKeyPanelBackground + radius: 5 + color: normalKeyBackgroundColor + anchors.fill: traceInputKeyPanel + anchors.margins: keyBackgroundMargin + Text { + id: hwrInputModeIndicator + visible: control.patternRecognitionMode === InputEngine.PatternRecognitionMode.Handwriting + text: { + switch (InputContext.inputEngine.inputMode) { + case InputEngine.InputMode.Numeric: + if (["ar", "fa"].indexOf(InputContext.locale.substring(0, 2)) !== -1) + return "\u0660\u0661\u0662" + // Fallthrough + case InputEngine.InputMode.Dialable: + return "123" + case InputEngine.InputMode.Greek: + return "ΑΒΓ" + case InputEngine.InputMode.Cyrillic: + return "АБВ" + case InputEngine.InputMode.Arabic: + if (InputContext.locale.substring(0, 2) === "fa") + return "\u0627\u200C\u0628\u200C\u067E" + return "\u0623\u200C\u0628\u200C\u062C" + case InputEngine.InputMode.Hebrew: + return "\u05D0\u05D1\u05D2" + case InputEngine.InputMode.ChineseHandwriting: + return "中文" + case InputEngine.InputMode.JapaneseHandwriting: + return "日本語" + case InputEngine.InputMode.KoreanHandwriting: + return "한국어" + case InputEngine.InputMode.Thai: + return "กขค" + default: + return "Abc" + } + } + color: keyTextColor + anchors.left: parent.left + anchors.top: parent.top + anchors.margins: keyContentMargin + font { + family: fontFamily + weight: Font.Normal + pixelSize: 44 * scaleHint + capitalization: { + if (InputContext.capsLockActive) + return Font.AllUppercase + if (InputContext.shiftActive) + return Font.MixedCase + return Font.AllLowercase + } + } + } + } + Canvas { + id: traceInputKeyGuideLines + anchors.fill: traceInputKeyPanelBackground + opacity: 0.1 + onPaint: { + var ctx = getContext("2d") + ctx.lineWidth = 1 + ctx.strokeStyle = Qt.rgba(0xFF, 0xFF, 0xFF) + ctx.clearRect(0, 0, width, height) + var i + var margin = Math.round(30 * scaleHint) + if (control.horizontalRulers) { + for (i = 0; i < control.horizontalRulers.length; i++) { + ctx.beginPath() + var y = Math.round(control.horizontalRulers[i]) + var rightMargin = Math.round(width - margin) + if (i + 1 === control.horizontalRulers.length) { + ctx.moveTo(margin, y) + ctx.lineTo(rightMargin, y) + } else { + var dashLen = Math.round(20 * scaleHint) + for (var dash = margin, dashCount = 0; + dash < rightMargin; dash += dashLen, dashCount++) { + if ((dashCount & 1) === 0) { + ctx.moveTo(dash, y) + ctx.lineTo(Math.min(dash + dashLen, rightMargin), y) + } + } + } + ctx.stroke() + } + } + if (control.verticalRulers) { + for (i = 0; i < control.verticalRulers.length; i++) { + ctx.beginPath() + ctx.moveTo(control.verticalRulers[i], margin) + ctx.lineTo(control.verticalRulers[i], Math.round(height - margin)) + ctx.stroke() + } + } + } + Connections { + target: control + function onHorizontalRulersChanged() { traceInputKeyGuideLines.requestPaint() } + function onVerticalRulersChanged() { traceInputKeyGuideLines.requestPaint() } + } + } + } + + traceCanvasDelegate: TraceCanvas { + id: traceCanvas + onAvailableChanged: { + if (!available) + return + var ctx = getContext("2d") + if (parent.canvasType === "fullscreen") { + ctx.lineWidth = 10 + ctx.strokeStyle = Qt.rgba(0, 0, 0) + } else { + ctx.lineWidth = 10 * scaleHint + ctx.strokeStyle = Qt.rgba(0xFF, 0xFF, 0xFF) + } + ctx.lineCap = "round" + ctx.fillStyle = ctx.strokeStyle + } + autoDestroyDelay: 800 + onTraceChanged: if (trace === null) opacity = 0 + Behavior on opacity { PropertyAnimation { easing.type: Easing.OutCubic; duration: 150 } } + } + + popupListDelegate: SelectionListItem { + property real cursorAnchor: popupListLabel.x + popupListLabel.width + id: popupListItem + width: popupListLabel.width + popupListLabel.anchors.leftMargin * 2 + height: popupListLabel.height + popupListLabel.anchors.topMargin * 2 + Text { + id: popupListLabel + anchors.left: parent.left + anchors.top: parent.top + anchors.leftMargin: popupListLabel.height / 2 + anchors.topMargin: popupListLabel.height / 3 + text: decorateText(display, wordCompletionLength) + color: popupTextColor + opacity: 0.8 + font { + family: fontFamily + weight: Font.Normal + pixelSize: Qt.inputMethod.cursorRectangle.height * 0.8 + } + function decorateText(text, wordCompletionLength) { + if (wordCompletionLength > 0) { + return text.slice(0, -wordCompletionLength) + '<u>' + text.slice(-wordCompletionLength) + '</u>' + } + return text + } + } + states: State { + name: "current" + when: popupListItem.ListView.isCurrentItem + PropertyChanges { + target: popupListLabel + opacity: 1.0 + } + } + } + + popupListBackground: Item { + Rectangle { + width: parent.width + height: parent.height + color: popupBackgroundColor + border { + width: 1 + color: popupBorderColor + } + } + } + + popupListAdd: Transition { + NumberAnimation { property: "opacity"; from: 0; to: 1.0; duration: 200 } + } + + popupListRemove: Transition { + NumberAnimation { property: "opacity"; to: 0; duration: 200 } + } + + languagePopupListEnabled: true + + languageListDelegate: SelectionListItem { + id: languageListItem + width: languageNameTextMetrics.width * 17 + height: languageNameTextMetrics.height + languageListLabel.anchors.topMargin + languageListLabel.anchors.bottomMargin + Text { + id: languageListLabel + anchors.left: parent.left + anchors.top: parent.top + anchors.leftMargin: languageNameTextMetrics.height / 2 + anchors.rightMargin: anchors.leftMargin + anchors.topMargin: languageNameTextMetrics.height / 3 + anchors.bottomMargin: anchors.topMargin + text: languageNameFormatter.elidedText + color: popupTextColor + opacity: 0.8 + font { + family: fontFamily + weight: Font.Normal + pixelSize: 44 * scaleHint + } + } + TextMetrics { + id: languageNameTextMetrics + font { + family: fontFamily + weight: Font.Normal + pixelSize: 44 * scaleHint + } + text: "X" + } + TextMetrics { + id: languageNameFormatter + font { + family: fontFamily + weight: Font.Normal + pixelSize: 44 * scaleHint + } + elide: Text.ElideRight + elideWidth: languageListItem.width - languageListLabel.anchors.leftMargin - languageListLabel.anchors.rightMargin + text: displayName + } + states: State { + name: "current" + when: languageListItem.ListView.isCurrentItem + PropertyChanges { + target: languageListLabel + opacity: 1 + } + } + } + + languageListHighlight: Rectangle { + color: popupHighlightColor + radius: 5 + } + + languageListBackground: Rectangle { + color: popupBackgroundColor + border { + width: 1 + color: popupBorderColor + } + } + + languageListAdd: Transition { + NumberAnimation { property: "opacity"; from: 0; to: 1.0; duration: 200 } + } + + languageListRemove: Transition { + NumberAnimation { property: "opacity"; to: 0; duration: 200 } + } + + selectionHandle: Image { + sourceSize.width: 20 + source: resourcePrefix + "images/selectionhandle-bottom.svg" + } + + fullScreenInputContainerBackground: Rectangle { + color: "#FFF" + } + + fullScreenInputBackground: Rectangle { + color: "#FFF" + } + + fullScreenInputMargins: Math.round(15 * scaleHint) + + fullScreenInputPadding: Math.round(30 * scaleHint) + + fullScreenInputCursor: Rectangle { + width: 1 + color: "#000" + visible: parent.blinkStatus + } + + fullScreenInputFont.pixelSize: 58 * scaleHint + + functionPopupListDelegate: Item { + id: functionPopupListItem + readonly property real iconMargin: 40 * scaleHint + readonly property real iconWidth: 144 * keyIconScale + readonly property real iconHeight: 144 * keyIconScale + width: iconWidth + 2 * iconMargin + height: iconHeight + 2 * iconMargin + Image { + id: functionIcon + anchors.centerIn: parent + sourceSize.height: iconHeight + smooth: false + source: { + switch (keyboardFunction) { + case QtVirtualKeyboard.KeyboardFunction.HideInputPanel: + return resourcePrefix + "images/hidekeyboard-fff.svg" + case QtVirtualKeyboard.KeyboardFunction.ChangeLanguage: + return resourcePrefix + "images/globe-fff.svg" + case QtVirtualKeyboard.KeyboardFunction.ToggleHandwritingMode: + return resourcePrefix + (keyboard.handwritingMode ? "images/textmode-fff.svg" : "images/handwriting-fff.svg") + } + } + } + } + + functionPopupListBackground: Item { + Rectangle { + readonly property real backgroundMargin: 20 * scaleHint + x: -backgroundMargin + y: -backgroundMargin + width: parent.width + 2 * backgroundMargin + height: parent.height + 2 * backgroundMargin + radius: 5 + color: popupBackgroundColor + border { + width: 1 + color: popupBorderColor + } + } + } + + functionPopupListHighlight: Rectangle { + color: popupHighlightColor + radius: 5 + } +} diff --git a/src/styles/builtin/qtquickvirtualkeyboardbstylesbuiltinplugin.cpp b/src/styles/builtin/qtquickvirtualkeyboardbstylesbuiltinplugin.cpp new file mode 100644 index 00000000..57dfe813 --- /dev/null +++ b/src/styles/builtin/qtquickvirtualkeyboardbstylesbuiltinplugin.cpp @@ -0,0 +1,22 @@ +// Copyright (C) 2022 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only + +#include "qtquickvirtualkeyboardbstylesbuiltinplugin.h" + +QT_BEGIN_NAMESPACE + +extern void qml_register_types_QtQuick_VirtualKeyboard_Styles_Builtin(); +Q_GHS_KEEP_REFERENCE(qml_register_types_QtQuick_VirtualKeyboard_Styles_Builtin); + +QtQuickVirtualKeyboardStylesBuiltinPlugin::QtQuickVirtualKeyboardStylesBuiltinPlugin(QObject *parent) : + QQmlEngineExtensionPlugin(parent) +{ + volatile auto registration = &qml_register_types_QtQuick_VirtualKeyboard_Styles_Builtin; + Q_UNUSED(registration); +#if defined(QT_STATICPLUGIN) + Q_INIT_RESOURCE(virtualkeyboard_default_style); + Q_INIT_RESOURCE(virtualkeyboard_retro_style); +#endif +} + +QT_END_NAMESPACE diff --git a/src/styles/builtin/qtquickvirtualkeyboardbstylesbuiltinplugin.h b/src/styles/builtin/qtquickvirtualkeyboardbstylesbuiltinplugin.h new file mode 100644 index 00000000..4658b454 --- /dev/null +++ b/src/styles/builtin/qtquickvirtualkeyboardbstylesbuiltinplugin.h @@ -0,0 +1,23 @@ +// Copyright (C) 2022 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only + +#ifndef QTQUICKVIRTUALKEYBOARDSTYLESBUILTINPLUGIN_H +#define QTQUICKVIRTUALKEYBOARDSTYLESBUILTINPLUGIN_H + +#include <QQmlEngineExtensionPlugin> + +QT_BEGIN_NAMESPACE + +class QtQuickVirtualKeyboardStylesBuiltinPlugin : public QQmlEngineExtensionPlugin +{ + Q_OBJECT + Q_PLUGIN_METADATA(IID QQmlExtensionInterface_iid) + +public: + QtQuickVirtualKeyboardStylesBuiltinPlugin(QObject *parent = nullptr); +}; + +QT_END_NAMESPACE + +#endif // QTQUICKVIRTUALKEYBOARDSTYLESBUILTINPLUGIN_H + diff --git a/src/styles/builtin/retro/images/backspace-c5a96f.svg b/src/styles/builtin/retro/images/backspace-c5a96f.svg new file mode 100644 index 00000000..a242531a --- /dev/null +++ b/src/styles/builtin/retro/images/backspace-c5a96f.svg @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + width="159px" height="88px" viewBox="0 0 159 88" enable-background="new 0 0 159 88" xml:space="preserve"> +<g> + <rect fill="none" width="159" height="88"/> + <g> + <g> + <path fill="#C5A96F" d="M158.8,88H44L0,44L44,0h114.8V88z M48.7,76.7h98.8V11.3H48.7L16,44L48.7,76.7z"/> + </g> + <g> + <g> + + <rect x="87.3" y="16.2" transform="matrix(-0.7071 -0.7071 0.7071 -0.7071 127.5895 140.8497)" fill="#C5A96F" width="11.3" height="55.7"/> + </g> + <g> + + <rect x="65.1" y="38.4" transform="matrix(-0.7071 -0.7071 0.7071 -0.7071 127.5954 140.8499)" fill="#C5A96F" width="55.7" height="11.3"/> + </g> + </g> + </g> +</g> +</svg> diff --git a/src/styles/builtin/retro/images/check-c5a96f.svg b/src/styles/builtin/retro/images/check-c5a96f.svg new file mode 100644 index 00000000..e45b41ab --- /dev/null +++ b/src/styles/builtin/retro/images/check-c5a96f.svg @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + width="170px" height="119px" viewBox="0 0 170 119" enable-background="new 0 0 170 119" xml:space="preserve"> +<g> + <polygon fill="#C5A96F" points="62.3,119 0,56.7 11.3,45.3 62.3,96.3 158.7,0 170,11.3 "/> +</g> +</svg> diff --git a/src/styles/builtin/retro/images/enter-c5a96f.svg b/src/styles/builtin/retro/images/enter-c5a96f.svg new file mode 100644 index 00000000..ddbd86e8 --- /dev/null +++ b/src/styles/builtin/retro/images/enter-c5a96f.svg @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + width="211px" height="80px" viewBox="0 0 211 80" enable-background="new 0 0 211 80" xml:space="preserve"> +<g> + <rect fill="none" width="211" height="80"/> + <g> + <rect x="9.2" y="33.8" fill="#C5A96F" width="201.8" height="12.3"/> + <rect x="198.7" y="10.7" fill="#C5A96F" width="12.3" height="35.3"/> + <polygon fill="#C5A96F" points="44.5,0 44.5,79.8 0,40.7 "/> + </g> +</g> +</svg> diff --git a/src/styles/builtin/retro/images/globe-110b05.svg b/src/styles/builtin/retro/images/globe-110b05.svg new file mode 100644 index 00000000..591ab50f --- /dev/null +++ b/src/styles/builtin/retro/images/globe-110b05.svg @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + width="144px" height="144px" viewBox="0 0 144 144" enable-background="new 0 0 144 144" xml:space="preserve"> +<g> + <rect fill="none" width="144" height="144"/> + <g> + <path fill="#110B05" d="M72,144c-39.5,0-71.8-32.1-72-71.6C-0.2,32.7,31.9,0.2,71.6,0h0.7c19.1,0.1,37.1,7.6,50.6,21.1 + s21,31.5,21.1,50.5c0.1,19.2-7.3,37.4-20.8,51c-13.5,13.7-31.6,21.3-50.8,21.4C72.2,144,72.1,144,72,144z M76.3,101.3v32.3 + c9-8.1,16-17.9,20.6-28.7C90.2,102.9,83.3,101.7,76.3,101.3z M47,104.9c3.2,7.4,7.5,14.3,12.8,20.6c2.4,2.9,5.1,5.6,7.9,8.1v-32.3 + C60.7,101.7,53.8,102.9,47,104.9z M105.2,107.9c-3.9,9.2-9.2,17.6-15.9,25.1c10.4-2.9,19.9-8.5,27.8-16.4c0.5-0.5,1-1.1,1.6-1.6 + C114.3,112.1,109.8,109.8,105.2,107.9z M25.5,114.9c7.8,8.5,17.9,14.8,29.3,18c-0.5-0.6-1.1-1.2-1.6-1.8 + c-6-7.1-10.8-14.9-14.3-23.3C34.2,109.8,29.8,112.1,25.5,114.9z M108.1,99.7c5.5,2.3,10.8,5.1,15.9,8.4 + c6.5-9.4,10.4-20.3,11.2-31.8h-22.9c-0.1,1.2-0.1,2.4-0.2,3.7C111.4,86.8,110.1,93.4,108.1,99.7z M8.8,76.3 + C9.6,88.1,13.6,99,20,108.1c5.1-3.3,10.4-6.1,15.8-8.4c-2.4-7.5-3.7-15.4-4.1-23.4L8.8,76.3L8.8,76.3z M40.4,76.3 + c0.3,7,1.5,13.8,3.6,20.4c7.7-2.4,15.7-3.8,23.7-4.1V76.3H40.4z M76.3,92.6c8,0.4,15.9,1.7,23.6,4.1c1.7-5.6,2.9-11.5,3.4-17.5 + c0.1-1,0.1-2,0.2-2.9H76.3V92.6z M112.2,67.7h23c-0.8-11.5-4.6-22.4-11.2-31.8c-5.1,3.4-10.5,6.2-16.1,8.5 + C110.4,51.9,111.8,59.7,112.2,67.7z M76.3,67.7h27.2c-0.4-7-1.6-13.8-3.7-20.4c-7.7,2.4-15.5,3.7-23.5,4.1V67.7z M40.5,67.7h27.2 + V51.4c-7.9-0.4-15.8-1.7-23.4-4.1c-1.8,5.8-3,11.9-3.6,18.1C40.6,66.2,40.5,66.9,40.5,67.7z M8.8,67.7h23c0.1-1,0.1-2,0.2-3 + c0.6-7,2-13.8,4-20.3c-5.5-2.3-10.9-5.1-16-8.5C13.6,45,9.6,55.9,8.8,67.7z M76.3,11.1v31.6c6.9-0.3,13.7-1.5,20.4-3.5 + c-3.1-7.1-7.3-13.9-12.5-20C81.8,16.3,79.1,13.6,76.3,11.1z M47.3,39.2c6.7,2,13.5,3.2,20.4,3.5V11.1C58.8,19,51.9,28.6,47.3,39.2 + z M88.4,10.8c0.8,0.9,1.6,1.8,2.4,2.8c5.9,6.9,10.6,14.6,14.1,22.7c4.7-2,9.3-4.3,13.7-7.2c-0.6-0.6-1.2-1.2-1.8-1.9 + C108.8,19.2,99,13.6,88.4,10.8z M25.5,29.1c4.4,2.8,8.9,5.2,13.6,7.1c4-9.3,9.5-17.9,16.5-25.4C43.8,14,33.5,20.4,25.5,29.1z"/> + </g> +</g> +</svg> diff --git a/src/styles/builtin/retro/images/globe-c5a96f.svg b/src/styles/builtin/retro/images/globe-c5a96f.svg new file mode 100644 index 00000000..68025577 --- /dev/null +++ b/src/styles/builtin/retro/images/globe-c5a96f.svg @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + width="144px" height="144px" viewBox="0 0 144 144" enable-background="new 0 0 144 144" xml:space="preserve"> +<g> + <rect fill="none" width="144" height="144"/> + <g> + <path fill="#C5A96F" d="M72,144c-39.5,0-71.8-32.1-72-71.6C-0.2,32.7,31.9,0.2,71.6,0h0.7c19.1,0.1,37.1,7.6,50.6,21.1 + s21,31.5,21.1,50.5c0.1,19.2-7.3,37.4-20.8,51c-13.5,13.7-31.6,21.3-50.8,21.4C72.2,144,72.1,144,72,144z M76.3,101.3v32.3 + c9-8.1,16-17.9,20.6-28.7C90.2,102.9,83.3,101.7,76.3,101.3z M47,104.9c3.2,7.4,7.5,14.3,12.8,20.6c2.4,2.9,5.1,5.6,7.9,8.1v-32.3 + C60.7,101.7,53.8,102.9,47,104.9z M105.2,107.9c-3.9,9.2-9.2,17.6-15.9,25.1c10.4-2.9,19.9-8.5,27.8-16.4c0.5-0.5,1-1.1,1.6-1.6 + C114.3,112.1,109.8,109.8,105.2,107.9z M25.5,114.9c7.8,8.5,17.9,14.8,29.3,18c-0.5-0.6-1.1-1.2-1.6-1.8 + c-6-7.1-10.8-14.9-14.3-23.3C34.2,109.8,29.8,112.1,25.5,114.9z M108.1,99.7c5.5,2.3,10.8,5.1,15.9,8.4 + c6.5-9.4,10.4-20.3,11.2-31.8h-22.9c-0.1,1.2-0.1,2.4-0.2,3.7C111.4,86.8,110.1,93.4,108.1,99.7z M8.8,76.3 + C9.6,88.1,13.6,99,20,108.1c5.1-3.3,10.4-6.1,15.8-8.4c-2.4-7.5-3.7-15.4-4.1-23.4L8.8,76.3L8.8,76.3z M40.4,76.3 + c0.3,7,1.5,13.8,3.6,20.4c7.7-2.4,15.7-3.8,23.7-4.1V76.3H40.4z M76.3,92.6c8,0.4,15.9,1.7,23.6,4.1c1.7-5.6,2.9-11.5,3.4-17.5 + c0.1-1,0.1-2,0.2-2.9H76.3V92.6z M112.2,67.7h23c-0.8-11.5-4.6-22.4-11.2-31.8c-5.1,3.4-10.5,6.2-16.1,8.5 + C110.4,51.9,111.8,59.7,112.2,67.7z M76.3,67.7h27.2c-0.4-7-1.6-13.8-3.7-20.4c-7.7,2.4-15.5,3.7-23.5,4.1V67.7z M40.5,67.7h27.2 + V51.4c-7.9-0.4-15.8-1.7-23.4-4.1c-1.8,5.8-3,11.9-3.6,18.1C40.6,66.2,40.5,66.9,40.5,67.7z M8.8,67.7h23c0.1-1,0.1-2,0.2-3 + c0.6-7,2-13.8,4-20.3c-5.5-2.3-10.9-5.1-16-8.5C13.6,45,9.6,55.9,8.8,67.7z M76.3,11.1v31.6c6.9-0.3,13.7-1.5,20.4-3.5 + c-3.1-7.1-7.3-13.9-12.5-20C81.8,16.3,79.1,13.6,76.3,11.1z M47.3,39.2c6.7,2,13.5,3.2,20.4,3.5V11.1C58.8,19,51.9,28.6,47.3,39.2 + z M88.4,10.8c0.8,0.9,1.6,1.8,2.4,2.8c5.9,6.9,10.6,14.6,14.1,22.7c4.7-2,9.3-4.3,13.7-7.2c-0.6-0.6-1.2-1.2-1.8-1.9 + C108.8,19.2,99,13.6,88.4,10.8z M25.5,29.1c4.4,2.8,8.9,5.2,13.6,7.1c4-9.3,9.5-17.9,16.5-25.4C43.8,14,33.5,20.4,25.5,29.1z"/> + </g> +</g> +</svg> diff --git a/src/styles/builtin/retro/images/globe-fff.svg b/src/styles/builtin/retro/images/globe-fff.svg new file mode 100644 index 00000000..f45af34a --- /dev/null +++ b/src/styles/builtin/retro/images/globe-fff.svg @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + width="144px" height="144px" viewBox="0 0 144 144" enable-background="new 0 0 144 144" xml:space="preserve"> +<g> + <rect fill="none" width="144" height="144"/> + <g> + <path fill="#FFF" d="M72,144c-39.5,0-71.8-32.1-72-71.6C-0.2,32.7,31.9,0.2,71.6,0h0.7c19.1,0.1,37.1,7.6,50.6,21.1 + s21,31.5,21.1,50.5c0.1,19.2-7.3,37.4-20.8,51c-13.5,13.7-31.6,21.3-50.8,21.4C72.2,144,72.1,144,72,144z M76.3,101.3v32.3 + c9-8.1,16-17.9,20.6-28.7C90.2,102.9,83.3,101.7,76.3,101.3z M47,104.9c3.2,7.4,7.5,14.3,12.8,20.6c2.4,2.9,5.1,5.6,7.9,8.1v-32.3 + C60.7,101.7,53.8,102.9,47,104.9z M105.2,107.9c-3.9,9.2-9.2,17.6-15.9,25.1c10.4-2.9,19.9-8.5,27.8-16.4c0.5-0.5,1-1.1,1.6-1.6 + C114.3,112.1,109.8,109.8,105.2,107.9z M25.5,114.9c7.8,8.5,17.9,14.8,29.3,18c-0.5-0.6-1.1-1.2-1.6-1.8 + c-6-7.1-10.8-14.9-14.3-23.3C34.2,109.8,29.8,112.1,25.5,114.9z M108.1,99.7c5.5,2.3,10.8,5.1,15.9,8.4 + c6.5-9.4,10.4-20.3,11.2-31.8h-22.9c-0.1,1.2-0.1,2.4-0.2,3.7C111.4,86.8,110.1,93.4,108.1,99.7z M8.8,76.3 + C9.6,88.1,13.6,99,20,108.1c5.1-3.3,10.4-6.1,15.8-8.4c-2.4-7.5-3.7-15.4-4.1-23.4L8.8,76.3L8.8,76.3z M40.4,76.3 + c0.3,7,1.5,13.8,3.6,20.4c7.7-2.4,15.7-3.8,23.7-4.1V76.3H40.4z M76.3,92.6c8,0.4,15.9,1.7,23.6,4.1c1.7-5.6,2.9-11.5,3.4-17.5 + c0.1-1,0.1-2,0.2-2.9H76.3V92.6z M112.2,67.7h23c-0.8-11.5-4.6-22.4-11.2-31.8c-5.1,3.4-10.5,6.2-16.1,8.5 + C110.4,51.9,111.8,59.7,112.2,67.7z M76.3,67.7h27.2c-0.4-7-1.6-13.8-3.7-20.4c-7.7,2.4-15.5,3.7-23.5,4.1V67.7z M40.5,67.7h27.2 + V51.4c-7.9-0.4-15.8-1.7-23.4-4.1c-1.8,5.8-3,11.9-3.6,18.1C40.6,66.2,40.5,66.9,40.5,67.7z M8.8,67.7h23c0.1-1,0.1-2,0.2-3 + c0.6-7,2-13.8,4-20.3c-5.5-2.3-10.9-5.1-16-8.5C13.6,45,9.6,55.9,8.8,67.7z M76.3,11.1v31.6c6.9-0.3,13.7-1.5,20.4-3.5 + c-3.1-7.1-7.3-13.9-12.5-20C81.8,16.3,79.1,13.6,76.3,11.1z M47.3,39.2c6.7,2,13.5,3.2,20.4,3.5V11.1C58.8,19,51.9,28.6,47.3,39.2 + z M88.4,10.8c0.8,0.9,1.6,1.8,2.4,2.8c5.9,6.9,10.6,14.6,14.1,22.7c4.7-2,9.3-4.3,13.7-7.2c-0.6-0.6-1.2-1.2-1.8-1.9 + C108.8,19.2,99,13.6,88.4,10.8z M25.5,29.1c4.4,2.8,8.9,5.2,13.6,7.1c4-9.3,9.5-17.9,16.5-25.4C43.8,14,33.5,20.4,25.5,29.1z"/> + </g> +</g> +</svg> diff --git a/src/styles/builtin/retro/images/handwriting-110b05.svg b/src/styles/builtin/retro/images/handwriting-110b05.svg new file mode 100644 index 00000000..2093bb6d --- /dev/null +++ b/src/styles/builtin/retro/images/handwriting-110b05.svg @@ -0,0 +1,62 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.1" + id="Layer_1" + x="0px" + y="0px" + width="156" + height="156" + viewBox="0 0 156 156" + enable-background="new 0 0 156 104" + xml:space="preserve" + sodipodi:docname="handwriting-110b05.svg" + inkscape:version="1.0.2-2 (e86c870879, 2021-01-15)"><metadata + id="metadata15"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs + id="defs13" /><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="1920" + inkscape:window-height="1055" + id="namedview11" + showgrid="false" + inkscape:zoom="6.6858974" + inkscape:cx="78" + inkscape:cy="69.948226" + inkscape:window-x="-7" + inkscape:window-y="-7" + inkscape:window-maximized="1" + inkscape:current-layer="Layer_1" /> +<g + id="g8" + transform="translate(0,26.023835)"> + <rect + fill="none" + width="156" + height="104" + id="rect2" + x="0" + y="0" /> + <g + id="g6"> + <path + fill="#110b05" + d="M 37.6,103.3 C 27.5,103.3 18.7,98.3 14.5,89.7 4.4,68.7 19.9,52.3 36.2,35 37.4,33.8 38.6,32.5 39.8,31.2 45.1,25.5 45,19.7 43.3,16.4 41.5,13 37.8,11.5 33.1,12.2 16.6,14.8 11.9,38.6 11.9,38.8 L 0,36.6 C 0.3,35.3 6.4,4.3 31.2,0.3 41,-1.3 49.7,2.7 53.9,10.7 c 4.7,8.9 2.6,20.1 -5.3,28.6 -1.2,1.3 -2.4,2.6 -3.6,3.8 -16.7,17.8 -25.9,28.5 -19.6,41.4 3.3,6.8 11.1,7.6 16.9,6.3 C 51.5,88.7 62.1,79.7 62,61.3 61.8,33.2 78.2,19.5 92.2,16.4 c 14.5,-3.2 28.4,3.6 34.7,17 1.3,2.8 2.3,5.4 3.1,8.1 13.3,0.7 25.5,4.3 26,4.4 l -3.4,11.5 c -0.1,0 -9.7,-2.8 -20.6,-3.8 0.5,16.5 -8.6,28.9 -20.1,34.7 -11.9,6 -24,3.8 -28.9,-5.2 -3.1,-5.6 -1.9,-14.7 2.9,-22.5 7.9,-13 21.3,-17.4 31.5,-18.8 C 117,40.6 116.5,39.4 116,38.4 112.1,30.1 103.8,26 94.9,28 c -9.7,2.2 -21,12.1 -20.8,33.1 0.2,25.5 -15.6,38.1 -29,41.3 -2.6,0.6 -5.1,0.9 -7.5,0.9 z m 82.2,-49.6 c -14,1.5 -20.6,8.5 -23.4,12.9 -3.3,5.2 -3.4,9.8 -2.9,10.9 1.6,2.9 7.3,3 13,0.2 10.8,-5.5 13.8,-15.1 13.3,-24 z" + id="path4" /> + </g> +</g> +</svg> diff --git a/src/styles/builtin/retro/images/handwriting-c5a96f.svg b/src/styles/builtin/retro/images/handwriting-c5a96f.svg new file mode 100644 index 00000000..f23fe5e0 --- /dev/null +++ b/src/styles/builtin/retro/images/handwriting-c5a96f.svg @@ -0,0 +1,62 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.1" + id="Layer_1" + x="0px" + y="0px" + width="156" + height="156" + viewBox="0 0 156 156" + enable-background="new 0 0 156 104" + xml:space="preserve" + sodipodi:docname="handwriting-c5a96f.svg" + inkscape:version="1.0.2-2 (e86c870879, 2021-01-15)"><metadata + id="metadata15"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs + id="defs13" /><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="1920" + inkscape:window-height="1055" + id="namedview11" + showgrid="false" + inkscape:zoom="6.6858974" + inkscape:cx="78" + inkscape:cy="52" + inkscape:window-x="-7" + inkscape:window-y="-7" + inkscape:window-maximized="1" + inkscape:current-layer="Layer_1" /> +<g + id="g8" + transform="translate(0,26.023835)"> + <rect + fill="none" + width="156" + height="104" + id="rect2" + x="0" + y="0" /> + <g + id="g6"> + <path + fill="#c5a96f" + d="M 37.6,103.3 C 27.5,103.3 18.7,98.3 14.5,89.7 4.4,68.7 19.9,52.3 36.2,35 37.4,33.8 38.6,32.5 39.8,31.2 45.1,25.5 45,19.7 43.3,16.4 41.5,13 37.8,11.5 33.1,12.2 16.6,14.8 11.9,38.6 11.9,38.8 L 0,36.6 C 0.3,35.3 6.4,4.3 31.2,0.3 41,-1.3 49.7,2.7 53.9,10.7 c 4.7,8.9 2.6,20.1 -5.3,28.6 -1.2,1.3 -2.4,2.6 -3.6,3.8 -16.7,17.8 -25.9,28.5 -19.6,41.4 3.3,6.8 11.1,7.6 16.9,6.3 C 51.5,88.7 62.1,79.7 62,61.3 61.8,33.2 78.2,19.5 92.2,16.4 c 14.5,-3.2 28.4,3.6 34.7,17 1.3,2.8 2.3,5.4 3.1,8.1 13.3,0.7 25.5,4.3 26,4.4 l -3.4,11.5 c -0.1,0 -9.7,-2.8 -20.6,-3.8 0.5,16.5 -8.6,28.9 -20.1,34.7 -11.9,6 -24,3.8 -28.9,-5.2 -3.1,-5.6 -1.9,-14.7 2.9,-22.5 7.9,-13 21.3,-17.4 31.5,-18.8 C 117,40.6 116.5,39.4 116,38.4 112.1,30.1 103.8,26 94.9,28 c -9.7,2.2 -21,12.1 -20.8,33.1 0.2,25.5 -15.6,38.1 -29,41.3 -2.6,0.6 -5.1,0.9 -7.5,0.9 z m 82.2,-49.6 c -14,1.5 -20.6,8.5 -23.4,12.9 -3.3,5.2 -3.4,9.8 -2.9,10.9 1.6,2.9 7.3,3 13,0.2 10.8,-5.5 13.8,-15.1 13.3,-24 z" + id="path4" /> + </g> +</g> +</svg> diff --git a/src/styles/builtin/retro/images/handwriting-fff.svg b/src/styles/builtin/retro/images/handwriting-fff.svg new file mode 100644 index 00000000..8c169421 --- /dev/null +++ b/src/styles/builtin/retro/images/handwriting-fff.svg @@ -0,0 +1,62 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.1" + id="Layer_1" + x="0px" + y="0px" + width="156" + height="156" + viewBox="0 0 156 156" + enable-background="new 0 0 156 104" + xml:space="preserve" + sodipodi:docname="handwriting-fff.svg" + inkscape:version="1.0.2-2 (e86c870879, 2021-01-15)"><metadata + id="metadata15"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs + id="defs13" /><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="1920" + inkscape:window-height="1055" + id="namedview11" + showgrid="false" + inkscape:zoom="6.6858974" + inkscape:cx="78" + inkscape:cy="52" + inkscape:window-x="-7" + inkscape:window-y="-7" + inkscape:window-maximized="1" + inkscape:current-layer="Layer_1" /> +<g + id="g8" + transform="translate(0,26.023835)"> + <rect + fill="none" + width="156" + height="104" + id="rect2" + x="0" + y="0" /> + <g + id="g6"> + <path + fill="#ffffff" + d="M 37.6,103.3 C 27.5,103.3 18.7,98.3 14.5,89.7 4.4,68.7 19.9,52.3 36.2,35 37.4,33.8 38.6,32.5 39.8,31.2 45.1,25.5 45,19.7 43.3,16.4 41.5,13 37.8,11.5 33.1,12.2 16.6,14.8 11.9,38.6 11.9,38.8 L 0,36.6 C 0.3,35.3 6.4,4.3 31.2,0.3 41,-1.3 49.7,2.7 53.9,10.7 c 4.7,8.9 2.6,20.1 -5.3,28.6 -1.2,1.3 -2.4,2.6 -3.6,3.8 -16.7,17.8 -25.9,28.5 -19.6,41.4 3.3,6.8 11.1,7.6 16.9,6.3 C 51.5,88.7 62.1,79.7 62,61.3 61.8,33.2 78.2,19.5 92.2,16.4 c 14.5,-3.2 28.4,3.6 34.7,17 1.3,2.8 2.3,5.4 3.1,8.1 13.3,0.7 25.5,4.3 26,4.4 l -3.4,11.5 c -0.1,0 -9.7,-2.8 -20.6,-3.8 0.5,16.5 -8.6,28.9 -20.1,34.7 -11.9,6 -24,3.8 -28.9,-5.2 -3.1,-5.6 -1.9,-14.7 2.9,-22.5 7.9,-13 21.3,-17.4 31.5,-18.8 C 117,40.6 116.5,39.4 116,38.4 112.1,30.1 103.8,26 94.9,28 c -9.7,2.2 -21,12.1 -20.8,33.1 0.2,25.5 -15.6,38.1 -29,41.3 -2.6,0.6 -5.1,0.9 -7.5,0.9 z m 82.2,-49.6 c -14,1.5 -20.6,8.5 -23.4,12.9 -3.3,5.2 -3.4,9.8 -2.9,10.9 1.6,2.9 7.3,3 13,0.2 10.8,-5.5 13.8,-15.1 13.3,-24 z" + id="path4" /> + </g> +</g> +</svg> diff --git a/src/styles/builtin/retro/images/hidekeyboard-110b05.svg b/src/styles/builtin/retro/images/hidekeyboard-110b05.svg new file mode 100644 index 00000000..9debcac6 --- /dev/null +++ b/src/styles/builtin/retro/images/hidekeyboard-110b05.svg @@ -0,0 +1,55 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + width="144px" height="127px" viewBox="0 0 144 127" enable-background="new 0 0 144 127" xml:space="preserve"> +<g> + <rect fill="none" width="144" height="127"/> + <g> + <g> + <path fill="#110b05" d="M144,90.3H0V0h144V90.3z M10.9,79.4h122.2V10.9H10.9V79.4z"/> + </g> + <g> + <rect x="19.5" y="20.2" fill="#110b05" width="11.7" height="11.7"/> + </g> + <g> + <rect x="38.1" y="20.2" fill="#110b05" width="11.7" height="11.7"/> + </g> + <g> + <rect x="56.8" y="20.2" fill="#110b05" width="11.7" height="11.7"/> + </g> + <g> + <rect x="75.5" y="20.2" fill="#110b05" width="11.7" height="11.7"/> + </g> + <g> + <rect x="94.2" y="20.2" fill="#110b05" width="11.7" height="11.7"/> + </g> + <g> + <rect x="112.9" y="20.2" fill="#110b05" width="11.7" height="11.7"/> + </g> + <g> + <rect x="19.5" y="39.7" fill="#110b05" width="11.7" height="11.7"/> + </g> + <g> + <rect x="38.1" y="39.7" fill="#110b05" width="11.7" height="11.7"/> + </g> + <g> + <rect x="56.8" y="39.7" fill="#110b05" width="11.7" height="11.7"/> + </g> + <g> + <rect x="75.5" y="39.7" fill="#110b05" width="11.7" height="11.7"/> + </g> + <g> + <rect x="94.2" y="39.7" fill="#110b05" width="11.7" height="11.7"/> + </g> + <g> + <rect x="112.9" y="39.7" fill="#110b05" width="11.7" height="11.7"/> + </g> + <g> + <rect x="38.1" y="59.2" fill="#110b05" width="67.7" height="11.7"/> + </g> + <g> + <polygon fill="#110b05" points="72,115.2 62.2,108.2 45.9,108.2 72,126.9 98.1,108.2 81.8,108.2 "/> + </g> + </g> +</g> +</svg> diff --git a/src/styles/builtin/retro/images/hidekeyboard-c5a96f.svg b/src/styles/builtin/retro/images/hidekeyboard-c5a96f.svg new file mode 100644 index 00000000..a4019bf3 --- /dev/null +++ b/src/styles/builtin/retro/images/hidekeyboard-c5a96f.svg @@ -0,0 +1,55 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + width="144px" height="127px" viewBox="0 0 144 127" enable-background="new 0 0 144 127" xml:space="preserve"> +<g> + <rect fill="none" width="144" height="127"/> + <g> + <g> + <path fill="#C5A96F" d="M144,90.3H0V0h144V90.3z M10.9,79.4h122.2V10.9H10.9V79.4z"/> + </g> + <g> + <rect x="19.5" y="20.2" fill="#C5A96F" width="11.7" height="11.7"/> + </g> + <g> + <rect x="38.1" y="20.2" fill="#C5A96F" width="11.7" height="11.7"/> + </g> + <g> + <rect x="56.8" y="20.2" fill="#C5A96F" width="11.7" height="11.7"/> + </g> + <g> + <rect x="75.5" y="20.2" fill="#C5A96F" width="11.7" height="11.7"/> + </g> + <g> + <rect x="94.2" y="20.2" fill="#C5A96F" width="11.7" height="11.7"/> + </g> + <g> + <rect x="112.9" y="20.2" fill="#C5A96F" width="11.7" height="11.7"/> + </g> + <g> + <rect x="19.5" y="39.7" fill="#C5A96F" width="11.7" height="11.7"/> + </g> + <g> + <rect x="38.1" y="39.7" fill="#C5A96F" width="11.7" height="11.7"/> + </g> + <g> + <rect x="56.8" y="39.7" fill="#C5A96F" width="11.7" height="11.7"/> + </g> + <g> + <rect x="75.5" y="39.7" fill="#C5A96F" width="11.7" height="11.7"/> + </g> + <g> + <rect x="94.2" y="39.7" fill="#C5A96F" width="11.7" height="11.7"/> + </g> + <g> + <rect x="112.9" y="39.7" fill="#C5A96F" width="11.7" height="11.7"/> + </g> + <g> + <rect x="38.1" y="59.2" fill="#C5A96F" width="67.7" height="11.7"/> + </g> + <g> + <polygon fill="#C5A96F" points="72,115.2 62.2,108.2 45.9,108.2 72,126.9 98.1,108.2 81.8,108.2 "/> + </g> + </g> +</g> +</svg> diff --git a/src/styles/builtin/retro/images/hidekeyboard-fff.svg b/src/styles/builtin/retro/images/hidekeyboard-fff.svg new file mode 100644 index 00000000..eb81f0b9 --- /dev/null +++ b/src/styles/builtin/retro/images/hidekeyboard-fff.svg @@ -0,0 +1,55 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + width="144px" height="127px" viewBox="0 0 144 127" enable-background="new 0 0 144 127" xml:space="preserve"> +<g> + <rect fill="none" width="144" height="127"/> + <g> + <g> + <path fill="#FFF" d="M144,90.3H0V0h144V90.3z M10.9,79.4h122.2V10.9H10.9V79.4z"/> + </g> + <g> + <rect x="19.5" y="20.2" fill="#FFF" width="11.7" height="11.7"/> + </g> + <g> + <rect x="38.1" y="20.2" fill="#FFF" width="11.7" height="11.7"/> + </g> + <g> + <rect x="56.8" y="20.2" fill="#FFF" width="11.7" height="11.7"/> + </g> + <g> + <rect x="75.5" y="20.2" fill="#FFF" width="11.7" height="11.7"/> + </g> + <g> + <rect x="94.2" y="20.2" fill="#FFF" width="11.7" height="11.7"/> + </g> + <g> + <rect x="112.9" y="20.2" fill="#FFF" width="11.7" height="11.7"/> + </g> + <g> + <rect x="19.5" y="39.7" fill="#FFF" width="11.7" height="11.7"/> + </g> + <g> + <rect x="38.1" y="39.7" fill="#FFF" width="11.7" height="11.7"/> + </g> + <g> + <rect x="56.8" y="39.7" fill="#FFF" width="11.7" height="11.7"/> + </g> + <g> + <rect x="75.5" y="39.7" fill="#FFF" width="11.7" height="11.7"/> + </g> + <g> + <rect x="94.2" y="39.7" fill="#FFF" width="11.7" height="11.7"/> + </g> + <g> + <rect x="112.9" y="39.7" fill="#FFF" width="11.7" height="11.7"/> + </g> + <g> + <rect x="38.1" y="59.2" fill="#FFF" width="67.7" height="11.7"/> + </g> + <g> + <polygon fill="#FFF" points="72,115.2 62.2,108.2 45.9,108.2 72,126.9 98.1,108.2 81.8,108.2 "/> + </g> + </g> +</g> +</svg> diff --git a/src/styles/builtin/retro/images/key154px_black.png b/src/styles/builtin/retro/images/key154px_black.png Binary files differnew file mode 100644 index 00000000..d9bf8e72 --- /dev/null +++ b/src/styles/builtin/retro/images/key154px_black.png diff --git a/src/styles/builtin/retro/images/key154px_black.svg b/src/styles/builtin/retro/images/key154px_black.svg new file mode 100644 index 00000000..635dd9a3 --- /dev/null +++ b/src/styles/builtin/retro/images/key154px_black.svg @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 154 154" enable-background="new 0 0 154 154" xml:space="preserve"> +<g> + <radialGradient id="SVGID_1_" cx="77" cy="77" r="73" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#0C0C0B"/> + <stop offset="1" style="stop-color:#2C2C2C"/> + </radialGradient> + <path fill="url(#SVGID_1_)" d="M77,150c-40.3,0-73-32.7-73-73C4,36.7,36.7,4,77,4c40.3,0,73,32.7,73,73C150,117.3,117.3,150,77,150 + z"/> + <path fill="#C2B49B" d="M77,8c38,0,69,31,69,69s-31,69-69,69S8,115,8,77S39,8,77,8 M77,0C34.5,0,0,34.5,0,77s34.5,77,77,77 + s77-34.5,77-77S119.5,0,77,0L77,0z"/> +</g> +<g opacity="8.000000e-02"> + <path d="M77,16c33.6,0,61,27.4,61,61s-27.4,61-61,61s-61-27.4-61-61S43.4,16,77,16 M77,8C38.9,8,8,38.9,8,77s30.9,69,69,69 + s69-30.9,69-69S115.1,8,77,8L77,8z"/> +</g> +</svg> diff --git a/src/styles/builtin/retro/images/key154px_black_long.png b/src/styles/builtin/retro/images/key154px_black_long.png Binary files differnew file mode 100644 index 00000000..492c718a --- /dev/null +++ b/src/styles/builtin/retro/images/key154px_black_long.png diff --git a/src/styles/builtin/retro/images/key154px_capslock.png b/src/styles/builtin/retro/images/key154px_capslock.png Binary files differnew file mode 100644 index 00000000..7cb0bd4a --- /dev/null +++ b/src/styles/builtin/retro/images/key154px_capslock.png diff --git a/src/styles/builtin/retro/images/key154px_capslock_long.png b/src/styles/builtin/retro/images/key154px_capslock_long.png Binary files differnew file mode 100644 index 00000000..429d4bb5 --- /dev/null +++ b/src/styles/builtin/retro/images/key154px_capslock_long.png diff --git a/src/styles/builtin/retro/images/key154px_colorA.png b/src/styles/builtin/retro/images/key154px_colorA.png Binary files differnew file mode 100644 index 00000000..778384cd --- /dev/null +++ b/src/styles/builtin/retro/images/key154px_colorA.png diff --git a/src/styles/builtin/retro/images/key154px_colorA.svg b/src/styles/builtin/retro/images/key154px_colorA.svg new file mode 100644 index 00000000..13af8a63 --- /dev/null +++ b/src/styles/builtin/retro/images/key154px_colorA.svg @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 154 154" enable-background="new 0 0 154 154" xml:space="preserve"> +<g> + <radialGradient id="SVGID_1_" cx="77" cy="77" r="73" gradientUnits="userSpaceOnUse"> + <stop offset="0" style="stop-color:#CFBE90"/> + <stop offset="1" style="stop-color:#B2945A"/> + </radialGradient> + <path fill="url(#SVGID_1_)" d="M77,150c-40.3,0-73-32.7-73-73C4,36.7,36.7,4,77,4c40.3,0,73,32.7,73,73C150,117.3,117.3,150,77,150 + z"/> + <path fill="#C2B49B" d="M77,8c38,0,69,31,69,69s-31,69-69,69S8,115,8,77S39,8,77,8 M77,0C34.5,0,0,34.5,0,77s34.5,77,77,77 + s77-34.5,77-77S119.5,0,77,0L77,0z"/> +</g> +<g opacity="8.000000e-02"> + <path d="M77,16c33.6,0,61,27.4,61,61s-27.4,61-61,61s-61-27.4-61-61S43.4,16,77,16 M77,8C38.9,8,8,38.9,8,77s30.9,69,69,69 + s69-30.9,69-69S115.1,8,77,8L77,8z"/> +</g> +</svg> diff --git a/src/styles/builtin/retro/images/key154px_colorA_long.png b/src/styles/builtin/retro/images/key154px_colorA_long.png Binary files differnew file mode 100644 index 00000000..e1b6e5b8 --- /dev/null +++ b/src/styles/builtin/retro/images/key154px_colorA_long.png diff --git a/src/styles/builtin/retro/images/key154px_colorB.png b/src/styles/builtin/retro/images/key154px_colorB.png Binary files differnew file mode 100644 index 00000000..cef9fd29 --- /dev/null +++ b/src/styles/builtin/retro/images/key154px_colorB.png diff --git a/src/styles/builtin/retro/images/key154px_shiftcase.png b/src/styles/builtin/retro/images/key154px_shiftcase.png Binary files differnew file mode 100644 index 00000000..58bf8282 --- /dev/null +++ b/src/styles/builtin/retro/images/key154px_shiftcase.png diff --git a/src/styles/builtin/retro/images/key154px_shiftcase_long.png b/src/styles/builtin/retro/images/key154px_shiftcase_long.png Binary files differnew file mode 100644 index 00000000..bfcba5fd --- /dev/null +++ b/src/styles/builtin/retro/images/key154px_shiftcase_long.png diff --git a/src/styles/builtin/retro/images/key156px_black_long.png b/src/styles/builtin/retro/images/key156px_black_long.png Binary files differnew file mode 100644 index 00000000..a22109bd --- /dev/null +++ b/src/styles/builtin/retro/images/key156px_black_long.png diff --git a/src/styles/builtin/retro/images/key156px_black_medium_long.png b/src/styles/builtin/retro/images/key156px_black_medium_long.png Binary files differnew file mode 100644 index 00000000..8c92d3b1 --- /dev/null +++ b/src/styles/builtin/retro/images/key156px_black_medium_long.png diff --git a/src/styles/builtin/retro/images/key156px_colorA.png b/src/styles/builtin/retro/images/key156px_colorA.png Binary files differnew file mode 100644 index 00000000..6da57d60 --- /dev/null +++ b/src/styles/builtin/retro/images/key156px_colorA.png diff --git a/src/styles/builtin/retro/images/key156px_colorB.png b/src/styles/builtin/retro/images/key156px_colorB.png Binary files differnew file mode 100644 index 00000000..af0912e3 --- /dev/null +++ b/src/styles/builtin/retro/images/key156px_colorB.png diff --git a/src/styles/builtin/retro/images/key160px_black.png b/src/styles/builtin/retro/images/key160px_black.png Binary files differnew file mode 100644 index 00000000..565c4bf7 --- /dev/null +++ b/src/styles/builtin/retro/images/key160px_black.png diff --git a/src/styles/builtin/retro/images/key160px_colorA.png b/src/styles/builtin/retro/images/key160px_colorA.png Binary files differnew file mode 100644 index 00000000..e2125cf8 --- /dev/null +++ b/src/styles/builtin/retro/images/key160px_colorA.png diff --git a/src/styles/builtin/retro/images/key160px_colorB.png b/src/styles/builtin/retro/images/key160px_colorB.png Binary files differnew file mode 100644 index 00000000..9b543b05 --- /dev/null +++ b/src/styles/builtin/retro/images/key160px_colorB.png diff --git a/src/styles/builtin/retro/images/key_preview.png b/src/styles/builtin/retro/images/key_preview.png Binary files differnew file mode 100644 index 00000000..3e9e9557 --- /dev/null +++ b/src/styles/builtin/retro/images/key_preview.png diff --git a/src/styles/builtin/retro/images/search-c5a96f.svg b/src/styles/builtin/retro/images/search-c5a96f.svg new file mode 100644 index 00000000..a1f7c903 --- /dev/null +++ b/src/styles/builtin/retro/images/search-c5a96f.svg @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + width="148px" height="148px" viewBox="0 0 148 148" enable-background="new 0 0 148 148" xml:space="preserve"> +<g> + <rect fill="none" width="148" height="148"/> + <g> + <path fill="#C5A96F" d="M146.8,132.7c1.6,1.6,1.6,4.1,0,5.7l-8.5,8.5c-1.6,1.6-4.1,1.6-5.7,0l-44.6-44.6c-1.6-1.6-1.6-4.1,0-5.7 + l8.5-8.5c1.6-1.6,4.1-1.6,5.7,0L146.8,132.7z"/> + <path fill="#C5A96F" d="M58,12c25.4,0,46,20.6,46,46s-20.6,46-46,46c-25.4,0-46-20.6-46-46S32.6,12,58,12 M58,0C26,0,0,26,0,58 + s26,58,58,58c32,0,58-26,58-58S90,0,58,0L58,0z"/> + </g> +</g> +</svg> diff --git a/src/styles/builtin/retro/images/selectionhandle-bottom.svg b/src/styles/builtin/retro/images/selectionhandle-bottom.svg new file mode 100644 index 00000000..1a45a736 --- /dev/null +++ b/src/styles/builtin/retro/images/selectionhandle-bottom.svg @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 19.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + width="54px" height="94px" viewBox="0 0 54 94" enable-background="new 0 0 54 94" xml:space="preserve"> +<rect x="24" y="0" opacity="0.85" fill="#37260B" width="6" height="55"/> +<path opacity="0.85" fill="#37260B" d="M54,67c0,14.912-12.088,27-27,27S0,81.912,0,67c0-19.758,27-30,27-30S54,47.25,54,67z"/> +<rect x="24" y="0" fill="#B57C47" width="6" height="55"/> +<path fill="#B57C47" d="M54,63c0,14.912-12.088,27-27,27S0,77.912,0,63c0-19.758,27-30,27-30S54,43.25,54,63z"/> +</svg> diff --git a/src/styles/builtin/retro/images/shift-c5a96f.svg b/src/styles/builtin/retro/images/shift-c5a96f.svg new file mode 100644 index 00000000..3da185d2 --- /dev/null +++ b/src/styles/builtin/retro/images/shift-c5a96f.svg @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + width="144px" height="134px" viewBox="0 0 144 134" enable-background="new 0 0 144 134" xml:space="preserve"> +<g> + <rect fill="none" width="144" height="134"/> + <g> + <path fill="#C5A96F" d="M103.6,134H40.2V77.5H0L71.9,0l71.9,77.5h-40.2V134L103.6,134z M51.7,122.5h40.5V66.1h25.4L71.9,16.8 + L26.2,66.1h25.4L51.7,122.5L51.7,122.5z"/> + </g> +</g> +</svg> diff --git a/src/styles/builtin/retro/images/shift-cd8865.svg b/src/styles/builtin/retro/images/shift-cd8865.svg new file mode 100644 index 00000000..09eba7cd --- /dev/null +++ b/src/styles/builtin/retro/images/shift-cd8865.svg @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + width="144px" height="134px" viewBox="0 0 144 134" enable-background="new 0 0 144 134" xml:space="preserve"> +<g> + <rect fill="none" width="144" height="134"/> + <g> + <path fill="#CD8865" d="M103.6,134H40.2V77.5H0L71.9,0l71.9,77.5h-40.2V134L103.6,134z M51.7,122.5h40.5V66.1h25.4L71.9,16.8 + L26.2,66.1h25.4L51.7,122.5L51.7,122.5z"/> + </g> +</g> +</svg> diff --git a/src/styles/builtin/retro/images/shift-dc4f28.svg b/src/styles/builtin/retro/images/shift-dc4f28.svg new file mode 100644 index 00000000..d1a5d5ee --- /dev/null +++ b/src/styles/builtin/retro/images/shift-dc4f28.svg @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + width="144px" height="134px" viewBox="0 0 144 134" enable-background="new 0 0 144 134" xml:space="preserve"> +<g> + <rect fill="none" width="144" height="134"/> + <g> + <path fill="#DC4F28" d="M103.6,134H40.2V77.5H0L71.9,0l71.9,77.5h-40.2L103.6,134L103.6,134z M51.7,122.5h40.5V66.1h25.4 + L71.9,16.8L26.2,66.1h25.4L51.7,122.5L51.7,122.5z"/> + </g> +</g> +</svg> diff --git a/src/styles/builtin/retro/images/textmode-110b05.svg b/src/styles/builtin/retro/images/textmode-110b05.svg new file mode 100644 index 00000000..c5bfd98d --- /dev/null +++ b/src/styles/builtin/retro/images/textmode-110b05.svg @@ -0,0 +1,80 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.1" + id="Layer_1" + x="0px" + y="0px" + width="124" + height="124" + viewBox="0 0 124 124" + enable-background="new 0 0 124 96" + xml:space="preserve" + sodipodi:docname="textmode-110b05.svg" + inkscape:version="1.0.2-2 (e86c870879, 2021-01-15)"><metadata + id="metadata25"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs + id="defs23" /><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="1920" + inkscape:window-height="1055" + id="namedview21" + showgrid="false" + inkscape:zoom="8.4112903" + inkscape:cx="62" + inkscape:cy="48" + inkscape:window-x="-7" + inkscape:window-y="-7" + inkscape:window-maximized="1" + inkscape:current-layer="Layer_1" /> +<g + id="g18" + transform="translate(-0.05,14)"> + <g + id="g14"> + <g + id="g6"> + <path + fill="#110b05" + d="M 55.4,70.8 46.9,49 H 19.4 L 11,70.8 H 2.9 L 30,2 h 6.7 l 27,68.8 z m -11,-29 -8,-21.2 c -1,-2.7 -2.1,-6 -3.2,-9.9 -0.7,3 -1.7,6.3 -3,9.9 l -8.1,21.2 z" + id="path2" /> + <path + fill="#110b05" + d="M 66.6,72.8 H 54.1 L 45.5,51 H 20.8 L 12.4,72.8 H 0 L 28.7,0 h 9.4 z m -9.8,-4 h 4 L 35.4,4 h -1.9 l 1.7,6.2 c 1.1,3.8 2.1,7.1 3.1,9.7 l 9,24 h -28 L 28.4,20 c 1.2,-3.5 2.2,-6.7 2.9,-9.6 L 32.8,4 H 31.4 L 5.9,68.8 H 9.7 L 18.1,47 h 30.2 z m -31.7,-29 h 16.4 l -7,-18.5 c -0.4,-1.1 -0.8,-2.2 -1.2,-3.4 -0.4,1.1 -0.7,2.2 -1.2,3.4 z" + id="path4" /> + </g> + <g + id="g12"> + <path + fill="#110b05" + d="m 116.2,70.8 -1.5,-7.3 h -0.4 c -2.6,3.2 -5.1,5.4 -7.7,6.5 -2.6,1.1 -5.7,1.7 -9.5,1.7 -5.1,0 -9.1,-1.3 -12,-3.9 -2.9,-2.6 -4.3,-6.4 -4.3,-11.2 0,-10.4 8.3,-15.8 24.9,-16.3 l 8.7,-0.3 v -3.2 c 0,-4 -0.9,-7 -2.6,-8.9 C 110.1,26 107.3,25 103.5,25 99.2,25 94.4,26.3 89,28.9 l -2.4,-6 c 2.5,-1.4 5.3,-2.5 8.3,-3.2 3,-0.7 6,-1.2 9.1,-1.2 6.1,0 10.7,1.4 13.6,4.1 2.9,2.7 4.4,7.1 4.4,13.1 V 70.8 Z M 98.7,65.3 c 4.8,0 8.6,-1.3 11.4,-4 2.8,-2.7 4.1,-6.4 4.1,-11.2 v -4.6 l -7.8,0.3 C 100.2,46 95.8,47 93,48.7 c -2.8,1.7 -4,4.4 -4,8 0,2.8 0.9,5 2.6,6.4 1.7,1.4 4,2.2 7.1,2.2 z" + id="path8" /> + <path + fill="#110b05" + d="m 97.1,73.8 c -5.6,0 -10.1,-1.5 -13.3,-4.5 -3.3,-3 -5,-7.3 -5,-12.7 0,-11.6 9,-17.8 26.8,-18.3 l 6.8,-0.2 v -1.3 c 0,-3.5 -0.7,-6.1 -2.1,-7.6 -1.3,-1.5 -3.6,-2.2 -6.8,-2.2 -4,0 -8.6,1.3 -13.7,3.7 l -1.9,0.9 -3.9,-9.5 1.6,-0.8 c 2.7,-1.4 5.6,-2.6 8.8,-3.4 3.2,-0.8 6.4,-1.2 9.6,-1.2 6.6,0 11.7,1.6 15,4.6 3.4,3.1 5.1,8 5.1,14.5 v 37.1 h -9.4 l -1.1,-5.3 c -2,2 -4,3.5 -6,4.4 -2.9,1.1 -6.4,1.8 -10.5,1.8 z M 103.5,23 c 4.4,0 7.7,1.2 9.8,3.5 2.1,2.3 3.1,5.7 3.1,10.3 V 42 l -10.7,0.3 c -23,0.7 -23,10.9 -23,14.3 0,4.3 1.2,7.5 3.7,9.7 2.5,2.3 6.1,3.4 10.6,3.4 3.5,0 6.4,-0.5 8.7,-1.5 2.2,-1 4.6,-3 6.9,-6 l 0.6,-0.8 h 2.6 l 0.7,1.6 1.2,5.7 h 2.1 V 35.8 c 0,-5.4 -1.3,-9.3 -3.8,-11.6 -2.6,-2.4 -6.7,-3.5 -12.3,-3.5 -2.8,0 -5.7,0.4 -8.6,1.1 -2.2,0.6 -4.3,1.3 -6.3,2.3 l 0.9,2.3 C 94.9,24.1 99.4,23 103.5,23 Z m -4.8,44.3 c -3.5,0 -6.4,-0.9 -8.5,-2.7 C 88,62.8 87,60.1 87,56.7 c 0,-4.3 1.7,-7.6 5,-9.6 3.1,-1.9 7.8,-3 14.4,-3.2 l 9.9,-0.4 v 6.7 c 0,5.3 -1.6,9.6 -4.8,12.6 -3.2,3 -7.5,4.5 -12.8,4.5 z m 13.5,-19.7 -5.7,0.2 c -5.8,0.2 -10,1.1 -12.4,2.6 -2.1,1.4 -3.1,3.4 -3.1,6.3 0,2.2 0.6,3.8 1.9,4.9 1.3,1.1 3.3,1.7 5.8,1.7 4.3,0 7.6,-1.1 10,-3.4 2.4,-2.3 3.5,-5.5 3.5,-9.7 z" + id="path10" /> + </g> + </g> + <rect + y="88" + fill="#110b05" + width="124" + height="8" + id="rect16" + x="0" /> +</g> +</svg> diff --git a/src/styles/builtin/retro/images/textmode-c5a96f.svg b/src/styles/builtin/retro/images/textmode-c5a96f.svg new file mode 100644 index 00000000..e6340558 --- /dev/null +++ b/src/styles/builtin/retro/images/textmode-c5a96f.svg @@ -0,0 +1,80 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.1" + id="Layer_1" + x="0px" + y="0px" + width="124" + height="124" + viewBox="0 0 124 124" + enable-background="new 0 0 124 96" + xml:space="preserve" + sodipodi:docname="textmode-c5a96f.svg" + inkscape:version="1.0.2-2 (e86c870879, 2021-01-15)"><metadata + id="metadata25"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs + id="defs23" /><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="1920" + inkscape:window-height="1055" + id="namedview21" + showgrid="false" + inkscape:zoom="8.4112903" + inkscape:cx="62" + inkscape:cy="48" + inkscape:window-x="-7" + inkscape:window-y="-7" + inkscape:window-maximized="1" + inkscape:current-layer="Layer_1" /> +<g + id="g18" + transform="translate(-0.05,14)"> + <g + id="g14"> + <g + id="g6"> + <path + fill="#c5a96f" + d="M 55.4,70.8 46.9,49 H 19.4 L 11,70.8 H 2.9 L 30,2 h 6.7 l 27,68.8 z m -11,-29 -8,-21.2 c -1,-2.7 -2.1,-6 -3.2,-9.9 -0.7,3 -1.7,6.3 -3,9.9 l -8.1,21.2 z" + id="path2" /> + <path + fill="#c5a96f" + d="M 66.6,72.8 H 54.1 L 45.5,51 H 20.8 L 12.4,72.8 H 0 L 28.7,0 h 9.4 z m -9.8,-4 h 4 L 35.4,4 h -1.9 l 1.7,6.2 c 1.1,3.8 2.1,7.1 3.1,9.7 l 9,24 h -28 L 28.4,20 c 1.2,-3.5 2.2,-6.7 2.9,-9.6 L 32.8,4 H 31.4 L 5.9,68.8 H 9.7 L 18.1,47 h 30.2 z m -31.7,-29 h 16.4 l -7,-18.5 c -0.4,-1.1 -0.8,-2.2 -1.2,-3.4 -0.4,1.1 -0.7,2.2 -1.2,3.4 z" + id="path4" /> + </g> + <g + id="g12"> + <path + fill="#c5a96f" + d="m 116.2,70.8 -1.5,-7.3 h -0.4 c -2.6,3.2 -5.1,5.4 -7.7,6.5 -2.6,1.1 -5.7,1.7 -9.5,1.7 -5.1,0 -9.1,-1.3 -12,-3.9 -2.9,-2.6 -4.3,-6.4 -4.3,-11.2 0,-10.4 8.3,-15.8 24.9,-16.3 l 8.7,-0.3 v -3.2 c 0,-4 -0.9,-7 -2.6,-8.9 C 110.1,26 107.3,25 103.5,25 99.2,25 94.4,26.3 89,28.9 l -2.4,-6 c 2.5,-1.4 5.3,-2.5 8.3,-3.2 3,-0.7 6,-1.2 9.1,-1.2 6.1,0 10.7,1.4 13.6,4.1 2.9,2.7 4.4,7.1 4.4,13.1 V 70.8 Z M 98.7,65.3 c 4.8,0 8.6,-1.3 11.4,-4 2.8,-2.7 4.1,-6.4 4.1,-11.2 v -4.6 l -7.8,0.3 C 100.2,46 95.8,47 93,48.7 c -2.8,1.7 -4,4.4 -4,8 0,2.8 0.9,5 2.6,6.4 1.7,1.4 4,2.2 7.1,2.2 z" + id="path8" /> + <path + fill="#c5a96f" + d="m 97.1,73.8 c -5.6,0 -10.1,-1.5 -13.3,-4.5 -3.3,-3 -5,-7.3 -5,-12.7 0,-11.6 9,-17.8 26.8,-18.3 l 6.8,-0.2 v -1.3 c 0,-3.5 -0.7,-6.1 -2.1,-7.6 -1.3,-1.5 -3.6,-2.2 -6.8,-2.2 -4,0 -8.6,1.3 -13.7,3.7 l -1.9,0.9 -3.9,-9.5 1.6,-0.8 c 2.7,-1.4 5.6,-2.6 8.8,-3.4 3.2,-0.8 6.4,-1.2 9.6,-1.2 6.6,0 11.7,1.6 15,4.6 3.4,3.1 5.1,8 5.1,14.5 v 37.1 h -9.4 l -1.1,-5.3 c -2,2 -4,3.5 -6,4.4 -2.9,1.1 -6.4,1.8 -10.5,1.8 z M 103.5,23 c 4.4,0 7.7,1.2 9.8,3.5 2.1,2.3 3.1,5.7 3.1,10.3 V 42 l -10.7,0.3 c -23,0.7 -23,10.9 -23,14.3 0,4.3 1.2,7.5 3.7,9.7 2.5,2.3 6.1,3.4 10.6,3.4 3.5,0 6.4,-0.5 8.7,-1.5 2.2,-1 4.6,-3 6.9,-6 l 0.6,-0.8 h 2.6 l 0.7,1.6 1.2,5.7 h 2.1 V 35.8 c 0,-5.4 -1.3,-9.3 -3.8,-11.6 -2.6,-2.4 -6.7,-3.5 -12.3,-3.5 -2.8,0 -5.7,0.4 -8.6,1.1 -2.2,0.6 -4.3,1.3 -6.3,2.3 l 0.9,2.3 C 94.9,24.1 99.4,23 103.5,23 Z m -4.8,44.3 c -3.5,0 -6.4,-0.9 -8.5,-2.7 C 88,62.8 87,60.1 87,56.7 c 0,-4.3 1.7,-7.6 5,-9.6 3.1,-1.9 7.8,-3 14.4,-3.2 l 9.9,-0.4 v 6.7 c 0,5.3 -1.6,9.6 -4.8,12.6 -3.2,3 -7.5,4.5 -12.8,4.5 z m 13.5,-19.7 -5.7,0.2 c -5.8,0.2 -10,1.1 -12.4,2.6 -2.1,1.4 -3.1,3.4 -3.1,6.3 0,2.2 0.6,3.8 1.9,4.9 1.3,1.1 3.3,1.7 5.8,1.7 4.3,0 7.6,-1.1 10,-3.4 2.4,-2.3 3.5,-5.5 3.5,-9.7 z" + id="path10" /> + </g> + </g> + <rect + y="88" + fill="#c5a96f" + width="124" + height="8" + id="rect16" + x="0" /> +</g> +</svg> diff --git a/src/styles/builtin/retro/images/textmode-fff.svg b/src/styles/builtin/retro/images/textmode-fff.svg new file mode 100644 index 00000000..e14961dc --- /dev/null +++ b/src/styles/builtin/retro/images/textmode-fff.svg @@ -0,0 +1,80 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.1" + id="Layer_1" + x="0px" + y="0px" + width="124" + height="124" + viewBox="0 0 124 124" + enable-background="new 0 0 124 96" + xml:space="preserve" + sodipodi:docname="textmode-fff.svg" + inkscape:version="1.0.2-2 (e86c870879, 2021-01-15)"><metadata + id="metadata25"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs + id="defs23" /><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="1920" + inkscape:window-height="1055" + id="namedview21" + showgrid="false" + inkscape:zoom="8.4112903" + inkscape:cx="62" + inkscape:cy="48" + inkscape:window-x="-7" + inkscape:window-y="-7" + inkscape:window-maximized="1" + inkscape:current-layer="Layer_1" /> +<g + id="g18" + transform="translate(-0.05,14)"> + <g + id="g14"> + <g + id="g6"> + <path + fill="#ffffff" + d="M 55.4,70.8 46.9,49 H 19.4 L 11,70.8 H 2.9 L 30,2 h 6.7 l 27,68.8 z m -11,-29 -8,-21.2 c -1,-2.7 -2.1,-6 -3.2,-9.9 -0.7,3 -1.7,6.3 -3,9.9 l -8.1,21.2 z" + id="path2" /> + <path + fill="#ffffff" + d="M 66.6,72.8 H 54.1 L 45.5,51 H 20.8 L 12.4,72.8 H 0 L 28.7,0 h 9.4 z m -9.8,-4 h 4 L 35.4,4 h -1.9 l 1.7,6.2 c 1.1,3.8 2.1,7.1 3.1,9.7 l 9,24 h -28 L 28.4,20 c 1.2,-3.5 2.2,-6.7 2.9,-9.6 L 32.8,4 H 31.4 L 5.9,68.8 H 9.7 L 18.1,47 h 30.2 z m -31.7,-29 h 16.4 l -7,-18.5 c -0.4,-1.1 -0.8,-2.2 -1.2,-3.4 -0.4,1.1 -0.7,2.2 -1.2,3.4 z" + id="path4" /> + </g> + <g + id="g12"> + <path + fill="#ffffff" + d="m 116.2,70.8 -1.5,-7.3 h -0.4 c -2.6,3.2 -5.1,5.4 -7.7,6.5 -2.6,1.1 -5.7,1.7 -9.5,1.7 -5.1,0 -9.1,-1.3 -12,-3.9 -2.9,-2.6 -4.3,-6.4 -4.3,-11.2 0,-10.4 8.3,-15.8 24.9,-16.3 l 8.7,-0.3 v -3.2 c 0,-4 -0.9,-7 -2.6,-8.9 C 110.1,26 107.3,25 103.5,25 99.2,25 94.4,26.3 89,28.9 l -2.4,-6 c 2.5,-1.4 5.3,-2.5 8.3,-3.2 3,-0.7 6,-1.2 9.1,-1.2 6.1,0 10.7,1.4 13.6,4.1 2.9,2.7 4.4,7.1 4.4,13.1 V 70.8 Z M 98.7,65.3 c 4.8,0 8.6,-1.3 11.4,-4 2.8,-2.7 4.1,-6.4 4.1,-11.2 v -4.6 l -7.8,0.3 C 100.2,46 95.8,47 93,48.7 c -2.8,1.7 -4,4.4 -4,8 0,2.8 0.9,5 2.6,6.4 1.7,1.4 4,2.2 7.1,2.2 z" + id="path8" /> + <path + fill="#ffffff" + d="m 97.1,73.8 c -5.6,0 -10.1,-1.5 -13.3,-4.5 -3.3,-3 -5,-7.3 -5,-12.7 0,-11.6 9,-17.8 26.8,-18.3 l 6.8,-0.2 v -1.3 c 0,-3.5 -0.7,-6.1 -2.1,-7.6 -1.3,-1.5 -3.6,-2.2 -6.8,-2.2 -4,0 -8.6,1.3 -13.7,3.7 l -1.9,0.9 -3.9,-9.5 1.6,-0.8 c 2.7,-1.4 5.6,-2.6 8.8,-3.4 3.2,-0.8 6.4,-1.2 9.6,-1.2 6.6,0 11.7,1.6 15,4.6 3.4,3.1 5.1,8 5.1,14.5 v 37.1 h -9.4 l -1.1,-5.3 c -2,2 -4,3.5 -6,4.4 -2.9,1.1 -6.4,1.8 -10.5,1.8 z M 103.5,23 c 4.4,0 7.7,1.2 9.8,3.5 2.1,2.3 3.1,5.7 3.1,10.3 V 42 l -10.7,0.3 c -23,0.7 -23,10.9 -23,14.3 0,4.3 1.2,7.5 3.7,9.7 2.5,2.3 6.1,3.4 10.6,3.4 3.5,0 6.4,-0.5 8.7,-1.5 2.2,-1 4.6,-3 6.9,-6 l 0.6,-0.8 h 2.6 l 0.7,1.6 1.2,5.7 h 2.1 V 35.8 c 0,-5.4 -1.3,-9.3 -3.8,-11.6 -2.6,-2.4 -6.7,-3.5 -12.3,-3.5 -2.8,0 -5.7,0.4 -8.6,1.1 -2.2,0.6 -4.3,1.3 -6.3,2.3 l 0.9,2.3 C 94.9,24.1 99.4,23 103.5,23 Z m -4.8,44.3 c -3.5,0 -6.4,-0.9 -8.5,-2.7 C 88,62.8 87,60.1 87,56.7 c 0,-4.3 1.7,-7.6 5,-9.6 3.1,-1.9 7.8,-3 14.4,-3.2 l 9.9,-0.4 v 6.7 c 0,5.3 -1.6,9.6 -4.8,12.6 -3.2,3 -7.5,4.5 -12.8,4.5 z m 13.5,-19.7 -5.7,0.2 c -5.8,0.2 -10,1.1 -12.4,2.6 -2.1,1.4 -3.1,3.4 -3.1,6.3 0,2.2 0.6,3.8 1.9,4.9 1.3,1.1 3.3,1.7 5.8,1.7 4.3,0 7.6,-1.1 10,-3.4 2.4,-2.3 3.5,-5.5 3.5,-9.7 z" + id="path10" /> + </g> + </g> + <rect + y="88" + fill="#ffffff" + width="124" + height="8" + id="rect16" + x="0" /> +</g> +</svg> diff --git a/src/styles/builtin/retro/images/triangle_black.png b/src/styles/builtin/retro/images/triangle_black.png Binary files differnew file mode 100644 index 00000000..a45e733b --- /dev/null +++ b/src/styles/builtin/retro/images/triangle_black.png diff --git a/src/styles/builtin/retro/images/triangle_highlight.png b/src/styles/builtin/retro/images/triangle_highlight.png Binary files differnew file mode 100644 index 00000000..34853263 --- /dev/null +++ b/src/styles/builtin/retro/images/triangle_highlight.png diff --git a/src/styles/builtin/retro/style.qml b/src/styles/builtin/retro/style.qml new file mode 100644 index 00000000..dd295446 --- /dev/null +++ b/src/styles/builtin/retro/style.qml @@ -0,0 +1,1248 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only + +import QtQuick +import QtQuick.VirtualKeyboard +import QtQuick.VirtualKeyboard.Styles + +KeyboardStyle { + id: currentStyle + readonly property bool compactSelectionList: [InputEngine.InputMode.Pinyin, InputEngine.InputMode.Cangjie, InputEngine.InputMode.Zhuyin].indexOf(InputContext.inputEngine.inputMode) !== -1 + readonly property string fontFamily: "Courier" + readonly property real keyBackgroundMargin: Math.round(9 * scaleHint) + readonly property real keyContentMargin: Math.round(30 * scaleHint) + readonly property real keyIconScale: scaleHint * 0.6 + readonly property string resourcePath: "qt-project.org/imports/QtQuick/VirtualKeyboard/Styles/Builtin/retro/" + readonly property string resourcePrefix: "qrc:/" + resourcePath + + readonly property string inputLocale: InputContext.locale + property real inputLocaleIndicatorOpacity: 1.0 + property Timer inputLocaleIndicatorHighlightTimer: Timer { + interval: 1000 + onTriggered: inputLocaleIndicatorOpacity = 0.8 + } + onInputLocaleChanged: { + inputLocaleIndicatorOpacity = 1.0 + inputLocaleIndicatorHighlightTimer.restart() + } + + keyboardDesignWidth: 2560 + keyboardDesignHeight: 800 + keyboardRelativeLeftMargin: 114 / keyboardDesignWidth + keyboardRelativeRightMargin: 114 / keyboardDesignWidth + keyboardRelativeTopMargin: 9 / keyboardDesignHeight + keyboardRelativeBottomMargin: 88 / keyboardDesignHeight + + keyboardBackground: Rectangle { + gradient: Gradient { + GradientStop { position: 0.0; color: "#272727" } + GradientStop { position: 1.0; color: "black" } + } + } + + keyPanel: KeyPanel { + id: keyPanel + Image { + id: keyBackground + source: resourcePrefix + "images/key154px_colorA.png" + fillMode: Image.PreserveAspectFit + anchors.fill: keyPanel + anchors.margins: keyBackgroundMargin + states: [ + State { + name: "key154px_colorB" + when: ['q', 'r', 'y', 'p', 's', 'd', 'j', 'l', 'v', 'b', '\'', + '1', '4', '6', '0', '#', '%', '+', ')', '>', + '~', '·', '÷', '}', '€', '£', '§', ']', '«', '»'].indexOf(control.displayText.toLowerCase()) >= 0 + PropertyChanges { + target: keyBackground + source: resourcePrefix + "images/key154px_colorB.png" + } + }, + State { + name: "key154px_black" + when: control.highlighted + PropertyChanges { + target: keyBackground + source: resourcePrefix + "images/key154px_black.png" + } + } + ] + } + Text { + id: keyText + text: control.displayText + color: "#110b05" + anchors.fill: keyPanel + anchors.margins: keyContentMargin + fontSizeMode: Text.Fit + horizontalAlignment: Text.AlignHCenter + verticalAlignment: Text.AlignVCenter + font { + family: fontFamily + weight: Font.Bold + pixelSize: 82 * scaleHint + capitalization: control.uppercased ? Font.AllUppercase : Font.MixedCase + } + states: [ + State { + name: "fontB" + when: control.highlighted + PropertyChanges { + target: keyText + color: "#c5a96f" + font.pixelSize: 74 * scaleHint + font.letterSpacing: -5 * scaleHint + } + } + ] + } + states: [ + State { + name: "pressed" + when: control.pressed + PropertyChanges { + target: keyBackground + opacity: 0.70 + } + PropertyChanges { + target: keyText + opacity: 0.75 + } + }, + State { + name: "disabled" + when: !control.enabled + PropertyChanges { + target: keyBackground + opacity: 0.30 + } + PropertyChanges { + target: keyText + opacity: 0.50 + } + } + ] + } + + backspaceKeyPanel: KeyPanel { + id: backspaceKeyPanel + BorderImage { + id: backspaceKeyBackground + source: resourcePrefix + "images/key154px_black.png" + width: (parent.width - 2 * keyBackgroundMargin) / scale + height: sourceSize.height + anchors.centerIn: backspaceKeyPanel + border.left: 76 + border.top: 76 + border.right: 76 + border.bottom: 76 + horizontalTileMode: BorderImage.Stretch + scale: (parent.height - 2 * keyBackgroundMargin) / sourceSize.height + } + Image { + id: backspaceKeyIcon + anchors.centerIn: backspaceKeyPanel + sourceSize.width: 159 * keyIconScale + sourceSize.height: 88 * keyIconScale + smooth: false + source: resourcePrefix + "images/backspace-c5a96f.svg" + } + states: [ + State { + name: "pressed" + when: control.pressed + PropertyChanges { + target: backspaceKeyBackground + opacity: 0.70 + } + PropertyChanges { + target: backspaceKeyIcon + opacity: 0.70 + } + }, + State { + name: "disabled" + when: !control.enabled + PropertyChanges { + target: backspaceKeyBackground + opacity: 0.20 + } + PropertyChanges { + target: backspaceKeyIcon + opacity: 0.20 + } + } + ] + } + + languageKeyPanel: KeyPanel { + id: languageKeyPanel + Image { + id: languageKeyBackground + source: resourcePrefix + "images/key154px_colorB.png" + fillMode: Image.PreserveAspectFit + anchors.fill: languageKeyPanel + anchors.margins: keyBackgroundMargin + } + Image { + id: languageKeyIcon + anchors.centerIn: languageKeyPanel + sourceSize.width: 127 * keyIconScale + sourceSize.height: 127 * keyIconScale + smooth: false + source: resourcePrefix + "images/globe-110b05.svg" + } + states: [ + State { + name: "pressed" + when: control.pressed + PropertyChanges { + target: languageKeyBackground + opacity: 0.70 + } + PropertyChanges { + target: languageKeyIcon + opacity: 0.30 + } + }, + State { + name: "disabled" + when: !control.enabled + PropertyChanges { + target: languageKeyBackground + opacity: 0.75 + } + PropertyChanges { + target: languageKeyIcon + opacity: 0.50 + } + } + ] + } + + enterKeyPanel: KeyPanel { + id: enterKeyPanel + BorderImage { + id: enterKeyBackground + source: resourcePrefix + "images/key154px_black.png" + width: (parent.width - 2 * keyBackgroundMargin) / scale + height: sourceSize.height + anchors.centerIn: enterKeyPanel + border.left: 76 + border.top: 76 + border.right: 76 + border.bottom: 76 + horizontalTileMode: BorderImage.Stretch + scale: (parent.height - 2 * keyBackgroundMargin) / sourceSize.height + } + Image { + id: enterKeyIcon + visible: enterKeyText.text.length === 0 + anchors.centerIn: enterKeyPanel + readonly property size enterKeyIconSize: { + switch (control.actionId) { + case EnterKeyAction.Go: + case EnterKeyAction.Send: + case EnterKeyAction.Next: + case EnterKeyAction.Done: + return Qt.size(170, 119) + case EnterKeyAction.Search: + return Qt.size(148, 148) + default: + return Qt.size(211, 80) + } + } + sourceSize.width: enterKeyIconSize.width * keyIconScale + sourceSize.height: enterKeyIconSize.height * keyIconScale + smooth: false + source: { + switch (control.actionId) { + case EnterKeyAction.Go: + case EnterKeyAction.Send: + case EnterKeyAction.Next: + case EnterKeyAction.Done: + return resourcePrefix + "images/check-c5a96f.svg" + case EnterKeyAction.Search: + return resourcePrefix + "images/search-c5a96f.svg" + default: + return resourcePrefix + "images/enter-c5a96f.svg" + } + } + } + Text { + id: enterKeyText + visible: text.length !== 0 + text: control.actionId !== EnterKeyAction.None ? control.displayText : "" + clip: true + fontSizeMode: Text.HorizontalFit + horizontalAlignment: Text.AlignHCenter + verticalAlignment: Text.AlignVCenter + anchors.fill: enterKeyPanel + anchors.leftMargin: keyContentMargin + anchors.topMargin: Math.round(50 * scaleHint) + anchors.rightMargin: keyContentMargin + anchors.bottomMargin: Math.round(30 * scaleHint) + color: "#c5a96f" + font { + family: fontFamily + weight: Font.Bold + pixelSize: 74 * scaleHint + capitalization: Font.AllUppercase + } + } + states: [ + State { + name: "pressed" + when: control.pressed + PropertyChanges { + target: enterKeyBackground + opacity: 0.70 + } + PropertyChanges { + target: enterKeyIcon + opacity: 0.70 + } + PropertyChanges { + target: enterKeyText + opacity: 0.70 + } + }, + State { + name: "disabled" + when: !control.enabled + PropertyChanges { + target: enterKeyBackground + opacity: 0.20 + } + PropertyChanges { + target: enterKeyIcon + opacity: 0.20 + } + PropertyChanges { + target: enterKeyText + opacity: 0.20 + } + } + ] + } + + hideKeyPanel: KeyPanel { + id: hideKeyPanel + BorderImage { + id: hideKeyBackground + source: resourcePrefix + "images/key154px_black.png" + width: (parent.width - 2 * keyBackgroundMargin) / scale + height: sourceSize.height + anchors.centerIn: hideKeyPanel + border.left: 76 + border.top: 76 + border.right: 76 + border.bottom: 76 + horizontalTileMode: BorderImage.Stretch + scale: (parent.height - 2 * keyBackgroundMargin) / sourceSize.height + } + Image { + id: hideKeyIcon + anchors.centerIn: hideKeyPanel + sourceSize.width: 127 * keyIconScale + sourceSize.height: 127 * keyIconScale + smooth: false + source: resourcePrefix + "images/hidekeyboard-c5a96f.svg" + } + states: [ + State { + name: "pressed" + when: control.pressed + PropertyChanges { + target: hideKeyBackground + opacity: 0.70 + } + PropertyChanges { + target: hideKeyIcon + opacity: 0.70 + } + }, + State { + name: "disabled" + when: !control.enabled + PropertyChanges { + target: hideKeyBackground + opacity: 0.20 + } + PropertyChanges { + target: hideKeyIcon + opacity: 0.20 + } + } + ] + } + + shiftKeyPanel: KeyPanel { + id: shiftKeyPanel + BorderImage { + id: shiftKeyBackground + source: resourcePrefix + "images/key154px_black.png" + width: (parent.width - 2 * keyBackgroundMargin) / scale + height: sourceSize.height + anchors.centerIn: shiftKeyPanel + border.left: 76 + border.top: 76 + border.right: 76 + border.bottom: 76 + horizontalTileMode: BorderImage.Stretch + scale: (parent.height - 2 * keyBackgroundMargin) / sourceSize.height + states: [ + State { + name: "capsLockActive" + when: InputContext.capsLockActive + PropertyChanges { + target: shiftKeyBackground + source: resourcePrefix + "images/key154px_capslock.png" + } + PropertyChanges { + target: shiftKeyIcon + source: resourcePrefix + "images/shift-cd8865.svg" + } + }, + State { + name: "shiftActive" + when: InputContext.shiftActive + PropertyChanges { + target: shiftKeyBackground + source: resourcePrefix + "images/key154px_shiftcase.png" + } + PropertyChanges { + target: shiftKeyIcon + source: resourcePrefix + "images/shift-dc4f28.svg" + } + } + ] + } + Image { + id: shiftKeyIcon + anchors.centerIn: shiftKeyPanel + sourceSize.width: 144 * keyIconScale + sourceSize.height: 134 * keyIconScale + smooth: false + source: resourcePrefix + "images/shift-c5a96f.svg" + } + states: [ + State { + name: "pressed" + when: control.pressed + PropertyChanges { + target: shiftKeyBackground + opacity: 0.70 + } + PropertyChanges { + target: shiftKeyIcon + opacity: 0.70 + } + }, + State { + name: "disabled" + when: !control.enabled + PropertyChanges { + target: shiftKeyBackground + opacity: 0.20 + } + PropertyChanges { + target: shiftKeyIcon + opacity: 0.20 + } + } + ] + } + + spaceKeyPanel: KeyPanel { + id: spaceKeyPanel + BorderImage { + id: spaceKeyBackground + source: resourcePrefix + "images/key154px_black.png" + width: (parent.width - 2 * keyBackgroundMargin) / scale + height: sourceSize.height + anchors.centerIn: spaceKeyPanel + border.left: 76 + border.top: 76 + border.right: 76 + border.bottom: 76 + horizontalTileMode: BorderImage.Stretch + scale: (parent.height - 2 * keyBackgroundMargin) / sourceSize.height + } + Text { + id: spaceKeyText + text: Qt.locale(InputContext.locale).nativeLanguageName + color: "#c5a96f" + opacity: inputLocaleIndicatorOpacity + Behavior on opacity { PropertyAnimation { duration: 250 } } + anchors.centerIn: spaceKeyPanel + font { + family: fontFamily + weight: Font.Bold + pixelSize: 72 * scaleHint + } + } + states: [ + State { + name: "pressed" + when: control.pressed + PropertyChanges { + target: spaceKeyBackground + opacity: 0.70 + } + }, + State { + name: "disabled" + when: !control.enabled + PropertyChanges { + target: spaceKeyBackground + opacity: 0.30 + } + } + ] + } + + symbolKeyPanel: KeyPanel { + id: symbolKeyPanel + BorderImage { + id: symbolKeyBackground + source: resourcePrefix + "images/key154px_black.png" + width: (parent.width - 2 * keyBackgroundMargin) / scale + height: sourceSize.height + anchors.centerIn: symbolKeyPanel + border.left: 76 + border.top: 76 + border.right: 76 + border.bottom: 76 + horizontalTileMode: BorderImage.Stretch + scale: (parent.height - 2 * keyBackgroundMargin) / sourceSize.height + } + Text { + id: symbolKeyText + text: control.displayText + color: "#c5a96f" + anchors.centerIn: symbolKeyPanel + font { + family: fontFamily + weight: Font.DemiBold + pixelSize: 74 * scaleHint + letterSpacing: -5 * scaleHint + capitalization: Font.AllUppercase + } + } + states: [ + State { + name: "pressed" + when: control.pressed + PropertyChanges { + target: symbolKeyBackground + opacity: 0.70 + } + PropertyChanges { + target: symbolKeyText + opacity: 0.70 + } + }, + State { + name: "disabled" + when: !control.enabled + PropertyChanges { + target: symbolKeyBackground + opacity: 0.20 + } + PropertyChanges { + target: symbolKeyText + opacity: 0.20 + } + } + ] + } + + modeKeyPanel: KeyPanel { + id: modeKeyPanel + BorderImage { + id: modeKeyBackground + source: resourcePrefix + "images/key154px_black.png" + width: (parent.width - 2 * keyBackgroundMargin) / scale + height: sourceSize.height + anchors.centerIn: modeKeyPanel + border.left: 76 + border.top: 76 + border.right: 76 + border.bottom: 76 + horizontalTileMode: BorderImage.Stretch + scale: (parent.height - 2 * keyBackgroundMargin) / sourceSize.height + states: [ + State { + name: "mode" + when: control.mode + PropertyChanges { + target: modeKeyBackground + source: resourcePrefix + "images/key154px_capslock.png" + } + } + ] + } + Text { + id: modeKeyText + text: control.displayText + color: "#c5a96f" + anchors.fill: modeKeyPanel + anchors.margins: keyContentMargin + fontSizeMode: Text.Fit + horizontalAlignment: Text.AlignHCenter + verticalAlignment: Text.AlignVCenter + font { + family: fontFamily + weight: Font.DemiBold + pixelSize: 74 * scaleHint + letterSpacing: -5 * scaleHint + capitalization: Font.AllUppercase + } + } + states: [ + State { + name: "pressed" + when: control.pressed + PropertyChanges { + target: modeKeyBackground + opacity: 0.70 + } + }, + State { + name: "disabled" + when: !control.enabled + PropertyChanges { + target: modeKeyBackground + opacity: 0.20 + } + } + ] + } + + handwritingKeyPanel: KeyPanel { + id: handwritingKeyPanel + BorderImage { + id: hwrKeyBackground + source: resourcePrefix + "images/key154px_black.png" + width: (parent.width - 2 * hwrKeyBackground) / scale + height: sourceSize.height + anchors.centerIn: handwritingKeyPanel + border.left: 76 + border.top: 76 + border.right: 76 + border.bottom: 76 + horizontalTileMode: BorderImage.Stretch + scale: (parent.height - 2 * keyBackgroundMargin) / sourceSize.height + } + Image { + id: hwrKeyIcon + anchors.centerIn: handwritingKeyPanel + sourceSize.width: 127 * keyIconScale + sourceSize.height: 127 * keyIconScale + smooth: false + source: resourcePrefix + (keyboard.handwritingMode ? "images/textmode-c5a96f.svg" : "images/handwriting-c5a96f.svg") + } + states: [ + State { + name: "pressed" + when: control.pressed + PropertyChanges { + target: hwrKeyBackground + opacity: 0.70 + } + PropertyChanges { + target: hwrKeyIcon + opacity: 0.70 + } + }, + State { + name: "disabled" + when: !control.enabled + PropertyChanges { + target: hwrKeyBackground + opacity: 0.20 + } + PropertyChanges { + target: hwrKeyIcon + opacity: 0.20 + } + } + ] + } + + characterPreviewMargin: Math.round(20 * scaleHint) + characterPreviewDelegate: Item { + property string text + id: characterPreview + Image { + id: characterPreviewBackground + source: resourcePrefix + "images/key_preview.png" + fillMode: Image.PreserveAspectFit + anchors.fill: parent + } + Text { + id: characterPreviewText + color: "#c5a96f" + text: characterPreview.text + anchors.centerIn: characterPreviewBackground + font { + family: fontFamily + weight: Font.Bold + pixelSize: 85 * scaleHint + } + states: [ + State { + name: "fit" + when: text.length > 1 + PropertyChanges { + target: characterPreviewText + font.letterSpacing: -5 * scaleHint + } + } + ] + } + } + + alternateKeysListItemWidth: Math.round(111 * scaleHint) + alternateKeysListItemHeight: Math.round(154 * scaleHint) + alternateKeysListBottomMargin: Math.round(15 * scaleHint) + alternateKeysListLeftMargin: Math.round(79 * scaleHint) + alternateKeysListRightMargin: Math.round(79 * scaleHint) + alternateKeysListDelegate: Item { + id: alternateKeysListItem + width: alternateKeysListItemWidth + height: alternateKeysListItemHeight + Text { + id: listItemText + text: model.text + color: "#868482" + font { + family: fontFamily + weight: Font.DemiBold + pixelSize: 52 * scaleHint + letterSpacing: -6 * scaleHint + } + anchors.centerIn: parent + } + states: State { + name: "current" + when: alternateKeysListItem.ListView.isCurrentItem + PropertyChanges { + target: listItemText + color: "white" + } + } + } + alternateKeysListHighlight: Item { + Rectangle { + anchors.fill: parent + anchors.topMargin: Math.round(8 * scaleHint) + anchors.bottomMargin: Math.round(8 * scaleHint) + gradient: Gradient { + GradientStop { position: 0.0; color: "#64462a" } + GradientStop { position: 0.18; color: "#a37648" } + GradientStop { position: 0.5; color: "#c4a47c" } + GradientStop { position: 0.82; color: "#a37648" } + GradientStop { position: 1.0; color: "#64462a" } + } + } + } + alternateKeysListBackground: Item { + property real currentItemOffset + property bool currentItemHighlight: false + BorderImage { + cache: false + source: resourcePrefix + "images/key160px_black.png" + width: sourceSize.width + parent.width / scale + height: sourceSize.height + anchors.centerIn: parent + border.left: 79 + border.top: 79 + border.right: 79 + border.bottom: 79 + horizontalTileMode: BorderImage.Stretch + scale: parent.height / sourceSize.height + } + Image { + visible: currentItemOffset !== undefined + source: currentItemHighlight ? resourcePrefix + "images/triangle_highlight.png" : resourcePrefix + "images/triangle_black.png" + fillMode: Image.PreserveAspectFit + width: sourceSize.width * scaleHint + height: sourceSize.height * scaleHint + anchors.top: parent.bottom + anchors.topMargin: Math.round(-8 * scaleHint) + anchors.left: parent.left + anchors.leftMargin: Math.round(currentItemOffset - width / 2) + } + } + + selectionListHeight: 85 * scaleHint + selectionListDelegate: SelectionListItem { + id: selectionListItem + width: Math.round(selectionListLabel.width + selectionListLabel.anchors.leftMargin * 2) + Text { + id: selectionListLabel + anchors.left: parent.left + anchors.leftMargin: Math.round((compactSelectionList ? 50 : 140) * scaleHint) + anchors.verticalCenter: parent.verticalCenter + text: decorateText(display, wordCompletionLength) + color: "white" + font { + family: fontFamily + weight: Font.Bold + pixelSize: 44 * scaleHint + } + function decorateText(text, wordCompletionLength) { + if (wordCompletionLength > 0) { + return text.slice(0, -wordCompletionLength) + '<u>' + text.slice(-wordCompletionLength) + '</u>' + } + return text + } + } + Rectangle { + id: selectionListSeparator + width: 4 * scaleHint + height: 36 * scaleHint + color: "#35322f" + anchors.verticalCenter: parent.verticalCenter + anchors.right: parent.left + } + states: State { + name: "current" + when: selectionListItem.ListView.isCurrentItem + PropertyChanges { + target: selectionListLabel + color: "#c5a96f" + } + } + } + selectionListBackground: Rectangle { + color: "#222222" + } + selectionListAdd: Transition { + NumberAnimation { property: "y"; from: wordCandidateView.height; duration: 200 } + NumberAnimation { property: "opacity"; from: 0; to: 1; duration: 200 } + } + selectionListRemove: Transition { + NumberAnimation { property: "y"; to: -wordCandidateView.height; duration: 200 } + NumberAnimation { property: "opacity"; to: 0; duration: 200 } + } + + navigationHighlight: Rectangle { + color: "transparent" + border.color: "yellow" + border.width: 5 + } + + traceInputKeyPanelDelegate: TraceInputKeyPanel { + traceMargins: keyBackgroundMargin + BorderImage { + id: traceInputKeyPanelBackground + readonly property int traceInputKeyPanelSvgImageHeight: Math.round(height / 12) + readonly property real traceInputKeyPanelSvgImageScale: traceInputKeyPanelSvgImageHeight / 154 + source: "image://qtvkbsvg/%1/images/key154px_colorA.svg?height=%2".arg(resourcePath).arg(traceInputKeyPanelSvgImageHeight) + anchors.fill: parent + anchors.margins: keyBackgroundMargin + border.left: 76 * traceInputKeyPanelSvgImageScale + border.top: 76 * traceInputKeyPanelSvgImageScale + border.right: 78 * traceInputKeyPanelSvgImageScale + border.bottom: 78 * traceInputKeyPanelSvgImageScale + horizontalTileMode: BorderImage.Stretch + verticalTileMode: BorderImage.Stretch + } + Text { + id: hwrInputModeIndicator + visible: control.patternRecognitionMode === InputEngine.PatternRecognitionMode.Handwriting + text: { + switch (InputContext.inputEngine.inputMode) { + case InputEngine.InputMode.Numeric: + if (["ar", "fa"].indexOf(InputContext.locale.substring(0, 2)) !== -1) + return "\u0660\u0661\u0662" + // Fallthrough + case InputEngine.InputMode.Dialable: + return "123" + case InputEngine.InputMode.Greek: + return "ΑΒΓ" + case InputEngine.InputMode.Cyrillic: + return "АБВ" + case InputEngine.InputMode.Arabic: + if (InputContext.locale.substring(0, 2) === "fa") + return "\u0627\u200C\u0628\u200C\u067E" + return "\u0623\u200C\u0628\u200C\u062C" + case InputEngine.InputMode.Hebrew: + return "\u05D0\u05D1\u05D2" + case InputEngine.InputMode.ChineseHandwriting: + return "中文" + case InputEngine.InputMode.JapaneseHandwriting: + return "日本語" + case InputEngine.InputMode.KoreanHandwriting: + return "한국어" + case InputEngine.InputMode.Thai: + return "กขค" + default: + return "Abc" + } + } + color: "black" + anchors.left: parent.left + anchors.top: parent.top + anchors.margins: keyContentMargin * 1.5 + font { + family: fontFamily + weight: Font.Bold + pixelSize: 72 * scaleHint + capitalization: { + if (InputContext.capsLockActive) + return Font.AllUppercase + if (InputContext.shiftActive) + return Font.MixedCase + return Font.AllLowercase + } + } + } + Canvas { + id: traceInputKeyGuideLines + anchors.fill: traceInputKeyPanelBackground + opacity: 0.4 + onPaint: { + var ctx = getContext("2d") + ctx.lineWidth = 1 + ctx.strokeStyle = Qt.rgba(0, 0, 0) + ctx.clearRect(0, 0, width, height) + var i + var margin = Math.round(30 * scaleHint) + if (control.horizontalRulers) { + for (i = 0; i < control.horizontalRulers.length; i++) { + ctx.beginPath() + var y = Math.round(control.horizontalRulers[i]) + var rightMargin = Math.round(width - margin) + if (i + 1 === control.horizontalRulers.length) { + ctx.moveTo(margin, y) + ctx.lineTo(rightMargin, y) + } else { + var dashLen = Math.round(20 * scaleHint) + for (var dash = margin, dashCount = 0; + dash < rightMargin; dash += dashLen, dashCount++) { + if ((dashCount & 1) === 0) { + ctx.moveTo(dash, y) + ctx.lineTo(Math.min(dash + dashLen, rightMargin), y) + } + } + } + ctx.stroke() + } + } + if (control.verticalRulers) { + for (i = 0; i < control.verticalRulers.length; i++) { + ctx.beginPath() + ctx.moveTo(control.verticalRulers[i], 0) + ctx.lineTo(control.verticalRulers[i], height) + ctx.stroke() + } + } + } + Connections { + target: control + function onHorizontalRulersChanged() { traceInputKeyGuideLines.requestPaint() } + function onVerticalRulersChanged() { traceInputKeyGuideLines.requestPaint() } + } + } + } + + traceCanvasDelegate: TraceCanvas { + id: traceCanvas + onAvailableChanged: { + if (!available) + return + var ctx = getContext("2d") + ctx.lineWidth = parent.canvasType === "fullscreen" ? 10 : 10 * scaleHint + ctx.lineCap = "round" + ctx.strokeStyle = Qt.rgba(0, 0, 0) + ctx.fillStyle = ctx.strokeStyle + } + autoDestroyDelay: 800 + onTraceChanged: if (trace === null) opacity = 0 + Behavior on opacity { PropertyAnimation { easing.type: Easing.OutCubic; duration: 150 } } + } + + popupListDelegate: SelectionListItem { + property real cursorAnchor: popupListLabel.x + popupListLabel.width + id: popupListItem + width: popupListLabel.width + popupListLabel.anchors.leftMargin * 2 + height: popupListLabel.height + popupListLabel.anchors.topMargin * 2 + Text { + id: popupListLabel + anchors.left: parent.left + anchors.top: parent.top + anchors.leftMargin: popupListLabel.height / 2 + anchors.topMargin: popupListLabel.height / 3 + text: decorateText(display, wordCompletionLength) + color: "#110b05" + font { + family: fontFamily + weight: Font.Normal + pixelSize: Qt.inputMethod.cursorRectangle.height * 0.8 + } + function decorateText(text, wordCompletionLength) { + if (wordCompletionLength > 0) { + return text.slice(0, -wordCompletionLength) + '<u>' + text.slice(-wordCompletionLength) + '</u>' + } + return text + } + } + states: State { + name: "current" + when: popupListItem.ListView.isCurrentItem + PropertyChanges { + target: popupListLabel + color: "black" + } + } + } + + popupListBackground: Item { + BorderImage { + readonly property int popupListBackgroundSvgImageHeight: Math.round(height / 8) + readonly property real popupListBackgroundSvgImageScale: popupListBackgroundSvgImageHeight / 154 + readonly property real backgroundMargin: 0 * scaleHint + x: -backgroundMargin + y: -backgroundMargin + width: parent.width + 2 * backgroundMargin + height: parent.height + 2 * backgroundMargin + source: "image://qtvkbsvg/%1/images/key154px_colorA.svg?height=%2".arg(resourcePath).arg(popupListBackgroundSvgImageHeight) + border.left: 76 * popupListBackgroundSvgImageScale + border.top: 76 * popupListBackgroundSvgImageScale + border.right: 76 * popupListBackgroundSvgImageScale + border.bottom: 76 * popupListBackgroundSvgImageScale + horizontalTileMode: BorderImage.Stretch + verticalTileMode: BorderImage.Stretch + } + } + + popupListAdd: Transition { + NumberAnimation { property: "opacity"; from: 0; to: 1.0; duration: 200 } + } + + popupListRemove: Transition { + NumberAnimation { property: "opacity"; to: 0; duration: 200 } + } + + languagePopupListEnabled: true + + languageListDelegate: SelectionListItem { + id: languageListItem + width: languageNameTextMetrics.width * 20 + height: languageNameTextMetrics.height + languageListLabel.anchors.topMargin + languageListLabel.anchors.bottomMargin + Text { + id: languageListLabel + anchors.left: parent.left + anchors.top: parent.top + anchors.leftMargin: languageNameTextMetrics.height / 2 + anchors.rightMargin: anchors.leftMargin + anchors.topMargin: languageNameTextMetrics.height / 3 + anchors.bottomMargin: anchors.topMargin + text: languageNameFormatter.elidedText + color: "#c5a96f" + opacity: 0.8 + font { + family: fontFamily + weight: Font.Normal + pixelSize: 44 * scaleHint + } + } + TextMetrics { + id: languageNameTextMetrics + font { + family: fontFamily + weight: Font.Normal + pixelSize: 44 * scaleHint + } + text: "X" + } + TextMetrics { + id: languageNameFormatter + font { + family: fontFamily + weight: Font.Normal + pixelSize: 44 * scaleHint + } + elide: Text.ElideRight + elideWidth: languageListItem.width - languageListLabel.anchors.leftMargin - languageListLabel.anchors.rightMargin + text: displayName + } + states: State { + name: "current" + when: languageListItem.ListView.isCurrentItem + PropertyChanges { + target: languageListLabel + color: "white" + } + } + } + + languageListHighlight: Item { + Rectangle { + anchors.fill: parent + anchors.topMargin: Math.round(8 * scaleHint) + anchors.bottomMargin: Math.round(8 * scaleHint) + gradient: Gradient { + GradientStop { position: 0.0; color: "#64462a" } + GradientStop { position: 0.18; color: "#a37648" } + GradientStop { position: 0.5; color: "#c4a47c" } + GradientStop { position: 0.82; color: "#a37648" } + GradientStop { position: 1.0; color: "#64462a" } + } + } + } + + languageListBackground: Item { + BorderImage { + readonly property int languageListBackgroundSvgImageHeight: Math.round(height / 3) + readonly property real languageListBackgroundSvgImageScale: languageListBackgroundSvgImageHeight / 154 + readonly property real backgroundMargin: 40 * scaleHint + x: -backgroundMargin + y: -backgroundMargin + width: parent.width + 2 * backgroundMargin + height: parent.height + 2 * backgroundMargin + source: "image://qtvkbsvg/%1/images/key154px_black.svg?height=%2".arg(resourcePath).arg(languageListBackgroundSvgImageHeight) + border.left: 76 * languageListBackgroundSvgImageScale + border.top: 76 * languageListBackgroundSvgImageScale + border.right: 78 * languageListBackgroundSvgImageScale + border.bottom: 78 * languageListBackgroundSvgImageScale + horizontalTileMode: BorderImage.Stretch + verticalTileMode: BorderImage.Stretch + } + } + + languageListAdd: Transition { + NumberAnimation { property: "opacity"; from: 0; to: 1.0; duration: 200 } + } + + languageListRemove: Transition { + NumberAnimation { property: "opacity"; to: 0; duration: 200 } + } + + selectionHandle: Image { + sourceSize.width: 20 + source: resourcePrefix + "images/selectionhandle-bottom.svg" + } + + fullScreenInputContainerBackground: Rectangle { + color: "#FFF" + } + + fullScreenInputBackground: Rectangle { + color: "#FFF" + } + + fullScreenInputMargins: Math.round(15 * scaleHint) + + fullScreenInputPadding: Math.round(30 * scaleHint) + + fullScreenInputCursor: Rectangle { + width: 1 + color: "#000" + visible: parent.blinkStatus + } + + fullScreenInputFont.pixelSize: 58 * scaleHint + + fullScreenInputPasswordCharacter: "*" + + fullScreenInputSelectionColor: "#B57C47" + + functionPopupListDelegate: Item { + id: functionPopupListItem + readonly property real iconMargin: 40 * scaleHint + readonly property real iconWidth: 144 * keyIconScale + readonly property real iconHeight: 144 * keyIconScale + width: iconWidth + 2 * iconMargin + height: iconHeight + 2 * iconMargin + Image { + id: functionIcon + anchors.centerIn: parent + sourceSize.width: iconWidth + sourceSize.height: iconHeight + smooth: false + source: { + switch (keyboardFunction) { + case QtVirtualKeyboard.KeyboardFunction.HideInputPanel: + return resourcePrefix + "images/hidekeyboard-c5a96f.svg" + case QtVirtualKeyboard.KeyboardFunction.ChangeLanguage: + return resourcePrefix + "images/globe-c5a96f.svg" + case QtVirtualKeyboard.KeyboardFunction.ToggleHandwritingMode: + return resourcePrefix + (keyboard.handwritingMode ? "images/textmode-c5a96f.svg" : "images/handwriting-c5a96f.svg") + } + } + states: State { + when: functionPopupListItem.ListView.isCurrentItem + PropertyChanges { + target: functionIcon + source: { + switch (keyboardFunction) { + case QtVirtualKeyboard.KeyboardFunction.HideInputPanel: + return resourcePrefix + "images/hidekeyboard-fff.svg" + case QtVirtualKeyboard.KeyboardFunction.ChangeLanguage: + return resourcePrefix + "images/globe-fff.svg" + case QtVirtualKeyboard.KeyboardFunction.ToggleHandwritingMode: + return resourcePrefix + (keyboard.handwritingMode ? "images/textmode-fff.svg" : "images/handwriting-fff.svg") + } + } + } + } + } + } + + functionPopupListBackground: Item { + property ListView view + property real currentItemOffset: { + if (view.count > 0) { + var highlightItem = view.itemAtIndex(0) + return view.mapFromItem(highlightItem, highlightItem.width / 2, 0).x + } + return 0 + } + property bool currentItemHighlight: view.currentIndex === 0 + BorderImage { + cache: false + source: resourcePrefix + "images/key160px_black.png" + width: sourceSize.width + parent.width / scale + height: sourceSize.height + anchors.centerIn: parent + border.left: 79 + border.top: 79 + border.right: 79 + border.bottom: 79 + horizontalTileMode: BorderImage.Stretch + scale: parent.height / sourceSize.height + } + Image { + visible: currentItemOffset !== undefined + source: currentItemHighlight ? resourcePrefix + "images/triangle_highlight.png" : resourcePrefix + "images/triangle_black.png" + fillMode: Image.PreserveAspectFit + width: sourceSize.width * scaleHint + height: sourceSize.height * scaleHint + anchors.top: parent.bottom + anchors.topMargin: Math.round(-8 * scaleHint) + anchors.left: parent.left + anchors.leftMargin: Math.round(currentItemOffset - width / 2) + } + } + + functionPopupListHighlight: Item { + Rectangle { + anchors.fill: parent + anchors.topMargin: Math.round(8 * scaleHint) + anchors.bottomMargin: Math.round(8 * scaleHint) + gradient: Gradient { + GradientStop { position: 0.0; color: "#64462a" } + GradientStop { position: 0.18; color: "#a37648" } + GradientStop { position: 0.5; color: "#c4a47c" } + GradientStop { position: 0.82; color: "#a37648" } + GradientStop { position: 1.0; color: "#64462a" } + } + } + } +} diff --git a/src/styles/plugins.qmltypes b/src/styles/plugins.qmltypes deleted file mode 100644 index 2aecdcb7..00000000 --- a/src/styles/plugins.qmltypes +++ /dev/null @@ -1,570 +0,0 @@ -import QtQuick.tooling 1.2 - -// This file describes the plugin-supplied types contained in the library. -// It is used for QML tooling purposes only. -// -// This file was auto-generated by: -// 'qmlplugindump -nonrelocatable QtQuick.VirtualKeyboard.Styles 2.14' - -Module { - dependencies: ["QtQuick 2.0"] - Component { - prototype: "QQuickItem" - name: "QtQuick.VirtualKeyboard.Styles/KeyIcon 1.0" - exports: ["QtQuick.VirtualKeyboard.Styles/KeyIcon 1.0"] - exportMetaObjectRevisions: [0] - isComposite: true - defaultProperty: "data" - Property { name: "color"; type: "QColor" } - Property { name: "source"; type: "QUrl" } - } - Component { - prototype: "QQuickItem" - name: "QtQuick.VirtualKeyboard.Styles/KeyIcon 2.0" - exports: ["QtQuick.VirtualKeyboard.Styles/KeyIcon 2.0"] - exportMetaObjectRevisions: [0] - isComposite: true - defaultProperty: "data" - Property { name: "color"; type: "QColor" } - Property { name: "source"; type: "QUrl" } - } - Component { - prototype: "QQuickItem" - name: "QtQuick.VirtualKeyboard.Styles/KeyPanel 1.0" - exports: ["QtQuick.VirtualKeyboard.Styles/KeyPanel 1.0"] - exportMetaObjectRevisions: [0] - isComposite: true - defaultProperty: "data" - Property { name: "control"; type: "QQuickItem"; isPointer: true } - Property { name: "soundEffect"; type: "QUrl" } - } - Component { - prototype: "QQuickItem" - name: "QtQuick.VirtualKeyboard.Styles/KeyPanel 2.0" - exports: ["QtQuick.VirtualKeyboard.Styles/KeyPanel 2.0"] - exportMetaObjectRevisions: [0] - isComposite: true - defaultProperty: "data" - Property { name: "control"; type: "QQuickItem"; isPointer: true } - Property { name: "soundEffect"; type: "QUrl" } - } - Component { - prototype: "QObject" - name: "QtQuick.VirtualKeyboard.Styles/KeyboardStyle 1.0" - exports: ["QtQuick.VirtualKeyboard.Styles/KeyboardStyle 1.0"] - exportMetaObjectRevisions: [0] - isComposite: true - Property { name: "keyboardHeight"; type: "double" } - Property { name: "keyboardDesignWidth"; type: "double" } - Property { name: "keyboardDesignHeight"; type: "double" } - Property { name: "scaleHint"; type: "double"; isReadonly: true } - Property { name: "keyboardRelativeLeftMargin"; type: "double" } - Property { name: "keyboardRelativeRightMargin"; type: "double" } - Property { name: "keyboardRelativeTopMargin"; type: "double" } - Property { name: "keyboardRelativeBottomMargin"; type: "double" } - Property { name: "keyboardBackground"; type: "QQmlComponent"; isPointer: true } - Property { name: "keyPanel"; type: "QQmlComponent"; isPointer: true } - Property { name: "backspaceKeyPanel"; type: "QQmlComponent"; isPointer: true } - Property { name: "languageKeyPanel"; type: "QQmlComponent"; isPointer: true } - Property { name: "enterKeyPanel"; type: "QQmlComponent"; isPointer: true } - Property { name: "hideKeyPanel"; type: "QQmlComponent"; isPointer: true } - Property { name: "shiftKeyPanel"; type: "QQmlComponent"; isPointer: true } - Property { name: "spaceKeyPanel"; type: "QQmlComponent"; isPointer: true } - Property { name: "symbolKeyPanel"; type: "QQmlComponent"; isPointer: true } - Property { name: "modeKeyPanel"; type: "QQmlComponent"; isPointer: true } - Property { name: "handwritingKeyPanel"; type: "QQmlComponent"; isPointer: true } - Property { name: "characterPreviewMargin"; type: "double" } - Property { name: "characterPreviewDelegate"; type: "QQmlComponent"; isPointer: true } - Property { name: "alternateKeysListItemWidth"; type: "double" } - Property { name: "alternateKeysListItemHeight"; type: "double" } - Property { name: "alternateKeysListTopMargin"; type: "double" } - Property { name: "alternateKeysListBottomMargin"; type: "double" } - Property { name: "alternateKeysListLeftMargin"; type: "double" } - Property { name: "alternateKeysListRightMargin"; type: "double" } - Property { name: "alternateKeysListDelegate"; type: "QQmlComponent"; isPointer: true } - Property { name: "alternateKeysListHighlight"; type: "QQmlComponent"; isPointer: true } - Property { name: "alternateKeysListBackground"; type: "QQmlComponent"; isPointer: true } - Property { name: "selectionListHeight"; type: "double" } - Property { name: "selectionListDelegate"; type: "QQmlComponent"; isPointer: true } - Property { name: "selectionListHighlight"; type: "QQmlComponent"; isPointer: true } - Property { name: "selectionListBackground"; type: "QQmlComponent"; isPointer: true } - Property { name: "selectionListAdd"; type: "QQuickTransition"; isPointer: true } - Property { name: "selectionListRemove"; type: "QQuickTransition"; isPointer: true } - Property { name: "navigationHighlight"; type: "QQmlComponent"; isPointer: true } - Property { name: "traceInputKeyPanelDelegate"; type: "QQmlComponent"; isPointer: true } - Property { name: "traceCanvasDelegate"; type: "QQmlComponent"; isPointer: true } - Property { name: "popupListDelegate"; type: "QQmlComponent"; isPointer: true } - Property { name: "popupListHighlight"; type: "QQmlComponent"; isPointer: true } - Property { name: "popupListBackground"; type: "QQmlComponent"; isPointer: true } - Property { name: "popupListAdd"; type: "QQuickTransition"; isPointer: true } - Property { name: "popupListRemove"; type: "QQuickTransition"; isPointer: true } - Property { name: "languagePopupListEnabled"; type: "bool" } - Property { name: "languageListDelegate"; type: "QQmlComponent"; isPointer: true } - Property { name: "languageListHighlight"; type: "QQmlComponent"; isPointer: true } - Property { name: "languageListBackground"; type: "QQmlComponent"; isPointer: true } - Property { name: "languageListAdd"; type: "QQuickTransition"; isPointer: true } - Property { name: "languageListRemove"; type: "QQuickTransition"; isPointer: true } - Property { name: "selectionHandle"; type: "QQmlComponent"; isPointer: true } - Property { name: "fullScreenInputContainerBackground"; type: "QQmlComponent"; isPointer: true } - Property { name: "fullScreenInputBackground"; type: "QQmlComponent"; isPointer: true } - Property { name: "fullScreenInputMargins"; type: "double" } - Property { name: "fullScreenInputPadding"; type: "double" } - Property { name: "fullScreenInputCursor"; type: "QQmlComponent"; isPointer: true } - Property { name: "fullScreenInputFont"; type: "QFont" } - Property { name: "fullScreenInputPasswordCharacter"; type: "string" } - Property { name: "fullScreenInputColor"; type: "QColor" } - Property { name: "fullScreenInputSelectionColor"; type: "QColor" } - Property { name: "fullScreenInputSelectedTextColor"; type: "QColor" } - } - Component { - prototype: "QObject" - name: "QtQuick.VirtualKeyboard.Styles/KeyboardStyle 1.1" - exports: ["QtQuick.VirtualKeyboard.Styles/KeyboardStyle 1.1"] - exportMetaObjectRevisions: [1] - isComposite: true - Property { name: "keyboardHeight"; type: "double" } - Property { name: "keyboardDesignWidth"; type: "double" } - Property { name: "keyboardDesignHeight"; type: "double" } - Property { name: "scaleHint"; type: "double"; isReadonly: true } - Property { name: "keyboardRelativeLeftMargin"; type: "double" } - Property { name: "keyboardRelativeRightMargin"; type: "double" } - Property { name: "keyboardRelativeTopMargin"; type: "double" } - Property { name: "keyboardRelativeBottomMargin"; type: "double" } - Property { name: "keyboardBackground"; type: "QQmlComponent"; isPointer: true } - Property { name: "keyPanel"; type: "QQmlComponent"; isPointer: true } - Property { name: "backspaceKeyPanel"; type: "QQmlComponent"; isPointer: true } - Property { name: "languageKeyPanel"; type: "QQmlComponent"; isPointer: true } - Property { name: "enterKeyPanel"; type: "QQmlComponent"; isPointer: true } - Property { name: "hideKeyPanel"; type: "QQmlComponent"; isPointer: true } - Property { name: "shiftKeyPanel"; type: "QQmlComponent"; isPointer: true } - Property { name: "spaceKeyPanel"; type: "QQmlComponent"; isPointer: true } - Property { name: "symbolKeyPanel"; type: "QQmlComponent"; isPointer: true } - Property { name: "modeKeyPanel"; type: "QQmlComponent"; isPointer: true } - Property { name: "handwritingKeyPanel"; type: "QQmlComponent"; isPointer: true } - Property { name: "characterPreviewMargin"; type: "double" } - Property { name: "characterPreviewDelegate"; type: "QQmlComponent"; isPointer: true } - Property { name: "alternateKeysListItemWidth"; type: "double" } - Property { name: "alternateKeysListItemHeight"; type: "double" } - Property { name: "alternateKeysListTopMargin"; type: "double" } - Property { name: "alternateKeysListBottomMargin"; type: "double" } - Property { name: "alternateKeysListLeftMargin"; type: "double" } - Property { name: "alternateKeysListRightMargin"; type: "double" } - Property { name: "alternateKeysListDelegate"; type: "QQmlComponent"; isPointer: true } - Property { name: "alternateKeysListHighlight"; type: "QQmlComponent"; isPointer: true } - Property { name: "alternateKeysListBackground"; type: "QQmlComponent"; isPointer: true } - Property { name: "selectionListHeight"; type: "double" } - Property { name: "selectionListDelegate"; type: "QQmlComponent"; isPointer: true } - Property { name: "selectionListHighlight"; type: "QQmlComponent"; isPointer: true } - Property { name: "selectionListBackground"; type: "QQmlComponent"; isPointer: true } - Property { name: "selectionListAdd"; type: "QQuickTransition"; isPointer: true } - Property { name: "selectionListRemove"; type: "QQuickTransition"; isPointer: true } - Property { name: "navigationHighlight"; type: "QQmlComponent"; isPointer: true } - Property { name: "traceInputKeyPanelDelegate"; type: "QQmlComponent"; isPointer: true } - Property { name: "traceCanvasDelegate"; type: "QQmlComponent"; isPointer: true } - Property { name: "popupListDelegate"; type: "QQmlComponent"; isPointer: true } - Property { name: "popupListHighlight"; type: "QQmlComponent"; isPointer: true } - Property { name: "popupListBackground"; type: "QQmlComponent"; isPointer: true } - Property { name: "popupListAdd"; type: "QQuickTransition"; isPointer: true } - Property { name: "popupListRemove"; type: "QQuickTransition"; isPointer: true } - Property { name: "languagePopupListEnabled"; type: "bool" } - Property { name: "languageListDelegate"; type: "QQmlComponent"; isPointer: true } - Property { name: "languageListHighlight"; type: "QQmlComponent"; isPointer: true } - Property { name: "languageListBackground"; type: "QQmlComponent"; isPointer: true } - Property { name: "languageListAdd"; type: "QQuickTransition"; isPointer: true } - Property { name: "languageListRemove"; type: "QQuickTransition"; isPointer: true } - Property { name: "selectionHandle"; type: "QQmlComponent"; isPointer: true } - Property { name: "fullScreenInputContainerBackground"; type: "QQmlComponent"; isPointer: true } - Property { name: "fullScreenInputBackground"; type: "QQmlComponent"; isPointer: true } - Property { name: "fullScreenInputMargins"; type: "double" } - Property { name: "fullScreenInputPadding"; type: "double" } - Property { name: "fullScreenInputCursor"; type: "QQmlComponent"; isPointer: true } - Property { name: "fullScreenInputFont"; type: "QFont" } - Property { name: "fullScreenInputPasswordCharacter"; type: "string" } - Property { name: "fullScreenInputColor"; type: "QColor" } - Property { name: "fullScreenInputSelectionColor"; type: "QColor" } - Property { name: "fullScreenInputSelectedTextColor"; type: "QColor" } - } - Component { - prototype: "QObject" - name: "QtQuick.VirtualKeyboard.Styles/KeyboardStyle 1.2" - exports: ["QtQuick.VirtualKeyboard.Styles/KeyboardStyle 1.2"] - exportMetaObjectRevisions: [2] - isComposite: true - Property { name: "keyboardHeight"; type: "double" } - Property { name: "keyboardDesignWidth"; type: "double" } - Property { name: "keyboardDesignHeight"; type: "double" } - Property { name: "scaleHint"; type: "double"; isReadonly: true } - Property { name: "keyboardRelativeLeftMargin"; type: "double" } - Property { name: "keyboardRelativeRightMargin"; type: "double" } - Property { name: "keyboardRelativeTopMargin"; type: "double" } - Property { name: "keyboardRelativeBottomMargin"; type: "double" } - Property { name: "keyboardBackground"; type: "QQmlComponent"; isPointer: true } - Property { name: "keyPanel"; type: "QQmlComponent"; isPointer: true } - Property { name: "backspaceKeyPanel"; type: "QQmlComponent"; isPointer: true } - Property { name: "languageKeyPanel"; type: "QQmlComponent"; isPointer: true } - Property { name: "enterKeyPanel"; type: "QQmlComponent"; isPointer: true } - Property { name: "hideKeyPanel"; type: "QQmlComponent"; isPointer: true } - Property { name: "shiftKeyPanel"; type: "QQmlComponent"; isPointer: true } - Property { name: "spaceKeyPanel"; type: "QQmlComponent"; isPointer: true } - Property { name: "symbolKeyPanel"; type: "QQmlComponent"; isPointer: true } - Property { name: "modeKeyPanel"; type: "QQmlComponent"; isPointer: true } - Property { name: "handwritingKeyPanel"; type: "QQmlComponent"; isPointer: true } - Property { name: "characterPreviewMargin"; type: "double" } - Property { name: "characterPreviewDelegate"; type: "QQmlComponent"; isPointer: true } - Property { name: "alternateKeysListItemWidth"; type: "double" } - Property { name: "alternateKeysListItemHeight"; type: "double" } - Property { name: "alternateKeysListTopMargin"; type: "double" } - Property { name: "alternateKeysListBottomMargin"; type: "double" } - Property { name: "alternateKeysListLeftMargin"; type: "double" } - Property { name: "alternateKeysListRightMargin"; type: "double" } - Property { name: "alternateKeysListDelegate"; type: "QQmlComponent"; isPointer: true } - Property { name: "alternateKeysListHighlight"; type: "QQmlComponent"; isPointer: true } - Property { name: "alternateKeysListBackground"; type: "QQmlComponent"; isPointer: true } - Property { name: "selectionListHeight"; type: "double" } - Property { name: "selectionListDelegate"; type: "QQmlComponent"; isPointer: true } - Property { name: "selectionListHighlight"; type: "QQmlComponent"; isPointer: true } - Property { name: "selectionListBackground"; type: "QQmlComponent"; isPointer: true } - Property { name: "selectionListAdd"; type: "QQuickTransition"; isPointer: true } - Property { name: "selectionListRemove"; type: "QQuickTransition"; isPointer: true } - Property { name: "navigationHighlight"; type: "QQmlComponent"; isPointer: true } - Property { name: "traceInputKeyPanelDelegate"; type: "QQmlComponent"; isPointer: true } - Property { name: "traceCanvasDelegate"; type: "QQmlComponent"; isPointer: true } - Property { name: "popupListDelegate"; type: "QQmlComponent"; isPointer: true } - Property { name: "popupListHighlight"; type: "QQmlComponent"; isPointer: true } - Property { name: "popupListBackground"; type: "QQmlComponent"; isPointer: true } - Property { name: "popupListAdd"; type: "QQuickTransition"; isPointer: true } - Property { name: "popupListRemove"; type: "QQuickTransition"; isPointer: true } - Property { name: "languagePopupListEnabled"; type: "bool" } - Property { name: "languageListDelegate"; type: "QQmlComponent"; isPointer: true } - Property { name: "languageListHighlight"; type: "QQmlComponent"; isPointer: true } - Property { name: "languageListBackground"; type: "QQmlComponent"; isPointer: true } - Property { name: "languageListAdd"; type: "QQuickTransition"; isPointer: true } - Property { name: "languageListRemove"; type: "QQuickTransition"; isPointer: true } - Property { name: "selectionHandle"; type: "QQmlComponent"; isPointer: true } - Property { name: "fullScreenInputContainerBackground"; type: "QQmlComponent"; isPointer: true } - Property { name: "fullScreenInputBackground"; type: "QQmlComponent"; isPointer: true } - Property { name: "fullScreenInputMargins"; type: "double" } - Property { name: "fullScreenInputPadding"; type: "double" } - Property { name: "fullScreenInputCursor"; type: "QQmlComponent"; isPointer: true } - Property { name: "fullScreenInputFont"; type: "QFont" } - Property { name: "fullScreenInputPasswordCharacter"; type: "string" } - Property { name: "fullScreenInputColor"; type: "QColor" } - Property { name: "fullScreenInputSelectionColor"; type: "QColor" } - Property { name: "fullScreenInputSelectedTextColor"; type: "QColor" } - } - Component { - prototype: "QObject" - name: "QtQuick.VirtualKeyboard.Styles/KeyboardStyle 1.3" - exports: ["QtQuick.VirtualKeyboard.Styles/KeyboardStyle 1.3"] - exportMetaObjectRevisions: [3] - isComposite: true - Property { name: "keyboardHeight"; type: "double" } - Property { name: "keyboardDesignWidth"; type: "double" } - Property { name: "keyboardDesignHeight"; type: "double" } - Property { name: "scaleHint"; type: "double"; isReadonly: true } - Property { name: "keyboardRelativeLeftMargin"; type: "double" } - Property { name: "keyboardRelativeRightMargin"; type: "double" } - Property { name: "keyboardRelativeTopMargin"; type: "double" } - Property { name: "keyboardRelativeBottomMargin"; type: "double" } - Property { name: "keyboardBackground"; type: "QQmlComponent"; isPointer: true } - Property { name: "keyPanel"; type: "QQmlComponent"; isPointer: true } - Property { name: "backspaceKeyPanel"; type: "QQmlComponent"; isPointer: true } - Property { name: "languageKeyPanel"; type: "QQmlComponent"; isPointer: true } - Property { name: "enterKeyPanel"; type: "QQmlComponent"; isPointer: true } - Property { name: "hideKeyPanel"; type: "QQmlComponent"; isPointer: true } - Property { name: "shiftKeyPanel"; type: "QQmlComponent"; isPointer: true } - Property { name: "spaceKeyPanel"; type: "QQmlComponent"; isPointer: true } - Property { name: "symbolKeyPanel"; type: "QQmlComponent"; isPointer: true } - Property { name: "modeKeyPanel"; type: "QQmlComponent"; isPointer: true } - Property { name: "handwritingKeyPanel"; type: "QQmlComponent"; isPointer: true } - Property { name: "characterPreviewMargin"; type: "double" } - Property { name: "characterPreviewDelegate"; type: "QQmlComponent"; isPointer: true } - Property { name: "alternateKeysListItemWidth"; type: "double" } - Property { name: "alternateKeysListItemHeight"; type: "double" } - Property { name: "alternateKeysListTopMargin"; type: "double" } - Property { name: "alternateKeysListBottomMargin"; type: "double" } - Property { name: "alternateKeysListLeftMargin"; type: "double" } - Property { name: "alternateKeysListRightMargin"; type: "double" } - Property { name: "alternateKeysListDelegate"; type: "QQmlComponent"; isPointer: true } - Property { name: "alternateKeysListHighlight"; type: "QQmlComponent"; isPointer: true } - Property { name: "alternateKeysListBackground"; type: "QQmlComponent"; isPointer: true } - Property { name: "selectionListHeight"; type: "double" } - Property { name: "selectionListDelegate"; type: "QQmlComponent"; isPointer: true } - Property { name: "selectionListHighlight"; type: "QQmlComponent"; isPointer: true } - Property { name: "selectionListBackground"; type: "QQmlComponent"; isPointer: true } - Property { name: "selectionListAdd"; type: "QQuickTransition"; isPointer: true } - Property { name: "selectionListRemove"; type: "QQuickTransition"; isPointer: true } - Property { name: "navigationHighlight"; type: "QQmlComponent"; isPointer: true } - Property { name: "traceInputKeyPanelDelegate"; type: "QQmlComponent"; isPointer: true } - Property { name: "traceCanvasDelegate"; type: "QQmlComponent"; isPointer: true } - Property { name: "popupListDelegate"; type: "QQmlComponent"; isPointer: true } - Property { name: "popupListHighlight"; type: "QQmlComponent"; isPointer: true } - Property { name: "popupListBackground"; type: "QQmlComponent"; isPointer: true } - Property { name: "popupListAdd"; type: "QQuickTransition"; isPointer: true } - Property { name: "popupListRemove"; type: "QQuickTransition"; isPointer: true } - Property { name: "languagePopupListEnabled"; type: "bool" } - Property { name: "languageListDelegate"; type: "QQmlComponent"; isPointer: true } - Property { name: "languageListHighlight"; type: "QQmlComponent"; isPointer: true } - Property { name: "languageListBackground"; type: "QQmlComponent"; isPointer: true } - Property { name: "languageListAdd"; type: "QQuickTransition"; isPointer: true } - Property { name: "languageListRemove"; type: "QQuickTransition"; isPointer: true } - Property { name: "selectionHandle"; type: "QQmlComponent"; isPointer: true } - Property { name: "fullScreenInputContainerBackground"; type: "QQmlComponent"; isPointer: true } - Property { name: "fullScreenInputBackground"; type: "QQmlComponent"; isPointer: true } - Property { name: "fullScreenInputMargins"; type: "double" } - Property { name: "fullScreenInputPadding"; type: "double" } - Property { name: "fullScreenInputCursor"; type: "QQmlComponent"; isPointer: true } - Property { name: "fullScreenInputFont"; type: "QFont" } - Property { name: "fullScreenInputPasswordCharacter"; type: "string" } - Property { name: "fullScreenInputColor"; type: "QColor" } - Property { name: "fullScreenInputSelectionColor"; type: "QColor" } - Property { name: "fullScreenInputSelectedTextColor"; type: "QColor" } - } - Component { - prototype: "QObject" - name: "QtQuick.VirtualKeyboard.Styles/KeyboardStyle 2.0" - exports: ["QtQuick.VirtualKeyboard.Styles/KeyboardStyle 2.0"] - exportMetaObjectRevisions: [0] - isComposite: true - Property { name: "keyboardHeight"; type: "double" } - Property { name: "keyboardDesignWidth"; type: "double" } - Property { name: "keyboardDesignHeight"; type: "double" } - Property { name: "scaleHint"; type: "double"; isReadonly: true } - Property { name: "keyboardRelativeLeftMargin"; type: "double" } - Property { name: "keyboardRelativeRightMargin"; type: "double" } - Property { name: "keyboardRelativeTopMargin"; type: "double" } - Property { name: "keyboardRelativeBottomMargin"; type: "double" } - Property { name: "keyboardBackground"; type: "QQmlComponent"; isPointer: true } - Property { name: "keyPanel"; type: "QQmlComponent"; isPointer: true } - Property { name: "backspaceKeyPanel"; type: "QQmlComponent"; isPointer: true } - Property { name: "languageKeyPanel"; type: "QQmlComponent"; isPointer: true } - Property { name: "enterKeyPanel"; type: "QQmlComponent"; isPointer: true } - Property { name: "hideKeyPanel"; type: "QQmlComponent"; isPointer: true } - Property { name: "shiftKeyPanel"; type: "QQmlComponent"; isPointer: true } - Property { name: "spaceKeyPanel"; type: "QQmlComponent"; isPointer: true } - Property { name: "symbolKeyPanel"; type: "QQmlComponent"; isPointer: true } - Property { name: "modeKeyPanel"; type: "QQmlComponent"; isPointer: true } - Property { name: "handwritingKeyPanel"; type: "QQmlComponent"; isPointer: true } - Property { name: "characterPreviewMargin"; type: "double" } - Property { name: "characterPreviewDelegate"; type: "QQmlComponent"; isPointer: true } - Property { name: "alternateKeysListItemWidth"; type: "double" } - Property { name: "alternateKeysListItemHeight"; type: "double" } - Property { name: "alternateKeysListTopMargin"; type: "double" } - Property { name: "alternateKeysListBottomMargin"; type: "double" } - Property { name: "alternateKeysListLeftMargin"; type: "double" } - Property { name: "alternateKeysListRightMargin"; type: "double" } - Property { name: "alternateKeysListDelegate"; type: "QQmlComponent"; isPointer: true } - Property { name: "alternateKeysListHighlight"; type: "QQmlComponent"; isPointer: true } - Property { name: "alternateKeysListBackground"; type: "QQmlComponent"; isPointer: true } - Property { name: "selectionListHeight"; type: "double" } - Property { name: "selectionListDelegate"; type: "QQmlComponent"; isPointer: true } - Property { name: "selectionListHighlight"; type: "QQmlComponent"; isPointer: true } - Property { name: "selectionListBackground"; type: "QQmlComponent"; isPointer: true } - Property { name: "selectionListAdd"; type: "QQuickTransition"; isPointer: true } - Property { name: "selectionListRemove"; type: "QQuickTransition"; isPointer: true } - Property { name: "navigationHighlight"; type: "QQmlComponent"; isPointer: true } - Property { name: "traceInputKeyPanelDelegate"; type: "QQmlComponent"; isPointer: true } - Property { name: "traceCanvasDelegate"; type: "QQmlComponent"; isPointer: true } - Property { name: "popupListDelegate"; type: "QQmlComponent"; isPointer: true } - Property { name: "popupListHighlight"; type: "QQmlComponent"; isPointer: true } - Property { name: "popupListBackground"; type: "QQmlComponent"; isPointer: true } - Property { name: "popupListAdd"; type: "QQuickTransition"; isPointer: true } - Property { name: "popupListRemove"; type: "QQuickTransition"; isPointer: true } - Property { name: "languagePopupListEnabled"; type: "bool" } - Property { name: "languageListDelegate"; type: "QQmlComponent"; isPointer: true } - Property { name: "languageListHighlight"; type: "QQmlComponent"; isPointer: true } - Property { name: "languageListBackground"; type: "QQmlComponent"; isPointer: true } - Property { name: "languageListAdd"; type: "QQuickTransition"; isPointer: true } - Property { name: "languageListRemove"; type: "QQuickTransition"; isPointer: true } - Property { name: "selectionHandle"; type: "QQmlComponent"; isPointer: true } - Property { name: "fullScreenInputContainerBackground"; type: "QQmlComponent"; isPointer: true } - Property { name: "fullScreenInputBackground"; type: "QQmlComponent"; isPointer: true } - Property { name: "fullScreenInputMargins"; type: "double" } - Property { name: "fullScreenInputPadding"; type: "double" } - Property { name: "fullScreenInputCursor"; type: "QQmlComponent"; isPointer: true } - Property { name: "fullScreenInputFont"; type: "QFont" } - Property { name: "fullScreenInputPasswordCharacter"; type: "string" } - Property { name: "fullScreenInputColor"; type: "QColor" } - Property { name: "fullScreenInputSelectionColor"; type: "QColor" } - Property { name: "fullScreenInputSelectedTextColor"; type: "QColor" } - } - Component { - prototype: "QObject" - name: "QtQuick.VirtualKeyboard.Styles/KeyboardStyle 2.1" - exports: ["QtQuick.VirtualKeyboard.Styles/KeyboardStyle 2.1"] - exportMetaObjectRevisions: [1] - isComposite: true - Property { name: "keyboardHeight"; type: "double" } - Property { name: "keyboardDesignWidth"; type: "double" } - Property { name: "keyboardDesignHeight"; type: "double" } - Property { name: "scaleHint"; type: "double"; isReadonly: true } - Property { name: "keyboardRelativeLeftMargin"; type: "double" } - Property { name: "keyboardRelativeRightMargin"; type: "double" } - Property { name: "keyboardRelativeTopMargin"; type: "double" } - Property { name: "keyboardRelativeBottomMargin"; type: "double" } - Property { name: "keyboardBackground"; type: "QQmlComponent"; isPointer: true } - Property { name: "keyPanel"; type: "QQmlComponent"; isPointer: true } - Property { name: "backspaceKeyPanel"; type: "QQmlComponent"; isPointer: true } - Property { name: "languageKeyPanel"; type: "QQmlComponent"; isPointer: true } - Property { name: "enterKeyPanel"; type: "QQmlComponent"; isPointer: true } - Property { name: "hideKeyPanel"; type: "QQmlComponent"; isPointer: true } - Property { name: "shiftKeyPanel"; type: "QQmlComponent"; isPointer: true } - Property { name: "spaceKeyPanel"; type: "QQmlComponent"; isPointer: true } - Property { name: "symbolKeyPanel"; type: "QQmlComponent"; isPointer: true } - Property { name: "modeKeyPanel"; type: "QQmlComponent"; isPointer: true } - Property { name: "handwritingKeyPanel"; type: "QQmlComponent"; isPointer: true } - Property { name: "characterPreviewMargin"; type: "double" } - Property { name: "characterPreviewDelegate"; type: "QQmlComponent"; isPointer: true } - Property { name: "alternateKeysListItemWidth"; type: "double" } - Property { name: "alternateKeysListItemHeight"; type: "double" } - Property { name: "alternateKeysListTopMargin"; type: "double" } - Property { name: "alternateKeysListBottomMargin"; type: "double" } - Property { name: "alternateKeysListLeftMargin"; type: "double" } - Property { name: "alternateKeysListRightMargin"; type: "double" } - Property { name: "alternateKeysListDelegate"; type: "QQmlComponent"; isPointer: true } - Property { name: "alternateKeysListHighlight"; type: "QQmlComponent"; isPointer: true } - Property { name: "alternateKeysListBackground"; type: "QQmlComponent"; isPointer: true } - Property { name: "selectionListHeight"; type: "double" } - Property { name: "selectionListDelegate"; type: "QQmlComponent"; isPointer: true } - Property { name: "selectionListHighlight"; type: "QQmlComponent"; isPointer: true } - Property { name: "selectionListBackground"; type: "QQmlComponent"; isPointer: true } - Property { name: "selectionListAdd"; type: "QQuickTransition"; isPointer: true } - Property { name: "selectionListRemove"; type: "QQuickTransition"; isPointer: true } - Property { name: "navigationHighlight"; type: "QQmlComponent"; isPointer: true } - Property { name: "traceInputKeyPanelDelegate"; type: "QQmlComponent"; isPointer: true } - Property { name: "traceCanvasDelegate"; type: "QQmlComponent"; isPointer: true } - Property { name: "popupListDelegate"; type: "QQmlComponent"; isPointer: true } - Property { name: "popupListHighlight"; type: "QQmlComponent"; isPointer: true } - Property { name: "popupListBackground"; type: "QQmlComponent"; isPointer: true } - Property { name: "popupListAdd"; type: "QQuickTransition"; isPointer: true } - Property { name: "popupListRemove"; type: "QQuickTransition"; isPointer: true } - Property { name: "languagePopupListEnabled"; type: "bool" } - Property { name: "languageListDelegate"; type: "QQmlComponent"; isPointer: true } - Property { name: "languageListHighlight"; type: "QQmlComponent"; isPointer: true } - Property { name: "languageListBackground"; type: "QQmlComponent"; isPointer: true } - Property { name: "languageListAdd"; type: "QQuickTransition"; isPointer: true } - Property { name: "languageListRemove"; type: "QQuickTransition"; isPointer: true } - Property { name: "selectionHandle"; type: "QQmlComponent"; isPointer: true } - Property { name: "fullScreenInputContainerBackground"; type: "QQmlComponent"; isPointer: true } - Property { name: "fullScreenInputBackground"; type: "QQmlComponent"; isPointer: true } - Property { name: "fullScreenInputMargins"; type: "double" } - Property { name: "fullScreenInputPadding"; type: "double" } - Property { name: "fullScreenInputCursor"; type: "QQmlComponent"; isPointer: true } - Property { name: "fullScreenInputFont"; type: "QFont" } - Property { name: "fullScreenInputPasswordCharacter"; type: "string" } - Property { name: "fullScreenInputColor"; type: "QColor" } - Property { name: "fullScreenInputSelectionColor"; type: "QColor" } - Property { name: "fullScreenInputSelectedTextColor"; type: "QColor" } - } - Component { - prototype: "QObject" - name: "QtQuick.VirtualKeyboard.Styles/KeyboardStyle 2.2" - exports: ["QtQuick.VirtualKeyboard.Styles/KeyboardStyle 2.2"] - exportMetaObjectRevisions: [2] - isComposite: true - Property { name: "keyboardHeight"; type: "double" } - Property { name: "keyboardDesignWidth"; type: "double" } - Property { name: "keyboardDesignHeight"; type: "double" } - Property { name: "scaleHint"; type: "double"; isReadonly: true } - Property { name: "keyboardRelativeLeftMargin"; type: "double" } - Property { name: "keyboardRelativeRightMargin"; type: "double" } - Property { name: "keyboardRelativeTopMargin"; type: "double" } - Property { name: "keyboardRelativeBottomMargin"; type: "double" } - Property { name: "keyboardBackground"; type: "QQmlComponent"; isPointer: true } - Property { name: "keyPanel"; type: "QQmlComponent"; isPointer: true } - Property { name: "backspaceKeyPanel"; type: "QQmlComponent"; isPointer: true } - Property { name: "languageKeyPanel"; type: "QQmlComponent"; isPointer: true } - Property { name: "enterKeyPanel"; type: "QQmlComponent"; isPointer: true } - Property { name: "hideKeyPanel"; type: "QQmlComponent"; isPointer: true } - Property { name: "shiftKeyPanel"; type: "QQmlComponent"; isPointer: true } - Property { name: "spaceKeyPanel"; type: "QQmlComponent"; isPointer: true } - Property { name: "symbolKeyPanel"; type: "QQmlComponent"; isPointer: true } - Property { name: "modeKeyPanel"; type: "QQmlComponent"; isPointer: true } - Property { name: "handwritingKeyPanel"; type: "QQmlComponent"; isPointer: true } - Property { name: "characterPreviewMargin"; type: "double" } - Property { name: "characterPreviewDelegate"; type: "QQmlComponent"; isPointer: true } - Property { name: "alternateKeysListItemWidth"; type: "double" } - Property { name: "alternateKeysListItemHeight"; type: "double" } - Property { name: "alternateKeysListTopMargin"; type: "double" } - Property { name: "alternateKeysListBottomMargin"; type: "double" } - Property { name: "alternateKeysListLeftMargin"; type: "double" } - Property { name: "alternateKeysListRightMargin"; type: "double" } - Property { name: "alternateKeysListDelegate"; type: "QQmlComponent"; isPointer: true } - Property { name: "alternateKeysListHighlight"; type: "QQmlComponent"; isPointer: true } - Property { name: "alternateKeysListBackground"; type: "QQmlComponent"; isPointer: true } - Property { name: "selectionListHeight"; type: "double" } - Property { name: "selectionListDelegate"; type: "QQmlComponent"; isPointer: true } - Property { name: "selectionListHighlight"; type: "QQmlComponent"; isPointer: true } - Property { name: "selectionListBackground"; type: "QQmlComponent"; isPointer: true } - Property { name: "selectionListAdd"; type: "QQuickTransition"; isPointer: true } - Property { name: "selectionListRemove"; type: "QQuickTransition"; isPointer: true } - Property { name: "navigationHighlight"; type: "QQmlComponent"; isPointer: true } - Property { name: "traceInputKeyPanelDelegate"; type: "QQmlComponent"; isPointer: true } - Property { name: "traceCanvasDelegate"; type: "QQmlComponent"; isPointer: true } - Property { name: "popupListDelegate"; type: "QQmlComponent"; isPointer: true } - Property { name: "popupListHighlight"; type: "QQmlComponent"; isPointer: true } - Property { name: "popupListBackground"; type: "QQmlComponent"; isPointer: true } - Property { name: "popupListAdd"; type: "QQuickTransition"; isPointer: true } - Property { name: "popupListRemove"; type: "QQuickTransition"; isPointer: true } - Property { name: "languagePopupListEnabled"; type: "bool" } - Property { name: "languageListDelegate"; type: "QQmlComponent"; isPointer: true } - Property { name: "languageListHighlight"; type: "QQmlComponent"; isPointer: true } - Property { name: "languageListBackground"; type: "QQmlComponent"; isPointer: true } - Property { name: "languageListAdd"; type: "QQuickTransition"; isPointer: true } - Property { name: "languageListRemove"; type: "QQuickTransition"; isPointer: true } - Property { name: "selectionHandle"; type: "QQmlComponent"; isPointer: true } - Property { name: "fullScreenInputContainerBackground"; type: "QQmlComponent"; isPointer: true } - Property { name: "fullScreenInputBackground"; type: "QQmlComponent"; isPointer: true } - Property { name: "fullScreenInputMargins"; type: "double" } - Property { name: "fullScreenInputPadding"; type: "double" } - Property { name: "fullScreenInputCursor"; type: "QQmlComponent"; isPointer: true } - Property { name: "fullScreenInputFont"; type: "QFont" } - Property { name: "fullScreenInputPasswordCharacter"; type: "string" } - Property { name: "fullScreenInputColor"; type: "QColor" } - Property { name: "fullScreenInputSelectionColor"; type: "QColor" } - Property { name: "fullScreenInputSelectedTextColor"; type: "QColor" } - } - Component { - prototype: "QQuickItem" - name: "QtQuick.VirtualKeyboard.Styles/SelectionListItem 1.0" - exports: ["QtQuick.VirtualKeyboard.Styles/SelectionListItem 1.0"] - exportMetaObjectRevisions: [0] - isComposite: true - defaultProperty: "data" - Property { name: "soundEffect"; type: "QUrl" } - } - Component { - prototype: "QQuickItem" - name: "QtQuick.VirtualKeyboard.Styles/SelectionListItem 2.0" - exports: ["QtQuick.VirtualKeyboard.Styles/SelectionListItem 2.0"] - exportMetaObjectRevisions: [0] - isComposite: true - defaultProperty: "data" - Property { name: "soundEffect"; type: "QUrl" } - } - Component { - prototype: "QQuickCanvasItem" - name: "QtQuick.VirtualKeyboard.Styles/TraceCanvas 2.0" - exports: ["QtQuick.VirtualKeyboard.Styles/TraceCanvas 2.0"] - exportMetaObjectRevisions: [0] - isComposite: true - defaultProperty: "data" - Property { name: "trace"; type: "QVariant" } - Property { name: "autoDestroy"; type: "bool" } - Property { name: "autoDestroyDelay"; type: "int" } - Property { name: "renderFunction"; type: "QVariant" } - Property { name: "__renderPos"; type: "int" } - Property { name: "__renderingEnabled"; type: "bool" } - Method { name: "renderSmoothedLine"; type: "QVariant" } - } - Component { - prototype: "QQuickItem" - name: "QtQuick.VirtualKeyboard.Styles/TraceInputKeyPanel 2.0" - exports: ["QtQuick.VirtualKeyboard.Styles/TraceInputKeyPanel 2.0"] - exportMetaObjectRevisions: [0] - isComposite: true - defaultProperty: "data" - Property { name: "control"; type: "QQuickItem"; isPointer: true } - Property { name: "traceMargins"; type: "double" } - } -} diff --git a/src/styles/qmldir b/src/styles/qmldir deleted file mode 100644 index 6f4705fc..00000000 --- a/src/styles/qmldir +++ /dev/null @@ -1,5 +0,0 @@ -module QtQuick.VirtualKeyboard.Styles -plugin qtquickvirtualkeyboardstylesplugin -classname QtQuickVirtualKeyboardStylesPlugin -typeinfo plugins.qmltypes -depends QtQuick 2.0 diff --git a/src/styles/qtquickvirtualkeyboardstylesplugin.cpp b/src/styles/qtquickvirtualkeyboardstylesplugin.cpp index 4a1316a2..6c984219 100644 --- a/src/styles/qtquickvirtualkeyboardstylesplugin.cpp +++ b/src/styles/qtquickvirtualkeyboardstylesplugin.cpp @@ -1,43 +1,19 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the Qt Virtual Keyboard module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL$ -** 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 General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 or (at your option) 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.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-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only #include "qtquickvirtualkeyboardstylesplugin.h" #include "svgimageprovider.h" -#include <qqml.h> +#include <QtQml/qqml.h> #include <QtCore/QLibraryInfo> -#include <QtVirtualKeyboard/private/qvirtualkeyboard_staticplugin_p.h> QT_BEGIN_NAMESPACE +extern void qml_register_types_QtQuick_VirtualKeyboard_Styles(); +Q_GHS_KEEP_REFERENCE(qml_register_types_QtQuick_VirtualKeyboard_Styles); + /*! - \qmlmodule QtQuick.VirtualKeyboard.Styles 2.\QtMinorVersion + \qmlmodule QtQuick.VirtualKeyboard.Styles \title Qt Quick Virtual Keyboard Styles QML Types \ingroup qmlmodules @@ -46,37 +22,21 @@ QT_BEGIN_NAMESPACE The QML types can be imported into your application using the following import statements in your .qml file: - \qml \QtMinorVersion - import QtQuick.VirtualKeyboard.Styles 2.\1 + \qml + import QtQuick.VirtualKeyboard.Styles \endqml */ -void QtQuickVirtualKeyboardStylesPlugin::registerTypes(const char *uri) +QtQuickVirtualKeyboardStylesPlugin::QtQuickVirtualKeyboardStylesPlugin(QObject *parent) : + QQmlExtensionPlugin(parent) { -#if defined(QT_STATICPLUGIN) - Q_VKB_IMPORT_PLUGIN(QtQuick2Plugin) -#endif - - const QString path(QStringLiteral("qrc:///QtQuick/VirtualKeyboard/Styles/content/")); - qmlRegisterType(QUrl(path + QLatin1String("KeyboardStyle.qml")), uri, 1, 0, "KeyboardStyle"); - qmlRegisterType(QUrl(path + QLatin1String("KeyboardStyle.qml")), uri, 1, 1, "KeyboardStyle"); - qmlRegisterType(QUrl(path + QLatin1String("KeyboardStyle.qml")), uri, 1, 2, "KeyboardStyle"); - qmlRegisterType(QUrl(path + QLatin1String("KeyboardStyle.qml")), uri, 1, 3, "KeyboardStyle"); - qmlRegisterType(QUrl(path + QLatin1String("KeyboardStyle.qml")), uri, 2, 0, "KeyboardStyle"); - qmlRegisterType(QUrl(path + QLatin1String("KeyboardStyle.qml")), uri, 2, 1, "KeyboardStyle"); - qmlRegisterType(QUrl(path + QLatin1String("KeyboardStyle.qml")), uri, 2, 2, "KeyboardStyle"); - qmlRegisterType(QUrl(path + QLatin1String("KeyIcon.qml")), uri, 1, 0, "KeyIcon"); - qmlRegisterType(QUrl(path + QLatin1String("KeyIcon.qml")), uri, 2, 0, "KeyIcon"); - qmlRegisterType(QUrl(path + QLatin1String("KeyPanel.qml")), uri, 1, 0, "KeyPanel"); - qmlRegisterType(QUrl(path + QLatin1String("KeyPanel.qml")), uri, 2, 0, "KeyPanel"); - qmlRegisterType(QUrl(path + QLatin1String("SelectionListItem.qml")), uri, 1, 0, "SelectionListItem"); - qmlRegisterType(QUrl(path + QLatin1String("SelectionListItem.qml")), uri, 2, 0, "SelectionListItem"); - qmlRegisterType(QUrl(path + QLatin1String("TraceInputKeyPanel.qml")), uri, 2, 0, "TraceInputKeyPanel"); - qmlRegisterType(QUrl(path + QLatin1String("TraceCanvas.qml")), uri, 2, 0, "TraceCanvas"); + volatile auto registration = &qml_register_types_QtQuick_VirtualKeyboard_Styles; + Q_UNUSED(registration); +} - // The minor version used to be the current Qt 5 minor. For compatibility it is the last - // Qt 5 release. - qmlRegisterModule(uri, 2, 15); +void QtQuickVirtualKeyboardStylesPlugin::registerTypes(const char *uri) +{ + Q_UNUSED(uri); } void QtQuickVirtualKeyboardStylesPlugin::initializeEngine(QQmlEngine *engine, const char *uri) diff --git a/src/styles/qtquickvirtualkeyboardstylesplugin.h b/src/styles/qtquickvirtualkeyboardstylesplugin.h index 1d467332..f01a8f7b 100644 --- a/src/styles/qtquickvirtualkeyboardstylesplugin.h +++ b/src/styles/qtquickvirtualkeyboardstylesplugin.h @@ -1,31 +1,5 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the Qt Virtual Keyboard module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL$ -** 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 General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 or (at your option) 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.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-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only #ifndef QTQUICKVIRTUALKEYBOARDSTYLESPLUGIN_H #define QTQUICKVIRTUALKEYBOARDSTYLESPLUGIN_H @@ -40,7 +14,7 @@ class QtQuickVirtualKeyboardStylesPlugin : public QQmlExtensionPlugin Q_PLUGIN_METADATA(IID QQmlExtensionInterface_iid) public: - QtQuickVirtualKeyboardStylesPlugin(QObject *parent = nullptr) : QQmlExtensionPlugin(parent) { } + QtQuickVirtualKeyboardStylesPlugin(QObject *parent = nullptr); void registerTypes(const char *uri) override; void initializeEngine(QQmlEngine *engine, const char *uri) override; }; diff --git a/src/styles/styles.pro b/src/styles/styles.pro deleted file mode 100644 index 5d79fd9e..00000000 --- a/src/styles/styles.pro +++ /dev/null @@ -1,34 +0,0 @@ -TARGET = qtquickvirtualkeyboardstylesplugin -TARGETPATH = QtQuick/VirtualKeyboard/Styles -IMPORT_VERSION = 2.$$QT_MINOR_VERSION -QT += qml quick svg virtualkeyboard-private - -CONFIG += no_cxx_module - -SOURCES += \ - svgimageprovider.cpp \ - qtquickvirtualkeyboardstylesplugin.cpp - -HEADERS += \ - svgimageprovider.h \ - qtquickvirtualkeyboardstylesplugin.h - -RESOURCES += \ - styles.qrc - -OTHER_FILES += \ - plugins.qmltypes \ - qmldir - -DEFINES += \ - QT_NO_CAST_TO_ASCII \ - QT_ASCII_CAST_WARNINGS \ - QT_NO_CAST_FROM_ASCII \ - QT_NO_CAST_FROM_BYTEARRAY - -win32 { - QMAKE_TARGET_PRODUCT = "Qt Virtual Keyboard (Qt $$QT_VERSION)" - QMAKE_TARGET_DESCRIPTION = "Virtual Keyboard for Qt." -} - -load(qml_plugin) diff --git a/src/styles/styles.qrc b/src/styles/styles.qrc deleted file mode 100644 index 819d4771..00000000 --- a/src/styles/styles.qrc +++ /dev/null @@ -1,11 +0,0 @@ -<RCC> - <qresource prefix="/QtQuick/VirtualKeyboard/Styles/content"> - <file>KeyboardStyle.qml</file> - <file>KeyIcon.qml</file> - <file>KeyPanel.qml</file> - <file>SelectionListItem.qml</file> - <file>TraceInputKeyPanel.qml</file> - <file>TraceCanvas.qml</file> - <file>TraceUtils.js</file> - </qresource> -</RCC> diff --git a/src/styles/svgimageprovider.cpp b/src/styles/svgimageprovider.cpp index 29d320a4..fa8345ba 100644 --- a/src/styles/svgimageprovider.cpp +++ b/src/styles/svgimageprovider.cpp @@ -1,31 +1,5 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the Qt Virtual Keyboard module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL$ -** 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 General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 or (at your option) 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.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-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only #include "svgimageprovider.h" #include <QImage> @@ -53,7 +27,7 @@ QPixmap SvgImageProvider::requestPixmap(const QString &id, QSize *size, const QS QVariantMap params; for (const QString ¶m : paramList) { QStringList keyValue = param.split(QLatin1Char('='), Qt::SkipEmptyParts); - if (keyValue.length() == 2) + if (keyValue.size() == 2) params[keyValue[0]] = keyValue[1]; } const auto widthIt = params.constFind(QLatin1String("width")); diff --git a/src/styles/svgimageprovider.h b/src/styles/svgimageprovider.h index 3d89a278..851ab606 100644 --- a/src/styles/svgimageprovider.h +++ b/src/styles/svgimageprovider.h @@ -1,31 +1,5 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the Qt Virtual Keyboard module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL$ -** 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 General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 or (at your option) 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.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-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only #ifndef SVGIMAGEPROVIDER_H #define SVGIMAGEPROVIDER_H |