diff options
Diffstat (limited to 'src/imports')
1683 files changed, 19213 insertions, 1537 deletions
diff --git a/src/imports/calendar/plugins.qmltypes b/src/imports/calendar/plugins.qmltypes index 2ad527f7..ef9a5d49 100644 --- a/src/imports/calendar/plugins.qmltypes +++ b/src/imports/calendar/plugins.qmltypes @@ -86,6 +86,8 @@ Module { Property { name: "wheelEnabled"; type: "bool" } Property { name: "background"; type: "QQuickItem"; isPointer: true } Property { name: "contentItem"; type: "QQuickItem"; isPointer: true } + Property { name: "palette"; revision: 3; type: "QPalette" } + Signal { name: "paletteChanged"; revision: 3 } } Component { name: "QQuickDayOfWeekRow" diff --git a/src/imports/calendar/qtlabscalendarplugin.cpp b/src/imports/calendar/qtlabscalendarplugin.cpp index 6d2d5b97..178118fb 100644 --- a/src/imports/calendar/qtlabscalendarplugin.cpp +++ b/src/imports/calendar/qtlabscalendarplugin.cpp @@ -58,7 +58,7 @@ class QtLabsCalendarPlugin: public QQmlExtensionPlugin public: QtLabsCalendarPlugin(QObject *parent = nullptr); - void registerTypes(const char *uri); + void registerTypes(const char *uri) override; }; QtLabsCalendarPlugin::QtLabsCalendarPlugin(QObject *parent) : QQmlExtensionPlugin(parent) diff --git a/src/imports/controls/AbstractButton.qml b/src/imports/controls/AbstractButton.qml index 96987cf2..e65dd887 100644 --- a/src/imports/controls/AbstractButton.qml +++ b/src/imports/controls/AbstractButton.qml @@ -34,8 +34,8 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T T.AbstractButton { id: control diff --git a/src/imports/controls/Action.qml b/src/imports/controls/Action.qml new file mode 100644 index 00000000..ad67300d --- /dev/null +++ b/src/imports/controls/Action.qml @@ -0,0 +1,40 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T + +T.Action { } diff --git a/src/imports/controls/ActionGroup.qml b/src/imports/controls/ActionGroup.qml new file mode 100644 index 00000000..44b174e6 --- /dev/null +++ b/src/imports/controls/ActionGroup.qml @@ -0,0 +1,40 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T + +T.ActionGroup { } diff --git a/src/imports/controls/ApplicationWindow.qml b/src/imports/controls/ApplicationWindow.qml index af3986ac..12e877f7 100644 --- a/src/imports/controls/ApplicationWindow.qml +++ b/src/imports/controls/ApplicationWindow.qml @@ -34,22 +34,22 @@ ** ****************************************************************************/ -import QtQuick 2.9 +import QtQuick 2.10 import QtQuick.Window 2.3 -import QtQuick.Controls 2.2 -import QtQuick.Controls.impl 2.2 -import QtQuick.Templates 2.2 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Templates 2.3 as T T.ApplicationWindow { id: window - color: Default.backgroundColor + color: palette.window overlay.modal: Rectangle { - color: Default.overlayModalColor + color: Color.transparent(window.palette.shadow, 0.5) } overlay.modeless: Rectangle { - color: Default.overlayDimColor + color: Color.transparent(window.palette.shadow, 0.12) } } diff --git a/src/imports/controls/BusyIndicator.qml b/src/imports/controls/BusyIndicator.qml index c92ef720..82255407 100644 --- a/src/imports/controls/BusyIndicator.qml +++ b/src/imports/controls/BusyIndicator.qml @@ -34,10 +34,10 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Controls 2.2 -import QtQuick.Controls.impl 2.2 -import QtQuick.Templates 2.2 as T +import QtQuick 2.10 +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Templates 2.3 as T T.BusyIndicator { id: control @@ -51,6 +51,9 @@ T.BusyIndicator { implicitWidth: 48 implicitHeight: 48 + pen: control.palette.dark + fill: control.palette.dark + running: control.running opacity: control.running ? 1 : 0 Behavior on opacity { OpacityAnimator { duration: 250 } } diff --git a/src/imports/controls/Button.qml b/src/imports/controls/Button.qml index 6c150d5d..a5e86a38 100644 --- a/src/imports/controls/Button.qml +++ b/src/imports/controls/Button.qml @@ -34,10 +34,10 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Controls 2.2 -import QtQuick.Controls.impl 2.2 -import QtQuick.Templates 2.2 as T +import QtQuick 2.10 +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Templates 2.3 as T T.Button { id: control @@ -51,27 +51,32 @@ T.Button { padding: 6 leftPadding: padding + 2 rightPadding: padding + 2 + spacing: 6 - contentItem: Text { + icon.width: 24 + icon.height: 24 + icon.color: control.checked || control.highlighted ? control.palette.brightText : + control.flat && !control.down ? (control.visualFocus ? control.palette.highlight : control.palette.windowText) : control.palette.buttonText + + contentItem: IconLabel { + spacing: control.spacing + mirrored: control.mirrored + display: control.display + + icon: control.icon text: control.text font: control.font - opacity: enabled || control.highlighted || control.checked ? 1 : 0.3 - color: control.checked || control.highlighted ? - Default.textLightColor : - (control.visualFocus ? Default.focusColor : (control.down ? Default.textDarkColor : Default.textColor)) - horizontalAlignment: Text.AlignHCenter - verticalAlignment: Text.AlignVCenter - elide: Text.ElideRight + color: control.checked || control.highlighted ? control.palette.brightText : + control.flat && !control.down ? (control.visualFocus ? control.palette.highlight : control.palette.windowText) : control.palette.buttonText } background: Rectangle { implicitWidth: 100 implicitHeight: 40 visible: !control.flat || control.down || control.checked || control.highlighted - color: control.checked || control.highlighted ? - (control.visualFocus ? (control.down ? Default.buttonCheckedFocusColor : Default.focusColor) : (control.down ? Default.buttonCheckedPressedColor : Default.textColor)) : - (control.visualFocus ? (control.down ? Default.focusPressedColor : Default.focusLightColor) : (control.down ? Default.buttonPressedColor : Default.buttonColor)) - border.color: Default.focusColor + color: Color.blend(control.checked || control.highlighted ? control.palette.dark : control.palette.button, + control.palette.mid, control.down ? 0.5 : 0.0) + border.color: control.palette.highlight border.width: control.visualFocus ? 2 : 0 } } diff --git a/src/imports/controls/ButtonGroup.qml b/src/imports/controls/ButtonGroup.qml index 14a08361..a234583c 100644 --- a/src/imports/controls/ButtonGroup.qml +++ b/src/imports/controls/ButtonGroup.qml @@ -34,7 +34,7 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T T.ButtonGroup { } diff --git a/src/imports/controls/CheckBox.qml b/src/imports/controls/CheckBox.qml index 4da79098..ec539b19 100644 --- a/src/imports/controls/CheckBox.qml +++ b/src/imports/controls/CheckBox.qml @@ -34,10 +34,10 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls 2.2 -import QtQuick.Controls.impl 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 T.CheckBox { id: control @@ -52,21 +52,43 @@ T.CheckBox { padding: 6 spacing: 6 - indicator: CheckIndicator { + // keep in sync with CheckDelegate.qml (shared CheckIndicator.qml was removed for performance reasons) + indicator: Rectangle { + implicitWidth: 28 + implicitHeight: 28 + x: text ? (control.mirrored ? control.width - width - control.rightPadding : control.leftPadding) : control.leftPadding + (control.availableWidth - width) / 2 y: control.topPadding + (control.availableHeight - height) / 2 - control: control + + color: control.down ? control.palette.light : control.palette.base + border.width: control.visualFocus ? 2 : 1 + border.color: control.visualFocus ? control.palette.highlight : control.palette.mid + + ColorImage { + x: (parent.width - width) / 2 + y: (parent.height - height) / 2 + defaultColor: "#353637" + color: control.palette.text + source: "qrc:/qt-project.org/imports/QtQuick/Controls.2/images/check.png" + visible: control.checkState === Qt.Checked + } + + Rectangle { + x: (parent.width - width) / 2 + y: (parent.height - height) / 2 + width: 16 + height: 3 + color: control.palette.text + visible: control.checkState === Qt.PartiallyChecked + } } - contentItem: Text { + contentItem: CheckLabel { leftPadding: control.indicator && !control.mirrored ? control.indicator.width + control.spacing : 0 rightPadding: control.indicator && control.mirrored ? control.indicator.width + control.spacing : 0 text: control.text font: control.font - color: control.down ? Default.textDarkColor : Default.textColor - elide: Text.ElideRight - verticalAlignment: Text.AlignVCenter - opacity: enabled ? 1 : 0.3 + color: control.palette.windowText } } diff --git a/src/imports/controls/CheckDelegate.qml b/src/imports/controls/CheckDelegate.qml index 3333642c..e8ee6731 100644 --- a/src/imports/controls/CheckDelegate.qml +++ b/src/imports/controls/CheckDelegate.qml @@ -34,10 +34,10 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls 2.2 -import QtQuick.Controls.impl 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 T.CheckDelegate { id: control @@ -52,28 +52,60 @@ T.CheckDelegate { padding: 12 spacing: 12 - contentItem: Text { + icon.width: 24 + icon.height: 24 + icon.color: control.palette.text + + contentItem: IconLabel { leftPadding: control.mirrored ? control.indicator.width + control.spacing : 0 rightPadding: !control.mirrored ? control.indicator.width + control.spacing : 0 + spacing: control.spacing + mirrored: control.mirrored + display: control.display + alignment: control.display === IconLabel.IconOnly || control.display === IconLabel.TextUnderIcon ? Qt.AlignCenter : Qt.AlignLeft + + icon: control.icon text: control.text font: control.font - color: control.enabled ? Default.textDarkColor : Default.textDisabledColor - elide: Text.ElideRight - verticalAlignment: Text.AlignVCenter + color: control.palette.text } - indicator: CheckIndicator { + // keep in sync with CheckBox.qml (shared CheckIndicator.qml was removed for performance reasons) + indicator: Rectangle { + implicitWidth: 28 + implicitHeight: 28 + x: control.mirrored ? control.leftPadding : control.width - width - control.rightPadding y: control.topPadding + (control.availableHeight - height) / 2 - control: control + color: control.down ? control.palette.light : control.palette.base + border.width: control.visualFocus ? 2 : 1 + border.color: control.visualFocus ? control.palette.highlight : control.palette.mid + + ColorImage { + x: (parent.width - width) / 2 + y: (parent.height - height) / 2 + defaultColor: "#353637" + color: control.palette.text + source: "qrc:/qt-project.org/imports/QtQuick/Controls.2/images/check.png" + visible: control.checkState === Qt.Checked + } + + Rectangle { + x: (parent.width - width) / 2 + y: (parent.height - height) / 2 + width: 16 + height: 3 + color: control.palette.text + visible: control.checkState === Qt.PartiallyChecked + } } background: Rectangle { implicitWidth: 100 implicitHeight: 40 visible: control.down || control.highlighted - color: control.down ? Default.delegatePressedColor : Default.delegateColor + color: control.down ? control.palette.midlight : control.palette.light } } diff --git a/src/imports/controls/ComboBox.qml b/src/imports/controls/ComboBox.qml index 3eabcacf..26f02f2e 100644 --- a/src/imports/controls/ComboBox.qml +++ b/src/imports/controls/ComboBox.qml @@ -34,11 +34,11 @@ ** ****************************************************************************/ -import QtQuick 2.9 +import QtQuick 2.10 import QtQuick.Window 2.3 -import QtQuick.Controls 2.2 -import QtQuick.Controls.impl 2.2 -import QtQuick.Templates 2.2 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Templates 2.3 as T T.ComboBox { id: control @@ -61,12 +61,12 @@ T.ComboBox { hoverEnabled: control.hoverEnabled } - indicator: Image { + indicator: ColorImage { x: control.mirrored ? control.padding : control.width - width - control.padding y: control.topPadding + (control.availableHeight - height) / 2 - source: "image://default/double-arrow/" + (!control.editable && control.visualFocus ? Default.focusColor : Default.textColor) - sourceSize.width: width - sourceSize.height: height + color: control.palette.dark + defaultColor: "#353637" + source: "qrc:/qt-project.org/imports/QtQuick/Controls.2/images/double-arrow.png" opacity: enabled ? 1 : 0.3 } @@ -85,26 +85,25 @@ T.ComboBox { validator: control.validator font: control.font - color: !control.editable && control.visualFocus ? Default.focusColor : Default.textColor - selectionColor: Default.focusColor - selectedTextColor: Default.textLightColor + color: control.editable ? control.palette.text : control.palette.buttonText + selectionColor: control.palette.highlight + selectedTextColor: control.palette.highlightedText verticalAlignment: Text.AlignVCenter - opacity: control.enabled ? 1 : 0.3 background: Rectangle { - visible: control.editable && !control.flat + visible: control.enabled && control.editable && !control.flat border.width: parent && parent.activeFocus ? 2 : 1 - border.color: parent && parent.activeFocus ? Default.focusColor : Default.buttonColor + border.color: parent && parent.activeFocus ? control.palette.highlight : control.palette.button + color: control.palette.base } } background: Rectangle { - implicitWidth: 120 + implicitWidth: 140 implicitHeight: 40 - color: !control.editable && control.visualFocus ? (control.pressed ? Default.focusPressedColor : Default.focusLightColor) : - (control.down ? Default.buttonPressedColor : Default.buttonColor) - border.color: Default.focusColor + color: control.down ? control.palette.mid : control.palette.button + border.color: control.palette.highlight border.width: !control.editable && control.visualFocus ? 2 : 0 visible: !control.flat || control.down } @@ -121,7 +120,6 @@ T.ComboBox { implicitHeight: contentHeight model: control.delegateModel currentIndex: control.highlightedIndex - highlightRangeMode: ListView.ApplyRange highlightMoveDuration: 0 Rectangle { @@ -129,7 +127,7 @@ T.ComboBox { width: parent.width height: parent.height color: "transparent" - border.color: Default.frameLightColor + border.color: control.palette.mid } T.ScrollIndicator.vertical: ScrollIndicator { } diff --git a/src/imports/controls/Container.qml b/src/imports/controls/Container.qml index 5844e0a2..b297b2ab 100644 --- a/src/imports/controls/Container.qml +++ b/src/imports/controls/Container.qml @@ -34,8 +34,8 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T T.Container { id: control diff --git a/src/imports/controls/Control.qml b/src/imports/controls/Control.qml index 85f40ae5..64e0f35f 100644 --- a/src/imports/controls/Control.qml +++ b/src/imports/controls/Control.qml @@ -34,8 +34,8 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T T.Control { id: control diff --git a/src/imports/controls/DelayButton.qml b/src/imports/controls/DelayButton.qml index 133b2786..e6a1a2d9 100644 --- a/src/imports/controls/DelayButton.qml +++ b/src/imports/controls/DelayButton.qml @@ -34,10 +34,10 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Controls 2.2 -import QtQuick.Controls.impl 2.2 -import QtQuick.Templates 2.2 as T +import QtQuick 2.10 +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Templates 2.3 as T T.DelayButton { id: control @@ -68,7 +68,7 @@ T.DelayButton { text: control.text font: control.font opacity: enabled ? 1 : 0.3 - color: control.visualFocus ? Default.focusColor : (control.down ? Default.textDarkColor : Default.textColor) + color: control.palette.buttonText horizontalAlignment: Text.AlignHCenter verticalAlignment: Text.AlignVCenter elide: Text.ElideRight @@ -83,7 +83,7 @@ T.DelayButton { text: control.text font: control.font opacity: enabled ? 1 : 0.3 - color: Default.textLightColor + color: control.palette.brightText horizontalAlignment: Text.AlignHCenter verticalAlignment: Text.AlignVCenter elide: Text.ElideRight @@ -93,14 +93,15 @@ T.DelayButton { background: Rectangle { implicitWidth: 100 implicitHeight: 40 - color: control.visualFocus ? (control.down ? Default.focusPressedColor : Default.focusLightColor) : (control.down ? Default.buttonPressedColor : Default.buttonColor) - border.color: Default.focusColor + color: Color.blend(control.palette.button, control.palette.mid, control.down ? 0.5 : 0.0) + border.color: control.palette.highlight border.width: control.visualFocus ? 2 : 0 - Rectangle { + PaddedRectangle { + padding: control.visualFocus ? 2 : 0 width: control.progress * parent.width height: parent.height - color: control.visualFocus ? (control.down ? Default.buttonCheckedFocusColor : Default.focusColor) : (control.down ? Default.buttonCheckedPressedColor : Default.textColor) + color: Color.blend(control.palette.dark, control.palette.mid, control.down ? 0.5 : 0.0) } } } diff --git a/src/imports/controls/Dial.qml b/src/imports/controls/Dial.qml index 0bd2f163..67d55d2b 100644 --- a/src/imports/controls/Dial.qml +++ b/src/imports/controls/Dial.qml @@ -34,10 +34,10 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Controls 2.2 -import QtQuick.Controls.impl 2.2 -import QtQuick.Templates 2.2 as T +import QtQuick 2.10 +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Templates 2.3 as T T.Dial { id: control @@ -45,22 +45,22 @@ T.Dial { implicitWidth: 184 implicitHeight: 184 - background: DialRing { + background: DialImpl { width: control.availableWidth height: control.availableHeight - color: control.visualFocus ? Default.focusColor : Default.frameDarkColor + color: control.visualFocus ? control.palette.highlight : control.palette.dark progress: control.position opacity: control.enabled ? 1 : 0.3 } - handle: Image { + handle: ColorImage { x: background.x + background.width / 2 - handle.width / 2 y: background.y + background.height / 2 - handle.height / 2 width: 14 height: 10 - source: "image://default/dial-indicator/" + (control.visualFocus ? Default.focusColor : Default.textColor) - sourceSize.width: width - sourceSize.height: height + defaultColor: "#353637" + color: control.visualFocus ? control.palette.highlight : control.palette.dark + source: "qrc:/qt-project.org/imports/QtQuick/Controls.2/images/dial-indicator.png" antialiasing: true opacity: control.enabled ? 1 : 0.3 transform: [ diff --git a/src/imports/controls/Dialog.qml b/src/imports/controls/Dialog.qml index 84c33b63..24556db0 100644 --- a/src/imports/controls/Dialog.qml +++ b/src/imports/controls/Dialog.qml @@ -34,10 +34,10 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls 2.2 -import QtQuick.Controls.impl 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 T.Dialog { id: control @@ -57,7 +57,8 @@ T.Dialog { padding: 12 background: Rectangle { - border.color: Default.frameDarkColor + color: control.palette.window + border.color: control.palette.dark } header: Label { @@ -70,10 +71,19 @@ T.Dialog { x: 1; y: 1 width: parent.width - 2 height: parent.height - 1 + color: control.palette.window } } footer: DialogButtonBox { visible: count > 0 } + + T.Overlay.modal: Rectangle { + color: Color.transparent(control.palette.shadow, 0.5) + } + + T.Overlay.modeless: Rectangle { + color: Color.transparent(control.palette.shadow, 0.12) + } } diff --git a/src/imports/controls/DialogButtonBox.qml b/src/imports/controls/DialogButtonBox.qml index ba9fa52f..1a962d9b 100644 --- a/src/imports/controls/DialogButtonBox.qml +++ b/src/imports/controls/DialogButtonBox.qml @@ -34,8 +34,8 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T T.DialogButtonBox { id: control @@ -69,5 +69,6 @@ T.DialogButtonBox { x: 1; y: 1 width: parent.width - 2 height: parent.height - 2 + color: control.palette.window } } diff --git a/src/imports/controls/Drawer.qml b/src/imports/controls/Drawer.qml index b3240ca3..b512d14c 100644 --- a/src/imports/controls/Drawer.qml +++ b/src/imports/controls/Drawer.qml @@ -34,15 +34,15 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Controls 2.2 -import QtQuick.Controls.impl 2.2 -import QtQuick.Templates 2.2 as T +import QtQuick 2.10 +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Templates 2.3 as T T.Drawer { id: control - parent: T.ApplicationWindow.overlay + parent: T.Overlay.overlay implicitWidth: Math.max(background ? background.implicitWidth : 0, contentWidth + leftPadding + rightPadding) implicitHeight: Math.max(background ? background.implicitHeight : 0, contentHeight + topPadding + bottomPadding) @@ -59,13 +59,22 @@ T.Drawer { exit: Transition { SmoothedAnimation { velocity: 5 } } background: Rectangle { + color: control.palette.window Rectangle { readonly property bool horizontal: control.edge === Qt.LeftEdge || control.edge === Qt.RightEdge width: horizontal ? 1 : parent.width height: horizontal ? parent.height : 1 - color: Default.frameDarkColor + color: control.palette.dark x: control.edge === Qt.LeftEdge ? parent.width - 1 : 0 y: control.edge === Qt.TopEdge ? parent.height - 1 : 0 } } + + T.Overlay.modal: Rectangle { + color: Color.transparent(control.palette.shadow, 0.5) + } + + T.Overlay.modeless: Rectangle { + color: Color.transparent(control.palette.shadow, 0.12) + } } diff --git a/src/imports/controls/Frame.qml b/src/imports/controls/Frame.qml index 5add003f..9b81b7be 100644 --- a/src/imports/controls/Frame.qml +++ b/src/imports/controls/Frame.qml @@ -34,10 +34,10 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Controls 2.2 -import QtQuick.Controls.impl 2.2 -import QtQuick.Templates 2.2 as T +import QtQuick 2.10 +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Templates 2.3 as T T.Frame { id: control @@ -52,6 +52,6 @@ T.Frame { background: Rectangle { color: "transparent" - border.color: Default.frameLightColor + border.color: control.palette.mid } } diff --git a/src/imports/controls/GroupBox.qml b/src/imports/controls/GroupBox.qml index 272577c9..1bcb4fc0 100644 --- a/src/imports/controls/GroupBox.qml +++ b/src/imports/controls/GroupBox.qml @@ -34,10 +34,10 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Controls 2.2 -import QtQuick.Controls.impl 2.2 -import QtQuick.Templates 2.2 as T +import QtQuick 2.10 +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Templates 2.3 as T T.GroupBox { id: control @@ -60,7 +60,7 @@ T.GroupBox { text: control.title font: control.font - color: control.enabled ? Default.textColor : Default.textDisabledColor + color: control.palette.windowText elide: Text.ElideRight verticalAlignment: Text.AlignVCenter } @@ -71,6 +71,6 @@ T.GroupBox { height: parent.height - control.topPadding + control.padding color: "transparent" - border.color: Default.frameLightColor + border.color: control.palette.mid } } diff --git a/src/imports/controls/ItemDelegate.qml b/src/imports/controls/ItemDelegate.qml index 3a7e1044..1180a997 100644 --- a/src/imports/controls/ItemDelegate.qml +++ b/src/imports/controls/ItemDelegate.qml @@ -34,10 +34,10 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Controls 2.2 -import QtQuick.Controls.impl 2.2 -import QtQuick.Templates 2.2 as T +import QtQuick 2.10 +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Templates 2.3 as T T.ItemDelegate { id: control @@ -50,25 +50,29 @@ T.ItemDelegate { baselineOffset: contentItem.y + contentItem.baselineOffset padding: 12 - spacing: 12 + spacing: 8 - contentItem: Text { - leftPadding: control.mirrored ? (control.indicator ? control.indicator.width : 0) + control.spacing : 0 - rightPadding: !control.mirrored ? (control.indicator ? control.indicator.width : 0) + control.spacing : 0 + icon.width: 24 + icon.height: 24 + icon.color: control.palette.text + contentItem: IconLabel { + spacing: control.spacing + mirrored: control.mirrored + display: control.display + alignment: control.display === IconLabel.IconOnly || control.display === IconLabel.TextUnderIcon ? Qt.AlignCenter : Qt.AlignLeft + + icon: control.icon text: control.text font: control.font - color: control.enabled ? Default.textDarkColor : Default.textDisabledColor - elide: Text.ElideRight - verticalAlignment: Text.AlignVCenter + color: control.palette.text } background: Rectangle { implicitWidth: 100 implicitHeight: 40 visible: control.down || control.highlighted || control.visualFocus - color: control.visualFocus - ? (control.pressed ? Default.focusPressedColor : Default.delegateFocusColor) - : (control.down ? Default.delegatePressedColor : Default.delegateColor) + color: Color.blend(control.down ? control.palette.midlight : control.palette.light, + control.palette.highlight, control.visualFocus ? 0.15 : 0.0) } } diff --git a/src/imports/controls/Label.qml b/src/imports/controls/Label.qml index d2052774..c03c9b47 100644 --- a/src/imports/controls/Label.qml +++ b/src/imports/controls/Label.qml @@ -34,14 +34,14 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Controls 2.2 -import QtQuick.Controls.impl 2.2 -import QtQuick.Templates 2.2 as T +import QtQuick 2.10 +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Templates 2.3 as T T.Label { id: control - color: Default.textDarkColor - linkColor: Default.textLinkColor + color: control.palette.windowText + linkColor: control.palette.link } diff --git a/src/imports/controls/Menu.qml b/src/imports/controls/Menu.qml index dc428629..cb9f693d 100644 --- a/src/imports/controls/Menu.qml +++ b/src/imports/controls/Menu.qml @@ -34,10 +34,10 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Controls 2.2 -import QtQuick.Controls.impl 2.2 -import QtQuick.Templates 2.2 as T +import QtQuick 2.10 +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Templates 2.3 as T T.Menu { id: control @@ -48,6 +48,9 @@ T.Menu { contentItem ? contentItem.implicitHeight : 0) + topPadding + bottomPadding margins: 0 + overlap: 1 + + delegate: MenuItem { } contentItem: ListView { implicitHeight: contentHeight @@ -55,8 +58,7 @@ T.Menu { // TODO: improve this? interactive: ApplicationWindow.window ? contentHeight > ApplicationWindow.window.height : false clip: true - keyNavigationWraps: false - currentIndex: -1 + currentIndex: control.currentIndex ScrollIndicator.vertical: ScrollIndicator {} } @@ -64,7 +66,15 @@ T.Menu { background: Rectangle { implicitWidth: 200 implicitHeight: 40 - color: Default.backgroundColor - border.color: Default.frameDarkColor + color: control.palette.window + border.color: control.palette.dark + } + + T.Overlay.modal: Rectangle { + color: Color.transparent(control.palette.shadow, 0.5) + } + + T.Overlay.modeless: Rectangle { + color: Color.transparent(control.palette.shadow, 0.12) } } diff --git a/src/imports/controls/RadioIndicator.qml b/src/imports/controls/MenuBar.qml index d9889fba..4c205465 100644 --- a/src/imports/controls/RadioIndicator.qml +++ b/src/imports/controls/MenuBar.qml @@ -34,31 +34,30 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Controls 2.2 -import QtQuick.Controls.impl 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 -Rectangle { - implicitWidth: 28 - implicitHeight: 28 +T.MenuBar { + id: control - radius: width / 2 - color: control.down - ? (control.visualFocus ? Default.focusPressedColor : Default.indicatorPressedColor) - : (control.visualFocus ? Default.focusLightColor : Default.backgroundColor) - border.width: control.visualFocus ? 2 : 1 - border.color: control.visualFocus ? Default.focusColor : (control.down ? Default.indicatorFramePressedColor : Default.indicatorFrameColor) - opacity: enabled ? 1 : 0.3 + implicitWidth: Math.max(background ? background.implicitWidth : 0, + contentWidth + leftPadding + rightPadding) + implicitHeight: Math.max(background ? background.implicitHeight : 0, + contentHeight + topPadding + bottomPadding) - property Item control + delegate: MenuBarItem { } - Rectangle { - x: (parent.width - width) / 2 - y: (parent.height - height) / 2 - width: 20 - height: 20 - radius: width / 2 - color: control.down ? Default.textDarkColor : Default.buttonCheckedColor - visible: control.checked + contentItem: Row { + spacing: control.spacing + Repeater { + model: control.contentModel + } + } + + background: Rectangle { + implicitHeight: 40 + color: control.palette.button } } diff --git a/src/imports/controls/MenuBarItem.qml b/src/imports/controls/MenuBarItem.qml new file mode 100644 index 00000000..dfe20788 --- /dev/null +++ b/src/imports/controls/MenuBarItem.qml @@ -0,0 +1,78 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 + +T.MenuBarItem { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, + contentItem.implicitWidth + leftPadding + rightPadding) + implicitHeight: Math.max(background ? background.implicitHeight : 0, + Math.max(contentItem.implicitHeight, + indicator ? indicator.implicitHeight : 0) + topPadding + bottomPadding) + baselineOffset: contentItem.y + contentItem.baselineOffset + + spacing: 6 + padding: 6 + leftPadding: 12 + rightPadding: 16 + + icon.width: 24 + icon.height: 24 + icon.color: control.palette.buttonText + + contentItem: IconLabel { + spacing: control.spacing + mirrored: control.mirrored + display: control.display + alignment: Qt.AlignLeft + + icon: control.icon + text: control.text + font: control.font + color: control.palette.buttonText + } + + background: Rectangle { + implicitWidth: 40 + implicitHeight: 40 + color: control.down || control.highlighted ? control.palette.mid : "transparent" + } +} diff --git a/src/imports/controls/MenuItem.qml b/src/imports/controls/MenuItem.qml index 74ae6002..3562669d 100644 --- a/src/imports/controls/MenuItem.qml +++ b/src/imports/controls/MenuItem.qml @@ -34,10 +34,10 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Controls 2.2 -import QtQuick.Controls.impl 2.2 -import QtQuick.Templates 2.2 as T +import QtQuick 2.10 +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Templates 2.3 as T T.MenuItem { id: control @@ -50,24 +50,48 @@ T.MenuItem { baselineOffset: contentItem.y + contentItem.baselineOffset padding: 6 + spacing: 6 - contentItem: Text { - leftPadding: control.checkable && !control.mirrored ? control.indicator.width + control.spacing : 0 - rightPadding: control.checkable && control.mirrored ? control.indicator.width + control.spacing : 0 + icon.width: 24 + icon.height: 24 + icon.color: control.palette.windowText + contentItem: IconLabel { + readonly property real arrowPadding: control.subMenu && control.arrow ? control.arrow.width + control.spacing : 0 + readonly property real indicatorPadding: control.checkable && control.indicator ? control.indicator.width + control.spacing : 0 + leftPadding: !control.mirrored ? indicatorPadding : arrowPadding + rightPadding: control.mirrored ? indicatorPadding : arrowPadding + + spacing: control.spacing + mirrored: control.mirrored + display: control.display + alignment: Qt.AlignLeft + + icon: control.icon text: control.text font: control.font - color: control.enabled ? Default.textDarkColor : Default.textDisabledColor - elide: Text.ElideRight - verticalAlignment: Text.AlignVCenter + color: control.palette.windowText } - indicator: Image { + indicator: ColorImage { x: control.mirrored ? control.width - width - control.rightPadding : control.leftPadding y: control.topPadding + (control.availableHeight - height) / 2 visible: control.checked source: control.checkable ? "qrc:/qt-project.org/imports/QtQuick/Controls.2/images/check.png" : "" + color: control.palette.windowText + defaultColor: "#353637" + } + + arrow: ColorImage { + x: control.mirrored ? control.leftPadding : control.width - width - control.rightPadding + y: control.topPadding + (control.availableHeight - height) / 2 + + visible: control.subMenu + mirror: control.mirrored + source: control.subMenu ? "qrc:/qt-project.org/imports/QtQuick/Controls.2/images/arrow-indicator.png" : "" + color: control.palette.windowText + defaultColor: "#353637" } background: Rectangle { @@ -75,8 +99,8 @@ T.MenuItem { implicitHeight: 40 x: 1 y: 1 - width: parent.width - 2 - height: parent.height - 2 - color: control.visualFocus || control.down ? Default.delegateColor : "transparent" + width: control.width - 2 + height: control.height - 2 + color: control.down ? control.palette.midlight : control.highlighted ? control.palette.light : "transparent" } } diff --git a/src/imports/controls/MenuSeparator.qml b/src/imports/controls/MenuSeparator.qml index f0c588b2..db34e746 100644 --- a/src/imports/controls/MenuSeparator.qml +++ b/src/imports/controls/MenuSeparator.qml @@ -34,10 +34,10 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Controls 2.2 -import QtQuick.Controls.impl 2.2 -import QtQuick.Templates 2.2 as T +import QtQuick 2.10 +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Templates 2.3 as T T.MenuSeparator { id: control @@ -52,6 +52,6 @@ T.MenuSeparator { contentItem: Rectangle { implicitWidth: 188 implicitHeight: 1 - color: Default.separatorColor + color: control.palette.mid } } diff --git a/src/imports/controls/Page.qml b/src/imports/controls/Page.qml index 64c16bf4..5bf3e0da 100644 --- a/src/imports/controls/Page.qml +++ b/src/imports/controls/Page.qml @@ -34,10 +34,10 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Controls 2.2 -import QtQuick.Controls.impl 2.2 -import QtQuick.Templates 2.2 as T +import QtQuick 2.10 +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Templates 2.3 as T T.Page { id: control @@ -55,6 +55,6 @@ T.Page { contentHeight: contentItem.implicitHeight || (contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0) background: Rectangle { - color: Default.backgroundColor + color: control.palette.window } } diff --git a/src/imports/controls/PageIndicator.qml b/src/imports/controls/PageIndicator.qml index 3ff7d0c1..a0b1e17a 100644 --- a/src/imports/controls/PageIndicator.qml +++ b/src/imports/controls/PageIndicator.qml @@ -34,10 +34,10 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Controls 2.2 -import QtQuick.Controls.impl 2.2 -import QtQuick.Templates 2.2 as T +import QtQuick 2.10 +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Templates 2.3 as T T.PageIndicator { id: control @@ -55,7 +55,7 @@ T.PageIndicator { implicitHeight: 8 radius: width / 2 - color: Default.pageIndicatorColor + color: control.palette.dark opacity: index === currentIndex ? 0.95 : pressed ? 0.7 : 0.45 Behavior on opacity { OpacityAnimator { duration: 100 } } diff --git a/src/imports/controls/Pane.qml b/src/imports/controls/Pane.qml index 7ed7f0d8..ac023bdd 100644 --- a/src/imports/controls/Pane.qml +++ b/src/imports/controls/Pane.qml @@ -34,10 +34,10 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Controls 2.2 -import QtQuick.Controls.impl 2.2 -import QtQuick.Templates 2.2 as T +import QtQuick 2.10 +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Templates 2.3 as T T.Pane { id: control @@ -51,6 +51,6 @@ T.Pane { padding: 12 background: Rectangle { - color: Default.backgroundColor + color: control.palette.window } } diff --git a/src/imports/controls/Popup.qml b/src/imports/controls/Popup.qml index 4a7a1dfd..6a78e89a 100644 --- a/src/imports/controls/Popup.qml +++ b/src/imports/controls/Popup.qml @@ -34,10 +34,10 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Controls 2.2 -import QtQuick.Controls.impl 2.2 -import QtQuick.Templates 2.2 as T +import QtQuick 2.10 +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Templates 2.3 as T T.Popup { id: control @@ -53,6 +53,15 @@ T.Popup { padding: 12 background: Rectangle { - border.color: Default.frameDarkColor + color: control.palette.window + border.color: control.palette.dark + } + + T.Overlay.modal: Rectangle { + color: Color.transparent(control.palette.shadow, 0.5) + } + + T.Overlay.modeless: Rectangle { + color: Color.transparent(control.palette.shadow, 0.12) } } diff --git a/src/imports/controls/ProgressBar.qml b/src/imports/controls/ProgressBar.qml index eae6c019..00cdb28f 100644 --- a/src/imports/controls/ProgressBar.qml +++ b/src/imports/controls/ProgressBar.qml @@ -34,10 +34,10 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls 2.2 -import QtQuick.Controls.impl 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 T.ProgressBar { id: control @@ -53,16 +53,15 @@ T.ProgressBar { scale: control.mirrored ? -1 : 1 progress: control.position indeterminate: control.visible && control.indeterminate + color: control.palette.dark } background: Rectangle { implicitWidth: 200 implicitHeight: 6 - x: control.leftPadding - y: control.topPadding + (control.availableHeight - height) / 2 - width: control.availableWidth + y: (control.height - height) / 2 height: 6 - color: Default.progressBarColor + color: control.palette.midlight } } diff --git a/src/imports/controls/RadioButton.qml b/src/imports/controls/RadioButton.qml index 3ca0466b..a9f63652 100644 --- a/src/imports/controls/RadioButton.qml +++ b/src/imports/controls/RadioButton.qml @@ -34,10 +34,10 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Controls 2.2 -import QtQuick.Controls.impl 2.2 -import QtQuick.Templates 2.2 as T +import QtQuick 2.10 +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Templates 2.3 as T T.RadioButton { id: control @@ -52,21 +52,36 @@ T.RadioButton { padding: 6 spacing: 6 - indicator: RadioIndicator { + // keep in sync with RadioDelegate.qml (shared RadioIndicator.qml was removed for performance reasons) + indicator: Rectangle { + implicitWidth: 28 + implicitHeight: 28 + x: text ? (control.mirrored ? control.width - width - control.rightPadding : control.leftPadding) : control.leftPadding + (control.availableWidth - width) / 2 y: control.topPadding + (control.availableHeight - height) / 2 - control: control + + radius: width / 2 + color: control.down ? control.palette.light : control.palette.base + border.width: control.visualFocus ? 2 : 1 + border.color: control.visualFocus ? control.palette.highlight : control.palette.mid + + Rectangle { + x: (parent.width - width) / 2 + y: (parent.height - height) / 2 + width: 20 + height: 20 + radius: width / 2 + color: control.palette.text + visible: control.checked + } } - contentItem: Text { + contentItem: CheckLabel { leftPadding: control.indicator && !control.mirrored ? control.indicator.width + control.spacing : 0 rightPadding: control.indicator && control.mirrored ? control.indicator.width + control.spacing : 0 text: control.text font: control.font - color: control.down ? Default.textDarkColor : Default.textColor - elide: Text.ElideRight - verticalAlignment: Text.AlignVCenter - opacity: enabled ? 1 : 0.3 + color: control.palette.windowText } } diff --git a/src/imports/controls/RadioDelegate.qml b/src/imports/controls/RadioDelegate.qml index 708c826a..8cfe6e5f 100644 --- a/src/imports/controls/RadioDelegate.qml +++ b/src/imports/controls/RadioDelegate.qml @@ -34,10 +34,10 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Controls 2.2 -import QtQuick.Controls.impl 2.2 -import QtQuick.Templates 2.2 as T +import QtQuick 2.10 +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Templates 2.3 as T T.RadioDelegate { id: control @@ -52,28 +52,53 @@ T.RadioDelegate { padding: 12 spacing: 12 - contentItem: Text { + icon.width: 24 + icon.height: 24 + icon.color: control.palette.text + + contentItem: IconLabel { leftPadding: control.mirrored ? control.indicator.width + control.spacing : 0 rightPadding: !control.mirrored ? control.indicator.width + control.spacing : 0 + spacing: control.spacing + mirrored: control.mirrored + display: control.display + alignment: control.display === IconLabel.IconOnly || control.display === IconLabel.TextUnderIcon ? Qt.AlignCenter : Qt.AlignLeft + + icon: control.icon text: control.text font: control.font - color: control.enabled ? Default.textDarkColor : Default.textDisabledColor - elide: Text.ElideRight - verticalAlignment: Text.AlignVCenter + color: control.palette.text } - indicator: RadioIndicator { + // keep in sync with RadioButton.qml (shared RadioIndicator.qml was removed for performance reasons) + indicator: Rectangle { + implicitWidth: 28 + implicitHeight: 28 + x: control.mirrored ? control.leftPadding : control.width - width - control.rightPadding y: control.topPadding + (control.availableHeight - height) / 2 - control: control + radius: width / 2 + color: control.down ? control.palette.light : control.palette.base + border.width: control.visualFocus ? 2 : 1 + border.color: control.visualFocus ? control.palette.highlight : control.palette.mid + + Rectangle { + x: (parent.width - width) / 2 + y: (parent.height - height) / 2 + width: 20 + height: 20 + radius: width / 2 + color: control.palette.text + visible: control.checked + } } background: Rectangle { implicitWidth: 100 implicitHeight: 40 visible: control.down || control.highlighted - color: control.down ? Default.delegatePressedColor : Default.delegateColor + color: control.down ? control.palette.midlight : control.palette.light } } diff --git a/src/imports/controls/RangeSlider.qml b/src/imports/controls/RangeSlider.qml index b38cb0f6..c8b88a97 100644 --- a/src/imports/controls/RangeSlider.qml +++ b/src/imports/controls/RangeSlider.qml @@ -34,10 +34,10 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Controls 2.2 -import QtQuick.Controls.impl 2.2 -import QtQuick.Templates 2.2 as T +import QtQuick 2.10 +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Templates 2.3 as T T.RangeSlider { id: control @@ -52,59 +52,45 @@ T.RangeSlider { padding: 6 first.handle: Rectangle { - x: control.leftPadding + (horizontal ? control.first.visualPosition * (control.availableWidth - width) : (control.availableWidth - width) / 2) - y: control.topPadding + (horizontal ? (control.availableHeight - height) / 2 : control.first.visualPosition * (control.availableHeight - height)) + x: control.leftPadding + (control.horizontal ? control.first.visualPosition * (control.availableWidth - width) : (control.availableWidth - width) / 2) + y: control.topPadding + (control.horizontal ? (control.availableHeight - height) / 2 : control.first.visualPosition * (control.availableHeight - height)) implicitWidth: 28 implicitHeight: 28 radius: width / 2 border.width: activeFocus ? 2 : 1 - border.color: control.enabled ? (activeFocus - ? Default.focusColor - : (control.first.pressed ? Default.indicatorFramePressedColor : Default.indicatorFrameColor)) : Default.indicatorFrameDisabledColor - color: control.enabled ? (first.pressed - ? (activeFocus ? Default.focusPressedColor : Default.indicatorPressedColor) - : (activeFocus ? Default.focusLightColor : Default.backgroundColor)) : Default.indicatorDisabledColor - - readonly property bool horizontal: control.orientation === Qt.Horizontal + border.color: activeFocus ? control.palette.highlight : control.enabled ? control.palette.mid : control.palette.midlight + color: control.first.pressed ? control.palette.light : control.palette.window } second.handle: Rectangle { - x: control.leftPadding + (horizontal ? control.second.visualPosition * (control.availableWidth - width) : (control.availableWidth - width) / 2) - y: control.topPadding + (horizontal ? (control.availableHeight - height) / 2 : control.second.visualPosition * (control.availableHeight - height)) + x: control.leftPadding + (control.horizontal ? control.second.visualPosition * (control.availableWidth - width) : (control.availableWidth - width) / 2) + y: control.topPadding + (control.horizontal ? (control.availableHeight - height) / 2 : control.second.visualPosition * (control.availableHeight - height)) implicitWidth: 28 implicitHeight: 28 radius: width / 2 border.width: activeFocus ? 2 : 1 - border.color: control.enabled ? (activeFocus - ? Default.focusColor - : (control.second.pressed ? Default.indicatorFramePressedColor : Default.indicatorFrameColor)) : Default.indicatorFrameDisabledColor - color: control.enabled ? (second.pressed - ? (activeFocus ? Default.focusPressedColor : Default.indicatorPressedColor) - : (activeFocus ? Default.focusLightColor : Default.backgroundColor)) : Default.indicatorDisabledColor - - readonly property bool horizontal: control.orientation === Qt.Horizontal + border.color: activeFocus ? control.palette.highlight : control.enabled ? control.palette.mid : control.palette.midlight + color: control.second.pressed ? control.palette.light : control.palette.window } background: Rectangle { - x: control.leftPadding + (horizontal ? 0 : (control.availableWidth - width) / 2) - y: control.topPadding + (horizontal ? (control.availableHeight - height) / 2 : 0) - implicitWidth: horizontal ? 200 : 6 - implicitHeight: horizontal ? 6 : 200 - width: horizontal ? control.availableWidth : implicitWidth - height: horizontal ? implicitHeight : control.availableHeight + x: control.leftPadding + (control.horizontal ? 0 : (control.availableWidth - width) / 2) + y: control.topPadding + (control.horizontal ? (control.availableHeight - height) / 2 : 0) + implicitWidth: control.horizontal ? 200 : 6 + implicitHeight: control.horizontal ? 6 : 200 + width: control.horizontal ? control.availableWidth : implicitWidth + height: control.horizontal ? implicitHeight : control.availableHeight radius: 3 - color: Default.buttonColor - scale: horizontal && control.mirrored ? -1 : 1 - - readonly property bool horizontal: control.orientation === Qt.Horizontal + color: control.palette.midlight + scale: control.horizontal && control.mirrored ? -1 : 1 Rectangle { - x: parent.horizontal ? control.first.position * parent.width + 3 : 0 - y: parent.horizontal ? 0 : control.second.visualPosition * parent.height + 3 - width: parent.horizontal ? control.second.position * parent.width - control.first.position * parent.width - 6 : 6 - height: parent.horizontal ? 6 : control.second.position * parent.height - control.first.position * parent.height - 6 + x: control.horizontal ? control.first.position * parent.width + 3 : 0 + y: control.horizontal ? 0 : control.second.visualPosition * parent.height + 3 + width: control.horizontal ? control.second.position * parent.width - control.first.position * parent.width - 6 : 6 + height: control.horizontal ? 6 : control.second.position * parent.height - control.first.position * parent.height - 6 - color: Default.textColor + color: control.palette.dark } } } diff --git a/src/imports/controls/RoundButton.qml b/src/imports/controls/RoundButton.qml index 6b4000b1..13ccddc5 100644 --- a/src/imports/controls/RoundButton.qml +++ b/src/imports/controls/RoundButton.qml @@ -34,10 +34,10 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Controls 2.2 -import QtQuick.Controls.impl 2.2 -import QtQuick.Templates 2.2 as T +import QtQuick 2.10 +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Templates 2.3 as T T.RoundButton { id: control @@ -49,15 +49,23 @@ T.RoundButton { baselineOffset: contentItem.y + contentItem.baselineOffset padding: 6 + spacing: 6 - contentItem: Text { + icon.width: 24 + icon.height: 24 + icon.color: control.checked || control.highlighted ? control.palette.brightText : + control.flat && !control.down ? (control.visualFocus ? control.palette.highlight : control.palette.windowText) : control.palette.buttonText + + contentItem: IconLabel { + spacing: control.spacing + mirrored: control.mirrored + display: control.display + + icon: control.icon text: control.text font: control.font - opacity: enabled || control.highlighted || control.checked ? 1 : 0.3 - color: control.checked || control.highlighted ? Default.textLightColor : (control.visualFocus ? Default.focusColor : (control.down ? Default.textDarkColor : Default.textColor)) - horizontalAlignment: Text.AlignHCenter - verticalAlignment: Text.AlignVCenter - elide: Text.ElideRight + color: control.checked || control.highlighted ? control.palette.brightText : + control.flat && !control.down ? (control.visualFocus ? control.palette.highlight : control.palette.windowText) : control.palette.buttonText } background: Rectangle { @@ -66,10 +74,9 @@ T.RoundButton { radius: control.radius opacity: enabled ? 1 : 0.3 visible: !control.flat || control.down || control.checked || control.highlighted - color: control.checked || control.highlighted ? - (control.visualFocus ? (control.down ? Default.buttonCheckedFocusColor : Default.focusColor) : (control.down ? Default.buttonCheckedPressedColor : Default.buttonCheckedColor)) : - (control.visualFocus ? (control.down ? Default.focusPressedColor : Default.focusLightColor) : (control.down ? Default.buttonPressedColor : Default.buttonColor)) - border.color: Default.focusColor + color: Color.blend(control.checked || control.highlighted ? control.palette.dark : control.palette.button, + control.palette.mid, control.down ? 0.5 : 0.0) + border.color: control.palette.highlight border.width: control.visualFocus ? 2 : 0 } } diff --git a/src/imports/controls/ScrollBar.qml b/src/imports/controls/ScrollBar.qml index 3e763550..ccdf9cf4 100644 --- a/src/imports/controls/ScrollBar.qml +++ b/src/imports/controls/ScrollBar.qml @@ -34,10 +34,10 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Controls 2.2 -import QtQuick.Controls.impl 2.2 -import QtQuick.Templates 2.2 as T +import QtQuick 2.10 +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Templates 2.3 as T T.ScrollBar { id: control @@ -55,7 +55,7 @@ T.ScrollBar { implicitHeight: control.interactive ? 6 : 2 radius: width / 2 - color: control.pressed ? Default.scrollBarPressedColor : Default.scrollBarColor + color: control.pressed ? control.palette.dark : control.palette.mid opacity: 0.0 states: State { diff --git a/src/imports/controls/ScrollIndicator.qml b/src/imports/controls/ScrollIndicator.qml index 8607c8d4..1636aa62 100644 --- a/src/imports/controls/ScrollIndicator.qml +++ b/src/imports/controls/ScrollIndicator.qml @@ -34,10 +34,10 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Controls 2.2 -import QtQuick.Controls.impl 2.2 -import QtQuick.Templates 2.2 as T +import QtQuick 2.10 +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Templates 2.3 as T T.ScrollIndicator { id: control @@ -53,7 +53,7 @@ T.ScrollIndicator { implicitWidth: 2 implicitHeight: 2 - color: Default.scrollBarColor + color: control.palette.mid visible: control.size < 1.0 opacity: 0.0 diff --git a/src/imports/controls/ScrollView.qml b/src/imports/controls/ScrollView.qml index e10c5328..2618ee3f 100644 --- a/src/imports/controls/ScrollView.qml +++ b/src/imports/controls/ScrollView.qml @@ -34,10 +34,10 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Controls 2.2 -import QtQuick.Controls.impl 2.2 -import QtQuick.Templates 2.2 as T +import QtQuick 2.10 +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Templates 2.3 as T T.ScrollView { id: control diff --git a/src/imports/controls/Slider.qml b/src/imports/controls/Slider.qml index 37145cad..6e0fd24c 100644 --- a/src/imports/controls/Slider.qml +++ b/src/imports/controls/Slider.qml @@ -34,10 +34,10 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Controls 2.2 -import QtQuick.Controls.impl 2.2 -import QtQuick.Templates 2.2 as T +import QtQuick 2.10 +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Templates 2.3 as T T.Slider { id: control @@ -50,33 +50,34 @@ T.Slider { padding: 6 handle: Rectangle { - x: control.leftPadding + (horizontal ? control.visualPosition * (control.availableWidth - width) : (control.availableWidth - width) / 2) - y: control.topPadding + (horizontal ? (control.availableHeight - height) / 2 : control.visualPosition * (control.availableHeight - height)) + x: control.leftPadding + (control.horizontal ? control.visualPosition * (control.availableWidth - width) : (control.availableWidth - width) / 2) + y: control.topPadding + (control.horizontal ? (control.availableHeight - height) / 2 : control.visualPosition * (control.availableHeight - height)) implicitWidth: 28 implicitHeight: 28 radius: width / 2 - color: control.enabled ? (control.pressed - ? (control.visualFocus ? Default.focusPressedColor : Default.indicatorPressedColor) - : (control.visualFocus ? Default.focusLightColor : Default.backgroundColor)) : Default.indicatorDisabledColor + color: control.pressed ? control.palette.light : control.palette.window border.width: control.visualFocus ? 2 : 1 - border.color: control.enabled ? (control.visualFocus - ? Default.focusColor - : (control.pressed ? Default.indicatorFramePressedColor : Default.indicatorFrameColor)) : Default.indicatorFrameDisabledColor - - readonly property bool horizontal: control.orientation === Qt.Horizontal + border.color: control.visualFocus ? control.palette.highlight : control.enabled ? control.palette.mid : control.palette.midlight } background: Rectangle { - x: control.leftPadding + (horizontal ? 0 : (control.availableWidth - width) / 2) - y: control.topPadding + (horizontal ? (control.availableHeight - height) / 2 : 0) - implicitWidth: horizontal ? 200 : 6 - implicitHeight: horizontal ? 6 : 200 - width: horizontal ? control.availableWidth : implicitWidth - height: horizontal ? implicitHeight : control.availableHeight + x: control.leftPadding + (control.horizontal ? 0 : (control.availableWidth - width) / 2) + y: control.topPadding + (control.horizontal ? (control.availableHeight - height) / 2 : 0) + implicitWidth: control.horizontal ? 200 : 6 + implicitHeight: control.horizontal ? 6 : 200 + width: control.horizontal ? control.availableWidth : implicitWidth + height: control.horizontal ? implicitHeight : control.availableHeight radius: 3 - color: Default.buttonColor - scale: horizontal && control.mirrored ? -1 : 1 + color: control.palette.midlight + scale: control.horizontal && control.mirrored ? -1 : 1 + + Rectangle { + y: control.horizontal ? 0 : control.visualPosition * parent.height + width: control.horizontal ? control.position * parent.width : 6 + height: control.horizontal ? 6 : control.position * parent.height - readonly property bool horizontal: control.orientation === Qt.Horizontal + radius: 3 + color: control.palette.dark + } } } diff --git a/src/imports/controls/SpinBox.qml b/src/imports/controls/SpinBox.qml index 9aca4d7c..067507d8 100644 --- a/src/imports/controls/SpinBox.qml +++ b/src/imports/controls/SpinBox.qml @@ -34,10 +34,10 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Controls 2.2 -import QtQuick.Controls.impl 2.2 -import QtQuick.Templates 2.2 as T +import QtQuick 2.10 +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Templates 2.3 as T T.SpinBox { id: control @@ -65,12 +65,11 @@ T.SpinBox { contentItem: TextInput { z: 2 text: control.textFromValue(control.value, control.locale) - opacity: control.enabled ? 1 : 0.3 font: control.font - color: Default.textColor - selectionColor: Default.focusColor - selectedTextColor: Default.textLightColor + color: control.palette.text + selectionColor: control.palette.highlight + selectedTextColor: control.palette.highlightedText horizontalAlignment: Qt.AlignHCenter verticalAlignment: Qt.AlignVCenter @@ -85,7 +84,7 @@ T.SpinBox { height: control.height visible: control.activeFocus color: "transparent" - border.color: Default.focusColor + border.color: control.palette.highlight border.width: 2 } } @@ -95,21 +94,21 @@ T.SpinBox { height: parent.height implicitWidth: 40 implicitHeight: 40 - color: up.pressed ? Default.buttonPressedColor : Default.buttonColor + color: up.pressed ? control.palette.mid : control.palette.button Rectangle { x: (parent.width - width) / 2 y: (parent.height - height) / 2 width: parent.width / 3 height: 2 - color: enabled ? Default.textColor : Default.textDisabledColor + color: enabled ? control.palette.buttonText : control.palette.mid } Rectangle { x: (parent.width - width) / 2 y: (parent.height - height) / 2 width: 2 height: parent.width / 3 - color: enabled ? Default.textColor : Default.textDisabledColor + color: enabled ? control.palette.buttonText : control.palette.mid } } @@ -118,19 +117,20 @@ T.SpinBox { height: parent.height implicitWidth: 40 implicitHeight: 40 - color: down.pressed ? Default.buttonPressedColor : Default.buttonColor + color: down.pressed ? control.palette.mid : control.palette.button Rectangle { x: (parent.width - width) / 2 y: (parent.height - height) / 2 width: parent.width / 3 height: 2 - color: enabled ? Default.textColor : Default.textDisabledColor + color: enabled ? control.palette.buttonText : control.palette.mid } } background: Rectangle { implicitWidth: 140 - border.color: Default.buttonColor + color: enabled ? control.palette.base : control.palette.button + border.color: control.palette.button } } diff --git a/src/imports/controls/StackView.qml b/src/imports/controls/StackView.qml index 6d52aaed..166089bd 100644 --- a/src/imports/controls/StackView.qml +++ b/src/imports/controls/StackView.qml @@ -34,9 +34,9 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Controls 2.2 -import QtQuick.Templates 2.2 as T +import QtQuick 2.10 +import QtQuick.Controls 2.3 +import QtQuick.Templates 2.3 as T T.StackView { id: control diff --git a/src/imports/controls/SwipeDelegate.qml b/src/imports/controls/SwipeDelegate.qml index 2ddbea28..70c76f26 100644 --- a/src/imports/controls/SwipeDelegate.qml +++ b/src/imports/controls/SwipeDelegate.qml @@ -34,10 +34,10 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Controls 2.2 -import QtQuick.Controls.impl 2.2 -import QtQuick.Templates 2.2 as T +import QtQuick 2.10 +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Templates 2.3 as T T.SwipeDelegate { id: control @@ -52,22 +52,28 @@ T.SwipeDelegate { padding: 12 spacing: 12 + icon.width: 24 + icon.height: 24 + icon.color: control.palette.text + swipe.transition: Transition { SmoothedAnimation { velocity: 3; easing.type: Easing.InOutCubic } } - contentItem: Text { - leftPadding: control.mirrored ? (control.indicator ? control.indicator.width : 0) + control.spacing : 0 - rightPadding: !control.mirrored ? (control.indicator ? control.indicator.width : 0) + control.spacing : 0 + contentItem: IconLabel { + spacing: control.spacing + mirrored: control.mirrored + display: control.display + alignment: control.display === IconLabel.IconOnly || control.display === IconLabel.TextUnderIcon ? Qt.AlignCenter : Qt.AlignLeft + icon: control.icon text: control.text font: control.font - color: control.enabled ? Default.textDarkColor : Default.textDisabledColor - elide: Text.ElideRight - verticalAlignment: Text.AlignVCenter + color: control.palette.text } background: Rectangle { - color: control.visualFocus - ? (control.down ? Default.focusPressedColor : Default.delegateFocusColor) - : (control.down ? Default.delegatePressedColor : Default.backgroundColor) + implicitWidth: 100 + implicitHeight: 40 + color: Color.blend(control.down ? control.palette.midlight : control.palette.light, + control.palette.highlight, control.visualFocus ? 0.15 : 0.0) } } diff --git a/src/imports/controls/SwipeView.qml b/src/imports/controls/SwipeView.qml index 9f2d9ccb..41ab3147 100644 --- a/src/imports/controls/SwipeView.qml +++ b/src/imports/controls/SwipeView.qml @@ -34,9 +34,9 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Controls 2.2 -import QtQuick.Templates 2.2 as T +import QtQuick 2.10 +import QtQuick.Controls 2.3 +import QtQuick.Templates 2.3 as T T.SwipeView { id: control diff --git a/src/imports/controls/Switch.qml b/src/imports/controls/Switch.qml index 030cdfa0..71317967 100644 --- a/src/imports/controls/Switch.qml +++ b/src/imports/controls/Switch.qml @@ -34,10 +34,10 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls 2.2 -import QtQuick.Controls.impl 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 T.Switch { id: control @@ -52,20 +52,42 @@ T.Switch { padding: 6 spacing: 6 - indicator: SwitchIndicator { + indicator: PaddedRectangle { + implicitWidth: 56 + implicitHeight: 28 + x: text ? (control.mirrored ? control.width - width - control.rightPadding : control.leftPadding) : control.leftPadding + (control.availableWidth - width) / 2 y: control.topPadding + (control.availableHeight - height) / 2 - control: control + + radius: 8 + leftPadding: 0 + rightPadding: 0 + padding: (height - 16) / 2 + color: control.checked ? control.palette.dark : control.palette.midlight + + Rectangle { + x: Math.max(0, Math.min(parent.width - width, control.visualPosition * parent.width - (width / 2))) + y: (parent.height - height) / 2 + width: 28 + height: 28 + radius: 16 + color: control.down ? control.palette.light : control.palette.window + border.width: control.visualFocus ? 2 : 1 + border.color: control.visualFocus ? control.palette.highlight : control.enabled ? control.palette.mid : control.palette.midlight + + Behavior on x { + enabled: !control.down + SmoothedAnimation { velocity: 200 } + } + } } - contentItem: Text { + contentItem: CheckLabel { leftPadding: control.indicator && !control.mirrored ? control.indicator.width + control.spacing : 0 rightPadding: control.indicator && control.mirrored ? control.indicator.width + control.spacing : 0 text: control.text font: control.font - color: control.enabled ? Default.textDarkColor : Default.textDisabledColor - elide: Text.ElideRight - verticalAlignment: Text.AlignVCenter + color: control.palette.windowText } } diff --git a/src/imports/controls/SwitchDelegate.qml b/src/imports/controls/SwitchDelegate.qml index 49e0fad2..08a9d641 100644 --- a/src/imports/controls/SwitchDelegate.qml +++ b/src/imports/controls/SwitchDelegate.qml @@ -34,10 +34,10 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls 2.2 -import QtQuick.Controls.impl 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 T.SwitchDelegate { id: control @@ -52,27 +52,59 @@ T.SwitchDelegate { padding: 12 spacing: 12 - indicator: SwitchIndicator { + icon.width: 24 + icon.height: 24 + icon.color: control.palette.text + + indicator: PaddedRectangle { + implicitWidth: 56 + implicitHeight: 28 + x: text ? (control.mirrored ? control.leftPadding : control.width - width - control.rightPadding) : control.leftPadding + (control.availableWidth - width) / 2 y: control.topPadding + (control.availableHeight - height) / 2 - control: control + + radius: 8 + leftPadding: 0 + rightPadding: 0 + padding: (height - 16) / 2 + color: control.checked ? control.palette.dark : control.palette.midlight + + Rectangle { + x: Math.max(0, Math.min(parent.width - width, control.visualPosition * parent.width - (width / 2))) + y: (parent.height - height) / 2 + width: 28 + height: 28 + radius: 16 + color: control.down ? control.palette.light : control.palette.window + border.width: control.visualFocus ? 2 : 1 + border.color: control.visualFocus ? control.palette.highlight : control.enabled ? control.palette.mid : control.palette.midlight + + Behavior on x { + enabled: !control.down + SmoothedAnimation { velocity: 200 } + } + } } - contentItem: Text { - leftPadding: control.indicator && !control.mirrored ? 0 : control.indicator.width + control.spacing - rightPadding: control.indicator && control.mirrored ? 0 : control.indicator.width + control.spacing + contentItem: IconLabel { + leftPadding: control.mirrored ? control.indicator.width + control.spacing : 0 + rightPadding: !control.mirrored ? control.indicator.width + control.spacing : 0 + + spacing: control.spacing + mirrored: control.mirrored + display: control.display + alignment: control.display === IconLabel.IconOnly || control.display === IconLabel.TextUnderIcon ? Qt.AlignCenter : Qt.AlignLeft + icon: control.icon text: control.text font: control.font - color: control.enabled ? Default.textDarkColor : Default.textDisabledColor - elide: Text.ElideRight - verticalAlignment: Text.AlignVCenter + color: control.palette.text } background: Rectangle { implicitWidth: 100 implicitHeight: 40 visible: control.down || control.highlighted - color: control.down ? Default.delegatePressedColor : Default.delegateColor + color: control.down ? control.palette.midlight : control.palette.light } } diff --git a/src/imports/controls/TabBar.qml b/src/imports/controls/TabBar.qml index 6e6b7d74..ed2382d3 100644 --- a/src/imports/controls/TabBar.qml +++ b/src/imports/controls/TabBar.qml @@ -34,8 +34,8 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T T.TabBar { id: control @@ -46,7 +46,6 @@ T.TabBar { contentHeight + topPadding + bottomPadding) spacing: 1 - contentHeight: 40 contentItem: ListView { model: control.contentModel @@ -64,5 +63,7 @@ T.TabBar { preferredHighlightEnd: width - 40 } - background: Rectangle { } + background: Rectangle { + color: control.palette.window + } } diff --git a/src/imports/controls/TabButton.qml b/src/imports/controls/TabButton.qml index acdda056..a6671c04 100644 --- a/src/imports/controls/TabButton.qml +++ b/src/imports/controls/TabButton.qml @@ -34,10 +34,10 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Controls 2.2 -import QtQuick.Controls.impl 2.2 -import QtQuick.Templates 2.2 as T +import QtQuick 2.10 +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Templates 2.3 as T T.TabButton { id: control @@ -49,21 +49,26 @@ T.TabButton { baselineOffset: contentItem.y + contentItem.baselineOffset padding: 6 + spacing: 6 - contentItem: Text { + icon.width: 24 + icon.height: 24 + icon.color: checked ? control.palette.windowText : control.palette.brightText + + contentItem: IconLabel { + spacing: control.spacing + mirrored: control.mirrored + display: control.display + + icon: control.icon text: control.text font: control.font - elide: Text.ElideRight - opacity: enabled ? 1 : 0.3 - color: !control.checked ? Default.textLightColor : control.down ? Default.textDarkColor : Default.textColor - horizontalAlignment: Text.AlignHCenter - verticalAlignment: Text.AlignVCenter + color: checked ? control.palette.windowText : control.palette.brightText } background: Rectangle { implicitHeight: 40 - color: control.down - ? (control.checked ? Default.tabButtonCheckedPressedColor : Default.tabButtonPressedColor) - : (control.checked ? "transparent" : Default.tabButtonColor) + color: Color.blend(control.checked ? control.palette.window : control.palette.dark, + control.palette.mid, control.down ? 0.5 : 0.0) } } diff --git a/src/imports/controls/TextArea.qml b/src/imports/controls/TextArea.qml index ed83fb7d..2bda4ca9 100644 --- a/src/imports/controls/TextArea.qml +++ b/src/imports/controls/TextArea.qml @@ -34,10 +34,10 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Controls 2.2 -import QtQuick.Controls.impl 2.2 -import QtQuick.Templates 2.2 as T +import QtQuick 2.10 +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Templates 2.3 as T T.TextArea { id: control @@ -52,9 +52,9 @@ T.TextArea { padding: 6 leftPadding: padding + 4 - color: enabled ? Default.textColor : Default.textDisabledLightColor - selectionColor: Default.textSelectionColor - selectedTextColor: color + color: control.palette.text + selectionColor: control.palette.highlight + selectedTextColor: control.palette.highlightedText PlaceholderText { id: placeholder @@ -65,7 +65,8 @@ T.TextArea { text: control.placeholderText font: control.font - color: enabled ? Default.textPlaceholderColor : Default.textDisabledColor + opacity: 0.5 + color: control.color verticalAlignment: control.verticalAlignment visible: !control.length && !control.preeditText && (!control.activeFocus || control.horizontalAlignment !== Qt.AlignHCenter) elide: Text.ElideRight diff --git a/src/imports/controls/TextField.qml b/src/imports/controls/TextField.qml index 31336029..cbecd198 100644 --- a/src/imports/controls/TextField.qml +++ b/src/imports/controls/TextField.qml @@ -34,10 +34,10 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Controls 2.2 -import QtQuick.Controls.impl 2.2 -import QtQuick.Templates 2.2 as T +import QtQuick 2.10 +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Templates 2.3 as T T.TextField { id: control @@ -52,9 +52,9 @@ T.TextField { padding: 6 leftPadding: padding + 4 - color: enabled ? Default.textColor : Default.textDisabledColor - selectionColor: Default.textSelectionColor - selectedTextColor: color + color: control.palette.text + selectionColor: control.palette.highlight + selectedTextColor: control.palette.highlightedText verticalAlignment: TextInput.AlignVCenter PlaceholderText { @@ -66,7 +66,8 @@ T.TextField { text: control.placeholderText font: control.font - color: enabled ? Default.textPlaceholderColor : Default.textDisabledColor + opacity: 0.5 + color: control.color verticalAlignment: control.verticalAlignment visible: !control.length && !control.preeditText && (!control.activeFocus || control.horizontalAlignment !== Qt.AlignHCenter) elide: Text.ElideRight @@ -76,7 +77,7 @@ T.TextField { implicitWidth: 200 implicitHeight: 40 border.width: control.activeFocus ? 2 : 1 - color: control.enabled ? Default.backgroundColor : Default.indicatorFrameDisabledColor - border.color: control.activeFocus ? Default.focusColor : (control.enabled ? Default.disabledLightColor : "transparent") + color: control.palette.base + border.color: control.activeFocus ? control.palette.highlight : control.palette.mid } } diff --git a/src/imports/controls/ToolBar.qml b/src/imports/controls/ToolBar.qml index e3d4fec3..cd1bbdc3 100644 --- a/src/imports/controls/ToolBar.qml +++ b/src/imports/controls/ToolBar.qml @@ -34,10 +34,10 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Controls 2.2 -import QtQuick.Controls.impl 2.2 -import QtQuick.Templates 2.2 as T +import QtQuick 2.10 +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Templates 2.3 as T T.ToolBar { id: control @@ -50,6 +50,6 @@ T.ToolBar { background: Rectangle { implicitHeight: 40 - color: Default.delegateColor + color: control.palette.button } } diff --git a/src/imports/controls/ToolButton.qml b/src/imports/controls/ToolButton.qml index 6199607a..511bd6eb 100644 --- a/src/imports/controls/ToolButton.qml +++ b/src/imports/controls/ToolButton.qml @@ -34,10 +34,10 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Controls 2.2 -import QtQuick.Controls.impl 2.2 -import QtQuick.Templates 2.2 as T +import QtQuick 2.10 +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Templates 2.3 as T T.ToolButton { id: control @@ -49,22 +49,28 @@ T.ToolButton { baselineOffset: contentItem.y + contentItem.baselineOffset padding: 6 + spacing: 6 - contentItem: Text { + icon.width: 24 + icon.height: 24 + icon.color: visualFocus ? control.palette.highlight : control.palette.buttonText + + contentItem: IconLabel { + spacing: control.spacing + mirrored: control.mirrored + display: control.display + + icon: control.icon text: control.text font: control.font - color: control.enabled ? (control.visualFocus ? Default.focusColor : Default.textDarkColor) : Default.textDisabledLightColor - elide: Text.ElideRight - horizontalAlignment: Text.AlignHCenter - verticalAlignment: Text.AlignVCenter + color: control.visualFocus ? control.palette.highlight : control.palette.buttonText } background: Rectangle { implicitWidth: 40 implicitHeight: 40 - color: Qt.darker(Default.toolButtonColor, control.enabled && (control.checked || control.highlighted) ? 1.5 : 1.0) - opacity: control.down ? 1.0 : control.enabled && (control.checked || control.highlighted) ? 0.5 : 0 - visible: control.down || (control.enabled && (control.checked || control.highlighted)) + opacity: control.down ? 1.0 : 0.5 + color: control.down || control.checked || control.highlighted ? control.palette.mid : control.palette.button } } diff --git a/src/imports/controls/ToolSeparator.qml b/src/imports/controls/ToolSeparator.qml index 3c588558..1a99953d 100644 --- a/src/imports/controls/ToolSeparator.qml +++ b/src/imports/controls/ToolSeparator.qml @@ -34,10 +34,10 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Controls 2.2 -import QtQuick.Controls.impl 2.2 -import QtQuick.Templates 2.2 as T +import QtQuick 2.10 +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Templates 2.3 as T T.ToolSeparator { id: control @@ -52,6 +52,6 @@ T.ToolSeparator { contentItem: Rectangle { implicitWidth: vertical ? 1 : 30 implicitHeight: vertical ? 30 : 1 - color: Default.separatorColor + color: control.palette.mid } } diff --git a/src/imports/controls/ToolTip.qml b/src/imports/controls/ToolTip.qml index 587fc042..7682c07e 100644 --- a/src/imports/controls/ToolTip.qml +++ b/src/imports/controls/ToolTip.qml @@ -34,10 +34,10 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Controls 2.2 -import QtQuick.Controls.impl 2.2 -import QtQuick.Templates 2.2 as T +import QtQuick 2.10 +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Templates 2.3 as T T.ToolTip { id: control @@ -58,10 +58,12 @@ T.ToolTip { contentItem: Text { text: control.text font: control.font + color: control.palette.toolTipText // TODO: wrapMode: Label.Wrap } background: Rectangle { - border.color: Default.frameDarkColor + border.color: control.palette.dark + color: control.palette.toolTipBase } } diff --git a/src/imports/controls/Tumbler.qml b/src/imports/controls/Tumbler.qml index 15ad876d..eb912553 100644 --- a/src/imports/controls/Tumbler.qml +++ b/src/imports/controls/Tumbler.qml @@ -34,10 +34,10 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Controls 2.2 -import QtQuick.Controls.impl 2.2 -import QtQuick.Templates 2.2 as T +import QtQuick 2.10 +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Templates 2.3 as T T.Tumbler { id: control @@ -46,9 +46,9 @@ T.Tumbler { delegate: Text { text: modelData - color: control.visualFocus ? Default.focusColor : Default.textDarkColor + color: control.visualFocus ? control.palette.highlight : control.palette.text font: control.font - opacity: (1.0 - Math.abs(Tumbler.displacement) / (control.visibleItemCount / 2)) * (control.enabled ? 1 : 0.6) + opacity: 1.0 - Math.abs(Tumbler.displacement) / (control.visibleItemCount / 2) horizontalAlignment: Text.AlignHCenter verticalAlignment: Text.AlignVCenter } diff --git a/src/imports/controls/controls.pri b/src/imports/controls/controls.pri index d7aedb4a..7840f6bf 100644 --- a/src/imports/controls/controls.pri +++ b/src/imports/controls/controls.pri @@ -1,24 +1,27 @@ HEADERS += \ - $$PWD/qquickdialring_p.h \ $$PWD/qquickdefaultbusyindicator_p.h \ + $$PWD/qquickdefaultdial_p.h \ $$PWD/qquickdefaultprogressbar_p.h \ - $$PWD/qquickdefaultstyle_p.h + $$PWD/qquickdefaultstyle_p.h \ + $$PWD/qquickdefaulttheme_p.h SOURCES += \ - $$PWD/qquickdialring.cpp \ $$PWD/qquickdefaultbusyindicator.cpp \ + $$PWD/qquickdefaultdial.cpp \ $$PWD/qquickdefaultprogressbar.cpp \ - $$PWD/qquickdefaultstyle.cpp + $$PWD/qquickdefaultstyle.cpp \ + $$PWD/qquickdefaulttheme.cpp QML_CONTROLS = \ $$PWD/AbstractButton.qml \ + $$PWD/Action.qml \ + $$PWD/ActionGroup.qml \ $$PWD/ApplicationWindow.qml \ $$PWD/BusyIndicator.qml \ $$PWD/Button.qml \ $$PWD/ButtonGroup.qml \ $$PWD/CheckBox.qml \ $$PWD/CheckDelegate.qml \ - $$PWD/CheckIndicator.qml \ $$PWD/ComboBox.qml \ $$PWD/Container.qml \ $$PWD/Control.qml \ @@ -32,6 +35,8 @@ QML_CONTROLS = \ $$PWD/ItemDelegate.qml \ $$PWD/Label.qml \ $$PWD/Menu.qml \ + $$PWD/MenuBar.qml \ + $$PWD/MenuBarItem.qml \ $$PWD/MenuItem.qml \ $$PWD/MenuSeparator.qml \ $$PWD/Page.qml \ @@ -41,7 +46,6 @@ QML_CONTROLS = \ $$PWD/ProgressBar.qml \ $$PWD/RadioButton.qml \ $$PWD/RadioDelegate.qml \ - $$PWD/RadioIndicator.qml \ $$PWD/RangeSlider.qml \ $$PWD/RoundButton.qml \ $$PWD/ScrollBar.qml \ @@ -52,7 +56,6 @@ QML_CONTROLS = \ $$PWD/StackView.qml \ $$PWD/SwipeDelegate.qml \ $$PWD/Switch.qml \ - $$PWD/SwitchIndicator.qml \ $$PWD/SwitchDelegate.qml \ $$PWD/SwipeView.qml \ $$PWD/TabBar.qml \ diff --git a/src/imports/controls/controls.pro b/src/imports/controls/controls.pro index 8024bbf8..b75e4f56 100644 --- a/src/imports/controls/controls.pro +++ b/src/imports/controls/controls.pro @@ -1,6 +1,6 @@ TARGET = qtquickcontrols2plugin TARGETPATH = QtQuick/Controls.2 -IMPORT_VERSION = 2.2 +IMPORT_VERSION = 2.3 QT += qml quick QT_PRIVATE += core-private gui-private qml-private quick-private quicktemplates2-private quickcontrols2-private diff --git a/src/imports/controls/dependencies.json b/src/imports/controls/dependencies.json index 4c9cfcd3..8cec519e 100644 --- a/src/imports/controls/dependencies.json +++ b/src/imports/controls/dependencies.json @@ -12,6 +12,6 @@ { "name": "QtQuick.Templates", "type": "module", - "version": "2.2" + "version": "2.3" } ] diff --git a/src/imports/controls/doc/images/qtquickcontrols2-applicationwindow-wireframe.png b/src/imports/controls/doc/images/qtquickcontrols2-applicationwindow-wireframe.png Binary files differindex d9c8b261..522713bc 100644 --- a/src/imports/controls/doc/images/qtquickcontrols2-applicationwindow-wireframe.png +++ b/src/imports/controls/doc/images/qtquickcontrols2-applicationwindow-wireframe.png diff --git a/src/imports/controls/doc/images/qtquickcontrols2-button-icononly.png b/src/imports/controls/doc/images/qtquickcontrols2-button-icononly.png Binary files differnew file mode 100644 index 00000000..91a21d17 --- /dev/null +++ b/src/imports/controls/doc/images/qtquickcontrols2-button-icononly.png diff --git a/src/imports/controls/doc/images/qtquickcontrols2-button-textbesideicon.png b/src/imports/controls/doc/images/qtquickcontrols2-button-textbesideicon.png Binary files differnew file mode 100644 index 00000000..1d46133f --- /dev/null +++ b/src/imports/controls/doc/images/qtquickcontrols2-button-textbesideicon.png diff --git a/src/imports/controls/doc/images/qtquickcontrols2-button-textonly.png b/src/imports/controls/doc/images/qtquickcontrols2-button-textonly.png Binary files differnew file mode 100644 index 00000000..4449e748 --- /dev/null +++ b/src/imports/controls/doc/images/qtquickcontrols2-button-textonly.png diff --git a/src/imports/controls/doc/images/qtquickcontrols2-fusion-palettes.png b/src/imports/controls/doc/images/qtquickcontrols2-fusion-palettes.png Binary files differnew file mode 100644 index 00000000..d649e137 --- /dev/null +++ b/src/imports/controls/doc/images/qtquickcontrols2-fusion-palettes.png diff --git a/src/imports/controls/doc/images/qtquickcontrols2-fusion-thumbnail.png b/src/imports/controls/doc/images/qtquickcontrols2-fusion-thumbnail.png Binary files differnew file mode 100644 index 00000000..d15fe970 --- /dev/null +++ b/src/imports/controls/doc/images/qtquickcontrols2-fusion-thumbnail.png diff --git a/src/imports/controls/doc/images/qtquickcontrols2-fusion-violet.png b/src/imports/controls/doc/images/qtquickcontrols2-fusion-violet.png Binary files differnew file mode 100644 index 00000000..4186a78f --- /dev/null +++ b/src/imports/controls/doc/images/qtquickcontrols2-fusion-violet.png diff --git a/src/imports/controls/doc/images/qtquickcontrols2-fusion.png b/src/imports/controls/doc/images/qtquickcontrols2-fusion.png Binary files differnew file mode 100644 index 00000000..037069b5 --- /dev/null +++ b/src/imports/controls/doc/images/qtquickcontrols2-fusion.png diff --git a/src/imports/controls/doc/images/qtquickcontrols2-imagine-9-patch-4x.png b/src/imports/controls/doc/images/qtquickcontrols2-imagine-9-patch-4x.png Binary files differnew file mode 100644 index 00000000..426a72c4 --- /dev/null +++ b/src/imports/controls/doc/images/qtquickcontrols2-imagine-9-patch-4x.png diff --git a/src/imports/controls/doc/images/qtquickcontrols2-imagine-9-patch-inset-boundaries.png b/src/imports/controls/doc/images/qtquickcontrols2-imagine-9-patch-inset-boundaries.png Binary files differnew file mode 100644 index 00000000..af078f9e --- /dev/null +++ b/src/imports/controls/doc/images/qtquickcontrols2-imagine-9-patch-inset-boundaries.png diff --git a/src/imports/controls/doc/images/qtquickcontrols2-imagine-9-patch-inset.png b/src/imports/controls/doc/images/qtquickcontrols2-imagine-9-patch-inset.png Binary files differnew file mode 100644 index 00000000..2f55b854 --- /dev/null +++ b/src/imports/controls/doc/images/qtquickcontrols2-imagine-9-patch-inset.png diff --git a/src/imports/controls/doc/images/qtquickcontrols2-imagine-9-patch-resized-padding.png b/src/imports/controls/doc/images/qtquickcontrols2-imagine-9-patch-resized-padding.png Binary files differnew file mode 100644 index 00000000..003cb73d --- /dev/null +++ b/src/imports/controls/doc/images/qtquickcontrols2-imagine-9-patch-resized-padding.png diff --git a/src/imports/controls/doc/images/qtquickcontrols2-imagine-9-patch-resized-stretchable.png b/src/imports/controls/doc/images/qtquickcontrols2-imagine-9-patch-resized-stretchable.png Binary files differnew file mode 100644 index 00000000..be3d8daa --- /dev/null +++ b/src/imports/controls/doc/images/qtquickcontrols2-imagine-9-patch-resized-stretchable.png diff --git a/src/imports/controls/doc/images/qtquickcontrols2-imagine-9-patch-size.png b/src/imports/controls/doc/images/qtquickcontrols2-imagine-9-patch-size.png Binary files differnew file mode 100644 index 00000000..5cc76d89 --- /dev/null +++ b/src/imports/controls/doc/images/qtquickcontrols2-imagine-9-patch-size.png diff --git a/src/imports/controls/doc/images/qtquickcontrols2-imagine-9-patch.svgz b/src/imports/controls/doc/images/qtquickcontrols2-imagine-9-patch.svgz Binary files differnew file mode 100644 index 00000000..5a1a1094 --- /dev/null +++ b/src/imports/controls/doc/images/qtquickcontrols2-imagine-9-patch.svgz diff --git a/src/imports/controls/doc/images/qtquickcontrols2-imagine-customization-dark.png b/src/imports/controls/doc/images/qtquickcontrols2-imagine-customization-dark.png Binary files differnew file mode 100644 index 00000000..d114d2cd --- /dev/null +++ b/src/imports/controls/doc/images/qtquickcontrols2-imagine-customization-dark.png diff --git a/src/imports/controls/doc/images/qtquickcontrols2-imagine-customization.svgz b/src/imports/controls/doc/images/qtquickcontrols2-imagine-customization.svgz Binary files differnew file mode 100644 index 00000000..fb830563 --- /dev/null +++ b/src/imports/controls/doc/images/qtquickcontrols2-imagine-customization.svgz diff --git a/src/imports/controls/doc/images/qtquickcontrols2-imagine-thumbnail.png b/src/imports/controls/doc/images/qtquickcontrols2-imagine-thumbnail.png Binary files differnew file mode 100644 index 00000000..b949ab7c --- /dev/null +++ b/src/imports/controls/doc/images/qtquickcontrols2-imagine-thumbnail.png diff --git a/src/imports/controls/doc/images/qtquickcontrols2-imagine.png b/src/imports/controls/doc/images/qtquickcontrols2-imagine.png Binary files differnew file mode 100644 index 00000000..1cf7a0f2 --- /dev/null +++ b/src/imports/controls/doc/images/qtquickcontrols2-imagine.png diff --git a/src/imports/controls/doc/images/qtquickcontrols2-menu-custom.png b/src/imports/controls/doc/images/qtquickcontrols2-menu-custom.png Binary files differindex 7121fd0a..b631d871 100644 --- a/src/imports/controls/doc/images/qtquickcontrols2-menu-custom.png +++ b/src/imports/controls/doc/images/qtquickcontrols2-menu-custom.png diff --git a/src/imports/controls/doc/images/qtquickcontrols2-menubar-custom.png b/src/imports/controls/doc/images/qtquickcontrols2-menubar-custom.png Binary files differnew file mode 100644 index 00000000..3903e31d --- /dev/null +++ b/src/imports/controls/doc/images/qtquickcontrols2-menubar-custom.png diff --git a/src/imports/controls/doc/images/qtquickcontrols2-menubar.png b/src/imports/controls/doc/images/qtquickcontrols2-menubar.png Binary files differnew file mode 100644 index 00000000..94e3676f --- /dev/null +++ b/src/imports/controls/doc/images/qtquickcontrols2-menubar.png diff --git a/src/imports/controls/doc/images/qtquickcontrols2-styles.png b/src/imports/controls/doc/images/qtquickcontrols2-styles.png Binary files differindex aae046fd..39626e50 100644 --- a/src/imports/controls/doc/images/qtquickcontrols2-styles.png +++ b/src/imports/controls/doc/images/qtquickcontrols2-styles.png diff --git a/src/imports/controls/doc/manifest-meta.qdocconf b/src/imports/controls/doc/manifest-meta.qdocconf new file mode 100644 index 00000000..3d39e0a1 --- /dev/null +++ b/src/imports/controls/doc/manifest-meta.qdocconf @@ -0,0 +1,35 @@ +# Additional meta information (attributes for matched entries, as well as tags) +# to be added to manifest.xml files. +# +# manifestmeta.filters = <filter1>,<filter2>,... +# +# manifestmeta.<filter>.names = <Module1>/<name1>,<Module2>/<name2>,.. +# manifestmeta.<filter>.attributes = <attribute1:value1>,<attribute2:value2>,.. +# manifestmeta.<filter>.tags = <tag1>,<tag2>,.. +# +# <filter>.names specify all the module/name combinations to apply the +# attributes/tags to. You can use simple wildcard matching by appending +# '*' at the end of name. +# +# Note: You cannot use operators (+, =, -) in the names. +# +# Examples: add a 'isHighlighted' attribute for two 'Analog Clock' examples, +# add a 'database' tag for QtSql examples, and a 'qt5' tag for all examples +# +# manifestmeta.filters = highlighted sql global +# +# manifestmeta.highlighted.names = "QtGui/Analog Clock Window Example" \ +# "QtWidgets/Analog Clock Example" +# manifestmeta.highlighted.attributes = isHighlighted:true +# +# manifestmeta.sql.names = "QtSql/*" +# manifestmeta.sql.tags = database +# +# manifestmeta.global.names = * +# manifestmeta.global.tags = qt5 + +manifestmeta.highlighted.names = "QtQuickControls2/Qt Quick Controls 2 - Gallery" \ + "QtQuickControls2/Qt Quick Controls 2 - Wearable Demo" \ + "QtQuickControls2/Qt Quick Controls 2 - Text Editor" \ + "QtQuickControls2/Qt Quick Controls 2 - Contact List" \ + "QtQuickControls2/Qt Quick Controls 2 - Side Panel" diff --git a/src/imports/controls/doc/qtquickcontrols2.qdocconf b/src/imports/controls/doc/qtquickcontrols2.qdocconf index 7f05247e..da5b7e38 100644 --- a/src/imports/controls/doc/qtquickcontrols2.qdocconf +++ b/src/imports/controls/doc/qtquickcontrols2.qdocconf @@ -1,4 +1,5 @@ include($QT_INSTALL_DOCS/global/qt-module-defaults.qdocconf) +include(manifest-meta.qdocconf) project = QtQuickControls2 description = Qt Quick Controls 2 Reference Documentation @@ -48,7 +49,8 @@ sourcedirs += ../../../quicktemplates2 \ ../../templates/doc/src \ src -imagedirs += images +imagedirs += images \ + .. navigation.landingpage = "Qt Quick Controls 2" navigation.qmltypespage = "Qt Quick Controls 2 QML Types" diff --git a/src/imports/controls/doc/snippets/qtquickcontrols2-action.qml b/src/imports/controls/doc/snippets/qtquickcontrols2-action.qml new file mode 100644 index 00000000..1913e131 --- /dev/null +++ b/src/imports/controls/doc/snippets/qtquickcontrols2-action.qml @@ -0,0 +1,56 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the documentation of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:FDL$ +** 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 Free Documentation License Usage +** Alternatively, this file may be used under the terms of the GNU Free +** Documentation License version 1.3 as published by the Free Software +** Foundation and appearing in the file included in the packaging of +** this file. Please review the following information to ensure +** the GNU Free Documentation License version 1.3 requirements +** will be met: https://www.gnu.org/licenses/fdl-1.3.html. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Controls 2.3 + +Item { + //! [action] + Action { + id: copyAction + text: qsTr("&Copy") + icon.name: "edit-copy" + shortcut: StandardKey.Copy + onTriggered: window.activeFocusItem.copy() + } + //! [action] + + //! [toolbutton] + ToolButton { + id: toolButton + action: copyAction + } + //! [toolbutton] + + //! [menuitem] + MenuItem { + id: menuItem + action: copyAction + text: qsTr("&Copy selected Text") + } + //! [menuitem] +} diff --git a/src/imports/controls/doc/snippets/qtquickcontrols2-button-icononly.qml b/src/imports/controls/doc/snippets/qtquickcontrols2-button-icononly.qml new file mode 100644 index 00000000..32b0797a --- /dev/null +++ b/src/imports/controls/doc/snippets/qtquickcontrols2-button-icononly.qml @@ -0,0 +1,34 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the documentation of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:FDL$ +** 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 Free Documentation License Usage +** Alternatively, this file may be used under the terms of the GNU Free +** Documentation License version 1.3 as published by the Free Software +** Foundation and appearing in the file included in the packaging of +** this file. Please review the following information to ensure +** the GNU Free Documentation License version 1.3 requirements +** will be met: https://www.gnu.org/licenses/fdl-1.3.html. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Controls 2.3 + +Button { + icon.source: "qrc:/qt-project.org/imports/QtQuick/Controls.2/images/check.png" + display: Button.IconOnly +} diff --git a/src/imports/controls/doc/snippets/qtquickcontrols2-button-textbesideicon.qml b/src/imports/controls/doc/snippets/qtquickcontrols2-button-textbesideicon.qml new file mode 100644 index 00000000..870da262 --- /dev/null +++ b/src/imports/controls/doc/snippets/qtquickcontrols2-button-textbesideicon.qml @@ -0,0 +1,35 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the documentation of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:FDL$ +** 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 Free Documentation License Usage +** Alternatively, this file may be used under the terms of the GNU Free +** Documentation License version 1.3 as published by the Free Software +** Foundation and appearing in the file included in the packaging of +** this file. Please review the following information to ensure +** the GNU Free Documentation License version 1.3 requirements +** will be met: https://www.gnu.org/licenses/fdl-1.3.html. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Controls 2.3 + +Button { + text: "Button" + icon.source: "qrc:/qt-project.org/imports/QtQuick/Controls.2/images/check.png" + display: Button.TextBesideIcon +} diff --git a/src/imports/controls/doc/snippets/qtquickcontrols2-button-textonly.qml b/src/imports/controls/doc/snippets/qtquickcontrols2-button-textonly.qml new file mode 100644 index 00000000..fe871639 --- /dev/null +++ b/src/imports/controls/doc/snippets/qtquickcontrols2-button-textonly.qml @@ -0,0 +1,34 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the documentation of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:FDL$ +** 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 Free Documentation License Usage +** Alternatively, this file may be used under the terms of the GNU Free +** Documentation License version 1.3 as published by the Free Software +** Foundation and appearing in the file included in the packaging of +** this file. Please review the following information to ensure +** the GNU Free Documentation License version 1.3 requirements +** will be met: https://www.gnu.org/licenses/fdl-1.3.html. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Controls 2.3 + +Button { + text: "Button" + display: Button.TextOnly +} diff --git a/src/imports/controls/doc/snippets/qtquickcontrols2-menu-custom.qml b/src/imports/controls/doc/snippets/qtquickcontrols2-menu-custom.qml index 7298b4d3..2d05b74a 100644 --- a/src/imports/controls/doc/snippets/qtquickcontrols2-menu-custom.qml +++ b/src/imports/controls/doc/snippets/qtquickcontrols2-menu-custom.qml @@ -25,36 +25,109 @@ ** ****************************************************************************/ -//! [file] -import QtQuick 2.6 -import QtQuick.Controls 2.1 +import QtQuick 2.10 +import QtQuick.Controls 2.3 -Item { +ApplicationWindow { id: window - width: menu.contentItem.width - height: menu.contentItem.height + width: menu.width + height: menu.height visible: true + Component.onCompleted: menu.popup(menu.itemAt(1)) + // Indent it like this so that the indenting in the generated doc is normal. Menu { id: menu - contentItem.parent: window - background: Rectangle { - implicitWidth: 200 - implicitHeight: 200 - color: "#ffffff" - border.color: "#353637" + + Action { text: qsTr("Tool Bar"); checkable: true } + Action { text: qsTr("Side Bar"); checkable: true; checked: true } + Action { text: qsTr("Status Bar"); checkable: true; checked: true } + + MenuSeparator { + contentItem: Rectangle { + implicitWidth: 200 + implicitHeight: 1 + color: "#21be2b" + } } - MenuItem { - text: qsTr("New...") + Menu { + title: qsTr("Advanced") + // ... } - MenuItem { - text: qsTr("Open...") + + topPadding: 2 + bottomPadding: 2 + + delegate: MenuItem { + id: menuItem + implicitWidth: 200 + implicitHeight: 40 + + arrow: Canvas { + x: parent.width - width + implicitWidth: 40 + implicitHeight: 40 + visible: menuItem.subMenu + onPaint: { + var ctx = getContext("2d") + ctx.fillStyle = menuItem.highlighted ? "#ffffff" : "#21be2b" + ctx.moveTo(15, 15) + ctx.lineTo(width - 15, height / 2) + ctx.lineTo(15, height - 15) + ctx.closePath() + ctx.fill() + } + } + + indicator: Item { + implicitWidth: 40 + implicitHeight: 40 + Rectangle { + width: 26 + height: 26 + anchors.centerIn: parent + visible: menuItem.checkable + border.color: "#21be2b" + radius: 3 + Rectangle { + width: 14 + height: 14 + anchors.centerIn: parent + visible: menuItem.checked + color: "#21be2b" + radius: 2 + } + } + } + + contentItem: Text { + leftPadding: menuItem.indicator.width + rightPadding: menuItem.arrow.width + text: menuItem.text + font: menuItem.font + opacity: enabled ? 1.0 : 0.3 + color: menuItem.highlighted ? "#ffffff" : "#21be2b" + horizontalAlignment: Text.AlignLeft + verticalAlignment: Text.AlignVCenter + elide: Text.ElideRight + } + + background: Rectangle { + implicitWidth: 200 + implicitHeight: 40 + opacity: enabled ? 1 : 0.3 + color: menuItem.highlighted ? "#21be2b" : "transparent" + } } - MenuItem { - text: qsTr("Save") + + background: Rectangle { + implicitWidth: 200 + implicitHeight: 40 + color: "#ffffff" + border.color: "#21be2b" + radius: 2 } } -} -//! [file] +} //! [eof] diff --git a/src/imports/controls/doc/snippets/qtquickcontrols2-menubar-custom.qml b/src/imports/controls/doc/snippets/qtquickcontrols2-menubar-custom.qml new file mode 100644 index 00000000..513ad440 --- /dev/null +++ b/src/imports/controls/doc/snippets/qtquickcontrols2-menubar-custom.qml @@ -0,0 +1,84 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the documentation of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:FDL$ +** 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 Free Documentation License Usage +** Alternatively, this file may be used under the terms of the GNU Free +** Documentation License version 1.3 as published by the Free Software +** Foundation and appearing in the file included in the packaging of +** this file. Please review the following information to ensure +** the GNU Free Documentation License version 1.3 requirements +** will be met: https://www.gnu.org/licenses/fdl-1.3.html. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Controls 2.3 + +ApplicationWindow { + id: window + visible: true + width: menuBar.implicitWidth + height: menuBar.height + + Component.onCompleted: menuBar.itemAt(1).highlighted = true + + header: + +// Indent it like this so that the indenting in the generated doc is normal. +MenuBar { + id: menuBar + + Menu { title: qsTr("File") } + Menu { title: qsTr("Edit") } + Menu { title: qsTr("View") } + Menu { title: qsTr("Help") } + + delegate: MenuBarItem { + id: menuBarItem + + contentItem: Text { + text: menuBarItem.text + font: menuBarItem.font + opacity: enabled ? 1.0 : 0.3 + color: menuBarItem.highlighted ? "#ffffff" : "#21be2b" + horizontalAlignment: Text.AlignLeft + verticalAlignment: Text.AlignVCenter + elide: Text.ElideRight + } + + background: Rectangle { + implicitWidth: 40 + implicitHeight: 40 + opacity: enabled ? 1 : 0.3 + color: menuBarItem.highlighted ? "#21be2b" : "transparent" + } + } + + background: Rectangle { + implicitWidth: 40 + implicitHeight: 40 + color: "#ffffff" + + Rectangle { + color: "#21be2b" + width: parent.width + height: 1 + anchors.bottom: parent.bottom + } + } +} +} //! [eof] diff --git a/src/imports/controls/doc/snippets/qtquickcontrols2-menubar.qml b/src/imports/controls/doc/snippets/qtquickcontrols2-menubar.qml new file mode 100644 index 00000000..550680f6 --- /dev/null +++ b/src/imports/controls/doc/snippets/qtquickcontrols2-menubar.qml @@ -0,0 +1,67 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the documentation of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:FDL$ +** 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 Free Documentation License Usage +** Alternatively, this file may be used under the terms of the GNU Free +** Documentation License version 1.3 as published by the Free Software +** Foundation and appearing in the file included in the packaging of +** this file. Please review the following information to ensure +** the GNU Free Documentation License version 1.3 requirements +** will be met: https://www.gnu.org/licenses/fdl-1.3.html. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Controls 2.3 + +//! [begin] +ApplicationWindow { + id: window + width: 320 + height: 260 + visible: true + + //! [skipfrom] + Component.onCompleted: { + menuBar.itemAt(0).triggered() + menuBar.itemAt(0).menu.itemAt(2).highlighted = true + } + //! [skipto] + + menuBar: MenuBar { + Menu { + title: qsTr("&File") + Action { text: qsTr("&New...") } + Action { text: qsTr("&Open...") } + Action { text: qsTr("&Save") } + Action { text: qsTr("Save &As...") } + MenuSeparator { } + Action { text: qsTr("&Quit") } + } + Menu { + title: qsTr("&Edit") + Action { text: qsTr("Cu&t") } + Action { text: qsTr("&Copy") } + Action { text: qsTr("&Paste") } + } + Menu { + title: qsTr("&Help") + Action { text: qsTr("&About") } + } + } +} +//! [end] diff --git a/src/imports/controls/doc/snippets/qtquickcontrols2-scrollbar-policy.qml b/src/imports/controls/doc/snippets/qtquickcontrols2-scrollbar-policy.qml index 1862aa70..fdcef987 100644 --- a/src/imports/controls/doc/snippets/qtquickcontrols2-scrollbar-policy.qml +++ b/src/imports/controls/doc/snippets/qtquickcontrols2-scrollbar-policy.qml @@ -25,7 +25,7 @@ ** ****************************************************************************/ -import QtQuick 2.9 +import QtQuick 2.10 import QtQuick.Controls 2.2 //! [1] diff --git a/src/imports/controls/doc/snippets/qtquickcontrols2-scrollview-custom.qml b/src/imports/controls/doc/snippets/qtquickcontrols2-scrollview-custom.qml index e3d56a60..0d5686f3 100644 --- a/src/imports/controls/doc/snippets/qtquickcontrols2-scrollview-custom.qml +++ b/src/imports/controls/doc/snippets/qtquickcontrols2-scrollview-custom.qml @@ -25,7 +25,7 @@ ** ****************************************************************************/ -import QtQuick 2.9 +import QtQuick 2.10 import QtQuick.Controls 2.2 Item { diff --git a/src/imports/controls/doc/snippets/qtquickcontrols2-scrollview-interactive.qml b/src/imports/controls/doc/snippets/qtquickcontrols2-scrollview-interactive.qml index 2485d363..9770de33 100644 --- a/src/imports/controls/doc/snippets/qtquickcontrols2-scrollview-interactive.qml +++ b/src/imports/controls/doc/snippets/qtquickcontrols2-scrollview-interactive.qml @@ -25,7 +25,7 @@ ** ****************************************************************************/ -import QtQuick 2.9 +import QtQuick 2.10 import QtQuick.Controls 2.2 //! [file] diff --git a/src/imports/controls/doc/snippets/qtquickcontrols2-scrollview-listview.qml b/src/imports/controls/doc/snippets/qtquickcontrols2-scrollview-listview.qml index cf084425..b3eff14f 100644 --- a/src/imports/controls/doc/snippets/qtquickcontrols2-scrollview-listview.qml +++ b/src/imports/controls/doc/snippets/qtquickcontrols2-scrollview-listview.qml @@ -25,7 +25,7 @@ ** ****************************************************************************/ -import QtQuick 2.9 +import QtQuick 2.10 import QtQuick.Controls 2.2 Item { diff --git a/src/imports/controls/doc/snippets/qtquickcontrols2-scrollview-policy.qml b/src/imports/controls/doc/snippets/qtquickcontrols2-scrollview-policy.qml index 853cbde6..efd23100 100644 --- a/src/imports/controls/doc/snippets/qtquickcontrols2-scrollview-policy.qml +++ b/src/imports/controls/doc/snippets/qtquickcontrols2-scrollview-policy.qml @@ -25,7 +25,7 @@ ** ****************************************************************************/ -import QtQuick 2.9 +import QtQuick 2.10 import QtQuick.Controls 2.2 //! [file] diff --git a/src/imports/controls/doc/snippets/qtquickcontrols2-scrollview.qml b/src/imports/controls/doc/snippets/qtquickcontrols2-scrollview.qml index 0a76bfcd..74c0e85c 100644 --- a/src/imports/controls/doc/snippets/qtquickcontrols2-scrollview.qml +++ b/src/imports/controls/doc/snippets/qtquickcontrols2-scrollview.qml @@ -25,7 +25,7 @@ ** ****************************************************************************/ -import QtQuick 2.9 +import QtQuick 2.10 import QtQuick.Controls 2.2 Rectangle { diff --git a/src/imports/controls/doc/snippets/qtquickcontrols2-stackview-visible.qml b/src/imports/controls/doc/snippets/qtquickcontrols2-stackview-visible.qml index 15717a7b..c80b6e4d 100644 --- a/src/imports/controls/doc/snippets/qtquickcontrols2-stackview-visible.qml +++ b/src/imports/controls/doc/snippets/qtquickcontrols2-stackview-visible.qml @@ -25,7 +25,7 @@ ** ****************************************************************************/ -import QtQuick 2.9 +import QtQuick 2.10 import QtQuick.Controls 2.2 //! [1] diff --git a/src/imports/controls/doc/snippets/qtquickcontrols2-swipedelegate-transition.qml b/src/imports/controls/doc/snippets/qtquickcontrols2-swipedelegate-transition.qml index 82c2994b..a6936fe8 100644 --- a/src/imports/controls/doc/snippets/qtquickcontrols2-swipedelegate-transition.qml +++ b/src/imports/controls/doc/snippets/qtquickcontrols2-swipedelegate-transition.qml @@ -25,7 +25,7 @@ ** ****************************************************************************/ -import QtQuick 2.9 +import QtQuick 2.10 import QtQuick.Controls 2.2 //! [1] diff --git a/src/imports/controls/doc/src/includes/qquickicon.qdocinc b/src/imports/controls/doc/src/includes/qquickicon.qdocinc new file mode 100644 index 00000000..a6ab90bb --- /dev/null +++ b/src/imports/controls/doc/src/includes/qquickicon.qdocinc @@ -0,0 +1,42 @@ +//! [grouped-properties] +\table +\header + \li Name + \li Description +\row + \li name + \li This property holds the name of the icon to use. + + The icon will be loaded from the platform theme. If the icon is found + in the theme, it will always be used; even if \l icon.source is also set. + If the icon is not found, \l icon.source will be used instead. + + For more information on theme icons, see \l {QIcon::fromTheme()}. +\row + \li source + \li This property holds the name of the icon to use. + + The icon will be loaded as a regular image. + + If \l icon.name is set and refers to a valid theme icon, it will always + be used instead of this property. +\row + \li width + \li This property holds the width of the icon. + + The icon's width will never exceed this value, though it will + shrink when necessary. +\row + \li height + \li This property holds the height of the icon. + + The icon's height will never exceed this value, though it will + shrink when necessary. +\row + \li color + \li This property holds the color of the icon. + + The icon is tinted with the specified color, unless the color is + set to \c "transparent". +\endtable +//! [grouped-properties] diff --git a/src/imports/controls/doc/src/includes/qquickimaginestyle.qdocinc b/src/imports/controls/doc/src/includes/qquickimaginestyle.qdocinc new file mode 100644 index 00000000..f6fe5a97 --- /dev/null +++ b/src/imports/controls/doc/src/includes/qquickimaginestyle.qdocinc @@ -0,0 +1,57 @@ +//! [conf] +\table + \header + \li Variable + \li Description + \row + \li \c Path + \li Specifies the \l {imagine-path-attached-prop}{path} to the directory that contains + the Imagine style assets. If not specified, the built-in assets are used. + + For example, to specify a path to a directory stored in the + \l {The Qt Resource System}{resource system}: + + \badcode + [Imagine] + Path=:/imagine-assets + \endcode + + To specify a relative path to a local directory: + + \badcode + [Imagine] + Path=imagine-assets + \endcode + + \note Due to a technical limitation, the path should not be named + \e "imagine" if it is relative to the \c qtquickcontrols2.conf file. +\endtable +//! [conf] + +//! [env] +\table + \header + \li Variable + \li Description + \row + \li \c QT_QUICK_CONTROLS_IMAGINE_PATH + \li Specifies the path to the directory that contains the Imagine style assets. + If not specified, the built-in assets are used. + + For example, to specify a path to a directory stored in the + \l {The Qt Resource System}{resource system}: + + \badcode + QT_QUICK_CONTROLS_IMAGINE_PATH=:/imagine-assets + \endcode + + To specify a relative path to a local directory: + + \badcode + QT_QUICK_CONTROLS_IMAGINE_PATH=imagine-assets + \endcode + + \note Due to a technical limitation, the path should not be named + \e "imagine" if it is relative to the \c qtquickcontrols2.conf file. +\endtable +//! [env] diff --git a/src/imports/controls/doc/src/qtquickcontrols2-configuration.qdoc b/src/imports/controls/doc/src/qtquickcontrols2-configuration.qdoc index ca70ed2f..9d356686 100644 --- a/src/imports/controls/doc/src/qtquickcontrols2-configuration.qdoc +++ b/src/imports/controls/doc/src/qtquickcontrols2-configuration.qdoc @@ -74,20 +74,98 @@ By default, the \l {Default Style}{Default} style is used. \endtable + \section1 Imagine Section + + The following table lists values that can be used to configure the + \l {Imagine style} in an \c Imagine section of the configuration file: + + \include qquickimaginestyle.qdocinc conf + \section1 Material Section - The following \l {Material style} specific values can be specified in a \c Material - section of the configuration file: + The following table lists values that can be used to configure the + \l {Material style} in a \c Material section of the configuration file: \include qquickmaterialstyle.qdocinc conf \section1 Universal Section - The following \l {Universal style} specific values can be specified in a \c Universal - section of the configuration file: + The following table lists values that can be used to configure the + \l {Universal style} in a \c Universal section of the configuration file: \include qquickuniversalstyle.qdocinc conf + \section1 Font Configuration + + The default \l {Control::font}{font} can be specified in a \c Font sub-group + in each style's section in the configuration file. The \c Font sub-group can + be defined in two alternative ways: + + \code + [Default] + Font\Family=Open Sans + Font\PixelSize=20 + + [Material\Font] + Family=Open Sans + PixelSize=20 + \endcode + + Supported font attributes: + \table + \header + \li Variable + \li Description + \row + \li \c Family + \li The \l {QFont::family}{font family}. + \row + \li \c PointSize + \li The \l {QFont::pointSizeF}{point size}. + \row + \li \c PixelSize + \li The \l {QFont::pixelSize}{pixel size}. + \row + \li \c StyleHint + \li The \l {QFont::styleHint}{style hint}. + Available values: \c SansSerif, \c Helvetica, \c Serif, \c Times, \c TypeWriter, \c Courier, + \c OldEnglish, \c Decorative, \c Monospace, \c Fantasy, \c Cursive. + \row + \li \c Weight + \li The \l {QFont::}{weight}. Qt uses a weighting scale from \c 0 to \c 99 similar to, + but not the same as, the scales used in Windows or CSS. A weight of \c 0 will be thin, + whilst \c 99 will be extremely black. + Available pre-defined weights: \c Thin (0), \c ExtraLight (12), \c Light (25), \c Normal (50), + \c Medium (57), \c DemiBold (63), \c Bold (75), \c ExtraBold (81), + \c Black (87). + \row + \li \c Style + \li The \l {QFont::}{style}. + Available values: \c StyleNormal, \c StyleItalic, \c StyleOblique. + \endtable + + \section1 Palette Configuration + + The default \l {Control::palette}{palette} can be specified in a \c Palette sub-group + in each style's section in the configuration file. The \c Palette sub-group can be + defined in two alternative ways: + + \code + [Fusion] + Palette\Window=#dedede + Palette\WindowText=#212121 + \endcode + + or: + \code + [Fusion\Palette] + Window=#dedede + WindowText=#212121 + \endcode + + See \l {qtquickcontrols2-palette}{palette QML Basic Type} for a full list of supported + attributes. + \section1 Using the Configuration File in a Project In order to make it possible for Qt Quick Controls 2 to find the configuration file, diff --git a/src/imports/controls/doc/src/qtquickcontrols2-customize.qdoc b/src/imports/controls/doc/src/qtquickcontrols2-customize.qdoc index b645633b..3ab07ae2 100644 --- a/src/imports/controls/doc/src/qtquickcontrols2-customize.qdoc +++ b/src/imports/controls/doc/src/qtquickcontrols2-customize.qdoc @@ -552,41 +552,38 @@ \section2 Customizing Menu - Menu consists of a \l {Popup::}{contentItem}. + \list + \li \l Menu consists of a visual \l {Popup::background}{background} item. + \li \l MenuItem consists of four visual items: \l {Control::background}{background}, + \l {Control::contentItem}{content item}, \l {AbstractButton::}{indicator}, and + \l {MenuItem::}{arrow}. + \li \l MenuSeparator consists of a visual \l {Control::background}{background} and + \l {Control::contentItem}{content item}. + \endlist + + \image qtquickcontrols2-menu-custom.png \quotefromfile qtquickcontrols2-menu-custom.qml - \skipto import QtQuick 2.6 - \printuntil import QtQuick.Controls 2.1 + \skipto import QtQuick 2.10 + \printuntil import QtQuick.Controls 2.3 \skipto Menu - \printto contentItem.parent: window - \skipline contentItem.parent: window - \printuntil text: qsTr("Save") - \printuntil } - \printuntil } - + \printto eof - \section2 Customizing MenuItem - - MenuItem can be customized in the same manner as - \l {Customizing Button}{Button}. + \section2 Customizing MenuBar - \section2 Customizing MenuSeparator + MenuBar can have a visual \l {Control::background}{background} item, + and MenuBarItem consists of two visual items: \l {Control::background} + {background} and \l {Control::contentItem}{content item}. - MenuSeparator consists of two visual items: \l {Control::background}{background} - and \l {Control::contentItem}{content item}. + \image qtquickcontrols2-menubar-custom.png - \image qtquickcontrols2-menuseparator-custom.png + \quotefromfile qtquickcontrols2-menubar-custom.qml + \skipto import QtQuick 2.10 + \printuntil import QtQuick.Controls 2.3 + \skipto MenuBar + \printto eof - \quotefromfile qtquickcontrols2-menuseparator-custom.qml - \skipto import QtQuick 2.6 - \printuntil import QtQuick.Controls 2.1 - \skipto Menu - \printto contentItem.parent: window - \skipline contentItem.parent: window - \printuntil text: qsTr("Exit") - \printuntil } - \printuntil } \section2 Customizing PageIndicator diff --git a/src/imports/controls/doc/src/qtquickcontrols2-differences.qdoc b/src/imports/controls/doc/src/qtquickcontrols2-differences.qdoc index e6e2977f..c4416e14 100644 --- a/src/imports/controls/doc/src/qtquickcontrols2-differences.qdoc +++ b/src/imports/controls/doc/src/qtquickcontrols2-differences.qdoc @@ -203,15 +203,9 @@ \li Remarks \row \li \l [QML QtQuickControls] {Action} - \li \mdash + \li \l [QML QtQuickControls2] {Action} \li \l [QML QtQuick] {Shortcut} \br\sup {(Qt Quick)} - \li \list - \li \b {Qt Quick Controls 1}: \c Action is an abstract user interface - action that is bound to buttons and menu items, and can provide - shortcuts. - \li \b {Qt Quick}: \c Shortcut provides the shortcut functionality that - was previously only provided by \c Action. - \endlist + \li \row \li \l [QML QtQuickControls] {ApplicationWindow} \li \l [QML QtQuickControls2] {ApplicationWindow} @@ -250,9 +244,10 @@ \row \li \l [QML QtQuickControls] {ExclusiveGroup} \li \mdash - \li \l [QML QtQuickControls2] {ButtonGroup} \br\sup {(Qt Quick Controls 2)} + \li \l [QML QtQuickControls2] {ActionGroup},\br + \l [QML QtQuickControls2] {ButtonGroup} \br\sup {(Qt Quick Controls 2)} \li \list - \li \b {Qt Quick Controls 2}: \c ButtonGroup offers similar functionality. + \li \b {Qt Quick Controls 2}: \c ActionGroup and \c ButtonGroup offer similar functionality. \endlist \row \li \l [QML QtQuickControls] {GroupBox} @@ -287,12 +282,14 @@ \endlist \row \li \l [QML QtQuickControls] {MenuBar} - \li \mdash + \li \l [QML QtQuickControls2] {MenuBar} \li \l [QML QtLabsPlatform] {MenuBar} \br\sup {(Qt Labs Platform)} \li \list \li \b {Qt Quick Controls 1}: \c MenuBar is native on platforms where an implementation is available in the Qt Platform Abstraction Layer. Other platforms use a QML-based menubar item stacked at the top of the window. + \li \b {Qt Quick Controls 2}: \c MenuBar is a non-native QML-based menubar + that can be fully customized using QML and Qt Quick. \li \b {Qt Labs Platform}: \c MenuBar is an \e experimental native menubar. It is only available on platforms where a native implementation is available in the Qt Platform Abstraction Layer. @@ -521,6 +518,13 @@ \li \row \li \mdash + \li \l [QML QtQuickControls2] {ActionGroup} + \li \l [QML QtQuickControls] {ExclusiveGroup} \br\sup {(Qt Quick Controls 1)} + \li \list + \li \b {Qt Quick Controls 1}: \c ExclusiveGroup offers similar functionality. + \endlist + \row + \li \mdash \li \l [QML QtQuickControls2] {ButtonGroup} \li \l [QML QtQuickControls] {ExclusiveGroup} \br\sup {(Qt Quick Controls 1)} \li \list diff --git a/src/imports/controls/doc/src/qtquickcontrols2-environment.qdoc b/src/imports/controls/doc/src/qtquickcontrols2-environment.qdoc index 5652d8f5..39ee005b 100644 --- a/src/imports/controls/doc/src/qtquickcontrols2-environment.qdoc +++ b/src/imports/controls/doc/src/qtquickcontrols2-environment.qdoc @@ -63,6 +63,10 @@ The value can be set to \c 0 or \c 1 to disable or enable hover effects, respectively. \endtable + \l {Imagine style} specific environment variables: + + \include qquickimaginestyle.qdocinc env + \l {Material style} specific environment variables: \include qquickmaterialstyle.qdocinc env diff --git a/src/imports/controls/doc/src/qtquickcontrols2-fusion.qdoc b/src/imports/controls/doc/src/qtquickcontrols2-fusion.qdoc new file mode 100644 index 00000000..4708a4be --- /dev/null +++ b/src/imports/controls/doc/src/qtquickcontrols2-fusion.qdoc @@ -0,0 +1,93 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the documentation of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:FDL$ +** 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 Free Documentation License Usage +** Alternatively, this file may be used under the terms of the GNU Free +** Documentation License version 1.3 as published by the Free Software +** Foundation and appearing in the file included in the packaging of +** this file. Please review the following information to ensure +** the GNU Free Documentation License version 1.3 requirements +** will be met: https://www.gnu.org/licenses/fdl-1.3.html. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +/*! + \page qtquickcontrols2-fusion.html + \title Fusion Style + + The Fusion style is a desktop-oriented style. + + The Fusion style is a platform-agnostic style that offers a desktop-oriented + look'n'feel. It implements the same design language as the \l {Qt Widget Gallery} + {Fusion style for Qt Widgets}. + + \image qtquickcontrols2-fusion.png + + To run an application with the Fusion style, see + \l {Using Styles in Qt Quick Controls 2}. + + \note The Fusion style is not a native desktop style. The style runs on any + platform, and looks similar everywhere. Minor differences may occur due to + differences in the standard system palettes, available fonts, and font + rendering engines. + + \section2 Customization + + The Fusion style uses the standard system \l {Control::palette}{palettes} + to provide colors that match the desktop environment. + + \image qtquickcontrols2-fusion-palettes.png + + Custom palettes can be specified for any \l {Control::palette}{control}, + \l {Popup::palette}{popup}, or \l {ApplicationWindow::palette}{application window}. + Explicit palette attributes are automatically propagated from parent to children, + overriding any system defaults for that attribute. In the following example, + the window and all three switches appear with a violet highlight color: + + \table + \row + \li + \qml + import QtQuick 2.7 + import QtQuick.Controls 2.3 + + ApplicationWindow { + visible: true + + palette.highlight: "violet" + + Column { + anchors.centerIn: parent + + Switch { text: qsTr("First"); checked: true } + Switch { text: qsTr("Second"); checked: true } + Switch { text: qsTr("Third") } + } + } + \endqml + \li + \image qtquickcontrols2-fusion-violet.png + \endtable + + \b {See also} \l {Default Style}, \l {Material Style}, \l {Universal Style} + + \section1 Related Information + + \list + \li \l{Styling Qt Quick Controls 2} + \endlist +*/ diff --git a/src/imports/controls/doc/src/qtquickcontrols2-icons.qdoc b/src/imports/controls/doc/src/qtquickcontrols2-icons.qdoc new file mode 100644 index 00000000..5e62a2ce --- /dev/null +++ b/src/imports/controls/doc/src/qtquickcontrols2-icons.qdoc @@ -0,0 +1,169 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the documentation of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:FDL$ +** 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 Free Documentation License Usage +** Alternatively, this file may be used under the terms of the GNU Free +** Documentation License version 1.3 as published by the Free Software +** Foundation and appearing in the file included in the packaging of +** this file. Please review the following information to ensure +** the GNU Free Documentation License version 1.3 requirements +** will be met: https://www.gnu.org/licenses/fdl-1.3.html. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +/*! + \page qtquickcontrols2-icons.html + \title Icons in Qt Quick Controls 2 + + Qt Quick Controls 2.3 (Qt 5.10) introduced built-in support for icons. Buttons, + item delegates, and menu items are now capable of presenting an icon in addition + to a text label. + + \section1 Using Icons + + \l {AbstractButton::icon}{AbstractButton} and \l {Action::icon}{Action} provide + the following properties through which icons can be set: + \list + \li \c icon.name + \li \c icon.source + \li \c icon.width + \li \c icon.height + \li \c icon.color + \endlist + + Theme icons are referenced by a name, and regular icons by a source URL. Both + \c icon.name and \c icon.source can be set to ensure that an icon will always + be found. If the icon is found in the theme, it will always be used; even if + \c icon.source is also set. If the icon is not found in the theme, \c icon.source + will be used instead. + + \code + Button { + icon.name: "edit-cut" + icon.source: "images/cut.png" + } + \endcode + + Each \l {Styling Qt Quick Controls 2}{Qt Quick Controls 2 style} requests a + default icon size and color according to their guidelines, but it is possible + to override these by setting the \c icon.width, \c icon.height, and \c icon.color + properties. + + The image that is loaded by an icon whose \c width and \c height are not set + depends on the type of icon in use. For theme icons, the closest available size + will be chosen. For regular icons, the behavior is the same as the \l {Image::} + {sourceSize} property of \l Image. + + The icon color is specified by default so that it matches the text color in + different states. In order to use an icon with the original colors, set the + color to \c "transparent". + + \code + Button { + icon.color: "transparent" + icon.source: "images/logo.png" + } + \endcode + + For buttons, the \l {AbstractButton::}{display} property can be used to control + how the icon and text are displayed within the button. + + \section1 Icon Themes + + Compliant icon themes must follow the freedesktop icon theme specification, + which can be obtained here: \l {http://standards.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html}. + + Traditionally, only Linux and UNIX support icon themes on the platform level, + but it is possible to bundle a compliant icon theme in an application to use + themed icons on any platform. + + The default \l {QIcon::themeSearchPaths()}{icon theme search paths} depend on + the platform. On Linux and UNIX, the search path will use the \c XDG_DATA_DIRS + environment variable if available. All platforms have the resource directory + \c :/icons as a fallback. Custom icon theme search paths can be set with + \l QIcon::setThemeSearchPaths(). + + The following example bundles an icon theme called \e mytheme into the application's + resources using \l {The Qt Resource System}{Qt's resource system}. + + \badcode + <RCC> + <qresource prefix="/"> + <file>icons/mytheme/index.theme</file> + <file>icons/mytheme/32x32/myicon.png</file> + <file>icons/mytheme/32x32@2/myicon.png</file> + </qresource> + </RCC> + \endcode + + The \c index.theme file describes the general attributes of the icon theme, and + lists the available theme icon directories: + + \badcode + [Icon Theme] + Name=mytheme + Comment=My Icon Theme + + Directories=32x32,32x32@2 + + [32x32] + Size=32 + Type=Fixed + + [32x32@2] + Size=32 + Scale=2 + Type=Fixed + \endcode + + In order to use the bundled icon theme, an application should call \l QIcon::setThemeName() + before loading the main QML file: + + \code + #include <QGuiApplication> + #include <QQmlApplicationEngine> + #include <QIcon> + + int main(int argc, char *argv[]) + { + QGuiApplication app(argc, argv); + + QIcon::setThemeName("mytheme"); // <-- + + QQmlApplicationEngine engine; + engine.load(QUrl(QStringLiteral("qrc:/main.qml"))); + return app.exec(); + } + \endcode + + Now it is possible to use named icons from the bundled icon theme without having + to specify any fallback source: + + \code + Button { + icon.name: "myicon" + } + \endcode + + The \l {Qt Quick Controls 2 - Gallery}{Gallery example} and \l {Qt Quick Controls 2 - Wearable Demo} + {Wearable Demo} provide complete runnable applications with a bundled icon theme. + + \section1 Related Information + \list + \li \l {High-DPI Support in Qt Quick Controls 2} + \endlist +*/ diff --git a/src/imports/controls/doc/src/qtquickcontrols2-imagine.qdoc b/src/imports/controls/doc/src/qtquickcontrols2-imagine.qdoc new file mode 100644 index 00000000..cabd66da --- /dev/null +++ b/src/imports/controls/doc/src/qtquickcontrols2-imagine.qdoc @@ -0,0 +1,2452 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the documentation of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:FDL$ +** 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 Free Documentation License Usage +** Alternatively, this file may be used under the terms of the GNU Free +** Documentation License version 1.3 as published by the Free Software +** Foundation and appearing in the file included in the packaging of +** this file. Please review the following information to ensure +** the GNU Free Documentation License version 1.3 requirements +** will be met: https://www.gnu.org/licenses/fdl-1.3.html. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +/*! + \page qtquickcontrols2-imagine.html + \title Imagine Style + + The Imagine Style is based on configurable image assets. \l{detailed-desc-imagine}{More...} + + \styleimport {QtQuick.Controls.Imagine 2.3} {Qt 5.10} + + \section1 Attached Properties + + \list + \li \l {imagine-path-attached-prop}{\b path} : string + \endlist + + \section1 Detailed Description + \target detailed-desc-imagine + + The Imagine style is based on image assets. The style comes with a default + set of images, but the images can be easily changed by providing a directory + with images using a predefined naming convention. + + \image qtquickcontrols2-imagine.png + \caption The Imagine style with the default images + + To run an application with the Imagine style, see + \l {Using Styles in Qt Quick Controls 2}. + + \section2 File Names + + The image files are named using the following convention: + + \c <control>-<element>-<states> + + The \c <control> and \c <element> sections are mandatory, but the + \c <states> section is optional. For example, if a single file named + \c "button-background.9.png" is provided for \l {Button}, it will be used + for every state that \c Button supports. It is up to the developer to + decide the set of states that they will provide images for. However, it + is recommended to provide images for the most common control states where + possible, such as \c disabled, \c pressed, etc. This will ensure that + interactive controls visually behave as the end user would expect them to. + + \section2 Element Reference + + The following table lists which elements are supported for each control, + along with the possible states for that element, and the file extension + that it expects. An element is an image that represents a certain visual + part of the control. For example, \c {Button}'s \c "background" element + represents its \l {Control::}{background}. + + \table + \header + \li Control + \li Element + \li States + \li Extension + \row + \li \l ApplicationWindow + \li background + \li active + \li .9.png (or .png) + \row + \li + \li overlay + \li modal + \li .9.png (or .png) + \row + \li \l BusyIndicator + \li animation + \li disabled, running, mirrored, hovered + \li .webp + \row + \li + \li background + \li same as above + \li .webp + \row + \li \l Button + \li background + \li disabled, pressed, checked, checkable, focused, highlighted, flat, mirrored, hovered + \li .9.png + \row + \li \l CheckBox + \li background + \li disabled, pressed, checked, partially-checked, focused, mirrored, hovered + \li .9.png (or .png) + \row + \li + \li indicator + \li same as above + \li .png + \row + \li \l CheckDelegate + \li background + \li disabled, pressed, checked, partially-checked, focused, highlighted, mirrored, hovered + \li .9.png (or .png) + \row + \li + \li indicator + \li same as above + \li .png + \row + \li \l ComboBox + \li background + \li disabled, pressed, editable, open, focused, mirrored, hovered, flat + \li .9.png (or .png) + \row + \li + \li indicator + \li same as above + \li .png + \row + \li + \li popup + \li same as above + \li .9.png (or .png) + \row + \li \l DelayButton + \li background + \li disabled, pressed, checked, checkable, focused, mirrored, hovered + \li .9.png (or .png) + \row + \li + \li progress + \li same as above + \li .9.png (or .png) + \row + \li + \li mask + \li same as above + \li .9.png (or .png) + \row + \li \l Dial + \li background + \li disabled, pressed, focused, mirrored, hovered + \li .9.png (or .png) + \row + \li + \li handle + \li same as above + \li .9.png (or .png) + \row + \li \l Dialog + \li background + \li modal, dim + \li .9.png (or .png) + \row + \li + \li title + \li same as above + \li .9.png (or .png) + \row + \li + \li overlay + \li modal + \li .9.png (or .png) + \row + \li \l DialogButtonBox + \li background + \li disabled, mirrored + \li .9.png (or .png) + \row + \li \l Drawer + \li background + \li modal, dim, top, left, right, bottom + \li .9.png (or .png) + \row + \li + \li overlay + \li modal + \li .9.png (or .png) + \row + \li \l Frame + \li background + \li disabled, mirrored + \li .9.png (or .png) + \row + \li \l GroupBox + \li background + \li disabled, mirrored + \li .9.png (or .png) + \row + \li + \li title + \li same as above + \li .9.png (or .png) + \row + \li \l ItemDelegate + \li background + \li disabled, pressed, focused, highlighted, mirrored, hovered + \li .9.png (or .png) + \row + \li \l Label + \li background + \li disabled, mirrored, hovered + \li .9.png (or .png) + \row + \li \l Menu + \li background + \li modal, dim + \li .9.png (or .png) + \row + \li + \li overlay + \li modal + \li .9.png (or .png) + \row + \li \l MenuItem + \li arrow + \li disabled, pressed, checked, focused, highlighted, mirrored, hovered + \li .png + \row + \li + \li background + \li same as above + \li .9.png (or .png) + \row + \li + \li indicator + \li same as above + \li .png + \row + \li \l MenuSeparator + \li background + \li disabled, mirrored + \li .9.png (or .png) + \row + \li + \li separator + \li same as above + \li .9.png (or .png) + \row + \li \l Page + \li background + \li disabled, mirrored + \li .9.png (or .png) + \row + \li \l PageIndicator + \li background + \li disabled, mirrored, hovered + \li .9.png (or .png) + \row + \li + \li delegate + \li disabled, pressed, current, mirrored, hovered + \li .png + \row + \li \l Pane + \li background + \li disabled, mirrored + \li .9.png (or .png) + \row + \li \l Popup + \li background + \li modal, dim + \li .9.png (or .png) + \row + \li + \li overlay + \li modal + \li .9.png (or .png) + \row + \li \l ProgressBar + \li animation + \li disabled, mirrored, hovered + \li .png + \row + \li + \li background + \li disabled, indeterminate, mirrored, hovered + \li .9.png (or .png) + \row + \li + \li mask + \li same as above + \li .9.png (or .png) + \row + \li + \li progress + \li same as above + \li .9.png (or .png) + \row + \li \l RadioButton + \li background + \li disabled, pressed, checked, focused, mirrored, hovered + \li .9.png (or .png) + \row + \li + \li indicator + \li same as above + \li .png + \row + \li \l RadioDelegate + \li background + \li disabled, pressed, checked, focused, highlighted, mirrored, hovered + \li .9.png (or .png) + \row + \li + \li indicator + \li same as above + \li .png + \row + \li \l RangeSlider + \li background + \li vertical, horizontal, disabled, focused, mirrored, hovered + \li .9.png (or .png) + \row + \li \l RangeSlider + \li progress + \li same as above + \li .9.png (or .png) + \row + \li + \li handle + \li first, second, vertical, horizontal, disabled, pressed, focused, mirrored, hovered + \li .png + \row + \li \l RoundButton + \li background + \li disabled, pressed, checked, checkable, focused, highlighted, flat, mirrored, hovered + \li .9.png (or .png) + \row + \li \l ScrollBar + \li background + \li vertical, horizontal, disabled, interactive, pressed, mirrored, hovered + \li .9.png (or .png) + \row + \li + \li handle + \li same as above + \li .9.png (or .png) + \row + \li \l ScrollIndicator + \li background + \li vertical, horizontal, disabled, mirrored, hovered + \li .9.png (or .png) + \row + \li + \li handle + \li same as above + \li .9.png (or .png) + \row + \li \l ScrollView + \li background + \li disabled, mirrored + \li .9.png (or .png) + \row + \li \l Slider + \li background + \li vertical, horizontal, disabled, pressed, focused, mirrored, hovered + \li .9.png (or .png) + \row + \li + \li handle + \li same as above + \li .9.png (or .png) + \row + \li + \li progress + \li same as above + \li .9.png (or .png) + \row + \li \l SpinBox + \li background + \li disabled, editable, focused, mirrored, hovered + \li .9.png (or .png) + \row + \li + \li editor + \li disabled, focused, mirrored, hovered + \li .9.png (or .png) + \row + \li + \li indicator + \li up, down, disabled, editable, pressed, focused, mirrored, hovered + \li .9.png (or .png) + \row + \li \l StackView + \li background + \li disabled, mirrored + \li .9.png (or .png) + \row + \li \l SwipeDelegate + \li background + \li disabled, pressed, focused, highlighted, mirrored, hovered + \li .9.png (or .png) + \row + \li \l SwipeView + \li background + \li vertical, horizontal, disabled, interactive, focused, mirrored + \li .9.png (or .png) + \row + \li \l Switch + \li background + \li disabled, pressed, checked, focused, mirrored, hovered + \li .9.png (or .png) + \row + \li + \li handle + \li same as above + \li .9.png (or .png) + \row + \li + \li indicator + \li same as above + \li .9.png (or .png) + \row + \li \l SwitchDelegate + \li background + \li disabled, pressed, checked, focused, highlighted, mirrored, hovered + \li .9.png (or .png) + \row + \li + \li handle + \li same as above + \li .9.png (or .png) + \row + \li + \li indicator + \li same as above + \li .9.png (or .png) + \row + \li \l TabBar + \li background + \li disabled, header, footer, mirrored + \li .9.png (or .png) + \row + \li \l TabButton + \li background + \li disabled, pressed, checked, focused, mirrored, hovered + \li .9.png (or .png) + \row + \li \l TextArea + \li background + \li disabled, focused, mirrored, hovered + \li .9.png (or .png) + \row + \li \l TextField + \li background + \li disabled, focused, mirrored, hovered + \li .9.png (or .png) + \row + \li \l ToolBar + \li background + \li disabled, header, footer, mirrored + \li .9.png (or .png) + \row + \li \l ToolButton + \li background + \li disabled, pressed, checked, checkable, focused, highlighted, flat, mirrored, hovered + \li .9.png (or .png) + \row + \li \l ToolSeparator + \li background + \li vertical, horizontal, disabled, mirrored + \li .9.png (or .png) + \row + \li + \li separator + \li same as above + \li .9.png (or .png) + \row + \li \l ToolTip + \li background + \li + \li .9.png (or .png) + \row + \li \l Tumbler + \li background + \li disabled, focused, mirrored, hovered + \li .9.png (or .png) + \endtable + + \section2 Asset Examples + + The following table lists examples of assets (taken from the default + Imagine style assets) for all controls. The list is not exhaustive, + as not all elements need assets, but it can be used as a guide + when creating your own assets. + + \table + \header + \li Control + \li Element + \li States + \li Asset + \li Notes + \row + \li \l ApplicationWindow + \li background + \li + \li \image imagine/images/applicationwindow-background.png + \li \l {sup1}{See footnote} \sup 1 + \row + \li + \li overlay + \li + \li \image imagine/images/applicationwindow-overlay.png + \li \l {sup1}{See footnote} \sup 1 + \row + \li + \li overlay + \li modal + \li \image imagine/images/applicationwindow-overlay-modal.png + \li \l {sup1}{See footnote} \sup 1 + \row + \li \l Button + \li background + \li + \li \image imagine/images/button-background.9.png + \li + \row + \li + \li background + \li disabled + \li \image imagine/images/button-background-disabled.9.png + \li + \row + \li + \li background + \li focused + \li \image imagine/images/button-background-focused.9.png + \li + \row + \li + \li background + \li pressed + \li \image imagine/images/button-background-pressed.9.png + \li + \row + \li + \li background + \li checked + \li \image imagine/images/button-background-checked.9.png + \li + \row + \li + \li background + \li checked, disabled + \li \image imagine/images/button-background-checked-disabled.9.png + \li + \row + \li + \li background + \li checked, focused + \li \image imagine/images/button-background-checked-focused.9.png + \li + \row + \li + \li background + \li checked, hovered + \li \image imagine/images/button-background-checked-hovered.9.png + \li + \row + \li + \li background + \li highlighted + \li \image imagine/images/button-background-highlighted.9.png + \li + \row + \li + \li background + \li highlighted, disabled + \li \image imagine/images/button-background-highlighted-disabled.9.png + \li + \row + \li + \li background + \li highlighted, focused + \li \image imagine/images/button-background-highlighted-focused.9.png + \li + \row + \li + \li background + \li highlighted, hovered + \li \image imagine/images/button-background-highlighted-hovered.9.png + \li + \row + \li + \li background + \li highlighted, pressed + \li \image imagine/images/button-background-highlighted-pressed.9.png + \li + \row + \li + \li background + \li highlighted, checked + \li \image imagine/images/button-background-highlighted-checked.9.png + \li + \row + \li + \li background + \li hovered + \li \image imagine/images/button-background-hovered.9.png + \li + \row + \li + \li background + \li flat + \li \image imagine/images/button-background-flat.9.png + \li + \row + \li + \li background + \li flat, disabled + \li \image imagine/images/button-background-flat-disabled.9.png + \li + \row + \li + \li background + \li flat, hovered + \li \image imagine/images/button-background-flat-hovered.9.png + \li + \row + \li + \li background + \li flat, pressed + \li \image imagine/images/button-background-flat-pressed.9.png + \li + \row + \li + \li background + \li flat, checked + \li \image imagine/images/button-background-flat-checked.9.png + \li + \row + \li \l CheckBox + \li indicator + \li + \li \image imagine/images/checkbox-indicator.png + \li + \row + \li + \li indicator + \li disabled + \li \image imagine/images/checkbox-indicator-disabled.png + \li + \row + \li + \li indicator + \li pressed + \li \image imagine/images/checkbox-indicator-pressed.png + \li + \row + \li + \li indicator + \li checked + \li \image imagine/images/checkbox-indicator-checked.png + \li + \row + \li + \li indicator + \li checked, pressed + \li \image imagine/images/checkbox-indicator-checked-pressed.png + \li + \row + \li + \li indicator + \li checked, hovered + \li \image imagine/images/checkbox-indicator-checked-hovered.png + \li + \row + \li + \li indicator + \li checked, focused + \li \image imagine/images/checkbox-indicator-checked-focused.png + \li + \row + \li + \li indicator + \li partially, checked + \li \image imagine/images/checkbox-indicator-partially-checked.png + \li + \row + \li + \li indicator + \li partially, checked, pressed + \li \image imagine/images/checkbox-indicator-partially-checked-pressed.png + \li + \row + \li + \li indicator + \li partially, checked, focused + \li \image imagine/images/checkbox-indicator-partially-checked-focused.png + \li + \row + \li + \li indicator + \li partially, checked, hovered + \li \image imagine/images/checkbox-indicator-partially-checked-hovered.png + \li + \row + \li + \li indicator + \li focused + \li \image imagine/images/checkbox-indicator-focused.png + \li + \row + \li + \li indicator + \li hovered + \li \image imagine/images/checkbox-indicator-hovered.png + \li + \row + \li \l CheckDelegate + \li background + \li + \li \image imagine/images/checkdelegate-background.9.png + \li + \row + \li + \li background + \li disabled + \li \image imagine/images/checkdelegate-background-disabled.9.png + \li + \row + \li + \li background + \li pressed + \li \image imagine/images/checkdelegate-background-pressed.9.png + \li + \row + \li + \li background + \li focused + \li \image imagine/images/checkdelegate-background-focused.9.png + \li + \row + \li + \li background + \li hovered + \li \image imagine/images/checkdelegate-background-hovered.9.png + \li + \row + \li + \li indicator + \li + \li \image imagine/images/checkdelegate-indicator.png + \li + \row + \li + \li indicator + \li disabled + \li \image imagine/images/checkdelegate-indicator-disabled.png + \li + \row + \li + \li indicator + \li pressed + \li \image imagine/images/checkdelegate-indicator-pressed.png + \li + \row + \li + \li indicator + \li checked + \li \image imagine/images/checkdelegate-indicator-checked.png + \li + \row + \li + \li indicator + \li checked, pressed + \li \image imagine/images/checkdelegate-indicator-checked-pressed.png + \li + \row + \li + \li indicator + \li checked, focused + \li \image imagine/images/checkdelegate-indicator-checked-focused.png + \li + \row + \li + \li indicator + \li checked, hovered + \li \image imagine/images/checkdelegate-indicator-checked-hovered.png + \li + \row + \li + \li indicator + \li focused + \li \image imagine/images/checkdelegate-indicator-focused.png + \li + \row + \li + \li indicator + \li hovered + \li \image imagine/images/checkdelegate-indicator-hovered.png + \li + \row + \li + \li indicator + \li partially, checked + \li \image imagine/images/checkdelegate-indicator-partially-checked.png + \li + \row + \li + \li indicator + \li partially, checked, pressed + \li \image imagine/images/checkdelegate-indicator-partially-checked-pressed.png + \li + \row + \li + \li indicator + \li partially, checked, focused + \li \image imagine/images/checkdelegate-indicator-partially-checked-focused.png + \li + \row + \li + \li indicator + \li partially, checked, hovered + \li \image imagine/images/checkdelegate-indicator-partially-checked-hovered.png + \li + \row + \li + \li indicator + \li hovered + \li \image imagine/images/checkdelegate-indicator-hovered.png + \li + \row + \li \l ComboBox + \li background + \li + \li \image imagine/images/combobox-background.9.png + \li + \row + \li + \li background + \li disabled + \li \image imagine/images/combobox-background-disabled.9.png + \li + \row + \li + \li background + \li focused + \li \image imagine/images/combobox-background-focused.9.png + \li + \row + \li + \li background + \li hovered + \li \image imagine/images/combobox-background-hovered.9.png + \li + \row + \li + \li background + \li pressed + \li \image imagine/images/combobox-background-pressed.9.png + \li + \row + \li + \li background + \li open + \li \image imagine/images/combobox-background-open.9.png + \li + \row + \li + \li background + \li editable + \li \image imagine/images/combobox-background-editable.9.png + \li + \row + \li + \li background + \li editable, focused + \li \image imagine/images/combobox-background-editable-focused.9.png + \li + \row + \li + \li background + \li editable, disabled + \li \image imagine/images/combobox-background-editable-disabled.9.png + \li + \row + \li + \li indicator + \li + \li \image imagine/images/combobox-indicator.png + \li + \row + \li + \li indicator + \li disabled + \li \image imagine/images/combobox-indicator-disabled.png + \li + \row + \li + \li indicator + \li editable + \li \image imagine/images/combobox-indicator-editable.png + \li + \row + \li + \li indicator + \li editable, disabled + \li \image imagine/images/combobox-indicator-editable-disabled.png + \li + \row + \li + \li indicator + \li editable, mirrored + \li \image imagine/images/combobox-indicator-editable-mirrored.png + \li + \row + \li + \li indicator + \li editable, mirrored, disabled + \li \image imagine/images/combobox-indicator-editable-mirrored-disabled.png + \li + \row + \li + \li popup + \li + \li \image imagine/images/combobox-popup.9.png + \li + \row + \li \l DelayButton + \li background + \li + \li \image imagine/images/delaybutton-background.9.png + \li + \row + \li + \li background + \li disabled + \li \image imagine/images/delaybutton-background-disabled.9.png + \li + \row + \li + \li background + \li disabled, checked + \li \image imagine/images/delaybutton-background-disabled-checked.9.png + \li + \row + \li + \li background + \li focused + \li \image imagine/images/delaybutton-background-focused.9.png + \li + \row + \li + \li background + \li pressed + \li \image imagine/images/delaybutton-background-pressed.9.png + \li + \row + \li + \li background + \li checked + \li \image imagine/images/delaybutton-background-checked.9.png + \li + \row + \li + \li background + \li checked, focused + \li \image imagine/images/delaybutton-background-checked-focused.9.png + \li + \row + \li + \li background + \li checked, hovered + \li \image imagine/images/delaybutton-background-checked-hovered.9.png + \li + \row + \li + \li background + \li hovered + \li \image imagine/images/delaybutton-background-hovered.9.png + \li + \row + \li + \li progress + \li + \li \image imagine/images/delaybutton-progress.9.png + \li + \row + \li + \li progress + \li disabled + \li \image imagine/images/delaybutton-progress-disabled.9.png + \li + \row + \li + \li mask + \li + \li \image imagine/images/delaybutton-mask.9.png + \li + \row + \li \l Dial + \li background + \li + \li \image imagine/images/dial-background.png + \li + \row + \li + \li background + \li disabled + \li \image imagine/images/dial-background-disabled.png + \li + \row + \li + \li background + \li focused + \li \image imagine/images/dial-background-focused.png + \li + \row + \li + \li handle + \li + \li \image imagine/images/dial-handle.png + \li + \row + \li + \li handle + \li disabled + \li \image imagine/images/dial-handle-disabled.png + \li + \row + \li + \li handle + \li focused + \li \image imagine/images/dial-handle-focused.png + \li + \row + \li + \li handle + \li focused, pressed + \li \image imagine/images/dial-handle-focused-pressed.png + \li + \row + \li + \li handle + \li focused, hovered + \li \image imagine/images/dial-handle-focused-hovered.png + \li + \row + \li + \li handle + \li pressed + \li \image imagine/images/dial-handle-pressed.png + \li + \row + \li + \li handle + \li hovered + \li \image imagine/images/dial-handle-hovered.png + \li + \row + \li \l Dialog + \li background + \li + \li \image imagine/images/dialog-background.9.png + \li + \row + \li + \li overlay + \li + \li \image imagine/images/dialog-overlay.png + \li \l {sup1}{See footnote} \sup 1 + \row + \li + \li overlay + \li modal + \li \image imagine/images/dialog-overlay-modal.png + \li \l {sup1}{See footnote} \sup 1 + \row + \li \l DialogButtonBox + \li background + \li + \li \image imagine/images/dialogbuttonbox-background.9.png + \li + \row + \li \l Drawer + \li background + \li left + \li \image imagine/images/drawer-background-left.9.png + \li + \row + \li + \li background + \li right + \li \image imagine/images/drawer-background-right.9.png + \li + \row + \li + \li background + \li top + \li \image imagine/images/drawer-background-top.9.png + \li + \row + \li + \li background + \li bottom + \li \image imagine/images/drawer-background-bottom.9.png + \li + \row + \li + \li overlay + \li + \li \image imagine/images/drawer-overlay.png + \li \l {sup1}{See footnote} \sup 1 + \row + \li + \li overlay + \li modal + \li \image imagine/images/drawer-overlay-modal.png + \li \l {sup1}{See footnote} \sup 1 + \row + \li \l Frame + \li background + \li + \li \image imagine/images/frame-background.9.png + \li + \row + \li \l GroupBox + \li background + \li + \li \image imagine/images/groupbox-background.9.png + \li + \row + \li + \li title + \li + \li \image imagine/images/groupbox-title.9.png + \li + \row + \li \l ItemDelegate + \li background + \li + \li \image imagine/images/itemdelegate-background.9.png + \li + \row + \li + \li background + \li disabled + \li \image imagine/images/itemdelegate-background-disabled.9.png + \li + \row + \li + \li background + \li pressed + \li \image imagine/images/itemdelegate-background-pressed.9.png + \li + \row + \li + \li background + \li focused + \li \image imagine/images/itemdelegate-background-focused.9.png + \li + \row + \li + \li background + \li hovered + \li \image imagine/images/itemdelegate-background-hovered.9.png + \li + \row + \li + \li background + \li highlighted + \li \image imagine/images/itemdelegate-background-highlighted.9.png + \li + \row + \li \l Menu + \li background + \li + \li \image imagine/images/menu-background.9.png + \li + \row + \li \l MenuItem + \li background + \li + \li \image imagine/images/menuitem-background.9.png + \li + \row + \li + \li background + \li highlighted + \li \image imagine/images/menuitem-background-highlighted.9.png + \li + \row + \li + \li arrow + \li + \li \image imagine/images/menuitem-arrow.png + \li + \row + \li + \li arrow + \li mirrored + \li \image imagine/images/menuitem-arrow-mirrored.png + \li + \row + \li + \li arrow + \li disabled + \li \image imagine/images/menuitem-arrow-disabled.png + \li + \row + \li + \li arrow + \li mirrored, disabled + \li \image imagine/images/menuitem-arrow-mirrored-disabled.png + \li + \row + \li + \li indicator + \li + \li \image imagine/images/menuitem-indicator.png + \li + \row + \li + \li indicator + \li disabled + \li \image imagine/images/menuitem-indicator-disabled.png + \li + \row + \li + \li indicator + \li pressed + \li \image imagine/images/menuitem-indicator-pressed.png + \li + \row + \li + \li indicator + \li checked + \li \image imagine/images/menuitem-indicator-checked.png + \li + \row + \li + \li indicator + \li checked, pressed + \li \image imagine/images/menuitem-indicator-checked-pressed.png + \li + \row + \li + \li indicator + \li checked, focused + \li \image imagine/images/menuitem-indicator-checked-focused.png + \li + \row + \li + \li indicator + \li checked, hovered + \li \image imagine/images/menuitem-indicator-checked-hovered.png + \li + \row + \li + \li indicator + \li focused + \li \image imagine/images/menuitem-indicator-focused.png + \li + \row + \li + \li indicator + \li hovered + \li \image imagine/images/menuitem-indicator-hovered.png + \li + \row + \li \l MenuSeparator + \li separator + \li + \li \image imagine/images/menuseparator-separator.9.png + \li + \row + \li \l Page + \li background + \li + \li \image imagine/images/page-background.png + \li \l {sup1}{See footnote} \sup 1 + \row + \li \l PageIndicator + \li delegate + \li + \li \image imagine/images/pageindicator-delegate.png + \li + \row + \li + \li delegate + \li disabled + \li \image imagine/images/pageindicator-delegate-disabled.png + \li + \row + \li + \li delegate + \li disabled, current + \li \image imagine/images/pageindicator-delegate-disabled-current.png + \li + \row + \li + \li delegate + \li pressed + \li \image imagine/images/pageindicator-delegate-pressed.png + \li + \row + \li + \li delegate + \li current + \li \image imagine/images/pageindicator-delegate-current.png + \li + \row + \li \l Pane + \li background + \li + \li \image imagine/images/pane-background.9.png + \li + \row + \li \l Popup + \li background + \li + \li \image imagine/images/popup-background.9.png + \li \l {sup1}{See footnote} \sup 1 + \row + \li + \li overlay + \li + \li \image imagine/images/popup-overlay.png + \li \l {sup1}{See footnote} \sup 1 + \row + \li + \li overlay + \li modal + \li \image imagine/images/popup-overlay-modal.png + \li + \row + \li \l ProgressBar + \li background + \li + \li \image imagine/images/progressbar-background.9.png + \li + \row + \li + \li progress + \li + \li \image imagine/images/progressbar-progress.png + \li + \row + \li + \li mask + \li + \li \image imagine/images/progressbar-mask.9.png + \li + \row + \li \l RadioButton + \li indicator + \li + \li \image imagine/images/radiobutton-indicator.png + \li + \row + \li + \li indicator + \li disabled + \li \image imagine/images/radiobutton-indicator-disabled.png + \li + \row + \li + \li indicator + \li pressed + \li \image imagine/images/radiobutton-indicator-pressed.png + \li + \row + \li + \li indicator + \li checked + \li \image imagine/images/radiobutton-indicator-checked.png + \li + \row + \li + \li indicator + \li checked, focused + \li \image imagine/images/radiobutton-indicator-checked-focused.png + \li + \row + \li + \li indicator + \li checked, hovered + \li \image imagine/images/radiobutton-indicator-checked-hovered.png + \li + \row + \li + \li indicator + \li checked, pressed + \li \image imagine/images/radiobutton-indicator-checked-pressed.png + \li + \row + \li + \li indicator + \li focused + \li \image imagine/images/radiobutton-indicator-focused.png + \li + \row + \li + \li indicator + \li hovered + \li \image imagine/images/radiobutton-indicator-hovered.png + \li + \row + \li \l RadioDelegate + \li background + \li + \li \image imagine/images/radiodelegate-background.9.png + \li + \row + \li + \li background + \li disabled + \li \image imagine/images/radiodelegate-background-disabled.9.png + \li + \row + \li + \li background + \li pressed + \li \image imagine/images/radiodelegate-background-pressed.9.png + \li + \row + \li + \li background + \li focused + \li \image imagine/images/radiodelegate-background-focused.9.png + \li + \row + \li + \li background + \li hovered + \li \image imagine/images/radiodelegate-background-hovered.9.png + \li + \row + \li + \li indicator + \li + \li \image imagine/images/radiodelegate-indicator.png + \li + \row + \li + \li indicator + \li disabled + \li \image imagine/images/radiodelegate-indicator-disabled.png + \li + \row + \li + \li indicator + \li pressed + \li \image imagine/images/radiodelegate-indicator-pressed.png + \li + \row + \li + \li indicator + \li checked + \li \image imagine/images/radiodelegate-indicator-checked.png + \li + \row + \li + \li indicator + \li checked, focused + \li \image imagine/images/radiodelegate-indicator-checked-focused.png + \li + \row + \li + \li indicator + \li checked, hovered + \li \image imagine/images/radiodelegate-indicator-checked-hovered.png + \li + \row + \li + \li indicator + \li checked, pressed + \li \image imagine/images/radiodelegate-indicator-checked-pressed.png + \li + \row + \li + \li indicator + \li focused + \li \image imagine/images/radiodelegate-indicator-focused.png + \li + \row + \li + \li indicator + \li hovered + \li \image imagine/images/radiodelegate-indicator-hovered.png + \li + \row + \li \l RangeSlider + \li background + \li vertical + \li \image imagine/images/rangeslider-background-vertical.9.png + \li + \row + \li + \li background + \li horizontal + \li \image imagine/images/rangeslider-background-horizontal.9.png + \li + \row + \li + \li progress + \li vertical + \li \image imagine/images/rangeslider-progress-vertical.9.png + \li + \row + \li + \li progress + \li vertical, disabled + \li \image imagine/images/rangeslider-progress-vertical-disabled.9.png + \li + \row + \li + \li progress + \li horizontal + \li \image imagine/images/rangeslider-progress-horizontal.9.png + \li + \row + \li + \li progress + \li horizontal, disabled + \li \image imagine/images/rangeslider-progress-horizontal-disabled.9.png + \li + \row + \li + \li handle + \li + \li \image imagine/images/rangeslider-handle.png + \li + \row + \li + \li handle + \li disabled + \li \image imagine/images/rangeslider-handle-disabled.png + \li + \row + \li + \li handle + \li focused + \li \image imagine/images/rangeslider-handle-focused.png + \li + \row + \li + \li handle + \li focused, hovered + \li \image imagine/images/rangeslider-handle-focused-hovered.png + \li + \row + \li + \li handle + \li focused, pressed + \li \image imagine/images/rangeslider-handle-focused-pressed.png + \li + \row + \li + \li handle + \li hovered + \li \image imagine/images/rangeslider-handle-hovered.png + \li + \row + \li + \li handle + \li pressed + \li \image imagine/images/rangeslider-handle-pressed.png + \li + \row + \li \l RoundButton + \li background + \li + \li \image imagine/images/roundbutton-background.png + \li + \row + \li + \li background + \li disabled + \li \image imagine/images/roundbutton-background-disabled.png + \li + \row + \li + \li background + \li disabled, checked + \li \image imagine/images/roundbutton-background-disabled-checked.png + \li + \row + \li + \li background + \li focused + \li \image imagine/images/roundbutton-background-focused.png + \li + \row + \li + \li background + \li pressed + \li \image imagine/images/roundbutton-background-pressed.png + \li + \row + \li + \li background + \li checked + \li \image imagine/images/roundbutton-background-checked.png + \li + \row + \li + \li background + \li checked, focused + \li \image imagine/images/roundbutton-background-checked-focused.png + \li + \row + \li + \li background + \li checked, hovered + \li \image imagine/images/roundbutton-background-checked-hovered.png + \li + \row + \li + \li background + \li highlighted + \li \image imagine/images/roundbutton-background-highlighted.png + \li + \row + \li + \li background + \li highlighted, pressed + \li \image imagine/images/roundbutton-background-highlighted-pressed.png + \li + \row + \li + \li background + \li highlighted, focused + \li \image imagine/images/roundbutton-background-highlighted-focused.png + \li + \row + \li + \li background + \li highlighted, hovered + \li \image imagine/images/roundbutton-background-highlighted-hovered.png + \li + \row + \li + \li background + \li hovered + \li \image imagine/images/roundbutton-background-hovered.png + \li + \row + \li \l ScrollBar + \li handle + \li + \li \image imagine/images/scrollbar-handle.png + \li + \row + \li + \li handle + \li disabled + \li \image imagine/images/scrollbar-handle-disabled.png + \li + \row + \li + \li handle + \li interactive + \li \image imagine/images/scrollbar-handle-interactive.png + \li + \row + \li + \li handle + \li interactive, disabled + \li \image imagine/images/scrollbar-handle-interactive-disabled.png + \li + \row + \li + \li handle + \li interactive, pressed + \li \image imagine/images/scrollbar-handle-interactive-pressed.png + \li + \row + \li + \li handle + \li interactive, hovered + \li \image imagine/images/scrollbar-handle-interactive-hovered.png + \li + \row + \li \l ScrollIndicator + \li handle + \li + \li \image imagine/images/scrollindicator-handle.png + \li + \row + \li \l Slider + \li background + \li vertical + \li \image imagine/images/slider-background-vertical.9.png + \li + \row + \li + \li background + \li horizontal + \li \image imagine/images/slider-background-horizontal.9.png + \li + \row + \li + \li progress + \li vertical + \li \image imagine/images/slider-progress-vertical.9.png + \li + \row + \li + \li progress + \li vertical, disabled + \li \image imagine/images/slider-progress-vertical-disabled.9.png + \li + \row + \li + \li progress + \li horizontal + \li \image imagine/images/slider-progress-horizontal.9.png + \li + \row + \li + \li progress + \li horizontal, disabled + \li \image imagine/images/slider-progress-horizontal-disabled.9.png + \li + \row + \li + \li handle + \li + \li \image imagine/images/slider-handle.png + \li + \row + \li + \li handle + \li disabled + \li \image imagine/images/slider-handle-disabled.png + \li + \row + \li + \li handle + \li focused + \li \image imagine/images/slider-handle-focused.png + \li + \row + \li + \li handle + \li focused, hovered + \li \image imagine/images/slider-handle-focused-hovered.png + \li + \row + \li + \li handle + \li focused, pressed + \li \image imagine/images/slider-handle-focused-pressed.png + \li + \row + \li + \li handle + \li hovered + \li \image imagine/images/slider-handle-hovered.png + \li + \row + \li + \li handle + \li pressed + \li \image imagine/images/slider-handle-pressed.png + \li + \row + \li \l SpinBox + \li background + \li + \li \image imagine/images/spinbox-background.9.png + \li + \row + \li + \li background + \li disabled + \li \image imagine/images/spinbox-background-disabled.9.png + \li + \row + \li + \li background + \li focused + \li \image imagine/images/spinbox-background-focused.9.png + \li + \row + \li + \li background + \li editable + \li \image imagine/images/spinbox-background-editable.9.png + \li + \row + \li + \li indicator + \li up + \li \image imagine/images/spinbox-indicator-up.9.png + \li + \row + \li + \li indicator + \li up, disabled + \li \image imagine/images/spinbox-indicator-up-disabled.9.png + \li + \row + \li + \li indicator + \li up, pressed + \li \image imagine/images/spinbox-indicator-up-pressed.9.png + \li + \row + \li + \li indicator + \li up, focused + \li \image imagine/images/spinbox-indicator-up-focused.9.png + \li + \row + \li + \li indicator + \li up, mirrored + \li \image imagine/images/spinbox-indicator-up-mirrored.9.png + \li + \row + \li + \li indicator + \li up, hovered + \li \image imagine/images/spinbox-indicator-up-hovered.9.png + \li + \row + \li + \li indicator + \li up, editable + \li \image imagine/images/spinbox-indicator-up-editable.9.png + \li + \row + \li + \li indicator + \li up, editable, pressed + \li \image imagine/images/spinbox-indicator-up-editable-pressed.9.png + \li + \row + \li + \li indicator + \li up, editable, focused + \li \image imagine/images/spinbox-indicator-up-editable-focused.9.png + \li + \row + \li + \li indicator + \li up, editable, mirrored + \li \image imagine/images/spinbox-indicator-up-editable-mirrored.9.png + \li + \row + \li + \li indicator + \li up, editable, hovered + \li \image imagine/images/spinbox-indicator-up-editable-hovered.9.png + \li + \row + \li + \li indicator + \li down + \li \image imagine/images/spinbox-indicator-down.9.png + \li + \row + \li + \li indicator + \li down, disabled + \li \image imagine/images/spinbox-indicator-down-disabled.9.png + \li + \row + \li + \li indicator + \li down, pressed + \li \image imagine/images/spinbox-indicator-down-pressed.9.png + \li + \row + \li + \li indicator + \li down, focused + \li \image imagine/images/spinbox-indicator-down-focused.9.png + \li + \row + \li + \li indicator + \li down, mirrored + \li \image imagine/images/spinbox-indicator-down-mirrored.9.png + \li + \row + \li + \li indicator + \li down, hovered + \li \image imagine/images/spinbox-indicator-down-hovered.9.png + \li + \row + \li + \li indicator + \li down, editable + \li \image imagine/images/spinbox-indicator-down-editable.9.png + \li + \row + \li + \li indicator + \li down, editable, pressed + \li \image imagine/images/spinbox-indicator-down-editable-pressed.9.png + \li + \row + \li + \li indicator + \li down, editable, focused + \li \image imagine/images/spinbox-indicator-down-editable-focused.9.png + \li + \row + \li + \li indicator + \li down, editable, mirrored + \li \image imagine/images/spinbox-indicator-down-editable-mirrored.9.png + \li + \row + \li + \li indicator + \li down, editable, hovered + \li \image imagine/images/spinbox-indicator-down-editable-hovered.9.png + \li + \row + \li \l SwipeDelegate + \li background + \li + \li \image imagine/images/swipedelegate-background.9.png + \li + \row + \li + \li background + \li disabled + \li \image imagine/images/swipedelegate-background-disabled.9.png + \li + \row + \li + \li background + \li pressed + \li \image imagine/images/swipedelegate-background-pressed.9.png + \li + \row + \li + \li background + \li focused + \li \image imagine/images/swipedelegate-background-focused.9.png + \li + \row + \li + \li background + \li hovered + \li \image imagine/images/swipedelegate-background-hovered.9.png + \li + \row + \li \l Switch + \li indicator + \li + \li \image imagine/images/switch-indicator.png + \li + \row + \li + \li indicator + \li disabled + \li \image imagine/images/switch-indicator-disabled.png + \li + \row + \li + \li indicator + \li pressed + \li \image imagine/images/switch-indicator-pressed.png + \li + \row + \li + \li indicator + \li checked + \li \image imagine/images/switch-indicator-checked.png + \li + \row + \li + \li indicator + \li checked, focused + \li \image imagine/images/switch-indicator-checked-focused.png + \li + \row + \li + \li indicator + \li checked, hovered + \li \image imagine/images/switch-indicator-checked-hovered.png + \li + \row + \li + \li indicator + \li checked, pressed + \li \image imagine/images/switch-indicator-checked-pressed.png + \li + \row + \li + \li indicator + \li focused + \li \image imagine/images/switch-indicator-focused.png + \li + \row + \li + \li indicator + \li hovered + \li \image imagine/images/switch-indicator-hovered.png + \li + \row + \li + \li handle + \li + \li \image imagine/images/switch-handle.png + \li + \row + \li + \li handle + \li disabled + \li \image imagine/images/switch-handle-disabled.png + \li + \row + \li + \li handle + \li pressed + \li \image imagine/images/switch-handle-pressed.png + \li + \row + \li \l SwitchDelegate + \li background + \li + \li \image imagine/images/switchdelegate-background.9.png + \li + \row + \li + \li background + \li disabled + \li \image imagine/images/switchdelegate-background-disabled.9.png + \li + \row + \li + \li background + \li pressed + \li \image imagine/images/switchdelegate-background-pressed.9.png + \li + \row + \li + \li background + \li focused + \li \image imagine/images/switchdelegate-background-focused.9.png + \li + \row + \li + \li background + \li hovered + \li \image imagine/images/switchdelegate-background-hovered.9.png + \li + \row + \li + \li indicator + \li + \li \image imagine/images/switchdelegate-indicator.png + \li + \row + \li + \li indicator + \li disabled + \li \image imagine/images/switchdelegate-indicator-disabled.png + \li + \row + \li + \li indicator + \li pressed + \li \image imagine/images/switchdelegate-indicator-pressed.png + \li + \row + \li + \li indicator + \li checked + \li \image imagine/images/switchdelegate-indicator-checked.png + \li + \row + \li + \li indicator + \li checked, focused + \li \image imagine/images/switchdelegate-indicator-checked-focused.png + \li + \row + \li + \li indicator + \li checked, hovered + \li \image imagine/images/switchdelegate-indicator-checked-hovered.png + \li + \row + \li + \li indicator + \li checked, pressed + \li \image imagine/images/switchdelegate-indicator-checked-pressed.png + \li + \row + \li + \li indicator + \li focused + \li \image imagine/images/switchdelegate-indicator-focused.png + \li + \row + \li + \li indicator + \li hovered + \li \image imagine/images/switchdelegate-indicator-hovered.png + \li + \row + \li + \li handle + \li + \li \image imagine/images/switchdelegate-handle.png + \li + \row + \li + \li handle + \li disabled + \li \image imagine/images/switchdelegate-handle-disabled.png + \li + \row + \li \l TabBar + \li background + \li + \li \image imagine/images/tabbar-background.png + \li + \row + \li \l TabButton + \li background + \li + \li \image imagine/images/tabbutton-background.9.png + \li + \row + \li + \li background + \li disabled + \li \image imagine/images/tabbutton-background-disabled.9.png + \li + \row + \li + \li background + \li pressed + \li \image imagine/images/tabbutton-background-pressed.9.png + \li + \row + \li + \li background + \li checked + \li \image imagine/images/tabbutton-background-checked.9.png + \li + \row + \li + \li background + \li hovered + \li \image imagine/images/tabbutton-background-hovered.9.png + \li + \row + \li + \li background + \li disabled, checked + \li \image imagine/images/tabbutton-background-disabled-checked.9.png + \li + \row + \li \l TextArea + \li background + \li + \li \image imagine/images/textarea-background.9.png + \li + \row + \li + \li background + \li disabled + \li \image imagine/images/textarea-background-disabled.9.png + \li + \row + \li + \li background + \li focused + \li \image imagine/images/textarea-background-focused.9.png + \li + \row + \li \l TextField + \li background + \li + \li \image imagine/images/textfield-background.9.png + \li + \row + \li + \li background + \li disabled + \li \image imagine/images/textfield-background-disabled.9.png + \li + \row + \li + \li background + \li focused + \li \image imagine/images/textfield-background-focused.9.png + \li + \row + \li \l ToolBar + \li background + \li + \li \image imagine/images/toolbar-background.png + \li + \row + \li \l ToolButton + \li background + \li + \li \image imagine/images/toolbutton-background.9.png + \li + \row + \li + \li background + \li disabled, checked + \li \image imagine/images/toolbutton-background-disabled-checked.9.png + \li + \row + \li + \li background + \li focused + \li \image imagine/images/toolbutton-background-focused.9.png + \li + \row + \li + \li background + \li pressed + \li \image imagine/images/toolbutton-background-pressed.9.png + \li + \row + \li + \li background + \li checked + \li \image imagine/images/toolbutton-background-checked.9.png + \li + \row + \li + \li background + \li checked, focused + \li \image imagine/images/toolbutton-background-checked-focused.9.png + \li + \row + \li + \li background + \li checked, hovered + \li \image imagine/images/toolbutton-background-checked-hovered.9.png + \li + \row + \li + \li background + \li hovered + \li \image imagine/images/toolbutton-background-hovered.9.png + \li + \row + \li \l ToolSeparator + \li separator + \li horizontal + \li \image imagine/images/toolseparator-separator-horizontal.9.png + \li + \row + \li + \li separator + \li vertical + \li \image imagine/images/toolseparator-separator-vertical.9.png + \li + \row + \li \l ToolTip + \li background + \li + \li \image imagine/images/tooltip-background.9.png + \li + \endtable + + \target sup1 + \sup 1 A 1x1 image containing one color, stretched to fill the control. + + \section2 9-Patch Images + + The Imagine style uses \l + {https://developer.android.com/guide/topics/graphics/2d-graphics.html#nine-patch}{9-patch + images} in order to give designers control over how a particular element + responds to being resized. Here is an example of a 9-patch image that + represents a \l {Button}'s \l {Control::}{background}, alongside a + magnified version (to make it easier to see the 9-patch lines): + + \image qtquickcontrols2-imagine-9-patch-4x.png + + The content of the image is 44 pixels wide by 32 pixels high. Every 9-patch + image needs a one pixel thick border around every side, so the actual size + of the image becomes 46 pixels wide by 34 pixels high. The 9-patch lines + must be black, and the remaining areas must be transparent or white: + + \image qtquickcontrols2-imagine-9-patch-size.png + + \section3 Stretchable Areas + + The 9-patch lines on the top and left edges determine which parts of the + image are stretched when it is resized. + + Below are examples of the 9-patch image being resized to one and a half + times its original size in various dimensions: + + \image qtquickcontrols2-imagine-9-patch-resized-stretchable.png + + Notice how the the rounded corners keep their original size, as they are + outside the range of the lines. + + \section3 Padding Areas + + The 9-patch lines on the right and bottom edges determine how much space + is available for the control's \l {Control::}{contentItem}, which means it + can also be thought of as controlling the \l {Control::}{padding}. For a + diagram that illustrates padding, see \l {Control Layout}. + + Below are more examples of the 9-patch image being resized, but this time + demonstrating how the padding 9-patch lines work. + + \image qtquickcontrols2-imagine-9-patch-resized-padding.png + + The \c contentItem can take up as much space as it needs within the shaded + areas. If the padding lines are left out, the \c contentItem will take as + much space as it needs without exceeding the stretchable areas. + + \section3 Inset Areas + + In some cases it is necessary for a control to have a drop shadow, for + example. However, if we were to add a drop shadow to the button above, it + would affect its size, which presents problems for both layouting and + mouse/touch input boundaries. + + Inset areas accounts for this by telling the control that a certain area of + the 9-patch image should go outside of the control: + + \image qtquickcontrols2-imagine-9-patch-inset.png + + In the image below, the dashed line represents the button's clickable area, + as well as the space that it will take up in a layout. The shadow is marked + by the striped area behind it: + + \image qtquickcontrols2-imagine-9-patch-inset-boundaries.png + + \section2 Animated Images + + The \l {https://developers.google.com/speed/webp/}{WebP} and GIF animated + image formats are supported by the Imagine style. + + \section2 Palette + + \section2 Customization + + The Imagine style allows customizing the \l {imagine-path-attached-prop}{path} + that is used to do the image asset selection. The path can be specified for any + window or item, and it automatically propagates to children in the same manner as + \l {Control::font}{fonts}. In the following example, the window and all three radio + buttons appear with dark image assets (files that are located in "qrc:/themes/dark"). + + \table + \row + \li + \qml + import QtQuick 2.0 + import QtQuick.Controls 2.3 + import QtQuick.Controls.Imagine 2.3 + + ApplicationWindow { + visible: true + + Imagine.path: "qrc:/themes/dark" + + Column { + anchors.centerIn: parent + + RadioButton { text: qsTr("Small") } + RadioButton { text: qsTr("Medium"); checked: true } + RadioButton { text: qsTr("Large") } + } + } + \endqml + \li + \image qtquickcontrols2-imagine-customization-dark.png + \endtable + + In addition to specifying the path in QML, it is also possible to specify + it via an environment variable or in a configuration file. Attributes + specified in QML take precedence over all other methods. + + \section3 Configuration File + + \include qquickimaginestyle.qdocinc conf + + See \l {Qt Quick Controls 2 Configuration File} for more details about the + configuration file. + + \section3 Environment Variables + + \include qquickimaginestyle.qdocinc env + + See \l {Supported Environment Variables in Qt Quick Controls 2} for the full + list of supported environment variables. + + \section2 Dependency + + The Imagine style must be separately imported to gain access to the + attributes that are specific to the Imagine style. It should be noted + that regardless of the references to the Imagine style, the same + application code runs with any other style. Imagine-specific attributes + only have an effect when the application is run with the Imagine style. + + If the Imagine style is imported in a QML file that is always loaded, the + Imagine style must be deployed with the application in order to be able + to run the application regardless of which style the application is run with. + By using \l {Using File Selectors with Qt Quick Controls 2}{file selectors}, + style-specific tweaks can be applied without creating a hard dependency to + a style. + + \b {See also} \l {Styling Qt Quick Controls 2} + + \section1 Attached Property Documentation + + \styleproperty {Imagine.path} {string} {imagine-path-attached-prop} + \target imagine-path-attached-prop + This attached property holds the path to the image assets... + + \code + Button { + Imagine.path: "qrc:/themes/dark" + } + \endcode + + \endstyleproperty + + \section1 Related Information + + \list + \li \l{Styling Qt Quick Controls 2} + \li \l{Qt Quick Controls 2 - Imagine Style Example: Automotive}{Automotive Example} + \li \l{Qt Quick Controls 2 - Imagine Style Example: Music Player}{Music Player Example} + \endlist +*/ diff --git a/src/imports/controls/doc/src/qtquickcontrols2-index.qdoc b/src/imports/controls/doc/src/qtquickcontrols2-index.qdoc index 26f7c19a..2ce0eb92 100644 --- a/src/imports/controls/doc/src/qtquickcontrols2-index.qdoc +++ b/src/imports/controls/doc/src/qtquickcontrols2-index.qdoc @@ -46,7 +46,7 @@ application using the following import statement in your \c {.qml} file: \code - import QtQuick.Controls 2.2 + import QtQuick.Controls 2.3 \endcode The \l{Qt Quick Controls 2 C++ Classes}{C++ classes} can be included into @@ -97,6 +97,11 @@ \li 2.2 \li 1.0 \row + \li 5.10 + \li 2.10 + \li 2.3 + \li 1.0 + \row \li ... \li ... \li ... @@ -121,6 +126,7 @@ \list \li \l{Qt Quick Controls 2 Guidelines}{Guidelines} \li \l{Styling Qt Quick Controls 2}{Styling} + \li \l{Icons in Qt Quick Controls 2}{Icons} \li \l{Customizing Qt Quick Controls 2}{Customization} \li \l{High-DPI Support in Qt Quick Controls 2}{High-DPI Support} \li \l{Using File Selectors with Qt Quick Controls 2}{Using File Selectors} @@ -144,6 +150,8 @@ \li \l{Qt Quick Controls 2 - Chat Tutorial}{Chat Tutorial} \li \l{Qt Quick Controls 2 - Text Editor}{Text Editor} \li \l{Qt Quick Controls 2 - Wearable Demo}{Wearable Demo} + \li \l{Qt Quick Controls 2 - Imagine Style Example: Automotive}{Automotive Example} + \li \l{Qt Quick Controls 2 - Imagine Style Example: Music Player}{Music Player Example} \li \l{Qt Quick Controls 2 Examples}{All Examples} \endlist diff --git a/src/imports/controls/doc/src/qtquickcontrols2-material.qdoc b/src/imports/controls/doc/src/qtquickcontrols2-material.qdoc index 0b3175d7..f1d1f1e6 100644 --- a/src/imports/controls/doc/src/qtquickcontrols2-material.qdoc +++ b/src/imports/controls/doc/src/qtquickcontrols2-material.qdoc @@ -32,7 +32,7 @@ The Material Style is based on the Google Material Design Guidelines. \l{detailed-desc-material}{More...} - \styleimport {QtQuick.Controls.Material 2.2} {Qt 5.7} + \styleimport {QtQuick.Controls.Material 2.3} {Qt 5.7} \section1 Attached Properties diff --git a/src/imports/controls/doc/src/qtquickcontrols2-menus.qdoc b/src/imports/controls/doc/src/qtquickcontrols2-menus.qdoc index f4523260..43db2092 100644 --- a/src/imports/controls/doc/src/qtquickcontrols2-menus.qdoc +++ b/src/imports/controls/doc/src/qtquickcontrols2-menus.qdoc @@ -45,11 +45,24 @@ right-clicking. It can also be used for popup menus; for example, a menu that is shown after clicking a button. - \l MenuItem is an item in the Menu control. Each item in a menu: - \list - \li displays text to the user - \li allows checking/unchecking - \li is highlighted (for example, on keyboard navigation) - \li performs some action on activation - \endlist + \l MenuItem is an item in the Menu control. Each item in a menu: + \list + \li displays text to the user + \li allows checking/unchecking + \li is highlighted (for example, on keyboard navigation) + \li performs some action on activation + \endlist + + \section1 MenuBar Control + + \image qtquickcontrols2-menubar.png + + \l MenuBar control can be used for window menu bars. + + \l MenuBarItem is an item in the MenuBar control. Each item in a menu bar: + \list + \li displays text to the user + \li is highlighted (for example, on keyboard navigation) + \li pops up the respective menu on activation + \endlist */ diff --git a/src/imports/controls/doc/src/qtquickcontrols2-palette.qdoc b/src/imports/controls/doc/src/qtquickcontrols2-palette.qdoc new file mode 100644 index 00000000..e4bac54a --- /dev/null +++ b/src/imports/controls/doc/src/qtquickcontrols2-palette.qdoc @@ -0,0 +1,107 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the documentation of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:FDL$ +** 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 Free Documentation License Usage +** Alternatively, this file may be used under the terms of the GNU Free +** Documentation License version 1.3 as published by the Free Software +** Foundation and appearing in the file included in the packaging of +** this file. Please review the following information to ensure +** the GNU Free Documentation License version 1.3 requirements +** will be met: https://www.gnu.org/licenses/fdl-1.3.html. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +/*! + \qmlbasictype palette + \brief a palette of colors. + \target qtquickcontrols2-palette + + The \c palette type refers to a palette of colors for various roles. + + Available properties: + \table + \header + \li Property + \li Description + \row + \li \b palette.alternateBase : color + \li Used as the alternate background color in item views with alternating row colors. + \row + \li \b palette.base : color + \li Used mostly as the background color for text editor controls and items views. + It is usually white or another light color. + \row + \li \b palette.brightText : color + \li A text color that is very different from \c palette.windowText, and contrasts + well with e.g. \c palette.dark. Typically used for text that needs to be drawn + where \c palette.text, \c palette.windowText or \c palette.buttonText would + give poor contrast, such as on highlighted buttons. + \row + \li \b palette.button : color + \li The general button background color. This background can be different from + \c palette.window as some styles require a different background color for buttons. + \row + \li \b palette.buttonText : color + \li A foreground color used with the \c palette.button color. + \row + \li \b palette.dark : color + \li Darker than \c palette.button. + \row + \li \b palette.highlight : color + \li A color to indicate a selected item or the current item. + \row + \li \b palette.highlightedText : color + \li A text color that contrasts with \c palette.highlight. + \row + \li \b palette.light : color + \li Lighter than \c palette.button. + \row + \li \b palette.link : color + \li A text color used for hyperlinks. + \row + \li \b palette.linkVisited : color + \li A text color used for already visited hyperlinks. + \row + \li \b palette.mid : color + \li Between \c palette.button and \c palette.dark. + \row + \li \b palette.midlight : color + \li Between \c palette.button and \c palette.light. + \row + \li \b palette.shadow : color + \li A very dark color. + \row + \li \b palette.text : color + \li The foreground color used with \c palette.base. This is usually the same as + the \c palette.windowText, in which case it must provide good contrast with + \c palette.window and \c palette.base. + \row + \li \b palette.toolTipBase : color + \li Used as the background color for tooltips. + \row + \li \b palette.toolTipText : color + \li Used as the foreground color for tooltips. + \row + \li \b palette.window : color + \li A general background color. + \row + \li \b palette.windowText : color + \li A general foreground color. + \endtable + + \sa Control::palette, Popup::palette, ApplicationWindow::palette, QPalette::ColorRole +*/ diff --git a/src/imports/controls/doc/src/qtquickcontrols2-qmltypes.qdoc b/src/imports/controls/doc/src/qtquickcontrols2-qmltypes.qdoc index 3b69da04..4bdccecc 100644 --- a/src/imports/controls/doc/src/qtquickcontrols2-qmltypes.qdoc +++ b/src/imports/controls/doc/src/qtquickcontrols2-qmltypes.qdoc @@ -26,7 +26,7 @@ ****************************************************************************/ /*! - \qmlmodule QtQuick.Controls 2.2 + \qmlmodule QtQuick.Controls 2.3 \title Qt Quick Controls 2 QML Types \ingroup qmlmodules \brief Provides QML types for user interfaces (Qt Quick Controls 2). @@ -39,7 +39,7 @@ using the following import statement in your .qml file: \badcode - import QtQuick.Controls 2.2 + import QtQuick.Controls 2.3 \endcode \section1 QML Types diff --git a/src/imports/controls/doc/src/qtquickcontrols2-styles.qdoc b/src/imports/controls/doc/src/qtquickcontrols2-styles.qdoc index e006d41f..a1a74ec9 100644 --- a/src/imports/controls/doc/src/qtquickcontrols2-styles.qdoc +++ b/src/imports/controls/doc/src/qtquickcontrols2-styles.qdoc @@ -39,6 +39,19 @@ The \l {Default Style} is a simple and light-weight all-round style that offers the maximum performance for Qt Quick Controls 2. + \section2 Fusion Style + + \image qtquickcontrols2-fusion-thumbnail.png + The \l {Fusion Style} is a platform-agnostic style that offers a desktop-oriented + look'n'feel for Qt Quick Controls 2. + + \section2 Imagine Style + + \image qtquickcontrols2-imagine-thumbnail.png + The \l {Imagine Style} is based on image assets. The style comes with a default + set of images which can easily be changed by providing a directory + with images using a predefined naming convention. + \section2 Material Style \image qtquickcontrols2-material-thumbnail.png @@ -120,6 +133,8 @@ \section1 Related Information \list \li \l {Default Style} + \li \l {Fusion Style} + \li \l {Imagine Style} \li \l {Material Style} \li \l {Universal Style} \li \l {Customizing Qt Quick Controls 2} diff --git a/src/imports/controls/doc/src/qtquickcontrols2-universal.qdoc b/src/imports/controls/doc/src/qtquickcontrols2-universal.qdoc index 4b5a2de2..8e88f345 100644 --- a/src/imports/controls/doc/src/qtquickcontrols2-universal.qdoc +++ b/src/imports/controls/doc/src/qtquickcontrols2-universal.qdoc @@ -32,7 +32,7 @@ The Universal Style is based on the Microsoft Universal Design Guidelines. \l {detailed-desc-universal}{More...} - \styleimport {QtQuick.Controls.Universal 2.2} {Qt 5.7} + \styleimport {QtQuick.Controls.Universal 2.3} {Qt 5.7} \section1 Attached Properties diff --git a/src/imports/controls/fusion/ApplicationWindow.qml b/src/imports/controls/fusion/ApplicationWindow.qml new file mode 100644 index 00000000..80c4317b --- /dev/null +++ b/src/imports/controls/fusion/ApplicationWindow.qml @@ -0,0 +1,55 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Window 2.2 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Fusion 2.3 +import QtQuick.Controls.Fusion.impl 2.3 + +T.ApplicationWindow { + id: window + + color: palette.window + + overlay.modal: Rectangle { + color: Fusion.topShadow + } + + overlay.modeless: Rectangle { + color: Fusion.topShadow + } +} diff --git a/src/imports/controls/fusion/BusyIndicator.qml b/src/imports/controls/fusion/BusyIndicator.qml new file mode 100644 index 00000000..9be5ae71 --- /dev/null +++ b/src/imports/controls/fusion/BusyIndicator.qml @@ -0,0 +1,69 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Fusion 2.3 +import QtQuick.Controls.Fusion.impl 2.3 + +T.BusyIndicator { + id: control + + implicitWidth: contentItem.implicitWidth + leftPadding + rightPadding + implicitHeight: contentItem.implicitHeight + topPadding + bottomPadding + + padding: 6 + + contentItem: BusyIndicatorImpl { + implicitWidth: 28 + implicitHeight: 28 + color: control.palette.text + + running: control.running + opacity: control.running ? 1 : 0 + Behavior on opacity { OpacityAnimator { duration: 250 } } + + RotationAnimator on rotation { + running: control.running || contentItem.visible + from: 0 + to: 360 + duration: 1000 + loops: Animation.Infinite + } + } +} diff --git a/src/imports/controls/fusion/Button.qml b/src/imports/controls/fusion/Button.qml new file mode 100644 index 00000000..1032446f --- /dev/null +++ b/src/imports/controls/fusion/Button.qml @@ -0,0 +1,77 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Fusion 2.3 +import QtQuick.Controls.Fusion.impl 2.3 + +T.Button { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, + contentItem.implicitWidth + leftPadding + rightPadding) + implicitHeight: Math.max(background ? background.implicitHeight : 0, + contentItem.implicitHeight + topPadding + bottomPadding) + baselineOffset: contentItem.y + contentItem.baselineOffset + + padding: 4 + spacing: 6 + + icon.width: 16 + icon.height: 16 + + contentItem: IconLabel { + spacing: control.spacing + mirrored: control.mirrored + display: control.display + + icon: control.icon + text: control.text + font: control.font + color: control.palette.buttonText + } + + background: ButtonPanel { + implicitWidth: 80 + implicitHeight: 24 + + control: control + visible: !control.flat || control.down || control.checked || control.highlighted || control.visualFocus || control.hovered + } +} diff --git a/src/imports/controls/SwitchIndicator.qml b/src/imports/controls/fusion/ButtonPanel.qml index 347b2293..801c2816 100644 --- a/src/imports/controls/SwitchIndicator.qml +++ b/src/imports/controls/fusion/ButtonPanel.qml @@ -34,43 +34,44 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Controls 2.2 -import QtQuick.Controls.impl 2.2 +import QtQuick 2.10 +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Fusion 2.3 +import QtQuick.Controls.Fusion.impl 2.3 -Item { - implicitWidth: 56 - implicitHeight: 28 +Rectangle { + id: panel property Item control + property bool highlighted: control.highlighted - Rectangle { - y: parent.height / 2 - height / 2 - width: 56 - height: 16 - radius: 8 - color: control.checked ? (control.visualFocus ? Default.focusColor : Default.buttonCheckedColor) : Default.buttonColor - border.width: control.visualFocus ? 2 : 0 - border.color: Default.focusColor - } + visible: !control.flat || control.down || control.checked - Rectangle { - x: Math.max(0, Math.min(parent.width - width, control.visualPosition * parent.width - (width / 2))) - y: (parent.height - height) / 2 - width: 28 - height: 28 - radius: 16 - color: control.enabled ? (control.down - ? (control.visualFocus ? Default.focusPressedColor : Default.indicatorPressedColor) - : (control.visualFocus ? Default.focusLightColor : Default.backgroundColor)) : Default.indicatorDisabledColor - border.width: control.visualFocus ? 2 : 1 - border.color: control.enabled ? (control.visualFocus - ? Default.focusColor - : (control.down ? Default.indicatorFramePressedColor : Default.indicatorFrameColor)) : Default.indicatorFrameDisabledColor + color: Fusion.buttonColor(control.palette, panel.highlighted, control.down || control.checked, control.hovered) + gradient: control.down || control.checked ? null : buttonGradient - Behavior on x { - enabled: !control.down - SmoothedAnimation { velocity: 200 } + Gradient { + id: buttonGradient + GradientStop { + position: 0 + color: Fusion.gradientStart(Fusion.buttonColor(control.palette, panel.highlighted, control.down, control.hovered)) + } + GradientStop { + position: 1 + color: Fusion.gradientStop(Fusion.buttonColor(control.palette, panel.highlighted, control.down, control.hovered)) } } + + radius: 2 + border.color: Fusion.buttonOutline(control.palette, panel.highlighted || control.visualFocus, control.enabled) + + Rectangle { + x: 1; y: 1 + width: parent.width - 2 + height: parent.height - 2 + border.color: Fusion.innerContrastLine + color: "transparent" + radius: 2 + } } diff --git a/src/imports/controls/fusion/CheckBox.qml b/src/imports/controls/fusion/CheckBox.qml new file mode 100644 index 00000000..c7aba31a --- /dev/null +++ b/src/imports/controls/fusion/CheckBox.qml @@ -0,0 +1,73 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Fusion 2.3 +import QtQuick.Controls.Fusion.impl 2.3 + +T.CheckBox { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, + contentItem.implicitWidth + leftPadding + rightPadding) + implicitHeight: Math.max(background ? background.implicitHeight : 0, + Math.max(contentItem.implicitHeight, + indicator ? indicator.implicitHeight : 0) + topPadding + bottomPadding) + baselineOffset: contentItem.y + contentItem.baselineOffset + + padding: 6 + spacing: 6 + + indicator: CheckIndicator { + x: text ? (control.mirrored ? control.width - width - control.rightPadding : control.leftPadding) : control.leftPadding + (control.availableWidth - width) / 2 + y: control.topPadding + (control.availableHeight - height) / 2 + control: control + } + + contentItem: Text { + leftPadding: control.indicator && !control.mirrored ? control.indicator.width + control.spacing : 0 + rightPadding: control.indicator && control.mirrored ? control.indicator.width + control.spacing : 0 + + text: control.text + font: control.font + color: control.palette.windowText + elide: Text.ElideRight + verticalAlignment: Text.AlignVCenter + } +} diff --git a/src/imports/controls/fusion/CheckDelegate.qml b/src/imports/controls/fusion/CheckDelegate.qml new file mode 100644 index 00000000..e0b1611e --- /dev/null +++ b/src/imports/controls/fusion/CheckDelegate.qml @@ -0,0 +1,88 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Fusion 2.3 +import QtQuick.Controls.Fusion.impl 2.3 + +T.CheckDelegate { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, + contentItem.implicitWidth + leftPadding + rightPadding) + implicitHeight: Math.max(background ? background.implicitHeight : 0, + Math.max(contentItem.implicitHeight, + indicator ? indicator.implicitHeight : 0) + topPadding + bottomPadding) + baselineOffset: contentItem.y + contentItem.baselineOffset + + padding: 6 + spacing: 6 + + icon.width: 16 + icon.height: 16 + + contentItem: IconLabel { + leftPadding: control.mirrored ? control.indicator.width + control.spacing : 0 + rightPadding: !control.mirrored ? control.indicator.width + control.spacing : 0 + + spacing: control.spacing + mirrored: control.mirrored + display: control.display + alignment: control.display === IconLabel.IconOnly || control.display === IconLabel.TextUnderIcon ? Qt.AlignCenter : Qt.AlignLeft + + icon: control.icon + text: control.text + font: control.font + color: control.highlighted ? Fusion.highlightedText(control.palette) : control.palette.text + } + + indicator: CheckIndicator { + x: control.mirrored ? control.leftPadding : control.width - width - control.rightPadding + y: control.topPadding + (control.availableHeight - height) / 2 + + control: control + } + + background: Rectangle { + implicitWidth: 100 + implicitHeight: 20 + color: control.down ? Fusion.buttonColor(control.palette, false, true, true) + : control.highlighted ? Fusion.highlight(control.palette) : control.palette.base + } +} diff --git a/src/imports/controls/fusion/CheckIndicator.qml b/src/imports/controls/fusion/CheckIndicator.qml new file mode 100644 index 00000000..83ee9b3a --- /dev/null +++ b/src/imports/controls/fusion/CheckIndicator.qml @@ -0,0 +1,92 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Fusion 2.3 +import QtQuick.Controls.Fusion.impl 2.3 + +Rectangle { + id: indicator + + property Item control + readonly property color pressedColor: Fusion.mergedColors(control.palette.base, control.palette.windowText, 85) + readonly property color checkMarkColor: Qt.darker(control.palette.text, 1.2) + + implicitWidth: 14 + implicitHeight: 14 + + color: control.down ? indicator.pressedColor : control.palette.base + border.color: control.visualFocus ? Fusion.highlightedOutline(control.palette) + : Qt.lighter(Fusion.outline(control.palette), 1.1) + + Rectangle { + x: 1; y: 1 + width: parent.width - 2 + height: 1 + color: Fusion.topShadow + visible: control.enabled && !control.down + } + + ColorImage { + x: (parent.width - width) / 2 + y: (parent.height - height) / 2 + color: Color.transparent(indicator.checkMarkColor, 210 / 255) + source: "qrc:/qt-project.org/imports/QtQuick/Controls.2/Fusion/images/checkmark.png" + visible: control.checkState === Qt.Checked || (control.checked && control.checkState === undefined) + } + + Rectangle { + x: 3; y: 3 + width: parent.width - 6 + height: parent.width - 6 + + visible: control.checkState === Qt.PartiallyChecked + + gradient: Gradient { + GradientStop { + position: 0 + color: Color.transparent(indicator.checkMarkColor, 80 / 255) + } + GradientStop { + position: 1 + color: Color.transparent(indicator.checkMarkColor, 140 / 255) + } + } + border.color: Color.transparent(indicator.checkMarkColor, 180 / 255) + } +} diff --git a/src/imports/controls/fusion/ComboBox.qml b/src/imports/controls/fusion/ComboBox.qml new file mode 100644 index 00000000..ade1566b --- /dev/null +++ b/src/imports/controls/fusion/ComboBox.qml @@ -0,0 +1,175 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Window 2.3 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Fusion 2.3 +import QtQuick.Controls.Fusion.impl 2.3 + +T.ComboBox { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, + contentItem.implicitWidth + leftPadding + rightPadding) + implicitHeight: Math.max(background ? background.implicitHeight : 0, + Math.max(contentItem.implicitHeight, + indicator ? indicator.implicitHeight : 0) + topPadding + bottomPadding) + baselineOffset: contentItem.y + contentItem.baselineOffset + + leftPadding: padding + (!control.mirrored || !indicator || !indicator.visible ? 0 : indicator.width + spacing) + rightPadding: padding + (control.mirrored || !indicator || !indicator.visible ? 0 : indicator.width + spacing) + + delegate: MenuItem { + width: parent.width + text: control.textRole ? (Array.isArray(control.model) ? modelData[control.textRole] : model[control.textRole]) : modelData + highlighted: control.highlightedIndex === index + hoverEnabled: control.hoverEnabled + } + + indicator: ColorImage { + x: control.mirrored ? control.padding : control.width - width - control.padding + y: control.topPadding + (control.availableHeight - height) / 2 + color: control.editable ? control.palette.text : control.palette.buttonText + source: "qrc:/qt-project.org/imports/QtQuick/Controls.2/Fusion/images/arrow.png" + width: 20 + fillMode: Image.Pad + } + + contentItem: T.TextField { + topPadding: 4 + leftPadding: 4 - control.padding + rightPadding: 4 - control.padding + bottomPadding: 4 + + text: control.editable ? control.editText : control.displayText + + enabled: control.editable + autoScroll: control.editable + readOnly: control.down + inputMethodHints: control.inputMethodHints + validator: control.validator + + font: control.font + color: control.editable ? control.palette.text : control.palette.buttonText + selectionColor: control.palette.highlight + selectedTextColor: control.palette.highlightedText + verticalAlignment: Text.AlignVCenter + + background: PaddedRectangle { + clip: true + radius: 2 + padding: 1 + leftPadding: control.mirrored ? -2 : padding + rightPadding: !control.mirrored ? -2 : padding + color: control.palette.base + visible: control.editable && !control.flat + + Rectangle { + x: parent.width - width + y: 1 + width: 1 + height: parent.height - 2 + color: Fusion.buttonOutline(control.palette, control.activeFocus, control.enabled) + } + + Rectangle { + x: 1 + y: 1 + width: parent.width - 3 + height: 1 + color: Fusion.topShadow + } + } + + Rectangle { + x: 1 - control.leftPadding + y: 1 + width: control.width - 2 + height: control.height - 2 + color: "transparent" + border.color: Color.transparent(Fusion.highlightedOutline(control.palette), 40 / 255) + visible: control.activeFocus + radius: 1.7 + } + } + + background: ButtonPanel { + implicitWidth: 120 + implicitHeight: 24 + + control: control + visible: !control.flat || control.down + // ### TODO: fix control.contentItem.activeFocus + highlighted: control.visualFocus || control.contentItem.activeFocus + } + + popup: T.Popup { + width: control.width + height: Math.min(contentItem.implicitHeight + 2, control.Window.height - topMargin - bottomMargin) + topMargin: 6 + bottomMargin: 6 + palette: control.palette + padding: 1 + + contentItem: ListView { + clip: true + implicitHeight: contentHeight + model: control.delegateModel + currentIndex: control.highlightedIndex + highlightRangeMode: ListView.ApplyRange + highlightMoveDuration: 0 + + T.ScrollBar.vertical: ScrollBar { } + } + + background: Rectangle { + color: popup.palette.window + border.color: Fusion.outline(control.palette) + + Rectangle { + z: -1 + x: 1; y: 1 + width: parent.width + height: parent.height + color: control.palette.shadow + opacity: 0.2 + } + } + } +} diff --git a/src/imports/controls/fusion/DelayButton.qml b/src/imports/controls/fusion/DelayButton.qml new file mode 100644 index 00000000..c39cb9d0 --- /dev/null +++ b/src/imports/controls/fusion/DelayButton.qml @@ -0,0 +1,117 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Fusion 2.3 +import QtQuick.Controls.Fusion.impl 2.3 + +T.DelayButton { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, + contentItem.implicitWidth + leftPadding + rightPadding) + implicitHeight: Math.max(background ? background.implicitHeight : 0, + contentItem.implicitHeight + topPadding + bottomPadding) + baselineOffset: contentItem.y + contentItem.baselineOffset + + padding: 6 + + transition: Transition { + NumberAnimation { + duration: control.delay * (control.pressed ? 1.0 - control.progress : 0.3 * control.progress) + } + } + + contentItem: ItemGroup { + ClippedText { + clip: control.progress > 0 + clipX: -control.leftPadding + (control.mirrored ? 0 : control.progress * control.width) + clipWidth: control.width + visible: control.mirrored ? control.progress > 0 : control.progress < 1 + + text: control.text + font: control.font + color: control.mirrored ? control.palette.brightText : control.palette.buttonText + horizontalAlignment: Text.AlignHCenter + verticalAlignment: Text.AlignVCenter + elide: Text.ElideRight + } + + ClippedText { + clip: control.progress > 0 + clipX: -control.leftPadding + clipWidth: (control.mirrored ? 1.0 - control.progress : control.progress) * control.width + visible: control.mirrored ? control.progress < 1 : control.progress > 0 + + text: control.text + font: control.font + color: control.mirrored ? control.palette.buttonText : control.palette.brightText + horizontalAlignment: Text.AlignHCenter + verticalAlignment: Text.AlignVCenter + elide: Text.ElideRight + } + } + + background: ButtonPanel { + implicitWidth: 80 + implicitHeight: 24 + + control: control + highlighted: false + scale: control.mirrored ? -1 : 1 + + Rectangle { + width: control.progress * parent.width + height: parent.height + + radius: 2 + border.color: Qt.darker(Fusion.highlight(control.palette), 1.4) + gradient: Gradient { + GradientStop { + position: 0 + color: Qt.lighter(Fusion.highlight(control.palette), 1.2) + } + GradientStop { + position: 1 + color: Fusion.highlight(control.palette) + } + } + } + } +} diff --git a/src/imports/controls/fusion/Dial.qml b/src/imports/controls/fusion/Dial.qml new file mode 100644 index 00000000..e1df1740 --- /dev/null +++ b/src/imports/controls/fusion/Dial.qml @@ -0,0 +1,72 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Fusion 2.3 +import QtQuick.Controls.Fusion.impl 2.3 + +T.Dial { + id: control + + implicitWidth: 100 + implicitHeight: 100 + + background: DialImpl { + palette: control.palette + highlight: control.visualFocus + } + + handle: KnobImpl { + x: background.x + background.width / 2 - handle.width / 2 + y: background.y + background.height / 2 - handle.height / 2 + width: control.width / 7 + height: control.height / 7 + palette: control.palette + transform: [ + Translate { + y: -Math.min(background.width, background.height) * 0.42 + handle.height + }, + Rotation { + angle: control.angle + origin.x: handle.width / 2 + origin.y: handle.height / 2 + } + ] + } +} diff --git a/src/imports/controls/fusion/Dialog.qml b/src/imports/controls/fusion/Dialog.qml new file mode 100644 index 00000000..098bd21c --- /dev/null +++ b/src/imports/controls/fusion/Dialog.qml @@ -0,0 +1,103 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Fusion 2.3 +import QtQuick.Controls.Fusion.impl 2.3 + +T.Dialog { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, + header && header.visible ? header.implicitWidth : 0, + footer && footer.visible ? footer.implicitWidth : 0, + contentWidth > 0 ? contentWidth + leftPadding + rightPadding : 0) + implicitHeight: Math.max(background ? background.implicitHeight : 0, + (header && header.visible ? header.implicitHeight + spacing : 0) + + (footer && footer.visible ? footer.implicitHeight + spacing : 0) + + (contentHeight > 0 ? contentHeight + topPadding + bottomPadding : 0)) + + contentWidth: contentItem.implicitWidth || (contentChildren.length === 1 ? contentChildren[0].implicitWidth : 0) + contentHeight: contentItem.implicitHeight || (contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0) + + padding: 6 + + background: Rectangle { + color: control.palette.window + border.color: control.palette.mid + radius: 2 + + Rectangle { + z: -1 + x: 1; y: 1 + width: parent.width + height: parent.height + color: control.palette.shadow + opacity: 0.2 + radius: 2 + } + } + + header: Label { + text: control.title + visible: control.title + elide: Label.ElideRight + font.bold: true + padding: 6 + background: Rectangle { + x: 1; y: 1 + width: parent.width - 2 + height: parent.height - 1 + color: control.palette.window + radius: 2 + } + } + + footer: DialogButtonBox { + visible: count > 0 + } + + T.Overlay.modal: Rectangle { + color: Fusion.topShadow + } + + T.Overlay.modeless: Rectangle { + color: Fusion.topShadow + } +} diff --git a/src/imports/controls/fusion/DialogButtonBox.qml b/src/imports/controls/fusion/DialogButtonBox.qml new file mode 100644 index 00000000..d2085e94 --- /dev/null +++ b/src/imports/controls/fusion/DialogButtonBox.qml @@ -0,0 +1,77 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Fusion 2.3 +import QtQuick.Controls.Fusion.impl 2.3 + +T.DialogButtonBox { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, + contentItem.implicitWidth + leftPadding + rightPadding) + implicitHeight: Math.max(background ? background.implicitHeight : 0, + contentItem.implicitHeight + topPadding + bottomPadding) + + spacing: 6 + padding: 6 + alignment: Qt.AlignRight + + delegate: Button { } + + contentItem: ListView { + implicitWidth: contentWidth + implicitHeight: 24 + + model: control.contentModel + spacing: control.spacing + orientation: ListView.Horizontal + boundsBehavior: Flickable.StopAtBounds + snapMode: ListView.SnapToItem + } + + background: Rectangle { + implicitHeight: 32 + x: 1; y: 1 + width: parent.width - 2 + height: parent.height - 2 + color: control.palette.window + radius: 2 + } +} diff --git a/src/imports/controls/fusion/Drawer.qml b/src/imports/controls/fusion/Drawer.qml new file mode 100644 index 00000000..b209c6f9 --- /dev/null +++ b/src/imports/controls/fusion/Drawer.qml @@ -0,0 +1,90 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Fusion 2.3 +import QtQuick.Controls.Fusion.impl 2.3 + +T.Drawer { + id: control + + parent: T.Overlay.overlay + + implicitWidth: Math.max(background ? background.implicitWidth : 0, contentWidth + leftPadding + rightPadding) + implicitHeight: Math.max(background ? background.implicitHeight : 0, contentHeight + topPadding + bottomPadding) + + contentWidth: contentItem.implicitWidth || (contentChildren.length === 1 ? contentChildren[0].implicitWidth : 0) + contentHeight: contentItem.implicitHeight || (contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0) + + topPadding: control.edge === Qt.BottomEdge + leftPadding: control.edge === Qt.RightEdge + rightPadding: control.edge === Qt.LeftEdge + bottomPadding: control.edge === Qt.TopEdge + + enter: Transition { SmoothedAnimation { velocity: 5 } } + exit: Transition { SmoothedAnimation { velocity: 5 } } + + background: Rectangle { + color: control.palette.window + readonly property bool horizontal: control.edge === Qt.LeftEdge || control.edge === Qt.RightEdge + Rectangle { + width: parent.horizontal ? 1 : parent.width + height: parent.horizontal ? parent.height : 1 + color: control.palette.mid + x: control.edge === Qt.LeftEdge ? parent.width - 1 : 0 + y: control.edge === Qt.TopEdge ? parent.height - 1 : 0 + } + Rectangle { + width: parent.horizontal ? 1 : parent.width + height: parent.horizontal ? parent.height : 1 + color: control.palette.shadow + opacity: 0.2 + x: control.edge === Qt.LeftEdge ? parent.width : 0 + y: control.edge === Qt.TopEdge ? parent.height : 0 + } + } + + T.Overlay.modal: Rectangle { + color: Fusion.topShadow + } + + T.Overlay.modeless: Rectangle { + color: Fusion.topShadow + } +} diff --git a/src/imports/controls/fusion/Frame.qml b/src/imports/controls/fusion/Frame.qml new file mode 100644 index 00000000..faefe1ad --- /dev/null +++ b/src/imports/controls/fusion/Frame.qml @@ -0,0 +1,59 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Fusion 2.3 +import QtQuick.Controls.Fusion.impl 2.3 + +T.Frame { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, contentWidth + leftPadding + rightPadding) + implicitHeight: Math.max(background ? background.implicitHeight : 0, contentHeight + topPadding + bottomPadding) + + contentWidth: contentItem.implicitWidth || (contentChildren.length === 1 ? contentChildren[0].implicitWidth : 0) + contentHeight: contentItem.implicitHeight || (contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0) + + padding: 9 + + background: Rectangle { + color: "transparent" + border.color: Qt.lighter(Fusion.outline(control.palette), 1.08) + } +} diff --git a/src/imports/controls/fusion/GroupBox.qml b/src/imports/controls/fusion/GroupBox.qml new file mode 100644 index 00000000..5331e6fa --- /dev/null +++ b/src/imports/controls/fusion/GroupBox.qml @@ -0,0 +1,79 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Fusion 2.3 +import QtQuick.Controls.Fusion.impl 2.3 + +T.GroupBox { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, + label ? label.implicitWidth + leftPadding + rightPadding : 0, + contentWidth + leftPadding + rightPadding) + implicitHeight: Math.max(background ? background.implicitHeight : 0, contentHeight + topPadding + bottomPadding) + + contentWidth: contentItem.implicitWidth || (contentChildren.length === 1 ? contentChildren[0].implicitWidth : 0) + contentHeight: contentItem.implicitHeight || (contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0) + + spacing: 6 + padding: 9 + topPadding: padding + (label && label.implicitWidth > 0 ? label.implicitHeight + spacing : 0) + + label: Text { + x: control.leftPadding + width: control.availableWidth + + text: control.title + font: control.font + color: control.palette.windowText + elide: Text.ElideRight + verticalAlignment: Text.AlignVCenter + } + + background: Rectangle { + y: control.topPadding - control.padding + width: parent.width + height: parent.height - control.topPadding + control.padding + + radius: 2 + color: Color.transparent("black", 3 / 255) + border.color: Qt.lighter(Fusion.outline(control.palette), 1.08) + } +} diff --git a/src/imports/controls/fusion/ItemDelegate.qml b/src/imports/controls/fusion/ItemDelegate.qml new file mode 100644 index 00000000..cf7167fc --- /dev/null +++ b/src/imports/controls/fusion/ItemDelegate.qml @@ -0,0 +1,78 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Fusion 2.3 +import QtQuick.Controls.Fusion.impl 2.3 + +T.ItemDelegate { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, + contentItem.implicitWidth + leftPadding + rightPadding) + implicitHeight: Math.max(background ? background.implicitHeight : 0, + Math.max(contentItem.implicitHeight, + indicator ? indicator.implicitHeight : 0) + topPadding + bottomPadding) + baselineOffset: contentItem.y + contentItem.baselineOffset + + padding: 6 + spacing: 6 + + icon.width: 16 + icon.height: 16 + + contentItem: IconLabel { + spacing: control.spacing + mirrored: control.mirrored + display: control.display + alignment: control.display === IconLabel.IconOnly || control.display === IconLabel.TextUnderIcon ? Qt.AlignCenter : Qt.AlignLeft + + icon: control.icon + text: control.text + font: control.font + color: control.highlighted ? Fusion.highlightedText(control.palette) : control.palette.text + } + + background: Rectangle { + implicitWidth: 100 + implicitHeight: 20 + color: control.down ? Fusion.buttonColor(control.palette, false, true, true) + : control.highlighted ? Fusion.highlight(control.palette) : control.palette.base + } +} diff --git a/src/imports/controls/fusion/Label.qml b/src/imports/controls/fusion/Label.qml new file mode 100644 index 00000000..92881b4d --- /dev/null +++ b/src/imports/controls/fusion/Label.qml @@ -0,0 +1,49 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Fusion 2.3 +import QtQuick.Controls.Fusion.impl 2.3 + +T.Label { + id: control + + color: control.palette.windowText + linkColor: control.palette.link +} diff --git a/src/imports/controls/fusion/Menu.qml b/src/imports/controls/fusion/Menu.qml new file mode 100644 index 00000000..a767354c --- /dev/null +++ b/src/imports/controls/fusion/Menu.qml @@ -0,0 +1,93 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Fusion 2.3 +import QtQuick.Controls.Fusion.impl 2.3 + +T.Menu { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, + contentItem ? contentItem.implicitWidth + leftPadding + rightPadding : 0) + implicitHeight: Math.max(background ? background.implicitHeight : 0, + contentItem ? contentItem.implicitHeight : 0) + topPadding + bottomPadding + + margins: 0 + padding: 1 + overlap: 2 + + delegate: MenuItem { } + + contentItem: ListView { + implicitHeight: contentHeight + model: control.contentModel + // TODO: improve this? + interactive: ApplicationWindow.window ? contentHeight > ApplicationWindow.window.height : false + clip: true + currentIndex: control.currentIndex + + ScrollIndicator.vertical: ScrollIndicator {} + } + + background: Rectangle { + implicitWidth: 200 + implicitHeight: 20 + + color: control.palette.base + border.color: Fusion.outline(control.palette) + + Rectangle { + z: -1 + x: 1; y: 1 + width: parent.width + height: parent.height + color: control.palette.shadow + opacity: 0.2 + } + } + + T.Overlay.modal: Rectangle { + color: Fusion.topShadow + } + + T.Overlay.modeless: Rectangle { + color: Fusion.topShadow + } +} diff --git a/src/imports/controls/fusion/MenuBar.qml b/src/imports/controls/fusion/MenuBar.qml new file mode 100644 index 00000000..061e718b --- /dev/null +++ b/src/imports/controls/fusion/MenuBar.qml @@ -0,0 +1,74 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Fusion 2.3 +import QtQuick.Controls.Fusion.impl 2.3 + +T.MenuBar { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, + contentWidth + leftPadding + rightPadding) + implicitHeight: Math.max(background ? background.implicitHeight : 0, + contentHeight + topPadding + bottomPadding) + + delegate: MenuBarItem { } + + contentItem: Row { + spacing: control.spacing + Repeater { + model: control.contentModel + } + } + + background: Rectangle { + implicitHeight: 20 + + color: control.palette.window + + Rectangle { + y: parent.height - height + width: parent.width + height: 1 + color: Fusion.mergedColors(Qt.darker(control.palette.window, 1.2), + Qt.lighter(Fusion.outline(control.palette), 1.4), 60) + } + } +} diff --git a/src/imports/controls/fusion/MenuBarItem.qml b/src/imports/controls/fusion/MenuBarItem.qml new file mode 100644 index 00000000..6a23484a --- /dev/null +++ b/src/imports/controls/fusion/MenuBarItem.qml @@ -0,0 +1,79 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Fusion 2.3 +import QtQuick.Controls.Fusion.impl 2.3 + +T.MenuBarItem { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, + contentItem.implicitWidth + leftPadding + rightPadding) + implicitHeight: Math.max(background ? background.implicitHeight : 0, + Math.max(contentItem.implicitHeight, + indicator ? indicator.implicitHeight : 0) + topPadding + bottomPadding) + baselineOffset: contentItem.y + contentItem.baselineOffset + + padding: 6 + spacing: 6 + + icon.width: 16 + icon.height: 16 + + contentItem: IconLabel { + spacing: control.spacing + mirrored: control.mirrored + display: control.display + alignment: Qt.AlignLeft + + icon: control.icon + text: control.text + font: control.font + color: control.down || control.highlighted ? Fusion.highlightedText(control.palette) : control.palette.text + } + + background: Rectangle { + implicitWidth: 20 + implicitHeight: 20 + + color: Fusion.highlight(control.palette) + visible: control.down || control.highlighted + } +} diff --git a/src/imports/controls/fusion/MenuItem.qml b/src/imports/controls/fusion/MenuItem.qml new file mode 100644 index 00000000..21f42c53 --- /dev/null +++ b/src/imports/controls/fusion/MenuItem.qml @@ -0,0 +1,104 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Fusion 2.3 +import QtQuick.Controls.Fusion.impl 2.3 + +T.MenuItem { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, + contentItem.implicitWidth + leftPadding + rightPadding) + implicitHeight: Math.max(background ? background.implicitHeight : 0, + Math.max(contentItem.implicitHeight, + indicator ? indicator.implicitHeight : 0) + topPadding + bottomPadding) + baselineOffset: contentItem.y + contentItem.baselineOffset + + padding: 6 + spacing: 6 + + icon.width: 16 + icon.height: 16 + + contentItem: IconLabel { + readonly property real arrowPadding: control.subMenu && control.arrow ? control.arrow.width + control.spacing : 0 + readonly property real indicatorPadding: control.checkable && control.indicator ? control.indicator.width + control.spacing : 0 + leftPadding: !control.mirrored ? indicatorPadding : arrowPadding + rightPadding: control.mirrored ? indicatorPadding : arrowPadding + + spacing: control.spacing + mirrored: control.mirrored + display: control.display + alignment: Qt.AlignLeft + + icon: control.icon + text: control.text + font: control.font + color: control.down || control.highlighted ? Fusion.highlightedText(control.palette) : control.palette.text + } + + arrow: ColorImage { + x: control.mirrored ? control.padding : control.width - width - control.padding + y: control.topPadding + (control.availableHeight - height) / 2 + width: 20 + + visible: control.subMenu + rotation: control.mirrored ? 90 : -90 + color: control.down || control.hovered || control.highlighted ? Fusion.highlightedText(control.palette) : control.palette.text + source: "qrc:/qt-project.org/imports/QtQuick/Controls.2/Fusion/images/arrow.png" + fillMode: Image.Pad + } + + indicator: CheckIndicator { + x: control.mirrored ? control.width - width - control.rightPadding : control.leftPadding + y: control.topPadding + (control.availableHeight - height) / 2 + + control: control + visible: control.checkable + } + + background: Rectangle { + implicitWidth: 200 + implicitHeight: 20 + + color: Fusion.highlight(control.palette) + visible: control.down || control.highlighted + } +} diff --git a/src/imports/controls/fusion/MenuSeparator.qml b/src/imports/controls/fusion/MenuSeparator.qml new file mode 100644 index 00000000..8bee8f65 --- /dev/null +++ b/src/imports/controls/fusion/MenuSeparator.qml @@ -0,0 +1,59 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Fusion 2.3 +import QtQuick.Controls.Fusion.impl 2.3 + +T.MenuSeparator { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, contentItem.implicitWidth + leftPadding + rightPadding) + implicitHeight: Math.max(background ? background.implicitHeight : 0, contentItem.implicitHeight + topPadding + bottomPadding) + + padding: 5 + topPadding: 1 + bottomPadding: 1 + + contentItem: Rectangle { + implicitWidth: 188 + implicitHeight: 1 + color: Qt.lighter(Fusion.darkShade, 1.06) + } +} diff --git a/src/imports/controls/fusion/Page.qml b/src/imports/controls/fusion/Page.qml new file mode 100644 index 00000000..7c6cb934 --- /dev/null +++ b/src/imports/controls/fusion/Page.qml @@ -0,0 +1,62 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Fusion 2.3 +import QtQuick.Controls.Fusion.impl 2.3 + +T.Page { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, + Math.max(contentWidth, + header && header.visible ? header.implicitWidth : 0, + footer && footer.visible ? footer.implicitWidth : 0) + leftPadding + rightPadding) + implicitHeight: Math.max(background ? background.implicitHeight : 0, + contentHeight + topPadding + bottomPadding + + (header && header.visible ? header.implicitHeight + spacing : 0) + + (footer && footer.visible ? footer.implicitHeight + spacing : 0)) + + contentWidth: contentItem.implicitWidth || (contentChildren.length === 1 ? contentChildren[0].implicitWidth : 0) + contentHeight: contentItem.implicitHeight || (contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0) + + background: Rectangle { + color: palette.window + } +} diff --git a/src/imports/controls/fusion/PageIndicator.qml b/src/imports/controls/fusion/PageIndicator.qml new file mode 100644 index 00000000..ff3a935b --- /dev/null +++ b/src/imports/controls/fusion/PageIndicator.qml @@ -0,0 +1,74 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Fusion 2.3 +import QtQuick.Controls.Fusion.impl 2.3 + +T.PageIndicator { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, + contentItem.implicitWidth + leftPadding + rightPadding) + implicitHeight: Math.max(background ? background.implicitHeight : 0, + contentItem.implicitHeight + topPadding + bottomPadding) + + padding: 4 + spacing: 4 + + delegate: Rectangle { + implicitWidth: 6 + implicitHeight: 6 + + radius: width / 2 + color: control.palette.shadow + + opacity: index === currentIndex ? 0.95 : pressed ? 0.75 : 0.45 + Behavior on opacity { OpacityAnimator { duration: 100 } } + } + + contentItem: Row { + spacing: control.spacing + + Repeater { + model: control.count + delegate: control.delegate + } + } +} diff --git a/src/imports/controls/fusion/Pane.qml b/src/imports/controls/fusion/Pane.qml new file mode 100644 index 00000000..b91e5414 --- /dev/null +++ b/src/imports/controls/fusion/Pane.qml @@ -0,0 +1,58 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Fusion 2.3 +import QtQuick.Controls.Fusion.impl 2.3 + +T.Pane { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, contentWidth + leftPadding + rightPadding) + implicitHeight: Math.max(background ? background.implicitHeight : 0, contentHeight + topPadding + bottomPadding) + + contentWidth: contentItem.implicitWidth || (contentChildren.length === 1 ? contentChildren[0].implicitWidth : 0) + contentHeight: contentItem.implicitHeight || (contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0) + + padding: 9 + + background: Rectangle { + color: palette.window + } +} diff --git a/src/imports/controls/fusion/Popup.qml b/src/imports/controls/fusion/Popup.qml new file mode 100644 index 00000000..4d3031eb --- /dev/null +++ b/src/imports/controls/fusion/Popup.qml @@ -0,0 +1,70 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Fusion 2.3 +import QtQuick.Controls.Fusion.impl 2.3 + +T.Popup { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, + contentWidth > 0 ? contentWidth + leftPadding + rightPadding : 0) + implicitHeight: Math.max(background ? background.implicitHeight : 0, + contentHeight > 0 ? contentHeight + topPadding + bottomPadding : 0) + + contentWidth: contentItem.implicitWidth || (contentChildren.length === 1 ? contentChildren[0].implicitWidth : 0) + contentHeight: contentItem.implicitHeight || (contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0) + + padding: 6 + + background: Rectangle { + color: control.palette.window + border.color: control.palette.mid + radius: 2 + } + + T.Overlay.modal: Rectangle { + color: Fusion.topShadow + } + + T.Overlay.modeless: Rectangle { + color: Fusion.topShadow + } +} diff --git a/src/imports/controls/fusion/ProgressBar.qml b/src/imports/controls/fusion/ProgressBar.qml new file mode 100644 index 00000000..3ca7a09b --- /dev/null +++ b/src/imports/controls/fusion/ProgressBar.qml @@ -0,0 +1,117 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Fusion 2.3 +import QtQuick.Controls.Fusion.impl 2.3 + +T.ProgressBar { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, + contentItem ? contentItem.implicitWidth + leftPadding + rightPadding : 0) + implicitHeight: Math.max(background ? background.implicitHeight : 0, + contentItem ? contentItem.implicitHeight + topPadding + bottomPadding : 0) + + contentItem: Item { + implicitWidth: 120 + implicitHeight: 24 + scale: control.mirrored ? -1 : 1 + + Rectangle { + height: parent.height + width: (control.indeterminate ? 1.0 : control.position) * parent.width + + radius: 2 + border.color: Qt.darker(Fusion.highlight(control.palette), 1.4) + gradient: Gradient { + GradientStop { + position: 0 + color: Qt.lighter(Fusion.highlight(control.palette), 1.2) + } + GradientStop { + position: 1 + color: Fusion.highlight(control.palette) + } + } + } + + Item { + x: 1; y: 1 + width: parent.width - 2 + height: parent.height - 2 + visible: control.indeterminate + clip: true + + ColorImage { + width: Math.ceil(parent.width / implicitWidth + 1) * implicitWidth + height: parent.height + + mirror: control.mirrored + fillMode: Image.TileHorizontally + source: "qrc:/qt-project.org/imports/QtQuick/Controls.2/Fusion/images/progressmask.png" + color: Color.transparent(Qt.lighter(Fusion.highlight(control.palette), 1.2), 160 / 255) + + visible: control.indeterminate + NumberAnimation on x { + running: control.indeterminate && control.visible + from: -31 // progressmask.png width + to: 0 + loops: Animation.Infinite + duration: 750 + } + } + } + } + + background: Rectangle { + implicitWidth: 120 + implicitHeight: 24 + + radius: 2 + color: control.palette.base + border.color: Fusion.outline(control.palette) + + Rectangle { + x: 1; y: 1; height: 1 + width: parent.width - 2 + color: Fusion.topShadow + } + } +} diff --git a/src/imports/controls/fusion/RadioButton.qml b/src/imports/controls/fusion/RadioButton.qml new file mode 100644 index 00000000..642c8acf --- /dev/null +++ b/src/imports/controls/fusion/RadioButton.qml @@ -0,0 +1,73 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Fusion 2.3 +import QtQuick.Controls.Fusion.impl 2.3 + +T.RadioButton { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, + contentItem.implicitWidth + leftPadding + rightPadding) + implicitHeight: Math.max(background ? background.implicitHeight : 0, + Math.max(contentItem.implicitHeight, + indicator ? indicator.implicitHeight : 0) + topPadding + bottomPadding) + baselineOffset: contentItem.y + contentItem.baselineOffset + + padding: 6 + spacing: 6 + + indicator: RadioIndicator { + x: text ? (control.mirrored ? control.width - width - control.rightPadding : control.leftPadding) : control.leftPadding + (control.availableWidth - width) / 2 + y: control.topPadding + (control.availableHeight - height) / 2 + control: control + } + + contentItem: Text { + leftPadding: control.indicator && !control.mirrored ? control.indicator.width + control.spacing : 0 + rightPadding: control.indicator && control.mirrored ? control.indicator.width + control.spacing : 0 + + text: control.text + font: control.font + color: control.palette.windowText + elide: Text.ElideRight + verticalAlignment: Text.AlignVCenter + } +} diff --git a/src/imports/controls/fusion/RadioDelegate.qml b/src/imports/controls/fusion/RadioDelegate.qml new file mode 100644 index 00000000..9b7df468 --- /dev/null +++ b/src/imports/controls/fusion/RadioDelegate.qml @@ -0,0 +1,88 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Fusion 2.3 +import QtQuick.Controls.Fusion.impl 2.3 + +T.RadioDelegate { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, + contentItem.implicitWidth + leftPadding + rightPadding) + implicitHeight: Math.max(background ? background.implicitHeight : 0, + Math.max(contentItem.implicitHeight, + indicator ? indicator.implicitHeight : 0) + topPadding + bottomPadding) + baselineOffset: contentItem.y + contentItem.baselineOffset + + padding: 6 + spacing: 6 + + icon.width: 16 + icon.height: 16 + + contentItem: IconLabel { + leftPadding: control.mirrored ? control.indicator.width + control.spacing : 0 + rightPadding: !control.mirrored ? control.indicator.width + control.spacing : 0 + + spacing: control.spacing + mirrored: control.mirrored + display: control.display + alignment: control.display === IconLabel.IconOnly || control.display === IconLabel.TextUnderIcon ? Qt.AlignCenter : Qt.AlignLeft + + icon: control.icon + text: control.text + font: control.font + color: control.highlighted ? Fusion.highlightedText(control.palette) : control.palette.text + } + + indicator: RadioIndicator { + x: control.mirrored ? control.leftPadding : control.width - width - control.rightPadding + y: control.topPadding + (control.availableHeight - height) / 2 + + control: control + } + + background: Rectangle { + implicitWidth: 100 + implicitHeight: 20 + color: control.down ? Fusion.buttonColor(control.palette, false, true, true) + : control.highlighted ? Fusion.highlight(control.palette) : control.palette.base + } +} diff --git a/src/imports/controls/CheckIndicator.qml b/src/imports/controls/fusion/RadioIndicator.qml index 0be3e6cd..2aceab2e 100644 --- a/src/imports/controls/CheckIndicator.qml +++ b/src/imports/controls/fusion/RadioIndicator.qml @@ -34,42 +34,45 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Controls 2.2 -import QtQuick.Controls.impl 2.2 +import QtQuick 2.10 +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Fusion 2.3 +import QtQuick.Controls.Fusion.impl 2.3 Rectangle { id: indicator property Item control + readonly property color pressedColor: Fusion.mergedColors(control.palette.base, control.palette.windowText, 85) + readonly property color checkMarkColor: Qt.darker(control.palette.text, 1.2) - implicitWidth: 28 - implicitHeight: 28 + implicitWidth: 14 + implicitHeight: 14 - color: control.enabled ? (control.down - ? (control.visualFocus ? Default.focusPressedColor : Default.indicatorPressedColor) - : Default.backgroundColor) : Default.disabledDarkColor - border.width: control.visualFocus ? 2 : 1 - border.color: control.enabled ? (control.visualFocus - ? Default.focusColor - : (control.down ? Default.indicatorFramePressedColor : Default.indicatorFrameColor)) : "transparent" - opacity: enabled ? 1 : 0.3 + radius: width / 2 + color: control.down ? indicator.pressedColor : control.palette.base + border.color: control.visualFocus ? Fusion.highlightedOutline(control.palette) + : Qt.darker(control.palette.window, 1.5) - Image { - x: (parent.width - width) / 2 - y: (parent.height - height) / 2 - source: "image://default/check/" + (control.visualFocus ? Default.focusColor : Default.textColor) - sourceSize.width: width - sourceSize.height: height - visible: control.checkState === Qt.Checked + Rectangle { + y: 1 + width: parent.width + height: parent.height - 1 + radius: width / 2 + color: "transparent" + border.color: Fusion.topShadow + visible: control.enabled && !control.down } Rectangle { x: (parent.width - width) / 2 y: (parent.height - height) / 2 - width: 16 - height: 3 - color: control.visualFocus ? Default.focusColor : Default.frameDarkColor - visible: control.checkState === Qt.PartiallyChecked + width: parent.width / 2.32 + height: parent.height / 2.32 + radius: width / 2 + color: Color.transparent(indicator.checkMarkColor, 180 / 255) + border.color: Color.transparent(indicator.checkMarkColor, 200 / 255) + visible: control.checked } } diff --git a/src/imports/controls/fusion/RangeSlider.qml b/src/imports/controls/fusion/RangeSlider.qml new file mode 100644 index 00000000..d5ec1e8a --- /dev/null +++ b/src/imports/controls/fusion/RangeSlider.qml @@ -0,0 +1,82 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Fusion 2.3 +import QtQuick.Controls.Fusion.impl 2.3 + +T.RangeSlider { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, + Math.max(first.handle ? first.handle.implicitWidth : 0, + second.handle ? second.handle.implicitWidth : 0) + leftPadding + rightPadding) + implicitHeight: Math.max(background ? background.implicitHeight : 0, + Math.max(first.handle ? first.handle.implicitHeight : 0, + second.handle ? second.handle.implicitHeight : 0) + topPadding + bottomPadding) + + first.handle: SliderHandle { + x: control.leftPadding + Math.round(control.horizontal ? control.first.visualPosition * (control.availableWidth - width) : (control.availableWidth - width) / 2) + y: control.topPadding + Math.round(control.horizontal ? (control.availableHeight - height) / 2 : control.first.visualPosition * (control.availableHeight - height)) + + palette: control.palette + pressed: control.first.pressed + hovered: control.first.hovered + vertical: control.vertical + visualFocus: activeFocus + } + + second.handle: SliderHandle { + x: control.leftPadding + Math.round(control.horizontal ? control.second.visualPosition * (control.availableWidth - width) : (control.availableWidth - width) / 2) + y: control.topPadding + Math.round(control.horizontal ? (control.availableHeight - height) / 2 : control.second.visualPosition * (control.availableHeight - height)) + + palette: control.palette + pressed: control.second.pressed + hovered: control.second.hovered + vertical: control.vertical + visualFocus: activeFocus + } + + background: SliderGroove { + control: control + offset: control.first.position + progress: control.second.position + visualProgress: control.second.visualPosition + } +} diff --git a/src/imports/controls/fusion/RoundButton.qml b/src/imports/controls/fusion/RoundButton.qml new file mode 100644 index 00000000..981a44ab --- /dev/null +++ b/src/imports/controls/fusion/RoundButton.qml @@ -0,0 +1,100 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Fusion 2.3 +import QtQuick.Controls.Fusion.impl 2.3 + +T.RoundButton { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, + contentItem.implicitWidth + leftPadding + rightPadding) + implicitHeight: Math.max(background ? background.implicitHeight : 0, + contentItem.implicitHeight + topPadding + bottomPadding) + baselineOffset: contentItem.y + contentItem.baselineOffset + + padding: 6 + spacing: 6 + + icon.width: 16 + icon.height: 16 + + contentItem: IconLabel { + spacing: control.spacing + mirrored: control.mirrored + display: control.display + + icon: control.icon + text: control.text + font: control.font + color: control.palette.buttonText + } + + background: Rectangle { + implicitWidth: 32 + implicitHeight: 32 + visible: !control.flat || control.down || control.checked + + gradient: Gradient { + GradientStop { + position: 0 + color: control.down || control.checked ? Fusion.buttonColor(control.palette, control.highlighted, control.down || control.checked, control.hovered) + : Fusion.gradientStart(Fusion.buttonColor(control.palette, control.highlighted, control.down, control.hovered)) + } + GradientStop { + position: 1 + color: control.down || control.checked ? Fusion.buttonColor(control.palette, control.highlighted, control.down || control.checked, control.hovered) + : Fusion.gradientStop(Fusion.buttonColor(control.palette, control.highlighted, control.down, control.hovered)) + } + } + + radius: control.radius + border.color: Fusion.buttonOutline(control.palette, control.highlighted || control.visualFocus, control.enabled) + + Rectangle { + x: 1; y: 1 + width: parent.width - 2 + height: parent.height - 2 + border.color: Fusion.innerContrastLine + color: "transparent" + radius: control.radius + } + } +} diff --git a/src/imports/controls/fusion/ScrollBar.qml b/src/imports/controls/fusion/ScrollBar.qml new file mode 100644 index 00000000..8668838d --- /dev/null +++ b/src/imports/controls/fusion/ScrollBar.qml @@ -0,0 +1,77 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Fusion 2.3 +import QtQuick.Controls.Fusion.impl 2.3 + +T.ScrollBar { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, + contentItem.implicitWidth + leftPadding + rightPadding) + implicitHeight: Math.max(background ? background.implicitHeight : 0, + contentItem.implicitHeight + topPadding + bottomPadding) + + padding: 2 + visible: control.policy !== T.ScrollBar.AlwaysOff + + contentItem: Rectangle { + implicitWidth: control.interactive ? 6 : 2 + implicitHeight: control.interactive ? 6 : 2 + + radius: width / 2 + color: control.pressed ? control.palette.dark : control.palette.mid + opacity: 0.0 + + states: State { + name: "active" + when: control.policy === T.ScrollBar.AlwaysOn || (control.active && control.size < 1.0) + PropertyChanges { target: control.contentItem; opacity: 0.75 } + } + + transitions: Transition { + from: "active" + SequentialAnimation { + PauseAnimation { duration: 450 } + NumberAnimation { target: control.contentItem; duration: 200; property: "opacity"; to: 0.0 } + } + } + } +} diff --git a/src/imports/controls/fusion/ScrollIndicator.qml b/src/imports/controls/fusion/ScrollIndicator.qml new file mode 100644 index 00000000..3a0c17b6 --- /dev/null +++ b/src/imports/controls/fusion/ScrollIndicator.qml @@ -0,0 +1,78 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Fusion 2.3 +import QtQuick.Controls.Fusion.impl 2.3 + +T.ScrollIndicator { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, + contentItem.implicitWidth + leftPadding + rightPadding) + implicitHeight: Math.max(background ? background.implicitHeight : 0, + contentItem.implicitHeight + topPadding + bottomPadding) + + padding: 2 + + contentItem: Rectangle { + implicitWidth: 2 + implicitHeight: 2 + + color: control.palette.mid + visible: control.size < 1.0 + opacity: 0.0 + + states: State { + name: "active" + when: control.active + PropertyChanges { target: control.contentItem; opacity: 0.75 } + } + + transitions: [ + Transition { + from: "active" + SequentialAnimation { + PauseAnimation { duration: 450 } + NumberAnimation { target: control.contentItem; duration: 200; property: "opacity"; to: 0.0 } + } + } + ] + } +} diff --git a/src/imports/controls/fusion/ScrollView.qml b/src/imports/controls/fusion/ScrollView.qml new file mode 100644 index 00000000..560f9f71 --- /dev/null +++ b/src/imports/controls/fusion/ScrollView.qml @@ -0,0 +1,68 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Fusion 2.3 +import QtQuick.Controls.Fusion.impl 2.3 + +T.ScrollView { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, contentWidth + leftPadding + rightPadding) + implicitHeight: Math.max(background ? background.implicitHeight : 0, contentHeight + topPadding + bottomPadding) + + contentWidth: contentItem.implicitWidth || (contentChildren.length === 1 ? contentChildren[0].implicitWidth : -1) + contentHeight: contentItem.implicitHeight || (contentChildren.length === 1 ? contentChildren[0].implicitHeight : -1) + + ScrollBar.vertical: ScrollBar { + parent: control + x: control.mirrored ? 0 : control.width - width + y: control.topPadding + height: control.availableHeight + active: control.ScrollBar.horizontal.active + } + + ScrollBar.horizontal: ScrollBar { + parent: control + x: control.leftPadding + y: control.height - height + width: control.availableWidth + active: control.ScrollBar.vertical.active + } +} diff --git a/src/imports/controls/fusion/Slider.qml b/src/imports/controls/fusion/Slider.qml new file mode 100644 index 00000000..0df63f8e --- /dev/null +++ b/src/imports/controls/fusion/Slider.qml @@ -0,0 +1,68 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Fusion 2.3 +import QtQuick.Controls.Fusion.impl 2.3 + +T.Slider { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, + (handle ? handle.implicitWidth : 0) + leftPadding + rightPadding) + implicitHeight: Math.max(background ? background.implicitHeight : 0, + (handle ? handle.implicitHeight : 0) + topPadding + bottomPadding) + + handle: SliderHandle { + x: control.leftPadding + Math.round(control.horizontal ? control.visualPosition * (control.availableWidth - width) : (control.availableWidth - width) / 2) + y: control.topPadding + Math.round(control.horizontal ? (control.availableHeight - height) / 2 : control.visualPosition * (control.availableHeight - height)) + + palette: control.palette + pressed: control.pressed + hovered: control.hovered + vertical: control.vertical + visualFocus: control.visualFocus + } + + background: SliderGroove { + control: control + progress: control.position + visualProgress: control.visualPosition + } +} diff --git a/src/imports/controls/fusion/SliderGroove.qml b/src/imports/controls/fusion/SliderGroove.qml new file mode 100644 index 00000000..abe659da --- /dev/null +++ b/src/imports/controls/fusion/SliderGroove.qml @@ -0,0 +1,94 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Fusion 2.3 +import QtQuick.Controls.Fusion.impl 2.3 + +Rectangle { + id: groove + + property Item control + property real offset + property real progress + property real visualProgress + + x: control.horizontal ? 0 : (control.availableWidth - width) / 2 + y: control.horizontal ? (control.availableHeight - height) / 2 : 0 + + implicitWidth: control.horizontal ? 160 : 5 + implicitHeight: control.horizontal ? 5 : 160 + width: control.horizontal ? control.availableWidth : implicitWidth + height: control.horizontal ? implicitHeight : control.availableHeight + + radius: 2 + border.color: Fusion.outline(control.palette) + scale: control.horizontal && control.mirrored ? -1 : 1 + + gradient: Gradient { + GradientStop { + position: 0 + color: Qt.darker(Fusion.grooveColor(control.palette), 1.1) + } + GradientStop { + position: 1 + color: Qt.lighter(Fusion.grooveColor(control.palette), 1.1) + } + } + + Rectangle { + x: control.horizontal ? groove.offset * parent.width : 0 + y: control.horizontal ? 0 : groove.visualProgress * parent.height + width: control.horizontal ? groove.progress * parent.width - groove.offset * parent.width : 5 + height: control.horizontal ? 5 : groove.progress * parent.height - groove.offset * parent.height + + radius: 2 + border.color: Qt.darker(Fusion.highlightedOutline(control.palette), 1.1) + + gradient: Gradient { + GradientStop { + position: 0 + color: Fusion.highlight(control.palette) + } + GradientStop { + position: 1 + color: Qt.lighter(Fusion.highlight(control.palette), 1.2) + } + } + } +} diff --git a/src/imports/controls/fusion/SliderHandle.qml b/src/imports/controls/fusion/SliderHandle.qml new file mode 100644 index 00000000..91f7711c --- /dev/null +++ b/src/imports/controls/fusion/SliderHandle.qml @@ -0,0 +1,86 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Fusion 2.3 +import QtQuick.Controls.Fusion.impl 2.3 + +Rectangle { + id: handle + + property var palette + property bool pressed + property bool hovered + property bool vertical + property bool visualFocus + + implicitWidth: 13 + implicitHeight: 13 + + gradient: Gradient { + GradientStop { + position: 0 + color: Fusion.gradientStart(Fusion.buttonColor(handle.palette, handle.visualFocus, handle.pressed, handle.hovered)) + } + GradientStop { + position: 1 + color: Fusion.gradientStop(Fusion.buttonColor(handle.palette, handle.visualFocus, handle.pressed, handle.hovered)) + } + } + rotation: handle.vertical ? -90 : 0 + border.width: 1 + border.color: "transparent" + radius: 2 + + Rectangle { + width: parent.width + height: parent.height + border.color: handle.visualFocus ? Fusion.highlightedOutline(handle.palette) : Fusion.outline(handle.palette) + color: "transparent" + radius: 2 + + Rectangle { + x: 1; y: 1 + width: parent.width - 2 + height: parent.height - 2 + border.color: Fusion.innerContrastLine + color: "transparent" + radius: 2 + } + } +} diff --git a/src/imports/controls/fusion/SpinBox.qml b/src/imports/controls/fusion/SpinBox.qml new file mode 100644 index 00000000..ca9b2ed2 --- /dev/null +++ b/src/imports/controls/fusion/SpinBox.qml @@ -0,0 +1,183 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Fusion 2.3 +import QtQuick.Controls.Fusion.impl 2.3 + +T.SpinBox { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, + contentItem.implicitWidth + 2 * padding + + Math.max(up.indicator ? up.indicator.implicitWidth : 0, + down.indicator ? down.indicator.implicitWidth : 0)) + implicitHeight: Math.max(contentItem.implicitHeight + topPadding + bottomPadding, + background ? background.implicitHeight : 0, + (up.indicator ? up.indicator.implicitHeight : 0 + + down.indicator ? down.indicator.implicitHeight : 0)) + baselineOffset: contentItem.y + contentItem.baselineOffset + + padding: 4 + leftPadding: padding + (control.mirrored ? (up.indicator ? up.indicator.width : 0) : (down.indicator ? down.indicator.width : 0)) + rightPadding: padding + (control.mirrored ? (down.indicator ? down.indicator.width : 0) : (up.indicator ? up.indicator.width : 0)) + + validator: IntValidator { + locale: control.locale.name + bottom: Math.min(control.from, control.to) + top: Math.max(control.from, control.to) + } + + contentItem: TextInput { + z: 2 + text: control.textFromValue(control.value, control.locale) + + font: control.font + color: control.palette.text + selectionColor: control.palette.highlight + selectedTextColor: control.palette.highlightedText + horizontalAlignment: Qt.AlignHCenter + verticalAlignment: Qt.AlignVCenter + + readOnly: !control.editable + validator: control.validator + inputMethodHints: control.inputMethodHints + } + + up.indicator: PaddedRectangle { + x: control.mirrored ? 1 : parent.width - width - 1 + y: 1 + height: parent.height / 2 - 1 + implicitWidth: 16 + implicitHeight: 10 + + radius: 1.7 + clip: true + topPadding: -2 + leftPadding: -2 + color: control.up.pressed ? Fusion.buttonColor(control.palette, false, true, true) : "transparent" + + ColorImage { + scale: -1 + width: parent.width + height: parent.height + opacity: enabled ? 1.0 : 0.5 + color: control.palette.buttonText + source: "qrc:/qt-project.org/imports/QtQuick/Controls.2/Fusion/images/arrow.png" + fillMode: Image.Pad + } + } + + down.indicator: PaddedRectangle { + x: control.mirrored ? 1 : parent.width - width - 1 + y: parent.height - height - 1 + height: parent.height / 2 - 1 + implicitWidth: 16 + implicitHeight: 10 + + radius: 1.7 + clip: true + topPadding: -2 + leftPadding: -2 + color: control.down.pressed ? Fusion.buttonColor(control.palette, false, true, true) : "transparent" + + ColorImage { + width: parent.width + height: parent.height + opacity: enabled ? 1.0 : 0.5 + color: control.palette.buttonText + source: "qrc:/qt-project.org/imports/QtQuick/Controls.2/Fusion/images/arrow.png" + fillMode: Image.Pad + } + } + + background: Rectangle { + implicitWidth: 120 + implicitHeight: 24 + + radius: 2 + color: control.palette.base + border.color: control.activeFocus ? Fusion.highlightedOutline(control.palette) : Fusion.outline(control.palette) + + Rectangle { + x: 2 + y: 1 + width: parent.width - 4 + height: 1 + color: Fusion.topShadow + } + + Rectangle { + x: control.mirrored ? 1 : parent.width - width - 1 + y: 1 + width: Math.max(up.indicator ? up.indicator.width : 0, + down.indicator ? down.indicator.width : 0) + 1 + height: parent.height - 2 + + radius: 2 + gradient: Gradient { + GradientStop { + position: 0 + color: Fusion.gradientStart(Fusion.buttonColor(control.palette, control.visualFocus, false, control.up.hovered || control.down.hovered)) + } + GradientStop { + position: 1 + color: Fusion.gradientStop(Fusion.buttonColor(control.palette, control.visualFocus, false, control.up.hovered || control.down.hovered)) + } + } + + Rectangle { + x: control.mirrored ? parent.width - 1 : 0 + height: parent.height + width: 1 + color: Fusion.outline(control.palette) + } + } + + Rectangle { + x: 1; y: 1 + width: parent.width - 2 + height: parent.height - 2 + color: "transparent" + border.color: Color.transparent(Fusion.highlightedOutline(control.palette), 40 / 255) + visible: control.activeFocus + radius: 1.7 + } + } +} diff --git a/src/imports/controls/fusion/SwipeDelegate.qml b/src/imports/controls/fusion/SwipeDelegate.qml new file mode 100644 index 00000000..7df4aa87 --- /dev/null +++ b/src/imports/controls/fusion/SwipeDelegate.qml @@ -0,0 +1,80 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Fusion 2.3 +import QtQuick.Controls.Fusion.impl 2.3 + +T.SwipeDelegate { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, + contentItem.implicitWidth + leftPadding + rightPadding) + implicitHeight: Math.max(background ? background.implicitHeight : 0, + Math.max(contentItem.implicitHeight, + indicator ? indicator.implicitHeight : 0) + topPadding + bottomPadding) + baselineOffset: contentItem.y + contentItem.baselineOffset + + padding: 6 + spacing: 6 + + icon.width: 16 + icon.height: 16 + + swipe.transition: Transition { SmoothedAnimation { velocity: 3; easing.type: Easing.InOutCubic } } + + contentItem: IconLabel { + spacing: control.spacing + mirrored: control.mirrored + display: control.display + alignment: control.display === IconLabel.IconOnly || control.display === IconLabel.TextUnderIcon ? Qt.AlignCenter : Qt.AlignLeft + + icon: control.icon + text: control.text + font: control.font + color: control.highlighted ? Fusion.highlightedText(control.palette) : control.palette.text + } + + background: Rectangle { + implicitWidth: 100 + implicitHeight: 20 + color: control.down ? Fusion.buttonColor(control.palette, false, true, true) + : control.highlighted ? Fusion.highlight(control.palette) : control.palette.base + } +} diff --git a/src/imports/controls/fusion/Switch.qml b/src/imports/controls/fusion/Switch.qml new file mode 100644 index 00000000..5394fc95 --- /dev/null +++ b/src/imports/controls/fusion/Switch.qml @@ -0,0 +1,73 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Fusion 2.3 +import QtQuick.Controls.Fusion.impl 2.3 + +T.Switch { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, + contentItem.implicitWidth + leftPadding + rightPadding) + implicitHeight: Math.max(background ? background.implicitHeight : 0, + Math.max(contentItem.implicitHeight, + indicator ? indicator.implicitHeight : 0) + topPadding + bottomPadding) + baselineOffset: contentItem.y + contentItem.baselineOffset + + padding: 6 + spacing: 6 + + indicator: SwitchIndicator { + x: text ? (control.mirrored ? control.width - width - control.rightPadding : control.leftPadding) : control.leftPadding + (control.availableWidth - width) / 2 + y: control.topPadding + (control.availableHeight - height) / 2 + control: control + } + + contentItem: Text { + leftPadding: control.indicator && !control.mirrored ? control.indicator.width + control.spacing : 0 + rightPadding: control.indicator && control.mirrored ? control.indicator.width + control.spacing : 0 + + text: control.text + font: control.font + color: control.palette.text + elide: Text.ElideRight + verticalAlignment: Text.AlignVCenter + } +} diff --git a/src/imports/controls/fusion/SwitchDelegate.qml b/src/imports/controls/fusion/SwitchDelegate.qml new file mode 100644 index 00000000..718dab39 --- /dev/null +++ b/src/imports/controls/fusion/SwitchDelegate.qml @@ -0,0 +1,87 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Fusion 2.3 +import QtQuick.Controls.Fusion.impl 2.3 + +T.SwitchDelegate { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, + contentItem.implicitWidth + leftPadding + rightPadding) + implicitHeight: Math.max(background ? background.implicitHeight : 0, + Math.max(contentItem.implicitHeight, + indicator ? indicator.implicitHeight : 0) + topPadding + bottomPadding) + baselineOffset: contentItem.y + contentItem.baselineOffset + + padding: 6 + spacing: 6 + + icon.width: 16 + icon.height: 16 + + indicator: SwitchIndicator { + x: text ? (control.mirrored ? control.leftPadding : control.width - width - control.rightPadding) : control.leftPadding + (control.availableWidth - width) / 2 + y: control.topPadding + (control.availableHeight - height) / 2 + control: control + } + + contentItem: IconLabel { + leftPadding: control.mirrored ? control.indicator.width + control.spacing : 0 + rightPadding: !control.mirrored ? control.indicator.width + control.spacing : 0 + + spacing: control.spacing + mirrored: control.mirrored + display: control.display + alignment: control.display === IconLabel.IconOnly || control.display === IconLabel.TextUnderIcon ? Qt.AlignCenter : Qt.AlignLeft + + icon: control.icon + text: control.text + font: control.font + color: control.highlighted ? Fusion.highlightedText(control.palette) : control.palette.text + } + + background: Rectangle { + implicitWidth: 100 + implicitHeight: 20 + color: control.down ? Fusion.buttonColor(control.palette, false, true, true) + : control.highlighted ? Fusion.highlight(control.palette) : control.palette.base + } +} diff --git a/src/imports/controls/fusion/SwitchIndicator.qml b/src/imports/controls/fusion/SwitchIndicator.qml new file mode 100644 index 00000000..2aa7aee0 --- /dev/null +++ b/src/imports/controls/fusion/SwitchIndicator.qml @@ -0,0 +1,137 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Fusion 2.3 +import QtQuick.Controls.Fusion.impl 2.3 + +Rectangle { + id: indicator + + property Item control + readonly property color pressedColor: Fusion.mergedColors(control.palette.base, control.palette.windowText, 85) + readonly property color checkMarkColor: Qt.darker(control.palette.text, 1.2) + + implicitWidth: 40 + implicitHeight: 16 + + radius: 2 + border.color: Fusion.outline(control.palette) + + gradient: Gradient { + GradientStop { + position: 0 + color: Qt.darker(Fusion.grooveColor(control.palette), 1.1) + } + GradientStop { + position: 1 + color: Qt.lighter(Fusion.grooveColor(control.palette), 1.1) + } + } + + Rectangle { + x: control.mirrored ? handle.x : 0 + width: control.mirrored ? parent.width - handle.x : handle.x + handle.width + height: parent.height + + opacity: control.checked ? 1 : 0 + Behavior on opacity { + enabled: !control.down + NumberAnimation { duration: 80 } + } + + radius: 2 + border.color: Qt.darker(Fusion.highlightedOutline(control.palette), 1.1) + border.width: control.enabled ? 1 : 0 + + gradient: Gradient { + GradientStop { + position: 0 + color: Fusion.highlight(control.palette) + } + GradientStop { + position: 1 + color: Qt.lighter(Fusion.highlight(control.palette), 1.2) + } + } + } + + Rectangle { + id: handle + x: Math.max(0, Math.min(parent.width - width, control.visualPosition * parent.width - (width / 2))) + y: (parent.height - height) / 2 + width: 20 + height: 16 + radius: 2 + + gradient: Gradient { + GradientStop { + position: 0 + color: Fusion.gradientStart(Fusion.buttonColor(control.palette, control.visualFocus, control.pressed, control.hovered)) + } + GradientStop { + position: 1 + color: Fusion.gradientStop(Fusion.buttonColor(control.palette, control.visualFocus, control.pressed, control.hovered)) + } + } + border.width: 1 + border.color: "transparent" + + Rectangle { + width: parent.width + height: parent.height + border.color: control.visualFocus ? Fusion.highlightedOutline(control.palette) : Fusion.outline(control.palette) + color: "transparent" + radius: 2 + + Rectangle { + x: 1; y: 1 + width: parent.width - 2 + height: parent.height - 2 + border.color: Fusion.innerContrastLine + color: "transparent" + radius: 2 + } + } + + Behavior on x { + enabled: !control.down + SmoothedAnimation { velocity: 200 } + } + } +} diff --git a/src/imports/controls/fusion/TabBar.qml b/src/imports/controls/fusion/TabBar.qml new file mode 100644 index 00000000..a06e0bae --- /dev/null +++ b/src/imports/controls/fusion/TabBar.qml @@ -0,0 +1,80 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Fusion 2.3 +import QtQuick.Controls.Fusion.impl 2.3 + +T.TabBar { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, + contentWidth + leftPadding + rightPadding) + implicitHeight: Math.max(background ? background.implicitHeight : 0, + contentHeight + topPadding + bottomPadding) + + spacing: -1 + + contentItem: ListView { + model: control.contentModel + currentIndex: control.currentIndex + + spacing: control.spacing + orientation: ListView.Horizontal + boundsBehavior: Flickable.StopAtBounds + flickableDirection: Flickable.AutoFlickIfNeeded + snapMode: ListView.SnapToItem + + highlightMoveDuration: 0 + highlightRangeMode: ListView.ApplyRange + preferredHighlightBegin: 40 + preferredHighlightEnd: width - 40 + } + + background: Item { + implicitHeight: 21 + + Rectangle { + width: parent.width + height: 1 + y: control.position === T.TabBar.Header ? parent.height - 1 : 0 + color: Fusion.outline(control.palette) + } + } +} diff --git a/src/imports/controls/fusion/TabButton.qml b/src/imports/controls/fusion/TabButton.qml new file mode 100644 index 00000000..c705d2a1 --- /dev/null +++ b/src/imports/controls/fusion/TabButton.qml @@ -0,0 +1,99 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Fusion 2.3 +import QtQuick.Controls.Fusion.impl 2.3 + +T.TabButton { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, + contentItem.implicitWidth + leftPadding + rightPadding) + implicitHeight: Math.max(background ? background.implicitHeight : 0, + contentItem.implicitHeight + topPadding + bottomPadding) + baselineOffset: contentItem.y + contentItem.baselineOffset + + padding: 2 + leftPadding: 4 + rightPadding: 4 + spacing: 6 + + icon.width: 16 + icon.height: 16 + + z: checked + + contentItem: IconLabel { + spacing: control.spacing + mirrored: control.mirrored + display: control.display + + icon: control.icon + text: control.text + font: control.font + color: control.palette.buttonText + } + + background: Rectangle { + y: control.checked || control.TabBar.position !== T.TabBar.Header ? 0 : 2 + implicitHeight: 21 + height: control.height - (control.checked ? 0 : 2) + + border.color: Qt.lighter(Fusion.outline(control.palette), 1.1) + + gradient: Gradient { + GradientStop { + position: 0 + color: control.checked ? Qt.lighter(Fusion.tabFrameColor(control.palette), 1.04) + : Qt.darker(Fusion.tabFrameColor(control.palette), 1.08) + } + GradientStop { + position: control.checked ? 0 : 0.85 + color: control.checked ? Qt.lighter(Fusion.tabFrameColor(control.palette), 1.04) + : Qt.darker(Fusion.tabFrameColor(control.palette), 1.08) + } + GradientStop { + position: 1 + color: control.checked ? Fusion.tabFrameColor(control.palette) + : Qt.darker(Fusion.tabFrameColor(control.palette), 1.16) + } + } + } +} diff --git a/src/imports/controls/fusion/TextArea.qml b/src/imports/controls/fusion/TextArea.qml new file mode 100644 index 00000000..6fc74660 --- /dev/null +++ b/src/imports/controls/fusion/TextArea.qml @@ -0,0 +1,76 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Fusion 2.3 +import QtQuick.Controls.Fusion.impl 2.3 + +T.TextArea { + id: control + + implicitWidth: Math.max(contentWidth + leftPadding + rightPadding, + background ? background.implicitWidth : 0, + placeholder.implicitWidth + leftPadding + rightPadding) + implicitHeight: Math.max(contentHeight + topPadding + bottomPadding, + background ? background.implicitHeight : 0, + placeholder.implicitHeight + topPadding + bottomPadding) + + padding: 6 + leftPadding: padding + 4 + + color: control.palette.text + selectionColor: control.palette.highlight + selectedTextColor: control.palette.highlightedText + + PlaceholderText { + id: placeholder + x: control.leftPadding + y: control.topPadding + width: control.width - (control.leftPadding + control.rightPadding) + height: control.height - (control.topPadding + control.bottomPadding) + + opacity: 0.5 + text: control.placeholderText + font: control.font + color: control.color + verticalAlignment: control.verticalAlignment + visible: !control.length && !control.preeditText && (!control.activeFocus || control.horizontalAlignment !== Qt.AlignHCenter) + elide: Text.ElideRight + } +} diff --git a/src/imports/controls/fusion/TextField.qml b/src/imports/controls/fusion/TextField.qml new file mode 100644 index 00000000..aef8475b --- /dev/null +++ b/src/imports/controls/fusion/TextField.qml @@ -0,0 +1,103 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Fusion 2.3 +import QtQuick.Controls.Fusion.impl 2.3 + +T.TextField { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, + placeholderText ? placeholder.implicitWidth + leftPadding + rightPadding : 0) + || contentWidth + leftPadding + rightPadding + implicitHeight: Math.max(contentHeight + topPadding + bottomPadding, + background ? background.implicitHeight : 0, + placeholder.implicitHeight + topPadding + bottomPadding) + + padding: 4 + + color: control.palette.text + selectionColor: control.palette.highlight + selectedTextColor: control.palette.highlightedText + verticalAlignment: TextInput.AlignVCenter + + PlaceholderText { + id: placeholder + x: control.leftPadding + y: control.topPadding + width: control.width - (control.leftPadding + control.rightPadding) + height: control.height - (control.topPadding + control.bottomPadding) + + opacity: 0.5 + text: control.placeholderText + font: control.font + color: control.color + verticalAlignment: control.verticalAlignment + visible: !control.length && !control.preeditText && (!control.activeFocus || control.horizontalAlignment !== Qt.AlignHCenter) + elide: Text.ElideRight + } + + background: Rectangle { + implicitWidth: 120 + implicitHeight: 24 + + radius: 2 + color: control.palette.base + border.color: control.activeFocus ? Fusion.highlightedOutline(control.palette) : Fusion.outline(control.palette) + + Rectangle { + x: 1; y: 1 + width: parent.width - 2 + height: parent.height - 2 + color: "transparent" + border.color: Color.transparent(Fusion.highlightedOutline(control.palette), 40 / 255) + visible: control.activeFocus + radius: 1.7 + } + + Rectangle { + x: 2 + y: 1 + width: parent.width - 4 + height: 1 + color: Fusion.topShadow + } + } +} diff --git a/src/imports/controls/fusion/ToolBar.qml b/src/imports/controls/fusion/ToolBar.qml new file mode 100644 index 00000000..3dbca03d --- /dev/null +++ b/src/imports/controls/fusion/ToolBar.qml @@ -0,0 +1,85 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Fusion 2.3 +import QtQuick.Controls.Fusion.impl 2.3 + +T.ToolBar { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, contentWidth + leftPadding + rightPadding) + implicitHeight: Math.max(background ? background.implicitHeight : 0, contentHeight + topPadding + bottomPadding) + + contentWidth: contentItem.implicitWidth || (contentChildren.length === 1 ? contentChildren[0].implicitWidth : 0) + contentHeight: contentItem.implicitHeight || (contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0) + + leftPadding: 6 + rightPadding: 6 + topPadding: control.position === T.ToolBar.Footer ? 1 : 0 + bottomPadding: control.position === T.ToolBar.Header ? 1 : 0 + + background: Rectangle { + implicitHeight: 26 + + gradient: Gradient { + GradientStop { + position: 0 + color: Qt.lighter(control.palette.window, 1.04) + } + GradientStop { + position: 1 + color: control.palette.window + } + } + + Rectangle { + width: parent.width + height: 1 + color: control.position === T.ToolBar.Header ? Fusion.lightShade : Fusion.darkShade + } + + Rectangle { + y: parent.height - height + width: parent.width + height: 1 + color: control.position === T.ToolBar.Header ? Fusion.darkShade : Fusion.lightShade + } + } +} diff --git a/src/imports/controls/fusion/ToolButton.qml b/src/imports/controls/fusion/ToolButton.qml new file mode 100644 index 00000000..c7dacbc4 --- /dev/null +++ b/src/imports/controls/fusion/ToolButton.qml @@ -0,0 +1,77 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Fusion 2.3 +import QtQuick.Controls.Fusion.impl 2.3 + +T.ToolButton { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, + contentItem.implicitWidth + leftPadding + rightPadding) + implicitHeight: Math.max(background ? background.implicitHeight : 0, + contentItem.implicitHeight + topPadding + bottomPadding) + baselineOffset: contentItem.y + contentItem.baselineOffset + + padding: 6 + spacing: 6 + + icon.width: 16 + icon.height: 16 + + contentItem: IconLabel { + spacing: control.spacing + mirrored: control.mirrored + display: control.display + + icon: control.icon + text: control.text + font: control.font + color: control.palette.buttonText + } + + background: ButtonPanel { + implicitWidth: 20 + implicitHeight: 20 + + control: control + visible: control.down || control.checked || control.highlighted || control.visualFocus || control.hovered + } +} diff --git a/src/imports/controls/fusion/ToolSeparator.qml b/src/imports/controls/fusion/ToolSeparator.qml new file mode 100644 index 00000000..41868912 --- /dev/null +++ b/src/imports/controls/fusion/ToolSeparator.qml @@ -0,0 +1,66 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Fusion 2.3 +import QtQuick.Controls.Fusion.impl 2.3 + +T.ToolSeparator { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, contentItem.implicitWidth + leftPadding + rightPadding) + implicitHeight: Math.max(background ? background.implicitHeight : 0, contentItem.implicitHeight + topPadding + bottomPadding) + + padding: vertical ? 6 : 2 + topPadding: vertical ? 2 : 6 + bottomPadding: vertical ? 2 : 6 + + contentItem: Rectangle { + implicitWidth: vertical ? 2 : 8 + implicitHeight: vertical ? 8 : 2 + color: Qt.darker(control.palette.window, 1.1) + + Rectangle { + x: 1 + width: 1 + height: parent.height + color: Qt.lighter(control.palette.window, 1.1) + } + } +} diff --git a/src/imports/controls/fusion/ToolTip.qml b/src/imports/controls/fusion/ToolTip.qml new file mode 100644 index 00000000..6b24e209 --- /dev/null +++ b/src/imports/controls/fusion/ToolTip.qml @@ -0,0 +1,80 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Fusion 2.3 +import QtQuick.Controls.Fusion.impl 2.3 + +T.ToolTip { + id: control + + x: parent ? (parent.width - implicitWidth) / 2 : 0 + y: -implicitHeight - 3 + + implicitWidth: Math.max(background ? background.implicitWidth : 0, + contentItem.implicitWidth + leftPadding + rightPadding) + implicitHeight: Math.max(background ? background.implicitHeight : 0, + contentItem.implicitHeight + topPadding + bottomPadding) + + margins: 6 + padding: 6 + + closePolicy: T.Popup.CloseOnEscape | T.Popup.CloseOnPressOutsideParent | T.Popup.CloseOnReleaseOutsideParent + + contentItem: Text { + text: control.text + font: control.font + color: control.palette.toolTipText + // TODO: wrapMode: Label.Wrap + } + + background: Rectangle { + color: control.palette.toolTipBase + border.color: control.palette.toolTipText + + Rectangle { + z: -1 + x: 1; y: 1 + width: parent.width + height: parent.height + color: control.palette.shadow + opacity: 0.5 + } + } +} diff --git a/src/imports/controls/fusion/Tumbler.qml b/src/imports/controls/fusion/Tumbler.qml new file mode 100644 index 00000000..66e8906b --- /dev/null +++ b/src/imports/controls/fusion/Tumbler.qml @@ -0,0 +1,72 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Fusion 2.3 +import QtQuick.Controls.Fusion.impl 2.3 + +T.Tumbler { + id: control + implicitWidth: 60 + implicitHeight: 200 + + delegate: Text { + text: modelData + color: control.palette.windowText + font: control.font + opacity: (1.0 - Math.abs(Tumbler.displacement) / (control.visibleItemCount / 2)) * (control.enabled ? 1 : 0.6) + horizontalAlignment: Text.AlignHCenter + verticalAlignment: Text.AlignVCenter + } + + contentItem: TumblerView { + model: control.model + delegate: control.delegate + path: Path { + startX: contentItem.width / 2 + startY: -contentItem.delegateHeight / 2 + PathLine { + x: contentItem.width / 2 + y: (control.visibleItemCount + 1) * contentItem.delegateHeight - contentItem.delegateHeight / 2 + } + } + + property real delegateHeight: control.availableHeight / control.visibleItemCount + } +} diff --git a/src/imports/controls/fusion/fusion.pri b/src/imports/controls/fusion/fusion.pri new file mode 100644 index 00000000..4a6e8fb4 --- /dev/null +++ b/src/imports/controls/fusion/fusion.pri @@ -0,0 +1,67 @@ +HEADERS += \ + $$PWD/qquickfusionbusyindicator_p.h \ + $$PWD/qquickfusiondial_p.h \ + $$PWD/qquickfusionknob_p.h \ + $$PWD/qquickfusionstyle_p.h \ + $$PWD/qquickfusiontheme_p.h + +SOURCES += \ + $$PWD/qquickfusionbusyindicator.cpp \ + $$PWD/qquickfusiondial.cpp \ + $$PWD/qquickfusionknob.cpp \ + $$PWD/qquickfusionstyle.cpp \ + $$PWD/qquickfusiontheme.cpp + +QML_FILES += \ + $$PWD/ApplicationWindow.qml \ + $$PWD/BusyIndicator.qml \ + $$PWD/Button.qml \ + $$PWD/ButtonPanel.qml \ + $$PWD/CheckBox.qml \ + $$PWD/CheckDelegate.qml \ + $$PWD/CheckIndicator.qml \ + $$PWD/ComboBox.qml \ + $$PWD/DelayButton.qml \ + $$PWD/Dial.qml \ + $$PWD/Dialog.qml \ + $$PWD/DialogButtonBox.qml \ + $$PWD/Drawer.qml \ + $$PWD/Frame.qml \ + $$PWD/GroupBox.qml \ + $$PWD/ItemDelegate.qml \ + $$PWD/Label.qml \ + $$PWD/Menu.qml \ + $$PWD/MenuBar.qml \ + $$PWD/MenuBarItem.qml \ + $$PWD/MenuItem.qml \ + $$PWD/MenuSeparator.qml \ + $$PWD/Page.qml \ + $$PWD/PageIndicator.qml \ + $$PWD/Pane.qml \ + $$PWD/Popup.qml \ + $$PWD/ProgressBar.qml \ + $$PWD/RadioButton.qml \ + $$PWD/RadioDelegate.qml \ + $$PWD/RadioIndicator.qml \ + $$PWD/RangeSlider.qml \ + $$PWD/RoundButton.qml \ + $$PWD/ScrollBar.qml \ + $$PWD/ScrollIndicator.qml \ + $$PWD/ScrollView.qml \ + $$PWD/Slider.qml \ + $$PWD/SliderGroove.qml \ + $$PWD/SliderHandle.qml \ + $$PWD/SpinBox.qml \ + $$PWD/SwipeDelegate.qml \ + $$PWD/SwitchDelegate.qml \ + $$PWD/SwitchIndicator.qml \ + $$PWD/Switch.qml \ + $$PWD/TabBar.qml \ + $$PWD/TabButton.qml \ + $$PWD/TextArea.qml \ + $$PWD/TextField.qml \ + $$PWD/ToolBar.qml \ + $$PWD/ToolButton.qml \ + $$PWD/ToolSeparator.qml \ + $$PWD/ToolTip.qml \ + $$PWD/Tumbler.qml diff --git a/src/imports/controls/fusion/fusion.pro b/src/imports/controls/fusion/fusion.pro new file mode 100644 index 00000000..c2b649cf --- /dev/null +++ b/src/imports/controls/fusion/fusion.pro @@ -0,0 +1,25 @@ +TARGET = qtquickcontrols2fusionstyleplugin +TARGETPATH = QtQuick/Controls.2/Fusion +IMPORT_VERSION = 2.3 + +QT += qml quick +QT_PRIVATE += core-private gui-private qml-private quick-private quicktemplates2-private quickcontrols2-private + +DEFINES += QT_NO_CAST_TO_ASCII QT_NO_CAST_FROM_ASCII + +include(fusion.pri) + +OTHER_FILES += \ + qmldir \ + $$QML_FILES + +SOURCES += \ + $$PWD/qtquickcontrols2fusionstyleplugin.cpp + +RESOURCES += \ + $$PWD/qtquickcontrols2fusionstyle.qrc + +CONFIG += no_cxx_module +load(qml_plugin) + +requires(qtConfig(quickcontrols2-fusion)) diff --git a/src/imports/controls/fusion/images/arrow.png b/src/imports/controls/fusion/images/arrow.png Binary files differnew file mode 100644 index 00000000..ad8cdc95 --- /dev/null +++ b/src/imports/controls/fusion/images/arrow.png diff --git a/src/imports/controls/fusion/images/arrow.svg b/src/imports/controls/fusion/images/arrow.svg new file mode 100644 index 00000000..44383924 --- /dev/null +++ b/src/imports/controls/fusion/images/arrow.svg @@ -0,0 +1,75 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<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" + width="10" + height="6" + viewBox="0 0 10 6" + id="svg2" + version="1.1" + inkscape:version="0.91 r13725" + inkscape:export-filename="/Users/jpnurmi/Downloads/arrow@4x.png" + inkscape:export-xdpi="360" + inkscape:export-ydpi="360" + sodipodi:docname="arrow.svg"> + <defs + id="defs4" /> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="31.678384" + inkscape:cx="7.9810383" + inkscape:cy="3.0344775" + inkscape:document-units="px" + inkscape:current-layer="layer1" + showgrid="true" + units="px" + inkscape:snap-to-guides="true" + inkscape:snap-page="true" + inkscape:window-width="1440" + inkscape:window-height="851" + inkscape:window-x="0" + inkscape:window-y="1" + inkscape:window-maximized="1"> + <inkscape:grid + type="xygrid" + id="grid3336" /> + </sodipodi:namedview> + <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:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(0,-1046.3622)"> + <path + transform="matrix(1.2371791,0,0,0.85714284,1.0769252,150.19463)" + style="fill:#000000;fill-opacity:0.7254902" + inkscape:transform-center-y="1.4999605" + d="m 3.1709837,1051.3622 -3.2331616,-4.6667 6.4663233,0 z" + id="path3365" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccc" /> + </g> +</svg> diff --git a/src/imports/controls/fusion/images/arrow@2x.png b/src/imports/controls/fusion/images/arrow@2x.png Binary files differnew file mode 100644 index 00000000..4f94c58f --- /dev/null +++ b/src/imports/controls/fusion/images/arrow@2x.png diff --git a/src/imports/controls/fusion/images/arrow@3x.png b/src/imports/controls/fusion/images/arrow@3x.png Binary files differnew file mode 100644 index 00000000..68928ea9 --- /dev/null +++ b/src/imports/controls/fusion/images/arrow@3x.png diff --git a/src/imports/controls/fusion/images/arrow@4x.png b/src/imports/controls/fusion/images/arrow@4x.png Binary files differnew file mode 100644 index 00000000..edde50f3 --- /dev/null +++ b/src/imports/controls/fusion/images/arrow@4x.png diff --git a/src/imports/controls/fusion/images/checkmark.png b/src/imports/controls/fusion/images/checkmark.png Binary files differnew file mode 100644 index 00000000..9cb04883 --- /dev/null +++ b/src/imports/controls/fusion/images/checkmark.png diff --git a/src/imports/controls/fusion/images/checkmark.svg b/src/imports/controls/fusion/images/checkmark.svg new file mode 100644 index 00000000..f1afdc4f --- /dev/null +++ b/src/imports/controls/fusion/images/checkmark.svg @@ -0,0 +1,72 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<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" + width="14" + height="14" + viewBox="0 0 14 14" + id="svg3386" + version="1.1" + inkscape:version="0.91 r13725" + inkscape:export-filename="/Users/jpnurmi/Downloads/checkmark@4x.png" + inkscape:export-xdpi="360" + inkscape:export-ydpi="360" + sodipodi:docname="checkmark.svg"> + <defs + id="defs3388" /> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="32" + inkscape:cx="1.9865044" + inkscape:cy="6.0706667" + inkscape:document-units="px" + inkscape:current-layer="layer1" + showgrid="false" + units="px" + inkscape:snap-page="true" + inkscape:snap-grids="true" + inkscape:snap-to-guides="true" + inkscape:window-width="1440" + inkscape:window-height="851" + inkscape:window-x="0" + inkscape:window-y="1" + inkscape:window-maximized="1" /> + <metadata + id="metadata3391"> + <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:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(0,-1038.3622)"> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 5,1045.3622 2,4 2.5,-8" + id="path4198" + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccc" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + </g> +</svg> diff --git a/src/imports/controls/fusion/images/checkmark@2x.png b/src/imports/controls/fusion/images/checkmark@2x.png Binary files differnew file mode 100644 index 00000000..ae9a7749 --- /dev/null +++ b/src/imports/controls/fusion/images/checkmark@2x.png diff --git a/src/imports/controls/fusion/images/checkmark@3x.png b/src/imports/controls/fusion/images/checkmark@3x.png Binary files differnew file mode 100644 index 00000000..4a67e88a --- /dev/null +++ b/src/imports/controls/fusion/images/checkmark@3x.png diff --git a/src/imports/controls/fusion/images/checkmark@4x.png b/src/imports/controls/fusion/images/checkmark@4x.png Binary files differnew file mode 100644 index 00000000..0890d2ba --- /dev/null +++ b/src/imports/controls/fusion/images/checkmark@4x.png diff --git a/src/imports/controls/fusion/images/progressmask.png b/src/imports/controls/fusion/images/progressmask.png Binary files differnew file mode 100644 index 00000000..683f9e2f --- /dev/null +++ b/src/imports/controls/fusion/images/progressmask.png diff --git a/src/imports/controls/fusion/images/progressmask.svg b/src/imports/controls/fusion/images/progressmask.svg new file mode 100644 index 00000000..a0dfc426 --- /dev/null +++ b/src/imports/controls/fusion/images/progressmask.svg @@ -0,0 +1,74 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<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" + width="31" + height="22" + viewBox="0 0 8.202083 5.8208335" + version="1.1" + id="svg8" + inkscape:export-filename="/home/jpnurmi/Projects/qt-dev/qtquickcontrols2/src/imports/controls/fusion/images/progressmask@4x.png" + inkscape:export-xdpi="384" + inkscape:export-ydpi="384" + inkscape:version="0.92.1 r" + sodipodi:docname="progressmask.svg"> + <defs + id="defs2" /> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="15.839192" + inkscape:cx="61.144853" + inkscape:cy="14.574824" + inkscape:document-units="mm" + inkscape:current-layer="layer1" + showgrid="false" + units="px" + inkscape:pagecheckerboard="true" + inkscape:window-width="3840" + inkscape:window-height="2031" + inkscape:window-x="0" + inkscape:window-y="55" + inkscape:window-maximized="1" /> + <metadata + id="metadata5"> + <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:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(0,-291.17915)"> + <path + style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:4.5;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 0,296.99998 4.7625,-5.82083" + id="path4485" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:4.5;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 8.2020833,296.99998 4.7624997,-5.82083" + id="path4485-3" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cc" /> + </g> +</svg> diff --git a/src/imports/controls/fusion/images/progressmask@2x.png b/src/imports/controls/fusion/images/progressmask@2x.png Binary files differnew file mode 100644 index 00000000..e101f5de --- /dev/null +++ b/src/imports/controls/fusion/images/progressmask@2x.png diff --git a/src/imports/controls/fusion/images/progressmask@3x.png b/src/imports/controls/fusion/images/progressmask@3x.png Binary files differnew file mode 100644 index 00000000..784f01c0 --- /dev/null +++ b/src/imports/controls/fusion/images/progressmask@3x.png diff --git a/src/imports/controls/fusion/images/progressmask@4x.png b/src/imports/controls/fusion/images/progressmask@4x.png Binary files differnew file mode 100644 index 00000000..8af0b2c2 --- /dev/null +++ b/src/imports/controls/fusion/images/progressmask@4x.png diff --git a/src/imports/controls/fusion/qmldir b/src/imports/controls/fusion/qmldir new file mode 100644 index 00000000..c37b9f9f --- /dev/null +++ b/src/imports/controls/fusion/qmldir @@ -0,0 +1,4 @@ +module QtQuick.Controls.Fusion +plugin qtquickcontrols2fusionstyleplugin +classname QtQuickControls2FusionStylePlugin +depends QtQuick.Controls 2.3 diff --git a/src/imports/controls/fusion/qquickfusionbusyindicator.cpp b/src/imports/controls/fusion/qquickfusionbusyindicator.cpp new file mode 100644 index 00000000..f5c92010 --- /dev/null +++ b/src/imports/controls/fusion/qquickfusionbusyindicator.cpp @@ -0,0 +1,109 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qquickfusionbusyindicator_p.h" + +#include <QtGui/qpainter.h> + +QT_BEGIN_NAMESPACE + +QQuickFusionBusyIndicator::QQuickFusionBusyIndicator(QQuickItem *parent) + : QQuickPaintedItem(parent) +{ +} + +QColor QQuickFusionBusyIndicator::color() const +{ + return m_color; +} + +void QQuickFusionBusyIndicator::setColor(const QColor &color) +{ + if (color == m_color) + return; + + m_color = color; + update(); +} + +bool QQuickFusionBusyIndicator::isRunning() const +{ + return isVisible(); +} + +void QQuickFusionBusyIndicator::setRunning(bool running) +{ + if (running) + setVisible(true); +} + +void QQuickFusionBusyIndicator::paint(QPainter *painter) +{ + const qreal w = width(); + const qreal h = height(); + if (w <= 0 || h <= 0 || !isRunning()) + return; + + const qreal sz = qMin(w, h); + const qreal dx = (w - sz) / 2; + const qreal dy = (h - sz) / 2; + const int hpw = qRound(qMax(1.0, sz / 14)) & -1; + const int pw = 2 * hpw; + const QRectF bounds(dx + hpw, dy + hpw, sz - pw - 1, sz - pw - 1); + + QConicalGradient gradient; + gradient.setCenter(QPointF(dx + sz / 2, dy + sz / 2)); + gradient.setColorAt(0, m_color); + gradient.setColorAt(0.1, m_color); + gradient.setColorAt(1, Qt::transparent); + + painter->translate(0.5, 0.5); + painter->setRenderHint(QPainter::Antialiasing, true); + painter->setPen(QPen(gradient, pw, Qt::SolidLine)); + painter->drawArc(bounds, 0, 360 * 16); + painter->setPen(QPen(m_color, pw, Qt::SolidLine, Qt::RoundCap)); + painter->drawArc(bounds, 0, 20 * 16); +} + +void QQuickFusionBusyIndicator::itemChange(ItemChange change, const ItemChangeData &data) +{ + QQuickPaintedItem::itemChange(change, data); + + if (change == ItemOpacityHasChanged && qFuzzyIsNull(data.realValue)) + setVisible(false); +} + +QT_END_NAMESPACE diff --git a/src/imports/controls/fusion/qquickfusionbusyindicator_p.h b/src/imports/controls/fusion/qquickfusionbusyindicator_p.h new file mode 100644 index 00000000..77487ec8 --- /dev/null +++ b/src/imports/controls/fusion/qquickfusionbusyindicator_p.h @@ -0,0 +1,82 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QQUICKFUSIONBUSYINDICATOR_P_H +#define QQUICKFUSIONBUSYINDICATOR_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include <QtGui/qcolor.h> +#include <QtQuick/qquickpainteditem.h> + +QT_BEGIN_NAMESPACE + +class QQuickFusionBusyIndicator : public QQuickPaintedItem +{ + Q_OBJECT + Q_PROPERTY(QColor color READ color WRITE setColor FINAL) + Q_PROPERTY(bool running READ isRunning WRITE setRunning) + +public: + explicit QQuickFusionBusyIndicator(QQuickItem *parent = nullptr); + + QColor color() const; + void setColor(const QColor &color); + + bool isRunning() const; + void setRunning(bool running); + + void paint(QPainter *painter) override; + +protected: + void itemChange(ItemChange change, const ItemChangeData &data) override; + +private: + QColor m_color; +}; + +QT_END_NAMESPACE + +#endif // QQUICKFUSIONBUSYINDICATOR_P_H diff --git a/src/imports/controls/fusion/qquickfusiondial.cpp b/src/imports/controls/fusion/qquickfusiondial.cpp new file mode 100644 index 00000000..014078e6 --- /dev/null +++ b/src/imports/controls/fusion/qquickfusiondial.cpp @@ -0,0 +1,152 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qquickfusiondial_p.h" + +#include <QtGui/qpainter.h> +#include <QtGui/private/qmath_p.h> + +QT_BEGIN_NAMESPACE + +QQuickFusionDial::QQuickFusionDial(QQuickItem *parent) + : QQuickPaintedItem(parent), + m_highlight(false) +{ +} + +bool QQuickFusionDial::highlight() const +{ + return m_highlight; +} + +void QQuickFusionDial::setHighlight(bool highlight) +{ + if (m_highlight == highlight) + return; + + m_highlight = highlight; + update(); +} + +QPalette QQuickFusionDial::palette() const +{ + return m_palette; +} + +void QQuickFusionDial::setPalette(const QPalette &palette) +{ + if (palette == m_palette) + return; + + m_palette = palette; + update(); +} + +// based on QStyleHelper::drawDial() +void QQuickFusionDial::paint(QPainter *painter) +{ + const int width = QQuickItem::width(); + const int height = QQuickItem::height(); + if (width <= 0 || height <= 0 || !isVisible()) + return; + + QColor buttonColor = m_palette.button().color(); + const bool enabled = isEnabled(); + qreal r = qMin(width, height) / 2; + r -= r/50; + const qreal penSize = r/20.0; + + painter->setRenderHint(QPainter::Antialiasing); + + const qreal d_ = r / 6; + const qreal dx = d_ + (width - 2 * r) / 2 + 1; + const qreal dy = d_ + (height - 2 * r) / 2 + 1; + + QRectF br = QRectF(dx + 0.5, dy + 0.5, + int(r * 2 - 2 * d_ - 2), + int(r * 2 - 2 * d_ - 2)); + buttonColor.setHsv(buttonColor .hue(), + qMin(140, buttonColor .saturation()), + qMax(180, buttonColor.value())); + + if (enabled) { + // Drop shadow + qreal shadowSize = qMax(1.0, penSize/2.0); + QRectF shadowRect= br.adjusted(-2*shadowSize, -2*shadowSize, + 2*shadowSize, 2*shadowSize); + QRadialGradient shadowGradient(shadowRect.center().x(), + shadowRect.center().y(), shadowRect.width()/2.0, + shadowRect.center().x(), shadowRect.center().y()); + shadowGradient.setColorAt(qreal(0.91), QColor(0, 0, 0, 40)); + shadowGradient.setColorAt(qreal(1.0), Qt::transparent); + painter->setBrush(shadowGradient); + painter->setPen(Qt::NoPen); + painter->translate(shadowSize, shadowSize); + painter->drawEllipse(shadowRect); + painter->translate(-shadowSize, -shadowSize); + + // Main gradient + QRadialGradient gradient(br.center().x() - br.width()/3, dy, + br.width()*1.3, br.center().x(), + br.center().y() - br.height()/2); + gradient.setColorAt(0, buttonColor.lighter(110)); + gradient.setColorAt(qreal(0.5), buttonColor); + gradient.setColorAt(qreal(0.501), buttonColor.darker(102)); + gradient.setColorAt(1, buttonColor.darker(115)); + painter->setBrush(gradient); + } else { + painter->setBrush(Qt::NoBrush); + } + + painter->setPen(QPen(buttonColor.darker(280))); + painter->drawEllipse(br); + painter->setBrush(Qt::NoBrush); + painter->setPen(buttonColor.lighter(110)); + painter->drawEllipse(br.adjusted(1, 1, -1, -1)); + + if (m_highlight) { + QColor highlight = m_palette.highlight().color(); + highlight.setHsv(highlight.hue(), + qMin(160, highlight.saturation()), + qMax(230, highlight.value())); + highlight.setAlpha(127); + painter->setPen(QPen(highlight, 2.0)); + painter->setBrush(Qt::NoBrush); + painter->drawEllipse(br.adjusted(-1, -1, 1, 1)); + } +} + +QT_END_NAMESPACE diff --git a/src/imports/controls/fusion/qquickfusiondial_p.h b/src/imports/controls/fusion/qquickfusiondial_p.h new file mode 100644 index 00000000..d3216521 --- /dev/null +++ b/src/imports/controls/fusion/qquickfusiondial_p.h @@ -0,0 +1,80 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QQUICKFUSIONDIAL_P_H +#define QQUICKFUSIONDIAL_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include <QtGui/qpalette.h> +#include <QtQuick/qquickpainteditem.h> + +QT_BEGIN_NAMESPACE + +class QQuickFusionDial : public QQuickPaintedItem +{ + Q_OBJECT + Q_PROPERTY(bool highlight READ highlight WRITE setHighlight FINAL) + Q_PROPERTY(QPalette palette READ palette WRITE setPalette FINAL) + +public: + explicit QQuickFusionDial(QQuickItem *parent = nullptr); + + bool highlight() const; + void setHighlight(bool highlight); + + QPalette palette() const; + void setPalette(const QPalette &palette); + + void paint(QPainter *painter) override; + +private: + bool m_highlight; + QPalette m_palette; +}; + +QT_END_NAMESPACE + +#endif // QQUICKFUSIONDIAL_P_H diff --git a/src/imports/controls/fusion/qquickfusionknob.cpp b/src/imports/controls/fusion/qquickfusionknob.cpp new file mode 100644 index 00000000..9f1824a6 --- /dev/null +++ b/src/imports/controls/fusion/qquickfusionknob.cpp @@ -0,0 +1,99 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qquickfusionknob_p.h" + +#include <QtCore/qmath.h> +#include <QtGui/qpainter.h> + +QT_BEGIN_NAMESPACE + +QQuickFusionKnob::QQuickFusionKnob(QQuickItem *parent) + : QQuickPaintedItem(parent) +{ +} + +QPalette QQuickFusionKnob::palette() const +{ + return m_palette; +} + +void QQuickFusionKnob::setPalette(const QPalette &palette) +{ + if (palette == m_palette) + return; + + m_palette = palette; + update(); +} + +// extracted from QStyleHelper::drawDial() +void QQuickFusionKnob::paint(QPainter *painter) +{ + const qreal w = width(); + const qreal h = height(); + if (w <= 0 || h <= 0) + return; + + QColor color = m_palette.color(QPalette::Button); + color.setHsv(color.hue(), + qMin(140, color .saturation()), + qMax(180, color.value())); + color = color.lighter(104); + color.setAlphaF(qreal(0.8)); + + const qreal sz = qMin(w, h); + QRectF rect(0, 0, sz, sz); + rect.moveCenter(QPointF(w / 2.0, h / 2.0)); + const QPointF center = rect.center(); + + QRadialGradient gradient(center.x() + rect.width() / 2, + center.y() + rect.width(), + rect.width() * 2, + center.x(), center.y()); + gradient.setColorAt(1, color.darker(140)); + gradient.setColorAt(qreal(0.4), color.darker(120)); + gradient.setColorAt(0, color.darker(110)); + + painter->setRenderHint(QPainter::Antialiasing); + painter->setBrush(gradient); + painter->setPen(QColor(255, 255, 255, 150)); + painter->drawEllipse(rect); + painter->setPen(QColor(0, 0, 0, 80)); + painter->drawEllipse(rect.adjusted(1, 1, -1, -1)); +} + +QT_END_NAMESPACE diff --git a/src/imports/controls/fusion/qquickfusionknob_p.h b/src/imports/controls/fusion/qquickfusionknob_p.h new file mode 100644 index 00000000..062aaf21 --- /dev/null +++ b/src/imports/controls/fusion/qquickfusionknob_p.h @@ -0,0 +1,75 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QQUICKFUSIONKNOB_P_H +#define QQUICKFUSIONKNOB_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include <QtGui/qpalette.h> +#include <QtQuick/qquickpainteditem.h> + +QT_BEGIN_NAMESPACE + +class QQuickFusionKnob : public QQuickPaintedItem +{ + Q_OBJECT + Q_PROPERTY(QPalette palette READ palette WRITE setPalette FINAL) + +public: + explicit QQuickFusionKnob(QQuickItem *parent = nullptr); + + QPalette palette() const; + void setPalette(const QPalette &palette); + + void paint(QPainter *painter) override; + +private: + QPalette m_palette; +}; + +QT_END_NAMESPACE + +#endif // QQUICKFUSIONKNOB_P_H diff --git a/src/imports/controls/fusion/qquickfusionstyle.cpp b/src/imports/controls/fusion/qquickfusionstyle.cpp new file mode 100644 index 00000000..a66665fc --- /dev/null +++ b/src/imports/controls/fusion/qquickfusionstyle.cpp @@ -0,0 +1,172 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qquickfusionstyle_p.h" + +#include <QtGui/qcolor.h> +#include <QtGui/qpalette.h> +#include <QtGui/qpa/qplatformtheme.h> +#include <QtGui/private/qguiapplication_p.h> + +QT_BEGIN_NAMESPACE + +// On mac we want a standard blue color used when the system palette is used +static bool isMacSystemPalette(const QPalette &palette) +{ + Q_UNUSED(palette); +#if defined(Q_OS_MACOS) + const QPalette *themePalette = QGuiApplicationPrivate::platformTheme()->palette(); + if (themePalette && themePalette->color(QPalette::Normal, QPalette::Highlight) == + palette.color(QPalette::Normal, QPalette::Highlight) && + themePalette->color(QPalette::Normal, QPalette::HighlightedText) == + palette.color(QPalette::Normal, QPalette::HighlightedText)) + return true; +#endif + return false; +} + +QQuickFusionStyle::QQuickFusionStyle(QObject *parent) + : QObject(parent) +{ +} + +QColor QQuickFusionStyle::lightShade() +{ + return QColor(255, 255, 255, 90); +} + +QColor QQuickFusionStyle::darkShade() +{ + return QColor(0, 0, 0, 60); +} + +QColor QQuickFusionStyle::topShadow() +{ + return QColor(0, 0, 0, 18); +} + +QColor QQuickFusionStyle::innerContrastLine() +{ + return QColor(255, 255, 255, 30); +} + +QColor QQuickFusionStyle::highlight(const QPalette &palette) +{ + if (isMacSystemPalette(palette)) + return QColor(60, 140, 230); + return palette.color(QPalette::Highlight); +} + +QColor QQuickFusionStyle::highlightedText(const QPalette &palette) +{ + if (isMacSystemPalette(palette)) + return Qt::white; + return palette.color(QPalette::HighlightedText); +} + +QColor QQuickFusionStyle::outline(const QPalette &palette) +{ + if (palette.window().style() == Qt::TexturePattern) + return QColor(0, 0, 0, 160); + return palette.background().color().darker(140); +} + +QColor QQuickFusionStyle::highlightedOutline(const QPalette &palette) +{ + QColor highlightedOutline = highlight(palette).darker(125); + if (highlightedOutline.value() > 160) + highlightedOutline.setHsl(highlightedOutline.hue(), highlightedOutline.saturation(), 160); + return highlightedOutline; +} + +QColor QQuickFusionStyle::tabFrameColor(const QPalette &palette) +{ + if (palette.window().style() == Qt::TexturePattern) + return QColor(255, 255, 255, 8); + return buttonColor(palette).lighter(104); +} + +QColor QQuickFusionStyle::buttonColor(const QPalette &palette, bool highlighted, bool down, bool hovered) +{ + QColor buttonColor = palette.button().color(); + int val = qGray(buttonColor.rgb()); + buttonColor = buttonColor.lighter(100 + qMax(1, (180 - val)/6)); + buttonColor.setHsv(buttonColor.hue(), buttonColor.saturation() * 0.75, buttonColor.value()); + if (highlighted) + buttonColor = mergedColors(buttonColor, highlightedOutline(palette).lighter(130), 90); + if (!hovered) + buttonColor = buttonColor.darker(104); + if (down) + buttonColor = buttonColor.darker(110); + return buttonColor; +} + +QColor QQuickFusionStyle::buttonOutline(const QPalette &palette, bool highlighted, bool enabled) +{ + QColor darkOutline = enabled && highlighted ? highlightedOutline(palette) : outline(palette); + return !enabled ? darkOutline.lighter(115) : darkOutline; +} + +QColor QQuickFusionStyle::gradientStart(const QColor &baseColor) +{ + return baseColor.lighter(124); +} + +QColor QQuickFusionStyle::gradientStop(const QColor &baseColor) +{ + return baseColor.lighter(102); +} + +QColor QQuickFusionStyle::mergedColors(const QColor &colorA, const QColor &colorB, int factor) +{ + const int maxFactor = 100; + QColor tmp = colorA; + tmp.setRed((tmp.red() * factor) / maxFactor + (colorB.red() * (maxFactor - factor)) / maxFactor); + tmp.setGreen((tmp.green() * factor) / maxFactor + (colorB.green() * (maxFactor - factor)) / maxFactor); + tmp.setBlue((tmp.blue() * factor) / maxFactor + (colorB.blue() * (maxFactor - factor)) / maxFactor); + return tmp; +} + +QColor QQuickFusionStyle::grooveColor(const QPalette &palette) +{ + QColor color = buttonColor(palette); + color.setHsv(color.hue(), + qMin(255, color.saturation()), + qMin<int>(255, color.value() * 0.9)); + return color; +} + +QT_END_NAMESPACE diff --git a/src/imports/controls/fusion/qquickfusionstyle_p.h b/src/imports/controls/fusion/qquickfusionstyle_p.h new file mode 100644 index 00000000..e0a99cc6 --- /dev/null +++ b/src/imports/controls/fusion/qquickfusionstyle_p.h @@ -0,0 +1,87 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QQUICKFUSIONSTYLE_P_H +#define QQUICKFUSIONSTYLE_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include <QtCore/qobject.h> +#include <QtGui/qcolor.h> + +QT_BEGIN_NAMESPACE + +class QQuickFusionStyle : public QObject +{ + Q_OBJECT + Q_PROPERTY(QColor lightShade READ lightShade CONSTANT) + Q_PROPERTY(QColor darkShade READ darkShade CONSTANT) + Q_PROPERTY(QColor topShadow READ topShadow CONSTANT) + Q_PROPERTY(QColor innerContrastLine READ innerContrastLine CONSTANT) + +public: + explicit QQuickFusionStyle(QObject *parent = nullptr); + + static QColor lightShade(); + static QColor darkShade(); + static QColor topShadow(); + static QColor innerContrastLine(); + + Q_INVOKABLE static QColor highlight(const QPalette &palette); + Q_INVOKABLE static QColor highlightedText(const QPalette &palette); + Q_INVOKABLE static QColor outline(const QPalette &palette); + Q_INVOKABLE static QColor highlightedOutline(const QPalette &palette); + Q_INVOKABLE static QColor tabFrameColor(const QPalette &palette); + Q_INVOKABLE static QColor buttonColor(const QPalette &palette, bool highlighted = false, bool down = false, bool hovered = false); + Q_INVOKABLE static QColor buttonOutline(const QPalette &palette, bool highlighted = false, bool enabled = true); + Q_INVOKABLE static QColor gradientStart(const QColor &baseColor); + Q_INVOKABLE static QColor gradientStop(const QColor &baseColor); + Q_INVOKABLE static QColor mergedColors(const QColor &colorA, const QColor &colorB, int factor = 50); + Q_INVOKABLE static QColor grooveColor(const QPalette &palette); +}; + +QT_END_NAMESPACE + +#endif // QQUICKFUSIONSTYLE_P_H diff --git a/src/imports/controls/fusion/qquickfusiontheme.cpp b/src/imports/controls/fusion/qquickfusiontheme.cpp new file mode 100644 index 00000000..31494efb --- /dev/null +++ b/src/imports/controls/fusion/qquickfusiontheme.cpp @@ -0,0 +1,46 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qquickfusiontheme_p.h" + +QT_BEGIN_NAMESPACE + +QQuickFusionTheme::QQuickFusionTheme() + : QQuickTheme(QStringLiteral("Fusion")) +{ +} + +QT_END_NAMESPACE diff --git a/src/imports/controls/fusion/qquickfusiontheme_p.h b/src/imports/controls/fusion/qquickfusiontheme_p.h new file mode 100644 index 00000000..5dcfcf61 --- /dev/null +++ b/src/imports/controls/fusion/qquickfusiontheme_p.h @@ -0,0 +1,65 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QQUICKFUSIONTHEME_P_H +#define QQUICKFUSIONTHEME_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include <QtCore/qvariant.h> +#include <QtGui/qpalette.h> +#include <QtQuickControls2/private/qquicktheme_p.h> + +QT_BEGIN_NAMESPACE + +class QQuickFusionTheme : public QQuickTheme +{ +public: + explicit QQuickFusionTheme(); +}; + +QT_END_NAMESPACE + +#endif // QQUICKFUSIONTHEME_P_H diff --git a/src/imports/controls/fusion/qtquickcontrols2fusionstyle.qrc b/src/imports/controls/fusion/qtquickcontrols2fusionstyle.qrc new file mode 100644 index 00000000..74c8e671 --- /dev/null +++ b/src/imports/controls/fusion/qtquickcontrols2fusionstyle.qrc @@ -0,0 +1,16 @@ +<!DOCTYPE RCC><RCC version="1.0"> +<qresource prefix="qt-project.org/imports/QtQuick/Controls.2/Fusion"> + <file>images/arrow.png</file> + <file>images/arrow@2x.png</file> + <file>images/arrow@3x.png</file> + <file>images/arrow@4x.png</file> + <file>images/checkmark.png</file> + <file>images/checkmark@2x.png</file> + <file>images/checkmark@3x.png</file> + <file>images/checkmark@4x.png</file> + <file>images/progressmask.png</file> + <file>images/progressmask@2x.png</file> + <file>images/progressmask@3x.png</file> + <file>images/progressmask@4x.png</file> +</qresource> +</RCC> diff --git a/src/imports/controls/fusion/qtquickcontrols2fusionstyleplugin.cpp b/src/imports/controls/fusion/qtquickcontrols2fusionstyleplugin.cpp new file mode 100644 index 00000000..1fcacc5e --- /dev/null +++ b/src/imports/controls/fusion/qtquickcontrols2fusionstyleplugin.cpp @@ -0,0 +1,121 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <QtQuickControls2/private/qquickstyleplugin_p.h> +#include <QtQml/qqml.h> + +#include "qquickfusionbusyindicator_p.h" +#include "qquickfusiondial_p.h" +#include "qquickfusionknob_p.h" +#include "qquickfusionstyle_p.h" +#include "qquickfusiontheme_p.h" + +static inline void initResources() +{ + Q_INIT_RESOURCE(qtquickcontrols2fusionstyle); +#ifdef QT_STATIC + Q_INIT_RESOURCE(qmake_QtQuick_Controls_2_Fusion); +#endif +} + +QT_BEGIN_NAMESPACE + +static QObject *styleSingleton(QQmlEngine *engine, QJSEngine *scriptEngine) +{ + Q_UNUSED(engine); + Q_UNUSED(scriptEngine); + return new QQuickFusionStyle; +} + +class QtQuickControls2FusionStylePlugin: public QQuickStylePlugin +{ + Q_OBJECT + Q_PLUGIN_METADATA(IID QQmlExtensionInterface_iid) + +public: + QtQuickControls2FusionStylePlugin(QObject *parent = nullptr); + + void registerTypes(const char *uri) override; + void initializeEngine(QQmlEngine *engine, const char *uri) override; + + QString name() const override; + QQuickProxyTheme *createTheme() const override; +}; + +QtQuickControls2FusionStylePlugin::QtQuickControls2FusionStylePlugin(QObject *parent) : QQuickStylePlugin(parent) +{ + initResources(); +} + +void QtQuickControls2FusionStylePlugin::registerTypes(const char *uri) +{ + qmlRegisterModule(uri, 2, QT_VERSION_MINOR - 7); // Qt 5.10->2.3, 5.11->2.4... +} + +void QtQuickControls2FusionStylePlugin::initializeEngine(QQmlEngine *engine, const char *uri) +{ + QQuickStylePlugin::initializeEngine(engine, uri); + + QByteArray import = QByteArray(uri) + ".impl"; + qmlRegisterModule(import, 2, QT_VERSION_MINOR - 7); // Qt 5.10->2.3, 5.11->2.4... + + qmlRegisterSingletonType<QQuickFusionStyle>(import, 2, 3, "Fusion", styleSingleton); + + qmlRegisterType<QQuickFusionBusyIndicator>(import, 2, 3, "BusyIndicatorImpl"); + qmlRegisterType<QQuickFusionDial>(import, 2, 3, "DialImpl"); + qmlRegisterType<QQuickFusionKnob>(import, 2, 3, "KnobImpl"); + + qmlRegisterType(typeUrl(QStringLiteral("ButtonPanel.qml")), import, 2, 3, "ButtonPanel"); + qmlRegisterType(typeUrl(QStringLiteral("CheckIndicator.qml")), import, 2, 3, "CheckIndicator"); + qmlRegisterType(typeUrl(QStringLiteral("RadioIndicator.qml")), import, 2, 3, "RadioIndicator"); + qmlRegisterType(typeUrl(QStringLiteral("SliderGroove.qml")), import, 2, 3, "SliderGroove"); + qmlRegisterType(typeUrl(QStringLiteral("SliderHandle.qml")), import, 2, 3, "SliderHandle"); + qmlRegisterType(typeUrl(QStringLiteral("SwitchIndicator.qml")), import, 2, 3, "SwitchIndicator"); +} + +QString QtQuickControls2FusionStylePlugin::name() const +{ + return QStringLiteral("fusion"); +} + +QQuickProxyTheme *QtQuickControls2FusionStylePlugin::createTheme() const +{ + return new QQuickFusionTheme; +} + +QT_END_NAMESPACE + +#include "qtquickcontrols2fusionstyleplugin.moc" diff --git a/src/imports/controls/images/arrow-indicator.png b/src/imports/controls/images/arrow-indicator.png Binary files differnew file mode 100644 index 00000000..50f230dc --- /dev/null +++ b/src/imports/controls/images/arrow-indicator.png diff --git a/src/imports/controls/images/arrow-indicator@2x.png b/src/imports/controls/images/arrow-indicator@2x.png Binary files differnew file mode 100644 index 00000000..457cdde0 --- /dev/null +++ b/src/imports/controls/images/arrow-indicator@2x.png diff --git a/src/imports/controls/images/arrow-indicator@3x.png b/src/imports/controls/images/arrow-indicator@3x.png Binary files differnew file mode 100644 index 00000000..8d624154 --- /dev/null +++ b/src/imports/controls/images/arrow-indicator@3x.png diff --git a/src/imports/controls/images/arrow-indicator@4x.png b/src/imports/controls/images/arrow-indicator@4x.png Binary files differnew file mode 100644 index 00000000..7d2c49e2 --- /dev/null +++ b/src/imports/controls/images/arrow-indicator@4x.png diff --git a/src/imports/controls/imagine/ApplicationWindow.qml b/src/imports/controls/imagine/ApplicationWindow.qml new file mode 100644 index 00000000..d0219da0 --- /dev/null +++ b/src/imports/controls/imagine/ApplicationWindow.qml @@ -0,0 +1,77 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Window 2.2 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Imagine 2.3 +import QtQuick.Controls.Imagine.impl 2.3 + +T.ApplicationWindow { + id: window + + // ### remove? + overlay.modal: NinePatchImage { + source: Imagine.url + "applicationwindow-overlay" + NinePatchImageSelector on source { + states: [ + {"modal": true} + ] + } + } + + // ### remove? + overlay.modeless: NinePatchImage { + source: Imagine.url + "applicationwindow-overlay" + NinePatchImageSelector on source { + states: [ + {"modal": false} + ] + } + } + + background: NinePatchImage { + width: window.width + height: window.height + + source: Imagine.url + "applicationwindow-background" + NinePatchImageSelector on source { + states: [ + {"active": window.active} + ] + } + } +} diff --git a/src/imports/controls/imagine/BusyIndicator.qml b/src/imports/controls/imagine/BusyIndicator.qml new file mode 100644 index 00000000..28585ab1 --- /dev/null +++ b/src/imports/controls/imagine/BusyIndicator.qml @@ -0,0 +1,87 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Imagine 2.3 +import QtQuick.Controls.Imagine.impl 2.3 + +T.BusyIndicator { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, + contentItem.implicitWidth + leftPadding + rightPadding) + implicitHeight: Math.max(background ? background.implicitHeight : 0, + contentItem.implicitHeight + topPadding + bottomPadding) + + topPadding: background ? background.topPadding : 0 + leftPadding: background ? background.leftPadding : 0 + rightPadding: background ? background.rightPadding : 0 + bottomPadding: background ? background.bottomPadding : 0 + + contentItem: AnimatedImage { + opacity: control.running ? 1 : 0 + playing: control.running || opacity > 0 + visible: control.running || opacity > 0 + Behavior on opacity { OpacityAnimator { duration: 250 } } + + source: Imagine.url + "busyindicator-animation" + AnimatedImageSelector on source { + states: [ + {"disabled": !control.enabled}, + {"running": control.running}, + {"mirrored": control.mirrored}, + {"hovered": control.hovered} + ] + } + } + + background: NinePatchImage { + x: -leftInset; y: -topInset + width: control.width + leftInset + rightInset + height: control.height + topInset + bottomInset + + source: Imagine.url + "busyindicator-background" + NinePatchImageSelector on source { + states: [ + {"disabled": !control.enabled}, + {"running": control.running}, + {"mirrored": control.mirrored}, + {"hovered": control.hovered} + ] + } + } +} diff --git a/src/imports/controls/imagine/Button.qml b/src/imports/controls/imagine/Button.qml new file mode 100644 index 00000000..8ccedbf8 --- /dev/null +++ b/src/imports/controls/imagine/Button.qml @@ -0,0 +1,99 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Imagine 2.3 +import QtQuick.Controls.Imagine.impl 2.3 + +T.Button { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, + contentItem.implicitWidth + leftPadding + rightPadding) + implicitHeight: Math.max(background ? background.implicitHeight : 0, + contentItem.implicitHeight + topPadding + bottomPadding) + baselineOffset: contentItem.y + contentItem.baselineOffset + + spacing: 6 // ### + + topPadding: background ? background.topPadding : 0 + leftPadding: background ? background.leftPadding : 0 + rightPadding: background ? background.rightPadding : 0 + bottomPadding: background ? background.bottomPadding : 0 + + icon.width: 24 + icon.height: 24 + icon.color: control.enabled && control.flat && control.highlighted ? control.palette.highlight + : control.enabled && (control.down || control.checked || control.highlighted) && !control.flat + ? control.palette.brightText : control.flat ? control.palette.windowText : control.palette.buttonText + + contentItem: IconLabel { + spacing: control.spacing + mirrored: control.mirrored + display: control.display + + icon: control.icon + text: control.text + font: control.font + color: control.enabled && control.flat && control.highlighted ? control.palette.highlight + : control.enabled && (control.down || control.checked || control.highlighted) && !control.flat + ? control.palette.brightText : control.flat ? control.palette.windowText : control.palette.buttonText + } + + background: NinePatchImage { + x: -leftInset; y: -topInset + width: control.width + leftInset + rightInset + height: control.height + topInset + bottomInset + + source: Imagine.url + "button-background" + NinePatchImageSelector on source { + states: [ + {"disabled": !control.enabled}, + {"pressed": control.down}, + {"checked": control.checked}, + {"checkable": control.checkable}, + {"focused": control.visualFocus}, + {"highlighted": control.highlighted}, + {"mirrored": control.mirrored}, + {"flat": control.flat}, + {"hovered": control.hovered} + ] + } + } +} diff --git a/src/imports/controls/imagine/CheckBox.qml b/src/imports/controls/imagine/CheckBox.qml new file mode 100644 index 00000000..6912e955 --- /dev/null +++ b/src/imports/controls/imagine/CheckBox.qml @@ -0,0 +1,106 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Imagine 2.3 +import QtQuick.Controls.Imagine.impl 2.3 + +T.CheckBox { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, + contentItem.implicitWidth + leftPadding + rightPadding) + implicitHeight: Math.max(background ? background.implicitHeight : 0, + Math.max(contentItem.implicitHeight, + indicator ? indicator.implicitHeight : 0) + topPadding + bottomPadding) + baselineOffset: contentItem.y + contentItem.baselineOffset + + spacing: 6 // ### + + topPadding: background ? background.topPadding : 0 + leftPadding: background ? background.leftPadding : 0 + rightPadding: background ? background.rightPadding : 0 + bottomPadding: background ? background.bottomPadding : 0 + + indicator: Image { + x: text ? (control.mirrored ? control.width - width - control.rightPadding : control.leftPadding) : control.leftPadding + (control.availableWidth - width) / 2 + y: control.topPadding + (control.availableHeight - height) / 2 + + source: Imagine.url + "checkbox-indicator" + ImageSelector on source { + states: [ + {"disabled": !control.enabled}, + {"pressed": control.down}, + {"checked": control.checkState === Qt.Checked}, + {"partially-checked": control.checkState === Qt.PartiallyChecked}, + {"focused": control.visualFocus}, + {"mirrored": control.mirrored}, + {"hovered": control.hovered} + ] + } + } + + contentItem: Text { + leftPadding: control.indicator && !control.mirrored ? control.indicator.width + control.spacing : 0 + rightPadding: control.indicator && control.mirrored ? control.indicator.width + control.spacing : 0 + + text: control.text + font: control.font + color: control.palette.windowText + elide: Text.ElideRight + verticalAlignment: Text.AlignVCenter + } + + background: NinePatchImage { + x: -leftInset; y: -topInset + width: control.width + leftInset + rightInset + height: control.height + topInset + bottomInset + + source: Imagine.url + "checkbox-background" + NinePatchImageSelector on source { + states: [ + {"disabled": !control.enabled}, + {"pressed": control.down}, + {"checked": control.checkState === Qt.Checked}, + {"partially-checked": control.checkState === Qt.PartiallyChecked}, + {"focused": control.visualFocus}, + {"mirrored": control.mirrored}, + {"hovered": control.hovered} + ] + } + } +} diff --git a/src/imports/controls/imagine/CheckDelegate.qml b/src/imports/controls/imagine/CheckDelegate.qml new file mode 100644 index 00000000..e98a612c --- /dev/null +++ b/src/imports/controls/imagine/CheckDelegate.qml @@ -0,0 +1,118 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Imagine 2.3 +import QtQuick.Controls.Imagine.impl 2.3 + +T.CheckDelegate { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, + contentItem.implicitWidth + leftPadding + rightPadding) + implicitHeight: Math.max(background ? background.implicitHeight : 0, + Math.max(contentItem.implicitHeight, + indicator ? indicator.implicitHeight : 0) + topPadding + bottomPadding) + baselineOffset: contentItem.y + contentItem.baselineOffset + + spacing: 12 // ### + + topPadding: background ? background.topPadding : 0 + leftPadding: background ? background.leftPadding : 0 + rightPadding: background ? background.rightPadding : 0 + bottomPadding: background ? background.bottomPadding : 0 + + icon.width: 24 + icon.height: 24 + icon.color: control.palette.text + + indicator: Image { + x: control.mirrored ? control.leftPadding : control.width - width - control.rightPadding + y: control.topPadding + (control.availableHeight - height) / 2 + + source: Imagine.url + "checkdelegate-indicator" + ImageSelector on source { + states: [ + {"disabled": !control.enabled}, + {"pressed": control.down}, + {"checked": control.checkState === Qt.Checked}, + {"partially-checked": control.checkState === Qt.PartiallyChecked}, + {"focused": control.visualFocus}, + {"highlighted": control.highlighted}, + {"mirrored": control.mirrored}, + {"hovered": control.hovered} + ] + } + } + + contentItem: IconLabel { + leftPadding: control.mirrored ? control.indicator.width + control.spacing : 0 + rightPadding: !control.mirrored ? control.indicator.width + control.spacing : 0 + + spacing: control.spacing + mirrored: control.mirrored + display: control.display + alignment: control.display === IconLabel.IconOnly || control.display === IconLabel.TextUnderIcon ? Qt.AlignCenter : Qt.AlignLeft + + icon: control.icon + text: control.text + font: control.font + color: control.palette.text + } + + background: NinePatchImage { + x: -leftInset; y: -topInset + width: control.width + leftInset + rightInset + height: control.height + topInset + bottomInset + + source: Imagine.url + "checkdelegate-background" + NinePatchImageSelector on source { + states: [ + {"disabled": !control.enabled}, + {"pressed": control.down}, + {"checked": control.checkState === Qt.Checked}, + {"partially-checked": control.checkState === Qt.PartiallyChecked}, + {"focused": control.visualFocus}, + {"highlighted": control.highlighted}, + {"mirrored": control.mirrored}, + {"hovered": control.hovered} + ] + } + } +} diff --git a/src/imports/controls/imagine/ComboBox.qml b/src/imports/controls/imagine/ComboBox.qml new file mode 100644 index 00000000..6d9a1162 --- /dev/null +++ b/src/imports/controls/imagine/ComboBox.qml @@ -0,0 +1,171 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Window 2.3 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.Imagine 2.3 +import QtQuick.Controls.Imagine.impl 2.3 + +T.ComboBox { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, + contentItem.implicitWidth + background ? (background.leftPadding + background.rightPadding) : 0) + implicitHeight: Math.max(background ? background.implicitHeight : 0, + Math.max(contentItem.implicitHeight, + indicator ? indicator.implicitHeight : 0) + background ? (background.topPadding + background.bottomPadding) : 0) + baselineOffset: contentItem.y + contentItem.baselineOffset + + leftPadding: padding + (!control.mirrored || !indicator || !indicator.visible ? 0 : indicator.width + spacing) + rightPadding: padding + (control.mirrored || !indicator || !indicator.visible ? 0 : indicator.width + spacing) + + delegate: ItemDelegate { + width: parent.width + text: control.textRole ? (Array.isArray(control.model) ? modelData[control.textRole] : model[control.textRole]) : modelData + highlighted: control.highlightedIndex === index + hoverEnabled: control.hoverEnabled + } + + indicator: Image { + x: control.mirrored ? control.padding : control.width - width - control.padding + y: control.topPadding + (control.availableHeight - height) / 2 + + source: Imagine.url + "combobox-indicator" + ImageSelector on source { + states: [ + {"disabled": !control.enabled}, + {"pressed": control.pressed}, + {"editable": control.editable}, + {"open": control.down}, + {"focused": control.visualFocus}, + {"mirrored": control.mirrored}, + {"hovered": control.hovered}, + {"flat": control.flat} + ] + } + } + + contentItem: T.TextField { + topPadding: control.background ? control.background.topPadding : 0 + leftPadding: control.background ? control.background.leftPadding : 0 + rightPadding: control.background ? control.background.rightPadding : 0 + bottomPadding: control.background ? control.background.bottomPadding : 0 + + text: control.editable ? control.editText : control.displayText + + enabled: control.editable + autoScroll: control.editable + readOnly: control.down + inputMethodHints: control.inputMethodHints + validator: control.validator + + font: control.font + color: control.flat ? control.palette.windowText : control.editable ? control.palette.text : control.palette.buttonText + selectionColor: control.palette.highlight + selectedTextColor: control.palette.highlightedText + verticalAlignment: Text.AlignVCenter + } + + background: NinePatchImage { + x: -leftInset; y: -topInset + width: control.width + leftInset + rightInset + height: control.height + topInset + bottomInset + + source: Imagine.url + "combobox-background" + NinePatchImageSelector on source { + states: [ + {"disabled": !control.enabled}, + {"pressed": control.pressed}, + {"editable": control.editable}, + {"open": control.down}, + {"focused": control.visualFocus || (control.editable && control.activeFocus)}, + {"mirrored": control.mirrored}, + {"hovered": control.hovered}, + {"flat": control.flat} + ] + } + } + + popup: T.Popup { + width: control.width + height: Math.min(contentItem.implicitHeight + topPadding + bottomPadding, control.Window.height - topMargin - bottomMargin) + + topMargin: background.topInset + bottomMargin: background.bottomInset + + topPadding: background.topPadding + leftPadding: background.leftPadding + rightPadding: background.rightPadding + bottomPadding: background.bottomPadding + + palette.text: control.palette.text + palette.highlight: control.palette.highlight + palette.highlightedText: control.palette.highlightedText + palette.windowText: control.palette.windowText + palette.buttonText: control.palette.buttonText + + contentItem: ListView { + clip: true + implicitHeight: contentHeight + model: control.delegateModel + currentIndex: control.highlightedIndex + highlightMoveDuration: 0 + + T.ScrollIndicator.vertical: ScrollIndicator { } + } + + background: NinePatchImage { + x: -leftInset; y: -topInset + width: control.popup.width + leftInset + rightInset + height: control.popup.height + topInset + bottomInset + + source: Imagine.url + "combobox-popup" + NinePatchImageSelector on source { + states: [ + {"disabled": !control.enabled}, + {"pressed": control.pressed}, + {"editable": control.editable}, + {"focused": control.visualFocus || (control.editable && control.activeFocus)}, + {"mirrored": control.mirrored}, + {"hovered": control.hovered}, + {"flat": control.flat} + ] + } + } + } +} diff --git a/src/imports/controls/imagine/DelayButton.qml b/src/imports/controls/imagine/DelayButton.qml new file mode 100644 index 00000000..157285f6 --- /dev/null +++ b/src/imports/controls/imagine/DelayButton.qml @@ -0,0 +1,138 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Imagine 2.3 +import QtQuick.Controls.Imagine.impl 2.3 +import QtGraphicalEffects 1.0 + +T.DelayButton { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, + contentItem.implicitWidth + leftPadding + rightPadding) + implicitHeight: Math.max(background ? background.implicitHeight : 0, + contentItem.implicitHeight + topPadding + bottomPadding) + baselineOffset: contentItem.y + contentItem.baselineOffset + + topPadding: background ? background.topPadding : 0 + leftPadding: background ? background.leftPadding : 0 + rightPadding: background ? background.rightPadding : 0 + bottomPadding: background ? background.bottomPadding : 0 + + transition: Transition { + NumberAnimation { + duration: control.delay * (control.pressed ? 1.0 - control.progress : 0.3 * control.progress) + } + } + + contentItem: Text { + text: control.text + font: control.font + color: control.palette.buttonText + horizontalAlignment: Text.AlignHCenter + verticalAlignment: Text.AlignVCenter + elide: Text.ElideRight + } + + background: NinePatchImage { + x: -leftInset; y: -topInset + width: control.width + leftInset + rightInset + height: control.height + topInset + bottomInset + + source: Imagine.url + "delaybutton-background" + NinePatchImageSelector on source { + states: [ + {"disabled": !control.enabled}, + {"pressed": control.down}, + {"checked": control.checked}, + {"focused": control.visualFocus}, + {"mirrored": control.mirrored}, + {"hovered": control.hovered} + ] + } + + readonly property NinePatchImage progress: NinePatchImage { + parent: control.background + width: control.progress * parent.width + height: parent.height + visible: false + + source: Imagine.url + "delaybutton-progress" + NinePatchImageSelector on source { + states: [ + {"disabled": !control.enabled}, + {"pressed": control.down}, + {"checked": control.checked}, + {"focused": control.visualFocus}, + {"mirrored": control.mirrored}, + {"hovered": control.hovered} + ] + } + } + + readonly property NinePatchImage mask: NinePatchImage { + width: control.background.width + height: control.background.height + visible: false + + source: Imagine.url + "delaybutton-mask" + NinePatchImageSelector on source { + states: [ + {"disabled": !control.enabled}, + {"pressed": control.down}, + {"checked": control.checked}, + {"focused": control.visualFocus}, + {"mirrored": control.mirrored}, + {"hovered": control.hovered} + ] + } + } + + readonly property OpacityMask effect: OpacityMask { + parent: control.background + width: source.width + height: source.height + source: control.background.progress + + maskSource: ShaderEffectSource { + sourceItem: control.background.mask + sourceRect: Qt.rect(0, 0, control.background.effect.width, control.background.effect.height) + } + } + } +} diff --git a/src/imports/controls/imagine/Dial.qml b/src/imports/controls/imagine/Dial.qml new file mode 100644 index 00000000..04f8e1b8 --- /dev/null +++ b/src/imports/controls/imagine/Dial.qml @@ -0,0 +1,99 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Imagine 2.3 +import QtQuick.Controls.Imagine.impl 2.3 + +T.Dial { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, + (handle ? handle.implicitWidth : 0) + leftPadding + rightPadding) + implicitHeight: Math.max(background ? background.implicitHeight : 0, + (handle ? handle.implicitHeight : 0) + topPadding + bottomPadding) + + topPadding: background ? background.topPadding : 0 + leftPadding: background ? background.leftPadding : 0 + rightPadding: background ? background.rightPadding : 0 + bottomPadding: background ? background.bottomPadding : 0 + + handle: Image { + x: background.x + background.width / 2 - handle.width / 2 + y: background.y + background.height / 2 - handle.height / 2 + + source: Imagine.url + "dial-handle" + ImageSelector on source { + states: [ + {"disabled": !control.enabled}, + {"pressed": control.pressed}, + {"focused": control.visualFocus}, + {"mirrored": control.mirrored}, + {"hovered": control.hovered} + ] + } + + transform: [ + Translate { + y: -background.height * 0.4 + handle.height / 2 + }, + Rotation { + angle: control.angle + origin.x: handle.width / 2 + origin.y: handle.height / 2 + } + ] + } + + background: NinePatchImage { + x: control.width / 2 - width / 2 + y: control.height / 2 - height / 2 + width: Math.max(64, Math.min(control.width, control.height)) + height: width + + source: Imagine.url + "dial-background" + NinePatchImageSelector on source { + states: [ + {"disabled": !control.enabled}, + {"pressed": control.pressed}, + {"focused": control.visualFocus}, + {"mirrored": control.mirrored}, + {"hovered": control.hovered} + ] + } + } +} diff --git a/src/imports/controls/imagine/Dialog.qml b/src/imports/controls/imagine/Dialog.qml new file mode 100644 index 00000000..e7a8cce5 --- /dev/null +++ b/src/imports/controls/imagine/Dialog.qml @@ -0,0 +1,119 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.Imagine 2.3 +import QtQuick.Controls.Imagine.impl 2.3 + +T.Dialog { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, + header && header.visible ? header.implicitWidth : 0, + footer && footer.visible ? footer.implicitWidth : 0, + contentWidth > 0 ? contentWidth + leftPadding + rightPadding : 0) + implicitHeight: Math.max(background ? background.implicitHeight : 0, + (header && header.visible ? header.implicitHeight + spacing : 0) + + (footer && footer.visible ? footer.implicitHeight + spacing : 0) + + (contentHeight > 0 ? contentHeight + topPadding + bottomPadding : 0)) + + contentWidth: contentItem.implicitWidth || (contentChildren.length === 1 ? contentChildren[0].implicitWidth : 0) + contentHeight: contentItem.implicitHeight || (contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0) + + topPadding: background ? background.topPadding : 0 + leftPadding: background ? background.leftPadding : 0 + rightPadding: background ? background.rightPadding : 0 + bottomPadding: background ? background.bottomPadding : 0 + + background: NinePatchImage { + x: -leftInset; y: -topInset + width: control.width + leftInset + rightInset + height: control.height + topInset + bottomInset + + source: Imagine.url + "dialog-background" + NinePatchImageSelector on source { + states: [ + {"modal": control.modal}, + {"dim": control.dim} + ] + } + } + + header: Label { + text: control.title + visible: control.title + elide: Label.ElideRight + font.bold: true + padding: 12 + + background: NinePatchImage { + width: parent.width + height: parent.height + + source: Imagine.url + "dialog-title" + NinePatchImageSelector on source { + states: [ + {"modal": control.modal}, + {"dim": control.dim} + ] + } + } + } + + footer: DialogButtonBox { + visible: count > 0 + } + + T.Overlay.modal: NinePatchImage { + source: Imagine.url + "dialog-overlay" + NinePatchImageSelector on source { + states: [ + {"modal": true} + ] + } + } + + T.Overlay.modeless: NinePatchImage { + source: Imagine.url + "dialog-overlay" + NinePatchImageSelector on source { + states: [ + {"modal": false} + ] + } + } +} diff --git a/src/imports/controls/imagine/DialogButtonBox.qml b/src/imports/controls/imagine/DialogButtonBox.qml new file mode 100644 index 00000000..ae0e64de --- /dev/null +++ b/src/imports/controls/imagine/DialogButtonBox.qml @@ -0,0 +1,86 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.Imagine 2.3 +import QtQuick.Controls.Imagine.impl 2.3 + +T.DialogButtonBox { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, + contentItem.implicitWidth + leftPadding + rightPadding) + implicitHeight: Math.max(background ? background.implicitHeight : 0, + contentItem.implicitHeight + topPadding + bottomPadding) + + topPadding: background ? background.topPadding : 0 + leftPadding: background ? background.leftPadding : 0 + rightPadding: background ? background.rightPadding : 0 + bottomPadding: background ? background.bottomPadding : 0 + spacing: 6 + + delegate: Button { + width: control.count === 1 ? control.availableWidth / 2 : undefined + flat: true + } + + contentItem: ListView { + implicitWidth: contentWidth + implicitHeight: 32 + + model: control.contentModel + spacing: control.spacing + orientation: ListView.Horizontal + boundsBehavior: Flickable.StopAtBounds + snapMode: ListView.SnapToItem + } + + background: NinePatchImage { + x: -leftInset; y: -topInset + width: control.width + leftInset + rightInset + height: control.height + topInset + bottomInset + + source: Imagine.url + "dialogbuttonbox-background" + NinePatchImageSelector on source { + states: [ + {"disabled": !control.enabled}, + {"mirrored": control.mirrored} + ] + } + } +} diff --git a/src/imports/controls/imagine/Drawer.qml b/src/imports/controls/imagine/Drawer.qml new file mode 100644 index 00000000..f52f9554 --- /dev/null +++ b/src/imports/controls/imagine/Drawer.qml @@ -0,0 +1,96 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Imagine 2.3 +import QtQuick.Controls.Imagine.impl 2.3 + +T.Drawer { + id: control + + parent: T.ApplicationWindow.overlay + + implicitWidth: Math.max(background ? background.implicitWidth : 0, contentWidth + leftPadding + rightPadding) + implicitHeight: Math.max(background ? background.implicitHeight : 0, contentHeight + topPadding + bottomPadding) + + contentWidth: contentItem.implicitWidth || (contentChildren.length === 1 ? contentChildren[0].implicitWidth : 0) + contentHeight: contentItem.implicitHeight || (contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0) + + topPadding: background ? background.topPadding : 0 + leftPadding: background ? background.leftPadding : 0 + rightPadding: background ? background.rightPadding : 0 + bottomPadding: background ? background.bottomPadding : 0 + + enter: Transition { SmoothedAnimation { velocity: 5 } } + exit: Transition { SmoothedAnimation { velocity: 5 } } + + background: NinePatchImage { + x: -leftInset; y: -topInset + width: control.width + leftInset + rightInset + height: control.height + topInset + bottomInset + + source: Imagine.url + "drawer-background" + NinePatchImageSelector on source { + states: [ + {"modal": control.modal}, + {"dim": control.dim}, + {"top": control.edge === Qt.TopEdge}, + {"left": control.edge === Qt.LeftEdge}, + {"right": control.edge === Qt.RightEdge}, + {"bottom": control.edge === Qt.BottomEdge} + ] + } + } + + T.Overlay.modal: NinePatchImage { + source: Imagine.url + "drawer-overlay" + NinePatchImageSelector on source { + states: [ + {"modal": true} + ] + } + } + + T.Overlay.modeless: NinePatchImage { + source: Imagine.url + "drawer-overlay" + NinePatchImageSelector on source { + states: [ + {"modal": false} + ] + } + } +} diff --git a/src/imports/controls/imagine/Frame.qml b/src/imports/controls/imagine/Frame.qml new file mode 100644 index 00000000..43c852f1 --- /dev/null +++ b/src/imports/controls/imagine/Frame.qml @@ -0,0 +1,69 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Imagine 2.3 +import QtQuick.Controls.Imagine.impl 2.3 + +T.Frame { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, contentWidth + leftPadding + rightPadding) + implicitHeight: Math.max(background ? background.implicitHeight : 0, contentHeight + topPadding + bottomPadding) + + contentWidth: contentItem.implicitWidth || (contentChildren.length === 1 ? contentChildren[0].implicitWidth : 0) + contentHeight: contentItem.implicitHeight || (contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0) + + topPadding: background ? background.topPadding : 0 + leftPadding: background ? background.leftPadding : 0 + rightPadding: background ? background.rightPadding : 0 + bottomPadding: background ? background.bottomPadding : 0 + + background: NinePatchImage { + x: -leftInset; y: -topInset + width: control.width + leftInset + rightInset + height: control.height + topInset + bottomInset + + source: Imagine.url + "frame-background" + NinePatchImageSelector on source { + states: [ + {"disabled": !control.enabled}, + {"mirrored": control.mirrored} + ] + } + } +} diff --git a/src/imports/controls/imagine/GroupBox.qml b/src/imports/controls/imagine/GroupBox.qml new file mode 100644 index 00000000..0049b8b0 --- /dev/null +++ b/src/imports/controls/imagine/GroupBox.qml @@ -0,0 +1,103 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.Imagine 2.3 +import QtQuick.Controls.Imagine.impl 2.3 + +T.GroupBox { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, + label ? label.implicitWidth + leftPadding + rightPadding : 0, + contentWidth + leftPadding + rightPadding) + implicitHeight: Math.max(background ? background.implicitHeight : 0, contentHeight + topPadding + bottomPadding) + + contentWidth: contentItem.implicitWidth || (contentChildren.length === 1 ? contentChildren[0].implicitWidth : 0) + contentHeight: contentItem.implicitHeight || (contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0) + + topPadding: (background ? background.topPadding : 0) + (label && label.implicitWidth > 0 ? label.implicitHeight + spacing : 0) + leftPadding: background ? background.leftPadding : 0 + rightPadding: background ? background.rightPadding : 0 + bottomPadding: background ? background.bottomPadding : 0 + padding: 12 + + label: Label { + width: control.width + + topPadding: background.topPadding + leftPadding: background.leftPadding + rightPadding: background.rightPadding + bottomPadding: background.bottomPadding + + text: control.title + font: control.font + elide: Text.ElideRight + verticalAlignment: Text.AlignVCenter + + color: control.palette.windowText + + background: NinePatchImage { + width: parent.width + height: parent.height + + source: Imagine.url + "groupbox-title" + NinePatchImageSelector on source { + states: [ + {"disabled": !control.enabled}, + {"mirrored": control.mirrored} + ] + } + } + } + + background: NinePatchImage { + x: -leftInset + y: control.topPadding - control.padding - topInset + width: control.width + leftInset + rightInset + height: control.height + topInset + bottomInset - control.topPadding + control.padding + + source: Imagine.url + "groupbox-background" + NinePatchImageSelector on source { + states: [ + {"disabled": !control.enabled}, + {"mirrored": control.mirrored} + ] + } + } +} diff --git a/src/imports/controls/imagine/ItemDelegate.qml b/src/imports/controls/imagine/ItemDelegate.qml new file mode 100644 index 00000000..1d16faf4 --- /dev/null +++ b/src/imports/controls/imagine/ItemDelegate.qml @@ -0,0 +1,94 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Imagine 2.3 +import QtQuick.Controls.Imagine.impl 2.3 + +T.ItemDelegate { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, + contentItem.implicitWidth + leftPadding + rightPadding) + implicitHeight: Math.max(background ? background.implicitHeight : 0, + Math.max(contentItem.implicitHeight, + indicator ? indicator.implicitHeight : 0) + topPadding + bottomPadding) + baselineOffset: contentItem.y + contentItem.baselineOffset + + spacing: 12 // ### + + topPadding: background ? background.topPadding : 0 + leftPadding: background ? background.leftPadding : 0 + rightPadding: background ? background.rightPadding : 0 + bottomPadding: background ? background.bottomPadding : 0 + + icon.width: 24 + icon.height: 24 + icon.color: control.palette.text + + contentItem: IconLabel { + spacing: control.spacing + mirrored: control.mirrored + display: control.display + alignment: control.display === IconLabel.IconOnly || control.display === IconLabel.TextUnderIcon ? Qt.AlignCenter : Qt.AlignLeft + + icon: control.icon + text: control.text + font: control.font + color: control.palette.text + } + + background: NinePatchImage { + x: -leftInset; y: -topInset + width: control.width + leftInset + rightInset + height: control.height + topInset + bottomInset + + source: Imagine.url + "itemdelegate-background" + NinePatchImageSelector on source { + states: [ + {"disabled": !control.enabled}, + {"pressed": control.down}, + {"focused": control.visualFocus}, + {"highlighted": control.highlighted}, + {"mirrored": control.mirrored}, + {"hovered": control.hovered} + ] + } + } +} diff --git a/src/imports/controls/imagine/Label.qml b/src/imports/controls/imagine/Label.qml new file mode 100644 index 00000000..0db416e1 --- /dev/null +++ b/src/imports/controls/imagine/Label.qml @@ -0,0 +1,62 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Imagine 2.3 +import QtQuick.Controls.Imagine.impl 2.3 + +T.Label { + id: control + + color: control.palette.windowText + linkColor: control.palette.link + + background: NinePatchImage { + x: -leftInset; y: -topInset + width: control.width + leftInset + rightInset + height: control.height + topInset + bottomInset + + source: Imagine.url + "label-background" + NinePatchImageSelector on source { + states: [ + {"disabled": !control.enabled}, + {"mirrored": control.mirrored}, + {"hovered": control.hovered} + ] + } + } +} diff --git a/src/imports/controls/imagine/Menu.qml b/src/imports/controls/imagine/Menu.qml new file mode 100644 index 00000000..80bda5ec --- /dev/null +++ b/src/imports/controls/imagine/Menu.qml @@ -0,0 +1,105 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Controls 2.3 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Imagine 2.3 +import QtQuick.Controls.Imagine.impl 2.3 + +T.Menu { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, + contentItem ? contentItem.implicitWidth + leftPadding + rightPadding : 0) + implicitHeight: Math.max(background ? background.implicitHeight : 0, + contentItem ? contentItem.implicitHeight : 0) + topPadding + bottomPadding + + topMargin: background ? background.topInset : 0 + leftMargin: background ? background.leftInset : 0 + rightMargin: background ? background.rightInset : 0 + bottomMargin: background ? background.bottomInset : 0 + + topPadding: background ? background.topPadding : 0 + leftPadding: background ? background.leftPadding : 0 + rightPadding: background ? background.rightPadding : 0 + bottomPadding: background ? background.bottomPadding : 0 + + delegate: MenuItem { } + + contentItem: ListView { + implicitHeight: contentHeight + model: control.contentModel + // TODO: improve this? + interactive: T.ApplicationWindow.window ? contentHeight > T.ApplicationWindow.window.height : false + clip: true + currentIndex: control.currentIndex + + T.ScrollIndicator.vertical: ScrollIndicator { } + } + + background: NinePatchImage { + x: -leftInset; y: -topInset + width: control.width + leftInset + rightInset + height: control.height + topInset + bottomInset + + source: Imagine.url + "menu-background" + NinePatchImageSelector on source { + states: [ + {"modal": control.modal}, + {"dim": control.dim} + ] + } + } + + T.Overlay.modal: NinePatchImage { + source: Imagine.url + "menu-overlay" + NinePatchImageSelector on source { + states: [ + {"modal": true} + ] + } + } + + T.Overlay.modeless: NinePatchImage { + source: Imagine.url + "menu-overlay" + NinePatchImageSelector on source { + states: [ + {"modal": false} + ] + } + } +} diff --git a/src/imports/controls/imagine/MenuItem.qml b/src/imports/controls/imagine/MenuItem.qml new file mode 100644 index 00000000..8b576444 --- /dev/null +++ b/src/imports/controls/imagine/MenuItem.qml @@ -0,0 +1,138 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Imagine 2.3 +import QtQuick.Controls.Imagine.impl 2.3 + +T.MenuItem { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, + contentItem.implicitWidth + leftPadding + rightPadding) + implicitHeight: Math.max(background ? background.implicitHeight : 0, + Math.max(contentItem.implicitHeight, + indicator ? indicator.implicitHeight : 0) + topPadding + bottomPadding) + baselineOffset: contentItem.y + contentItem.baselineOffset + + spacing: 6 // ### + + topPadding: background ? background.topPadding : 0 + leftPadding: background ? background.leftPadding : 0 + rightPadding: background ? background.rightPadding : 0 + bottomPadding: background ? background.bottomPadding : 0 + + icon.width: 24 + icon.height: 24 + icon.color: control.palette.windowText + + contentItem: IconLabel { + readonly property real arrowPadding: control.subMenu && control.arrow ? control.arrow.width + control.spacing : 0 + readonly property real indicatorPadding: control.checkable && control.indicator ? control.indicator.width + control.spacing : 0 + leftPadding: !control.mirrored ? indicatorPadding : arrowPadding + rightPadding: control.mirrored ? indicatorPadding : arrowPadding + + spacing: control.spacing + mirrored: control.mirrored + display: control.display + alignment: Qt.AlignLeft + + icon: control.icon + text: control.text + font: control.font + color: control.palette.windowText + } + + arrow: Image { + x: control.mirrored ? control.leftPadding : control.width - width - control.rightPadding + y: control.topPadding + (control.availableHeight - height) / 2 + + visible: control.subMenu + source: Imagine.url + "menuitem-arrow" + ImageSelector on source { + states: [ + {"disabled": !control.enabled}, + {"pressed": control.down}, + {"checked": control.checked}, + {"focused": control.visualFocus}, + {"highlighted": control.highlighted}, + {"mirrored": control.mirrored}, + {"hovered": control.hovered} + ] + } + } + + indicator: Image { + x: control.text ? (control.mirrored ? control.width - width - control.rightPadding : control.leftPadding) : control.leftPadding + (control.availableWidth - width) / 2 + y: control.topPadding + (control.availableHeight - height) / 2 + + visible: control.checkable + source: Imagine.url + "menuitem-indicator" + ImageSelector on source { + states: [ + {"disabled": !control.enabled}, + {"pressed": control.down}, + {"checked": control.checked}, + {"focused": control.visualFocus}, + {"highlighted": control.highlighted}, + {"mirrored": control.mirrored}, + {"hovered": control.hovered} + ] + } + } + + background: NinePatchImage { + x: -leftInset; y: -topInset + width: control.width + leftInset + rightInset + height: control.height + topInset + bottomInset + + source: Imagine.url + "menuitem-background" + NinePatchImageSelector on source { + states: [ + {"disabled": !control.enabled}, + {"pressed": control.down}, + {"checked": control.checked}, + {"focused": control.visualFocus}, + {"highlighted": control.highlighted}, + {"mirrored": control.mirrored}, + {"hovered": control.hovered} + ] + } + } +} diff --git a/src/imports/controls/imagine/MenuSeparator.qml b/src/imports/controls/imagine/MenuSeparator.qml new file mode 100644 index 00000000..d445a9e1 --- /dev/null +++ b/src/imports/controls/imagine/MenuSeparator.qml @@ -0,0 +1,78 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Imagine 2.3 +import QtQuick.Controls.Imagine.impl 2.3 + +T.MenuSeparator { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, + contentItem ? contentItem.implicitWidth + leftPadding + rightPadding : 0) + implicitHeight: Math.max(background ? background.implicitHeight : 0, + contentItem ? contentItem.implicitHeight + topPadding + bottomPadding : 0) + + topPadding: background ? background.topPadding : 0 + leftPadding: background ? background.leftPadding : 0 + rightPadding: background ? background.rightPadding : 0 + bottomPadding: background ? background.bottomPadding : 0 + + contentItem: NinePatchImage { + source: Imagine.url + "menuseparator-separator" + NinePatchImageSelector on source { + states: [ + {"disabled": !control.enabled}, + {"mirrored": control.mirrored} + ] + } + } + + background: NinePatchImage { + x: -leftInset; y: -topInset + width: control.width + leftInset + rightInset + height: control.height + topInset + bottomInset + + source: Imagine.url + "menuseparator-background" + NinePatchImageSelector on source { + states: [ + {"disabled": !control.enabled}, + {"mirrored": control.mirrored} + ] + } + } +} diff --git a/src/imports/controls/imagine/Page.qml b/src/imports/controls/imagine/Page.qml new file mode 100644 index 00000000..f3bdba51 --- /dev/null +++ b/src/imports/controls/imagine/Page.qml @@ -0,0 +1,75 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Imagine 2.3 +import QtQuick.Controls.Imagine.impl 2.3 + +T.Page { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, + Math.max(contentWidth, + header && header.visible ? header.implicitWidth : 0, + footer && footer.visible ? footer.implicitWidth : 0) + leftPadding + rightPadding) + implicitHeight: Math.max(background ? background.implicitHeight : 0, + contentHeight + topPadding + bottomPadding + + (header && header.visible ? header.implicitHeight + spacing : 0) + + (footer && footer.visible ? footer.implicitHeight + spacing : 0)) + + contentWidth: contentItem.implicitWidth || (contentChildren.length === 1 ? contentChildren[0].implicitWidth : 0) + contentHeight: contentItem.implicitHeight || (contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0) + + topPadding: background ? background.topPadding : 0 + leftPadding: background ? background.leftPadding : 0 + rightPadding: background ? background.rightPadding : 0 + bottomPadding: background ? background.bottomPadding : 0 + + background: NinePatchImage { + x: -leftInset; y: -topInset + width: control.width + leftInset + rightInset + height: control.height + topInset + bottomInset + + source: Imagine.url + "page-background" + NinePatchImageSelector on source { + states: [ + {"disabled": !control.enabled}, + {"mirrored": control.mirrored} + ] + } + } +} diff --git a/src/imports/controls/imagine/PageIndicator.qml b/src/imports/controls/imagine/PageIndicator.qml new file mode 100644 index 00000000..fafd73d3 --- /dev/null +++ b/src/imports/controls/imagine/PageIndicator.qml @@ -0,0 +1,91 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Imagine 2.3 +import QtQuick.Controls.Imagine.impl 2.3 + +T.PageIndicator { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, + contentItem.implicitWidth + leftPadding + rightPadding) + implicitHeight: Math.max(background ? background.implicitHeight : 0, + contentItem.implicitHeight + topPadding + bottomPadding) + + topPadding: background ? background.topPadding : 0 + leftPadding: background ? background.leftPadding : 0 + rightPadding: background ? background.rightPadding : 0 + bottomPadding: background ? background.bottomPadding : 0 + + delegate: Image { + source: Imagine.url + "pageindicator-delegate" + ImageSelector on source { + states: [ + {"disabled": !control.enabled}, + {"pressed": pressed}, + {"current": index === control.currentIndex}, + {"mirrored": control.mirrored}, + {"hovered": control.hovered} // ### TODO: context property + ] + } + } + + contentItem: Row { + spacing: control.spacing + + Repeater { + model: control.count + delegate: control.delegate + } + } + + background: NinePatchImage { + x: -leftInset; y: -topInset + width: control.width + leftInset + rightInset + height: control.height + topInset + bottomInset + + source: Imagine.url + "pageindicator-background" + NinePatchImageSelector on source { + states: [ + {"disabled": !control.enabled}, + {"mirrored": control.mirrored}, + {"hovered": control.hovered} + ] + } + } +} diff --git a/src/imports/controls/imagine/Pane.qml b/src/imports/controls/imagine/Pane.qml new file mode 100644 index 00000000..b0029d49 --- /dev/null +++ b/src/imports/controls/imagine/Pane.qml @@ -0,0 +1,69 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Imagine 2.3 +import QtQuick.Controls.Imagine.impl 2.3 + +T.Pane { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, contentWidth + leftPadding + rightPadding) + implicitHeight: Math.max(background ? background.implicitHeight : 0, contentHeight + topPadding + bottomPadding) + + contentWidth: contentItem.implicitWidth || (contentChildren.length === 1 ? contentChildren[0].implicitWidth : 0) + contentHeight: contentItem.implicitHeight || (contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0) + + topPadding: background ? background.topPadding : 0 + leftPadding: background ? background.leftPadding : 0 + rightPadding: background ? background.rightPadding : 0 + bottomPadding: background ? background.bottomPadding : 0 + + background: NinePatchImage { + x: -leftInset; y: -topInset + width: control.width + leftInset + rightInset + height: control.height + topInset + bottomInset + + source: Imagine.url + "pane-background" + NinePatchImageSelector on source { + states: [ + {"disabled": !control.enabled}, + {"mirrored": control.mirrored} + ] + } + } +} diff --git a/src/imports/controls/imagine/Popup.qml b/src/imports/controls/imagine/Popup.qml new file mode 100644 index 00000000..08fcfc69 --- /dev/null +++ b/src/imports/controls/imagine/Popup.qml @@ -0,0 +1,89 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Imagine 2.3 +import QtQuick.Controls.Imagine.impl 2.3 + +T.Popup { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, + contentWidth > 0 ? contentWidth + leftPadding + rightPadding : 0) + implicitHeight: Math.max(background ? background.implicitHeight : 0, + contentHeight > 0 ? contentHeight + topPadding + bottomPadding : 0) + + contentWidth: contentItem.implicitWidth || (contentChildren.length === 1 ? contentChildren[0].implicitWidth : 0) + contentHeight: contentItem.implicitHeight || (contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0) + + topPadding: background ? background.topPadding : undefined + leftPadding: background ? background.leftPadding : undefined + rightPadding: background ? background.rightPadding : undefined + bottomPadding: background ? background.bottomPadding : undefined + + background: NinePatchImage { + x: -leftInset; y: -topInset + width: control.width + leftInset + rightInset + height: control.height + topInset + bottomInset + + source: Imagine.url + "popup-background" + NinePatchImageSelector on source { + states: [ + {"modal": control.modal}, + {"dim": control.dim} + ] + } + } + + T.Overlay.modal: NinePatchImage { + source: Imagine.url + "popup-overlay" + NinePatchImageSelector on source { + states: [ + {"modal": true} + ] + } + } + + T.Overlay.modeless: NinePatchImage { + source: Imagine.url + "popup-overlay" + NinePatchImageSelector on source { + states: [ + {"modal": false} + ] + } + } +} diff --git a/src/imports/controls/imagine/ProgressBar.qml b/src/imports/controls/imagine/ProgressBar.qml new file mode 100644 index 00000000..e943f188 --- /dev/null +++ b/src/imports/controls/imagine/ProgressBar.qml @@ -0,0 +1,141 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Imagine 2.3 +import QtQuick.Controls.Imagine.impl 2.3 +import QtGraphicalEffects 1.0 + +T.ProgressBar { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, + contentItem.implicitWidth + leftPadding + rightPadding) + implicitHeight: Math.max(background ? background.implicitHeight : 0, + contentItem.implicitHeight + topPadding + bottomPadding) + + topPadding: background ? background.topPadding : 0 + leftPadding: background ? background.leftPadding : 0 + rightPadding: background ? background.rightPadding : 0 + bottomPadding: background ? background.bottomPadding : 0 + + contentItem: Item { + implicitWidth: control.indeterminate ? animation.implicitWidth || progress.implicitWidth : progress.implicitWidth + implicitHeight: control.indeterminate ? animation.implicitHeight || progress.implicitHeight : progress.implicitHeight + scale: control.mirrored ? -1 : 1 + + readonly property bool hasMask: mask.status !== Image.Null + + readonly property NinePatchImage progress: NinePatchImage { + parent: control.contentItem + width: control.position * parent.width + height: parent.height + visible: !control.indeterminate && !control.contentItem.hasMask + + source: Imagine.url + "progressbar-progress" + NinePatchImageSelector on source { + states: [ + {"disabled": !control.enabled}, + {"indeterminate": control.indeterminate}, + {"mirrored": control.mirrored}, + {"hovered": control.hovered} + ] + } + } + + readonly property AnimatedImage animation: AnimatedImage { + parent: control.contentItem + width: parent.width + height: parent.height + playing: control.indeterminate + visible: control.indeterminate && !control.contentItem.hasMask + + source: Imagine.url + "progressbar-animation" + AnimatedImageSelector on source { + states: [ + {"disabled": !control.enabled}, + {"mirrored": control.mirrored}, + {"hovered": control.hovered} + ] + } + } + + readonly property NinePatchImage mask: NinePatchImage { + width: control.availableWidth + height: control.availableHeight + visible: false + + source: Imagine.url + "progressbar-mask" + NinePatchImageSelector on source { + states: [ + {"disabled": !control.enabled}, + {"indeterminate": control.indeterminate}, + {"mirrored": control.mirrored}, + {"hovered": control.hovered} + ] + } + } + + readonly property OpacityMask effect: OpacityMask { + parent: control.contentItem + width: source.width + height: source.height + source: control.indeterminate ? control.contentItem.animation : control.contentItem.progress + + maskSource: ShaderEffectSource { + sourceItem: control.contentItem.mask + sourceRect: Qt.rect(0, 0, control.contentItem.effect.width, control.contentItem.effect.height) + } + } + } + + background: NinePatchImage { + x: -leftInset; y: -topInset + width: control.width + leftInset + rightInset + height: control.height + topInset + bottomInset + + source: Imagine.url + "progressbar-background" + NinePatchImageSelector on source { + states: [ + {"disabled": !control.enabled}, + {"indeterminate": control.indeterminate}, + {"mirrored": control.mirrored}, + {"hovered": control.hovered} + ] + } + } +} diff --git a/src/imports/controls/imagine/RadioButton.qml b/src/imports/controls/imagine/RadioButton.qml new file mode 100644 index 00000000..7921cfb1 --- /dev/null +++ b/src/imports/controls/imagine/RadioButton.qml @@ -0,0 +1,104 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Imagine 2.3 +import QtQuick.Controls.Imagine.impl 2.3 + +T.RadioButton { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, + contentItem.implicitWidth + leftPadding + rightPadding) + implicitHeight: Math.max(background ? background.implicitHeight : 0, + Math.max(contentItem.implicitHeight, + indicator ? indicator.implicitHeight : 0) + topPadding + bottomPadding) + baselineOffset: contentItem.y + contentItem.baselineOffset + + spacing: 6 // ### + + topPadding: background ? background.topPadding : 0 + leftPadding: background ? background.leftPadding : 0 + rightPadding: background ? background.rightPadding : 0 + bottomPadding: background ? background.bottomPadding : 0 + + indicator: Image { + x: text ? (control.mirrored ? control.width - width - control.rightPadding : control.leftPadding) : control.leftPadding + (control.availableWidth - width) / 2 + y: control.topPadding + (control.availableHeight - height) / 2 + + source: Imagine.url + "radiobutton-indicator" + ImageSelector on source { + states: [ + {"disabled": !control.enabled}, + {"pressed": control.down}, + {"checked": control.checked}, + {"focused": control.visualFocus}, + {"mirrored": control.mirrored}, + {"hovered": control.hovered} + ] + } + } + + contentItem: Text { + leftPadding: control.indicator && !control.mirrored ? control.indicator.width + control.spacing : 0 + rightPadding: control.indicator && control.mirrored ? control.indicator.width + control.spacing : 0 + + text: control.text + font: control.font + color: control.palette.windowText + elide: Text.ElideRight + verticalAlignment: Text.AlignVCenter + } + + background: NinePatchImage { + x: -leftInset; y: -topInset + width: control.width + leftInset + rightInset + height: control.height + topInset + bottomInset + + source: Imagine.url + "radiobutton-background" + NinePatchImageSelector on source { + states: [ + {"disabled": !control.enabled}, + {"pressed": control.down}, + {"checked": control.checked}, + {"focused": control.visualFocus}, + {"mirrored": control.mirrored}, + {"hovered": control.hovered} + ] + } + } +} diff --git a/src/imports/controls/imagine/RadioDelegate.qml b/src/imports/controls/imagine/RadioDelegate.qml new file mode 100644 index 00000000..25d7dd2d --- /dev/null +++ b/src/imports/controls/imagine/RadioDelegate.qml @@ -0,0 +1,116 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Imagine 2.3 +import QtQuick.Controls.Imagine.impl 2.3 + +T.RadioDelegate { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, + contentItem.implicitWidth + leftPadding + rightPadding) + implicitHeight: Math.max(background ? background.implicitHeight : 0, + Math.max(contentItem.implicitHeight, + indicator ? indicator.implicitHeight : 0) + topPadding + bottomPadding) + baselineOffset: contentItem.y + contentItem.baselineOffset + + spacing: 12 // ### + + topPadding: background ? background.topPadding : 0 + leftPadding: background ? background.leftPadding : 0 + rightPadding: background ? background.rightPadding : 0 + bottomPadding: background ? background.bottomPadding : 0 + + icon.width: 24 + icon.height: 24 + icon.color: control.palette.text + + indicator: Image { + x: control.mirrored ? control.leftPadding : control.width - width - control.rightPadding + y: control.topPadding + (control.availableHeight - height) / 2 + + source: Imagine.url + "radiodelegate-indicator" + ImageSelector on source { + states: [ + {"disabled": !control.enabled}, + {"pressed": control.down}, + {"checked": control.checked}, + {"focused": control.visualFocus}, + {"highlighted": control.highlighted}, + {"mirrored": control.mirrored}, + {"hovered": control.hovered} + ] + } + } + + contentItem: IconLabel { + leftPadding: control.mirrored ? control.indicator.width + control.spacing : 0 + rightPadding: !control.mirrored ? control.indicator.width + control.spacing : 0 + + spacing: control.spacing + mirrored: control.mirrored + display: control.display + alignment: control.display === IconLabel.IconOnly || control.display === IconLabel.TextUnderIcon ? Qt.AlignCenter : Qt.AlignLeft + + icon: control.icon + text: control.text + font: control.font + color: control.palette.text + } + + background: NinePatchImage { + x: -leftInset; y: -topInset + width: control.width + leftInset + rightInset + height: control.height + topInset + bottomInset + + source: Imagine.url + "radiodelegate-background" + NinePatchImageSelector on source { + states: [ + {"disabled": !control.enabled}, + {"pressed": control.down}, + {"checked": control.checked}, + {"focused": control.visualFocus}, + {"highlighted": control.highlighted}, + {"mirrored": control.mirrored}, + {"hovered": control.hovered} + ] + } + } +} diff --git a/src/imports/controls/imagine/RangeSlider.qml b/src/imports/controls/imagine/RangeSlider.qml new file mode 100644 index 00000000..b902806a --- /dev/null +++ b/src/imports/controls/imagine/RangeSlider.qml @@ -0,0 +1,132 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Imagine 2.3 +import QtQuick.Controls.Imagine.impl 2.3 + +T.RangeSlider { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, + Math.max(first.handle ? first.handle.implicitWidth : 0, + second.handle ? second.handle.implicitWidth : 0) + leftPadding + rightPadding) + implicitHeight: Math.max(background ? background.implicitHeight : 0, + Math.max(first.handle ? first.handle.implicitHeight : 0, + second.handle ? second.handle.implicitHeight : 0) + topPadding + bottomPadding) + + topPadding: background ? background.topPadding : 0 + leftPadding: background ? background.leftPadding : 0 + rightPadding: background ? background.rightPadding : 0 + bottomPadding: background ? background.bottomPadding : 0 + + first.handle: Image { + x: control.leftPadding + (control.horizontal ? control.first.visualPosition * (control.availableWidth - width) : (control.availableWidth - width) / 2) + y: control.topPadding + (control.horizontal ? (control.availableHeight - height) / 2 : control.first.visualPosition * (control.availableHeight - height)) + + source: Imagine.url + "rangeslider-handle" + ImageSelector on source { + states: [ + {"first": true}, + {"vertical": control.vertical}, + {"horizontal": control.horizontal}, + {"disabled": !control.enabled}, + {"pressed": control.first.pressed}, + {"focused": control.first.handle.activeFocus}, + {"mirrored": control.mirrored}, + {"hovered": control.first.hovered} + ] + } + } + + second.handle: Image { + x: control.leftPadding + (control.horizontal ? control.second.visualPosition * (control.availableWidth - width) : (control.availableWidth - width) / 2) + y: control.topPadding + (control.horizontal ? (control.availableHeight - height) / 2 : control.second.visualPosition * (control.availableHeight - height)) + + source: Imagine.url + "rangeslider-handle" + ImageSelector on source { + states: [ + {"second": true}, + {"vertical": control.vertical}, + {"horizontal": control.horizontal}, + {"disabled": !control.enabled}, + {"pressed": control.second.pressed}, + {"focused": control.second.handle.activeFocus}, + {"mirrored": control.mirrored}, + {"hovered": control.second.hovered} + ] + } + } + + background: NinePatchImage { + x: -leftInset; y: -topInset + width: control.width + leftInset + rightInset + height: control.height + topInset + bottomInset + scale: control.horizontal && control.mirrored ? -1 : 1 + + source: Imagine.url + "rangeslider-background" + NinePatchImageSelector on source { + states: [ + {"vertical": control.vertical}, + {"horizontal": control.horizontal}, + {"disabled": !control.enabled}, + {"focused": control.visualFocus}, + {"mirrored": control.mirrored}, + {"hovered": control.hovered} + ] + } + + NinePatchImage { + x: control.horizontal ? control.first.handle.width / 2 + control.first.position * (parent.width - control.first.handle.width) : (parent.width - width) / 2 + y: control.horizontal ? (parent.height - height) / 2 : control.first.handle.height / 2 + control.second.visualPosition * (parent.height - control.first.handle.height) + width: control.horizontal ? control.second.position * (parent.width - control.first.handle.width) - control.first.position * (parent.width - control.first.handle.width) : parent.width + height: control.vertical ? control.second.position * (parent.height - control.first.handle.height) - control.first.position * (parent.height - control.first.handle.height): parent.height + + source: Imagine.url + "rangeslider-progress" + NinePatchImageSelector on source { + states: [ + {"vertical": control.vertical}, + {"horizontal": control.horizontal}, + {"disabled": !control.enabled}, + {"focused": control.visualFocus}, + {"mirrored": control.mirrored}, + {"hovered": control.hovered} + ] + } + } + } +} diff --git a/src/imports/controls/imagine/RoundButton.qml b/src/imports/controls/imagine/RoundButton.qml new file mode 100644 index 00000000..4f8a195e --- /dev/null +++ b/src/imports/controls/imagine/RoundButton.qml @@ -0,0 +1,98 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Imagine 2.3 +import QtQuick.Controls.Imagine.impl 2.3 + +T.RoundButton { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, + contentItem.implicitWidth + leftPadding + rightPadding) + implicitHeight: Math.max(background ? background.implicitHeight : 0, + contentItem.implicitHeight + topPadding + bottomPadding) + baselineOffset: contentItem.y + contentItem.baselineOffset + + topPadding: background ? background.topPadding : 0 + leftPadding: background ? background.leftPadding : 0 + rightPadding: background ? background.rightPadding : 0 + bottomPadding: background ? background.bottomPadding : 0 + + icon.width: 24 + icon.height: 24 + icon.color: control.enabled && control.flat && control.highlighted ? control.palette.highlight + : control.enabled && (control.down || control.checked || control.highlighted) && !control.flat + ? control.palette.brightText : control.flat ? control.palette.windowText : control.palette.buttonText + + contentItem: IconLabel { + spacing: control.spacing + mirrored: control.mirrored + display: control.display + + icon: control.icon + text: control.text + font: control.font + color: control.enabled && control.flat && control.highlighted ? control.palette.highlight + : control.enabled && (control.down || control.checked || control.highlighted) && !control.flat + ? control.palette.brightText : control.flat ? control.palette.windowText : control.palette.buttonText + } + + background: NinePatchImage { + x: -leftInset; y: -topInset + width: control.width + leftInset + rightInset + height: control.height + topInset + bottomInset + + // ### TODO: radius? + source: Imagine.url + "roundbutton-background" + NinePatchImageSelector on source { + states: [ + {"disabled": !control.enabled}, + {"pressed": control.down}, + {"checked": control.checked}, + {"checkable": control.checkable}, + {"focused": control.visualFocus}, + {"highlighted": control.highlighted}, + {"flat": control.flat}, + {"mirrored": control.mirrored}, + {"hovered": control.hovered} + ] + } + } +} diff --git a/src/imports/controls/imagine/ScrollBar.qml b/src/imports/controls/imagine/ScrollBar.qml new file mode 100644 index 00000000..ad764242 --- /dev/null +++ b/src/imports/controls/imagine/ScrollBar.qml @@ -0,0 +1,117 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Imagine 2.3 +import QtQuick.Controls.Imagine.impl 2.3 + +T.ScrollBar { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, + contentItem.implicitWidth + leftPadding + rightPadding) + implicitHeight: Math.max(background ? background.implicitHeight : 0, + contentItem.implicitHeight + topPadding + bottomPadding) + + visible: control.policy !== T.ScrollBar.AlwaysOff + + topPadding: background ? background.topPadding : 0 + leftPadding: background ? background.leftPadding : 0 + rightPadding: background ? background.rightPadding : 0 + bottomPadding: background ? background.bottomPadding : 0 + + contentItem: NinePatchImage { + width: control.availableWidth + height: control.availableHeight + + source: Imagine.url + "scrollbar-handle" + NinePatchImageSelector on source { + states: [ + {"vertical": control.vertical}, + {"horizontal": control.horizontal}, + {"disabled": !control.enabled}, + {"interactive": control.interactive}, + {"pressed": control.pressed}, + {"mirrored": control.mirrored}, + {"hovered": control.hovered} + ] + } + opacity: 0.0 + } + + background: NinePatchImage { + x: -leftInset; y: -topInset + width: control.width + leftInset + rightInset + height: control.height + topInset + bottomInset + + source: Imagine.url + "scrollbar-background" + NinePatchImageSelector on source { + states: [ + {"vertical": control.vertical}, + {"horizontal": control.horizontal}, + {"disabled": !control.enabled}, + {"interactive": control.interactive}, + {"pressed": control.pressed}, + {"mirrored": control.mirrored}, + {"hovered": control.hovered} + ] + } + opacity: 0.0 + } + + states: [ + State { + name: "active" + when: control.policy === T.ScrollBar.AlwaysOn || (control.active && control.size < 1.0) + } + ] + + transitions: [ + Transition { + to: "active" + NumberAnimation { targets: [contentItem, background]; property: "opacity"; to: 1.0 } + }, + Transition { + from: "active" + SequentialAnimation { + PropertyAction{ targets: [contentItem, background]; property: "opacity"; value: 1.0 } + PauseAnimation { duration: 3000 } + NumberAnimation { targets: [contentItem, background]; property: "opacity"; to: 0.0 } + } + } + ] +} diff --git a/src/imports/controls/imagine/ScrollIndicator.qml b/src/imports/controls/imagine/ScrollIndicator.qml new file mode 100644 index 00000000..a0ab8783 --- /dev/null +++ b/src/imports/controls/imagine/ScrollIndicator.qml @@ -0,0 +1,110 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Imagine 2.3 +import QtQuick.Controls.Imagine.impl 2.3 + +T.ScrollIndicator { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, + contentItem.implicitWidth + leftPadding + rightPadding) + implicitHeight: Math.max(background ? background.implicitHeight : 0, + contentItem.implicitHeight + topPadding + bottomPadding) + + topPadding: background ? background.topPadding : 0 + leftPadding: background ? background.leftPadding : 0 + rightPadding: background ? background.rightPadding : 0 + bottomPadding: background ? background.bottomPadding : 0 + + contentItem: NinePatchImage { + width: control.availableWidth + height: control.availableHeight + + source: Imagine.url + "scrollindicator-handle" + NinePatchImageSelector on source { + states: [ + {"vertical": control.vertical}, + {"horizontal": control.horizontal}, + {"disabled": !control.enabled}, + {"mirrored": control.mirrored}, + {"hovered": control.hovered} + ] + } + opacity: 0.0 + } + + background: NinePatchImage { + x: -leftInset; y: -topInset + width: control.width + leftInset + rightInset + height: control.height + topInset + bottomInset + + source: Imagine.url + "scrollindicator-background" + NinePatchImageSelector on source { + states: [ + {"vertical": control.vertical}, + {"horizontal": control.horizontal}, + {"disabled": !control.enabled}, + {"mirrored": control.mirrored}, + {"hovered": control.hovered} + ] + } + opacity: 0.0 + } + + states: [ + State { + name: "active" + when: (control.active && control.size < 1.0) + } + ] + + transitions: [ + Transition { + to: "active" + NumberAnimation { targets: [contentItem, background]; property: "opacity"; to: 1.0 } + }, + Transition { + from: "active" + SequentialAnimation { + PauseAnimation { duration: 5000 } + NumberAnimation { targets: [contentItem, background]; property: "opacity"; to: 0.0 } + } + } + ] +} diff --git a/src/imports/controls/imagine/ScrollView.qml b/src/imports/controls/imagine/ScrollView.qml new file mode 100644 index 00000000..8d623f9a --- /dev/null +++ b/src/imports/controls/imagine/ScrollView.qml @@ -0,0 +1,86 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.Imagine 2.3 +import QtQuick.Controls.Imagine.impl 2.3 + +T.ScrollView { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, contentWidth + leftPadding + rightPadding) + implicitHeight: Math.max(background ? background.implicitHeight : 0, contentHeight + topPadding + bottomPadding) + + contentWidth: contentItem.implicitWidth || (contentChildren.length === 1 ? contentChildren[0].implicitWidth : -1) + contentHeight: contentItem.implicitHeight || (contentChildren.length === 1 ? contentChildren[0].implicitHeight : -1) + + topPadding: background ? background.topPadding : 0 + leftPadding: background ? background.leftPadding : 0 + rightPadding: background ? background.rightPadding : 0 + bottomPadding: background ? background.bottomPadding : 0 + + T.ScrollBar.vertical: ScrollBar { + parent: control + x: control.mirrored ? 0 : control.width - width + y: control.topPadding + height: control.availableHeight + active: control.T.ScrollBar.horizontal.active + } + + T.ScrollBar.horizontal: ScrollBar { + parent: control + x: control.leftPadding + y: control.height - height + width: control.availableWidth + active: control.T.ScrollBar.vertical.active + } + + background: NinePatchImage { + x: -leftInset; y: -topInset + width: control.width + leftInset + rightInset + height: control.height + topInset + bottomInset + + source: Imagine.path + "scrollview-background" + NinePatchImageSelector on source { + states: [ + {"disabled": !control.enabled}, + {"mirrored": control.mirrored} + ] + } + } +} diff --git a/src/imports/controls/imagine/Slider.qml b/src/imports/controls/imagine/Slider.qml new file mode 100644 index 00000000..e997f411 --- /dev/null +++ b/src/imports/controls/imagine/Slider.qml @@ -0,0 +1,118 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Imagine 2.3 +import QtQuick.Controls.Imagine.impl 2.3 + +T.Slider { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, + (handle ? handle.implicitWidth : 0) + leftPadding + rightPadding) + implicitHeight: Math.max(background ? background.implicitHeight : 0, + (handle ? handle.implicitHeight : 0) + topPadding + bottomPadding) + + topPadding: background ? background.topPadding : 0 + leftPadding: background ? background.leftPadding : 0 + rightPadding: background ? background.rightPadding : 0 + bottomPadding: background ? background.bottomPadding : 0 + + handle: Image { + x: Math.round(control.leftPadding + (control.horizontal ? control.visualPosition * (control.availableWidth - width) : (control.availableWidth - width) / 2)) + y: Math.round(control.topPadding + (control.horizontal ? (control.availableHeight - height) / 2 : control.visualPosition * (control.availableHeight - height))) + + source: Imagine.url + "slider-handle" + ImageSelector on source { + states: [ + {"vertical": control.vertical}, + {"horizontal": control.horizontal}, + {"disabled": !control.enabled}, + {"pressed": control.pressed}, + {"focused": control.visualFocus}, + {"mirrored": control.mirrored}, + {"hovered": control.hovered} + ] + } + } + + background: NinePatchImage { + x: -leftInset; y: -topInset + width: control.width + leftInset + rightInset + height: control.height + topInset + bottomInset + scale: control.horizontal && control.mirrored ? -1 : 1 + + source: Imagine.url + "slider-background" + NinePatchImageSelector on source { + states: [ + {"vertical": control.vertical}, + {"horizontal": control.horizontal}, + {"disabled": !control.enabled}, + {"pressed": control.down}, + {"focused": control.visualFocus}, + {"mirrored": control.mirrored}, + {"hovered": control.hovered} + ] + } + + NinePatchImage { + x: control.horizontal ? 0 : (parent.width - width) / 2 + y: control.horizontal + ? (parent.height - height) / 2 + : control.handle.height / 2 + control.visualPosition * (parent.height - control.handle.height) + width: control.horizontal + ? control.handle.width / 2 + control.position * (parent.width - control.handle.width) + : parent.width + height: control.vertical + ? control.handle.height / 2 + control.position * (parent.height - control.handle.height) + : parent.height + + source: Imagine.url + "slider-progress" + NinePatchImageSelector on source { + states: [ + {"vertical": control.vertical}, + {"horizontal": control.horizontal}, + {"disabled": !control.enabled}, + {"pressed": control.down}, + {"focused": control.visualFocus}, + {"mirrored": control.mirrored}, + {"hovered": control.hovered} + ] + } + } + } +} diff --git a/src/imports/controls/imagine/SpinBox.qml b/src/imports/controls/imagine/SpinBox.qml new file mode 100644 index 00000000..1870148e --- /dev/null +++ b/src/imports/controls/imagine/SpinBox.qml @@ -0,0 +1,152 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Imagine 2.3 +import QtQuick.Controls.Imagine.impl 2.3 + +T.SpinBox { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, + contentItem.implicitWidth + 2 * padding + + (up.indicator ? up.indicator.implicitWidth : 0) + + (down.indicator ? down.indicator.implicitWidth : 0)) + implicitHeight: Math.max(contentItem.implicitHeight + topPadding + bottomPadding, + background ? background.implicitHeight : 0, + up.indicator ? up.indicator.implicitHeight : 0, + down.indicator ? down.indicator.implicitHeight : 0) + baselineOffset: contentItem.y + contentItem.baselineOffset + + topPadding: background ? background.topPadding : 0 + leftPadding: (background ? background.leftPadding : 0) + (control.mirrored ? (up.indicator ? up.indicator.width : 0) : (down.indicator ? down.indicator.width : 0)) + rightPadding: (background ? background.rightPadding : 0) + (control.mirrored ? (down.indicator ? down.indicator.width : 0) : (up.indicator ? up.indicator.width : 0)) + bottomPadding: background ? background.bottomPadding : 0 + + validator: IntValidator { + locale: control.locale.name + bottom: Math.min(control.from, control.to) + top: Math.max(control.from, control.to) + } + + contentItem: TextInput { + z: 2 + text: control.textFromValue(control.value, control.locale) + opacity: control.enabled ? 1 : 0.3 + + font: control.font + color: control.palette.text + selectionColor: control.palette.highlight + selectedTextColor: control.palette.highlightedText + horizontalAlignment: Qt.AlignHCenter + verticalAlignment: Qt.AlignVCenter + + readOnly: !control.editable + validator: control.validator + inputMethodHints: control.inputMethodHints + + NinePatchImage { + z: -1 + width: control.width + height: control.height + visible: control.editable + + source: Imagine.url + "spinbox-editor" + NinePatchImageSelector on source { + states: [ + {"disabled": !control.enabled}, + {"focused": control.activeFocus}, + {"mirrored": control.mirrored}, + {"hovered": control.hovered} + ] + } + } + } + + up.indicator: NinePatchImage { + x: control.mirrored ? 0 : parent.width - width + height: parent.height + + source: Imagine.url + "spinbox-indicator" + NinePatchImageSelector on source { + states: [ + {"up": true}, + {"disabled": !control.up.indicator.enabled}, + {"editable": control.editable}, + {"pressed": control.up.pressed}, + {"focused": control.activeFocus}, + {"mirrored": control.mirrored}, + {"hovered": control.up.hovered} + ] + } + } + + down.indicator: NinePatchImage { + x: control.mirrored ? parent.width - width : 0 + height: parent.height + + source: Imagine.url + "spinbox-indicator" + NinePatchImageSelector on source { + states: [ + {"down": true}, + {"disabled": !control.down.indicator.enabled}, + {"editable": control.editable}, + {"pressed": control.down.pressed}, + {"focused": control.activeFocus}, + {"mirrored": control.mirrored}, + {"hovered": control.down.hovered} + ] + } + } + + background: NinePatchImage { + x: -leftInset; y: -topInset + width: control.width + leftInset + rightInset + height: control.height + topInset + bottomInset + + source: Imagine.url + "spinbox-background" + NinePatchImageSelector on source { + states: [ + {"disabled": !control.enabled}, + {"editable": control.editable}, + {"focused": control.activeFocus}, + {"mirrored": control.mirrored}, + {"hovered": control.hovered} + ] + } + } +} diff --git a/src/imports/controls/imagine/StackView.qml b/src/imports/controls/imagine/StackView.qml new file mode 100644 index 00000000..d462239a --- /dev/null +++ b/src/imports/controls/imagine/StackView.qml @@ -0,0 +1,90 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Imagine 2.3 +import QtQuick.Controls.Imagine.impl 2.3 + +T.StackView { + id: control + + implicitWidth: background ? background.implicitWidth : 0 + implicitHeight: background ? background.implicitHeight : 0 + + topPadding: background ? background.topPadding : 0 + leftPadding: background ? background.leftPadding : 0 + rightPadding: background ? background.rightPadding : 0 + bottomPadding: background ? background.bottomPadding : 0 + + popEnter: Transition { + XAnimator { from: (control.mirrored ? -1 : 1) * -control.width; to: 0; duration: 400; easing.type: Easing.OutCubic } + } + + popExit: Transition { + XAnimator { from: 0; to: (control.mirrored ? -1 : 1) * control.width; duration: 400; easing.type: Easing.OutCubic } + } + + pushEnter: Transition { + XAnimator { from: (control.mirrored ? -1 : 1) * control.width; to: 0; duration: 400; easing.type: Easing.OutCubic } + } + + pushExit: Transition { + XAnimator { from: 0; to: (control.mirrored ? -1 : 1) * -control.width; duration: 400; easing.type: Easing.OutCubic } + } + + replaceEnter: Transition { + XAnimator { from: (control.mirrored ? -1 : 1) * control.width; to: 0; duration: 400; easing.type: Easing.OutCubic } + } + + replaceExit: Transition { + XAnimator { from: 0; to: (control.mirrored ? -1 : 1) * -control.width; duration: 400; easing.type: Easing.OutCubic } + } + + background: NinePatchImage { + x: -leftInset; y: -topInset + width: control.width + leftInset + rightInset + height: control.height + topInset + bottomInset + + source: Imagine.url + "stackview-background" + NinePatchImageSelector on source { + states: [ + {"disabled": !control.enabled}, + {"mirrored": control.mirrored} + ] + } + } +} diff --git a/src/imports/controls/imagine/SwipeDelegate.qml b/src/imports/controls/imagine/SwipeDelegate.qml new file mode 100644 index 00000000..be88fb7d --- /dev/null +++ b/src/imports/controls/imagine/SwipeDelegate.qml @@ -0,0 +1,96 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Imagine 2.3 +import QtQuick.Controls.Imagine.impl 2.3 + +T.SwipeDelegate { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, + contentItem.implicitWidth + leftPadding + rightPadding) + implicitHeight: Math.max(background ? background.implicitHeight : 0, + Math.max(contentItem.implicitHeight, + indicator ? indicator.implicitHeight : 0) + topPadding + bottomPadding) + baselineOffset: contentItem.y + contentItem.baselineOffset + + spacing: 12 // ### + + topPadding: background ? background.topPadding : 0 + leftPadding: background ? background.leftPadding : 0 + rightPadding: background ? background.rightPadding : 0 + bottomPadding: background ? background.bottomPadding : 0 + + icon.width: 24 + icon.height: 24 + icon.color: control.palette.text + + swipe.transition: Transition { SmoothedAnimation { velocity: 3; easing.type: Easing.InOutCubic } } + + contentItem: IconLabel { + spacing: control.spacing + mirrored: control.mirrored + display: control.display + alignment: control.display === IconLabel.IconOnly || control.display === IconLabel.TextUnderIcon ? Qt.AlignCenter : Qt.AlignLeft + + icon: control.icon + text: control.text + font: control.font + color: control.palette.text + } + + background: NinePatchImage { + x: -leftInset; y: -topInset + width: control.width + leftInset + rightInset + height: control.height + topInset + bottomInset + + source: Imagine.url + "swipedelegate-background" + NinePatchImageSelector on source { + states: [ + {"disabled": !control.enabled}, + {"pressed": control.down}, + {"focused": control.visualFocus}, + {"highlighted": control.highlighted}, + {"mirrored": control.mirrored}, + {"hovered": control.hovered} + ] + } + } +} diff --git a/src/imports/controls/imagine/SwipeView.qml b/src/imports/controls/imagine/SwipeView.qml new file mode 100644 index 00000000..8410d0bd --- /dev/null +++ b/src/imports/controls/imagine/SwipeView.qml @@ -0,0 +1,88 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Imagine 2.3 +import QtQuick.Controls.Imagine.impl 2.3 + +T.SwipeView { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, + contentItem.implicitWidth + leftPadding + rightPadding) + implicitHeight: Math.max(background ? background.implicitHeight : 0, + contentItem.implicitHeight + topPadding + bottomPadding) + + topPadding: background ? background.topPadding : 0 + leftPadding: background ? background.leftPadding : 0 + rightPadding: background ? background.rightPadding : 0 + bottomPadding: background ? background.bottomPadding : 0 + + contentItem: ListView { + model: control.contentModel + interactive: control.interactive + currentIndex: control.currentIndex + + spacing: control.spacing + orientation: control.orientation + snapMode: ListView.SnapOneItem + boundsBehavior: Flickable.StopAtBounds + + highlightRangeMode: ListView.StrictlyEnforceRange + preferredHighlightBegin: 0 + preferredHighlightEnd: 0 + highlightMoveDuration: 250 + } + + background: NinePatchImage { + x: -leftInset; y: -topInset + width: control.width + leftInset + rightInset + height: control.height + topInset + bottomInset + + source: Imagine.url + "swipeview-background" + NinePatchImageSelector on source { + states: [ + {"vertical": control.vertical}, + {"horizontal": control.horizontal}, + {"disabled": !control.enabled}, + {"interactive": control.interactive}, + {"focused": control.contentItem.activeFocus}, + {"mirrored": control.mirrored} + ] + } + } +} diff --git a/src/imports/controls/imagine/Switch.qml b/src/imports/controls/imagine/Switch.qml new file mode 100644 index 00000000..c7cc8ecb --- /dev/null +++ b/src/imports/controls/imagine/Switch.qml @@ -0,0 +1,134 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Imagine 2.3 +import QtQuick.Controls.Imagine.impl 2.3 + +T.Switch { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, + contentItem.implicitWidth + leftPadding + rightPadding) + implicitHeight: Math.max(background ? background.implicitHeight : 0, + Math.max(contentItem.implicitHeight, + indicator ? indicator.implicitHeight : 0) + topPadding + bottomPadding) + baselineOffset: contentItem.y + contentItem.baselineOffset + + spacing: 6 // ### + + topPadding: background ? background.topPadding : 0 + leftPadding: background ? background.leftPadding : 0 + rightPadding: background ? background.rightPadding : 0 + bottomPadding: background ? background.bottomPadding : 0 + + indicator: NinePatchImage { + x: text ? (control.mirrored ? control.width - width - control.rightPadding : control.leftPadding) : control.leftPadding + (control.availableWidth - width) / 2 + y: control.topPadding + (control.availableHeight - height) / 2 + width: Math.max(implicitWidth, handle.leftPadding && handle.rightPadding ? handle.implicitWidth : 2 * handle.implicitWidth) + height: Math.max(implicitHeight, handle.implicitHeight) + + source: Imagine.url + "switch-indicator" + NinePatchImageSelector on source { + states: [ + {"disabled": !control.enabled}, + {"pressed": control.down}, + {"checked": control.checked}, + {"focused": control.visualFocus}, + {"mirrored": control.mirrored}, + {"hovered": control.hovered} + ] + } + + property NinePatchImage handle: NinePatchImage { + readonly property real minPos: parent.leftPadding - leftPadding + readonly property real maxPos: parent.width - width + rightPadding - parent.rightPadding + readonly property real dragPos: control.visualPosition * parent.width - (width / 2) + + parent: control.indicator + + x: Math.max(minPos, Math.min(maxPos, control.visualPosition * parent.width - (width / 2))) + y: (parent.height - height) / 2 + + source: Imagine.url + "switch-handle" + NinePatchImageSelector on source { + states: [ + {"disabled": !control.enabled}, + {"pressed": control.down}, + {"checked": control.checked}, + {"focused": control.visualFocus}, + {"mirrored": control.mirrored}, + {"hovered": control.hovered} + ] + } + + Behavior on x { + enabled: !control.down + SmoothedAnimation { velocity: 200 } + } + } + } + + contentItem: Text { + leftPadding: control.indicator && !control.mirrored ? control.indicator.width + control.spacing : 0 + rightPadding: control.indicator && control.mirrored ? control.indicator.width + control.spacing : 0 + + text: control.text + font: control.font + color: control.palette.windowText + elide: Text.ElideRight + verticalAlignment: Text.AlignVCenter + } + + background: NinePatchImage { + x: -leftInset; y: -topInset + width: control.width + leftInset + rightInset + height: control.height + topInset + bottomInset + + source: Imagine.url + "switch-background" + NinePatchImageSelector on source { + states: [ + {"disabled": !control.enabled}, + {"pressed": control.down}, + {"checked": control.checked}, + {"focused": control.visualFocus}, + {"mirrored": control.mirrored}, + {"hovered": control.hovered} + ] + } + } +} diff --git a/src/imports/controls/imagine/SwitchDelegate.qml b/src/imports/controls/imagine/SwitchDelegate.qml new file mode 100644 index 00000000..625595d7 --- /dev/null +++ b/src/imports/controls/imagine/SwitchDelegate.qml @@ -0,0 +1,147 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Imagine 2.3 +import QtQuick.Controls.Imagine.impl 2.3 + +T.SwitchDelegate { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, + contentItem.implicitWidth + leftPadding + rightPadding) + implicitHeight: Math.max(background ? background.implicitHeight : 0, + Math.max(contentItem.implicitHeight, + indicator ? indicator.implicitHeight : 0) + topPadding + bottomPadding) + baselineOffset: contentItem.y + contentItem.baselineOffset + + spacing: 12 // ### + + topPadding: background ? background.topPadding : 0 + leftPadding: background ? background.leftPadding : 0 + rightPadding: background ? background.rightPadding : 0 + bottomPadding: background ? background.bottomPadding : 0 + + icon.width: 24 + icon.height: 24 + icon.color: control.palette.text + + indicator: NinePatchImage { + x: text ? (control.mirrored ? control.leftPadding : control.width - width - control.rightPadding) : control.leftPadding + (control.availableWidth - width) / 2 + y: control.topPadding + (control.availableHeight - height) / 2 + width: Math.max(implicitWidth, handle.leftPadding && handle.rightPadding ? handle.implicitWidth : 2 * handle.implicitWidth) + height: Math.max(implicitHeight, handle.implicitHeight) + + source: Imagine.url + "switchdelegate-indicator" + NinePatchImageSelector on source { + states: [ + {"disabled": !control.enabled}, + {"pressed": control.down}, + {"checked": control.checked}, + {"focused": control.visualFocus}, + {"highlighted": control.highlighted}, + {"mirrored": control.mirrored}, + {"hovered": control.hovered} + ] + } + + property NinePatchImage handle: NinePatchImage { + readonly property real minPos: parent.leftPadding - leftPadding + readonly property real maxPos: parent.width - width + rightPadding - parent.rightPadding + readonly property real dragPos: control.visualPosition * parent.width - (width / 2) + + parent: control.indicator + + x: Math.max(minPos, Math.min(maxPos, control.visualPosition * parent.width - (width / 2))) + y: (parent.height - height) / 2 + + source: Imagine.url + "switchdelegate-handle" + NinePatchImageSelector on source { + states: [ + {"disabled": !control.enabled}, + {"pressed": control.down}, + {"checked": control.checked}, + {"focused": control.visualFocus}, + {"highlighted": control.highlighted}, + {"mirrored": control.mirrored}, + {"hovered": control.hovered} + ] + } + + Behavior on x { + enabled: !control.down + SmoothedAnimation { velocity: 200 } + } + } + } + + contentItem: IconLabel { + leftPadding: control.mirrored ? control.indicator.width + control.spacing : 0 + rightPadding: !control.mirrored ? control.indicator.width + control.spacing : 0 + + spacing: control.spacing + mirrored: control.mirrored + display: control.display + alignment: control.display === IconLabel.IconOnly || control.display === IconLabel.TextUnderIcon ? Qt.AlignCenter : Qt.AlignLeft + + icon: control.icon + text: control.text + font: control.font + color: control.palette.text + } + + background: NinePatchImage { + x: -leftInset; y: -topInset + width: control.width + leftInset + rightInset + height: control.height + topInset + bottomInset + + source: Imagine.url + "switchdelegate-background" + NinePatchImageSelector on source { + states: [ + {"disabled": !control.enabled}, + {"pressed": control.down}, + {"checked": control.checked}, + {"focused": control.visualFocus}, + {"highlighted": control.highlighted}, + {"mirrored": control.mirrored}, + {"hovered": control.hovered} + ] + } + } +} diff --git a/src/imports/controls/imagine/TabBar.qml b/src/imports/controls/imagine/TabBar.qml new file mode 100644 index 00000000..49e7b425 --- /dev/null +++ b/src/imports/controls/imagine/TabBar.qml @@ -0,0 +1,86 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Imagine 2.3 +import QtQuick.Controls.Imagine.impl 2.3 + +T.TabBar { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, + contentWidth + leftPadding + rightPadding) + implicitHeight: Math.max(background ? background.implicitHeight : 0, + contentHeight + topPadding + bottomPadding) + + topPadding: background ? background.topPadding : 0 + leftPadding: background ? background.leftPadding : 0 + rightPadding: background ? background.rightPadding : 0 + bottomPadding: background ? background.bottomPadding : 0 + + contentItem: ListView { + model: control.contentModel + currentIndex: control.currentIndex + + spacing: control.spacing + orientation: ListView.Horizontal + boundsBehavior: Flickable.StopAtBounds + flickableDirection: Flickable.AutoFlickIfNeeded + snapMode: ListView.SnapToItem + + highlightMoveDuration: 0 + highlightRangeMode: ListView.ApplyRange + preferredHighlightBegin: 48 + preferredHighlightEnd: width - 48 + } + + background: NinePatchImage { + x: -leftInset; y: -topInset + width: control.width + leftInset + rightInset + height: control.height + topInset + bottomInset + + source: Imagine.url + "tabbar-background" + NinePatchImageSelector on source { + states: [ + {"disabled": !control.enabled}, + {"header": control.position === T.TabBar.Header }, + {"footer": control.position === T.TabBar.Footer }, + {"mirrored": control.mirrored} + ] + } + } +} diff --git a/src/imports/controls/imagine/TabButton.qml b/src/imports/controls/imagine/TabButton.qml new file mode 100644 index 00000000..aa87f472 --- /dev/null +++ b/src/imports/controls/imagine/TabButton.qml @@ -0,0 +1,92 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Imagine 2.3 +import QtQuick.Controls.Imagine.impl 2.3 + +T.TabButton { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, + contentItem.implicitWidth + leftPadding + rightPadding) + implicitHeight: Math.max(background ? background.implicitHeight : 0, + contentItem.implicitHeight + topPadding + bottomPadding) + baselineOffset: contentItem.y + contentItem.baselineOffset + + spacing: 6 // ### + + topPadding: background ? background.topPadding : 0 + leftPadding: background ? background.leftPadding : 0 + rightPadding: background ? background.rightPadding : 0 + bottomPadding: background ? background.bottomPadding : 0 + + icon.width: 24 + icon.height: 24 + icon.color: control.palette.buttonText + + contentItem: IconLabel { + spacing: control.spacing + mirrored: control.mirrored + display: control.display + + icon: control.icon + text: control.text + font: control.font + color: control.palette.buttonText + } + + background: NinePatchImage { + x: -leftInset; y: -topInset + width: control.width + leftInset + rightInset + height: control.height + topInset + bottomInset + + source: Imagine.url + "tabbutton-background" + NinePatchImageSelector on source { + states: [ + {"disabled": !control.enabled}, + {"pressed": control.down}, + {"checked": control.checked}, + {"focused": control.visualFocus}, + {"mirrored": control.mirrored}, + {"hovered": control.hovered} + ] + } + } +} diff --git a/src/imports/controls/imagine/TextArea.qml b/src/imports/controls/imagine/TextArea.qml new file mode 100644 index 00000000..a0e60230 --- /dev/null +++ b/src/imports/controls/imagine/TextArea.qml @@ -0,0 +1,95 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Imagine 2.3 +import QtQuick.Controls.Imagine.impl 2.3 + +T.TextArea { + id: control + + implicitWidth: Math.max(contentWidth + leftPadding + rightPadding, + background ? background.implicitWidth : 0, + placeholder.implicitWidth + leftPadding + rightPadding) + implicitHeight: Math.max(contentHeight + topPadding + bottomPadding, + background ? background.implicitHeight : 0, + placeholder.implicitHeight + topPadding + bottomPadding) + + topPadding: background ? background.topPadding : 0 + leftPadding: background ? background.leftPadding : 0 + rightPadding: background ? background.rightPadding : 0 + bottomPadding: background ? background.bottomPadding : 0 + + color: control.palette.text + selectionColor: control.palette.highlight + selectedTextColor: control.palette.highlightedText + verticalAlignment: Qt.AlignVCenter + + PlaceholderText { + id: placeholder + x: control.leftPadding + y: control.topPadding + width: control.width - (control.leftPadding + control.rightPadding) + height: control.height - (control.topPadding + control.bottomPadding) + + text: control.placeholderText + font: control.font + color: control.color + verticalAlignment: control.verticalAlignment + visible: !control.length && !control.preeditText && (!control.activeFocus || control.horizontalAlignment !== Qt.AlignHCenter) + elide: Text.ElideRight + opacity: 0.5 + } + + background: NinePatchImage { + x: -leftInset; y: -topInset + width: control.width + leftInset + rightInset + height: control.height + topInset + bottomInset + + source: Imagine.url + "textarea-background" + NinePatchImageSelector on source { + states: [ + {"disabled": !control.enabled}, + {"focused": control.activeFocus}, + {"mirrored": control.mirrored}, + {"hovered": control.hovered} + ] + } + } +} diff --git a/src/imports/controls/imagine/TextField.qml b/src/imports/controls/imagine/TextField.qml new file mode 100644 index 00000000..024698f8 --- /dev/null +++ b/src/imports/controls/imagine/TextField.qml @@ -0,0 +1,95 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Imagine 2.3 +import QtQuick.Controls.Imagine.impl 2.3 + +T.TextField { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, + placeholderText ? placeholder.implicitWidth + leftPadding + rightPadding : 0) + || contentWidth + leftPadding + rightPadding + implicitHeight: Math.max(contentHeight + topPadding + bottomPadding, + background ? background.implicitHeight : 0, + placeholder.implicitHeight + topPadding + bottomPadding) + + topPadding: background ? background.topPadding : 0 + leftPadding: background ? background.leftPadding : 0 + rightPadding: background ? background.rightPadding : 0 + bottomPadding: background ? background.bottomPadding : 0 + + color: control.palette.text + selectionColor: control.palette.highlight + selectedTextColor: control.palette.highlightedText + verticalAlignment: Qt.AlignVCenter + + PlaceholderText { + id: placeholder + x: control.leftPadding + y: control.topPadding + width: control.width - (control.leftPadding + control.rightPadding) + height: control.height - (control.topPadding + control.bottomPadding) + + text: control.placeholderText + font: control.font + color: control.color + verticalAlignment: control.verticalAlignment + visible: !control.length && !control.preeditText && (!control.activeFocus || control.horizontalAlignment !== Qt.AlignHCenter) + elide: Text.ElideRight + opacity: 0.5 + } + + background: NinePatchImage { + x: -leftInset; y: -topInset + width: control.width + leftInset + rightInset + height: control.height + topInset + bottomInset + + source: Imagine.url + "textfield-background" + NinePatchImageSelector on source { + states: [ + {"disabled": !control.enabled}, + {"focused": control.activeFocus}, + {"mirrored": control.mirrored}, + {"hovered": control.hovered} + ] + } + } +} diff --git a/src/imports/controls/imagine/ToolBar.qml b/src/imports/controls/imagine/ToolBar.qml new file mode 100644 index 00000000..a4bf9c1f --- /dev/null +++ b/src/imports/controls/imagine/ToolBar.qml @@ -0,0 +1,71 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Imagine 2.3 +import QtQuick.Controls.Imagine.impl 2.3 + +T.ToolBar { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, contentWidth + leftPadding + rightPadding) + implicitHeight: Math.max(background ? background.implicitHeight : 0, contentHeight + topPadding + bottomPadding) + + contentWidth: contentItem.implicitWidth || (contentChildren.length === 1 ? contentChildren[0].implicitWidth : 0) + contentHeight: contentItem.implicitHeight || (contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0) + + topPadding: background ? background.topPadding : 0 + leftPadding: background ? background.leftPadding : 0 + rightPadding: background ? background.rightPadding : 0 + bottomPadding: background ? background.bottomPadding : 0 + + background: NinePatchImage { + x: -leftInset; y: -topInset + width: control.width + leftInset + rightInset + height: control.height + topInset + bottomInset + + source: Imagine.url + "toolbar-background" + NinePatchImageSelector on source { + states: [ + {"disabled": !control.enabled}, + {"header": control.position === T.ToolBar.Header }, + {"footer": control.position === T.ToolBar.Footer }, + {"mirrored": control.mirrored} + ] + } + } +} diff --git a/src/imports/controls/imagine/ToolButton.qml b/src/imports/controls/imagine/ToolButton.qml new file mode 100644 index 00000000..b82b59fd --- /dev/null +++ b/src/imports/controls/imagine/ToolButton.qml @@ -0,0 +1,95 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Imagine 2.3 +import QtQuick.Controls.Imagine.impl 2.3 + +T.ToolButton { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, + contentItem.implicitWidth + leftPadding + rightPadding) + implicitHeight: Math.max(background ? background.implicitHeight : 0, + contentItem.implicitHeight + topPadding + bottomPadding) + baselineOffset: contentItem.y + contentItem.baselineOffset + + spacing: 6 // ### + + topPadding: background ? background.topPadding : 0 + leftPadding: background ? background.leftPadding : 0 + rightPadding: background ? background.rightPadding : 0 + bottomPadding: background ? background.bottomPadding : 0 + + icon.width: 24 + icon.height: 24 + icon.color: control.palette.buttonText + + contentItem: IconLabel { + spacing: control.spacing + mirrored: control.mirrored + display: control.display + + icon: control.icon + text: control.text + font: control.font + color: control.palette.buttonText + } + + background: NinePatchImage { + x: -leftInset; y: -topInset + width: control.width + leftInset + rightInset + height: control.height + topInset + bottomInset + + source: Imagine.url + "toolbutton-background" + NinePatchImageSelector on source { + states: [ + {"disabled": !control.enabled}, + {"pressed": control.down}, + {"checked": control.checked}, + {"checkable": control.checkable}, + {"focused": control.visualFocus}, + {"highlighted": control.highlighted}, + {"flat": control.flat}, + {"mirrored": control.mirrored}, + {"hovered": control.hovered} + ] + } + } +} diff --git a/src/imports/controls/imagine/ToolSeparator.qml b/src/imports/controls/imagine/ToolSeparator.qml new file mode 100644 index 00000000..99a45938 --- /dev/null +++ b/src/imports/controls/imagine/ToolSeparator.qml @@ -0,0 +1,82 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Imagine 2.3 +import QtQuick.Controls.Imagine.impl 2.3 + +T.ToolSeparator { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, + contentItem ? contentItem.implicitWidth + leftPadding + rightPadding : 0) + implicitHeight: Math.max(background ? background.implicitHeight : 0, + contentItem ? contentItem.implicitHeight + topPadding + bottomPadding : 0) + + topPadding: background ? background.topPadding : 0 + leftPadding: background ? background.leftPadding : 0 + rightPadding: background ? background.rightPadding : 0 + bottomPadding: background ? background.bottomPadding : 0 + + contentItem: NinePatchImage { + source: Imagine.url + "toolseparator-separator" + NinePatchImageSelector on source { + states: [ + {"vertical": control.vertical}, + {"horizontal": control.horizontal}, + {"disabled": !control.enabled}, + {"mirrored": control.mirrored} + ] + } + } + + background: NinePatchImage { + x: -leftInset; y: -topInset + width: control.width + leftInset + rightInset + height: control.height + topInset + bottomInset + + source: Imagine.url + "toolseparator-background" + NinePatchImageSelector on source { + states: [ + {"vertical": control.vertical}, + {"horizontal": control.horizontal}, + {"disabled": !control.enabled}, + {"mirrored": control.mirrored} + ] + } + } +} diff --git a/src/imports/controls/imagine/ToolTip.qml b/src/imports/controls/imagine/ToolTip.qml new file mode 100644 index 00000000..cc89a728 --- /dev/null +++ b/src/imports/controls/imagine/ToolTip.qml @@ -0,0 +1,84 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Imagine 2.3 +import QtQuick.Controls.Imagine.impl 2.3 + +T.ToolTip { + id: control + + x: parent ? (parent.width - implicitWidth) / 2 : 0 - (background ? background.leftInset : 0) + y: -implicitHeight - (background ? background.topInset : 0) + + implicitWidth: Math.max(background ? background.implicitWidth : 0, + contentItem.implicitWidth + leftPadding + rightPadding) + implicitHeight: Math.max(background ? background.implicitHeight : 0, + contentItem.implicitHeight + topPadding + bottomPadding) + + topMargin: background ? background.topInset : 0 + leftMargin: background ? background.leftInset : 0 + rightMargin: background ? background.rightInset : 0 + bottomMargin: background ? background.bottomInset : 0 + + topPadding: background ? background.topPadding : 0 + leftPadding: background ? background.leftPadding : 0 + rightPadding: background ? background.rightPadding : 0 + bottomPadding: background ? background.bottomPadding : 0 + + closePolicy: T.Popup.CloseOnEscape | T.Popup.CloseOnPressOutsideParent | T.Popup.CloseOnReleaseOutsideParent + + contentItem: Text { + text: control.text + font: control.font + // TODO: wrapMode: Label.Wrap + color: control.palette.toolTipText + } + + background: NinePatchImage { + x: -leftInset; y: -topInset + width: control.width + leftInset + rightInset + height: control.height + topInset + bottomInset + + source: Imagine.url + "tooltip-background" + NinePatchImageSelector on source { + states: [ + // ### + ] + } + } +} diff --git a/src/imports/controls/imagine/Tumbler.qml b/src/imports/controls/imagine/Tumbler.qml new file mode 100644 index 00000000..d3d7b574 --- /dev/null +++ b/src/imports/controls/imagine/Tumbler.qml @@ -0,0 +1,88 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Imagine 2.3 +import QtQuick.Controls.Imagine.impl 2.3 + +T.Tumbler { + id: control + implicitWidth: 60 + implicitHeight: 200 + + delegate: Text { + text: modelData + font: control.font + color: control.palette.text + opacity: (1.0 - Math.abs(Tumbler.displacement) / (control.visibleItemCount / 2)) * (control.enabled ? 1 : 0.6) + horizontalAlignment: Text.AlignHCenter + verticalAlignment: Text.AlignVCenter + } + + contentItem: TumblerView { + model: control.model + delegate: control.delegate + path: Path { + startX: contentItem.width / 2 + startY: -contentItem.delegateHeight / 2 + PathLine { + x: contentItem.width / 2 + y: (control.visibleItemCount + 1) * contentItem.delegateHeight - contentItem.delegateHeight / 2 + } + } + + property real delegateHeight: control.availableHeight / control.visibleItemCount + } + + background: NinePatchImage { + x: -leftInset; y: -topInset + width: control.width + leftInset + rightInset + height: control.height + topInset + bottomInset + + source: Imagine.url + "tumbler-background" + NinePatchImageSelector on source { + states: [ + {"disabled": !control.enabled}, + {"focused": control.visualFocus}, + {"mirrored": control.mirrored}, + {"hovered": control.hovered} + ] + } + } +} diff --git a/src/imports/controls/imagine/design/9-patch-export.sketchplugin/Contents/Sketch/9-patch-export.js b/src/imports/controls/imagine/design/9-patch-export.sketchplugin/Contents/Sketch/9-patch-export.js new file mode 100644 index 00000000..a7f9a459 --- /dev/null +++ b/src/imports/controls/imagine/design/9-patch-export.sketchplugin/Contents/Sketch/9-patch-export.js @@ -0,0 +1,24 @@ +// 9-patch export +// +// This plugin crops upscaled 9-patch PNG assets when exported from Sketch, +// to ensure that 9-patch borders remain 1px wide when upscaled. +// +function onExportSlices(context) { + var exports = context.actionContext.exports; + for (var i = 0; i < exports.count(); ++i) { + var name = exports[i].request.name(); + var scale = exports[i].request.scale(); + if (scale > 1 && name.endsWith(".9")) + cropAsset(exports[i].path, scale - 1); + } +} + +function cropAsset(path, inset) { + var url = NSURL.fileURLWithPath(path); + var img = CIImage.imageWithContentsOfURL(url); + var rect = NSInsetRect(img.extent(), inset, inset); + var cropped = img.imageByCroppingToRect(rect); + var rep = NSBitmapImageRep.alloc().initWithCIImage(cropped); + var data = rep.PNGRepresentationWithInterlaced(false); + data.writeToFile(path); +} diff --git a/src/imports/controls/imagine/design/9-patch-export.sketchplugin/Contents/Sketch/manifest.json b/src/imports/controls/imagine/design/9-patch-export.sketchplugin/Contents/Sketch/manifest.json new file mode 100644 index 00000000..40807aa3 --- /dev/null +++ b/src/imports/controls/imagine/design/9-patch-export.sketchplugin/Contents/Sketch/manifest.json @@ -0,0 +1,19 @@ +{ + "name" : "9-patch export", + "description" : "Crops upscaled 9-patch PNG assets when exported from Sketch.", + "version" : "0.1", + "identifier" : "org.qt-project.sketch.9-patch-export", + "author" : "The Qt Project", + "commands" : [ + { + "name" : "9-patch export", + "identifier" : "9-patch-export", + "script" : "9-patch-export.js", + "handlers" : { + "actions" : { + "ExportSlices": "onExportSlices", + }, + }, + }, + ], +} diff --git a/src/imports/controls/imagine/design/imagine.sketch b/src/imports/controls/imagine/design/imagine.sketch Binary files differnew file mode 100644 index 00000000..ecb437f7 --- /dev/null +++ b/src/imports/controls/imagine/design/imagine.sketch diff --git a/src/imports/controls/imagine/images/applicationwindow-background.png b/src/imports/controls/imagine/images/applicationwindow-background.png Binary files differnew file mode 100644 index 00000000..01eb7c73 --- /dev/null +++ b/src/imports/controls/imagine/images/applicationwindow-background.png diff --git a/src/imports/controls/imagine/images/applicationwindow-background@2x.png b/src/imports/controls/imagine/images/applicationwindow-background@2x.png Binary files differnew file mode 100644 index 00000000..72be785c --- /dev/null +++ b/src/imports/controls/imagine/images/applicationwindow-background@2x.png diff --git a/src/imports/controls/imagine/images/applicationwindow-background@3x.png b/src/imports/controls/imagine/images/applicationwindow-background@3x.png Binary files differnew file mode 100644 index 00000000..a488f592 --- /dev/null +++ b/src/imports/controls/imagine/images/applicationwindow-background@3x.png diff --git a/src/imports/controls/imagine/images/applicationwindow-background@4x.png b/src/imports/controls/imagine/images/applicationwindow-background@4x.png Binary files differnew file mode 100644 index 00000000..9343da95 --- /dev/null +++ b/src/imports/controls/imagine/images/applicationwindow-background@4x.png diff --git a/src/imports/controls/imagine/images/applicationwindow-overlay-modal.png b/src/imports/controls/imagine/images/applicationwindow-overlay-modal.png Binary files differnew file mode 100644 index 00000000..296e914a --- /dev/null +++ b/src/imports/controls/imagine/images/applicationwindow-overlay-modal.png diff --git a/src/imports/controls/imagine/images/applicationwindow-overlay-modal@2x.png b/src/imports/controls/imagine/images/applicationwindow-overlay-modal@2x.png Binary files differnew file mode 100644 index 00000000..10c89300 --- /dev/null +++ b/src/imports/controls/imagine/images/applicationwindow-overlay-modal@2x.png diff --git a/src/imports/controls/imagine/images/applicationwindow-overlay-modal@3x.png b/src/imports/controls/imagine/images/applicationwindow-overlay-modal@3x.png Binary files differnew file mode 100644 index 00000000..f65996e9 --- /dev/null +++ b/src/imports/controls/imagine/images/applicationwindow-overlay-modal@3x.png diff --git a/src/imports/controls/imagine/images/applicationwindow-overlay-modal@4x.png b/src/imports/controls/imagine/images/applicationwindow-overlay-modal@4x.png Binary files differnew file mode 100644 index 00000000..a586f381 --- /dev/null +++ b/src/imports/controls/imagine/images/applicationwindow-overlay-modal@4x.png diff --git a/src/imports/controls/imagine/images/applicationwindow-overlay.png b/src/imports/controls/imagine/images/applicationwindow-overlay.png Binary files differnew file mode 100644 index 00000000..e7175b46 --- /dev/null +++ b/src/imports/controls/imagine/images/applicationwindow-overlay.png diff --git a/src/imports/controls/imagine/images/applicationwindow-overlay@2x.png b/src/imports/controls/imagine/images/applicationwindow-overlay@2x.png Binary files differnew file mode 100644 index 00000000..db6566e0 --- /dev/null +++ b/src/imports/controls/imagine/images/applicationwindow-overlay@2x.png diff --git a/src/imports/controls/imagine/images/applicationwindow-overlay@3x.png b/src/imports/controls/imagine/images/applicationwindow-overlay@3x.png Binary files differnew file mode 100644 index 00000000..140e4692 --- /dev/null +++ b/src/imports/controls/imagine/images/applicationwindow-overlay@3x.png diff --git a/src/imports/controls/imagine/images/applicationwindow-overlay@4x.png b/src/imports/controls/imagine/images/applicationwindow-overlay@4x.png Binary files differnew file mode 100644 index 00000000..5115c28a --- /dev/null +++ b/src/imports/controls/imagine/images/applicationwindow-overlay@4x.png diff --git a/src/imports/controls/imagine/images/busyindicator-animation.webp b/src/imports/controls/imagine/images/busyindicator-animation.webp Binary files differnew file mode 100644 index 00000000..ebf04c4a --- /dev/null +++ b/src/imports/controls/imagine/images/busyindicator-animation.webp diff --git a/src/imports/controls/imagine/images/busyindicator-animation@2x.webp b/src/imports/controls/imagine/images/busyindicator-animation@2x.webp Binary files differnew file mode 100644 index 00000000..43805a0b --- /dev/null +++ b/src/imports/controls/imagine/images/busyindicator-animation@2x.webp diff --git a/src/imports/controls/imagine/images/busyindicator-animation@3x.webp b/src/imports/controls/imagine/images/busyindicator-animation@3x.webp Binary files differnew file mode 100644 index 00000000..b700b81f --- /dev/null +++ b/src/imports/controls/imagine/images/busyindicator-animation@3x.webp diff --git a/src/imports/controls/imagine/images/busyindicator-animation@4x.webp b/src/imports/controls/imagine/images/busyindicator-animation@4x.webp Binary files differnew file mode 100644 index 00000000..bfaa8df9 --- /dev/null +++ b/src/imports/controls/imagine/images/busyindicator-animation@4x.webp diff --git a/src/imports/controls/imagine/images/button-background-checked-disabled.9.png b/src/imports/controls/imagine/images/button-background-checked-disabled.9.png Binary files differnew file mode 100644 index 00000000..c06fd7cc --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-checked-disabled.9.png diff --git a/src/imports/controls/imagine/images/button-background-checked-disabled@2x.9.png b/src/imports/controls/imagine/images/button-background-checked-disabled@2x.9.png Binary files differnew file mode 100644 index 00000000..b86a13cc --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-checked-disabled@2x.9.png diff --git a/src/imports/controls/imagine/images/button-background-checked-disabled@3x.9.png b/src/imports/controls/imagine/images/button-background-checked-disabled@3x.9.png Binary files differnew file mode 100644 index 00000000..7fa4dd83 --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-checked-disabled@3x.9.png diff --git a/src/imports/controls/imagine/images/button-background-checked-disabled@4x.9.png b/src/imports/controls/imagine/images/button-background-checked-disabled@4x.9.png Binary files differnew file mode 100644 index 00000000..676bb0dd --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-checked-disabled@4x.9.png diff --git a/src/imports/controls/imagine/images/button-background-checked-focused.9.png b/src/imports/controls/imagine/images/button-background-checked-focused.9.png Binary files differnew file mode 100644 index 00000000..829d68a9 --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-checked-focused.9.png diff --git a/src/imports/controls/imagine/images/button-background-checked-focused@2x.9.png b/src/imports/controls/imagine/images/button-background-checked-focused@2x.9.png Binary files differnew file mode 100644 index 00000000..bf375d43 --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-checked-focused@2x.9.png diff --git a/src/imports/controls/imagine/images/button-background-checked-focused@3x.9.png b/src/imports/controls/imagine/images/button-background-checked-focused@3x.9.png Binary files differnew file mode 100644 index 00000000..8759c337 --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-checked-focused@3x.9.png diff --git a/src/imports/controls/imagine/images/button-background-checked-focused@4x.9.png b/src/imports/controls/imagine/images/button-background-checked-focused@4x.9.png Binary files differnew file mode 100644 index 00000000..7b8f3616 --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-checked-focused@4x.9.png diff --git a/src/imports/controls/imagine/images/button-background-checked-hovered.9.png b/src/imports/controls/imagine/images/button-background-checked-hovered.9.png Binary files differnew file mode 100644 index 00000000..829d68a9 --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-checked-hovered.9.png diff --git a/src/imports/controls/imagine/images/button-background-checked-hovered@2x.9.png b/src/imports/controls/imagine/images/button-background-checked-hovered@2x.9.png Binary files differnew file mode 100644 index 00000000..bf375d43 --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-checked-hovered@2x.9.png diff --git a/src/imports/controls/imagine/images/button-background-checked-hovered@3x.9.png b/src/imports/controls/imagine/images/button-background-checked-hovered@3x.9.png Binary files differnew file mode 100644 index 00000000..8759c337 --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-checked-hovered@3x.9.png diff --git a/src/imports/controls/imagine/images/button-background-checked-hovered@4x.9.png b/src/imports/controls/imagine/images/button-background-checked-hovered@4x.9.png Binary files differnew file mode 100644 index 00000000..7b8f3616 --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-checked-hovered@4x.9.png diff --git a/src/imports/controls/imagine/images/button-background-checked.9.png b/src/imports/controls/imagine/images/button-background-checked.9.png Binary files differnew file mode 100644 index 00000000..3ca06e6c --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-checked.9.png diff --git a/src/imports/controls/imagine/images/button-background-checked@2x.9.png b/src/imports/controls/imagine/images/button-background-checked@2x.9.png Binary files differnew file mode 100644 index 00000000..0afc3dea --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-checked@2x.9.png diff --git a/src/imports/controls/imagine/images/button-background-checked@3x.9.png b/src/imports/controls/imagine/images/button-background-checked@3x.9.png Binary files differnew file mode 100644 index 00000000..348687ad --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-checked@3x.9.png diff --git a/src/imports/controls/imagine/images/button-background-checked@4x.9.png b/src/imports/controls/imagine/images/button-background-checked@4x.9.png Binary files differnew file mode 100644 index 00000000..4dff0ba8 --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-checked@4x.9.png diff --git a/src/imports/controls/imagine/images/button-background-disabled.9.png b/src/imports/controls/imagine/images/button-background-disabled.9.png Binary files differnew file mode 100644 index 00000000..c06fd7cc --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-disabled.9.png diff --git a/src/imports/controls/imagine/images/button-background-disabled@2x.9.png b/src/imports/controls/imagine/images/button-background-disabled@2x.9.png Binary files differnew file mode 100644 index 00000000..b86a13cc --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-disabled@2x.9.png diff --git a/src/imports/controls/imagine/images/button-background-disabled@3x.9.png b/src/imports/controls/imagine/images/button-background-disabled@3x.9.png Binary files differnew file mode 100644 index 00000000..7fa4dd83 --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-disabled@3x.9.png diff --git a/src/imports/controls/imagine/images/button-background-disabled@4x.9.png b/src/imports/controls/imagine/images/button-background-disabled@4x.9.png Binary files differnew file mode 100644 index 00000000..676bb0dd --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-disabled@4x.9.png diff --git a/src/imports/controls/imagine/images/button-background-flat-checked-pressed.9.png b/src/imports/controls/imagine/images/button-background-flat-checked-pressed.9.png Binary files differnew file mode 100644 index 00000000..c06fd7cc --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-flat-checked-pressed.9.png diff --git a/src/imports/controls/imagine/images/button-background-flat-checked-pressed@2x.9.png b/src/imports/controls/imagine/images/button-background-flat-checked-pressed@2x.9.png Binary files differnew file mode 100644 index 00000000..b86a13cc --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-flat-checked-pressed@2x.9.png diff --git a/src/imports/controls/imagine/images/button-background-flat-checked-pressed@3x.9.png b/src/imports/controls/imagine/images/button-background-flat-checked-pressed@3x.9.png Binary files differnew file mode 100644 index 00000000..7fa4dd83 --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-flat-checked-pressed@3x.9.png diff --git a/src/imports/controls/imagine/images/button-background-flat-checked-pressed@4x.9.png b/src/imports/controls/imagine/images/button-background-flat-checked-pressed@4x.9.png Binary files differnew file mode 100644 index 00000000..676bb0dd --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-flat-checked-pressed@4x.9.png diff --git a/src/imports/controls/imagine/images/button-background-flat-checked.9.png b/src/imports/controls/imagine/images/button-background-flat-checked.9.png Binary files differnew file mode 100644 index 00000000..c06fd7cc --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-flat-checked.9.png diff --git a/src/imports/controls/imagine/images/button-background-flat-checked@2x.9.png b/src/imports/controls/imagine/images/button-background-flat-checked@2x.9.png Binary files differnew file mode 100644 index 00000000..b86a13cc --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-flat-checked@2x.9.png diff --git a/src/imports/controls/imagine/images/button-background-flat-checked@3x.9.png b/src/imports/controls/imagine/images/button-background-flat-checked@3x.9.png Binary files differnew file mode 100644 index 00000000..7fa4dd83 --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-flat-checked@3x.9.png diff --git a/src/imports/controls/imagine/images/button-background-flat-checked@4x.9.png b/src/imports/controls/imagine/images/button-background-flat-checked@4x.9.png Binary files differnew file mode 100644 index 00000000..676bb0dd --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-flat-checked@4x.9.png diff --git a/src/imports/controls/imagine/images/button-background-flat-disabled.9.png b/src/imports/controls/imagine/images/button-background-flat-disabled.9.png Binary files differnew file mode 100644 index 00000000..a76e7b86 --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-flat-disabled.9.png diff --git a/src/imports/controls/imagine/images/button-background-flat-disabled@2x.9.png b/src/imports/controls/imagine/images/button-background-flat-disabled@2x.9.png Binary files differnew file mode 100644 index 00000000..58445d50 --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-flat-disabled@2x.9.png diff --git a/src/imports/controls/imagine/images/button-background-flat-disabled@3x.9.png b/src/imports/controls/imagine/images/button-background-flat-disabled@3x.9.png Binary files differnew file mode 100644 index 00000000..0a18be32 --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-flat-disabled@3x.9.png diff --git a/src/imports/controls/imagine/images/button-background-flat-disabled@4x.9.png b/src/imports/controls/imagine/images/button-background-flat-disabled@4x.9.png Binary files differnew file mode 100644 index 00000000..f60c994d --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-flat-disabled@4x.9.png diff --git a/src/imports/controls/imagine/images/button-background-flat-highlighted-checked.9.png b/src/imports/controls/imagine/images/button-background-flat-highlighted-checked.9.png Binary files differnew file mode 100644 index 00000000..c06fd7cc --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-flat-highlighted-checked.9.png diff --git a/src/imports/controls/imagine/images/button-background-flat-highlighted-checked@2x.9.png b/src/imports/controls/imagine/images/button-background-flat-highlighted-checked@2x.9.png Binary files differnew file mode 100644 index 00000000..b86a13cc --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-flat-highlighted-checked@2x.9.png diff --git a/src/imports/controls/imagine/images/button-background-flat-highlighted-checked@3x.9.png b/src/imports/controls/imagine/images/button-background-flat-highlighted-checked@3x.9.png Binary files differnew file mode 100644 index 00000000..7fa4dd83 --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-flat-highlighted-checked@3x.9.png diff --git a/src/imports/controls/imagine/images/button-background-flat-highlighted-checked@4x.9.png b/src/imports/controls/imagine/images/button-background-flat-highlighted-checked@4x.9.png Binary files differnew file mode 100644 index 00000000..676bb0dd --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-flat-highlighted-checked@4x.9.png diff --git a/src/imports/controls/imagine/images/button-background-flat-highlighted-pressed.9.png b/src/imports/controls/imagine/images/button-background-flat-highlighted-pressed.9.png Binary files differnew file mode 100644 index 00000000..c06fd7cc --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-flat-highlighted-pressed.9.png diff --git a/src/imports/controls/imagine/images/button-background-flat-highlighted-pressed@2x.9.png b/src/imports/controls/imagine/images/button-background-flat-highlighted-pressed@2x.9.png Binary files differnew file mode 100644 index 00000000..b86a13cc --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-flat-highlighted-pressed@2x.9.png diff --git a/src/imports/controls/imagine/images/button-background-flat-highlighted-pressed@3x.9.png b/src/imports/controls/imagine/images/button-background-flat-highlighted-pressed@3x.9.png Binary files differnew file mode 100644 index 00000000..7fa4dd83 --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-flat-highlighted-pressed@3x.9.png diff --git a/src/imports/controls/imagine/images/button-background-flat-highlighted-pressed@4x.9.png b/src/imports/controls/imagine/images/button-background-flat-highlighted-pressed@4x.9.png Binary files differnew file mode 100644 index 00000000..676bb0dd --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-flat-highlighted-pressed@4x.9.png diff --git a/src/imports/controls/imagine/images/button-background-flat-highlighted.9.png b/src/imports/controls/imagine/images/button-background-flat-highlighted.9.png Binary files differnew file mode 100644 index 00000000..a76e7b86 --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-flat-highlighted.9.png diff --git a/src/imports/controls/imagine/images/button-background-flat-highlighted@2x.9.png b/src/imports/controls/imagine/images/button-background-flat-highlighted@2x.9.png Binary files differnew file mode 100644 index 00000000..58445d50 --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-flat-highlighted@2x.9.png diff --git a/src/imports/controls/imagine/images/button-background-flat-highlighted@3x.9.png b/src/imports/controls/imagine/images/button-background-flat-highlighted@3x.9.png Binary files differnew file mode 100644 index 00000000..0a18be32 --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-flat-highlighted@3x.9.png diff --git a/src/imports/controls/imagine/images/button-background-flat-highlighted@4x.9.png b/src/imports/controls/imagine/images/button-background-flat-highlighted@4x.9.png Binary files differnew file mode 100644 index 00000000..f60c994d --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-flat-highlighted@4x.9.png diff --git a/src/imports/controls/imagine/images/button-background-flat-hovered.9.png b/src/imports/controls/imagine/images/button-background-flat-hovered.9.png Binary files differnew file mode 100644 index 00000000..c06fd7cc --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-flat-hovered.9.png diff --git a/src/imports/controls/imagine/images/button-background-flat-hovered@2x.9.png b/src/imports/controls/imagine/images/button-background-flat-hovered@2x.9.png Binary files differnew file mode 100644 index 00000000..b86a13cc --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-flat-hovered@2x.9.png diff --git a/src/imports/controls/imagine/images/button-background-flat-hovered@3x.9.png b/src/imports/controls/imagine/images/button-background-flat-hovered@3x.9.png Binary files differnew file mode 100644 index 00000000..7fa4dd83 --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-flat-hovered@3x.9.png diff --git a/src/imports/controls/imagine/images/button-background-flat-hovered@4x.9.png b/src/imports/controls/imagine/images/button-background-flat-hovered@4x.9.png Binary files differnew file mode 100644 index 00000000..676bb0dd --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-flat-hovered@4x.9.png diff --git a/src/imports/controls/imagine/images/button-background-flat-pressed.9.png b/src/imports/controls/imagine/images/button-background-flat-pressed.9.png Binary files differnew file mode 100644 index 00000000..c06fd7cc --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-flat-pressed.9.png diff --git a/src/imports/controls/imagine/images/button-background-flat-pressed@2x.9.png b/src/imports/controls/imagine/images/button-background-flat-pressed@2x.9.png Binary files differnew file mode 100644 index 00000000..b86a13cc --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-flat-pressed@2x.9.png diff --git a/src/imports/controls/imagine/images/button-background-flat-pressed@3x.9.png b/src/imports/controls/imagine/images/button-background-flat-pressed@3x.9.png Binary files differnew file mode 100644 index 00000000..7fa4dd83 --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-flat-pressed@3x.9.png diff --git a/src/imports/controls/imagine/images/button-background-flat-pressed@4x.9.png b/src/imports/controls/imagine/images/button-background-flat-pressed@4x.9.png Binary files differnew file mode 100644 index 00000000..676bb0dd --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-flat-pressed@4x.9.png diff --git a/src/imports/controls/imagine/images/button-background-flat.9.png b/src/imports/controls/imagine/images/button-background-flat.9.png Binary files differnew file mode 100644 index 00000000..a76e7b86 --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-flat.9.png diff --git a/src/imports/controls/imagine/images/button-background-flat@2x.9.png b/src/imports/controls/imagine/images/button-background-flat@2x.9.png Binary files differnew file mode 100644 index 00000000..58445d50 --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-flat@2x.9.png diff --git a/src/imports/controls/imagine/images/button-background-flat@3x.9.png b/src/imports/controls/imagine/images/button-background-flat@3x.9.png Binary files differnew file mode 100644 index 00000000..0a18be32 --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-flat@3x.9.png diff --git a/src/imports/controls/imagine/images/button-background-flat@4x.9.png b/src/imports/controls/imagine/images/button-background-flat@4x.9.png Binary files differnew file mode 100644 index 00000000..f60c994d --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-flat@4x.9.png diff --git a/src/imports/controls/imagine/images/button-background-focused.9.png b/src/imports/controls/imagine/images/button-background-focused.9.png Binary files differnew file mode 100644 index 00000000..04573ce4 --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-focused.9.png diff --git a/src/imports/controls/imagine/images/button-background-focused@2x.9.png b/src/imports/controls/imagine/images/button-background-focused@2x.9.png Binary files differnew file mode 100644 index 00000000..ad25d378 --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-focused@2x.9.png diff --git a/src/imports/controls/imagine/images/button-background-focused@3x.9.png b/src/imports/controls/imagine/images/button-background-focused@3x.9.png Binary files differnew file mode 100644 index 00000000..2f599e72 --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-focused@3x.9.png diff --git a/src/imports/controls/imagine/images/button-background-focused@4x.9.png b/src/imports/controls/imagine/images/button-background-focused@4x.9.png Binary files differnew file mode 100644 index 00000000..6ac51521 --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-focused@4x.9.png diff --git a/src/imports/controls/imagine/images/button-background-highlighted-checked.9.png b/src/imports/controls/imagine/images/button-background-highlighted-checked.9.png Binary files differnew file mode 100644 index 00000000..d8803419 --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-highlighted-checked.9.png diff --git a/src/imports/controls/imagine/images/button-background-highlighted-checked@2x.9.png b/src/imports/controls/imagine/images/button-background-highlighted-checked@2x.9.png Binary files differnew file mode 100644 index 00000000..09cae1c0 --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-highlighted-checked@2x.9.png diff --git a/src/imports/controls/imagine/images/button-background-highlighted-checked@3x.9.png b/src/imports/controls/imagine/images/button-background-highlighted-checked@3x.9.png Binary files differnew file mode 100644 index 00000000..b37485bb --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-highlighted-checked@3x.9.png diff --git a/src/imports/controls/imagine/images/button-background-highlighted-checked@4x.9.png b/src/imports/controls/imagine/images/button-background-highlighted-checked@4x.9.png Binary files differnew file mode 100644 index 00000000..d4991f75 --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-highlighted-checked@4x.9.png diff --git a/src/imports/controls/imagine/images/button-background-highlighted-disabled.9.png b/src/imports/controls/imagine/images/button-background-highlighted-disabled.9.png Binary files differnew file mode 100644 index 00000000..c06fd7cc --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-highlighted-disabled.9.png diff --git a/src/imports/controls/imagine/images/button-background-highlighted-disabled@2x.9.png b/src/imports/controls/imagine/images/button-background-highlighted-disabled@2x.9.png Binary files differnew file mode 100644 index 00000000..b86a13cc --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-highlighted-disabled@2x.9.png diff --git a/src/imports/controls/imagine/images/button-background-highlighted-disabled@3x.9.png b/src/imports/controls/imagine/images/button-background-highlighted-disabled@3x.9.png Binary files differnew file mode 100644 index 00000000..7fa4dd83 --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-highlighted-disabled@3x.9.png diff --git a/src/imports/controls/imagine/images/button-background-highlighted-disabled@4x.9.png b/src/imports/controls/imagine/images/button-background-highlighted-disabled@4x.9.png Binary files differnew file mode 100644 index 00000000..676bb0dd --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-highlighted-disabled@4x.9.png diff --git a/src/imports/controls/imagine/images/button-background-highlighted-focused.9.png b/src/imports/controls/imagine/images/button-background-highlighted-focused.9.png Binary files differnew file mode 100644 index 00000000..594e7446 --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-highlighted-focused.9.png diff --git a/src/imports/controls/imagine/images/button-background-highlighted-focused@2x.9.png b/src/imports/controls/imagine/images/button-background-highlighted-focused@2x.9.png Binary files differnew file mode 100644 index 00000000..ddd405a2 --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-highlighted-focused@2x.9.png diff --git a/src/imports/controls/imagine/images/button-background-highlighted-focused@3x.9.png b/src/imports/controls/imagine/images/button-background-highlighted-focused@3x.9.png Binary files differnew file mode 100644 index 00000000..085c233e --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-highlighted-focused@3x.9.png diff --git a/src/imports/controls/imagine/images/button-background-highlighted-focused@4x.9.png b/src/imports/controls/imagine/images/button-background-highlighted-focused@4x.9.png Binary files differnew file mode 100644 index 00000000..b9e4aa27 --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-highlighted-focused@4x.9.png diff --git a/src/imports/controls/imagine/images/button-background-highlighted-hovered.9.png b/src/imports/controls/imagine/images/button-background-highlighted-hovered.9.png Binary files differnew file mode 100644 index 00000000..594e7446 --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-highlighted-hovered.9.png diff --git a/src/imports/controls/imagine/images/button-background-highlighted-hovered@2x.9.png b/src/imports/controls/imagine/images/button-background-highlighted-hovered@2x.9.png Binary files differnew file mode 100644 index 00000000..ddd405a2 --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-highlighted-hovered@2x.9.png diff --git a/src/imports/controls/imagine/images/button-background-highlighted-hovered@3x.9.png b/src/imports/controls/imagine/images/button-background-highlighted-hovered@3x.9.png Binary files differnew file mode 100644 index 00000000..085c233e --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-highlighted-hovered@3x.9.png diff --git a/src/imports/controls/imagine/images/button-background-highlighted-hovered@4x.9.png b/src/imports/controls/imagine/images/button-background-highlighted-hovered@4x.9.png Binary files differnew file mode 100644 index 00000000..b9e4aa27 --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-highlighted-hovered@4x.9.png diff --git a/src/imports/controls/imagine/images/button-background-highlighted-pressed.9.png b/src/imports/controls/imagine/images/button-background-highlighted-pressed.9.png Binary files differnew file mode 100644 index 00000000..d8803419 --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-highlighted-pressed.9.png diff --git a/src/imports/controls/imagine/images/button-background-highlighted-pressed@2x.9.png b/src/imports/controls/imagine/images/button-background-highlighted-pressed@2x.9.png Binary files differnew file mode 100644 index 00000000..09cae1c0 --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-highlighted-pressed@2x.9.png diff --git a/src/imports/controls/imagine/images/button-background-highlighted-pressed@3x.9.png b/src/imports/controls/imagine/images/button-background-highlighted-pressed@3x.9.png Binary files differnew file mode 100644 index 00000000..b37485bb --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-highlighted-pressed@3x.9.png diff --git a/src/imports/controls/imagine/images/button-background-highlighted-pressed@4x.9.png b/src/imports/controls/imagine/images/button-background-highlighted-pressed@4x.9.png Binary files differnew file mode 100644 index 00000000..d4991f75 --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-highlighted-pressed@4x.9.png diff --git a/src/imports/controls/imagine/images/button-background-highlighted.9.png b/src/imports/controls/imagine/images/button-background-highlighted.9.png Binary files differnew file mode 100644 index 00000000..f214ba22 --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-highlighted.9.png diff --git a/src/imports/controls/imagine/images/button-background-highlighted@2x.9.png b/src/imports/controls/imagine/images/button-background-highlighted@2x.9.png Binary files differnew file mode 100644 index 00000000..f363d8df --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-highlighted@2x.9.png diff --git a/src/imports/controls/imagine/images/button-background-highlighted@3x.9.png b/src/imports/controls/imagine/images/button-background-highlighted@3x.9.png Binary files differnew file mode 100644 index 00000000..65ed9ca9 --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-highlighted@3x.9.png diff --git a/src/imports/controls/imagine/images/button-background-highlighted@4x.9.png b/src/imports/controls/imagine/images/button-background-highlighted@4x.9.png Binary files differnew file mode 100644 index 00000000..25be69ca --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-highlighted@4x.9.png diff --git a/src/imports/controls/imagine/images/button-background-hovered.9.png b/src/imports/controls/imagine/images/button-background-hovered.9.png Binary files differnew file mode 100644 index 00000000..04573ce4 --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-hovered.9.png diff --git a/src/imports/controls/imagine/images/button-background-hovered@2x.9.png b/src/imports/controls/imagine/images/button-background-hovered@2x.9.png Binary files differnew file mode 100644 index 00000000..ad25d378 --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-hovered@2x.9.png diff --git a/src/imports/controls/imagine/images/button-background-hovered@3x.9.png b/src/imports/controls/imagine/images/button-background-hovered@3x.9.png Binary files differnew file mode 100644 index 00000000..2f599e72 --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-hovered@3x.9.png diff --git a/src/imports/controls/imagine/images/button-background-hovered@4x.9.png b/src/imports/controls/imagine/images/button-background-hovered@4x.9.png Binary files differnew file mode 100644 index 00000000..6ac51521 --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-hovered@4x.9.png diff --git a/src/imports/controls/imagine/images/button-background-pressed.9.png b/src/imports/controls/imagine/images/button-background-pressed.9.png Binary files differnew file mode 100644 index 00000000..3ca06e6c --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-pressed.9.png diff --git a/src/imports/controls/imagine/images/button-background-pressed@2x.9.png b/src/imports/controls/imagine/images/button-background-pressed@2x.9.png Binary files differnew file mode 100644 index 00000000..0afc3dea --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-pressed@2x.9.png diff --git a/src/imports/controls/imagine/images/button-background-pressed@3x.9.png b/src/imports/controls/imagine/images/button-background-pressed@3x.9.png Binary files differnew file mode 100644 index 00000000..348687ad --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-pressed@3x.9.png diff --git a/src/imports/controls/imagine/images/button-background-pressed@4x.9.png b/src/imports/controls/imagine/images/button-background-pressed@4x.9.png Binary files differnew file mode 100644 index 00000000..4dff0ba8 --- /dev/null +++ b/src/imports/controls/imagine/images/button-background-pressed@4x.9.png diff --git a/src/imports/controls/imagine/images/button-background.9.png b/src/imports/controls/imagine/images/button-background.9.png Binary files differnew file mode 100644 index 00000000..053da917 --- /dev/null +++ b/src/imports/controls/imagine/images/button-background.9.png diff --git a/src/imports/controls/imagine/images/button-background@2x.9.png b/src/imports/controls/imagine/images/button-background@2x.9.png Binary files differnew file mode 100644 index 00000000..471940f1 --- /dev/null +++ b/src/imports/controls/imagine/images/button-background@2x.9.png diff --git a/src/imports/controls/imagine/images/button-background@3x.9.png b/src/imports/controls/imagine/images/button-background@3x.9.png Binary files differnew file mode 100644 index 00000000..06155e8a --- /dev/null +++ b/src/imports/controls/imagine/images/button-background@3x.9.png diff --git a/src/imports/controls/imagine/images/button-background@4x.9.png b/src/imports/controls/imagine/images/button-background@4x.9.png Binary files differnew file mode 100644 index 00000000..7d776e51 --- /dev/null +++ b/src/imports/controls/imagine/images/button-background@4x.9.png diff --git a/src/imports/controls/imagine/images/checkbox-indicator-checked-focused.png b/src/imports/controls/imagine/images/checkbox-indicator-checked-focused.png Binary files differnew file mode 100644 index 00000000..f22ebf09 --- /dev/null +++ b/src/imports/controls/imagine/images/checkbox-indicator-checked-focused.png diff --git a/src/imports/controls/imagine/images/checkbox-indicator-checked-focused@2x.png b/src/imports/controls/imagine/images/checkbox-indicator-checked-focused@2x.png Binary files differnew file mode 100644 index 00000000..fd3080a1 --- /dev/null +++ b/src/imports/controls/imagine/images/checkbox-indicator-checked-focused@2x.png diff --git a/src/imports/controls/imagine/images/checkbox-indicator-checked-focused@3x.png b/src/imports/controls/imagine/images/checkbox-indicator-checked-focused@3x.png Binary files differnew file mode 100644 index 00000000..6393373f --- /dev/null +++ b/src/imports/controls/imagine/images/checkbox-indicator-checked-focused@3x.png diff --git a/src/imports/controls/imagine/images/checkbox-indicator-checked-focused@4x.png b/src/imports/controls/imagine/images/checkbox-indicator-checked-focused@4x.png Binary files differnew file mode 100644 index 00000000..32dedb7f --- /dev/null +++ b/src/imports/controls/imagine/images/checkbox-indicator-checked-focused@4x.png diff --git a/src/imports/controls/imagine/images/checkbox-indicator-checked-hovered.png b/src/imports/controls/imagine/images/checkbox-indicator-checked-hovered.png Binary files differnew file mode 100644 index 00000000..f22ebf09 --- /dev/null +++ b/src/imports/controls/imagine/images/checkbox-indicator-checked-hovered.png diff --git a/src/imports/controls/imagine/images/checkbox-indicator-checked-hovered@2x.png b/src/imports/controls/imagine/images/checkbox-indicator-checked-hovered@2x.png Binary files differnew file mode 100644 index 00000000..fd3080a1 --- /dev/null +++ b/src/imports/controls/imagine/images/checkbox-indicator-checked-hovered@2x.png diff --git a/src/imports/controls/imagine/images/checkbox-indicator-checked-hovered@3x.png b/src/imports/controls/imagine/images/checkbox-indicator-checked-hovered@3x.png Binary files differnew file mode 100644 index 00000000..6393373f --- /dev/null +++ b/src/imports/controls/imagine/images/checkbox-indicator-checked-hovered@3x.png diff --git a/src/imports/controls/imagine/images/checkbox-indicator-checked-hovered@4x.png b/src/imports/controls/imagine/images/checkbox-indicator-checked-hovered@4x.png Binary files differnew file mode 100644 index 00000000..32dedb7f --- /dev/null +++ b/src/imports/controls/imagine/images/checkbox-indicator-checked-hovered@4x.png diff --git a/src/imports/controls/imagine/images/checkbox-indicator-checked-pressed.png b/src/imports/controls/imagine/images/checkbox-indicator-checked-pressed.png Binary files differnew file mode 100644 index 00000000..846416aa --- /dev/null +++ b/src/imports/controls/imagine/images/checkbox-indicator-checked-pressed.png diff --git a/src/imports/controls/imagine/images/checkbox-indicator-checked-pressed@2x.png b/src/imports/controls/imagine/images/checkbox-indicator-checked-pressed@2x.png Binary files differnew file mode 100644 index 00000000..bc85bf94 --- /dev/null +++ b/src/imports/controls/imagine/images/checkbox-indicator-checked-pressed@2x.png diff --git a/src/imports/controls/imagine/images/checkbox-indicator-checked-pressed@3x.png b/src/imports/controls/imagine/images/checkbox-indicator-checked-pressed@3x.png Binary files differnew file mode 100644 index 00000000..17ef9e58 --- /dev/null +++ b/src/imports/controls/imagine/images/checkbox-indicator-checked-pressed@3x.png diff --git a/src/imports/controls/imagine/images/checkbox-indicator-checked-pressed@4x.png b/src/imports/controls/imagine/images/checkbox-indicator-checked-pressed@4x.png Binary files differnew file mode 100644 index 00000000..7e9dd750 --- /dev/null +++ b/src/imports/controls/imagine/images/checkbox-indicator-checked-pressed@4x.png diff --git a/src/imports/controls/imagine/images/checkbox-indicator-checked.png b/src/imports/controls/imagine/images/checkbox-indicator-checked.png Binary files differnew file mode 100644 index 00000000..f06cc5f6 --- /dev/null +++ b/src/imports/controls/imagine/images/checkbox-indicator-checked.png diff --git a/src/imports/controls/imagine/images/checkbox-indicator-checked@2x.png b/src/imports/controls/imagine/images/checkbox-indicator-checked@2x.png Binary files differnew file mode 100644 index 00000000..3db78a17 --- /dev/null +++ b/src/imports/controls/imagine/images/checkbox-indicator-checked@2x.png diff --git a/src/imports/controls/imagine/images/checkbox-indicator-checked@3x.png b/src/imports/controls/imagine/images/checkbox-indicator-checked@3x.png Binary files differnew file mode 100644 index 00000000..eadb5968 --- /dev/null +++ b/src/imports/controls/imagine/images/checkbox-indicator-checked@3x.png diff --git a/src/imports/controls/imagine/images/checkbox-indicator-checked@4x.png b/src/imports/controls/imagine/images/checkbox-indicator-checked@4x.png Binary files differnew file mode 100644 index 00000000..9bdfac8a --- /dev/null +++ b/src/imports/controls/imagine/images/checkbox-indicator-checked@4x.png diff --git a/src/imports/controls/imagine/images/checkbox-indicator-disabled.png b/src/imports/controls/imagine/images/checkbox-indicator-disabled.png Binary files differnew file mode 100644 index 00000000..a8305968 --- /dev/null +++ b/src/imports/controls/imagine/images/checkbox-indicator-disabled.png diff --git a/src/imports/controls/imagine/images/checkbox-indicator-disabled@2x.png b/src/imports/controls/imagine/images/checkbox-indicator-disabled@2x.png Binary files differnew file mode 100644 index 00000000..e8046c5e --- /dev/null +++ b/src/imports/controls/imagine/images/checkbox-indicator-disabled@2x.png diff --git a/src/imports/controls/imagine/images/checkbox-indicator-disabled@3x.png b/src/imports/controls/imagine/images/checkbox-indicator-disabled@3x.png Binary files differnew file mode 100644 index 00000000..d44111bb --- /dev/null +++ b/src/imports/controls/imagine/images/checkbox-indicator-disabled@3x.png diff --git a/src/imports/controls/imagine/images/checkbox-indicator-disabled@4x.png b/src/imports/controls/imagine/images/checkbox-indicator-disabled@4x.png Binary files differnew file mode 100644 index 00000000..24fa0c0d --- /dev/null +++ b/src/imports/controls/imagine/images/checkbox-indicator-disabled@4x.png diff --git a/src/imports/controls/imagine/images/checkbox-indicator-focused.png b/src/imports/controls/imagine/images/checkbox-indicator-focused.png Binary files differnew file mode 100644 index 00000000..1c598c1f --- /dev/null +++ b/src/imports/controls/imagine/images/checkbox-indicator-focused.png diff --git a/src/imports/controls/imagine/images/checkbox-indicator-focused@2x.png b/src/imports/controls/imagine/images/checkbox-indicator-focused@2x.png Binary files differnew file mode 100644 index 00000000..31ff320e --- /dev/null +++ b/src/imports/controls/imagine/images/checkbox-indicator-focused@2x.png diff --git a/src/imports/controls/imagine/images/checkbox-indicator-focused@3x.png b/src/imports/controls/imagine/images/checkbox-indicator-focused@3x.png Binary files differnew file mode 100644 index 00000000..15a1b487 --- /dev/null +++ b/src/imports/controls/imagine/images/checkbox-indicator-focused@3x.png diff --git a/src/imports/controls/imagine/images/checkbox-indicator-focused@4x.png b/src/imports/controls/imagine/images/checkbox-indicator-focused@4x.png Binary files differnew file mode 100644 index 00000000..db11c0c1 --- /dev/null +++ b/src/imports/controls/imagine/images/checkbox-indicator-focused@4x.png diff --git a/src/imports/controls/imagine/images/checkbox-indicator-hovered.png b/src/imports/controls/imagine/images/checkbox-indicator-hovered.png Binary files differnew file mode 100644 index 00000000..1c598c1f --- /dev/null +++ b/src/imports/controls/imagine/images/checkbox-indicator-hovered.png diff --git a/src/imports/controls/imagine/images/checkbox-indicator-hovered@2x.png b/src/imports/controls/imagine/images/checkbox-indicator-hovered@2x.png Binary files differnew file mode 100644 index 00000000..31ff320e --- /dev/null +++ b/src/imports/controls/imagine/images/checkbox-indicator-hovered@2x.png diff --git a/src/imports/controls/imagine/images/checkbox-indicator-hovered@3x.png b/src/imports/controls/imagine/images/checkbox-indicator-hovered@3x.png Binary files differnew file mode 100644 index 00000000..15a1b487 --- /dev/null +++ b/src/imports/controls/imagine/images/checkbox-indicator-hovered@3x.png diff --git a/src/imports/controls/imagine/images/checkbox-indicator-hovered@4x.png b/src/imports/controls/imagine/images/checkbox-indicator-hovered@4x.png Binary files differnew file mode 100644 index 00000000..db11c0c1 --- /dev/null +++ b/src/imports/controls/imagine/images/checkbox-indicator-hovered@4x.png diff --git a/src/imports/controls/imagine/images/checkbox-indicator-partially-checked-focused.png b/src/imports/controls/imagine/images/checkbox-indicator-partially-checked-focused.png Binary files differnew file mode 100644 index 00000000..23c8197a --- /dev/null +++ b/src/imports/controls/imagine/images/checkbox-indicator-partially-checked-focused.png diff --git a/src/imports/controls/imagine/images/checkbox-indicator-partially-checked-focused@2x.png b/src/imports/controls/imagine/images/checkbox-indicator-partially-checked-focused@2x.png Binary files differnew file mode 100644 index 00000000..046a0e6c --- /dev/null +++ b/src/imports/controls/imagine/images/checkbox-indicator-partially-checked-focused@2x.png diff --git a/src/imports/controls/imagine/images/checkbox-indicator-partially-checked-focused@3x.png b/src/imports/controls/imagine/images/checkbox-indicator-partially-checked-focused@3x.png Binary files differnew file mode 100644 index 00000000..890b4c66 --- /dev/null +++ b/src/imports/controls/imagine/images/checkbox-indicator-partially-checked-focused@3x.png diff --git a/src/imports/controls/imagine/images/checkbox-indicator-partially-checked-focused@4x.png b/src/imports/controls/imagine/images/checkbox-indicator-partially-checked-focused@4x.png Binary files differnew file mode 100644 index 00000000..1dcc73c9 --- /dev/null +++ b/src/imports/controls/imagine/images/checkbox-indicator-partially-checked-focused@4x.png diff --git a/src/imports/controls/imagine/images/checkbox-indicator-partially-checked-hovered.png b/src/imports/controls/imagine/images/checkbox-indicator-partially-checked-hovered.png Binary files differnew file mode 100644 index 00000000..23c8197a --- /dev/null +++ b/src/imports/controls/imagine/images/checkbox-indicator-partially-checked-hovered.png diff --git a/src/imports/controls/imagine/images/checkbox-indicator-partially-checked-hovered@2x.png b/src/imports/controls/imagine/images/checkbox-indicator-partially-checked-hovered@2x.png Binary files differnew file mode 100644 index 00000000..046a0e6c --- /dev/null +++ b/src/imports/controls/imagine/images/checkbox-indicator-partially-checked-hovered@2x.png diff --git a/src/imports/controls/imagine/images/checkbox-indicator-partially-checked-hovered@3x.png b/src/imports/controls/imagine/images/checkbox-indicator-partially-checked-hovered@3x.png Binary files differnew file mode 100644 index 00000000..890b4c66 --- /dev/null +++ b/src/imports/controls/imagine/images/checkbox-indicator-partially-checked-hovered@3x.png diff --git a/src/imports/controls/imagine/images/checkbox-indicator-partially-checked-hovered@4x.png b/src/imports/controls/imagine/images/checkbox-indicator-partially-checked-hovered@4x.png Binary files differnew file mode 100644 index 00000000..1dcc73c9 --- /dev/null +++ b/src/imports/controls/imagine/images/checkbox-indicator-partially-checked-hovered@4x.png diff --git a/src/imports/controls/imagine/images/checkbox-indicator-partially-checked-pressed.png b/src/imports/controls/imagine/images/checkbox-indicator-partially-checked-pressed.png Binary files differnew file mode 100644 index 00000000..bdd3b6f7 --- /dev/null +++ b/src/imports/controls/imagine/images/checkbox-indicator-partially-checked-pressed.png diff --git a/src/imports/controls/imagine/images/checkbox-indicator-partially-checked-pressed@2x.png b/src/imports/controls/imagine/images/checkbox-indicator-partially-checked-pressed@2x.png Binary files differnew file mode 100644 index 00000000..8e5e3478 --- /dev/null +++ b/src/imports/controls/imagine/images/checkbox-indicator-partially-checked-pressed@2x.png diff --git a/src/imports/controls/imagine/images/checkbox-indicator-partially-checked-pressed@3x.png b/src/imports/controls/imagine/images/checkbox-indicator-partially-checked-pressed@3x.png Binary files differnew file mode 100644 index 00000000..aa60fac0 --- /dev/null +++ b/src/imports/controls/imagine/images/checkbox-indicator-partially-checked-pressed@3x.png diff --git a/src/imports/controls/imagine/images/checkbox-indicator-partially-checked-pressed@4x.png b/src/imports/controls/imagine/images/checkbox-indicator-partially-checked-pressed@4x.png Binary files differnew file mode 100644 index 00000000..98c43e17 --- /dev/null +++ b/src/imports/controls/imagine/images/checkbox-indicator-partially-checked-pressed@4x.png diff --git a/src/imports/controls/imagine/images/checkbox-indicator-partially-checked.png b/src/imports/controls/imagine/images/checkbox-indicator-partially-checked.png Binary files differnew file mode 100644 index 00000000..9d09b33b --- /dev/null +++ b/src/imports/controls/imagine/images/checkbox-indicator-partially-checked.png diff --git a/src/imports/controls/imagine/images/checkbox-indicator-partially-checked@2x.png b/src/imports/controls/imagine/images/checkbox-indicator-partially-checked@2x.png Binary files differnew file mode 100644 index 00000000..bf4ee4b8 --- /dev/null +++ b/src/imports/controls/imagine/images/checkbox-indicator-partially-checked@2x.png diff --git a/src/imports/controls/imagine/images/checkbox-indicator-partially-checked@3x.png b/src/imports/controls/imagine/images/checkbox-indicator-partially-checked@3x.png Binary files differnew file mode 100644 index 00000000..6726df07 --- /dev/null +++ b/src/imports/controls/imagine/images/checkbox-indicator-partially-checked@3x.png diff --git a/src/imports/controls/imagine/images/checkbox-indicator-partially-checked@4x.png b/src/imports/controls/imagine/images/checkbox-indicator-partially-checked@4x.png Binary files differnew file mode 100644 index 00000000..400daa58 --- /dev/null +++ b/src/imports/controls/imagine/images/checkbox-indicator-partially-checked@4x.png diff --git a/src/imports/controls/imagine/images/checkbox-indicator-pressed.png b/src/imports/controls/imagine/images/checkbox-indicator-pressed.png Binary files differnew file mode 100644 index 00000000..e4f02db1 --- /dev/null +++ b/src/imports/controls/imagine/images/checkbox-indicator-pressed.png diff --git a/src/imports/controls/imagine/images/checkbox-indicator-pressed@2x.png b/src/imports/controls/imagine/images/checkbox-indicator-pressed@2x.png Binary files differnew file mode 100644 index 00000000..e2342547 --- /dev/null +++ b/src/imports/controls/imagine/images/checkbox-indicator-pressed@2x.png diff --git a/src/imports/controls/imagine/images/checkbox-indicator-pressed@3x.png b/src/imports/controls/imagine/images/checkbox-indicator-pressed@3x.png Binary files differnew file mode 100644 index 00000000..8ae24d75 --- /dev/null +++ b/src/imports/controls/imagine/images/checkbox-indicator-pressed@3x.png diff --git a/src/imports/controls/imagine/images/checkbox-indicator-pressed@4x.png b/src/imports/controls/imagine/images/checkbox-indicator-pressed@4x.png Binary files differnew file mode 100644 index 00000000..04a32370 --- /dev/null +++ b/src/imports/controls/imagine/images/checkbox-indicator-pressed@4x.png diff --git a/src/imports/controls/imagine/images/checkbox-indicator.png b/src/imports/controls/imagine/images/checkbox-indicator.png Binary files differnew file mode 100644 index 00000000..d7b4c6d1 --- /dev/null +++ b/src/imports/controls/imagine/images/checkbox-indicator.png diff --git a/src/imports/controls/imagine/images/checkbox-indicator@2x.png b/src/imports/controls/imagine/images/checkbox-indicator@2x.png Binary files differnew file mode 100644 index 00000000..0ae3fa8f --- /dev/null +++ b/src/imports/controls/imagine/images/checkbox-indicator@2x.png diff --git a/src/imports/controls/imagine/images/checkbox-indicator@3x.png b/src/imports/controls/imagine/images/checkbox-indicator@3x.png Binary files differnew file mode 100644 index 00000000..f8de503c --- /dev/null +++ b/src/imports/controls/imagine/images/checkbox-indicator@3x.png diff --git a/src/imports/controls/imagine/images/checkbox-indicator@4x.png b/src/imports/controls/imagine/images/checkbox-indicator@4x.png Binary files differnew file mode 100644 index 00000000..4f16042d --- /dev/null +++ b/src/imports/controls/imagine/images/checkbox-indicator@4x.png diff --git a/src/imports/controls/imagine/images/checkdelegate-background-disabled.9.png b/src/imports/controls/imagine/images/checkdelegate-background-disabled.9.png Binary files differnew file mode 100644 index 00000000..4b56fe35 --- /dev/null +++ b/src/imports/controls/imagine/images/checkdelegate-background-disabled.9.png diff --git a/src/imports/controls/imagine/images/checkdelegate-background-disabled@2x.9.png b/src/imports/controls/imagine/images/checkdelegate-background-disabled@2x.9.png Binary files differnew file mode 100644 index 00000000..34edef58 --- /dev/null +++ b/src/imports/controls/imagine/images/checkdelegate-background-disabled@2x.9.png diff --git a/src/imports/controls/imagine/images/checkdelegate-background-disabled@3x.9.png b/src/imports/controls/imagine/images/checkdelegate-background-disabled@3x.9.png Binary files differnew file mode 100644 index 00000000..dd2cc6ba --- /dev/null +++ b/src/imports/controls/imagine/images/checkdelegate-background-disabled@3x.9.png diff --git a/src/imports/controls/imagine/images/checkdelegate-background-disabled@4x.9.png b/src/imports/controls/imagine/images/checkdelegate-background-disabled@4x.9.png Binary files differnew file mode 100644 index 00000000..b7890a3c --- /dev/null +++ b/src/imports/controls/imagine/images/checkdelegate-background-disabled@4x.9.png diff --git a/src/imports/controls/imagine/images/checkdelegate-background-focused.9.png b/src/imports/controls/imagine/images/checkdelegate-background-focused.9.png Binary files differnew file mode 100644 index 00000000..b31343dd --- /dev/null +++ b/src/imports/controls/imagine/images/checkdelegate-background-focused.9.png diff --git a/src/imports/controls/imagine/images/checkdelegate-background-focused@2x.9.png b/src/imports/controls/imagine/images/checkdelegate-background-focused@2x.9.png Binary files differnew file mode 100644 index 00000000..c56c62da --- /dev/null +++ b/src/imports/controls/imagine/images/checkdelegate-background-focused@2x.9.png diff --git a/src/imports/controls/imagine/images/checkdelegate-background-focused@3x.9.png b/src/imports/controls/imagine/images/checkdelegate-background-focused@3x.9.png Binary files differnew file mode 100644 index 00000000..bfbc82f9 --- /dev/null +++ b/src/imports/controls/imagine/images/checkdelegate-background-focused@3x.9.png diff --git a/src/imports/controls/imagine/images/checkdelegate-background-focused@4x.9.png b/src/imports/controls/imagine/images/checkdelegate-background-focused@4x.9.png Binary files differnew file mode 100644 index 00000000..e31ab63b --- /dev/null +++ b/src/imports/controls/imagine/images/checkdelegate-background-focused@4x.9.png diff --git a/src/imports/controls/imagine/images/checkdelegate-background-highlighted.9.png b/src/imports/controls/imagine/images/checkdelegate-background-highlighted.9.png Binary files differnew file mode 100644 index 00000000..32847cfa --- /dev/null +++ b/src/imports/controls/imagine/images/checkdelegate-background-highlighted.9.png diff --git a/src/imports/controls/imagine/images/checkdelegate-background-highlighted@2x.9.png b/src/imports/controls/imagine/images/checkdelegate-background-highlighted@2x.9.png Binary files differnew file mode 100644 index 00000000..126fcb29 --- /dev/null +++ b/src/imports/controls/imagine/images/checkdelegate-background-highlighted@2x.9.png diff --git a/src/imports/controls/imagine/images/checkdelegate-background-highlighted@3x.9.png b/src/imports/controls/imagine/images/checkdelegate-background-highlighted@3x.9.png Binary files differnew file mode 100644 index 00000000..22b7c9f2 --- /dev/null +++ b/src/imports/controls/imagine/images/checkdelegate-background-highlighted@3x.9.png diff --git a/src/imports/controls/imagine/images/checkdelegate-background-highlighted@4x.9.png b/src/imports/controls/imagine/images/checkdelegate-background-highlighted@4x.9.png Binary files differnew file mode 100644 index 00000000..4e67f310 --- /dev/null +++ b/src/imports/controls/imagine/images/checkdelegate-background-highlighted@4x.9.png diff --git a/src/imports/controls/imagine/images/checkdelegate-background-hovered.9.png b/src/imports/controls/imagine/images/checkdelegate-background-hovered.9.png Binary files differnew file mode 100644 index 00000000..a53f63cd --- /dev/null +++ b/src/imports/controls/imagine/images/checkdelegate-background-hovered.9.png diff --git a/src/imports/controls/imagine/images/checkdelegate-background-hovered@2x.9.png b/src/imports/controls/imagine/images/checkdelegate-background-hovered@2x.9.png Binary files differnew file mode 100644 index 00000000..07510b10 --- /dev/null +++ b/src/imports/controls/imagine/images/checkdelegate-background-hovered@2x.9.png diff --git a/src/imports/controls/imagine/images/checkdelegate-background-hovered@3x.9.png b/src/imports/controls/imagine/images/checkdelegate-background-hovered@3x.9.png Binary files differnew file mode 100644 index 00000000..db2a210a --- /dev/null +++ b/src/imports/controls/imagine/images/checkdelegate-background-hovered@3x.9.png diff --git a/src/imports/controls/imagine/images/checkdelegate-background-hovered@4x.9.png b/src/imports/controls/imagine/images/checkdelegate-background-hovered@4x.9.png Binary files differnew file mode 100644 index 00000000..6427d7ab --- /dev/null +++ b/src/imports/controls/imagine/images/checkdelegate-background-hovered@4x.9.png diff --git a/src/imports/controls/imagine/images/checkdelegate-background-pressed.9.png b/src/imports/controls/imagine/images/checkdelegate-background-pressed.9.png Binary files differnew file mode 100644 index 00000000..b31343dd --- /dev/null +++ b/src/imports/controls/imagine/images/checkdelegate-background-pressed.9.png diff --git a/src/imports/controls/imagine/images/checkdelegate-background-pressed@2x.9.png b/src/imports/controls/imagine/images/checkdelegate-background-pressed@2x.9.png Binary files differnew file mode 100644 index 00000000..c56c62da --- /dev/null +++ b/src/imports/controls/imagine/images/checkdelegate-background-pressed@2x.9.png diff --git a/src/imports/controls/imagine/images/checkdelegate-background-pressed@3x.9.png b/src/imports/controls/imagine/images/checkdelegate-background-pressed@3x.9.png Binary files differnew file mode 100644 index 00000000..bfbc82f9 --- /dev/null +++ b/src/imports/controls/imagine/images/checkdelegate-background-pressed@3x.9.png diff --git a/src/imports/controls/imagine/images/checkdelegate-background-pressed@4x.9.png b/src/imports/controls/imagine/images/checkdelegate-background-pressed@4x.9.png Binary files differnew file mode 100644 index 00000000..e31ab63b --- /dev/null +++ b/src/imports/controls/imagine/images/checkdelegate-background-pressed@4x.9.png diff --git a/src/imports/controls/imagine/images/checkdelegate-background.9.png b/src/imports/controls/imagine/images/checkdelegate-background.9.png Binary files differnew file mode 100644 index 00000000..a53f63cd --- /dev/null +++ b/src/imports/controls/imagine/images/checkdelegate-background.9.png diff --git a/src/imports/controls/imagine/images/checkdelegate-background@2x.9.png b/src/imports/controls/imagine/images/checkdelegate-background@2x.9.png Binary files differnew file mode 100644 index 00000000..07510b10 --- /dev/null +++ b/src/imports/controls/imagine/images/checkdelegate-background@2x.9.png diff --git a/src/imports/controls/imagine/images/checkdelegate-background@3x.9.png b/src/imports/controls/imagine/images/checkdelegate-background@3x.9.png Binary files differnew file mode 100644 index 00000000..db2a210a --- /dev/null +++ b/src/imports/controls/imagine/images/checkdelegate-background@3x.9.png diff --git a/src/imports/controls/imagine/images/checkdelegate-background@4x.9.png b/src/imports/controls/imagine/images/checkdelegate-background@4x.9.png Binary files differnew file mode 100644 index 00000000..6427d7ab --- /dev/null +++ b/src/imports/controls/imagine/images/checkdelegate-background@4x.9.png diff --git a/src/imports/controls/imagine/images/checkdelegate-indicator-checked-focused.png b/src/imports/controls/imagine/images/checkdelegate-indicator-checked-focused.png Binary files differnew file mode 100644 index 00000000..f22ebf09 --- /dev/null +++ b/src/imports/controls/imagine/images/checkdelegate-indicator-checked-focused.png diff --git a/src/imports/controls/imagine/images/checkdelegate-indicator-checked-focused@2x.png b/src/imports/controls/imagine/images/checkdelegate-indicator-checked-focused@2x.png Binary files differnew file mode 100644 index 00000000..fd3080a1 --- /dev/null +++ b/src/imports/controls/imagine/images/checkdelegate-indicator-checked-focused@2x.png diff --git a/src/imports/controls/imagine/images/checkdelegate-indicator-checked-focused@3x.png b/src/imports/controls/imagine/images/checkdelegate-indicator-checked-focused@3x.png Binary files differnew file mode 100644 index 00000000..6393373f --- /dev/null +++ b/src/imports/controls/imagine/images/checkdelegate-indicator-checked-focused@3x.png diff --git a/src/imports/controls/imagine/images/checkdelegate-indicator-checked-focused@4x.png b/src/imports/controls/imagine/images/checkdelegate-indicator-checked-focused@4x.png Binary files differnew file mode 100644 index 00000000..32dedb7f --- /dev/null +++ b/src/imports/controls/imagine/images/checkdelegate-indicator-checked-focused@4x.png diff --git a/src/imports/controls/imagine/images/checkdelegate-indicator-checked-hovered.png b/src/imports/controls/imagine/images/checkdelegate-indicator-checked-hovered.png Binary files differnew file mode 100644 index 00000000..f22ebf09 --- /dev/null +++ b/src/imports/controls/imagine/images/checkdelegate-indicator-checked-hovered.png diff --git a/src/imports/controls/imagine/images/checkdelegate-indicator-checked-hovered@2x.png b/src/imports/controls/imagine/images/checkdelegate-indicator-checked-hovered@2x.png Binary files differnew file mode 100644 index 00000000..fd3080a1 --- /dev/null +++ b/src/imports/controls/imagine/images/checkdelegate-indicator-checked-hovered@2x.png diff --git a/src/imports/controls/imagine/images/checkdelegate-indicator-checked-hovered@3x.png b/src/imports/controls/imagine/images/checkdelegate-indicator-checked-hovered@3x.png Binary files differnew file mode 100644 index 00000000..6393373f --- /dev/null +++ b/src/imports/controls/imagine/images/checkdelegate-indicator-checked-hovered@3x.png diff --git a/src/imports/controls/imagine/images/checkdelegate-indicator-checked-hovered@4x.png b/src/imports/controls/imagine/images/checkdelegate-indicator-checked-hovered@4x.png Binary files differnew file mode 100644 index 00000000..32dedb7f --- /dev/null +++ b/src/imports/controls/imagine/images/checkdelegate-indicator-checked-hovered@4x.png diff --git a/src/imports/controls/imagine/images/checkdelegate-indicator-checked-pressed.png b/src/imports/controls/imagine/images/checkdelegate-indicator-checked-pressed.png Binary files differnew file mode 100644 index 00000000..846416aa --- /dev/null +++ b/src/imports/controls/imagine/images/checkdelegate-indicator-checked-pressed.png diff --git a/src/imports/controls/imagine/images/checkdelegate-indicator-checked-pressed@2x.png b/src/imports/controls/imagine/images/checkdelegate-indicator-checked-pressed@2x.png Binary files differnew file mode 100644 index 00000000..bc85bf94 --- /dev/null +++ b/src/imports/controls/imagine/images/checkdelegate-indicator-checked-pressed@2x.png diff --git a/src/imports/controls/imagine/images/checkdelegate-indicator-checked-pressed@3x.png b/src/imports/controls/imagine/images/checkdelegate-indicator-checked-pressed@3x.png Binary files differnew file mode 100644 index 00000000..17ef9e58 --- /dev/null +++ b/src/imports/controls/imagine/images/checkdelegate-indicator-checked-pressed@3x.png diff --git a/src/imports/controls/imagine/images/checkdelegate-indicator-checked-pressed@4x.png b/src/imports/controls/imagine/images/checkdelegate-indicator-checked-pressed@4x.png Binary files differnew file mode 100644 index 00000000..7e9dd750 --- /dev/null +++ b/src/imports/controls/imagine/images/checkdelegate-indicator-checked-pressed@4x.png diff --git a/src/imports/controls/imagine/images/checkdelegate-indicator-checked.png b/src/imports/controls/imagine/images/checkdelegate-indicator-checked.png Binary files differnew file mode 100644 index 00000000..f06cc5f6 --- /dev/null +++ b/src/imports/controls/imagine/images/checkdelegate-indicator-checked.png diff --git a/src/imports/controls/imagine/images/checkdelegate-indicator-checked@2x.png b/src/imports/controls/imagine/images/checkdelegate-indicator-checked@2x.png Binary files differnew file mode 100644 index 00000000..3db78a17 --- /dev/null +++ b/src/imports/controls/imagine/images/checkdelegate-indicator-checked@2x.png diff --git a/src/imports/controls/imagine/images/checkdelegate-indicator-checked@3x.png b/src/imports/controls/imagine/images/checkdelegate-indicator-checked@3x.png Binary files differnew file mode 100644 index 00000000..eadb5968 --- /dev/null +++ b/src/imports/controls/imagine/images/checkdelegate-indicator-checked@3x.png diff --git a/src/imports/controls/imagine/images/checkdelegate-indicator-checked@4x.png b/src/imports/controls/imagine/images/checkdelegate-indicator-checked@4x.png Binary files differnew file mode 100644 index 00000000..9bdfac8a --- /dev/null +++ b/src/imports/controls/imagine/images/checkdelegate-indicator-checked@4x.png diff --git a/src/imports/controls/imagine/images/checkdelegate-indicator-disabled.png b/src/imports/controls/imagine/images/checkdelegate-indicator-disabled.png Binary files differnew file mode 100644 index 00000000..a8305968 --- /dev/null +++ b/src/imports/controls/imagine/images/checkdelegate-indicator-disabled.png diff --git a/src/imports/controls/imagine/images/checkdelegate-indicator-disabled@2x.png b/src/imports/controls/imagine/images/checkdelegate-indicator-disabled@2x.png Binary files differnew file mode 100644 index 00000000..e8046c5e --- /dev/null +++ b/src/imports/controls/imagine/images/checkdelegate-indicator-disabled@2x.png diff --git a/src/imports/controls/imagine/images/checkdelegate-indicator-disabled@3x.png b/src/imports/controls/imagine/images/checkdelegate-indicator-disabled@3x.png Binary files differnew file mode 100644 index 00000000..d44111bb --- /dev/null +++ b/src/imports/controls/imagine/images/checkdelegate-indicator-disabled@3x.png diff --git a/src/imports/controls/imagine/images/checkdelegate-indicator-disabled@4x.png b/src/imports/controls/imagine/images/checkdelegate-indicator-disabled@4x.png Binary files differnew file mode 100644 index 00000000..24fa0c0d --- /dev/null +++ b/src/imports/controls/imagine/images/checkdelegate-indicator-disabled@4x.png diff --git a/src/imports/controls/imagine/images/checkdelegate-indicator-focused.png b/src/imports/controls/imagine/images/checkdelegate-indicator-focused.png Binary files differnew file mode 100644 index 00000000..1c598c1f --- /dev/null +++ b/src/imports/controls/imagine/images/checkdelegate-indicator-focused.png diff --git a/src/imports/controls/imagine/images/checkdelegate-indicator-focused@2x.png b/src/imports/controls/imagine/images/checkdelegate-indicator-focused@2x.png Binary files differnew file mode 100644 index 00000000..31ff320e --- /dev/null +++ b/src/imports/controls/imagine/images/checkdelegate-indicator-focused@2x.png diff --git a/src/imports/controls/imagine/images/checkdelegate-indicator-focused@3x.png b/src/imports/controls/imagine/images/checkdelegate-indicator-focused@3x.png Binary files differnew file mode 100644 index 00000000..15a1b487 --- /dev/null +++ b/src/imports/controls/imagine/images/checkdelegate-indicator-focused@3x.png diff --git a/src/imports/controls/imagine/images/checkdelegate-indicator-focused@4x.png b/src/imports/controls/imagine/images/checkdelegate-indicator-focused@4x.png Binary files differnew file mode 100644 index 00000000..db11c0c1 --- /dev/null +++ b/src/imports/controls/imagine/images/checkdelegate-indicator-focused@4x.png diff --git a/src/imports/controls/imagine/images/checkdelegate-indicator-hovered.png b/src/imports/controls/imagine/images/checkdelegate-indicator-hovered.png Binary files differnew file mode 100644 index 00000000..1c598c1f --- /dev/null +++ b/src/imports/controls/imagine/images/checkdelegate-indicator-hovered.png diff --git a/src/imports/controls/imagine/images/checkdelegate-indicator-hovered@2x.png b/src/imports/controls/imagine/images/checkdelegate-indicator-hovered@2x.png Binary files differnew file mode 100644 index 00000000..31ff320e --- /dev/null +++ b/src/imports/controls/imagine/images/checkdelegate-indicator-hovered@2x.png diff --git a/src/imports/controls/imagine/images/checkdelegate-indicator-hovered@3x.png b/src/imports/controls/imagine/images/checkdelegate-indicator-hovered@3x.png Binary files differnew file mode 100644 index 00000000..15a1b487 --- /dev/null +++ b/src/imports/controls/imagine/images/checkdelegate-indicator-hovered@3x.png diff --git a/src/imports/controls/imagine/images/checkdelegate-indicator-hovered@4x.png b/src/imports/controls/imagine/images/checkdelegate-indicator-hovered@4x.png Binary files differnew file mode 100644 index 00000000..db11c0c1 --- /dev/null +++ b/src/imports/controls/imagine/images/checkdelegate-indicator-hovered@4x.png diff --git a/src/imports/controls/imagine/images/checkdelegate-indicator-partially-checked-focused.png b/src/imports/controls/imagine/images/checkdelegate-indicator-partially-checked-focused.png Binary files differnew file mode 100644 index 00000000..23c8197a --- /dev/null +++ b/src/imports/controls/imagine/images/checkdelegate-indicator-partially-checked-focused.png diff --git a/src/imports/controls/imagine/images/checkdelegate-indicator-partially-checked-focused@2x.png b/src/imports/controls/imagine/images/checkdelegate-indicator-partially-checked-focused@2x.png Binary files differnew file mode 100644 index 00000000..046a0e6c --- /dev/null +++ b/src/imports/controls/imagine/images/checkdelegate-indicator-partially-checked-focused@2x.png diff --git a/src/imports/controls/imagine/images/checkdelegate-indicator-partially-checked-focused@3x.png b/src/imports/controls/imagine/images/checkdelegate-indicator-partially-checked-focused@3x.png Binary files differnew file mode 100644 index 00000000..890b4c66 --- /dev/null +++ b/src/imports/controls/imagine/images/checkdelegate-indicator-partially-checked-focused@3x.png diff --git a/src/imports/controls/imagine/images/checkdelegate-indicator-partially-checked-focused@4x.png b/src/imports/controls/imagine/images/checkdelegate-indicator-partially-checked-focused@4x.png Binary files differnew file mode 100644 index 00000000..1dcc73c9 --- /dev/null +++ b/src/imports/controls/imagine/images/checkdelegate-indicator-partially-checked-focused@4x.png diff --git a/src/imports/controls/imagine/images/checkdelegate-indicator-partially-checked-hovered.png b/src/imports/controls/imagine/images/checkdelegate-indicator-partially-checked-hovered.png Binary files differnew file mode 100644 index 00000000..23c8197a --- /dev/null +++ b/src/imports/controls/imagine/images/checkdelegate-indicator-partially-checked-hovered.png diff --git a/src/imports/controls/imagine/images/checkdelegate-indicator-partially-checked-hovered@2x.png b/src/imports/controls/imagine/images/checkdelegate-indicator-partially-checked-hovered@2x.png Binary files differnew file mode 100644 index 00000000..046a0e6c --- /dev/null +++ b/src/imports/controls/imagine/images/checkdelegate-indicator-partially-checked-hovered@2x.png diff --git a/src/imports/controls/imagine/images/checkdelegate-indicator-partially-checked-hovered@3x.png b/src/imports/controls/imagine/images/checkdelegate-indicator-partially-checked-hovered@3x.png Binary files differnew file mode 100644 index 00000000..890b4c66 --- /dev/null +++ b/src/imports/controls/imagine/images/checkdelegate-indicator-partially-checked-hovered@3x.png diff --git a/src/imports/controls/imagine/images/checkdelegate-indicator-partially-checked-hovered@4x.png b/src/imports/controls/imagine/images/checkdelegate-indicator-partially-checked-hovered@4x.png Binary files differnew file mode 100644 index 00000000..1dcc73c9 --- /dev/null +++ b/src/imports/controls/imagine/images/checkdelegate-indicator-partially-checked-hovered@4x.png diff --git a/src/imports/controls/imagine/images/checkdelegate-indicator-partially-checked-pressed.png b/src/imports/controls/imagine/images/checkdelegate-indicator-partially-checked-pressed.png Binary files differnew file mode 100644 index 00000000..bdd3b6f7 --- /dev/null +++ b/src/imports/controls/imagine/images/checkdelegate-indicator-partially-checked-pressed.png diff --git a/src/imports/controls/imagine/images/checkdelegate-indicator-partially-checked-pressed@2x.png b/src/imports/controls/imagine/images/checkdelegate-indicator-partially-checked-pressed@2x.png Binary files differnew file mode 100644 index 00000000..8e5e3478 --- /dev/null +++ b/src/imports/controls/imagine/images/checkdelegate-indicator-partially-checked-pressed@2x.png diff --git a/src/imports/controls/imagine/images/checkdelegate-indicator-partially-checked-pressed@3x.png b/src/imports/controls/imagine/images/checkdelegate-indicator-partially-checked-pressed@3x.png Binary files differnew file mode 100644 index 00000000..aa60fac0 --- /dev/null +++ b/src/imports/controls/imagine/images/checkdelegate-indicator-partially-checked-pressed@3x.png diff --git a/src/imports/controls/imagine/images/checkdelegate-indicator-partially-checked-pressed@4x.png b/src/imports/controls/imagine/images/checkdelegate-indicator-partially-checked-pressed@4x.png Binary files differnew file mode 100644 index 00000000..98c43e17 --- /dev/null +++ b/src/imports/controls/imagine/images/checkdelegate-indicator-partially-checked-pressed@4x.png diff --git a/src/imports/controls/imagine/images/checkdelegate-indicator-partially-checked.png b/src/imports/controls/imagine/images/checkdelegate-indicator-partially-checked.png Binary files differnew file mode 100644 index 00000000..9d09b33b --- /dev/null +++ b/src/imports/controls/imagine/images/checkdelegate-indicator-partially-checked.png diff --git a/src/imports/controls/imagine/images/checkdelegate-indicator-partially-checked@2x.png b/src/imports/controls/imagine/images/checkdelegate-indicator-partially-checked@2x.png Binary files differnew file mode 100644 index 00000000..bf4ee4b8 --- /dev/null +++ b/src/imports/controls/imagine/images/checkdelegate-indicator-partially-checked@2x.png diff --git a/src/imports/controls/imagine/images/checkdelegate-indicator-partially-checked@3x.png b/src/imports/controls/imagine/images/checkdelegate-indicator-partially-checked@3x.png Binary files differnew file mode 100644 index 00000000..6726df07 --- /dev/null +++ b/src/imports/controls/imagine/images/checkdelegate-indicator-partially-checked@3x.png diff --git a/src/imports/controls/imagine/images/checkdelegate-indicator-partially-checked@4x.png b/src/imports/controls/imagine/images/checkdelegate-indicator-partially-checked@4x.png Binary files differnew file mode 100644 index 00000000..400daa58 --- /dev/null +++ b/src/imports/controls/imagine/images/checkdelegate-indicator-partially-checked@4x.png diff --git a/src/imports/controls/imagine/images/checkdelegate-indicator-pressed.png b/src/imports/controls/imagine/images/checkdelegate-indicator-pressed.png Binary files differnew file mode 100644 index 00000000..e4f02db1 --- /dev/null +++ b/src/imports/controls/imagine/images/checkdelegate-indicator-pressed.png diff --git a/src/imports/controls/imagine/images/checkdelegate-indicator-pressed@2x.png b/src/imports/controls/imagine/images/checkdelegate-indicator-pressed@2x.png Binary files differnew file mode 100644 index 00000000..e2342547 --- /dev/null +++ b/src/imports/controls/imagine/images/checkdelegate-indicator-pressed@2x.png diff --git a/src/imports/controls/imagine/images/checkdelegate-indicator-pressed@3x.png b/src/imports/controls/imagine/images/checkdelegate-indicator-pressed@3x.png Binary files differnew file mode 100644 index 00000000..8ae24d75 --- /dev/null +++ b/src/imports/controls/imagine/images/checkdelegate-indicator-pressed@3x.png diff --git a/src/imports/controls/imagine/images/checkdelegate-indicator-pressed@4x.png b/src/imports/controls/imagine/images/checkdelegate-indicator-pressed@4x.png Binary files differnew file mode 100644 index 00000000..04a32370 --- /dev/null +++ b/src/imports/controls/imagine/images/checkdelegate-indicator-pressed@4x.png diff --git a/src/imports/controls/imagine/images/checkdelegate-indicator.png b/src/imports/controls/imagine/images/checkdelegate-indicator.png Binary files differnew file mode 100644 index 00000000..d7b4c6d1 --- /dev/null +++ b/src/imports/controls/imagine/images/checkdelegate-indicator.png diff --git a/src/imports/controls/imagine/images/checkdelegate-indicator@2x.png b/src/imports/controls/imagine/images/checkdelegate-indicator@2x.png Binary files differnew file mode 100644 index 00000000..0ae3fa8f --- /dev/null +++ b/src/imports/controls/imagine/images/checkdelegate-indicator@2x.png diff --git a/src/imports/controls/imagine/images/checkdelegate-indicator@3x.png b/src/imports/controls/imagine/images/checkdelegate-indicator@3x.png Binary files differnew file mode 100644 index 00000000..f8de503c --- /dev/null +++ b/src/imports/controls/imagine/images/checkdelegate-indicator@3x.png diff --git a/src/imports/controls/imagine/images/checkdelegate-indicator@4x.png b/src/imports/controls/imagine/images/checkdelegate-indicator@4x.png Binary files differnew file mode 100644 index 00000000..4f16042d --- /dev/null +++ b/src/imports/controls/imagine/images/checkdelegate-indicator@4x.png diff --git a/src/imports/controls/imagine/images/combobox-background-disabled.9.png b/src/imports/controls/imagine/images/combobox-background-disabled.9.png Binary files differnew file mode 100644 index 00000000..695ccd71 --- /dev/null +++ b/src/imports/controls/imagine/images/combobox-background-disabled.9.png diff --git a/src/imports/controls/imagine/images/combobox-background-disabled@2x.9.png b/src/imports/controls/imagine/images/combobox-background-disabled@2x.9.png Binary files differnew file mode 100644 index 00000000..10e8d681 --- /dev/null +++ b/src/imports/controls/imagine/images/combobox-background-disabled@2x.9.png diff --git a/src/imports/controls/imagine/images/combobox-background-disabled@3x.9.png b/src/imports/controls/imagine/images/combobox-background-disabled@3x.9.png Binary files differnew file mode 100644 index 00000000..6297b4cf --- /dev/null +++ b/src/imports/controls/imagine/images/combobox-background-disabled@3x.9.png diff --git a/src/imports/controls/imagine/images/combobox-background-disabled@4x.9.png b/src/imports/controls/imagine/images/combobox-background-disabled@4x.9.png Binary files differnew file mode 100644 index 00000000..715c6cb4 --- /dev/null +++ b/src/imports/controls/imagine/images/combobox-background-disabled@4x.9.png diff --git a/src/imports/controls/imagine/images/combobox-background-editable-disabled.9.png b/src/imports/controls/imagine/images/combobox-background-editable-disabled.9.png Binary files differnew file mode 100644 index 00000000..49335bde --- /dev/null +++ b/src/imports/controls/imagine/images/combobox-background-editable-disabled.9.png diff --git a/src/imports/controls/imagine/images/combobox-background-editable-disabled@2x.9.png b/src/imports/controls/imagine/images/combobox-background-editable-disabled@2x.9.png Binary files differnew file mode 100644 index 00000000..792ae742 --- /dev/null +++ b/src/imports/controls/imagine/images/combobox-background-editable-disabled@2x.9.png diff --git a/src/imports/controls/imagine/images/combobox-background-editable-disabled@3x.9.png b/src/imports/controls/imagine/images/combobox-background-editable-disabled@3x.9.png Binary files differnew file mode 100644 index 00000000..b391c100 --- /dev/null +++ b/src/imports/controls/imagine/images/combobox-background-editable-disabled@3x.9.png diff --git a/src/imports/controls/imagine/images/combobox-background-editable-disabled@4x.9.png b/src/imports/controls/imagine/images/combobox-background-editable-disabled@4x.9.png Binary files differnew file mode 100644 index 00000000..51641c3e --- /dev/null +++ b/src/imports/controls/imagine/images/combobox-background-editable-disabled@4x.9.png diff --git a/src/imports/controls/imagine/images/combobox-background-editable-focused.9.png b/src/imports/controls/imagine/images/combobox-background-editable-focused.9.png Binary files differnew file mode 100644 index 00000000..6710bf1e --- /dev/null +++ b/src/imports/controls/imagine/images/combobox-background-editable-focused.9.png diff --git a/src/imports/controls/imagine/images/combobox-background-editable-focused@2x.9.png b/src/imports/controls/imagine/images/combobox-background-editable-focused@2x.9.png Binary files differnew file mode 100644 index 00000000..d61bac87 --- /dev/null +++ b/src/imports/controls/imagine/images/combobox-background-editable-focused@2x.9.png diff --git a/src/imports/controls/imagine/images/combobox-background-editable-focused@3x.9.png b/src/imports/controls/imagine/images/combobox-background-editable-focused@3x.9.png Binary files differnew file mode 100644 index 00000000..380a6e37 --- /dev/null +++ b/src/imports/controls/imagine/images/combobox-background-editable-focused@3x.9.png diff --git a/src/imports/controls/imagine/images/combobox-background-editable-focused@4x.9.png b/src/imports/controls/imagine/images/combobox-background-editable-focused@4x.9.png Binary files differnew file mode 100644 index 00000000..7d2e2cbb --- /dev/null +++ b/src/imports/controls/imagine/images/combobox-background-editable-focused@4x.9.png diff --git a/src/imports/controls/imagine/images/combobox-background-editable.9.png b/src/imports/controls/imagine/images/combobox-background-editable.9.png Binary files differnew file mode 100644 index 00000000..f624616e --- /dev/null +++ b/src/imports/controls/imagine/images/combobox-background-editable.9.png diff --git a/src/imports/controls/imagine/images/combobox-background-editable@2x.9.png b/src/imports/controls/imagine/images/combobox-background-editable@2x.9.png Binary files differnew file mode 100644 index 00000000..fbfa7fea --- /dev/null +++ b/src/imports/controls/imagine/images/combobox-background-editable@2x.9.png diff --git a/src/imports/controls/imagine/images/combobox-background-editable@3x.9.png b/src/imports/controls/imagine/images/combobox-background-editable@3x.9.png Binary files differnew file mode 100644 index 00000000..d67dda03 --- /dev/null +++ b/src/imports/controls/imagine/images/combobox-background-editable@3x.9.png diff --git a/src/imports/controls/imagine/images/combobox-background-editable@4x.9.png b/src/imports/controls/imagine/images/combobox-background-editable@4x.9.png Binary files differnew file mode 100644 index 00000000..5a24717a --- /dev/null +++ b/src/imports/controls/imagine/images/combobox-background-editable@4x.9.png diff --git a/src/imports/controls/imagine/images/combobox-background-focused.9.png b/src/imports/controls/imagine/images/combobox-background-focused.9.png Binary files differnew file mode 100644 index 00000000..a44ad0a7 --- /dev/null +++ b/src/imports/controls/imagine/images/combobox-background-focused.9.png diff --git a/src/imports/controls/imagine/images/combobox-background-focused@2x.9.png b/src/imports/controls/imagine/images/combobox-background-focused@2x.9.png Binary files differnew file mode 100644 index 00000000..80c8c612 --- /dev/null +++ b/src/imports/controls/imagine/images/combobox-background-focused@2x.9.png diff --git a/src/imports/controls/imagine/images/combobox-background-focused@3x.9.png b/src/imports/controls/imagine/images/combobox-background-focused@3x.9.png Binary files differnew file mode 100644 index 00000000..dca2a6fe --- /dev/null +++ b/src/imports/controls/imagine/images/combobox-background-focused@3x.9.png diff --git a/src/imports/controls/imagine/images/combobox-background-focused@4x.9.png b/src/imports/controls/imagine/images/combobox-background-focused@4x.9.png Binary files differnew file mode 100644 index 00000000..f578a3bb --- /dev/null +++ b/src/imports/controls/imagine/images/combobox-background-focused@4x.9.png diff --git a/src/imports/controls/imagine/images/combobox-background-hovered.9.png b/src/imports/controls/imagine/images/combobox-background-hovered.9.png Binary files differnew file mode 100644 index 00000000..a44ad0a7 --- /dev/null +++ b/src/imports/controls/imagine/images/combobox-background-hovered.9.png diff --git a/src/imports/controls/imagine/images/combobox-background-hovered@2x.9.png b/src/imports/controls/imagine/images/combobox-background-hovered@2x.9.png Binary files differnew file mode 100644 index 00000000..80c8c612 --- /dev/null +++ b/src/imports/controls/imagine/images/combobox-background-hovered@2x.9.png diff --git a/src/imports/controls/imagine/images/combobox-background-hovered@3x.9.png b/src/imports/controls/imagine/images/combobox-background-hovered@3x.9.png Binary files differnew file mode 100644 index 00000000..dca2a6fe --- /dev/null +++ b/src/imports/controls/imagine/images/combobox-background-hovered@3x.9.png diff --git a/src/imports/controls/imagine/images/combobox-background-hovered@4x.9.png b/src/imports/controls/imagine/images/combobox-background-hovered@4x.9.png Binary files differnew file mode 100644 index 00000000..f578a3bb --- /dev/null +++ b/src/imports/controls/imagine/images/combobox-background-hovered@4x.9.png diff --git a/src/imports/controls/imagine/images/combobox-background-open.9.png b/src/imports/controls/imagine/images/combobox-background-open.9.png Binary files differnew file mode 100644 index 00000000..00dad7f0 --- /dev/null +++ b/src/imports/controls/imagine/images/combobox-background-open.9.png diff --git a/src/imports/controls/imagine/images/combobox-background-open@2x.9.png b/src/imports/controls/imagine/images/combobox-background-open@2x.9.png Binary files differnew file mode 100644 index 00000000..e7bff6c4 --- /dev/null +++ b/src/imports/controls/imagine/images/combobox-background-open@2x.9.png diff --git a/src/imports/controls/imagine/images/combobox-background-open@3x.9.png b/src/imports/controls/imagine/images/combobox-background-open@3x.9.png Binary files differnew file mode 100644 index 00000000..96f4d58b --- /dev/null +++ b/src/imports/controls/imagine/images/combobox-background-open@3x.9.png diff --git a/src/imports/controls/imagine/images/combobox-background-open@4x.9.png b/src/imports/controls/imagine/images/combobox-background-open@4x.9.png Binary files differnew file mode 100644 index 00000000..7c65290a --- /dev/null +++ b/src/imports/controls/imagine/images/combobox-background-open@4x.9.png diff --git a/src/imports/controls/imagine/images/combobox-background-pressed.9.png b/src/imports/controls/imagine/images/combobox-background-pressed.9.png Binary files differnew file mode 100644 index 00000000..00dad7f0 --- /dev/null +++ b/src/imports/controls/imagine/images/combobox-background-pressed.9.png diff --git a/src/imports/controls/imagine/images/combobox-background-pressed@2x.9.png b/src/imports/controls/imagine/images/combobox-background-pressed@2x.9.png Binary files differnew file mode 100644 index 00000000..e7bff6c4 --- /dev/null +++ b/src/imports/controls/imagine/images/combobox-background-pressed@2x.9.png diff --git a/src/imports/controls/imagine/images/combobox-background-pressed@3x.9.png b/src/imports/controls/imagine/images/combobox-background-pressed@3x.9.png Binary files differnew file mode 100644 index 00000000..96f4d58b --- /dev/null +++ b/src/imports/controls/imagine/images/combobox-background-pressed@3x.9.png diff --git a/src/imports/controls/imagine/images/combobox-background-pressed@4x.9.png b/src/imports/controls/imagine/images/combobox-background-pressed@4x.9.png Binary files differnew file mode 100644 index 00000000..7c65290a --- /dev/null +++ b/src/imports/controls/imagine/images/combobox-background-pressed@4x.9.png diff --git a/src/imports/controls/imagine/images/combobox-background.9.png b/src/imports/controls/imagine/images/combobox-background.9.png Binary files differnew file mode 100644 index 00000000..ff9be7f7 --- /dev/null +++ b/src/imports/controls/imagine/images/combobox-background.9.png diff --git a/src/imports/controls/imagine/images/combobox-background@2x.9.png b/src/imports/controls/imagine/images/combobox-background@2x.9.png Binary files differnew file mode 100644 index 00000000..bda0a45e --- /dev/null +++ b/src/imports/controls/imagine/images/combobox-background@2x.9.png diff --git a/src/imports/controls/imagine/images/combobox-background@3x.9.png b/src/imports/controls/imagine/images/combobox-background@3x.9.png Binary files differnew file mode 100644 index 00000000..c34beccf --- /dev/null +++ b/src/imports/controls/imagine/images/combobox-background@3x.9.png diff --git a/src/imports/controls/imagine/images/combobox-background@4x.9.png b/src/imports/controls/imagine/images/combobox-background@4x.9.png Binary files differnew file mode 100644 index 00000000..22d34bd5 --- /dev/null +++ b/src/imports/controls/imagine/images/combobox-background@4x.9.png diff --git a/src/imports/controls/imagine/images/combobox-indicator-disabled.png b/src/imports/controls/imagine/images/combobox-indicator-disabled.png Binary files differnew file mode 100644 index 00000000..cf4e0879 --- /dev/null +++ b/src/imports/controls/imagine/images/combobox-indicator-disabled.png diff --git a/src/imports/controls/imagine/images/combobox-indicator-disabled@2x.png b/src/imports/controls/imagine/images/combobox-indicator-disabled@2x.png Binary files differnew file mode 100644 index 00000000..74306ec7 --- /dev/null +++ b/src/imports/controls/imagine/images/combobox-indicator-disabled@2x.png diff --git a/src/imports/controls/imagine/images/combobox-indicator-disabled@3x.png b/src/imports/controls/imagine/images/combobox-indicator-disabled@3x.png Binary files differnew file mode 100644 index 00000000..d69fea5c --- /dev/null +++ b/src/imports/controls/imagine/images/combobox-indicator-disabled@3x.png diff --git a/src/imports/controls/imagine/images/combobox-indicator-disabled@4x.png b/src/imports/controls/imagine/images/combobox-indicator-disabled@4x.png Binary files differnew file mode 100644 index 00000000..9e63c449 --- /dev/null +++ b/src/imports/controls/imagine/images/combobox-indicator-disabled@4x.png diff --git a/src/imports/controls/imagine/images/combobox-indicator-editable-disabled.png b/src/imports/controls/imagine/images/combobox-indicator-editable-disabled.png Binary files differnew file mode 100644 index 00000000..89f4efa2 --- /dev/null +++ b/src/imports/controls/imagine/images/combobox-indicator-editable-disabled.png diff --git a/src/imports/controls/imagine/images/combobox-indicator-editable-disabled@2x.png b/src/imports/controls/imagine/images/combobox-indicator-editable-disabled@2x.png Binary files differnew file mode 100644 index 00000000..e50ed17b --- /dev/null +++ b/src/imports/controls/imagine/images/combobox-indicator-editable-disabled@2x.png diff --git a/src/imports/controls/imagine/images/combobox-indicator-editable-disabled@3x.png b/src/imports/controls/imagine/images/combobox-indicator-editable-disabled@3x.png Binary files differnew file mode 100644 index 00000000..c82a5b2a --- /dev/null +++ b/src/imports/controls/imagine/images/combobox-indicator-editable-disabled@3x.png diff --git a/src/imports/controls/imagine/images/combobox-indicator-editable-disabled@4x.png b/src/imports/controls/imagine/images/combobox-indicator-editable-disabled@4x.png Binary files differnew file mode 100644 index 00000000..6415ef59 --- /dev/null +++ b/src/imports/controls/imagine/images/combobox-indicator-editable-disabled@4x.png diff --git a/src/imports/controls/imagine/images/combobox-indicator-editable-mirrored-disabled.png b/src/imports/controls/imagine/images/combobox-indicator-editable-mirrored-disabled.png Binary files differnew file mode 100644 index 00000000..f4e9b366 --- /dev/null +++ b/src/imports/controls/imagine/images/combobox-indicator-editable-mirrored-disabled.png diff --git a/src/imports/controls/imagine/images/combobox-indicator-editable-mirrored-disabled@2x.png b/src/imports/controls/imagine/images/combobox-indicator-editable-mirrored-disabled@2x.png Binary files differnew file mode 100644 index 00000000..cdbc9773 --- /dev/null +++ b/src/imports/controls/imagine/images/combobox-indicator-editable-mirrored-disabled@2x.png diff --git a/src/imports/controls/imagine/images/combobox-indicator-editable-mirrored-disabled@3x.png b/src/imports/controls/imagine/images/combobox-indicator-editable-mirrored-disabled@3x.png Binary files differnew file mode 100644 index 00000000..fbb520b0 --- /dev/null +++ b/src/imports/controls/imagine/images/combobox-indicator-editable-mirrored-disabled@3x.png diff --git a/src/imports/controls/imagine/images/combobox-indicator-editable-mirrored-disabled@4x.png b/src/imports/controls/imagine/images/combobox-indicator-editable-mirrored-disabled@4x.png Binary files differnew file mode 100644 index 00000000..da6d1c24 --- /dev/null +++ b/src/imports/controls/imagine/images/combobox-indicator-editable-mirrored-disabled@4x.png diff --git a/src/imports/controls/imagine/images/combobox-indicator-editable-mirrored.png b/src/imports/controls/imagine/images/combobox-indicator-editable-mirrored.png Binary files differnew file mode 100644 index 00000000..13a7a520 --- /dev/null +++ b/src/imports/controls/imagine/images/combobox-indicator-editable-mirrored.png diff --git a/src/imports/controls/imagine/images/combobox-indicator-editable-mirrored@2x.png b/src/imports/controls/imagine/images/combobox-indicator-editable-mirrored@2x.png Binary files differnew file mode 100644 index 00000000..c8f74b13 --- /dev/null +++ b/src/imports/controls/imagine/images/combobox-indicator-editable-mirrored@2x.png diff --git a/src/imports/controls/imagine/images/combobox-indicator-editable-mirrored@3x.png b/src/imports/controls/imagine/images/combobox-indicator-editable-mirrored@3x.png Binary files differnew file mode 100644 index 00000000..a330edf3 --- /dev/null +++ b/src/imports/controls/imagine/images/combobox-indicator-editable-mirrored@3x.png diff --git a/src/imports/controls/imagine/images/combobox-indicator-editable-mirrored@4x.png b/src/imports/controls/imagine/images/combobox-indicator-editable-mirrored@4x.png Binary files differnew file mode 100644 index 00000000..2acedf54 --- /dev/null +++ b/src/imports/controls/imagine/images/combobox-indicator-editable-mirrored@4x.png diff --git a/src/imports/controls/imagine/images/combobox-indicator-editable.png b/src/imports/controls/imagine/images/combobox-indicator-editable.png Binary files differnew file mode 100644 index 00000000..a3899a11 --- /dev/null +++ b/src/imports/controls/imagine/images/combobox-indicator-editable.png diff --git a/src/imports/controls/imagine/images/combobox-indicator-editable@2x.png b/src/imports/controls/imagine/images/combobox-indicator-editable@2x.png Binary files differnew file mode 100644 index 00000000..2cec8359 --- /dev/null +++ b/src/imports/controls/imagine/images/combobox-indicator-editable@2x.png diff --git a/src/imports/controls/imagine/images/combobox-indicator-editable@3x.png b/src/imports/controls/imagine/images/combobox-indicator-editable@3x.png Binary files differnew file mode 100644 index 00000000..23911865 --- /dev/null +++ b/src/imports/controls/imagine/images/combobox-indicator-editable@3x.png diff --git a/src/imports/controls/imagine/images/combobox-indicator-editable@4x.png b/src/imports/controls/imagine/images/combobox-indicator-editable@4x.png Binary files differnew file mode 100644 index 00000000..8095e11b --- /dev/null +++ b/src/imports/controls/imagine/images/combobox-indicator-editable@4x.png diff --git a/src/imports/controls/imagine/images/combobox-indicator.png b/src/imports/controls/imagine/images/combobox-indicator.png Binary files differnew file mode 100644 index 00000000..4859714d --- /dev/null +++ b/src/imports/controls/imagine/images/combobox-indicator.png diff --git a/src/imports/controls/imagine/images/combobox-indicator@2x.png b/src/imports/controls/imagine/images/combobox-indicator@2x.png Binary files differnew file mode 100644 index 00000000..d492a9d4 --- /dev/null +++ b/src/imports/controls/imagine/images/combobox-indicator@2x.png diff --git a/src/imports/controls/imagine/images/combobox-indicator@3x.png b/src/imports/controls/imagine/images/combobox-indicator@3x.png Binary files differnew file mode 100644 index 00000000..bf2e4f78 --- /dev/null +++ b/src/imports/controls/imagine/images/combobox-indicator@3x.png diff --git a/src/imports/controls/imagine/images/combobox-indicator@4x.png b/src/imports/controls/imagine/images/combobox-indicator@4x.png Binary files differnew file mode 100644 index 00000000..5c107a07 --- /dev/null +++ b/src/imports/controls/imagine/images/combobox-indicator@4x.png diff --git a/src/imports/controls/imagine/images/combobox-popup.9.png b/src/imports/controls/imagine/images/combobox-popup.9.png Binary files differnew file mode 100644 index 00000000..646419d1 --- /dev/null +++ b/src/imports/controls/imagine/images/combobox-popup.9.png diff --git a/src/imports/controls/imagine/images/combobox-popup@2x.9.png b/src/imports/controls/imagine/images/combobox-popup@2x.9.png Binary files differnew file mode 100644 index 00000000..9bce26ac --- /dev/null +++ b/src/imports/controls/imagine/images/combobox-popup@2x.9.png diff --git a/src/imports/controls/imagine/images/combobox-popup@3x.9.png b/src/imports/controls/imagine/images/combobox-popup@3x.9.png Binary files differnew file mode 100644 index 00000000..1857d8e0 --- /dev/null +++ b/src/imports/controls/imagine/images/combobox-popup@3x.9.png diff --git a/src/imports/controls/imagine/images/combobox-popup@4x.9.png b/src/imports/controls/imagine/images/combobox-popup@4x.9.png Binary files differnew file mode 100644 index 00000000..b2132f49 --- /dev/null +++ b/src/imports/controls/imagine/images/combobox-popup@4x.9.png diff --git a/src/imports/controls/imagine/images/delaybutton-background-checked-focused.9.png b/src/imports/controls/imagine/images/delaybutton-background-checked-focused.9.png Binary files differnew file mode 100644 index 00000000..829d68a9 --- /dev/null +++ b/src/imports/controls/imagine/images/delaybutton-background-checked-focused.9.png diff --git a/src/imports/controls/imagine/images/delaybutton-background-checked-focused@2x.9.png b/src/imports/controls/imagine/images/delaybutton-background-checked-focused@2x.9.png Binary files differnew file mode 100644 index 00000000..bf375d43 --- /dev/null +++ b/src/imports/controls/imagine/images/delaybutton-background-checked-focused@2x.9.png diff --git a/src/imports/controls/imagine/images/delaybutton-background-checked-focused@3x.9.png b/src/imports/controls/imagine/images/delaybutton-background-checked-focused@3x.9.png Binary files differnew file mode 100644 index 00000000..8759c337 --- /dev/null +++ b/src/imports/controls/imagine/images/delaybutton-background-checked-focused@3x.9.png diff --git a/src/imports/controls/imagine/images/delaybutton-background-checked-focused@4x.9.png b/src/imports/controls/imagine/images/delaybutton-background-checked-focused@4x.9.png Binary files differnew file mode 100644 index 00000000..7b8f3616 --- /dev/null +++ b/src/imports/controls/imagine/images/delaybutton-background-checked-focused@4x.9.png diff --git a/src/imports/controls/imagine/images/delaybutton-background-checked-hovered.9.png b/src/imports/controls/imagine/images/delaybutton-background-checked-hovered.9.png Binary files differnew file mode 100644 index 00000000..829d68a9 --- /dev/null +++ b/src/imports/controls/imagine/images/delaybutton-background-checked-hovered.9.png diff --git a/src/imports/controls/imagine/images/delaybutton-background-checked-hovered@2x.9.png b/src/imports/controls/imagine/images/delaybutton-background-checked-hovered@2x.9.png Binary files differnew file mode 100644 index 00000000..bf375d43 --- /dev/null +++ b/src/imports/controls/imagine/images/delaybutton-background-checked-hovered@2x.9.png diff --git a/src/imports/controls/imagine/images/delaybutton-background-checked-hovered@3x.9.png b/src/imports/controls/imagine/images/delaybutton-background-checked-hovered@3x.9.png Binary files differnew file mode 100644 index 00000000..8759c337 --- /dev/null +++ b/src/imports/controls/imagine/images/delaybutton-background-checked-hovered@3x.9.png diff --git a/src/imports/controls/imagine/images/delaybutton-background-checked-hovered@4x.9.png b/src/imports/controls/imagine/images/delaybutton-background-checked-hovered@4x.9.png Binary files differnew file mode 100644 index 00000000..7b8f3616 --- /dev/null +++ b/src/imports/controls/imagine/images/delaybutton-background-checked-hovered@4x.9.png diff --git a/src/imports/controls/imagine/images/delaybutton-background-checked.9.png b/src/imports/controls/imagine/images/delaybutton-background-checked.9.png Binary files differnew file mode 100644 index 00000000..3ca06e6c --- /dev/null +++ b/src/imports/controls/imagine/images/delaybutton-background-checked.9.png diff --git a/src/imports/controls/imagine/images/delaybutton-background-checked@2x.9.png b/src/imports/controls/imagine/images/delaybutton-background-checked@2x.9.png Binary files differnew file mode 100644 index 00000000..0afc3dea --- /dev/null +++ b/src/imports/controls/imagine/images/delaybutton-background-checked@2x.9.png diff --git a/src/imports/controls/imagine/images/delaybutton-background-checked@3x.9.png b/src/imports/controls/imagine/images/delaybutton-background-checked@3x.9.png Binary files differnew file mode 100644 index 00000000..348687ad --- /dev/null +++ b/src/imports/controls/imagine/images/delaybutton-background-checked@3x.9.png diff --git a/src/imports/controls/imagine/images/delaybutton-background-checked@4x.9.png b/src/imports/controls/imagine/images/delaybutton-background-checked@4x.9.png Binary files differnew file mode 100644 index 00000000..4dff0ba8 --- /dev/null +++ b/src/imports/controls/imagine/images/delaybutton-background-checked@4x.9.png diff --git a/src/imports/controls/imagine/images/delaybutton-background-disabled-checked.9.png b/src/imports/controls/imagine/images/delaybutton-background-disabled-checked.9.png Binary files differnew file mode 100644 index 00000000..c06fd7cc --- /dev/null +++ b/src/imports/controls/imagine/images/delaybutton-background-disabled-checked.9.png diff --git a/src/imports/controls/imagine/images/delaybutton-background-disabled-checked@2x.9.png b/src/imports/controls/imagine/images/delaybutton-background-disabled-checked@2x.9.png Binary files differnew file mode 100644 index 00000000..b86a13cc --- /dev/null +++ b/src/imports/controls/imagine/images/delaybutton-background-disabled-checked@2x.9.png diff --git a/src/imports/controls/imagine/images/delaybutton-background-disabled-checked@3x.9.png b/src/imports/controls/imagine/images/delaybutton-background-disabled-checked@3x.9.png Binary files differnew file mode 100644 index 00000000..7fa4dd83 --- /dev/null +++ b/src/imports/controls/imagine/images/delaybutton-background-disabled-checked@3x.9.png diff --git a/src/imports/controls/imagine/images/delaybutton-background-disabled-checked@4x.9.png b/src/imports/controls/imagine/images/delaybutton-background-disabled-checked@4x.9.png Binary files differnew file mode 100644 index 00000000..676bb0dd --- /dev/null +++ b/src/imports/controls/imagine/images/delaybutton-background-disabled-checked@4x.9.png diff --git a/src/imports/controls/imagine/images/delaybutton-background-disabled.9.png b/src/imports/controls/imagine/images/delaybutton-background-disabled.9.png Binary files differnew file mode 100644 index 00000000..c06fd7cc --- /dev/null +++ b/src/imports/controls/imagine/images/delaybutton-background-disabled.9.png diff --git a/src/imports/controls/imagine/images/delaybutton-background-disabled@2x.9.png b/src/imports/controls/imagine/images/delaybutton-background-disabled@2x.9.png Binary files differnew file mode 100644 index 00000000..b86a13cc --- /dev/null +++ b/src/imports/controls/imagine/images/delaybutton-background-disabled@2x.9.png diff --git a/src/imports/controls/imagine/images/delaybutton-background-disabled@3x.9.png b/src/imports/controls/imagine/images/delaybutton-background-disabled@3x.9.png Binary files differnew file mode 100644 index 00000000..7fa4dd83 --- /dev/null +++ b/src/imports/controls/imagine/images/delaybutton-background-disabled@3x.9.png diff --git a/src/imports/controls/imagine/images/delaybutton-background-disabled@4x.9.png b/src/imports/controls/imagine/images/delaybutton-background-disabled@4x.9.png Binary files differnew file mode 100644 index 00000000..676bb0dd --- /dev/null +++ b/src/imports/controls/imagine/images/delaybutton-background-disabled@4x.9.png diff --git a/src/imports/controls/imagine/images/delaybutton-background-focused.9.png b/src/imports/controls/imagine/images/delaybutton-background-focused.9.png Binary files differnew file mode 100644 index 00000000..5f304316 --- /dev/null +++ b/src/imports/controls/imagine/images/delaybutton-background-focused.9.png diff --git a/src/imports/controls/imagine/images/delaybutton-background-focused@2x.9.png b/src/imports/controls/imagine/images/delaybutton-background-focused@2x.9.png Binary files differnew file mode 100644 index 00000000..eaf07709 --- /dev/null +++ b/src/imports/controls/imagine/images/delaybutton-background-focused@2x.9.png diff --git a/src/imports/controls/imagine/images/delaybutton-background-focused@3x.9.png b/src/imports/controls/imagine/images/delaybutton-background-focused@3x.9.png Binary files differnew file mode 100644 index 00000000..405fe421 --- /dev/null +++ b/src/imports/controls/imagine/images/delaybutton-background-focused@3x.9.png diff --git a/src/imports/controls/imagine/images/delaybutton-background-focused@4x.9.png b/src/imports/controls/imagine/images/delaybutton-background-focused@4x.9.png Binary files differnew file mode 100644 index 00000000..f5582735 --- /dev/null +++ b/src/imports/controls/imagine/images/delaybutton-background-focused@4x.9.png diff --git a/src/imports/controls/imagine/images/delaybutton-background-hovered.9.png b/src/imports/controls/imagine/images/delaybutton-background-hovered.9.png Binary files differnew file mode 100644 index 00000000..04573ce4 --- /dev/null +++ b/src/imports/controls/imagine/images/delaybutton-background-hovered.9.png diff --git a/src/imports/controls/imagine/images/delaybutton-background-hovered@2x.9.png b/src/imports/controls/imagine/images/delaybutton-background-hovered@2x.9.png Binary files differnew file mode 100644 index 00000000..ad25d378 --- /dev/null +++ b/src/imports/controls/imagine/images/delaybutton-background-hovered@2x.9.png diff --git a/src/imports/controls/imagine/images/delaybutton-background-hovered@3x.9.png b/src/imports/controls/imagine/images/delaybutton-background-hovered@3x.9.png Binary files differnew file mode 100644 index 00000000..2f599e72 --- /dev/null +++ b/src/imports/controls/imagine/images/delaybutton-background-hovered@3x.9.png diff --git a/src/imports/controls/imagine/images/delaybutton-background-hovered@4x.9.png b/src/imports/controls/imagine/images/delaybutton-background-hovered@4x.9.png Binary files differnew file mode 100644 index 00000000..6ac51521 --- /dev/null +++ b/src/imports/controls/imagine/images/delaybutton-background-hovered@4x.9.png diff --git a/src/imports/controls/imagine/images/delaybutton-background-pressed.9.png b/src/imports/controls/imagine/images/delaybutton-background-pressed.9.png Binary files differnew file mode 100644 index 00000000..3ca06e6c --- /dev/null +++ b/src/imports/controls/imagine/images/delaybutton-background-pressed.9.png diff --git a/src/imports/controls/imagine/images/delaybutton-background-pressed@2x.9.png b/src/imports/controls/imagine/images/delaybutton-background-pressed@2x.9.png Binary files differnew file mode 100644 index 00000000..0afc3dea --- /dev/null +++ b/src/imports/controls/imagine/images/delaybutton-background-pressed@2x.9.png diff --git a/src/imports/controls/imagine/images/delaybutton-background-pressed@3x.9.png b/src/imports/controls/imagine/images/delaybutton-background-pressed@3x.9.png Binary files differnew file mode 100644 index 00000000..348687ad --- /dev/null +++ b/src/imports/controls/imagine/images/delaybutton-background-pressed@3x.9.png diff --git a/src/imports/controls/imagine/images/delaybutton-background-pressed@4x.9.png b/src/imports/controls/imagine/images/delaybutton-background-pressed@4x.9.png Binary files differnew file mode 100644 index 00000000..4dff0ba8 --- /dev/null +++ b/src/imports/controls/imagine/images/delaybutton-background-pressed@4x.9.png diff --git a/src/imports/controls/imagine/images/delaybutton-background.9.png b/src/imports/controls/imagine/images/delaybutton-background.9.png Binary files differnew file mode 100644 index 00000000..053da917 --- /dev/null +++ b/src/imports/controls/imagine/images/delaybutton-background.9.png diff --git a/src/imports/controls/imagine/images/delaybutton-background@2x.9.png b/src/imports/controls/imagine/images/delaybutton-background@2x.9.png Binary files differnew file mode 100644 index 00000000..471940f1 --- /dev/null +++ b/src/imports/controls/imagine/images/delaybutton-background@2x.9.png diff --git a/src/imports/controls/imagine/images/delaybutton-background@3x.9.png b/src/imports/controls/imagine/images/delaybutton-background@3x.9.png Binary files differnew file mode 100644 index 00000000..06155e8a --- /dev/null +++ b/src/imports/controls/imagine/images/delaybutton-background@3x.9.png diff --git a/src/imports/controls/imagine/images/delaybutton-background@4x.9.png b/src/imports/controls/imagine/images/delaybutton-background@4x.9.png Binary files differnew file mode 100644 index 00000000..7d776e51 --- /dev/null +++ b/src/imports/controls/imagine/images/delaybutton-background@4x.9.png diff --git a/src/imports/controls/imagine/images/delaybutton-mask.9.png b/src/imports/controls/imagine/images/delaybutton-mask.9.png Binary files differnew file mode 100644 index 00000000..06864c1b --- /dev/null +++ b/src/imports/controls/imagine/images/delaybutton-mask.9.png diff --git a/src/imports/controls/imagine/images/delaybutton-mask@2x.9.png b/src/imports/controls/imagine/images/delaybutton-mask@2x.9.png Binary files differnew file mode 100644 index 00000000..808d25d3 --- /dev/null +++ b/src/imports/controls/imagine/images/delaybutton-mask@2x.9.png diff --git a/src/imports/controls/imagine/images/delaybutton-mask@3x.9.png b/src/imports/controls/imagine/images/delaybutton-mask@3x.9.png Binary files differnew file mode 100644 index 00000000..4efdcd05 --- /dev/null +++ b/src/imports/controls/imagine/images/delaybutton-mask@3x.9.png diff --git a/src/imports/controls/imagine/images/delaybutton-mask@4x.9.png b/src/imports/controls/imagine/images/delaybutton-mask@4x.9.png Binary files differnew file mode 100644 index 00000000..ec246a02 --- /dev/null +++ b/src/imports/controls/imagine/images/delaybutton-mask@4x.9.png diff --git a/src/imports/controls/imagine/images/delaybutton-progress-disabled.9.png b/src/imports/controls/imagine/images/delaybutton-progress-disabled.9.png Binary files differnew file mode 100644 index 00000000..bdf56055 --- /dev/null +++ b/src/imports/controls/imagine/images/delaybutton-progress-disabled.9.png diff --git a/src/imports/controls/imagine/images/delaybutton-progress-disabled@2x.9.png b/src/imports/controls/imagine/images/delaybutton-progress-disabled@2x.9.png Binary files differnew file mode 100644 index 00000000..a58c93a1 --- /dev/null +++ b/src/imports/controls/imagine/images/delaybutton-progress-disabled@2x.9.png diff --git a/src/imports/controls/imagine/images/delaybutton-progress-disabled@3x.9.png b/src/imports/controls/imagine/images/delaybutton-progress-disabled@3x.9.png Binary files differnew file mode 100644 index 00000000..259f68ea --- /dev/null +++ b/src/imports/controls/imagine/images/delaybutton-progress-disabled@3x.9.png diff --git a/src/imports/controls/imagine/images/delaybutton-progress-disabled@4x.9.png b/src/imports/controls/imagine/images/delaybutton-progress-disabled@4x.9.png Binary files differnew file mode 100644 index 00000000..a075d444 --- /dev/null +++ b/src/imports/controls/imagine/images/delaybutton-progress-disabled@4x.9.png diff --git a/src/imports/controls/imagine/images/delaybutton-progress.9.png b/src/imports/controls/imagine/images/delaybutton-progress.9.png Binary files differnew file mode 100644 index 00000000..0848cbcd --- /dev/null +++ b/src/imports/controls/imagine/images/delaybutton-progress.9.png diff --git a/src/imports/controls/imagine/images/delaybutton-progress@2x.9.png b/src/imports/controls/imagine/images/delaybutton-progress@2x.9.png Binary files differnew file mode 100644 index 00000000..1a376399 --- /dev/null +++ b/src/imports/controls/imagine/images/delaybutton-progress@2x.9.png diff --git a/src/imports/controls/imagine/images/delaybutton-progress@3x.9.png b/src/imports/controls/imagine/images/delaybutton-progress@3x.9.png Binary files differnew file mode 100644 index 00000000..704ab464 --- /dev/null +++ b/src/imports/controls/imagine/images/delaybutton-progress@3x.9.png diff --git a/src/imports/controls/imagine/images/delaybutton-progress@4x.9.png b/src/imports/controls/imagine/images/delaybutton-progress@4x.9.png Binary files differnew file mode 100644 index 00000000..ec568ce0 --- /dev/null +++ b/src/imports/controls/imagine/images/delaybutton-progress@4x.9.png diff --git a/src/imports/controls/imagine/images/dial-background-disabled.png b/src/imports/controls/imagine/images/dial-background-disabled.png Binary files differnew file mode 100644 index 00000000..eaea9591 --- /dev/null +++ b/src/imports/controls/imagine/images/dial-background-disabled.png diff --git a/src/imports/controls/imagine/images/dial-background-disabled@2x.png b/src/imports/controls/imagine/images/dial-background-disabled@2x.png Binary files differnew file mode 100644 index 00000000..de2d3fbe --- /dev/null +++ b/src/imports/controls/imagine/images/dial-background-disabled@2x.png diff --git a/src/imports/controls/imagine/images/dial-background-disabled@3x.png b/src/imports/controls/imagine/images/dial-background-disabled@3x.png Binary files differnew file mode 100644 index 00000000..15d53353 --- /dev/null +++ b/src/imports/controls/imagine/images/dial-background-disabled@3x.png diff --git a/src/imports/controls/imagine/images/dial-background-disabled@4x.png b/src/imports/controls/imagine/images/dial-background-disabled@4x.png Binary files differnew file mode 100644 index 00000000..d6708c83 --- /dev/null +++ b/src/imports/controls/imagine/images/dial-background-disabled@4x.png diff --git a/src/imports/controls/imagine/images/dial-background-focused.png b/src/imports/controls/imagine/images/dial-background-focused.png Binary files differnew file mode 100644 index 00000000..c7c4f8ad --- /dev/null +++ b/src/imports/controls/imagine/images/dial-background-focused.png diff --git a/src/imports/controls/imagine/images/dial-background-focused@2x.png b/src/imports/controls/imagine/images/dial-background-focused@2x.png Binary files differnew file mode 100644 index 00000000..01febba4 --- /dev/null +++ b/src/imports/controls/imagine/images/dial-background-focused@2x.png diff --git a/src/imports/controls/imagine/images/dial-background-focused@3x.png b/src/imports/controls/imagine/images/dial-background-focused@3x.png Binary files differnew file mode 100644 index 00000000..2f4533ca --- /dev/null +++ b/src/imports/controls/imagine/images/dial-background-focused@3x.png diff --git a/src/imports/controls/imagine/images/dial-background-focused@4x.png b/src/imports/controls/imagine/images/dial-background-focused@4x.png Binary files differnew file mode 100644 index 00000000..806a784d --- /dev/null +++ b/src/imports/controls/imagine/images/dial-background-focused@4x.png diff --git a/src/imports/controls/imagine/images/dial-background.png b/src/imports/controls/imagine/images/dial-background.png Binary files differnew file mode 100644 index 00000000..7836be2d --- /dev/null +++ b/src/imports/controls/imagine/images/dial-background.png diff --git a/src/imports/controls/imagine/images/dial-background@2x.png b/src/imports/controls/imagine/images/dial-background@2x.png Binary files differnew file mode 100644 index 00000000..b80fb882 --- /dev/null +++ b/src/imports/controls/imagine/images/dial-background@2x.png diff --git a/src/imports/controls/imagine/images/dial-background@3x.png b/src/imports/controls/imagine/images/dial-background@3x.png Binary files differnew file mode 100644 index 00000000..76dd0ba5 --- /dev/null +++ b/src/imports/controls/imagine/images/dial-background@3x.png diff --git a/src/imports/controls/imagine/images/dial-background@4x.png b/src/imports/controls/imagine/images/dial-background@4x.png Binary files differnew file mode 100644 index 00000000..774d91f9 --- /dev/null +++ b/src/imports/controls/imagine/images/dial-background@4x.png diff --git a/src/imports/controls/imagine/images/dial-handle-disabled.png b/src/imports/controls/imagine/images/dial-handle-disabled.png Binary files differnew file mode 100644 index 00000000..e7ecf615 --- /dev/null +++ b/src/imports/controls/imagine/images/dial-handle-disabled.png diff --git a/src/imports/controls/imagine/images/dial-handle-disabled@2x.png b/src/imports/controls/imagine/images/dial-handle-disabled@2x.png Binary files differnew file mode 100644 index 00000000..5bf4a433 --- /dev/null +++ b/src/imports/controls/imagine/images/dial-handle-disabled@2x.png diff --git a/src/imports/controls/imagine/images/dial-handle-disabled@3x.png b/src/imports/controls/imagine/images/dial-handle-disabled@3x.png Binary files differnew file mode 100644 index 00000000..8fc3d43c --- /dev/null +++ b/src/imports/controls/imagine/images/dial-handle-disabled@3x.png diff --git a/src/imports/controls/imagine/images/dial-handle-disabled@4x.png b/src/imports/controls/imagine/images/dial-handle-disabled@4x.png Binary files differnew file mode 100644 index 00000000..6356c101 --- /dev/null +++ b/src/imports/controls/imagine/images/dial-handle-disabled@4x.png diff --git a/src/imports/controls/imagine/images/dial-handle-focused-hovered.png b/src/imports/controls/imagine/images/dial-handle-focused-hovered.png Binary files differnew file mode 100644 index 00000000..a64faa7b --- /dev/null +++ b/src/imports/controls/imagine/images/dial-handle-focused-hovered.png diff --git a/src/imports/controls/imagine/images/dial-handle-focused-hovered@2x.png b/src/imports/controls/imagine/images/dial-handle-focused-hovered@2x.png Binary files differnew file mode 100644 index 00000000..3fb2b8d4 --- /dev/null +++ b/src/imports/controls/imagine/images/dial-handle-focused-hovered@2x.png diff --git a/src/imports/controls/imagine/images/dial-handle-focused-hovered@3x.png b/src/imports/controls/imagine/images/dial-handle-focused-hovered@3x.png Binary files differnew file mode 100644 index 00000000..05d5b798 --- /dev/null +++ b/src/imports/controls/imagine/images/dial-handle-focused-hovered@3x.png diff --git a/src/imports/controls/imagine/images/dial-handle-focused-hovered@4x.png b/src/imports/controls/imagine/images/dial-handle-focused-hovered@4x.png Binary files differnew file mode 100644 index 00000000..eecba9d6 --- /dev/null +++ b/src/imports/controls/imagine/images/dial-handle-focused-hovered@4x.png diff --git a/src/imports/controls/imagine/images/dial-handle-focused-pressed.png b/src/imports/controls/imagine/images/dial-handle-focused-pressed.png Binary files differnew file mode 100644 index 00000000..e310a90d --- /dev/null +++ b/src/imports/controls/imagine/images/dial-handle-focused-pressed.png diff --git a/src/imports/controls/imagine/images/dial-handle-focused-pressed@2x.png b/src/imports/controls/imagine/images/dial-handle-focused-pressed@2x.png Binary files differnew file mode 100644 index 00000000..770572a8 --- /dev/null +++ b/src/imports/controls/imagine/images/dial-handle-focused-pressed@2x.png diff --git a/src/imports/controls/imagine/images/dial-handle-focused-pressed@3x.png b/src/imports/controls/imagine/images/dial-handle-focused-pressed@3x.png Binary files differnew file mode 100644 index 00000000..b58f1909 --- /dev/null +++ b/src/imports/controls/imagine/images/dial-handle-focused-pressed@3x.png diff --git a/src/imports/controls/imagine/images/dial-handle-focused-pressed@4x.png b/src/imports/controls/imagine/images/dial-handle-focused-pressed@4x.png Binary files differnew file mode 100644 index 00000000..2c71a0ac --- /dev/null +++ b/src/imports/controls/imagine/images/dial-handle-focused-pressed@4x.png diff --git a/src/imports/controls/imagine/images/dial-handle-focused.png b/src/imports/controls/imagine/images/dial-handle-focused.png Binary files differnew file mode 100644 index 00000000..21969bc5 --- /dev/null +++ b/src/imports/controls/imagine/images/dial-handle-focused.png diff --git a/src/imports/controls/imagine/images/dial-handle-focused@2x.png b/src/imports/controls/imagine/images/dial-handle-focused@2x.png Binary files differnew file mode 100644 index 00000000..753b6ce7 --- /dev/null +++ b/src/imports/controls/imagine/images/dial-handle-focused@2x.png diff --git a/src/imports/controls/imagine/images/dial-handle-focused@3x.png b/src/imports/controls/imagine/images/dial-handle-focused@3x.png Binary files differnew file mode 100644 index 00000000..00232d38 --- /dev/null +++ b/src/imports/controls/imagine/images/dial-handle-focused@3x.png diff --git a/src/imports/controls/imagine/images/dial-handle-focused@4x.png b/src/imports/controls/imagine/images/dial-handle-focused@4x.png Binary files differnew file mode 100644 index 00000000..834850d6 --- /dev/null +++ b/src/imports/controls/imagine/images/dial-handle-focused@4x.png diff --git a/src/imports/controls/imagine/images/dial-handle-hovered.png b/src/imports/controls/imagine/images/dial-handle-hovered.png Binary files differnew file mode 100644 index 00000000..ad76fda7 --- /dev/null +++ b/src/imports/controls/imagine/images/dial-handle-hovered.png diff --git a/src/imports/controls/imagine/images/dial-handle-hovered@2x.png b/src/imports/controls/imagine/images/dial-handle-hovered@2x.png Binary files differnew file mode 100644 index 00000000..215097a3 --- /dev/null +++ b/src/imports/controls/imagine/images/dial-handle-hovered@2x.png diff --git a/src/imports/controls/imagine/images/dial-handle-hovered@3x.png b/src/imports/controls/imagine/images/dial-handle-hovered@3x.png Binary files differnew file mode 100644 index 00000000..6653f555 --- /dev/null +++ b/src/imports/controls/imagine/images/dial-handle-hovered@3x.png diff --git a/src/imports/controls/imagine/images/dial-handle-hovered@4x.png b/src/imports/controls/imagine/images/dial-handle-hovered@4x.png Binary files differnew file mode 100644 index 00000000..213e27b3 --- /dev/null +++ b/src/imports/controls/imagine/images/dial-handle-hovered@4x.png diff --git a/src/imports/controls/imagine/images/dial-handle-pressed.png b/src/imports/controls/imagine/images/dial-handle-pressed.png Binary files differnew file mode 100644 index 00000000..9f8619c0 --- /dev/null +++ b/src/imports/controls/imagine/images/dial-handle-pressed.png diff --git a/src/imports/controls/imagine/images/dial-handle-pressed@2x.png b/src/imports/controls/imagine/images/dial-handle-pressed@2x.png Binary files differnew file mode 100644 index 00000000..78a9b9fe --- /dev/null +++ b/src/imports/controls/imagine/images/dial-handle-pressed@2x.png diff --git a/src/imports/controls/imagine/images/dial-handle-pressed@3x.png b/src/imports/controls/imagine/images/dial-handle-pressed@3x.png Binary files differnew file mode 100644 index 00000000..0d6d1e7e --- /dev/null +++ b/src/imports/controls/imagine/images/dial-handle-pressed@3x.png diff --git a/src/imports/controls/imagine/images/dial-handle-pressed@4x.png b/src/imports/controls/imagine/images/dial-handle-pressed@4x.png Binary files differnew file mode 100644 index 00000000..1673343a --- /dev/null +++ b/src/imports/controls/imagine/images/dial-handle-pressed@4x.png diff --git a/src/imports/controls/imagine/images/dial-handle.png b/src/imports/controls/imagine/images/dial-handle.png Binary files differnew file mode 100644 index 00000000..b4ad6b9a --- /dev/null +++ b/src/imports/controls/imagine/images/dial-handle.png diff --git a/src/imports/controls/imagine/images/dial-handle@2x.png b/src/imports/controls/imagine/images/dial-handle@2x.png Binary files differnew file mode 100644 index 00000000..0e6147d9 --- /dev/null +++ b/src/imports/controls/imagine/images/dial-handle@2x.png diff --git a/src/imports/controls/imagine/images/dial-handle@3x.png b/src/imports/controls/imagine/images/dial-handle@3x.png Binary files differnew file mode 100644 index 00000000..24ff1519 --- /dev/null +++ b/src/imports/controls/imagine/images/dial-handle@3x.png diff --git a/src/imports/controls/imagine/images/dial-handle@4x.png b/src/imports/controls/imagine/images/dial-handle@4x.png Binary files differnew file mode 100644 index 00000000..c6b82488 --- /dev/null +++ b/src/imports/controls/imagine/images/dial-handle@4x.png diff --git a/src/imports/controls/imagine/images/dialog-background.9.png b/src/imports/controls/imagine/images/dialog-background.9.png Binary files differnew file mode 100644 index 00000000..495d2f0d --- /dev/null +++ b/src/imports/controls/imagine/images/dialog-background.9.png diff --git a/src/imports/controls/imagine/images/dialog-background@2x.9.png b/src/imports/controls/imagine/images/dialog-background@2x.9.png Binary files differnew file mode 100644 index 00000000..ba0df866 --- /dev/null +++ b/src/imports/controls/imagine/images/dialog-background@2x.9.png diff --git a/src/imports/controls/imagine/images/dialog-background@3x.9.png b/src/imports/controls/imagine/images/dialog-background@3x.9.png Binary files differnew file mode 100644 index 00000000..e71856a5 --- /dev/null +++ b/src/imports/controls/imagine/images/dialog-background@3x.9.png diff --git a/src/imports/controls/imagine/images/dialog-background@4x.9.png b/src/imports/controls/imagine/images/dialog-background@4x.9.png Binary files differnew file mode 100644 index 00000000..d756cda5 --- /dev/null +++ b/src/imports/controls/imagine/images/dialog-background@4x.9.png diff --git a/src/imports/controls/imagine/images/dialog-overlay-modal.png b/src/imports/controls/imagine/images/dialog-overlay-modal.png Binary files differnew file mode 100644 index 00000000..296e914a --- /dev/null +++ b/src/imports/controls/imagine/images/dialog-overlay-modal.png diff --git a/src/imports/controls/imagine/images/dialog-overlay-modal@2x.png b/src/imports/controls/imagine/images/dialog-overlay-modal@2x.png Binary files differnew file mode 100644 index 00000000..10c89300 --- /dev/null +++ b/src/imports/controls/imagine/images/dialog-overlay-modal@2x.png diff --git a/src/imports/controls/imagine/images/dialog-overlay-modal@3x.png b/src/imports/controls/imagine/images/dialog-overlay-modal@3x.png Binary files differnew file mode 100644 index 00000000..f65996e9 --- /dev/null +++ b/src/imports/controls/imagine/images/dialog-overlay-modal@3x.png diff --git a/src/imports/controls/imagine/images/dialog-overlay-modal@4x.png b/src/imports/controls/imagine/images/dialog-overlay-modal@4x.png Binary files differnew file mode 100644 index 00000000..a586f381 --- /dev/null +++ b/src/imports/controls/imagine/images/dialog-overlay-modal@4x.png diff --git a/src/imports/controls/imagine/images/dialog-overlay.png b/src/imports/controls/imagine/images/dialog-overlay.png Binary files differnew file mode 100644 index 00000000..e7175b46 --- /dev/null +++ b/src/imports/controls/imagine/images/dialog-overlay.png diff --git a/src/imports/controls/imagine/images/dialog-overlay@2x.png b/src/imports/controls/imagine/images/dialog-overlay@2x.png Binary files differnew file mode 100644 index 00000000..db6566e0 --- /dev/null +++ b/src/imports/controls/imagine/images/dialog-overlay@2x.png diff --git a/src/imports/controls/imagine/images/dialog-overlay@3x.png b/src/imports/controls/imagine/images/dialog-overlay@3x.png Binary files differnew file mode 100644 index 00000000..140e4692 --- /dev/null +++ b/src/imports/controls/imagine/images/dialog-overlay@3x.png diff --git a/src/imports/controls/imagine/images/dialog-overlay@4x.png b/src/imports/controls/imagine/images/dialog-overlay@4x.png Binary files differnew file mode 100644 index 00000000..5115c28a --- /dev/null +++ b/src/imports/controls/imagine/images/dialog-overlay@4x.png diff --git a/src/imports/controls/imagine/images/dialogbuttonbox-background.9.png b/src/imports/controls/imagine/images/dialogbuttonbox-background.9.png Binary files differnew file mode 100644 index 00000000..347300bb --- /dev/null +++ b/src/imports/controls/imagine/images/dialogbuttonbox-background.9.png diff --git a/src/imports/controls/imagine/images/dialogbuttonbox-background@2x.9.png b/src/imports/controls/imagine/images/dialogbuttonbox-background@2x.9.png Binary files differnew file mode 100644 index 00000000..8eddd6f4 --- /dev/null +++ b/src/imports/controls/imagine/images/dialogbuttonbox-background@2x.9.png diff --git a/src/imports/controls/imagine/images/dialogbuttonbox-background@3x.9.png b/src/imports/controls/imagine/images/dialogbuttonbox-background@3x.9.png Binary files differnew file mode 100644 index 00000000..d4a407ba --- /dev/null +++ b/src/imports/controls/imagine/images/dialogbuttonbox-background@3x.9.png diff --git a/src/imports/controls/imagine/images/dialogbuttonbox-background@4x.9.png b/src/imports/controls/imagine/images/dialogbuttonbox-background@4x.9.png Binary files differnew file mode 100644 index 00000000..7af78edb --- /dev/null +++ b/src/imports/controls/imagine/images/dialogbuttonbox-background@4x.9.png diff --git a/src/imports/controls/imagine/images/drawer-background-bottom.9.png b/src/imports/controls/imagine/images/drawer-background-bottom.9.png Binary files differnew file mode 100644 index 00000000..d33adad1 --- /dev/null +++ b/src/imports/controls/imagine/images/drawer-background-bottom.9.png diff --git a/src/imports/controls/imagine/images/drawer-background-bottom@2x.9.png b/src/imports/controls/imagine/images/drawer-background-bottom@2x.9.png Binary files differnew file mode 100644 index 00000000..c2becf9e --- /dev/null +++ b/src/imports/controls/imagine/images/drawer-background-bottom@2x.9.png diff --git a/src/imports/controls/imagine/images/drawer-background-bottom@3x.9.png b/src/imports/controls/imagine/images/drawer-background-bottom@3x.9.png Binary files differnew file mode 100644 index 00000000..52439206 --- /dev/null +++ b/src/imports/controls/imagine/images/drawer-background-bottom@3x.9.png diff --git a/src/imports/controls/imagine/images/drawer-background-bottom@4x.9.png b/src/imports/controls/imagine/images/drawer-background-bottom@4x.9.png Binary files differnew file mode 100644 index 00000000..abf6964e --- /dev/null +++ b/src/imports/controls/imagine/images/drawer-background-bottom@4x.9.png diff --git a/src/imports/controls/imagine/images/drawer-background-left.9.png b/src/imports/controls/imagine/images/drawer-background-left.9.png Binary files differnew file mode 100644 index 00000000..95485ea1 --- /dev/null +++ b/src/imports/controls/imagine/images/drawer-background-left.9.png diff --git a/src/imports/controls/imagine/images/drawer-background-left@2x.9.png b/src/imports/controls/imagine/images/drawer-background-left@2x.9.png Binary files differnew file mode 100644 index 00000000..9060bf37 --- /dev/null +++ b/src/imports/controls/imagine/images/drawer-background-left@2x.9.png diff --git a/src/imports/controls/imagine/images/drawer-background-left@3x.9.png b/src/imports/controls/imagine/images/drawer-background-left@3x.9.png Binary files differnew file mode 100644 index 00000000..70e39930 --- /dev/null +++ b/src/imports/controls/imagine/images/drawer-background-left@3x.9.png diff --git a/src/imports/controls/imagine/images/drawer-background-left@4x.9.png b/src/imports/controls/imagine/images/drawer-background-left@4x.9.png Binary files differnew file mode 100644 index 00000000..8f26bbf0 --- /dev/null +++ b/src/imports/controls/imagine/images/drawer-background-left@4x.9.png diff --git a/src/imports/controls/imagine/images/drawer-background-right.9.png b/src/imports/controls/imagine/images/drawer-background-right.9.png Binary files differnew file mode 100644 index 00000000..9951229e --- /dev/null +++ b/src/imports/controls/imagine/images/drawer-background-right.9.png diff --git a/src/imports/controls/imagine/images/drawer-background-right@2x.9.png b/src/imports/controls/imagine/images/drawer-background-right@2x.9.png Binary files differnew file mode 100644 index 00000000..850811c6 --- /dev/null +++ b/src/imports/controls/imagine/images/drawer-background-right@2x.9.png diff --git a/src/imports/controls/imagine/images/drawer-background-right@3x.9.png b/src/imports/controls/imagine/images/drawer-background-right@3x.9.png Binary files differnew file mode 100644 index 00000000..a955e241 --- /dev/null +++ b/src/imports/controls/imagine/images/drawer-background-right@3x.9.png diff --git a/src/imports/controls/imagine/images/drawer-background-right@4x.9.png b/src/imports/controls/imagine/images/drawer-background-right@4x.9.png Binary files differnew file mode 100644 index 00000000..51011c8c --- /dev/null +++ b/src/imports/controls/imagine/images/drawer-background-right@4x.9.png diff --git a/src/imports/controls/imagine/images/drawer-background-top.9.png b/src/imports/controls/imagine/images/drawer-background-top.9.png Binary files differnew file mode 100644 index 00000000..8685246c --- /dev/null +++ b/src/imports/controls/imagine/images/drawer-background-top.9.png diff --git a/src/imports/controls/imagine/images/drawer-background-top@2x.9.png b/src/imports/controls/imagine/images/drawer-background-top@2x.9.png Binary files differnew file mode 100644 index 00000000..b4ebf860 --- /dev/null +++ b/src/imports/controls/imagine/images/drawer-background-top@2x.9.png diff --git a/src/imports/controls/imagine/images/drawer-background-top@3x.9.png b/src/imports/controls/imagine/images/drawer-background-top@3x.9.png Binary files differnew file mode 100644 index 00000000..2075c6eb --- /dev/null +++ b/src/imports/controls/imagine/images/drawer-background-top@3x.9.png diff --git a/src/imports/controls/imagine/images/drawer-background-top@4x.9.png b/src/imports/controls/imagine/images/drawer-background-top@4x.9.png Binary files differnew file mode 100644 index 00000000..fad0cc13 --- /dev/null +++ b/src/imports/controls/imagine/images/drawer-background-top@4x.9.png diff --git a/src/imports/controls/imagine/images/drawer-overlay-modal.png b/src/imports/controls/imagine/images/drawer-overlay-modal.png Binary files differnew file mode 100644 index 00000000..296e914a --- /dev/null +++ b/src/imports/controls/imagine/images/drawer-overlay-modal.png diff --git a/src/imports/controls/imagine/images/drawer-overlay-modal@2x.png b/src/imports/controls/imagine/images/drawer-overlay-modal@2x.png Binary files differnew file mode 100644 index 00000000..10c89300 --- /dev/null +++ b/src/imports/controls/imagine/images/drawer-overlay-modal@2x.png diff --git a/src/imports/controls/imagine/images/drawer-overlay-modal@3x.png b/src/imports/controls/imagine/images/drawer-overlay-modal@3x.png Binary files differnew file mode 100644 index 00000000..f65996e9 --- /dev/null +++ b/src/imports/controls/imagine/images/drawer-overlay-modal@3x.png diff --git a/src/imports/controls/imagine/images/drawer-overlay-modal@4x.png b/src/imports/controls/imagine/images/drawer-overlay-modal@4x.png Binary files differnew file mode 100644 index 00000000..a586f381 --- /dev/null +++ b/src/imports/controls/imagine/images/drawer-overlay-modal@4x.png diff --git a/src/imports/controls/imagine/images/drawer-overlay.png b/src/imports/controls/imagine/images/drawer-overlay.png Binary files differnew file mode 100644 index 00000000..e7175b46 --- /dev/null +++ b/src/imports/controls/imagine/images/drawer-overlay.png diff --git a/src/imports/controls/imagine/images/drawer-overlay@2x.png b/src/imports/controls/imagine/images/drawer-overlay@2x.png Binary files differnew file mode 100644 index 00000000..db6566e0 --- /dev/null +++ b/src/imports/controls/imagine/images/drawer-overlay@2x.png diff --git a/src/imports/controls/imagine/images/drawer-overlay@3x.png b/src/imports/controls/imagine/images/drawer-overlay@3x.png Binary files differnew file mode 100644 index 00000000..140e4692 --- /dev/null +++ b/src/imports/controls/imagine/images/drawer-overlay@3x.png diff --git a/src/imports/controls/imagine/images/drawer-overlay@4x.png b/src/imports/controls/imagine/images/drawer-overlay@4x.png Binary files differnew file mode 100644 index 00000000..5115c28a --- /dev/null +++ b/src/imports/controls/imagine/images/drawer-overlay@4x.png diff --git a/src/imports/controls/imagine/images/frame-background.9.png b/src/imports/controls/imagine/images/frame-background.9.png Binary files differnew file mode 100644 index 00000000..3d3ae702 --- /dev/null +++ b/src/imports/controls/imagine/images/frame-background.9.png diff --git a/src/imports/controls/imagine/images/frame-background@2x.9.png b/src/imports/controls/imagine/images/frame-background@2x.9.png Binary files differnew file mode 100644 index 00000000..8df38fe9 --- /dev/null +++ b/src/imports/controls/imagine/images/frame-background@2x.9.png diff --git a/src/imports/controls/imagine/images/frame-background@3x.9.png b/src/imports/controls/imagine/images/frame-background@3x.9.png Binary files differnew file mode 100644 index 00000000..41012873 --- /dev/null +++ b/src/imports/controls/imagine/images/frame-background@3x.9.png diff --git a/src/imports/controls/imagine/images/frame-background@4x.9.png b/src/imports/controls/imagine/images/frame-background@4x.9.png Binary files differnew file mode 100644 index 00000000..7da718de --- /dev/null +++ b/src/imports/controls/imagine/images/frame-background@4x.9.png diff --git a/src/imports/controls/imagine/images/groupbox-background.9.png b/src/imports/controls/imagine/images/groupbox-background.9.png Binary files differnew file mode 100644 index 00000000..3d3ae702 --- /dev/null +++ b/src/imports/controls/imagine/images/groupbox-background.9.png diff --git a/src/imports/controls/imagine/images/groupbox-background@2x.9.png b/src/imports/controls/imagine/images/groupbox-background@2x.9.png Binary files differnew file mode 100644 index 00000000..8df38fe9 --- /dev/null +++ b/src/imports/controls/imagine/images/groupbox-background@2x.9.png diff --git a/src/imports/controls/imagine/images/groupbox-background@3x.9.png b/src/imports/controls/imagine/images/groupbox-background@3x.9.png Binary files differnew file mode 100644 index 00000000..41012873 --- /dev/null +++ b/src/imports/controls/imagine/images/groupbox-background@3x.9.png diff --git a/src/imports/controls/imagine/images/groupbox-background@4x.9.png b/src/imports/controls/imagine/images/groupbox-background@4x.9.png Binary files differnew file mode 100644 index 00000000..7da718de --- /dev/null +++ b/src/imports/controls/imagine/images/groupbox-background@4x.9.png diff --git a/src/imports/controls/imagine/images/groupbox-title.9.png b/src/imports/controls/imagine/images/groupbox-title.9.png Binary files differnew file mode 100644 index 00000000..e7585354 --- /dev/null +++ b/src/imports/controls/imagine/images/groupbox-title.9.png diff --git a/src/imports/controls/imagine/images/groupbox-title@2x.9.png b/src/imports/controls/imagine/images/groupbox-title@2x.9.png Binary files differnew file mode 100644 index 00000000..3b8e23e3 --- /dev/null +++ b/src/imports/controls/imagine/images/groupbox-title@2x.9.png diff --git a/src/imports/controls/imagine/images/groupbox-title@3x.9.png b/src/imports/controls/imagine/images/groupbox-title@3x.9.png Binary files differnew file mode 100644 index 00000000..7ed67b27 --- /dev/null +++ b/src/imports/controls/imagine/images/groupbox-title@3x.9.png diff --git a/src/imports/controls/imagine/images/groupbox-title@4x.9.png b/src/imports/controls/imagine/images/groupbox-title@4x.9.png Binary files differnew file mode 100644 index 00000000..478bf1de --- /dev/null +++ b/src/imports/controls/imagine/images/groupbox-title@4x.9.png diff --git a/src/imports/controls/imagine/images/itemdelegate-background-disabled.9.png b/src/imports/controls/imagine/images/itemdelegate-background-disabled.9.png Binary files differnew file mode 100644 index 00000000..4b56fe35 --- /dev/null +++ b/src/imports/controls/imagine/images/itemdelegate-background-disabled.9.png diff --git a/src/imports/controls/imagine/images/itemdelegate-background-disabled@2x.9.png b/src/imports/controls/imagine/images/itemdelegate-background-disabled@2x.9.png Binary files differnew file mode 100644 index 00000000..34edef58 --- /dev/null +++ b/src/imports/controls/imagine/images/itemdelegate-background-disabled@2x.9.png diff --git a/src/imports/controls/imagine/images/itemdelegate-background-disabled@3x.9.png b/src/imports/controls/imagine/images/itemdelegate-background-disabled@3x.9.png Binary files differnew file mode 100644 index 00000000..dd2cc6ba --- /dev/null +++ b/src/imports/controls/imagine/images/itemdelegate-background-disabled@3x.9.png diff --git a/src/imports/controls/imagine/images/itemdelegate-background-disabled@4x.9.png b/src/imports/controls/imagine/images/itemdelegate-background-disabled@4x.9.png Binary files differnew file mode 100644 index 00000000..b7890a3c --- /dev/null +++ b/src/imports/controls/imagine/images/itemdelegate-background-disabled@4x.9.png diff --git a/src/imports/controls/imagine/images/itemdelegate-background-focused.9.png b/src/imports/controls/imagine/images/itemdelegate-background-focused.9.png Binary files differnew file mode 100644 index 00000000..b31343dd --- /dev/null +++ b/src/imports/controls/imagine/images/itemdelegate-background-focused.9.png diff --git a/src/imports/controls/imagine/images/itemdelegate-background-focused@2x.9.png b/src/imports/controls/imagine/images/itemdelegate-background-focused@2x.9.png Binary files differnew file mode 100644 index 00000000..c56c62da --- /dev/null +++ b/src/imports/controls/imagine/images/itemdelegate-background-focused@2x.9.png diff --git a/src/imports/controls/imagine/images/itemdelegate-background-focused@3x.9.png b/src/imports/controls/imagine/images/itemdelegate-background-focused@3x.9.png Binary files differnew file mode 100644 index 00000000..bfbc82f9 --- /dev/null +++ b/src/imports/controls/imagine/images/itemdelegate-background-focused@3x.9.png diff --git a/src/imports/controls/imagine/images/itemdelegate-background-focused@4x.9.png b/src/imports/controls/imagine/images/itemdelegate-background-focused@4x.9.png Binary files differnew file mode 100644 index 00000000..e31ab63b --- /dev/null +++ b/src/imports/controls/imagine/images/itemdelegate-background-focused@4x.9.png diff --git a/src/imports/controls/imagine/images/itemdelegate-background-highlighted.9.png b/src/imports/controls/imagine/images/itemdelegate-background-highlighted.9.png Binary files differnew file mode 100644 index 00000000..32847cfa --- /dev/null +++ b/src/imports/controls/imagine/images/itemdelegate-background-highlighted.9.png diff --git a/src/imports/controls/imagine/images/itemdelegate-background-highlighted@2x.9.png b/src/imports/controls/imagine/images/itemdelegate-background-highlighted@2x.9.png Binary files differnew file mode 100644 index 00000000..126fcb29 --- /dev/null +++ b/src/imports/controls/imagine/images/itemdelegate-background-highlighted@2x.9.png diff --git a/src/imports/controls/imagine/images/itemdelegate-background-highlighted@3x.9.png b/src/imports/controls/imagine/images/itemdelegate-background-highlighted@3x.9.png Binary files differnew file mode 100644 index 00000000..22b7c9f2 --- /dev/null +++ b/src/imports/controls/imagine/images/itemdelegate-background-highlighted@3x.9.png diff --git a/src/imports/controls/imagine/images/itemdelegate-background-highlighted@4x.9.png b/src/imports/controls/imagine/images/itemdelegate-background-highlighted@4x.9.png Binary files differnew file mode 100644 index 00000000..4e67f310 --- /dev/null +++ b/src/imports/controls/imagine/images/itemdelegate-background-highlighted@4x.9.png diff --git a/src/imports/controls/imagine/images/itemdelegate-background-hovered.9.png b/src/imports/controls/imagine/images/itemdelegate-background-hovered.9.png Binary files differnew file mode 100644 index 00000000..a53f63cd --- /dev/null +++ b/src/imports/controls/imagine/images/itemdelegate-background-hovered.9.png diff --git a/src/imports/controls/imagine/images/itemdelegate-background-hovered@2x.9.png b/src/imports/controls/imagine/images/itemdelegate-background-hovered@2x.9.png Binary files differnew file mode 100644 index 00000000..07510b10 --- /dev/null +++ b/src/imports/controls/imagine/images/itemdelegate-background-hovered@2x.9.png diff --git a/src/imports/controls/imagine/images/itemdelegate-background-hovered@3x.9.png b/src/imports/controls/imagine/images/itemdelegate-background-hovered@3x.9.png Binary files differnew file mode 100644 index 00000000..db2a210a --- /dev/null +++ b/src/imports/controls/imagine/images/itemdelegate-background-hovered@3x.9.png diff --git a/src/imports/controls/imagine/images/itemdelegate-background-hovered@4x.9.png b/src/imports/controls/imagine/images/itemdelegate-background-hovered@4x.9.png Binary files differnew file mode 100644 index 00000000..6427d7ab --- /dev/null +++ b/src/imports/controls/imagine/images/itemdelegate-background-hovered@4x.9.png diff --git a/src/imports/controls/imagine/images/itemdelegate-background-pressed.9.png b/src/imports/controls/imagine/images/itemdelegate-background-pressed.9.png Binary files differnew file mode 100644 index 00000000..b31343dd --- /dev/null +++ b/src/imports/controls/imagine/images/itemdelegate-background-pressed.9.png diff --git a/src/imports/controls/imagine/images/itemdelegate-background-pressed@2x.9.png b/src/imports/controls/imagine/images/itemdelegate-background-pressed@2x.9.png Binary files differnew file mode 100644 index 00000000..c56c62da --- /dev/null +++ b/src/imports/controls/imagine/images/itemdelegate-background-pressed@2x.9.png diff --git a/src/imports/controls/imagine/images/itemdelegate-background-pressed@3x.9.png b/src/imports/controls/imagine/images/itemdelegate-background-pressed@3x.9.png Binary files differnew file mode 100644 index 00000000..bfbc82f9 --- /dev/null +++ b/src/imports/controls/imagine/images/itemdelegate-background-pressed@3x.9.png diff --git a/src/imports/controls/imagine/images/itemdelegate-background-pressed@4x.9.png b/src/imports/controls/imagine/images/itemdelegate-background-pressed@4x.9.png Binary files differnew file mode 100644 index 00000000..e31ab63b --- /dev/null +++ b/src/imports/controls/imagine/images/itemdelegate-background-pressed@4x.9.png diff --git a/src/imports/controls/imagine/images/itemdelegate-background.9.png b/src/imports/controls/imagine/images/itemdelegate-background.9.png Binary files differnew file mode 100644 index 00000000..a53f63cd --- /dev/null +++ b/src/imports/controls/imagine/images/itemdelegate-background.9.png diff --git a/src/imports/controls/imagine/images/itemdelegate-background@2x.9.png b/src/imports/controls/imagine/images/itemdelegate-background@2x.9.png Binary files differnew file mode 100644 index 00000000..07510b10 --- /dev/null +++ b/src/imports/controls/imagine/images/itemdelegate-background@2x.9.png diff --git a/src/imports/controls/imagine/images/itemdelegate-background@3x.9.png b/src/imports/controls/imagine/images/itemdelegate-background@3x.9.png Binary files differnew file mode 100644 index 00000000..db2a210a --- /dev/null +++ b/src/imports/controls/imagine/images/itemdelegate-background@3x.9.png diff --git a/src/imports/controls/imagine/images/itemdelegate-background@4x.9.png b/src/imports/controls/imagine/images/itemdelegate-background@4x.9.png Binary files differnew file mode 100644 index 00000000..6427d7ab --- /dev/null +++ b/src/imports/controls/imagine/images/itemdelegate-background@4x.9.png diff --git a/src/imports/controls/imagine/images/menu-background.9.png b/src/imports/controls/imagine/images/menu-background.9.png Binary files differnew file mode 100644 index 00000000..8253612c --- /dev/null +++ b/src/imports/controls/imagine/images/menu-background.9.png diff --git a/src/imports/controls/imagine/images/menu-background@2x.9.png b/src/imports/controls/imagine/images/menu-background@2x.9.png Binary files differnew file mode 100644 index 00000000..55438bde --- /dev/null +++ b/src/imports/controls/imagine/images/menu-background@2x.9.png diff --git a/src/imports/controls/imagine/images/menu-background@3x.9.png b/src/imports/controls/imagine/images/menu-background@3x.9.png Binary files differnew file mode 100644 index 00000000..7be5da41 --- /dev/null +++ b/src/imports/controls/imagine/images/menu-background@3x.9.png diff --git a/src/imports/controls/imagine/images/menu-background@4x.9.png b/src/imports/controls/imagine/images/menu-background@4x.9.png Binary files differnew file mode 100644 index 00000000..6e8588ff --- /dev/null +++ b/src/imports/controls/imagine/images/menu-background@4x.9.png diff --git a/src/imports/controls/imagine/images/menuitem-arrow-disabled.png b/src/imports/controls/imagine/images/menuitem-arrow-disabled.png Binary files differnew file mode 100644 index 00000000..4d681e2b --- /dev/null +++ b/src/imports/controls/imagine/images/menuitem-arrow-disabled.png diff --git a/src/imports/controls/imagine/images/menuitem-arrow-disabled@2x.png b/src/imports/controls/imagine/images/menuitem-arrow-disabled@2x.png Binary files differnew file mode 100644 index 00000000..cddc7844 --- /dev/null +++ b/src/imports/controls/imagine/images/menuitem-arrow-disabled@2x.png diff --git a/src/imports/controls/imagine/images/menuitem-arrow-disabled@3x.png b/src/imports/controls/imagine/images/menuitem-arrow-disabled@3x.png Binary files differnew file mode 100644 index 00000000..4546de35 --- /dev/null +++ b/src/imports/controls/imagine/images/menuitem-arrow-disabled@3x.png diff --git a/src/imports/controls/imagine/images/menuitem-arrow-disabled@4x.png b/src/imports/controls/imagine/images/menuitem-arrow-disabled@4x.png Binary files differnew file mode 100644 index 00000000..cd403df0 --- /dev/null +++ b/src/imports/controls/imagine/images/menuitem-arrow-disabled@4x.png diff --git a/src/imports/controls/imagine/images/menuitem-arrow-mirrored-disabled.png b/src/imports/controls/imagine/images/menuitem-arrow-mirrored-disabled.png Binary files differnew file mode 100644 index 00000000..ac94a9a8 --- /dev/null +++ b/src/imports/controls/imagine/images/menuitem-arrow-mirrored-disabled.png diff --git a/src/imports/controls/imagine/images/menuitem-arrow-mirrored-disabled@2x.png b/src/imports/controls/imagine/images/menuitem-arrow-mirrored-disabled@2x.png Binary files differnew file mode 100644 index 00000000..5533cdc1 --- /dev/null +++ b/src/imports/controls/imagine/images/menuitem-arrow-mirrored-disabled@2x.png diff --git a/src/imports/controls/imagine/images/menuitem-arrow-mirrored-disabled@3x.png b/src/imports/controls/imagine/images/menuitem-arrow-mirrored-disabled@3x.png Binary files differnew file mode 100644 index 00000000..a3796957 --- /dev/null +++ b/src/imports/controls/imagine/images/menuitem-arrow-mirrored-disabled@3x.png diff --git a/src/imports/controls/imagine/images/menuitem-arrow-mirrored-disabled@4x.png b/src/imports/controls/imagine/images/menuitem-arrow-mirrored-disabled@4x.png Binary files differnew file mode 100644 index 00000000..47a6a0b9 --- /dev/null +++ b/src/imports/controls/imagine/images/menuitem-arrow-mirrored-disabled@4x.png diff --git a/src/imports/controls/imagine/images/menuitem-arrow-mirrored.png b/src/imports/controls/imagine/images/menuitem-arrow-mirrored.png Binary files differnew file mode 100644 index 00000000..95dbe3dd --- /dev/null +++ b/src/imports/controls/imagine/images/menuitem-arrow-mirrored.png diff --git a/src/imports/controls/imagine/images/menuitem-arrow-mirrored@2x.png b/src/imports/controls/imagine/images/menuitem-arrow-mirrored@2x.png Binary files differnew file mode 100644 index 00000000..53978404 --- /dev/null +++ b/src/imports/controls/imagine/images/menuitem-arrow-mirrored@2x.png diff --git a/src/imports/controls/imagine/images/menuitem-arrow-mirrored@3x.png b/src/imports/controls/imagine/images/menuitem-arrow-mirrored@3x.png Binary files differnew file mode 100644 index 00000000..f922f3c2 --- /dev/null +++ b/src/imports/controls/imagine/images/menuitem-arrow-mirrored@3x.png diff --git a/src/imports/controls/imagine/images/menuitem-arrow-mirrored@4x.png b/src/imports/controls/imagine/images/menuitem-arrow-mirrored@4x.png Binary files differnew file mode 100644 index 00000000..c2a7b8ad --- /dev/null +++ b/src/imports/controls/imagine/images/menuitem-arrow-mirrored@4x.png diff --git a/src/imports/controls/imagine/images/menuitem-arrow.png b/src/imports/controls/imagine/images/menuitem-arrow.png Binary files differnew file mode 100644 index 00000000..eac2d6d2 --- /dev/null +++ b/src/imports/controls/imagine/images/menuitem-arrow.png diff --git a/src/imports/controls/imagine/images/menuitem-arrow@2x.png b/src/imports/controls/imagine/images/menuitem-arrow@2x.png Binary files differnew file mode 100644 index 00000000..008ca41a --- /dev/null +++ b/src/imports/controls/imagine/images/menuitem-arrow@2x.png diff --git a/src/imports/controls/imagine/images/menuitem-arrow@3x.png b/src/imports/controls/imagine/images/menuitem-arrow@3x.png Binary files differnew file mode 100644 index 00000000..83c8a27c --- /dev/null +++ b/src/imports/controls/imagine/images/menuitem-arrow@3x.png diff --git a/src/imports/controls/imagine/images/menuitem-arrow@4x.png b/src/imports/controls/imagine/images/menuitem-arrow@4x.png Binary files differnew file mode 100644 index 00000000..d838880e --- /dev/null +++ b/src/imports/controls/imagine/images/menuitem-arrow@4x.png diff --git a/src/imports/controls/imagine/images/menuitem-background-highlighted.9.png b/src/imports/controls/imagine/images/menuitem-background-highlighted.9.png Binary files differnew file mode 100644 index 00000000..4cc1f069 --- /dev/null +++ b/src/imports/controls/imagine/images/menuitem-background-highlighted.9.png diff --git a/src/imports/controls/imagine/images/menuitem-background-highlighted@2x.9.png b/src/imports/controls/imagine/images/menuitem-background-highlighted@2x.9.png Binary files differnew file mode 100644 index 00000000..b44793d6 --- /dev/null +++ b/src/imports/controls/imagine/images/menuitem-background-highlighted@2x.9.png diff --git a/src/imports/controls/imagine/images/menuitem-background-highlighted@3x.9.png b/src/imports/controls/imagine/images/menuitem-background-highlighted@3x.9.png Binary files differnew file mode 100644 index 00000000..ae0acfb7 --- /dev/null +++ b/src/imports/controls/imagine/images/menuitem-background-highlighted@3x.9.png diff --git a/src/imports/controls/imagine/images/menuitem-background-highlighted@4x.9.png b/src/imports/controls/imagine/images/menuitem-background-highlighted@4x.9.png Binary files differnew file mode 100644 index 00000000..dbb09c33 --- /dev/null +++ b/src/imports/controls/imagine/images/menuitem-background-highlighted@4x.9.png diff --git a/src/imports/controls/imagine/images/menuitem-background.9.png b/src/imports/controls/imagine/images/menuitem-background.9.png Binary files differnew file mode 100644 index 00000000..1fd1f099 --- /dev/null +++ b/src/imports/controls/imagine/images/menuitem-background.9.png diff --git a/src/imports/controls/imagine/images/menuitem-background@2x.9.png b/src/imports/controls/imagine/images/menuitem-background@2x.9.png Binary files differnew file mode 100644 index 00000000..1b30ac3b --- /dev/null +++ b/src/imports/controls/imagine/images/menuitem-background@2x.9.png diff --git a/src/imports/controls/imagine/images/menuitem-background@3x.9.png b/src/imports/controls/imagine/images/menuitem-background@3x.9.png Binary files differnew file mode 100644 index 00000000..b0012628 --- /dev/null +++ b/src/imports/controls/imagine/images/menuitem-background@3x.9.png diff --git a/src/imports/controls/imagine/images/menuitem-background@4x.9.png b/src/imports/controls/imagine/images/menuitem-background@4x.9.png Binary files differnew file mode 100644 index 00000000..1312abee --- /dev/null +++ b/src/imports/controls/imagine/images/menuitem-background@4x.9.png diff --git a/src/imports/controls/imagine/images/menuitem-indicator-checked-focused.png b/src/imports/controls/imagine/images/menuitem-indicator-checked-focused.png Binary files differnew file mode 100644 index 00000000..f22ebf09 --- /dev/null +++ b/src/imports/controls/imagine/images/menuitem-indicator-checked-focused.png diff --git a/src/imports/controls/imagine/images/menuitem-indicator-checked-focused@2x.png b/src/imports/controls/imagine/images/menuitem-indicator-checked-focused@2x.png Binary files differnew file mode 100644 index 00000000..fd3080a1 --- /dev/null +++ b/src/imports/controls/imagine/images/menuitem-indicator-checked-focused@2x.png diff --git a/src/imports/controls/imagine/images/menuitem-indicator-checked-focused@3x.png b/src/imports/controls/imagine/images/menuitem-indicator-checked-focused@3x.png Binary files differnew file mode 100644 index 00000000..6393373f --- /dev/null +++ b/src/imports/controls/imagine/images/menuitem-indicator-checked-focused@3x.png diff --git a/src/imports/controls/imagine/images/menuitem-indicator-checked-focused@4x.png b/src/imports/controls/imagine/images/menuitem-indicator-checked-focused@4x.png Binary files differnew file mode 100644 index 00000000..32dedb7f --- /dev/null +++ b/src/imports/controls/imagine/images/menuitem-indicator-checked-focused@4x.png diff --git a/src/imports/controls/imagine/images/menuitem-indicator-checked-hovered.png b/src/imports/controls/imagine/images/menuitem-indicator-checked-hovered.png Binary files differnew file mode 100644 index 00000000..f22ebf09 --- /dev/null +++ b/src/imports/controls/imagine/images/menuitem-indicator-checked-hovered.png diff --git a/src/imports/controls/imagine/images/menuitem-indicator-checked-hovered@2x.png b/src/imports/controls/imagine/images/menuitem-indicator-checked-hovered@2x.png Binary files differnew file mode 100644 index 00000000..fd3080a1 --- /dev/null +++ b/src/imports/controls/imagine/images/menuitem-indicator-checked-hovered@2x.png diff --git a/src/imports/controls/imagine/images/menuitem-indicator-checked-hovered@3x.png b/src/imports/controls/imagine/images/menuitem-indicator-checked-hovered@3x.png Binary files differnew file mode 100644 index 00000000..6393373f --- /dev/null +++ b/src/imports/controls/imagine/images/menuitem-indicator-checked-hovered@3x.png diff --git a/src/imports/controls/imagine/images/menuitem-indicator-checked-hovered@4x.png b/src/imports/controls/imagine/images/menuitem-indicator-checked-hovered@4x.png Binary files differnew file mode 100644 index 00000000..32dedb7f --- /dev/null +++ b/src/imports/controls/imagine/images/menuitem-indicator-checked-hovered@4x.png diff --git a/src/imports/controls/imagine/images/menuitem-indicator-checked-pressed.png b/src/imports/controls/imagine/images/menuitem-indicator-checked-pressed.png Binary files differnew file mode 100644 index 00000000..846416aa --- /dev/null +++ b/src/imports/controls/imagine/images/menuitem-indicator-checked-pressed.png diff --git a/src/imports/controls/imagine/images/menuitem-indicator-checked-pressed@2x.png b/src/imports/controls/imagine/images/menuitem-indicator-checked-pressed@2x.png Binary files differnew file mode 100644 index 00000000..bc85bf94 --- /dev/null +++ b/src/imports/controls/imagine/images/menuitem-indicator-checked-pressed@2x.png diff --git a/src/imports/controls/imagine/images/menuitem-indicator-checked-pressed@3x.png b/src/imports/controls/imagine/images/menuitem-indicator-checked-pressed@3x.png Binary files differnew file mode 100644 index 00000000..17ef9e58 --- /dev/null +++ b/src/imports/controls/imagine/images/menuitem-indicator-checked-pressed@3x.png diff --git a/src/imports/controls/imagine/images/menuitem-indicator-checked-pressed@4x.png b/src/imports/controls/imagine/images/menuitem-indicator-checked-pressed@4x.png Binary files differnew file mode 100644 index 00000000..7e9dd750 --- /dev/null +++ b/src/imports/controls/imagine/images/menuitem-indicator-checked-pressed@4x.png diff --git a/src/imports/controls/imagine/images/menuitem-indicator-checked.png b/src/imports/controls/imagine/images/menuitem-indicator-checked.png Binary files differnew file mode 100644 index 00000000..f06cc5f6 --- /dev/null +++ b/src/imports/controls/imagine/images/menuitem-indicator-checked.png diff --git a/src/imports/controls/imagine/images/menuitem-indicator-checked@2x.png b/src/imports/controls/imagine/images/menuitem-indicator-checked@2x.png Binary files differnew file mode 100644 index 00000000..3db78a17 --- /dev/null +++ b/src/imports/controls/imagine/images/menuitem-indicator-checked@2x.png diff --git a/src/imports/controls/imagine/images/menuitem-indicator-checked@3x.png b/src/imports/controls/imagine/images/menuitem-indicator-checked@3x.png Binary files differnew file mode 100644 index 00000000..eadb5968 --- /dev/null +++ b/src/imports/controls/imagine/images/menuitem-indicator-checked@3x.png diff --git a/src/imports/controls/imagine/images/menuitem-indicator-checked@4x.png b/src/imports/controls/imagine/images/menuitem-indicator-checked@4x.png Binary files differnew file mode 100644 index 00000000..9bdfac8a --- /dev/null +++ b/src/imports/controls/imagine/images/menuitem-indicator-checked@4x.png diff --git a/src/imports/controls/imagine/images/menuitem-indicator-disabled.png b/src/imports/controls/imagine/images/menuitem-indicator-disabled.png Binary files differnew file mode 100644 index 00000000..a8305968 --- /dev/null +++ b/src/imports/controls/imagine/images/menuitem-indicator-disabled.png diff --git a/src/imports/controls/imagine/images/menuitem-indicator-disabled@2x.png b/src/imports/controls/imagine/images/menuitem-indicator-disabled@2x.png Binary files differnew file mode 100644 index 00000000..e8046c5e --- /dev/null +++ b/src/imports/controls/imagine/images/menuitem-indicator-disabled@2x.png diff --git a/src/imports/controls/imagine/images/menuitem-indicator-disabled@3x.png b/src/imports/controls/imagine/images/menuitem-indicator-disabled@3x.png Binary files differnew file mode 100644 index 00000000..d44111bb --- /dev/null +++ b/src/imports/controls/imagine/images/menuitem-indicator-disabled@3x.png diff --git a/src/imports/controls/imagine/images/menuitem-indicator-disabled@4x.png b/src/imports/controls/imagine/images/menuitem-indicator-disabled@4x.png Binary files differnew file mode 100644 index 00000000..24fa0c0d --- /dev/null +++ b/src/imports/controls/imagine/images/menuitem-indicator-disabled@4x.png diff --git a/src/imports/controls/imagine/images/menuitem-indicator-focused.png b/src/imports/controls/imagine/images/menuitem-indicator-focused.png Binary files differnew file mode 100644 index 00000000..1c598c1f --- /dev/null +++ b/src/imports/controls/imagine/images/menuitem-indicator-focused.png diff --git a/src/imports/controls/imagine/images/menuitem-indicator-focused@2x.png b/src/imports/controls/imagine/images/menuitem-indicator-focused@2x.png Binary files differnew file mode 100644 index 00000000..31ff320e --- /dev/null +++ b/src/imports/controls/imagine/images/menuitem-indicator-focused@2x.png diff --git a/src/imports/controls/imagine/images/menuitem-indicator-focused@3x.png b/src/imports/controls/imagine/images/menuitem-indicator-focused@3x.png Binary files differnew file mode 100644 index 00000000..15a1b487 --- /dev/null +++ b/src/imports/controls/imagine/images/menuitem-indicator-focused@3x.png diff --git a/src/imports/controls/imagine/images/menuitem-indicator-focused@4x.png b/src/imports/controls/imagine/images/menuitem-indicator-focused@4x.png Binary files differnew file mode 100644 index 00000000..db11c0c1 --- /dev/null +++ b/src/imports/controls/imagine/images/menuitem-indicator-focused@4x.png diff --git a/src/imports/controls/imagine/images/menuitem-indicator-hovered.png b/src/imports/controls/imagine/images/menuitem-indicator-hovered.png Binary files differnew file mode 100644 index 00000000..1c598c1f --- /dev/null +++ b/src/imports/controls/imagine/images/menuitem-indicator-hovered.png diff --git a/src/imports/controls/imagine/images/menuitem-indicator-hovered@2x.png b/src/imports/controls/imagine/images/menuitem-indicator-hovered@2x.png Binary files differnew file mode 100644 index 00000000..31ff320e --- /dev/null +++ b/src/imports/controls/imagine/images/menuitem-indicator-hovered@2x.png diff --git a/src/imports/controls/imagine/images/menuitem-indicator-hovered@3x.png b/src/imports/controls/imagine/images/menuitem-indicator-hovered@3x.png Binary files differnew file mode 100644 index 00000000..15a1b487 --- /dev/null +++ b/src/imports/controls/imagine/images/menuitem-indicator-hovered@3x.png diff --git a/src/imports/controls/imagine/images/menuitem-indicator-hovered@4x.png b/src/imports/controls/imagine/images/menuitem-indicator-hovered@4x.png Binary files differnew file mode 100644 index 00000000..db11c0c1 --- /dev/null +++ b/src/imports/controls/imagine/images/menuitem-indicator-hovered@4x.png diff --git a/src/imports/controls/imagine/images/menuitem-indicator-pressed.png b/src/imports/controls/imagine/images/menuitem-indicator-pressed.png Binary files differnew file mode 100644 index 00000000..e4f02db1 --- /dev/null +++ b/src/imports/controls/imagine/images/menuitem-indicator-pressed.png diff --git a/src/imports/controls/imagine/images/menuitem-indicator-pressed@2x.png b/src/imports/controls/imagine/images/menuitem-indicator-pressed@2x.png Binary files differnew file mode 100644 index 00000000..e2342547 --- /dev/null +++ b/src/imports/controls/imagine/images/menuitem-indicator-pressed@2x.png diff --git a/src/imports/controls/imagine/images/menuitem-indicator-pressed@3x.png b/src/imports/controls/imagine/images/menuitem-indicator-pressed@3x.png Binary files differnew file mode 100644 index 00000000..8ae24d75 --- /dev/null +++ b/src/imports/controls/imagine/images/menuitem-indicator-pressed@3x.png diff --git a/src/imports/controls/imagine/images/menuitem-indicator-pressed@4x.png b/src/imports/controls/imagine/images/menuitem-indicator-pressed@4x.png Binary files differnew file mode 100644 index 00000000..04a32370 --- /dev/null +++ b/src/imports/controls/imagine/images/menuitem-indicator-pressed@4x.png diff --git a/src/imports/controls/imagine/images/menuitem-indicator.png b/src/imports/controls/imagine/images/menuitem-indicator.png Binary files differnew file mode 100644 index 00000000..d7b4c6d1 --- /dev/null +++ b/src/imports/controls/imagine/images/menuitem-indicator.png diff --git a/src/imports/controls/imagine/images/menuitem-indicator@2x.png b/src/imports/controls/imagine/images/menuitem-indicator@2x.png Binary files differnew file mode 100644 index 00000000..0ae3fa8f --- /dev/null +++ b/src/imports/controls/imagine/images/menuitem-indicator@2x.png diff --git a/src/imports/controls/imagine/images/menuitem-indicator@3x.png b/src/imports/controls/imagine/images/menuitem-indicator@3x.png Binary files differnew file mode 100644 index 00000000..f8de503c --- /dev/null +++ b/src/imports/controls/imagine/images/menuitem-indicator@3x.png diff --git a/src/imports/controls/imagine/images/menuitem-indicator@4x.png b/src/imports/controls/imagine/images/menuitem-indicator@4x.png Binary files differnew file mode 100644 index 00000000..4f16042d --- /dev/null +++ b/src/imports/controls/imagine/images/menuitem-indicator@4x.png diff --git a/src/imports/controls/imagine/images/menuseparator-separator.9.png b/src/imports/controls/imagine/images/menuseparator-separator.9.png Binary files differnew file mode 100644 index 00000000..a40feb65 --- /dev/null +++ b/src/imports/controls/imagine/images/menuseparator-separator.9.png diff --git a/src/imports/controls/imagine/images/menuseparator-separator@2x.9.png b/src/imports/controls/imagine/images/menuseparator-separator@2x.9.png Binary files differnew file mode 100644 index 00000000..afb99248 --- /dev/null +++ b/src/imports/controls/imagine/images/menuseparator-separator@2x.9.png diff --git a/src/imports/controls/imagine/images/menuseparator-separator@3x.9.png b/src/imports/controls/imagine/images/menuseparator-separator@3x.9.png Binary files differnew file mode 100644 index 00000000..197400e0 --- /dev/null +++ b/src/imports/controls/imagine/images/menuseparator-separator@3x.9.png diff --git a/src/imports/controls/imagine/images/menuseparator-separator@4x.9.png b/src/imports/controls/imagine/images/menuseparator-separator@4x.9.png Binary files differnew file mode 100644 index 00000000..c4b4ca98 --- /dev/null +++ b/src/imports/controls/imagine/images/menuseparator-separator@4x.9.png diff --git a/src/imports/controls/imagine/images/page-background.png b/src/imports/controls/imagine/images/page-background.png Binary files differnew file mode 100644 index 00000000..01eb7c73 --- /dev/null +++ b/src/imports/controls/imagine/images/page-background.png diff --git a/src/imports/controls/imagine/images/page-background@2x.png b/src/imports/controls/imagine/images/page-background@2x.png Binary files differnew file mode 100644 index 00000000..72be785c --- /dev/null +++ b/src/imports/controls/imagine/images/page-background@2x.png diff --git a/src/imports/controls/imagine/images/page-background@3x.png b/src/imports/controls/imagine/images/page-background@3x.png Binary files differnew file mode 100644 index 00000000..a488f592 --- /dev/null +++ b/src/imports/controls/imagine/images/page-background@3x.png diff --git a/src/imports/controls/imagine/images/page-background@4x.png b/src/imports/controls/imagine/images/page-background@4x.png Binary files differnew file mode 100644 index 00000000..9343da95 --- /dev/null +++ b/src/imports/controls/imagine/images/page-background@4x.png diff --git a/src/imports/controls/imagine/images/pageindicator-delegate-current.png b/src/imports/controls/imagine/images/pageindicator-delegate-current.png Binary files differnew file mode 100644 index 00000000..002b76e9 --- /dev/null +++ b/src/imports/controls/imagine/images/pageindicator-delegate-current.png diff --git a/src/imports/controls/imagine/images/pageindicator-delegate-current@2x.png b/src/imports/controls/imagine/images/pageindicator-delegate-current@2x.png Binary files differnew file mode 100644 index 00000000..47fc8d5a --- /dev/null +++ b/src/imports/controls/imagine/images/pageindicator-delegate-current@2x.png diff --git a/src/imports/controls/imagine/images/pageindicator-delegate-current@3x.png b/src/imports/controls/imagine/images/pageindicator-delegate-current@3x.png Binary files differnew file mode 100644 index 00000000..e6bfd1e9 --- /dev/null +++ b/src/imports/controls/imagine/images/pageindicator-delegate-current@3x.png diff --git a/src/imports/controls/imagine/images/pageindicator-delegate-current@4x.png b/src/imports/controls/imagine/images/pageindicator-delegate-current@4x.png Binary files differnew file mode 100644 index 00000000..f7c7248f --- /dev/null +++ b/src/imports/controls/imagine/images/pageindicator-delegate-current@4x.png diff --git a/src/imports/controls/imagine/images/pageindicator-delegate-disabled-current.png b/src/imports/controls/imagine/images/pageindicator-delegate-disabled-current.png Binary files differnew file mode 100644 index 00000000..8aae9d8b --- /dev/null +++ b/src/imports/controls/imagine/images/pageindicator-delegate-disabled-current.png diff --git a/src/imports/controls/imagine/images/pageindicator-delegate-disabled-current@2x.png b/src/imports/controls/imagine/images/pageindicator-delegate-disabled-current@2x.png Binary files differnew file mode 100644 index 00000000..b5a65c9e --- /dev/null +++ b/src/imports/controls/imagine/images/pageindicator-delegate-disabled-current@2x.png diff --git a/src/imports/controls/imagine/images/pageindicator-delegate-disabled-current@3x.png b/src/imports/controls/imagine/images/pageindicator-delegate-disabled-current@3x.png Binary files differnew file mode 100644 index 00000000..8a3e10e1 --- /dev/null +++ b/src/imports/controls/imagine/images/pageindicator-delegate-disabled-current@3x.png diff --git a/src/imports/controls/imagine/images/pageindicator-delegate-disabled-current@4x.png b/src/imports/controls/imagine/images/pageindicator-delegate-disabled-current@4x.png Binary files differnew file mode 100644 index 00000000..58c3d3b8 --- /dev/null +++ b/src/imports/controls/imagine/images/pageindicator-delegate-disabled-current@4x.png diff --git a/src/imports/controls/imagine/images/pageindicator-delegate-disabled.png b/src/imports/controls/imagine/images/pageindicator-delegate-disabled.png Binary files differnew file mode 100644 index 00000000..8aae9d8b --- /dev/null +++ b/src/imports/controls/imagine/images/pageindicator-delegate-disabled.png diff --git a/src/imports/controls/imagine/images/pageindicator-delegate-disabled@2x.png b/src/imports/controls/imagine/images/pageindicator-delegate-disabled@2x.png Binary files differnew file mode 100644 index 00000000..b5a65c9e --- /dev/null +++ b/src/imports/controls/imagine/images/pageindicator-delegate-disabled@2x.png diff --git a/src/imports/controls/imagine/images/pageindicator-delegate-disabled@3x.png b/src/imports/controls/imagine/images/pageindicator-delegate-disabled@3x.png Binary files differnew file mode 100644 index 00000000..8a3e10e1 --- /dev/null +++ b/src/imports/controls/imagine/images/pageindicator-delegate-disabled@3x.png diff --git a/src/imports/controls/imagine/images/pageindicator-delegate-disabled@4x.png b/src/imports/controls/imagine/images/pageindicator-delegate-disabled@4x.png Binary files differnew file mode 100644 index 00000000..58c3d3b8 --- /dev/null +++ b/src/imports/controls/imagine/images/pageindicator-delegate-disabled@4x.png diff --git a/src/imports/controls/imagine/images/pageindicator-delegate-pressed.png b/src/imports/controls/imagine/images/pageindicator-delegate-pressed.png Binary files differnew file mode 100644 index 00000000..002b76e9 --- /dev/null +++ b/src/imports/controls/imagine/images/pageindicator-delegate-pressed.png diff --git a/src/imports/controls/imagine/images/pageindicator-delegate-pressed@2x.png b/src/imports/controls/imagine/images/pageindicator-delegate-pressed@2x.png Binary files differnew file mode 100644 index 00000000..47fc8d5a --- /dev/null +++ b/src/imports/controls/imagine/images/pageindicator-delegate-pressed@2x.png diff --git a/src/imports/controls/imagine/images/pageindicator-delegate-pressed@3x.png b/src/imports/controls/imagine/images/pageindicator-delegate-pressed@3x.png Binary files differnew file mode 100644 index 00000000..e6bfd1e9 --- /dev/null +++ b/src/imports/controls/imagine/images/pageindicator-delegate-pressed@3x.png diff --git a/src/imports/controls/imagine/images/pageindicator-delegate-pressed@4x.png b/src/imports/controls/imagine/images/pageindicator-delegate-pressed@4x.png Binary files differnew file mode 100644 index 00000000..f7c7248f --- /dev/null +++ b/src/imports/controls/imagine/images/pageindicator-delegate-pressed@4x.png diff --git a/src/imports/controls/imagine/images/pageindicator-delegate.png b/src/imports/controls/imagine/images/pageindicator-delegate.png Binary files differnew file mode 100644 index 00000000..9e13a5ac --- /dev/null +++ b/src/imports/controls/imagine/images/pageindicator-delegate.png diff --git a/src/imports/controls/imagine/images/pageindicator-delegate@2x.png b/src/imports/controls/imagine/images/pageindicator-delegate@2x.png Binary files differnew file mode 100644 index 00000000..806b7e22 --- /dev/null +++ b/src/imports/controls/imagine/images/pageindicator-delegate@2x.png diff --git a/src/imports/controls/imagine/images/pageindicator-delegate@3x.png b/src/imports/controls/imagine/images/pageindicator-delegate@3x.png Binary files differnew file mode 100644 index 00000000..05e8f362 --- /dev/null +++ b/src/imports/controls/imagine/images/pageindicator-delegate@3x.png diff --git a/src/imports/controls/imagine/images/pageindicator-delegate@4x.png b/src/imports/controls/imagine/images/pageindicator-delegate@4x.png Binary files differnew file mode 100644 index 00000000..1ac5ccda --- /dev/null +++ b/src/imports/controls/imagine/images/pageindicator-delegate@4x.png diff --git a/src/imports/controls/imagine/images/pane-background.9.png b/src/imports/controls/imagine/images/pane-background.9.png Binary files differnew file mode 100644 index 00000000..5024788e --- /dev/null +++ b/src/imports/controls/imagine/images/pane-background.9.png diff --git a/src/imports/controls/imagine/images/pane-background@2x.9.png b/src/imports/controls/imagine/images/pane-background@2x.9.png Binary files differnew file mode 100644 index 00000000..1ed91fee --- /dev/null +++ b/src/imports/controls/imagine/images/pane-background@2x.9.png diff --git a/src/imports/controls/imagine/images/pane-background@3x.9.png b/src/imports/controls/imagine/images/pane-background@3x.9.png Binary files differnew file mode 100644 index 00000000..c85e09f2 --- /dev/null +++ b/src/imports/controls/imagine/images/pane-background@3x.9.png diff --git a/src/imports/controls/imagine/images/pane-background@4x.9.png b/src/imports/controls/imagine/images/pane-background@4x.9.png Binary files differnew file mode 100644 index 00000000..e117bed0 --- /dev/null +++ b/src/imports/controls/imagine/images/pane-background@4x.9.png diff --git a/src/imports/controls/imagine/images/popup-background.9.png b/src/imports/controls/imagine/images/popup-background.9.png Binary files differnew file mode 100644 index 00000000..495d2f0d --- /dev/null +++ b/src/imports/controls/imagine/images/popup-background.9.png diff --git a/src/imports/controls/imagine/images/popup-background@2x.9.png b/src/imports/controls/imagine/images/popup-background@2x.9.png Binary files differnew file mode 100644 index 00000000..ba0df866 --- /dev/null +++ b/src/imports/controls/imagine/images/popup-background@2x.9.png diff --git a/src/imports/controls/imagine/images/popup-background@3x.9.png b/src/imports/controls/imagine/images/popup-background@3x.9.png Binary files differnew file mode 100644 index 00000000..e71856a5 --- /dev/null +++ b/src/imports/controls/imagine/images/popup-background@3x.9.png diff --git a/src/imports/controls/imagine/images/popup-background@4x.9.png b/src/imports/controls/imagine/images/popup-background@4x.9.png Binary files differnew file mode 100644 index 00000000..d756cda5 --- /dev/null +++ b/src/imports/controls/imagine/images/popup-background@4x.9.png diff --git a/src/imports/controls/imagine/images/popup-overlay-modal.png b/src/imports/controls/imagine/images/popup-overlay-modal.png Binary files differnew file mode 100644 index 00000000..296e914a --- /dev/null +++ b/src/imports/controls/imagine/images/popup-overlay-modal.png diff --git a/src/imports/controls/imagine/images/popup-overlay-modal@2x.png b/src/imports/controls/imagine/images/popup-overlay-modal@2x.png Binary files differnew file mode 100644 index 00000000..10c89300 --- /dev/null +++ b/src/imports/controls/imagine/images/popup-overlay-modal@2x.png diff --git a/src/imports/controls/imagine/images/popup-overlay-modal@3x.png b/src/imports/controls/imagine/images/popup-overlay-modal@3x.png Binary files differnew file mode 100644 index 00000000..f65996e9 --- /dev/null +++ b/src/imports/controls/imagine/images/popup-overlay-modal@3x.png diff --git a/src/imports/controls/imagine/images/popup-overlay-modal@4x.png b/src/imports/controls/imagine/images/popup-overlay-modal@4x.png Binary files differnew file mode 100644 index 00000000..a586f381 --- /dev/null +++ b/src/imports/controls/imagine/images/popup-overlay-modal@4x.png diff --git a/src/imports/controls/imagine/images/popup-overlay.png b/src/imports/controls/imagine/images/popup-overlay.png Binary files differnew file mode 100644 index 00000000..e7175b46 --- /dev/null +++ b/src/imports/controls/imagine/images/popup-overlay.png diff --git a/src/imports/controls/imagine/images/popup-overlay@2x.png b/src/imports/controls/imagine/images/popup-overlay@2x.png Binary files differnew file mode 100644 index 00000000..db6566e0 --- /dev/null +++ b/src/imports/controls/imagine/images/popup-overlay@2x.png diff --git a/src/imports/controls/imagine/images/popup-overlay@3x.png b/src/imports/controls/imagine/images/popup-overlay@3x.png Binary files differnew file mode 100644 index 00000000..140e4692 --- /dev/null +++ b/src/imports/controls/imagine/images/popup-overlay@3x.png diff --git a/src/imports/controls/imagine/images/popup-overlay@4x.png b/src/imports/controls/imagine/images/popup-overlay@4x.png Binary files differnew file mode 100644 index 00000000..5115c28a --- /dev/null +++ b/src/imports/controls/imagine/images/popup-overlay@4x.png diff --git a/src/imports/controls/imagine/images/progressbar-animation.webp b/src/imports/controls/imagine/images/progressbar-animation.webp Binary files differnew file mode 100644 index 00000000..51c35c88 --- /dev/null +++ b/src/imports/controls/imagine/images/progressbar-animation.webp diff --git a/src/imports/controls/imagine/images/progressbar-animation@2x.webp b/src/imports/controls/imagine/images/progressbar-animation@2x.webp Binary files differnew file mode 100644 index 00000000..ee120630 --- /dev/null +++ b/src/imports/controls/imagine/images/progressbar-animation@2x.webp diff --git a/src/imports/controls/imagine/images/progressbar-animation@3x.webp b/src/imports/controls/imagine/images/progressbar-animation@3x.webp Binary files differnew file mode 100644 index 00000000..c2f94a74 --- /dev/null +++ b/src/imports/controls/imagine/images/progressbar-animation@3x.webp diff --git a/src/imports/controls/imagine/images/progressbar-animation@4x.webp b/src/imports/controls/imagine/images/progressbar-animation@4x.webp Binary files differnew file mode 100644 index 00000000..d49657e9 --- /dev/null +++ b/src/imports/controls/imagine/images/progressbar-animation@4x.webp diff --git a/src/imports/controls/imagine/images/progressbar-background.9.png b/src/imports/controls/imagine/images/progressbar-background.9.png Binary files differnew file mode 100644 index 00000000..5a8d5ad3 --- /dev/null +++ b/src/imports/controls/imagine/images/progressbar-background.9.png diff --git a/src/imports/controls/imagine/images/progressbar-background@2x.9.png b/src/imports/controls/imagine/images/progressbar-background@2x.9.png Binary files differnew file mode 100644 index 00000000..057f28ff --- /dev/null +++ b/src/imports/controls/imagine/images/progressbar-background@2x.9.png diff --git a/src/imports/controls/imagine/images/progressbar-background@3x.9.png b/src/imports/controls/imagine/images/progressbar-background@3x.9.png Binary files differnew file mode 100644 index 00000000..283f7f72 --- /dev/null +++ b/src/imports/controls/imagine/images/progressbar-background@3x.9.png diff --git a/src/imports/controls/imagine/images/progressbar-background@4x.9.png b/src/imports/controls/imagine/images/progressbar-background@4x.9.png Binary files differnew file mode 100644 index 00000000..0eb1d884 --- /dev/null +++ b/src/imports/controls/imagine/images/progressbar-background@4x.9.png diff --git a/src/imports/controls/imagine/images/progressbar-mask.9.png b/src/imports/controls/imagine/images/progressbar-mask.9.png Binary files differnew file mode 100644 index 00000000..23ddb24e --- /dev/null +++ b/src/imports/controls/imagine/images/progressbar-mask.9.png diff --git a/src/imports/controls/imagine/images/progressbar-mask@2x.9.png b/src/imports/controls/imagine/images/progressbar-mask@2x.9.png Binary files differnew file mode 100644 index 00000000..30d53bdf --- /dev/null +++ b/src/imports/controls/imagine/images/progressbar-mask@2x.9.png diff --git a/src/imports/controls/imagine/images/progressbar-mask@3x.9.png b/src/imports/controls/imagine/images/progressbar-mask@3x.9.png Binary files differnew file mode 100644 index 00000000..0181c822 --- /dev/null +++ b/src/imports/controls/imagine/images/progressbar-mask@3x.9.png diff --git a/src/imports/controls/imagine/images/progressbar-mask@4x.9.png b/src/imports/controls/imagine/images/progressbar-mask@4x.9.png Binary files differnew file mode 100644 index 00000000..f3914cdd --- /dev/null +++ b/src/imports/controls/imagine/images/progressbar-mask@4x.9.png diff --git a/src/imports/controls/imagine/images/progressbar-progress.png b/src/imports/controls/imagine/images/progressbar-progress.png Binary files differnew file mode 100644 index 00000000..9283df02 --- /dev/null +++ b/src/imports/controls/imagine/images/progressbar-progress.png diff --git a/src/imports/controls/imagine/images/progressbar-progress@2x.png b/src/imports/controls/imagine/images/progressbar-progress@2x.png Binary files differnew file mode 100644 index 00000000..efd58da5 --- /dev/null +++ b/src/imports/controls/imagine/images/progressbar-progress@2x.png diff --git a/src/imports/controls/imagine/images/progressbar-progress@3x.png b/src/imports/controls/imagine/images/progressbar-progress@3x.png Binary files differnew file mode 100644 index 00000000..5372fc55 --- /dev/null +++ b/src/imports/controls/imagine/images/progressbar-progress@3x.png diff --git a/src/imports/controls/imagine/images/progressbar-progress@4x.png b/src/imports/controls/imagine/images/progressbar-progress@4x.png Binary files differnew file mode 100644 index 00000000..85925c61 --- /dev/null +++ b/src/imports/controls/imagine/images/progressbar-progress@4x.png diff --git a/src/imports/controls/imagine/images/radiobutton-indicator-checked-focused.png b/src/imports/controls/imagine/images/radiobutton-indicator-checked-focused.png Binary files differnew file mode 100644 index 00000000..8fb9da47 --- /dev/null +++ b/src/imports/controls/imagine/images/radiobutton-indicator-checked-focused.png diff --git a/src/imports/controls/imagine/images/radiobutton-indicator-checked-focused@2x.png b/src/imports/controls/imagine/images/radiobutton-indicator-checked-focused@2x.png Binary files differnew file mode 100644 index 00000000..86f8043e --- /dev/null +++ b/src/imports/controls/imagine/images/radiobutton-indicator-checked-focused@2x.png diff --git a/src/imports/controls/imagine/images/radiobutton-indicator-checked-focused@3x.png b/src/imports/controls/imagine/images/radiobutton-indicator-checked-focused@3x.png Binary files differnew file mode 100644 index 00000000..4350141e --- /dev/null +++ b/src/imports/controls/imagine/images/radiobutton-indicator-checked-focused@3x.png diff --git a/src/imports/controls/imagine/images/radiobutton-indicator-checked-focused@4x.png b/src/imports/controls/imagine/images/radiobutton-indicator-checked-focused@4x.png Binary files differnew file mode 100644 index 00000000..3573f597 --- /dev/null +++ b/src/imports/controls/imagine/images/radiobutton-indicator-checked-focused@4x.png diff --git a/src/imports/controls/imagine/images/radiobutton-indicator-checked-hovered.png b/src/imports/controls/imagine/images/radiobutton-indicator-checked-hovered.png Binary files differnew file mode 100644 index 00000000..8fb9da47 --- /dev/null +++ b/src/imports/controls/imagine/images/radiobutton-indicator-checked-hovered.png diff --git a/src/imports/controls/imagine/images/radiobutton-indicator-checked-hovered@2x.png b/src/imports/controls/imagine/images/radiobutton-indicator-checked-hovered@2x.png Binary files differnew file mode 100644 index 00000000..86f8043e --- /dev/null +++ b/src/imports/controls/imagine/images/radiobutton-indicator-checked-hovered@2x.png diff --git a/src/imports/controls/imagine/images/radiobutton-indicator-checked-hovered@3x.png b/src/imports/controls/imagine/images/radiobutton-indicator-checked-hovered@3x.png Binary files differnew file mode 100644 index 00000000..4350141e --- /dev/null +++ b/src/imports/controls/imagine/images/radiobutton-indicator-checked-hovered@3x.png diff --git a/src/imports/controls/imagine/images/radiobutton-indicator-checked-hovered@4x.png b/src/imports/controls/imagine/images/radiobutton-indicator-checked-hovered@4x.png Binary files differnew file mode 100644 index 00000000..3573f597 --- /dev/null +++ b/src/imports/controls/imagine/images/radiobutton-indicator-checked-hovered@4x.png diff --git a/src/imports/controls/imagine/images/radiobutton-indicator-checked-pressed.png b/src/imports/controls/imagine/images/radiobutton-indicator-checked-pressed.png Binary files differnew file mode 100644 index 00000000..e69d4ca0 --- /dev/null +++ b/src/imports/controls/imagine/images/radiobutton-indicator-checked-pressed.png diff --git a/src/imports/controls/imagine/images/radiobutton-indicator-checked-pressed@2x.png b/src/imports/controls/imagine/images/radiobutton-indicator-checked-pressed@2x.png Binary files differnew file mode 100644 index 00000000..48f2ff88 --- /dev/null +++ b/src/imports/controls/imagine/images/radiobutton-indicator-checked-pressed@2x.png diff --git a/src/imports/controls/imagine/images/radiobutton-indicator-checked-pressed@3x.png b/src/imports/controls/imagine/images/radiobutton-indicator-checked-pressed@3x.png Binary files differnew file mode 100644 index 00000000..3eb80f03 --- /dev/null +++ b/src/imports/controls/imagine/images/radiobutton-indicator-checked-pressed@3x.png diff --git a/src/imports/controls/imagine/images/radiobutton-indicator-checked-pressed@4x.png b/src/imports/controls/imagine/images/radiobutton-indicator-checked-pressed@4x.png Binary files differnew file mode 100644 index 00000000..1f02e059 --- /dev/null +++ b/src/imports/controls/imagine/images/radiobutton-indicator-checked-pressed@4x.png diff --git a/src/imports/controls/imagine/images/radiobutton-indicator-checked.png b/src/imports/controls/imagine/images/radiobutton-indicator-checked.png Binary files differnew file mode 100644 index 00000000..dfa8106d --- /dev/null +++ b/src/imports/controls/imagine/images/radiobutton-indicator-checked.png diff --git a/src/imports/controls/imagine/images/radiobutton-indicator-checked@2x.png b/src/imports/controls/imagine/images/radiobutton-indicator-checked@2x.png Binary files differnew file mode 100644 index 00000000..f8696dca --- /dev/null +++ b/src/imports/controls/imagine/images/radiobutton-indicator-checked@2x.png diff --git a/src/imports/controls/imagine/images/radiobutton-indicator-checked@3x.png b/src/imports/controls/imagine/images/radiobutton-indicator-checked@3x.png Binary files differnew file mode 100644 index 00000000..98113a6d --- /dev/null +++ b/src/imports/controls/imagine/images/radiobutton-indicator-checked@3x.png diff --git a/src/imports/controls/imagine/images/radiobutton-indicator-checked@4x.png b/src/imports/controls/imagine/images/radiobutton-indicator-checked@4x.png Binary files differnew file mode 100644 index 00000000..ec9005e1 --- /dev/null +++ b/src/imports/controls/imagine/images/radiobutton-indicator-checked@4x.png diff --git a/src/imports/controls/imagine/images/radiobutton-indicator-disabled.png b/src/imports/controls/imagine/images/radiobutton-indicator-disabled.png Binary files differnew file mode 100644 index 00000000..4a32fe70 --- /dev/null +++ b/src/imports/controls/imagine/images/radiobutton-indicator-disabled.png diff --git a/src/imports/controls/imagine/images/radiobutton-indicator-disabled@2x.png b/src/imports/controls/imagine/images/radiobutton-indicator-disabled@2x.png Binary files differnew file mode 100644 index 00000000..4bd16861 --- /dev/null +++ b/src/imports/controls/imagine/images/radiobutton-indicator-disabled@2x.png diff --git a/src/imports/controls/imagine/images/radiobutton-indicator-disabled@3x.png b/src/imports/controls/imagine/images/radiobutton-indicator-disabled@3x.png Binary files differnew file mode 100644 index 00000000..510e355e --- /dev/null +++ b/src/imports/controls/imagine/images/radiobutton-indicator-disabled@3x.png diff --git a/src/imports/controls/imagine/images/radiobutton-indicator-disabled@4x.png b/src/imports/controls/imagine/images/radiobutton-indicator-disabled@4x.png Binary files differnew file mode 100644 index 00000000..fba264de --- /dev/null +++ b/src/imports/controls/imagine/images/radiobutton-indicator-disabled@4x.png diff --git a/src/imports/controls/imagine/images/radiobutton-indicator-focused.png b/src/imports/controls/imagine/images/radiobutton-indicator-focused.png Binary files differnew file mode 100644 index 00000000..5c0ce213 --- /dev/null +++ b/src/imports/controls/imagine/images/radiobutton-indicator-focused.png diff --git a/src/imports/controls/imagine/images/radiobutton-indicator-focused@2x.png b/src/imports/controls/imagine/images/radiobutton-indicator-focused@2x.png Binary files differnew file mode 100644 index 00000000..5219d908 --- /dev/null +++ b/src/imports/controls/imagine/images/radiobutton-indicator-focused@2x.png diff --git a/src/imports/controls/imagine/images/radiobutton-indicator-focused@3x.png b/src/imports/controls/imagine/images/radiobutton-indicator-focused@3x.png Binary files differnew file mode 100644 index 00000000..eecc21bf --- /dev/null +++ b/src/imports/controls/imagine/images/radiobutton-indicator-focused@3x.png diff --git a/src/imports/controls/imagine/images/radiobutton-indicator-focused@4x.png b/src/imports/controls/imagine/images/radiobutton-indicator-focused@4x.png Binary files differnew file mode 100644 index 00000000..8e6bb9bd --- /dev/null +++ b/src/imports/controls/imagine/images/radiobutton-indicator-focused@4x.png diff --git a/src/imports/controls/imagine/images/radiobutton-indicator-hovered.png b/src/imports/controls/imagine/images/radiobutton-indicator-hovered.png Binary files differnew file mode 100644 index 00000000..5c0ce213 --- /dev/null +++ b/src/imports/controls/imagine/images/radiobutton-indicator-hovered.png diff --git a/src/imports/controls/imagine/images/radiobutton-indicator-hovered@2x.png b/src/imports/controls/imagine/images/radiobutton-indicator-hovered@2x.png Binary files differnew file mode 100644 index 00000000..5219d908 --- /dev/null +++ b/src/imports/controls/imagine/images/radiobutton-indicator-hovered@2x.png diff --git a/src/imports/controls/imagine/images/radiobutton-indicator-hovered@3x.png b/src/imports/controls/imagine/images/radiobutton-indicator-hovered@3x.png Binary files differnew file mode 100644 index 00000000..eecc21bf --- /dev/null +++ b/src/imports/controls/imagine/images/radiobutton-indicator-hovered@3x.png diff --git a/src/imports/controls/imagine/images/radiobutton-indicator-hovered@4x.png b/src/imports/controls/imagine/images/radiobutton-indicator-hovered@4x.png Binary files differnew file mode 100644 index 00000000..8e6bb9bd --- /dev/null +++ b/src/imports/controls/imagine/images/radiobutton-indicator-hovered@4x.png diff --git a/src/imports/controls/imagine/images/radiobutton-indicator-pressed.png b/src/imports/controls/imagine/images/radiobutton-indicator-pressed.png Binary files differnew file mode 100644 index 00000000..d9a1cd01 --- /dev/null +++ b/src/imports/controls/imagine/images/radiobutton-indicator-pressed.png diff --git a/src/imports/controls/imagine/images/radiobutton-indicator-pressed@2x.png b/src/imports/controls/imagine/images/radiobutton-indicator-pressed@2x.png Binary files differnew file mode 100644 index 00000000..e3cd65cb --- /dev/null +++ b/src/imports/controls/imagine/images/radiobutton-indicator-pressed@2x.png diff --git a/src/imports/controls/imagine/images/radiobutton-indicator-pressed@3x.png b/src/imports/controls/imagine/images/radiobutton-indicator-pressed@3x.png Binary files differnew file mode 100644 index 00000000..7857bff7 --- /dev/null +++ b/src/imports/controls/imagine/images/radiobutton-indicator-pressed@3x.png diff --git a/src/imports/controls/imagine/images/radiobutton-indicator-pressed@4x.png b/src/imports/controls/imagine/images/radiobutton-indicator-pressed@4x.png Binary files differnew file mode 100644 index 00000000..7f3b3548 --- /dev/null +++ b/src/imports/controls/imagine/images/radiobutton-indicator-pressed@4x.png diff --git a/src/imports/controls/imagine/images/radiobutton-indicator.png b/src/imports/controls/imagine/images/radiobutton-indicator.png Binary files differnew file mode 100644 index 00000000..7f7a88ad --- /dev/null +++ b/src/imports/controls/imagine/images/radiobutton-indicator.png diff --git a/src/imports/controls/imagine/images/radiobutton-indicator@2x.png b/src/imports/controls/imagine/images/radiobutton-indicator@2x.png Binary files differnew file mode 100644 index 00000000..250117b4 --- /dev/null +++ b/src/imports/controls/imagine/images/radiobutton-indicator@2x.png diff --git a/src/imports/controls/imagine/images/radiobutton-indicator@3x.png b/src/imports/controls/imagine/images/radiobutton-indicator@3x.png Binary files differnew file mode 100644 index 00000000..5011f4da --- /dev/null +++ b/src/imports/controls/imagine/images/radiobutton-indicator@3x.png diff --git a/src/imports/controls/imagine/images/radiobutton-indicator@4x.png b/src/imports/controls/imagine/images/radiobutton-indicator@4x.png Binary files differnew file mode 100644 index 00000000..538f11a1 --- /dev/null +++ b/src/imports/controls/imagine/images/radiobutton-indicator@4x.png diff --git a/src/imports/controls/imagine/images/radiodelegate-background-disabled.9.png b/src/imports/controls/imagine/images/radiodelegate-background-disabled.9.png Binary files differnew file mode 100644 index 00000000..4b56fe35 --- /dev/null +++ b/src/imports/controls/imagine/images/radiodelegate-background-disabled.9.png diff --git a/src/imports/controls/imagine/images/radiodelegate-background-disabled@2x.9.png b/src/imports/controls/imagine/images/radiodelegate-background-disabled@2x.9.png Binary files differnew file mode 100644 index 00000000..34edef58 --- /dev/null +++ b/src/imports/controls/imagine/images/radiodelegate-background-disabled@2x.9.png diff --git a/src/imports/controls/imagine/images/radiodelegate-background-disabled@3x.9.png b/src/imports/controls/imagine/images/radiodelegate-background-disabled@3x.9.png Binary files differnew file mode 100644 index 00000000..dd2cc6ba --- /dev/null +++ b/src/imports/controls/imagine/images/radiodelegate-background-disabled@3x.9.png diff --git a/src/imports/controls/imagine/images/radiodelegate-background-disabled@4x.9.png b/src/imports/controls/imagine/images/radiodelegate-background-disabled@4x.9.png Binary files differnew file mode 100644 index 00000000..b7890a3c --- /dev/null +++ b/src/imports/controls/imagine/images/radiodelegate-background-disabled@4x.9.png diff --git a/src/imports/controls/imagine/images/radiodelegate-background-focused.9.png b/src/imports/controls/imagine/images/radiodelegate-background-focused.9.png Binary files differnew file mode 100644 index 00000000..b31343dd --- /dev/null +++ b/src/imports/controls/imagine/images/radiodelegate-background-focused.9.png diff --git a/src/imports/controls/imagine/images/radiodelegate-background-focused@2x.9.png b/src/imports/controls/imagine/images/radiodelegate-background-focused@2x.9.png Binary files differnew file mode 100644 index 00000000..c56c62da --- /dev/null +++ b/src/imports/controls/imagine/images/radiodelegate-background-focused@2x.9.png diff --git a/src/imports/controls/imagine/images/radiodelegate-background-focused@3x.9.png b/src/imports/controls/imagine/images/radiodelegate-background-focused@3x.9.png Binary files differnew file mode 100644 index 00000000..bfbc82f9 --- /dev/null +++ b/src/imports/controls/imagine/images/radiodelegate-background-focused@3x.9.png diff --git a/src/imports/controls/imagine/images/radiodelegate-background-focused@4x.9.png b/src/imports/controls/imagine/images/radiodelegate-background-focused@4x.9.png Binary files differnew file mode 100644 index 00000000..e31ab63b --- /dev/null +++ b/src/imports/controls/imagine/images/radiodelegate-background-focused@4x.9.png diff --git a/src/imports/controls/imagine/images/radiodelegate-background-highlighted.9.png b/src/imports/controls/imagine/images/radiodelegate-background-highlighted.9.png Binary files differnew file mode 100644 index 00000000..32847cfa --- /dev/null +++ b/src/imports/controls/imagine/images/radiodelegate-background-highlighted.9.png diff --git a/src/imports/controls/imagine/images/radiodelegate-background-highlighted@2x.9.png b/src/imports/controls/imagine/images/radiodelegate-background-highlighted@2x.9.png Binary files differnew file mode 100644 index 00000000..126fcb29 --- /dev/null +++ b/src/imports/controls/imagine/images/radiodelegate-background-highlighted@2x.9.png diff --git a/src/imports/controls/imagine/images/radiodelegate-background-highlighted@3x.9.png b/src/imports/controls/imagine/images/radiodelegate-background-highlighted@3x.9.png Binary files differnew file mode 100644 index 00000000..22b7c9f2 --- /dev/null +++ b/src/imports/controls/imagine/images/radiodelegate-background-highlighted@3x.9.png diff --git a/src/imports/controls/imagine/images/radiodelegate-background-highlighted@4x.9.png b/src/imports/controls/imagine/images/radiodelegate-background-highlighted@4x.9.png Binary files differnew file mode 100644 index 00000000..4e67f310 --- /dev/null +++ b/src/imports/controls/imagine/images/radiodelegate-background-highlighted@4x.9.png diff --git a/src/imports/controls/imagine/images/radiodelegate-background-hovered.9.png b/src/imports/controls/imagine/images/radiodelegate-background-hovered.9.png Binary files differnew file mode 100644 index 00000000..a53f63cd --- /dev/null +++ b/src/imports/controls/imagine/images/radiodelegate-background-hovered.9.png diff --git a/src/imports/controls/imagine/images/radiodelegate-background-hovered@2x.9.png b/src/imports/controls/imagine/images/radiodelegate-background-hovered@2x.9.png Binary files differnew file mode 100644 index 00000000..07510b10 --- /dev/null +++ b/src/imports/controls/imagine/images/radiodelegate-background-hovered@2x.9.png diff --git a/src/imports/controls/imagine/images/radiodelegate-background-hovered@3x.9.png b/src/imports/controls/imagine/images/radiodelegate-background-hovered@3x.9.png Binary files differnew file mode 100644 index 00000000..db2a210a --- /dev/null +++ b/src/imports/controls/imagine/images/radiodelegate-background-hovered@3x.9.png diff --git a/src/imports/controls/imagine/images/radiodelegate-background-hovered@4x.9.png b/src/imports/controls/imagine/images/radiodelegate-background-hovered@4x.9.png Binary files differnew file mode 100644 index 00000000..6427d7ab --- /dev/null +++ b/src/imports/controls/imagine/images/radiodelegate-background-hovered@4x.9.png diff --git a/src/imports/controls/imagine/images/radiodelegate-background-pressed.9.png b/src/imports/controls/imagine/images/radiodelegate-background-pressed.9.png Binary files differnew file mode 100644 index 00000000..b31343dd --- /dev/null +++ b/src/imports/controls/imagine/images/radiodelegate-background-pressed.9.png diff --git a/src/imports/controls/imagine/images/radiodelegate-background-pressed@2x.9.png b/src/imports/controls/imagine/images/radiodelegate-background-pressed@2x.9.png Binary files differnew file mode 100644 index 00000000..c56c62da --- /dev/null +++ b/src/imports/controls/imagine/images/radiodelegate-background-pressed@2x.9.png diff --git a/src/imports/controls/imagine/images/radiodelegate-background-pressed@3x.9.png b/src/imports/controls/imagine/images/radiodelegate-background-pressed@3x.9.png Binary files differnew file mode 100644 index 00000000..bfbc82f9 --- /dev/null +++ b/src/imports/controls/imagine/images/radiodelegate-background-pressed@3x.9.png diff --git a/src/imports/controls/imagine/images/radiodelegate-background-pressed@4x.9.png b/src/imports/controls/imagine/images/radiodelegate-background-pressed@4x.9.png Binary files differnew file mode 100644 index 00000000..e31ab63b --- /dev/null +++ b/src/imports/controls/imagine/images/radiodelegate-background-pressed@4x.9.png diff --git a/src/imports/controls/imagine/images/radiodelegate-background.9.png b/src/imports/controls/imagine/images/radiodelegate-background.9.png Binary files differnew file mode 100644 index 00000000..a53f63cd --- /dev/null +++ b/src/imports/controls/imagine/images/radiodelegate-background.9.png diff --git a/src/imports/controls/imagine/images/radiodelegate-background@2x.9.png b/src/imports/controls/imagine/images/radiodelegate-background@2x.9.png Binary files differnew file mode 100644 index 00000000..07510b10 --- /dev/null +++ b/src/imports/controls/imagine/images/radiodelegate-background@2x.9.png diff --git a/src/imports/controls/imagine/images/radiodelegate-background@3x.9.png b/src/imports/controls/imagine/images/radiodelegate-background@3x.9.png Binary files differnew file mode 100644 index 00000000..db2a210a --- /dev/null +++ b/src/imports/controls/imagine/images/radiodelegate-background@3x.9.png diff --git a/src/imports/controls/imagine/images/radiodelegate-background@4x.9.png b/src/imports/controls/imagine/images/radiodelegate-background@4x.9.png Binary files differnew file mode 100644 index 00000000..6427d7ab --- /dev/null +++ b/src/imports/controls/imagine/images/radiodelegate-background@4x.9.png diff --git a/src/imports/controls/imagine/images/radiodelegate-indicator-checked-focused.png b/src/imports/controls/imagine/images/radiodelegate-indicator-checked-focused.png Binary files differnew file mode 100644 index 00000000..8fb9da47 --- /dev/null +++ b/src/imports/controls/imagine/images/radiodelegate-indicator-checked-focused.png diff --git a/src/imports/controls/imagine/images/radiodelegate-indicator-checked-focused@2x.png b/src/imports/controls/imagine/images/radiodelegate-indicator-checked-focused@2x.png Binary files differnew file mode 100644 index 00000000..86f8043e --- /dev/null +++ b/src/imports/controls/imagine/images/radiodelegate-indicator-checked-focused@2x.png diff --git a/src/imports/controls/imagine/images/radiodelegate-indicator-checked-focused@3x.png b/src/imports/controls/imagine/images/radiodelegate-indicator-checked-focused@3x.png Binary files differnew file mode 100644 index 00000000..4350141e --- /dev/null +++ b/src/imports/controls/imagine/images/radiodelegate-indicator-checked-focused@3x.png diff --git a/src/imports/controls/imagine/images/radiodelegate-indicator-checked-focused@4x.png b/src/imports/controls/imagine/images/radiodelegate-indicator-checked-focused@4x.png Binary files differnew file mode 100644 index 00000000..3573f597 --- /dev/null +++ b/src/imports/controls/imagine/images/radiodelegate-indicator-checked-focused@4x.png diff --git a/src/imports/controls/imagine/images/radiodelegate-indicator-checked-hovered.png b/src/imports/controls/imagine/images/radiodelegate-indicator-checked-hovered.png Binary files differnew file mode 100644 index 00000000..8fb9da47 --- /dev/null +++ b/src/imports/controls/imagine/images/radiodelegate-indicator-checked-hovered.png diff --git a/src/imports/controls/imagine/images/radiodelegate-indicator-checked-hovered@2x.png b/src/imports/controls/imagine/images/radiodelegate-indicator-checked-hovered@2x.png Binary files differnew file mode 100644 index 00000000..86f8043e --- /dev/null +++ b/src/imports/controls/imagine/images/radiodelegate-indicator-checked-hovered@2x.png diff --git a/src/imports/controls/imagine/images/radiodelegate-indicator-checked-hovered@3x.png b/src/imports/controls/imagine/images/radiodelegate-indicator-checked-hovered@3x.png Binary files differnew file mode 100644 index 00000000..4350141e --- /dev/null +++ b/src/imports/controls/imagine/images/radiodelegate-indicator-checked-hovered@3x.png diff --git a/src/imports/controls/imagine/images/radiodelegate-indicator-checked-hovered@4x.png b/src/imports/controls/imagine/images/radiodelegate-indicator-checked-hovered@4x.png Binary files differnew file mode 100644 index 00000000..3573f597 --- /dev/null +++ b/src/imports/controls/imagine/images/radiodelegate-indicator-checked-hovered@4x.png diff --git a/src/imports/controls/imagine/images/radiodelegate-indicator-checked-pressed.png b/src/imports/controls/imagine/images/radiodelegate-indicator-checked-pressed.png Binary files differnew file mode 100644 index 00000000..e69d4ca0 --- /dev/null +++ b/src/imports/controls/imagine/images/radiodelegate-indicator-checked-pressed.png diff --git a/src/imports/controls/imagine/images/radiodelegate-indicator-checked-pressed@2x.png b/src/imports/controls/imagine/images/radiodelegate-indicator-checked-pressed@2x.png Binary files differnew file mode 100644 index 00000000..48f2ff88 --- /dev/null +++ b/src/imports/controls/imagine/images/radiodelegate-indicator-checked-pressed@2x.png diff --git a/src/imports/controls/imagine/images/radiodelegate-indicator-checked-pressed@3x.png b/src/imports/controls/imagine/images/radiodelegate-indicator-checked-pressed@3x.png Binary files differnew file mode 100644 index 00000000..3eb80f03 --- /dev/null +++ b/src/imports/controls/imagine/images/radiodelegate-indicator-checked-pressed@3x.png diff --git a/src/imports/controls/imagine/images/radiodelegate-indicator-checked-pressed@4x.png b/src/imports/controls/imagine/images/radiodelegate-indicator-checked-pressed@4x.png Binary files differnew file mode 100644 index 00000000..1f02e059 --- /dev/null +++ b/src/imports/controls/imagine/images/radiodelegate-indicator-checked-pressed@4x.png diff --git a/src/imports/controls/imagine/images/radiodelegate-indicator-checked.png b/src/imports/controls/imagine/images/radiodelegate-indicator-checked.png Binary files differnew file mode 100644 index 00000000..dfa8106d --- /dev/null +++ b/src/imports/controls/imagine/images/radiodelegate-indicator-checked.png diff --git a/src/imports/controls/imagine/images/radiodelegate-indicator-checked@2x.png b/src/imports/controls/imagine/images/radiodelegate-indicator-checked@2x.png Binary files differnew file mode 100644 index 00000000..f8696dca --- /dev/null +++ b/src/imports/controls/imagine/images/radiodelegate-indicator-checked@2x.png diff --git a/src/imports/controls/imagine/images/radiodelegate-indicator-checked@3x.png b/src/imports/controls/imagine/images/radiodelegate-indicator-checked@3x.png Binary files differnew file mode 100644 index 00000000..98113a6d --- /dev/null +++ b/src/imports/controls/imagine/images/radiodelegate-indicator-checked@3x.png diff --git a/src/imports/controls/imagine/images/radiodelegate-indicator-checked@4x.png b/src/imports/controls/imagine/images/radiodelegate-indicator-checked@4x.png Binary files differnew file mode 100644 index 00000000..ec9005e1 --- /dev/null +++ b/src/imports/controls/imagine/images/radiodelegate-indicator-checked@4x.png diff --git a/src/imports/controls/imagine/images/radiodelegate-indicator-disabled.png b/src/imports/controls/imagine/images/radiodelegate-indicator-disabled.png Binary files differnew file mode 100644 index 00000000..4a32fe70 --- /dev/null +++ b/src/imports/controls/imagine/images/radiodelegate-indicator-disabled.png diff --git a/src/imports/controls/imagine/images/radiodelegate-indicator-disabled@2x.png b/src/imports/controls/imagine/images/radiodelegate-indicator-disabled@2x.png Binary files differnew file mode 100644 index 00000000..4bd16861 --- /dev/null +++ b/src/imports/controls/imagine/images/radiodelegate-indicator-disabled@2x.png diff --git a/src/imports/controls/imagine/images/radiodelegate-indicator-disabled@3x.png b/src/imports/controls/imagine/images/radiodelegate-indicator-disabled@3x.png Binary files differnew file mode 100644 index 00000000..510e355e --- /dev/null +++ b/src/imports/controls/imagine/images/radiodelegate-indicator-disabled@3x.png diff --git a/src/imports/controls/imagine/images/radiodelegate-indicator-disabled@4x.png b/src/imports/controls/imagine/images/radiodelegate-indicator-disabled@4x.png Binary files differnew file mode 100644 index 00000000..fba264de --- /dev/null +++ b/src/imports/controls/imagine/images/radiodelegate-indicator-disabled@4x.png diff --git a/src/imports/controls/imagine/images/radiodelegate-indicator-focused.png b/src/imports/controls/imagine/images/radiodelegate-indicator-focused.png Binary files differnew file mode 100644 index 00000000..5c0ce213 --- /dev/null +++ b/src/imports/controls/imagine/images/radiodelegate-indicator-focused.png diff --git a/src/imports/controls/imagine/images/radiodelegate-indicator-focused@2x.png b/src/imports/controls/imagine/images/radiodelegate-indicator-focused@2x.png Binary files differnew file mode 100644 index 00000000..5219d908 --- /dev/null +++ b/src/imports/controls/imagine/images/radiodelegate-indicator-focused@2x.png diff --git a/src/imports/controls/imagine/images/radiodelegate-indicator-focused@3x.png b/src/imports/controls/imagine/images/radiodelegate-indicator-focused@3x.png Binary files differnew file mode 100644 index 00000000..eecc21bf --- /dev/null +++ b/src/imports/controls/imagine/images/radiodelegate-indicator-focused@3x.png diff --git a/src/imports/controls/imagine/images/radiodelegate-indicator-focused@4x.png b/src/imports/controls/imagine/images/radiodelegate-indicator-focused@4x.png Binary files differnew file mode 100644 index 00000000..8e6bb9bd --- /dev/null +++ b/src/imports/controls/imagine/images/radiodelegate-indicator-focused@4x.png diff --git a/src/imports/controls/imagine/images/radiodelegate-indicator-hovered.png b/src/imports/controls/imagine/images/radiodelegate-indicator-hovered.png Binary files differnew file mode 100644 index 00000000..5c0ce213 --- /dev/null +++ b/src/imports/controls/imagine/images/radiodelegate-indicator-hovered.png diff --git a/src/imports/controls/imagine/images/radiodelegate-indicator-hovered@2x.png b/src/imports/controls/imagine/images/radiodelegate-indicator-hovered@2x.png Binary files differnew file mode 100644 index 00000000..5219d908 --- /dev/null +++ b/src/imports/controls/imagine/images/radiodelegate-indicator-hovered@2x.png diff --git a/src/imports/controls/imagine/images/radiodelegate-indicator-hovered@3x.png b/src/imports/controls/imagine/images/radiodelegate-indicator-hovered@3x.png Binary files differnew file mode 100644 index 00000000..eecc21bf --- /dev/null +++ b/src/imports/controls/imagine/images/radiodelegate-indicator-hovered@3x.png diff --git a/src/imports/controls/imagine/images/radiodelegate-indicator-hovered@4x.png b/src/imports/controls/imagine/images/radiodelegate-indicator-hovered@4x.png Binary files differnew file mode 100644 index 00000000..8e6bb9bd --- /dev/null +++ b/src/imports/controls/imagine/images/radiodelegate-indicator-hovered@4x.png diff --git a/src/imports/controls/imagine/images/radiodelegate-indicator-pressed.png b/src/imports/controls/imagine/images/radiodelegate-indicator-pressed.png Binary files differnew file mode 100644 index 00000000..d9a1cd01 --- /dev/null +++ b/src/imports/controls/imagine/images/radiodelegate-indicator-pressed.png diff --git a/src/imports/controls/imagine/images/radiodelegate-indicator-pressed@2x.png b/src/imports/controls/imagine/images/radiodelegate-indicator-pressed@2x.png Binary files differnew file mode 100644 index 00000000..e3cd65cb --- /dev/null +++ b/src/imports/controls/imagine/images/radiodelegate-indicator-pressed@2x.png diff --git a/src/imports/controls/imagine/images/radiodelegate-indicator-pressed@3x.png b/src/imports/controls/imagine/images/radiodelegate-indicator-pressed@3x.png Binary files differnew file mode 100644 index 00000000..7857bff7 --- /dev/null +++ b/src/imports/controls/imagine/images/radiodelegate-indicator-pressed@3x.png diff --git a/src/imports/controls/imagine/images/radiodelegate-indicator-pressed@4x.png b/src/imports/controls/imagine/images/radiodelegate-indicator-pressed@4x.png Binary files differnew file mode 100644 index 00000000..7f3b3548 --- /dev/null +++ b/src/imports/controls/imagine/images/radiodelegate-indicator-pressed@4x.png diff --git a/src/imports/controls/imagine/images/radiodelegate-indicator.png b/src/imports/controls/imagine/images/radiodelegate-indicator.png Binary files differnew file mode 100644 index 00000000..7f7a88ad --- /dev/null +++ b/src/imports/controls/imagine/images/radiodelegate-indicator.png diff --git a/src/imports/controls/imagine/images/radiodelegate-indicator@2x.png b/src/imports/controls/imagine/images/radiodelegate-indicator@2x.png Binary files differnew file mode 100644 index 00000000..250117b4 --- /dev/null +++ b/src/imports/controls/imagine/images/radiodelegate-indicator@2x.png diff --git a/src/imports/controls/imagine/images/radiodelegate-indicator@3x.png b/src/imports/controls/imagine/images/radiodelegate-indicator@3x.png Binary files differnew file mode 100644 index 00000000..5011f4da --- /dev/null +++ b/src/imports/controls/imagine/images/radiodelegate-indicator@3x.png diff --git a/src/imports/controls/imagine/images/radiodelegate-indicator@4x.png b/src/imports/controls/imagine/images/radiodelegate-indicator@4x.png Binary files differnew file mode 100644 index 00000000..538f11a1 --- /dev/null +++ b/src/imports/controls/imagine/images/radiodelegate-indicator@4x.png diff --git a/src/imports/controls/imagine/images/rangeslider-background-horizontal.9.png b/src/imports/controls/imagine/images/rangeslider-background-horizontal.9.png Binary files differnew file mode 100644 index 00000000..1493d559 --- /dev/null +++ b/src/imports/controls/imagine/images/rangeslider-background-horizontal.9.png diff --git a/src/imports/controls/imagine/images/rangeslider-background-horizontal@2x.9.png b/src/imports/controls/imagine/images/rangeslider-background-horizontal@2x.9.png Binary files differnew file mode 100644 index 00000000..64c87e20 --- /dev/null +++ b/src/imports/controls/imagine/images/rangeslider-background-horizontal@2x.9.png diff --git a/src/imports/controls/imagine/images/rangeslider-background-horizontal@3x.9.png b/src/imports/controls/imagine/images/rangeslider-background-horizontal@3x.9.png Binary files differnew file mode 100644 index 00000000..7ed7de73 --- /dev/null +++ b/src/imports/controls/imagine/images/rangeslider-background-horizontal@3x.9.png diff --git a/src/imports/controls/imagine/images/rangeslider-background-horizontal@4x.9.png b/src/imports/controls/imagine/images/rangeslider-background-horizontal@4x.9.png Binary files differnew file mode 100644 index 00000000..7c45cc7d --- /dev/null +++ b/src/imports/controls/imagine/images/rangeslider-background-horizontal@4x.9.png diff --git a/src/imports/controls/imagine/images/rangeslider-background-vertical.9.png b/src/imports/controls/imagine/images/rangeslider-background-vertical.9.png Binary files differnew file mode 100644 index 00000000..5866879c --- /dev/null +++ b/src/imports/controls/imagine/images/rangeslider-background-vertical.9.png diff --git a/src/imports/controls/imagine/images/rangeslider-background-vertical@2x.9.png b/src/imports/controls/imagine/images/rangeslider-background-vertical@2x.9.png Binary files differnew file mode 100644 index 00000000..f3928ec5 --- /dev/null +++ b/src/imports/controls/imagine/images/rangeslider-background-vertical@2x.9.png diff --git a/src/imports/controls/imagine/images/rangeslider-background-vertical@3x.9.png b/src/imports/controls/imagine/images/rangeslider-background-vertical@3x.9.png Binary files differnew file mode 100644 index 00000000..f49dcb95 --- /dev/null +++ b/src/imports/controls/imagine/images/rangeslider-background-vertical@3x.9.png diff --git a/src/imports/controls/imagine/images/rangeslider-background-vertical@4x.9.png b/src/imports/controls/imagine/images/rangeslider-background-vertical@4x.9.png Binary files differnew file mode 100644 index 00000000..e7203f99 --- /dev/null +++ b/src/imports/controls/imagine/images/rangeslider-background-vertical@4x.9.png diff --git a/src/imports/controls/imagine/images/rangeslider-handle-disabled.png b/src/imports/controls/imagine/images/rangeslider-handle-disabled.png Binary files differnew file mode 100644 index 00000000..88ea4699 --- /dev/null +++ b/src/imports/controls/imagine/images/rangeslider-handle-disabled.png diff --git a/src/imports/controls/imagine/images/rangeslider-handle-disabled@2x.png b/src/imports/controls/imagine/images/rangeslider-handle-disabled@2x.png Binary files differnew file mode 100644 index 00000000..3cad66e2 --- /dev/null +++ b/src/imports/controls/imagine/images/rangeslider-handle-disabled@2x.png diff --git a/src/imports/controls/imagine/images/rangeslider-handle-disabled@3x.png b/src/imports/controls/imagine/images/rangeslider-handle-disabled@3x.png Binary files differnew file mode 100644 index 00000000..18b7482c --- /dev/null +++ b/src/imports/controls/imagine/images/rangeslider-handle-disabled@3x.png diff --git a/src/imports/controls/imagine/images/rangeslider-handle-disabled@4x.png b/src/imports/controls/imagine/images/rangeslider-handle-disabled@4x.png Binary files differnew file mode 100644 index 00000000..1d03b803 --- /dev/null +++ b/src/imports/controls/imagine/images/rangeslider-handle-disabled@4x.png diff --git a/src/imports/controls/imagine/images/rangeslider-handle-focused-hovered.png b/src/imports/controls/imagine/images/rangeslider-handle-focused-hovered.png Binary files differnew file mode 100644 index 00000000..5787bc8d --- /dev/null +++ b/src/imports/controls/imagine/images/rangeslider-handle-focused-hovered.png diff --git a/src/imports/controls/imagine/images/rangeslider-handle-focused-hovered@2x.png b/src/imports/controls/imagine/images/rangeslider-handle-focused-hovered@2x.png Binary files differnew file mode 100644 index 00000000..0663628f --- /dev/null +++ b/src/imports/controls/imagine/images/rangeslider-handle-focused-hovered@2x.png diff --git a/src/imports/controls/imagine/images/rangeslider-handle-focused-hovered@3x.png b/src/imports/controls/imagine/images/rangeslider-handle-focused-hovered@3x.png Binary files differnew file mode 100644 index 00000000..cb6149d3 --- /dev/null +++ b/src/imports/controls/imagine/images/rangeslider-handle-focused-hovered@3x.png diff --git a/src/imports/controls/imagine/images/rangeslider-handle-focused-hovered@4x.png b/src/imports/controls/imagine/images/rangeslider-handle-focused-hovered@4x.png Binary files differnew file mode 100644 index 00000000..21484332 --- /dev/null +++ b/src/imports/controls/imagine/images/rangeslider-handle-focused-hovered@4x.png diff --git a/src/imports/controls/imagine/images/rangeslider-handle-focused-pressed.png b/src/imports/controls/imagine/images/rangeslider-handle-focused-pressed.png Binary files differnew file mode 100644 index 00000000..5787bc8d --- /dev/null +++ b/src/imports/controls/imagine/images/rangeslider-handle-focused-pressed.png diff --git a/src/imports/controls/imagine/images/rangeslider-handle-focused-pressed@2x.png b/src/imports/controls/imagine/images/rangeslider-handle-focused-pressed@2x.png Binary files differnew file mode 100644 index 00000000..0663628f --- /dev/null +++ b/src/imports/controls/imagine/images/rangeslider-handle-focused-pressed@2x.png diff --git a/src/imports/controls/imagine/images/rangeslider-handle-focused-pressed@3x.png b/src/imports/controls/imagine/images/rangeslider-handle-focused-pressed@3x.png Binary files differnew file mode 100644 index 00000000..cb6149d3 --- /dev/null +++ b/src/imports/controls/imagine/images/rangeslider-handle-focused-pressed@3x.png diff --git a/src/imports/controls/imagine/images/rangeslider-handle-focused-pressed@4x.png b/src/imports/controls/imagine/images/rangeslider-handle-focused-pressed@4x.png Binary files differnew file mode 100644 index 00000000..21484332 --- /dev/null +++ b/src/imports/controls/imagine/images/rangeslider-handle-focused-pressed@4x.png diff --git a/src/imports/controls/imagine/images/rangeslider-handle-focused.png b/src/imports/controls/imagine/images/rangeslider-handle-focused.png Binary files differnew file mode 100644 index 00000000..0a0ab739 --- /dev/null +++ b/src/imports/controls/imagine/images/rangeslider-handle-focused.png diff --git a/src/imports/controls/imagine/images/rangeslider-handle-focused@2x.png b/src/imports/controls/imagine/images/rangeslider-handle-focused@2x.png Binary files differnew file mode 100644 index 00000000..8ced0916 --- /dev/null +++ b/src/imports/controls/imagine/images/rangeslider-handle-focused@2x.png diff --git a/src/imports/controls/imagine/images/rangeslider-handle-focused@3x.png b/src/imports/controls/imagine/images/rangeslider-handle-focused@3x.png Binary files differnew file mode 100644 index 00000000..a7bdc453 --- /dev/null +++ b/src/imports/controls/imagine/images/rangeslider-handle-focused@3x.png diff --git a/src/imports/controls/imagine/images/rangeslider-handle-focused@4x.png b/src/imports/controls/imagine/images/rangeslider-handle-focused@4x.png Binary files differnew file mode 100644 index 00000000..5827d534 --- /dev/null +++ b/src/imports/controls/imagine/images/rangeslider-handle-focused@4x.png diff --git a/src/imports/controls/imagine/images/rangeslider-handle-hovered.png b/src/imports/controls/imagine/images/rangeslider-handle-hovered.png Binary files differnew file mode 100644 index 00000000..88ea4699 --- /dev/null +++ b/src/imports/controls/imagine/images/rangeslider-handle-hovered.png diff --git a/src/imports/controls/imagine/images/rangeslider-handle-hovered@2x.png b/src/imports/controls/imagine/images/rangeslider-handle-hovered@2x.png Binary files differnew file mode 100644 index 00000000..3cad66e2 --- /dev/null +++ b/src/imports/controls/imagine/images/rangeslider-handle-hovered@2x.png diff --git a/src/imports/controls/imagine/images/rangeslider-handle-hovered@3x.png b/src/imports/controls/imagine/images/rangeslider-handle-hovered@3x.png Binary files differnew file mode 100644 index 00000000..18b7482c --- /dev/null +++ b/src/imports/controls/imagine/images/rangeslider-handle-hovered@3x.png diff --git a/src/imports/controls/imagine/images/rangeslider-handle-hovered@4x.png b/src/imports/controls/imagine/images/rangeslider-handle-hovered@4x.png Binary files differnew file mode 100644 index 00000000..1d03b803 --- /dev/null +++ b/src/imports/controls/imagine/images/rangeslider-handle-hovered@4x.png diff --git a/src/imports/controls/imagine/images/rangeslider-handle-pressed.png b/src/imports/controls/imagine/images/rangeslider-handle-pressed.png Binary files differnew file mode 100644 index 00000000..88ea4699 --- /dev/null +++ b/src/imports/controls/imagine/images/rangeslider-handle-pressed.png diff --git a/src/imports/controls/imagine/images/rangeslider-handle-pressed@2x.png b/src/imports/controls/imagine/images/rangeslider-handle-pressed@2x.png Binary files differnew file mode 100644 index 00000000..3cad66e2 --- /dev/null +++ b/src/imports/controls/imagine/images/rangeslider-handle-pressed@2x.png diff --git a/src/imports/controls/imagine/images/rangeslider-handle-pressed@3x.png b/src/imports/controls/imagine/images/rangeslider-handle-pressed@3x.png Binary files differnew file mode 100644 index 00000000..18b7482c --- /dev/null +++ b/src/imports/controls/imagine/images/rangeslider-handle-pressed@3x.png diff --git a/src/imports/controls/imagine/images/rangeslider-handle-pressed@4x.png b/src/imports/controls/imagine/images/rangeslider-handle-pressed@4x.png Binary files differnew file mode 100644 index 00000000..1d03b803 --- /dev/null +++ b/src/imports/controls/imagine/images/rangeslider-handle-pressed@4x.png diff --git a/src/imports/controls/imagine/images/rangeslider-handle.png b/src/imports/controls/imagine/images/rangeslider-handle.png Binary files differnew file mode 100644 index 00000000..370f5141 --- /dev/null +++ b/src/imports/controls/imagine/images/rangeslider-handle.png diff --git a/src/imports/controls/imagine/images/rangeslider-handle@2x.png b/src/imports/controls/imagine/images/rangeslider-handle@2x.png Binary files differnew file mode 100644 index 00000000..d98f56d3 --- /dev/null +++ b/src/imports/controls/imagine/images/rangeslider-handle@2x.png diff --git a/src/imports/controls/imagine/images/rangeslider-handle@3x.png b/src/imports/controls/imagine/images/rangeslider-handle@3x.png Binary files differnew file mode 100644 index 00000000..a6e12b61 --- /dev/null +++ b/src/imports/controls/imagine/images/rangeslider-handle@3x.png diff --git a/src/imports/controls/imagine/images/rangeslider-handle@4x.png b/src/imports/controls/imagine/images/rangeslider-handle@4x.png Binary files differnew file mode 100644 index 00000000..194e3496 --- /dev/null +++ b/src/imports/controls/imagine/images/rangeslider-handle@4x.png diff --git a/src/imports/controls/imagine/images/rangeslider-progress-horizontal-disabled.9.png b/src/imports/controls/imagine/images/rangeslider-progress-horizontal-disabled.9.png Binary files differnew file mode 100644 index 00000000..d3a87e37 --- /dev/null +++ b/src/imports/controls/imagine/images/rangeslider-progress-horizontal-disabled.9.png diff --git a/src/imports/controls/imagine/images/rangeslider-progress-horizontal-disabled@2x.9.png b/src/imports/controls/imagine/images/rangeslider-progress-horizontal-disabled@2x.9.png Binary files differnew file mode 100644 index 00000000..b87350eb --- /dev/null +++ b/src/imports/controls/imagine/images/rangeslider-progress-horizontal-disabled@2x.9.png diff --git a/src/imports/controls/imagine/images/rangeslider-progress-horizontal-disabled@3x.9.png b/src/imports/controls/imagine/images/rangeslider-progress-horizontal-disabled@3x.9.png Binary files differnew file mode 100644 index 00000000..a5b7b80c --- /dev/null +++ b/src/imports/controls/imagine/images/rangeslider-progress-horizontal-disabled@3x.9.png diff --git a/src/imports/controls/imagine/images/rangeslider-progress-horizontal-disabled@4x.9.png b/src/imports/controls/imagine/images/rangeslider-progress-horizontal-disabled@4x.9.png Binary files differnew file mode 100644 index 00000000..47975047 --- /dev/null +++ b/src/imports/controls/imagine/images/rangeslider-progress-horizontal-disabled@4x.9.png diff --git a/src/imports/controls/imagine/images/rangeslider-progress-horizontal.9.png b/src/imports/controls/imagine/images/rangeslider-progress-horizontal.9.png Binary files differnew file mode 100644 index 00000000..49adc3ec --- /dev/null +++ b/src/imports/controls/imagine/images/rangeslider-progress-horizontal.9.png diff --git a/src/imports/controls/imagine/images/rangeslider-progress-horizontal@2x.9.png b/src/imports/controls/imagine/images/rangeslider-progress-horizontal@2x.9.png Binary files differnew file mode 100644 index 00000000..b71adeb3 --- /dev/null +++ b/src/imports/controls/imagine/images/rangeslider-progress-horizontal@2x.9.png diff --git a/src/imports/controls/imagine/images/rangeslider-progress-horizontal@3x.9.png b/src/imports/controls/imagine/images/rangeslider-progress-horizontal@3x.9.png Binary files differnew file mode 100644 index 00000000..c78c22b3 --- /dev/null +++ b/src/imports/controls/imagine/images/rangeslider-progress-horizontal@3x.9.png diff --git a/src/imports/controls/imagine/images/rangeslider-progress-horizontal@4x.9.png b/src/imports/controls/imagine/images/rangeslider-progress-horizontal@4x.9.png Binary files differnew file mode 100644 index 00000000..69142b4e --- /dev/null +++ b/src/imports/controls/imagine/images/rangeslider-progress-horizontal@4x.9.png diff --git a/src/imports/controls/imagine/images/rangeslider-progress-vertical-disabled.9.png b/src/imports/controls/imagine/images/rangeslider-progress-vertical-disabled.9.png Binary files differnew file mode 100644 index 00000000..6ae0b6b6 --- /dev/null +++ b/src/imports/controls/imagine/images/rangeslider-progress-vertical-disabled.9.png diff --git a/src/imports/controls/imagine/images/rangeslider-progress-vertical-disabled@2x.9.png b/src/imports/controls/imagine/images/rangeslider-progress-vertical-disabled@2x.9.png Binary files differnew file mode 100644 index 00000000..dacd2692 --- /dev/null +++ b/src/imports/controls/imagine/images/rangeslider-progress-vertical-disabled@2x.9.png diff --git a/src/imports/controls/imagine/images/rangeslider-progress-vertical-disabled@3x.9.png b/src/imports/controls/imagine/images/rangeslider-progress-vertical-disabled@3x.9.png Binary files differnew file mode 100644 index 00000000..23f5461e --- /dev/null +++ b/src/imports/controls/imagine/images/rangeslider-progress-vertical-disabled@3x.9.png diff --git a/src/imports/controls/imagine/images/rangeslider-progress-vertical-disabled@4x.9.png b/src/imports/controls/imagine/images/rangeslider-progress-vertical-disabled@4x.9.png Binary files differnew file mode 100644 index 00000000..9ec4cefe --- /dev/null +++ b/src/imports/controls/imagine/images/rangeslider-progress-vertical-disabled@4x.9.png diff --git a/src/imports/controls/imagine/images/rangeslider-progress-vertical.9.png b/src/imports/controls/imagine/images/rangeslider-progress-vertical.9.png Binary files differnew file mode 100644 index 00000000..c2616422 --- /dev/null +++ b/src/imports/controls/imagine/images/rangeslider-progress-vertical.9.png diff --git a/src/imports/controls/imagine/images/rangeslider-progress-vertical@2x.9.png b/src/imports/controls/imagine/images/rangeslider-progress-vertical@2x.9.png Binary files differnew file mode 100644 index 00000000..0339d4cd --- /dev/null +++ b/src/imports/controls/imagine/images/rangeslider-progress-vertical@2x.9.png diff --git a/src/imports/controls/imagine/images/rangeslider-progress-vertical@3x.9.png b/src/imports/controls/imagine/images/rangeslider-progress-vertical@3x.9.png Binary files differnew file mode 100644 index 00000000..d1d22e60 --- /dev/null +++ b/src/imports/controls/imagine/images/rangeslider-progress-vertical@3x.9.png diff --git a/src/imports/controls/imagine/images/rangeslider-progress-vertical@4x.9.png b/src/imports/controls/imagine/images/rangeslider-progress-vertical@4x.9.png Binary files differnew file mode 100644 index 00000000..f9b96a3b --- /dev/null +++ b/src/imports/controls/imagine/images/rangeslider-progress-vertical@4x.9.png diff --git a/src/imports/controls/imagine/images/roundbutton-background-checked-focused.png b/src/imports/controls/imagine/images/roundbutton-background-checked-focused.png Binary files differnew file mode 100644 index 00000000..543b2d7a --- /dev/null +++ b/src/imports/controls/imagine/images/roundbutton-background-checked-focused.png diff --git a/src/imports/controls/imagine/images/roundbutton-background-checked-focused@2x.png b/src/imports/controls/imagine/images/roundbutton-background-checked-focused@2x.png Binary files differnew file mode 100644 index 00000000..75dceff8 --- /dev/null +++ b/src/imports/controls/imagine/images/roundbutton-background-checked-focused@2x.png diff --git a/src/imports/controls/imagine/images/roundbutton-background-checked-focused@3x.png b/src/imports/controls/imagine/images/roundbutton-background-checked-focused@3x.png Binary files differnew file mode 100644 index 00000000..c504faaf --- /dev/null +++ b/src/imports/controls/imagine/images/roundbutton-background-checked-focused@3x.png diff --git a/src/imports/controls/imagine/images/roundbutton-background-checked-focused@4x.png b/src/imports/controls/imagine/images/roundbutton-background-checked-focused@4x.png Binary files differnew file mode 100644 index 00000000..65c5ecab --- /dev/null +++ b/src/imports/controls/imagine/images/roundbutton-background-checked-focused@4x.png diff --git a/src/imports/controls/imagine/images/roundbutton-background-checked-hovered.png b/src/imports/controls/imagine/images/roundbutton-background-checked-hovered.png Binary files differnew file mode 100644 index 00000000..543b2d7a --- /dev/null +++ b/src/imports/controls/imagine/images/roundbutton-background-checked-hovered.png diff --git a/src/imports/controls/imagine/images/roundbutton-background-checked-hovered@2x.png b/src/imports/controls/imagine/images/roundbutton-background-checked-hovered@2x.png Binary files differnew file mode 100644 index 00000000..75dceff8 --- /dev/null +++ b/src/imports/controls/imagine/images/roundbutton-background-checked-hovered@2x.png diff --git a/src/imports/controls/imagine/images/roundbutton-background-checked-hovered@3x.png b/src/imports/controls/imagine/images/roundbutton-background-checked-hovered@3x.png Binary files differnew file mode 100644 index 00000000..c504faaf --- /dev/null +++ b/src/imports/controls/imagine/images/roundbutton-background-checked-hovered@3x.png diff --git a/src/imports/controls/imagine/images/roundbutton-background-checked-hovered@4x.png b/src/imports/controls/imagine/images/roundbutton-background-checked-hovered@4x.png Binary files differnew file mode 100644 index 00000000..65c5ecab --- /dev/null +++ b/src/imports/controls/imagine/images/roundbutton-background-checked-hovered@4x.png diff --git a/src/imports/controls/imagine/images/roundbutton-background-checked.png b/src/imports/controls/imagine/images/roundbutton-background-checked.png Binary files differnew file mode 100644 index 00000000..e7c15402 --- /dev/null +++ b/src/imports/controls/imagine/images/roundbutton-background-checked.png diff --git a/src/imports/controls/imagine/images/roundbutton-background-checked@2x.png b/src/imports/controls/imagine/images/roundbutton-background-checked@2x.png Binary files differnew file mode 100644 index 00000000..6412ae27 --- /dev/null +++ b/src/imports/controls/imagine/images/roundbutton-background-checked@2x.png diff --git a/src/imports/controls/imagine/images/roundbutton-background-checked@3x.png b/src/imports/controls/imagine/images/roundbutton-background-checked@3x.png Binary files differnew file mode 100644 index 00000000..7c1523cb --- /dev/null +++ b/src/imports/controls/imagine/images/roundbutton-background-checked@3x.png diff --git a/src/imports/controls/imagine/images/roundbutton-background-checked@4x.png b/src/imports/controls/imagine/images/roundbutton-background-checked@4x.png Binary files differnew file mode 100644 index 00000000..887c7579 --- /dev/null +++ b/src/imports/controls/imagine/images/roundbutton-background-checked@4x.png diff --git a/src/imports/controls/imagine/images/roundbutton-background-disabled-checked.png b/src/imports/controls/imagine/images/roundbutton-background-disabled-checked.png Binary files differnew file mode 100644 index 00000000..4bd16861 --- /dev/null +++ b/src/imports/controls/imagine/images/roundbutton-background-disabled-checked.png diff --git a/src/imports/controls/imagine/images/roundbutton-background-disabled-checked@2x.png b/src/imports/controls/imagine/images/roundbutton-background-disabled-checked@2x.png Binary files differnew file mode 100644 index 00000000..fba264de --- /dev/null +++ b/src/imports/controls/imagine/images/roundbutton-background-disabled-checked@2x.png diff --git a/src/imports/controls/imagine/images/roundbutton-background-disabled-checked@3x.png b/src/imports/controls/imagine/images/roundbutton-background-disabled-checked@3x.png Binary files differnew file mode 100644 index 00000000..112ee781 --- /dev/null +++ b/src/imports/controls/imagine/images/roundbutton-background-disabled-checked@3x.png diff --git a/src/imports/controls/imagine/images/roundbutton-background-disabled-checked@4x.png b/src/imports/controls/imagine/images/roundbutton-background-disabled-checked@4x.png Binary files differnew file mode 100644 index 00000000..8ce10a01 --- /dev/null +++ b/src/imports/controls/imagine/images/roundbutton-background-disabled-checked@4x.png diff --git a/src/imports/controls/imagine/images/roundbutton-background-disabled.png b/src/imports/controls/imagine/images/roundbutton-background-disabled.png Binary files differnew file mode 100644 index 00000000..4bd16861 --- /dev/null +++ b/src/imports/controls/imagine/images/roundbutton-background-disabled.png diff --git a/src/imports/controls/imagine/images/roundbutton-background-disabled@2x.png b/src/imports/controls/imagine/images/roundbutton-background-disabled@2x.png Binary files differnew file mode 100644 index 00000000..fba264de --- /dev/null +++ b/src/imports/controls/imagine/images/roundbutton-background-disabled@2x.png diff --git a/src/imports/controls/imagine/images/roundbutton-background-disabled@3x.png b/src/imports/controls/imagine/images/roundbutton-background-disabled@3x.png Binary files differnew file mode 100644 index 00000000..112ee781 --- /dev/null +++ b/src/imports/controls/imagine/images/roundbutton-background-disabled@3x.png diff --git a/src/imports/controls/imagine/images/roundbutton-background-disabled@4x.png b/src/imports/controls/imagine/images/roundbutton-background-disabled@4x.png Binary files differnew file mode 100644 index 00000000..8ce10a01 --- /dev/null +++ b/src/imports/controls/imagine/images/roundbutton-background-disabled@4x.png diff --git a/src/imports/controls/imagine/images/roundbutton-background-focused.png b/src/imports/controls/imagine/images/roundbutton-background-focused.png Binary files differnew file mode 100644 index 00000000..abdada0d --- /dev/null +++ b/src/imports/controls/imagine/images/roundbutton-background-focused.png diff --git a/src/imports/controls/imagine/images/roundbutton-background-focused@2x.png b/src/imports/controls/imagine/images/roundbutton-background-focused@2x.png Binary files differnew file mode 100644 index 00000000..f90efda1 --- /dev/null +++ b/src/imports/controls/imagine/images/roundbutton-background-focused@2x.png diff --git a/src/imports/controls/imagine/images/roundbutton-background-focused@3x.png b/src/imports/controls/imagine/images/roundbutton-background-focused@3x.png Binary files differnew file mode 100644 index 00000000..b1977d97 --- /dev/null +++ b/src/imports/controls/imagine/images/roundbutton-background-focused@3x.png diff --git a/src/imports/controls/imagine/images/roundbutton-background-focused@4x.png b/src/imports/controls/imagine/images/roundbutton-background-focused@4x.png Binary files differnew file mode 100644 index 00000000..2efb3dcc --- /dev/null +++ b/src/imports/controls/imagine/images/roundbutton-background-focused@4x.png diff --git a/src/imports/controls/imagine/images/roundbutton-background-highlighted-focused.png b/src/imports/controls/imagine/images/roundbutton-background-highlighted-focused.png Binary files differnew file mode 100644 index 00000000..64b69500 --- /dev/null +++ b/src/imports/controls/imagine/images/roundbutton-background-highlighted-focused.png diff --git a/src/imports/controls/imagine/images/roundbutton-background-highlighted-focused@2x.png b/src/imports/controls/imagine/images/roundbutton-background-highlighted-focused@2x.png Binary files differnew file mode 100644 index 00000000..60b211d5 --- /dev/null +++ b/src/imports/controls/imagine/images/roundbutton-background-highlighted-focused@2x.png diff --git a/src/imports/controls/imagine/images/roundbutton-background-highlighted-focused@3x.png b/src/imports/controls/imagine/images/roundbutton-background-highlighted-focused@3x.png Binary files differnew file mode 100644 index 00000000..4d6e21eb --- /dev/null +++ b/src/imports/controls/imagine/images/roundbutton-background-highlighted-focused@3x.png diff --git a/src/imports/controls/imagine/images/roundbutton-background-highlighted-focused@4x.png b/src/imports/controls/imagine/images/roundbutton-background-highlighted-focused@4x.png Binary files differnew file mode 100644 index 00000000..03033c20 --- /dev/null +++ b/src/imports/controls/imagine/images/roundbutton-background-highlighted-focused@4x.png diff --git a/src/imports/controls/imagine/images/roundbutton-background-highlighted-hovered.png b/src/imports/controls/imagine/images/roundbutton-background-highlighted-hovered.png Binary files differnew file mode 100644 index 00000000..64b69500 --- /dev/null +++ b/src/imports/controls/imagine/images/roundbutton-background-highlighted-hovered.png diff --git a/src/imports/controls/imagine/images/roundbutton-background-highlighted-hovered@2x.png b/src/imports/controls/imagine/images/roundbutton-background-highlighted-hovered@2x.png Binary files differnew file mode 100644 index 00000000..60b211d5 --- /dev/null +++ b/src/imports/controls/imagine/images/roundbutton-background-highlighted-hovered@2x.png diff --git a/src/imports/controls/imagine/images/roundbutton-background-highlighted-hovered@3x.png b/src/imports/controls/imagine/images/roundbutton-background-highlighted-hovered@3x.png Binary files differnew file mode 100644 index 00000000..4d6e21eb --- /dev/null +++ b/src/imports/controls/imagine/images/roundbutton-background-highlighted-hovered@3x.png diff --git a/src/imports/controls/imagine/images/roundbutton-background-highlighted-hovered@4x.png b/src/imports/controls/imagine/images/roundbutton-background-highlighted-hovered@4x.png Binary files differnew file mode 100644 index 00000000..03033c20 --- /dev/null +++ b/src/imports/controls/imagine/images/roundbutton-background-highlighted-hovered@4x.png diff --git a/src/imports/controls/imagine/images/roundbutton-background-highlighted-pressed.png b/src/imports/controls/imagine/images/roundbutton-background-highlighted-pressed.png Binary files differnew file mode 100644 index 00000000..7a2a06f1 --- /dev/null +++ b/src/imports/controls/imagine/images/roundbutton-background-highlighted-pressed.png diff --git a/src/imports/controls/imagine/images/roundbutton-background-highlighted-pressed@2x.png b/src/imports/controls/imagine/images/roundbutton-background-highlighted-pressed@2x.png Binary files differnew file mode 100644 index 00000000..f2eb51e3 --- /dev/null +++ b/src/imports/controls/imagine/images/roundbutton-background-highlighted-pressed@2x.png diff --git a/src/imports/controls/imagine/images/roundbutton-background-highlighted-pressed@3x.png b/src/imports/controls/imagine/images/roundbutton-background-highlighted-pressed@3x.png Binary files differnew file mode 100644 index 00000000..df6eaf4e --- /dev/null +++ b/src/imports/controls/imagine/images/roundbutton-background-highlighted-pressed@3x.png diff --git a/src/imports/controls/imagine/images/roundbutton-background-highlighted-pressed@4x.png b/src/imports/controls/imagine/images/roundbutton-background-highlighted-pressed@4x.png Binary files differnew file mode 100644 index 00000000..4465f9da --- /dev/null +++ b/src/imports/controls/imagine/images/roundbutton-background-highlighted-pressed@4x.png diff --git a/src/imports/controls/imagine/images/roundbutton-background-highlighted.png b/src/imports/controls/imagine/images/roundbutton-background-highlighted.png Binary files differnew file mode 100644 index 00000000..f0be8431 --- /dev/null +++ b/src/imports/controls/imagine/images/roundbutton-background-highlighted.png diff --git a/src/imports/controls/imagine/images/roundbutton-background-highlighted@2x.png b/src/imports/controls/imagine/images/roundbutton-background-highlighted@2x.png Binary files differnew file mode 100644 index 00000000..dc0ba620 --- /dev/null +++ b/src/imports/controls/imagine/images/roundbutton-background-highlighted@2x.png diff --git a/src/imports/controls/imagine/images/roundbutton-background-highlighted@3x.png b/src/imports/controls/imagine/images/roundbutton-background-highlighted@3x.png Binary files differnew file mode 100644 index 00000000..e178c293 --- /dev/null +++ b/src/imports/controls/imagine/images/roundbutton-background-highlighted@3x.png diff --git a/src/imports/controls/imagine/images/roundbutton-background-highlighted@4x.png b/src/imports/controls/imagine/images/roundbutton-background-highlighted@4x.png Binary files differnew file mode 100644 index 00000000..85f1fa52 --- /dev/null +++ b/src/imports/controls/imagine/images/roundbutton-background-highlighted@4x.png diff --git a/src/imports/controls/imagine/images/roundbutton-background-hovered.png b/src/imports/controls/imagine/images/roundbutton-background-hovered.png Binary files differnew file mode 100644 index 00000000..abdada0d --- /dev/null +++ b/src/imports/controls/imagine/images/roundbutton-background-hovered.png diff --git a/src/imports/controls/imagine/images/roundbutton-background-hovered@2x.png b/src/imports/controls/imagine/images/roundbutton-background-hovered@2x.png Binary files differnew file mode 100644 index 00000000..f90efda1 --- /dev/null +++ b/src/imports/controls/imagine/images/roundbutton-background-hovered@2x.png diff --git a/src/imports/controls/imagine/images/roundbutton-background-hovered@3x.png b/src/imports/controls/imagine/images/roundbutton-background-hovered@3x.png Binary files differnew file mode 100644 index 00000000..b1977d97 --- /dev/null +++ b/src/imports/controls/imagine/images/roundbutton-background-hovered@3x.png diff --git a/src/imports/controls/imagine/images/roundbutton-background-hovered@4x.png b/src/imports/controls/imagine/images/roundbutton-background-hovered@4x.png Binary files differnew file mode 100644 index 00000000..2efb3dcc --- /dev/null +++ b/src/imports/controls/imagine/images/roundbutton-background-hovered@4x.png diff --git a/src/imports/controls/imagine/images/roundbutton-background-pressed.png b/src/imports/controls/imagine/images/roundbutton-background-pressed.png Binary files differnew file mode 100644 index 00000000..e7c15402 --- /dev/null +++ b/src/imports/controls/imagine/images/roundbutton-background-pressed.png diff --git a/src/imports/controls/imagine/images/roundbutton-background-pressed@2x.png b/src/imports/controls/imagine/images/roundbutton-background-pressed@2x.png Binary files differnew file mode 100644 index 00000000..6412ae27 --- /dev/null +++ b/src/imports/controls/imagine/images/roundbutton-background-pressed@2x.png diff --git a/src/imports/controls/imagine/images/roundbutton-background-pressed@3x.png b/src/imports/controls/imagine/images/roundbutton-background-pressed@3x.png Binary files differnew file mode 100644 index 00000000..7c1523cb --- /dev/null +++ b/src/imports/controls/imagine/images/roundbutton-background-pressed@3x.png diff --git a/src/imports/controls/imagine/images/roundbutton-background-pressed@4x.png b/src/imports/controls/imagine/images/roundbutton-background-pressed@4x.png Binary files differnew file mode 100644 index 00000000..887c7579 --- /dev/null +++ b/src/imports/controls/imagine/images/roundbutton-background-pressed@4x.png diff --git a/src/imports/controls/imagine/images/roundbutton-background.png b/src/imports/controls/imagine/images/roundbutton-background.png Binary files differnew file mode 100644 index 00000000..e3cd65cb --- /dev/null +++ b/src/imports/controls/imagine/images/roundbutton-background.png diff --git a/src/imports/controls/imagine/images/roundbutton-background@2x.png b/src/imports/controls/imagine/images/roundbutton-background@2x.png Binary files differnew file mode 100644 index 00000000..7f3b3548 --- /dev/null +++ b/src/imports/controls/imagine/images/roundbutton-background@2x.png diff --git a/src/imports/controls/imagine/images/roundbutton-background@3x.png b/src/imports/controls/imagine/images/roundbutton-background@3x.png Binary files differnew file mode 100644 index 00000000..7988f337 --- /dev/null +++ b/src/imports/controls/imagine/images/roundbutton-background@3x.png diff --git a/src/imports/controls/imagine/images/roundbutton-background@4x.png b/src/imports/controls/imagine/images/roundbutton-background@4x.png Binary files differnew file mode 100644 index 00000000..74dbebae --- /dev/null +++ b/src/imports/controls/imagine/images/roundbutton-background@4x.png diff --git a/src/imports/controls/imagine/images/scrollbar-handle-disabled.png b/src/imports/controls/imagine/images/scrollbar-handle-disabled.png Binary files differnew file mode 100644 index 00000000..d79dcf2a --- /dev/null +++ b/src/imports/controls/imagine/images/scrollbar-handle-disabled.png diff --git a/src/imports/controls/imagine/images/scrollbar-handle-disabled@2x.png b/src/imports/controls/imagine/images/scrollbar-handle-disabled@2x.png Binary files differnew file mode 100644 index 00000000..0f751bb2 --- /dev/null +++ b/src/imports/controls/imagine/images/scrollbar-handle-disabled@2x.png diff --git a/src/imports/controls/imagine/images/scrollbar-handle-disabled@3x.png b/src/imports/controls/imagine/images/scrollbar-handle-disabled@3x.png Binary files differnew file mode 100644 index 00000000..651c4c14 --- /dev/null +++ b/src/imports/controls/imagine/images/scrollbar-handle-disabled@3x.png diff --git a/src/imports/controls/imagine/images/scrollbar-handle-disabled@4x.png b/src/imports/controls/imagine/images/scrollbar-handle-disabled@4x.png Binary files differnew file mode 100644 index 00000000..46bb4324 --- /dev/null +++ b/src/imports/controls/imagine/images/scrollbar-handle-disabled@4x.png diff --git a/src/imports/controls/imagine/images/scrollbar-handle-interactive-disabled.png b/src/imports/controls/imagine/images/scrollbar-handle-interactive-disabled.png Binary files differnew file mode 100644 index 00000000..0ec3de1a --- /dev/null +++ b/src/imports/controls/imagine/images/scrollbar-handle-interactive-disabled.png diff --git a/src/imports/controls/imagine/images/scrollbar-handle-interactive-disabled@2x.png b/src/imports/controls/imagine/images/scrollbar-handle-interactive-disabled@2x.png Binary files differnew file mode 100644 index 00000000..6ffaffee --- /dev/null +++ b/src/imports/controls/imagine/images/scrollbar-handle-interactive-disabled@2x.png diff --git a/src/imports/controls/imagine/images/scrollbar-handle-interactive-disabled@3x.png b/src/imports/controls/imagine/images/scrollbar-handle-interactive-disabled@3x.png Binary files differnew file mode 100644 index 00000000..8445a158 --- /dev/null +++ b/src/imports/controls/imagine/images/scrollbar-handle-interactive-disabled@3x.png diff --git a/src/imports/controls/imagine/images/scrollbar-handle-interactive-disabled@4x.png b/src/imports/controls/imagine/images/scrollbar-handle-interactive-disabled@4x.png Binary files differnew file mode 100644 index 00000000..458ce4bf --- /dev/null +++ b/src/imports/controls/imagine/images/scrollbar-handle-interactive-disabled@4x.png diff --git a/src/imports/controls/imagine/images/scrollbar-handle-interactive-hovered.png b/src/imports/controls/imagine/images/scrollbar-handle-interactive-hovered.png Binary files differnew file mode 100644 index 00000000..c8db3901 --- /dev/null +++ b/src/imports/controls/imagine/images/scrollbar-handle-interactive-hovered.png diff --git a/src/imports/controls/imagine/images/scrollbar-handle-interactive-hovered@2x.png b/src/imports/controls/imagine/images/scrollbar-handle-interactive-hovered@2x.png Binary files differnew file mode 100644 index 00000000..719d31a0 --- /dev/null +++ b/src/imports/controls/imagine/images/scrollbar-handle-interactive-hovered@2x.png diff --git a/src/imports/controls/imagine/images/scrollbar-handle-interactive-hovered@3x.png b/src/imports/controls/imagine/images/scrollbar-handle-interactive-hovered@3x.png Binary files differnew file mode 100644 index 00000000..33884426 --- /dev/null +++ b/src/imports/controls/imagine/images/scrollbar-handle-interactive-hovered@3x.png diff --git a/src/imports/controls/imagine/images/scrollbar-handle-interactive-hovered@4x.png b/src/imports/controls/imagine/images/scrollbar-handle-interactive-hovered@4x.png Binary files differnew file mode 100644 index 00000000..045a6b76 --- /dev/null +++ b/src/imports/controls/imagine/images/scrollbar-handle-interactive-hovered@4x.png diff --git a/src/imports/controls/imagine/images/scrollbar-handle-interactive-pressed.png b/src/imports/controls/imagine/images/scrollbar-handle-interactive-pressed.png Binary files differnew file mode 100644 index 00000000..771c9e01 --- /dev/null +++ b/src/imports/controls/imagine/images/scrollbar-handle-interactive-pressed.png diff --git a/src/imports/controls/imagine/images/scrollbar-handle-interactive-pressed@2x.png b/src/imports/controls/imagine/images/scrollbar-handle-interactive-pressed@2x.png Binary files differnew file mode 100644 index 00000000..80397488 --- /dev/null +++ b/src/imports/controls/imagine/images/scrollbar-handle-interactive-pressed@2x.png diff --git a/src/imports/controls/imagine/images/scrollbar-handle-interactive-pressed@3x.png b/src/imports/controls/imagine/images/scrollbar-handle-interactive-pressed@3x.png Binary files differnew file mode 100644 index 00000000..6b3fbca1 --- /dev/null +++ b/src/imports/controls/imagine/images/scrollbar-handle-interactive-pressed@3x.png diff --git a/src/imports/controls/imagine/images/scrollbar-handle-interactive-pressed@4x.png b/src/imports/controls/imagine/images/scrollbar-handle-interactive-pressed@4x.png Binary files differnew file mode 100644 index 00000000..b505c95d --- /dev/null +++ b/src/imports/controls/imagine/images/scrollbar-handle-interactive-pressed@4x.png diff --git a/src/imports/controls/imagine/images/scrollbar-handle-interactive.png b/src/imports/controls/imagine/images/scrollbar-handle-interactive.png Binary files differnew file mode 100644 index 00000000..a9a67ca6 --- /dev/null +++ b/src/imports/controls/imagine/images/scrollbar-handle-interactive.png diff --git a/src/imports/controls/imagine/images/scrollbar-handle-interactive@2x.png b/src/imports/controls/imagine/images/scrollbar-handle-interactive@2x.png Binary files differnew file mode 100644 index 00000000..60a174bb --- /dev/null +++ b/src/imports/controls/imagine/images/scrollbar-handle-interactive@2x.png diff --git a/src/imports/controls/imagine/images/scrollbar-handle-interactive@3x.png b/src/imports/controls/imagine/images/scrollbar-handle-interactive@3x.png Binary files differnew file mode 100644 index 00000000..af70f46c --- /dev/null +++ b/src/imports/controls/imagine/images/scrollbar-handle-interactive@3x.png diff --git a/src/imports/controls/imagine/images/scrollbar-handle-interactive@4x.png b/src/imports/controls/imagine/images/scrollbar-handle-interactive@4x.png Binary files differnew file mode 100644 index 00000000..1b91108c --- /dev/null +++ b/src/imports/controls/imagine/images/scrollbar-handle-interactive@4x.png diff --git a/src/imports/controls/imagine/images/scrollbar-handle.png b/src/imports/controls/imagine/images/scrollbar-handle.png Binary files differnew file mode 100644 index 00000000..c1d0a009 --- /dev/null +++ b/src/imports/controls/imagine/images/scrollbar-handle.png diff --git a/src/imports/controls/imagine/images/scrollbar-handle@2x.png b/src/imports/controls/imagine/images/scrollbar-handle@2x.png Binary files differnew file mode 100644 index 00000000..72246c67 --- /dev/null +++ b/src/imports/controls/imagine/images/scrollbar-handle@2x.png diff --git a/src/imports/controls/imagine/images/scrollbar-handle@3x.png b/src/imports/controls/imagine/images/scrollbar-handle@3x.png Binary files differnew file mode 100644 index 00000000..c7caa2df --- /dev/null +++ b/src/imports/controls/imagine/images/scrollbar-handle@3x.png diff --git a/src/imports/controls/imagine/images/scrollbar-handle@4x.png b/src/imports/controls/imagine/images/scrollbar-handle@4x.png Binary files differnew file mode 100644 index 00000000..ad61f644 --- /dev/null +++ b/src/imports/controls/imagine/images/scrollbar-handle@4x.png diff --git a/src/imports/controls/imagine/images/scrollindicator-handle.png b/src/imports/controls/imagine/images/scrollindicator-handle.png Binary files differnew file mode 100644 index 00000000..c1d0a009 --- /dev/null +++ b/src/imports/controls/imagine/images/scrollindicator-handle.png diff --git a/src/imports/controls/imagine/images/scrollindicator-handle@2x.png b/src/imports/controls/imagine/images/scrollindicator-handle@2x.png Binary files differnew file mode 100644 index 00000000..72246c67 --- /dev/null +++ b/src/imports/controls/imagine/images/scrollindicator-handle@2x.png diff --git a/src/imports/controls/imagine/images/scrollindicator-handle@3x.png b/src/imports/controls/imagine/images/scrollindicator-handle@3x.png Binary files differnew file mode 100644 index 00000000..c7caa2df --- /dev/null +++ b/src/imports/controls/imagine/images/scrollindicator-handle@3x.png diff --git a/src/imports/controls/imagine/images/scrollindicator-handle@4x.png b/src/imports/controls/imagine/images/scrollindicator-handle@4x.png Binary files differnew file mode 100644 index 00000000..ad61f644 --- /dev/null +++ b/src/imports/controls/imagine/images/scrollindicator-handle@4x.png diff --git a/src/imports/controls/imagine/images/slider-background-horizontal.9.png b/src/imports/controls/imagine/images/slider-background-horizontal.9.png Binary files differnew file mode 100644 index 00000000..1493d559 --- /dev/null +++ b/src/imports/controls/imagine/images/slider-background-horizontal.9.png diff --git a/src/imports/controls/imagine/images/slider-background-horizontal@2x.9.png b/src/imports/controls/imagine/images/slider-background-horizontal@2x.9.png Binary files differnew file mode 100644 index 00000000..64c87e20 --- /dev/null +++ b/src/imports/controls/imagine/images/slider-background-horizontal@2x.9.png diff --git a/src/imports/controls/imagine/images/slider-background-horizontal@3x.9.png b/src/imports/controls/imagine/images/slider-background-horizontal@3x.9.png Binary files differnew file mode 100644 index 00000000..7ed7de73 --- /dev/null +++ b/src/imports/controls/imagine/images/slider-background-horizontal@3x.9.png diff --git a/src/imports/controls/imagine/images/slider-background-horizontal@4x.9.png b/src/imports/controls/imagine/images/slider-background-horizontal@4x.9.png Binary files differnew file mode 100644 index 00000000..7c45cc7d --- /dev/null +++ b/src/imports/controls/imagine/images/slider-background-horizontal@4x.9.png diff --git a/src/imports/controls/imagine/images/slider-background-vertical.9.png b/src/imports/controls/imagine/images/slider-background-vertical.9.png Binary files differnew file mode 100644 index 00000000..5866879c --- /dev/null +++ b/src/imports/controls/imagine/images/slider-background-vertical.9.png diff --git a/src/imports/controls/imagine/images/slider-background-vertical@2x.9.png b/src/imports/controls/imagine/images/slider-background-vertical@2x.9.png Binary files differnew file mode 100644 index 00000000..f3928ec5 --- /dev/null +++ b/src/imports/controls/imagine/images/slider-background-vertical@2x.9.png diff --git a/src/imports/controls/imagine/images/slider-background-vertical@3x.9.png b/src/imports/controls/imagine/images/slider-background-vertical@3x.9.png Binary files differnew file mode 100644 index 00000000..f49dcb95 --- /dev/null +++ b/src/imports/controls/imagine/images/slider-background-vertical@3x.9.png diff --git a/src/imports/controls/imagine/images/slider-background-vertical@4x.9.png b/src/imports/controls/imagine/images/slider-background-vertical@4x.9.png Binary files differnew file mode 100644 index 00000000..e7203f99 --- /dev/null +++ b/src/imports/controls/imagine/images/slider-background-vertical@4x.9.png diff --git a/src/imports/controls/imagine/images/slider-handle-disabled.png b/src/imports/controls/imagine/images/slider-handle-disabled.png Binary files differnew file mode 100644 index 00000000..88ea4699 --- /dev/null +++ b/src/imports/controls/imagine/images/slider-handle-disabled.png diff --git a/src/imports/controls/imagine/images/slider-handle-disabled@2x.png b/src/imports/controls/imagine/images/slider-handle-disabled@2x.png Binary files differnew file mode 100644 index 00000000..3cad66e2 --- /dev/null +++ b/src/imports/controls/imagine/images/slider-handle-disabled@2x.png diff --git a/src/imports/controls/imagine/images/slider-handle-disabled@3x.png b/src/imports/controls/imagine/images/slider-handle-disabled@3x.png Binary files differnew file mode 100644 index 00000000..18b7482c --- /dev/null +++ b/src/imports/controls/imagine/images/slider-handle-disabled@3x.png diff --git a/src/imports/controls/imagine/images/slider-handle-disabled@4x.png b/src/imports/controls/imagine/images/slider-handle-disabled@4x.png Binary files differnew file mode 100644 index 00000000..1d03b803 --- /dev/null +++ b/src/imports/controls/imagine/images/slider-handle-disabled@4x.png diff --git a/src/imports/controls/imagine/images/slider-handle-focused-hovered.png b/src/imports/controls/imagine/images/slider-handle-focused-hovered.png Binary files differnew file mode 100644 index 00000000..5787bc8d --- /dev/null +++ b/src/imports/controls/imagine/images/slider-handle-focused-hovered.png diff --git a/src/imports/controls/imagine/images/slider-handle-focused-hovered@2x.png b/src/imports/controls/imagine/images/slider-handle-focused-hovered@2x.png Binary files differnew file mode 100644 index 00000000..0663628f --- /dev/null +++ b/src/imports/controls/imagine/images/slider-handle-focused-hovered@2x.png diff --git a/src/imports/controls/imagine/images/slider-handle-focused-hovered@3x.png b/src/imports/controls/imagine/images/slider-handle-focused-hovered@3x.png Binary files differnew file mode 100644 index 00000000..cb6149d3 --- /dev/null +++ b/src/imports/controls/imagine/images/slider-handle-focused-hovered@3x.png diff --git a/src/imports/controls/imagine/images/slider-handle-focused-hovered@4x.png b/src/imports/controls/imagine/images/slider-handle-focused-hovered@4x.png Binary files differnew file mode 100644 index 00000000..21484332 --- /dev/null +++ b/src/imports/controls/imagine/images/slider-handle-focused-hovered@4x.png diff --git a/src/imports/controls/imagine/images/slider-handle-focused-pressed.png b/src/imports/controls/imagine/images/slider-handle-focused-pressed.png Binary files differnew file mode 100644 index 00000000..5787bc8d --- /dev/null +++ b/src/imports/controls/imagine/images/slider-handle-focused-pressed.png diff --git a/src/imports/controls/imagine/images/slider-handle-focused-pressed@2x.png b/src/imports/controls/imagine/images/slider-handle-focused-pressed@2x.png Binary files differnew file mode 100644 index 00000000..0663628f --- /dev/null +++ b/src/imports/controls/imagine/images/slider-handle-focused-pressed@2x.png diff --git a/src/imports/controls/imagine/images/slider-handle-focused-pressed@3x.png b/src/imports/controls/imagine/images/slider-handle-focused-pressed@3x.png Binary files differnew file mode 100644 index 00000000..cb6149d3 --- /dev/null +++ b/src/imports/controls/imagine/images/slider-handle-focused-pressed@3x.png diff --git a/src/imports/controls/imagine/images/slider-handle-focused-pressed@4x.png b/src/imports/controls/imagine/images/slider-handle-focused-pressed@4x.png Binary files differnew file mode 100644 index 00000000..21484332 --- /dev/null +++ b/src/imports/controls/imagine/images/slider-handle-focused-pressed@4x.png diff --git a/src/imports/controls/imagine/images/slider-handle-focused.png b/src/imports/controls/imagine/images/slider-handle-focused.png Binary files differnew file mode 100644 index 00000000..0a0ab739 --- /dev/null +++ b/src/imports/controls/imagine/images/slider-handle-focused.png diff --git a/src/imports/controls/imagine/images/slider-handle-focused@2x.png b/src/imports/controls/imagine/images/slider-handle-focused@2x.png Binary files differnew file mode 100644 index 00000000..8ced0916 --- /dev/null +++ b/src/imports/controls/imagine/images/slider-handle-focused@2x.png diff --git a/src/imports/controls/imagine/images/slider-handle-focused@3x.png b/src/imports/controls/imagine/images/slider-handle-focused@3x.png Binary files differnew file mode 100644 index 00000000..a7bdc453 --- /dev/null +++ b/src/imports/controls/imagine/images/slider-handle-focused@3x.png diff --git a/src/imports/controls/imagine/images/slider-handle-focused@4x.png b/src/imports/controls/imagine/images/slider-handle-focused@4x.png Binary files differnew file mode 100644 index 00000000..5827d534 --- /dev/null +++ b/src/imports/controls/imagine/images/slider-handle-focused@4x.png diff --git a/src/imports/controls/imagine/images/slider-handle-hovered.png b/src/imports/controls/imagine/images/slider-handle-hovered.png Binary files differnew file mode 100644 index 00000000..88ea4699 --- /dev/null +++ b/src/imports/controls/imagine/images/slider-handle-hovered.png diff --git a/src/imports/controls/imagine/images/slider-handle-hovered@2x.png b/src/imports/controls/imagine/images/slider-handle-hovered@2x.png Binary files differnew file mode 100644 index 00000000..3cad66e2 --- /dev/null +++ b/src/imports/controls/imagine/images/slider-handle-hovered@2x.png diff --git a/src/imports/controls/imagine/images/slider-handle-hovered@3x.png b/src/imports/controls/imagine/images/slider-handle-hovered@3x.png Binary files differnew file mode 100644 index 00000000..18b7482c --- /dev/null +++ b/src/imports/controls/imagine/images/slider-handle-hovered@3x.png diff --git a/src/imports/controls/imagine/images/slider-handle-hovered@4x.png b/src/imports/controls/imagine/images/slider-handle-hovered@4x.png Binary files differnew file mode 100644 index 00000000..1d03b803 --- /dev/null +++ b/src/imports/controls/imagine/images/slider-handle-hovered@4x.png diff --git a/src/imports/controls/imagine/images/slider-handle-pressed.png b/src/imports/controls/imagine/images/slider-handle-pressed.png Binary files differnew file mode 100644 index 00000000..88ea4699 --- /dev/null +++ b/src/imports/controls/imagine/images/slider-handle-pressed.png diff --git a/src/imports/controls/imagine/images/slider-handle-pressed@2x.png b/src/imports/controls/imagine/images/slider-handle-pressed@2x.png Binary files differnew file mode 100644 index 00000000..3cad66e2 --- /dev/null +++ b/src/imports/controls/imagine/images/slider-handle-pressed@2x.png diff --git a/src/imports/controls/imagine/images/slider-handle-pressed@3x.png b/src/imports/controls/imagine/images/slider-handle-pressed@3x.png Binary files differnew file mode 100644 index 00000000..18b7482c --- /dev/null +++ b/src/imports/controls/imagine/images/slider-handle-pressed@3x.png diff --git a/src/imports/controls/imagine/images/slider-handle-pressed@4x.png b/src/imports/controls/imagine/images/slider-handle-pressed@4x.png Binary files differnew file mode 100644 index 00000000..1d03b803 --- /dev/null +++ b/src/imports/controls/imagine/images/slider-handle-pressed@4x.png diff --git a/src/imports/controls/imagine/images/slider-handle.png b/src/imports/controls/imagine/images/slider-handle.png Binary files differnew file mode 100644 index 00000000..370f5141 --- /dev/null +++ b/src/imports/controls/imagine/images/slider-handle.png diff --git a/src/imports/controls/imagine/images/slider-handle@2x.png b/src/imports/controls/imagine/images/slider-handle@2x.png Binary files differnew file mode 100644 index 00000000..d98f56d3 --- /dev/null +++ b/src/imports/controls/imagine/images/slider-handle@2x.png diff --git a/src/imports/controls/imagine/images/slider-handle@3x.png b/src/imports/controls/imagine/images/slider-handle@3x.png Binary files differnew file mode 100644 index 00000000..a6e12b61 --- /dev/null +++ b/src/imports/controls/imagine/images/slider-handle@3x.png diff --git a/src/imports/controls/imagine/images/slider-handle@4x.png b/src/imports/controls/imagine/images/slider-handle@4x.png Binary files differnew file mode 100644 index 00000000..194e3496 --- /dev/null +++ b/src/imports/controls/imagine/images/slider-handle@4x.png diff --git a/src/imports/controls/imagine/images/slider-progress-horizontal-disabled.9.png b/src/imports/controls/imagine/images/slider-progress-horizontal-disabled.9.png Binary files differnew file mode 100644 index 00000000..d3a87e37 --- /dev/null +++ b/src/imports/controls/imagine/images/slider-progress-horizontal-disabled.9.png diff --git a/src/imports/controls/imagine/images/slider-progress-horizontal-disabled@2x.9.png b/src/imports/controls/imagine/images/slider-progress-horizontal-disabled@2x.9.png Binary files differnew file mode 100644 index 00000000..b87350eb --- /dev/null +++ b/src/imports/controls/imagine/images/slider-progress-horizontal-disabled@2x.9.png diff --git a/src/imports/controls/imagine/images/slider-progress-horizontal-disabled@3x.9.png b/src/imports/controls/imagine/images/slider-progress-horizontal-disabled@3x.9.png Binary files differnew file mode 100644 index 00000000..a5b7b80c --- /dev/null +++ b/src/imports/controls/imagine/images/slider-progress-horizontal-disabled@3x.9.png diff --git a/src/imports/controls/imagine/images/slider-progress-horizontal-disabled@4x.9.png b/src/imports/controls/imagine/images/slider-progress-horizontal-disabled@4x.9.png Binary files differnew file mode 100644 index 00000000..47975047 --- /dev/null +++ b/src/imports/controls/imagine/images/slider-progress-horizontal-disabled@4x.9.png diff --git a/src/imports/controls/imagine/images/slider-progress-horizontal.9.png b/src/imports/controls/imagine/images/slider-progress-horizontal.9.png Binary files differnew file mode 100644 index 00000000..49adc3ec --- /dev/null +++ b/src/imports/controls/imagine/images/slider-progress-horizontal.9.png diff --git a/src/imports/controls/imagine/images/slider-progress-horizontal@2x.9.png b/src/imports/controls/imagine/images/slider-progress-horizontal@2x.9.png Binary files differnew file mode 100644 index 00000000..b71adeb3 --- /dev/null +++ b/src/imports/controls/imagine/images/slider-progress-horizontal@2x.9.png diff --git a/src/imports/controls/imagine/images/slider-progress-horizontal@3x.9.png b/src/imports/controls/imagine/images/slider-progress-horizontal@3x.9.png Binary files differnew file mode 100644 index 00000000..c78c22b3 --- /dev/null +++ b/src/imports/controls/imagine/images/slider-progress-horizontal@3x.9.png diff --git a/src/imports/controls/imagine/images/slider-progress-horizontal@4x.9.png b/src/imports/controls/imagine/images/slider-progress-horizontal@4x.9.png Binary files differnew file mode 100644 index 00000000..69142b4e --- /dev/null +++ b/src/imports/controls/imagine/images/slider-progress-horizontal@4x.9.png diff --git a/src/imports/controls/imagine/images/slider-progress-vertical-disabled.9.png b/src/imports/controls/imagine/images/slider-progress-vertical-disabled.9.png Binary files differnew file mode 100644 index 00000000..6ae0b6b6 --- /dev/null +++ b/src/imports/controls/imagine/images/slider-progress-vertical-disabled.9.png diff --git a/src/imports/controls/imagine/images/slider-progress-vertical-disabled@2x.9.png b/src/imports/controls/imagine/images/slider-progress-vertical-disabled@2x.9.png Binary files differnew file mode 100644 index 00000000..dacd2692 --- /dev/null +++ b/src/imports/controls/imagine/images/slider-progress-vertical-disabled@2x.9.png diff --git a/src/imports/controls/imagine/images/slider-progress-vertical-disabled@3x.9.png b/src/imports/controls/imagine/images/slider-progress-vertical-disabled@3x.9.png Binary files differnew file mode 100644 index 00000000..23f5461e --- /dev/null +++ b/src/imports/controls/imagine/images/slider-progress-vertical-disabled@3x.9.png diff --git a/src/imports/controls/imagine/images/slider-progress-vertical-disabled@4x.9.png b/src/imports/controls/imagine/images/slider-progress-vertical-disabled@4x.9.png Binary files differnew file mode 100644 index 00000000..9ec4cefe --- /dev/null +++ b/src/imports/controls/imagine/images/slider-progress-vertical-disabled@4x.9.png diff --git a/src/imports/controls/imagine/images/slider-progress-vertical.9.png b/src/imports/controls/imagine/images/slider-progress-vertical.9.png Binary files differnew file mode 100644 index 00000000..c2616422 --- /dev/null +++ b/src/imports/controls/imagine/images/slider-progress-vertical.9.png diff --git a/src/imports/controls/imagine/images/slider-progress-vertical@2x.9.png b/src/imports/controls/imagine/images/slider-progress-vertical@2x.9.png Binary files differnew file mode 100644 index 00000000..0339d4cd --- /dev/null +++ b/src/imports/controls/imagine/images/slider-progress-vertical@2x.9.png diff --git a/src/imports/controls/imagine/images/slider-progress-vertical@3x.9.png b/src/imports/controls/imagine/images/slider-progress-vertical@3x.9.png Binary files differnew file mode 100644 index 00000000..d1d22e60 --- /dev/null +++ b/src/imports/controls/imagine/images/slider-progress-vertical@3x.9.png diff --git a/src/imports/controls/imagine/images/slider-progress-vertical@4x.9.png b/src/imports/controls/imagine/images/slider-progress-vertical@4x.9.png Binary files differnew file mode 100644 index 00000000..f9b96a3b --- /dev/null +++ b/src/imports/controls/imagine/images/slider-progress-vertical@4x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-background-disabled.9.png b/src/imports/controls/imagine/images/spinbox-background-disabled.9.png Binary files differnew file mode 100644 index 00000000..16df3677 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-background-disabled.9.png diff --git a/src/imports/controls/imagine/images/spinbox-background-disabled@2x.9.png b/src/imports/controls/imagine/images/spinbox-background-disabled@2x.9.png Binary files differnew file mode 100644 index 00000000..be72ec16 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-background-disabled@2x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-background-disabled@3x.9.png b/src/imports/controls/imagine/images/spinbox-background-disabled@3x.9.png Binary files differnew file mode 100644 index 00000000..ca2d3322 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-background-disabled@3x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-background-disabled@4x.9.png b/src/imports/controls/imagine/images/spinbox-background-disabled@4x.9.png Binary files differnew file mode 100644 index 00000000..62040f69 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-background-disabled@4x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-background-editable.9.png b/src/imports/controls/imagine/images/spinbox-background-editable.9.png Binary files differnew file mode 100644 index 00000000..0bd1f239 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-background-editable.9.png diff --git a/src/imports/controls/imagine/images/spinbox-background-editable@2x.9.png b/src/imports/controls/imagine/images/spinbox-background-editable@2x.9.png Binary files differnew file mode 100644 index 00000000..c523826a --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-background-editable@2x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-background-editable@3x.9.png b/src/imports/controls/imagine/images/spinbox-background-editable@3x.9.png Binary files differnew file mode 100644 index 00000000..f47a77f8 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-background-editable@3x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-background-editable@4x.9.png b/src/imports/controls/imagine/images/spinbox-background-editable@4x.9.png Binary files differnew file mode 100644 index 00000000..37939aab --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-background-editable@4x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-background-focused.9.png b/src/imports/controls/imagine/images/spinbox-background-focused.9.png Binary files differnew file mode 100644 index 00000000..5b1d97ca --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-background-focused.9.png diff --git a/src/imports/controls/imagine/images/spinbox-background-focused@2x.9.png b/src/imports/controls/imagine/images/spinbox-background-focused@2x.9.png Binary files differnew file mode 100644 index 00000000..3424bf2d --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-background-focused@2x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-background-focused@3x.9.png b/src/imports/controls/imagine/images/spinbox-background-focused@3x.9.png Binary files differnew file mode 100644 index 00000000..a53a76d7 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-background-focused@3x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-background-focused@4x.9.png b/src/imports/controls/imagine/images/spinbox-background-focused@4x.9.png Binary files differnew file mode 100644 index 00000000..9ea30032 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-background-focused@4x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-background.9.png b/src/imports/controls/imagine/images/spinbox-background.9.png Binary files differnew file mode 100644 index 00000000..16560593 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-background.9.png diff --git a/src/imports/controls/imagine/images/spinbox-background@2x.9.png b/src/imports/controls/imagine/images/spinbox-background@2x.9.png Binary files differnew file mode 100644 index 00000000..4b7dcd74 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-background@2x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-background@3x.9.png b/src/imports/controls/imagine/images/spinbox-background@3x.9.png Binary files differnew file mode 100644 index 00000000..af86d12c --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-background@3x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-background@4x.9.png b/src/imports/controls/imagine/images/spinbox-background@4x.9.png Binary files differnew file mode 100644 index 00000000..bbcd8745 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-background@4x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-down-disabled.9.png b/src/imports/controls/imagine/images/spinbox-indicator-down-disabled.9.png Binary files differnew file mode 100644 index 00000000..9ec6bf4a --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-down-disabled.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-down-disabled@2x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-down-disabled@2x.9.png Binary files differnew file mode 100644 index 00000000..94219759 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-down-disabled@2x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-down-disabled@3x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-down-disabled@3x.9.png Binary files differnew file mode 100644 index 00000000..38b73979 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-down-disabled@3x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-down-disabled@4x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-down-disabled@4x.9.png Binary files differnew file mode 100644 index 00000000..2a5ab52d --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-down-disabled@4x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-down-editable-focused.9.png b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-focused.9.png Binary files differnew file mode 100644 index 00000000..9ac0c8f7 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-focused.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-down-editable-focused@2x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-focused@2x.9.png Binary files differnew file mode 100644 index 00000000..aa71e927 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-focused@2x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-down-editable-focused@3x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-focused@3x.9.png Binary files differnew file mode 100644 index 00000000..c773e31e --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-focused@3x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-down-editable-focused@4x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-focused@4x.9.png Binary files differnew file mode 100644 index 00000000..5e8e1a5c --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-focused@4x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-down-editable-hovered.9.png b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-hovered.9.png Binary files differnew file mode 100644 index 00000000..9ac0c8f7 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-hovered.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-down-editable-hovered@2x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-hovered@2x.9.png Binary files differnew file mode 100644 index 00000000..aa71e927 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-hovered@2x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-down-editable-hovered@3x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-hovered@3x.9.png Binary files differnew file mode 100644 index 00000000..c773e31e --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-hovered@3x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-down-editable-hovered@4x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-hovered@4x.9.png Binary files differnew file mode 100644 index 00000000..5e8e1a5c --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-hovered@4x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored-focused.9.png b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored-focused.9.png Binary files differnew file mode 100644 index 00000000..c77a6a04 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored-focused.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored-focused@2x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored-focused@2x.9.png Binary files differnew file mode 100644 index 00000000..8e652dcc --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored-focused@2x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored-focused@3x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored-focused@3x.9.png Binary files differnew file mode 100644 index 00000000..368f9b21 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored-focused@3x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored-focused@4x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored-focused@4x.9.png Binary files differnew file mode 100644 index 00000000..02be2e5e --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored-focused@4x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored-hovered.9.png b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored-hovered.9.png Binary files differnew file mode 100644 index 00000000..c77a6a04 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored-hovered.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored-hovered@2x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored-hovered@2x.9.png Binary files differnew file mode 100644 index 00000000..8e652dcc --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored-hovered@2x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored-hovered@3x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored-hovered@3x.9.png Binary files differnew file mode 100644 index 00000000..368f9b21 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored-hovered@3x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored-hovered@4x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored-hovered@4x.9.png Binary files differnew file mode 100644 index 00000000..02be2e5e --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored-hovered@4x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored-pressed.9.png b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored-pressed.9.png Binary files differnew file mode 100644 index 00000000..1d81aef2 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored-pressed.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored-pressed@2x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored-pressed@2x.9.png Binary files differnew file mode 100644 index 00000000..8638c47e --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored-pressed@2x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored-pressed@3x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored-pressed@3x.9.png Binary files differnew file mode 100644 index 00000000..19e44058 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored-pressed@3x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored-pressed@4x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored-pressed@4x.9.png Binary files differnew file mode 100644 index 00000000..bf92d5a1 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored-pressed@4x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored.9.png b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored.9.png Binary files differnew file mode 100644 index 00000000..5cb05b25 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored@2x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored@2x.9.png Binary files differnew file mode 100644 index 00000000..d09d180a --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored@2x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored@3x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored@3x.9.png Binary files differnew file mode 100644 index 00000000..e33ff83d --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored@3x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored@4x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored@4x.9.png Binary files differnew file mode 100644 index 00000000..c0062bfa --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored@4x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-down-editable-pressed.9.png b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-pressed.9.png Binary files differnew file mode 100644 index 00000000..3b91414f --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-pressed.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-down-editable-pressed@2x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-pressed@2x.9.png Binary files differnew file mode 100644 index 00000000..6cf943f8 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-pressed@2x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-down-editable-pressed@3x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-pressed@3x.9.png Binary files differnew file mode 100644 index 00000000..3866a67d --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-pressed@3x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-down-editable-pressed@4x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-pressed@4x.9.png Binary files differnew file mode 100644 index 00000000..076a0b35 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-pressed@4x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-down-editable.9.png b/src/imports/controls/imagine/images/spinbox-indicator-down-editable.9.png Binary files differnew file mode 100644 index 00000000..60feb583 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-down-editable.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-down-editable@2x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-down-editable@2x.9.png Binary files differnew file mode 100644 index 00000000..612f3996 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-down-editable@2x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-down-editable@3x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-down-editable@3x.9.png Binary files differnew file mode 100644 index 00000000..f4b23374 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-down-editable@3x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-down-editable@4x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-down-editable@4x.9.png Binary files differnew file mode 100644 index 00000000..e69314c0 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-down-editable@4x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-down-focused.9.png b/src/imports/controls/imagine/images/spinbox-indicator-down-focused.9.png Binary files differnew file mode 100644 index 00000000..cb406d57 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-down-focused.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-down-focused@2x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-down-focused@2x.9.png Binary files differnew file mode 100644 index 00000000..8004e824 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-down-focused@2x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-down-focused@3x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-down-focused@3x.9.png Binary files differnew file mode 100644 index 00000000..8003117d --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-down-focused@3x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-down-focused@4x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-down-focused@4x.9.png Binary files differnew file mode 100644 index 00000000..2ccf36ac --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-down-focused@4x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-down-hovered.9.png b/src/imports/controls/imagine/images/spinbox-indicator-down-hovered.9.png Binary files differnew file mode 100644 index 00000000..cb406d57 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-down-hovered.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-down-hovered@2x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-down-hovered@2x.9.png Binary files differnew file mode 100644 index 00000000..8004e824 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-down-hovered@2x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-down-hovered@3x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-down-hovered@3x.9.png Binary files differnew file mode 100644 index 00000000..8003117d --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-down-hovered@3x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-down-hovered@4x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-down-hovered@4x.9.png Binary files differnew file mode 100644 index 00000000..2ccf36ac --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-down-hovered@4x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-down-mirrored-disabled.9.png b/src/imports/controls/imagine/images/spinbox-indicator-down-mirrored-disabled.9.png Binary files differnew file mode 100644 index 00000000..ef6341e1 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-down-mirrored-disabled.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-down-mirrored-disabled@2x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-down-mirrored-disabled@2x.9.png Binary files differnew file mode 100644 index 00000000..b89d2da7 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-down-mirrored-disabled@2x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-down-mirrored-disabled@3x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-down-mirrored-disabled@3x.9.png Binary files differnew file mode 100644 index 00000000..cc2b2935 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-down-mirrored-disabled@3x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-down-mirrored-disabled@4x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-down-mirrored-disabled@4x.9.png Binary files differnew file mode 100644 index 00000000..86ef1436 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-down-mirrored-disabled@4x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-down-mirrored-focused.9.png b/src/imports/controls/imagine/images/spinbox-indicator-down-mirrored-focused.9.png Binary files differnew file mode 100644 index 00000000..d4814abe --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-down-mirrored-focused.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-down-mirrored-focused@2x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-down-mirrored-focused@2x.9.png Binary files differnew file mode 100644 index 00000000..501a2204 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-down-mirrored-focused@2x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-down-mirrored-focused@3x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-down-mirrored-focused@3x.9.png Binary files differnew file mode 100644 index 00000000..06854614 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-down-mirrored-focused@3x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-down-mirrored-focused@4x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-down-mirrored-focused@4x.9.png Binary files differnew file mode 100644 index 00000000..37610e71 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-down-mirrored-focused@4x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-down-mirrored-hovered.9.png b/src/imports/controls/imagine/images/spinbox-indicator-down-mirrored-hovered.9.png Binary files differnew file mode 100644 index 00000000..d4814abe --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-down-mirrored-hovered.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-down-mirrored-hovered@2x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-down-mirrored-hovered@2x.9.png Binary files differnew file mode 100644 index 00000000..501a2204 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-down-mirrored-hovered@2x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-down-mirrored-hovered@3x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-down-mirrored-hovered@3x.9.png Binary files differnew file mode 100644 index 00000000..06854614 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-down-mirrored-hovered@3x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-down-mirrored-hovered@4x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-down-mirrored-hovered@4x.9.png Binary files differnew file mode 100644 index 00000000..37610e71 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-down-mirrored-hovered@4x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-down-mirrored-pressed.9.png b/src/imports/controls/imagine/images/spinbox-indicator-down-mirrored-pressed.9.png Binary files differnew file mode 100644 index 00000000..35fddf9a --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-down-mirrored-pressed.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-down-mirrored-pressed@2x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-down-mirrored-pressed@2x.9.png Binary files differnew file mode 100644 index 00000000..63050cf1 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-down-mirrored-pressed@2x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-down-mirrored-pressed@3x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-down-mirrored-pressed@3x.9.png Binary files differnew file mode 100644 index 00000000..7428a6dd --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-down-mirrored-pressed@3x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-down-mirrored-pressed@4x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-down-mirrored-pressed@4x.9.png Binary files differnew file mode 100644 index 00000000..d2849eeb --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-down-mirrored-pressed@4x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-down-mirrored.9.png b/src/imports/controls/imagine/images/spinbox-indicator-down-mirrored.9.png Binary files differnew file mode 100644 index 00000000..603dbd38 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-down-mirrored.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-down-mirrored@2x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-down-mirrored@2x.9.png Binary files differnew file mode 100644 index 00000000..fcd5a7e2 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-down-mirrored@2x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-down-mirrored@3x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-down-mirrored@3x.9.png Binary files differnew file mode 100644 index 00000000..fdd6f575 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-down-mirrored@3x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-down-mirrored@4x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-down-mirrored@4x.9.png Binary files differnew file mode 100644 index 00000000..02364a67 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-down-mirrored@4x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-down-pressed.9.png b/src/imports/controls/imagine/images/spinbox-indicator-down-pressed.9.png Binary files differnew file mode 100644 index 00000000..18abfb0b --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-down-pressed.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-down-pressed@2x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-down-pressed@2x.9.png Binary files differnew file mode 100644 index 00000000..ac60f187 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-down-pressed@2x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-down-pressed@3x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-down-pressed@3x.9.png Binary files differnew file mode 100644 index 00000000..507b4c6c --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-down-pressed@3x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-down-pressed@4x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-down-pressed@4x.9.png Binary files differnew file mode 100644 index 00000000..58934f8a --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-down-pressed@4x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-down.9.png b/src/imports/controls/imagine/images/spinbox-indicator-down.9.png Binary files differnew file mode 100644 index 00000000..171ff635 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-down.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-down@2x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-down@2x.9.png Binary files differnew file mode 100644 index 00000000..e5fc7ffa --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-down@2x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-down@3x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-down@3x.9.png Binary files differnew file mode 100644 index 00000000..bc1c50db --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-down@3x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-down@4x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-down@4x.9.png Binary files differnew file mode 100644 index 00000000..656c5a58 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-down@4x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-up-disabled.9.png b/src/imports/controls/imagine/images/spinbox-indicator-up-disabled.9.png Binary files differnew file mode 100644 index 00000000..233ed958 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-up-disabled.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-up-disabled@2x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-up-disabled@2x.9.png Binary files differnew file mode 100644 index 00000000..1f212179 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-up-disabled@2x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-up-disabled@3x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-up-disabled@3x.9.png Binary files differnew file mode 100644 index 00000000..cdebd5b3 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-up-disabled@3x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-up-disabled@4x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-up-disabled@4x.9.png Binary files differnew file mode 100644 index 00000000..e05430e6 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-up-disabled@4x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-up-editable-focused.9.png b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-focused.9.png Binary files differnew file mode 100644 index 00000000..71d9ab11 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-focused.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-up-editable-focused@2x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-focused@2x.9.png Binary files differnew file mode 100644 index 00000000..d12e77fa --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-focused@2x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-up-editable-focused@3x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-focused@3x.9.png Binary files differnew file mode 100644 index 00000000..22523122 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-focused@3x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-up-editable-focused@4x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-focused@4x.9.png Binary files differnew file mode 100644 index 00000000..f1082d21 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-focused@4x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-up-editable-hovered.9.png b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-hovered.9.png Binary files differnew file mode 100644 index 00000000..71d9ab11 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-hovered.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-up-editable-hovered@2x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-hovered@2x.9.png Binary files differnew file mode 100644 index 00000000..d12e77fa --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-hovered@2x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-up-editable-hovered@3x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-hovered@3x.9.png Binary files differnew file mode 100644 index 00000000..22523122 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-hovered@3x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-up-editable-hovered@4x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-hovered@4x.9.png Binary files differnew file mode 100644 index 00000000..f1082d21 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-hovered@4x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored-focused.9.png b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored-focused.9.png Binary files differnew file mode 100644 index 00000000..97c49ddc --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored-focused.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored-focused@2x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored-focused@2x.9.png Binary files differnew file mode 100644 index 00000000..50ee8be8 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored-focused@2x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored-focused@3x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored-focused@3x.9.png Binary files differnew file mode 100644 index 00000000..0ac31744 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored-focused@3x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored-focused@4x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored-focused@4x.9.png Binary files differnew file mode 100644 index 00000000..b4e8cf5a --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored-focused@4x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored-hovered.9.png b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored-hovered.9.png Binary files differnew file mode 100644 index 00000000..97c49ddc --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored-hovered.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored-hovered@2x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored-hovered@2x.9.png Binary files differnew file mode 100644 index 00000000..50ee8be8 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored-hovered@2x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored-hovered@3x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored-hovered@3x.9.png Binary files differnew file mode 100644 index 00000000..0ac31744 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored-hovered@3x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored-hovered@4x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored-hovered@4x.9.png Binary files differnew file mode 100644 index 00000000..b4e8cf5a --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored-hovered@4x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored-pressed.9.png b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored-pressed.9.png Binary files differnew file mode 100644 index 00000000..10033ff3 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored-pressed.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored-pressed@2x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored-pressed@2x.9.png Binary files differnew file mode 100644 index 00000000..6ff2b151 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored-pressed@2x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored-pressed@3x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored-pressed@3x.9.png Binary files differnew file mode 100644 index 00000000..430a3456 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored-pressed@3x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored-pressed@4x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored-pressed@4x.9.png Binary files differnew file mode 100644 index 00000000..bc1606e7 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored-pressed@4x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored.9.png b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored.9.png Binary files differnew file mode 100644 index 00000000..107bb699 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored@2x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored@2x.9.png Binary files differnew file mode 100644 index 00000000..e9e26e34 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored@2x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored@3x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored@3x.9.png Binary files differnew file mode 100644 index 00000000..c060ee79 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored@3x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored@4x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored@4x.9.png Binary files differnew file mode 100644 index 00000000..2f5012f9 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored@4x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-up-editable-pressed.9.png b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-pressed.9.png Binary files differnew file mode 100644 index 00000000..3a864191 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-pressed.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-up-editable-pressed@2x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-pressed@2x.9.png Binary files differnew file mode 100644 index 00000000..8b2c8d98 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-pressed@2x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-up-editable-pressed@3x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-pressed@3x.9.png Binary files differnew file mode 100644 index 00000000..2d843abb --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-pressed@3x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-up-editable-pressed@4x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-pressed@4x.9.png Binary files differnew file mode 100644 index 00000000..f93e4ef2 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-pressed@4x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-up-editable.9.png b/src/imports/controls/imagine/images/spinbox-indicator-up-editable.9.png Binary files differnew file mode 100644 index 00000000..f27911f9 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-up-editable.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-up-editable@2x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-up-editable@2x.9.png Binary files differnew file mode 100644 index 00000000..1873dd3b --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-up-editable@2x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-up-editable@3x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-up-editable@3x.9.png Binary files differnew file mode 100644 index 00000000..003f3937 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-up-editable@3x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-up-editable@4x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-up-editable@4x.9.png Binary files differnew file mode 100644 index 00000000..5fcfffa6 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-up-editable@4x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-up-focused.9.png b/src/imports/controls/imagine/images/spinbox-indicator-up-focused.9.png Binary files differnew file mode 100644 index 00000000..93b9c34c --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-up-focused.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-up-focused@2x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-up-focused@2x.9.png Binary files differnew file mode 100644 index 00000000..425c1725 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-up-focused@2x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-up-focused@3x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-up-focused@3x.9.png Binary files differnew file mode 100644 index 00000000..c6c728c3 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-up-focused@3x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-up-focused@4x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-up-focused@4x.9.png Binary files differnew file mode 100644 index 00000000..e0772bf3 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-up-focused@4x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-up-hovered.9.png b/src/imports/controls/imagine/images/spinbox-indicator-up-hovered.9.png Binary files differnew file mode 100644 index 00000000..93b9c34c --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-up-hovered.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-up-hovered@2x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-up-hovered@2x.9.png Binary files differnew file mode 100644 index 00000000..425c1725 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-up-hovered@2x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-up-hovered@3x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-up-hovered@3x.9.png Binary files differnew file mode 100644 index 00000000..c6c728c3 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-up-hovered@3x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-up-hovered@4x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-up-hovered@4x.9.png Binary files differnew file mode 100644 index 00000000..e0772bf3 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-up-hovered@4x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-up-mirrored-disabled.9.png b/src/imports/controls/imagine/images/spinbox-indicator-up-mirrored-disabled.9.png Binary files differnew file mode 100644 index 00000000..059c46ed --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-up-mirrored-disabled.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-up-mirrored-disabled@2x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-up-mirrored-disabled@2x.9.png Binary files differnew file mode 100644 index 00000000..670280ea --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-up-mirrored-disabled@2x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-up-mirrored-disabled@3x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-up-mirrored-disabled@3x.9.png Binary files differnew file mode 100644 index 00000000..b5e30546 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-up-mirrored-disabled@3x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-up-mirrored-disabled@4x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-up-mirrored-disabled@4x.9.png Binary files differnew file mode 100644 index 00000000..f34c65e8 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-up-mirrored-disabled@4x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-up-mirrored-focused.9.png b/src/imports/controls/imagine/images/spinbox-indicator-up-mirrored-focused.9.png Binary files differnew file mode 100644 index 00000000..8722a522 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-up-mirrored-focused.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-up-mirrored-focused@2x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-up-mirrored-focused@2x.9.png Binary files differnew file mode 100644 index 00000000..3e0dfafa --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-up-mirrored-focused@2x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-up-mirrored-focused@3x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-up-mirrored-focused@3x.9.png Binary files differnew file mode 100644 index 00000000..2337ccdc --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-up-mirrored-focused@3x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-up-mirrored-focused@4x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-up-mirrored-focused@4x.9.png Binary files differnew file mode 100644 index 00000000..9dca0ec1 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-up-mirrored-focused@4x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-up-mirrored-hovered.9.png b/src/imports/controls/imagine/images/spinbox-indicator-up-mirrored-hovered.9.png Binary files differnew file mode 100644 index 00000000..8722a522 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-up-mirrored-hovered.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-up-mirrored-hovered@2x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-up-mirrored-hovered@2x.9.png Binary files differnew file mode 100644 index 00000000..3e0dfafa --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-up-mirrored-hovered@2x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-up-mirrored-hovered@3x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-up-mirrored-hovered@3x.9.png Binary files differnew file mode 100644 index 00000000..2337ccdc --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-up-mirrored-hovered@3x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-up-mirrored-hovered@4x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-up-mirrored-hovered@4x.9.png Binary files differnew file mode 100644 index 00000000..9dca0ec1 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-up-mirrored-hovered@4x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-up-mirrored-pressed.9.png b/src/imports/controls/imagine/images/spinbox-indicator-up-mirrored-pressed.9.png Binary files differnew file mode 100644 index 00000000..3e9030d1 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-up-mirrored-pressed.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-up-mirrored-pressed@2x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-up-mirrored-pressed@2x.9.png Binary files differnew file mode 100644 index 00000000..5edc3dbe --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-up-mirrored-pressed@2x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-up-mirrored-pressed@3x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-up-mirrored-pressed@3x.9.png Binary files differnew file mode 100644 index 00000000..5f497719 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-up-mirrored-pressed@3x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-up-mirrored-pressed@4x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-up-mirrored-pressed@4x.9.png Binary files differnew file mode 100644 index 00000000..c376fb75 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-up-mirrored-pressed@4x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-up-mirrored.9.png b/src/imports/controls/imagine/images/spinbox-indicator-up-mirrored.9.png Binary files differnew file mode 100644 index 00000000..32a0613c --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-up-mirrored.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-up-mirrored@2x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-up-mirrored@2x.9.png Binary files differnew file mode 100644 index 00000000..8fdb30f8 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-up-mirrored@2x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-up-mirrored@3x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-up-mirrored@3x.9.png Binary files differnew file mode 100644 index 00000000..6e9e0172 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-up-mirrored@3x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-up-mirrored@4x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-up-mirrored@4x.9.png Binary files differnew file mode 100644 index 00000000..7e556e2c --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-up-mirrored@4x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-up-pressed.9.png b/src/imports/controls/imagine/images/spinbox-indicator-up-pressed.9.png Binary files differnew file mode 100644 index 00000000..8f8ef7c4 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-up-pressed.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-up-pressed@2x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-up-pressed@2x.9.png Binary files differnew file mode 100644 index 00000000..8760aef9 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-up-pressed@2x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-up-pressed@3x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-up-pressed@3x.9.png Binary files differnew file mode 100644 index 00000000..03beb7b9 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-up-pressed@3x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-up-pressed@4x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-up-pressed@4x.9.png Binary files differnew file mode 100644 index 00000000..876fd4af --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-up-pressed@4x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-up.9.png b/src/imports/controls/imagine/images/spinbox-indicator-up.9.png Binary files differnew file mode 100644 index 00000000..049d5806 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-up.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-up@2x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-up@2x.9.png Binary files differnew file mode 100644 index 00000000..75ce9cc1 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-up@2x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-up@3x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-up@3x.9.png Binary files differnew file mode 100644 index 00000000..42b5cdb5 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-up@3x.9.png diff --git a/src/imports/controls/imagine/images/spinbox-indicator-up@4x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-up@4x.9.png Binary files differnew file mode 100644 index 00000000..b59d4e77 --- /dev/null +++ b/src/imports/controls/imagine/images/spinbox-indicator-up@4x.9.png diff --git a/src/imports/controls/imagine/images/swipedelegate-background-disabled.9.png b/src/imports/controls/imagine/images/swipedelegate-background-disabled.9.png Binary files differnew file mode 100644 index 00000000..4b56fe35 --- /dev/null +++ b/src/imports/controls/imagine/images/swipedelegate-background-disabled.9.png diff --git a/src/imports/controls/imagine/images/swipedelegate-background-disabled@2x.9.png b/src/imports/controls/imagine/images/swipedelegate-background-disabled@2x.9.png Binary files differnew file mode 100644 index 00000000..34edef58 --- /dev/null +++ b/src/imports/controls/imagine/images/swipedelegate-background-disabled@2x.9.png diff --git a/src/imports/controls/imagine/images/swipedelegate-background-disabled@3x.9.png b/src/imports/controls/imagine/images/swipedelegate-background-disabled@3x.9.png Binary files differnew file mode 100644 index 00000000..dd2cc6ba --- /dev/null +++ b/src/imports/controls/imagine/images/swipedelegate-background-disabled@3x.9.png diff --git a/src/imports/controls/imagine/images/swipedelegate-background-disabled@4x.9.png b/src/imports/controls/imagine/images/swipedelegate-background-disabled@4x.9.png Binary files differnew file mode 100644 index 00000000..b7890a3c --- /dev/null +++ b/src/imports/controls/imagine/images/swipedelegate-background-disabled@4x.9.png diff --git a/src/imports/controls/imagine/images/swipedelegate-background-focused.9.png b/src/imports/controls/imagine/images/swipedelegate-background-focused.9.png Binary files differnew file mode 100644 index 00000000..b31343dd --- /dev/null +++ b/src/imports/controls/imagine/images/swipedelegate-background-focused.9.png diff --git a/src/imports/controls/imagine/images/swipedelegate-background-focused@2x.9.png b/src/imports/controls/imagine/images/swipedelegate-background-focused@2x.9.png Binary files differnew file mode 100644 index 00000000..c56c62da --- /dev/null +++ b/src/imports/controls/imagine/images/swipedelegate-background-focused@2x.9.png diff --git a/src/imports/controls/imagine/images/swipedelegate-background-focused@3x.9.png b/src/imports/controls/imagine/images/swipedelegate-background-focused@3x.9.png Binary files differnew file mode 100644 index 00000000..bfbc82f9 --- /dev/null +++ b/src/imports/controls/imagine/images/swipedelegate-background-focused@3x.9.png diff --git a/src/imports/controls/imagine/images/swipedelegate-background-focused@4x.9.png b/src/imports/controls/imagine/images/swipedelegate-background-focused@4x.9.png Binary files differnew file mode 100644 index 00000000..e31ab63b --- /dev/null +++ b/src/imports/controls/imagine/images/swipedelegate-background-focused@4x.9.png diff --git a/src/imports/controls/imagine/images/swipedelegate-background-highlighted.9.png b/src/imports/controls/imagine/images/swipedelegate-background-highlighted.9.png Binary files differnew file mode 100644 index 00000000..32847cfa --- /dev/null +++ b/src/imports/controls/imagine/images/swipedelegate-background-highlighted.9.png diff --git a/src/imports/controls/imagine/images/swipedelegate-background-highlighted@2x.9.png b/src/imports/controls/imagine/images/swipedelegate-background-highlighted@2x.9.png Binary files differnew file mode 100644 index 00000000..126fcb29 --- /dev/null +++ b/src/imports/controls/imagine/images/swipedelegate-background-highlighted@2x.9.png diff --git a/src/imports/controls/imagine/images/swipedelegate-background-highlighted@3x.9.png b/src/imports/controls/imagine/images/swipedelegate-background-highlighted@3x.9.png Binary files differnew file mode 100644 index 00000000..22b7c9f2 --- /dev/null +++ b/src/imports/controls/imagine/images/swipedelegate-background-highlighted@3x.9.png diff --git a/src/imports/controls/imagine/images/swipedelegate-background-highlighted@4x.9.png b/src/imports/controls/imagine/images/swipedelegate-background-highlighted@4x.9.png Binary files differnew file mode 100644 index 00000000..4e67f310 --- /dev/null +++ b/src/imports/controls/imagine/images/swipedelegate-background-highlighted@4x.9.png diff --git a/src/imports/controls/imagine/images/swipedelegate-background-hovered.9.png b/src/imports/controls/imagine/images/swipedelegate-background-hovered.9.png Binary files differnew file mode 100644 index 00000000..a53f63cd --- /dev/null +++ b/src/imports/controls/imagine/images/swipedelegate-background-hovered.9.png diff --git a/src/imports/controls/imagine/images/swipedelegate-background-hovered@2x.9.png b/src/imports/controls/imagine/images/swipedelegate-background-hovered@2x.9.png Binary files differnew file mode 100644 index 00000000..07510b10 --- /dev/null +++ b/src/imports/controls/imagine/images/swipedelegate-background-hovered@2x.9.png diff --git a/src/imports/controls/imagine/images/swipedelegate-background-hovered@3x.9.png b/src/imports/controls/imagine/images/swipedelegate-background-hovered@3x.9.png Binary files differnew file mode 100644 index 00000000..db2a210a --- /dev/null +++ b/src/imports/controls/imagine/images/swipedelegate-background-hovered@3x.9.png diff --git a/src/imports/controls/imagine/images/swipedelegate-background-hovered@4x.9.png b/src/imports/controls/imagine/images/swipedelegate-background-hovered@4x.9.png Binary files differnew file mode 100644 index 00000000..6427d7ab --- /dev/null +++ b/src/imports/controls/imagine/images/swipedelegate-background-hovered@4x.9.png diff --git a/src/imports/controls/imagine/images/swipedelegate-background-pressed.9.png b/src/imports/controls/imagine/images/swipedelegate-background-pressed.9.png Binary files differnew file mode 100644 index 00000000..b31343dd --- /dev/null +++ b/src/imports/controls/imagine/images/swipedelegate-background-pressed.9.png diff --git a/src/imports/controls/imagine/images/swipedelegate-background-pressed@2x.9.png b/src/imports/controls/imagine/images/swipedelegate-background-pressed@2x.9.png Binary files differnew file mode 100644 index 00000000..c56c62da --- /dev/null +++ b/src/imports/controls/imagine/images/swipedelegate-background-pressed@2x.9.png diff --git a/src/imports/controls/imagine/images/swipedelegate-background-pressed@3x.9.png b/src/imports/controls/imagine/images/swipedelegate-background-pressed@3x.9.png Binary files differnew file mode 100644 index 00000000..bfbc82f9 --- /dev/null +++ b/src/imports/controls/imagine/images/swipedelegate-background-pressed@3x.9.png diff --git a/src/imports/controls/imagine/images/swipedelegate-background-pressed@4x.9.png b/src/imports/controls/imagine/images/swipedelegate-background-pressed@4x.9.png Binary files differnew file mode 100644 index 00000000..e31ab63b --- /dev/null +++ b/src/imports/controls/imagine/images/swipedelegate-background-pressed@4x.9.png diff --git a/src/imports/controls/imagine/images/swipedelegate-background.9.png b/src/imports/controls/imagine/images/swipedelegate-background.9.png Binary files differnew file mode 100644 index 00000000..a53f63cd --- /dev/null +++ b/src/imports/controls/imagine/images/swipedelegate-background.9.png diff --git a/src/imports/controls/imagine/images/swipedelegate-background@2x.9.png b/src/imports/controls/imagine/images/swipedelegate-background@2x.9.png Binary files differnew file mode 100644 index 00000000..07510b10 --- /dev/null +++ b/src/imports/controls/imagine/images/swipedelegate-background@2x.9.png diff --git a/src/imports/controls/imagine/images/swipedelegate-background@3x.9.png b/src/imports/controls/imagine/images/swipedelegate-background@3x.9.png Binary files differnew file mode 100644 index 00000000..db2a210a --- /dev/null +++ b/src/imports/controls/imagine/images/swipedelegate-background@3x.9.png diff --git a/src/imports/controls/imagine/images/swipedelegate-background@4x.9.png b/src/imports/controls/imagine/images/swipedelegate-background@4x.9.png Binary files differnew file mode 100644 index 00000000..6427d7ab --- /dev/null +++ b/src/imports/controls/imagine/images/swipedelegate-background@4x.9.png diff --git a/src/imports/controls/imagine/images/switch-handle-disabled.png b/src/imports/controls/imagine/images/switch-handle-disabled.png Binary files differnew file mode 100644 index 00000000..4108457f --- /dev/null +++ b/src/imports/controls/imagine/images/switch-handle-disabled.png diff --git a/src/imports/controls/imagine/images/switch-handle-disabled@2x.png b/src/imports/controls/imagine/images/switch-handle-disabled@2x.png Binary files differnew file mode 100644 index 00000000..c73b8b45 --- /dev/null +++ b/src/imports/controls/imagine/images/switch-handle-disabled@2x.png diff --git a/src/imports/controls/imagine/images/switch-handle-disabled@3x.png b/src/imports/controls/imagine/images/switch-handle-disabled@3x.png Binary files differnew file mode 100644 index 00000000..3a927393 --- /dev/null +++ b/src/imports/controls/imagine/images/switch-handle-disabled@3x.png diff --git a/src/imports/controls/imagine/images/switch-handle-disabled@4x.png b/src/imports/controls/imagine/images/switch-handle-disabled@4x.png Binary files differnew file mode 100644 index 00000000..2893b7a6 --- /dev/null +++ b/src/imports/controls/imagine/images/switch-handle-disabled@4x.png diff --git a/src/imports/controls/imagine/images/switch-handle-pressed.png b/src/imports/controls/imagine/images/switch-handle-pressed.png Binary files differnew file mode 100644 index 00000000..4108457f --- /dev/null +++ b/src/imports/controls/imagine/images/switch-handle-pressed.png diff --git a/src/imports/controls/imagine/images/switch-handle-pressed@2x.png b/src/imports/controls/imagine/images/switch-handle-pressed@2x.png Binary files differnew file mode 100644 index 00000000..c73b8b45 --- /dev/null +++ b/src/imports/controls/imagine/images/switch-handle-pressed@2x.png diff --git a/src/imports/controls/imagine/images/switch-handle-pressed@3x.png b/src/imports/controls/imagine/images/switch-handle-pressed@3x.png Binary files differnew file mode 100644 index 00000000..3a927393 --- /dev/null +++ b/src/imports/controls/imagine/images/switch-handle-pressed@3x.png diff --git a/src/imports/controls/imagine/images/switch-handle-pressed@4x.png b/src/imports/controls/imagine/images/switch-handle-pressed@4x.png Binary files differnew file mode 100644 index 00000000..2893b7a6 --- /dev/null +++ b/src/imports/controls/imagine/images/switch-handle-pressed@4x.png diff --git a/src/imports/controls/imagine/images/switch-handle.png b/src/imports/controls/imagine/images/switch-handle.png Binary files differnew file mode 100644 index 00000000..814cfe4f --- /dev/null +++ b/src/imports/controls/imagine/images/switch-handle.png diff --git a/src/imports/controls/imagine/images/switch-handle@2x.png b/src/imports/controls/imagine/images/switch-handle@2x.png Binary files differnew file mode 100644 index 00000000..df3e41c5 --- /dev/null +++ b/src/imports/controls/imagine/images/switch-handle@2x.png diff --git a/src/imports/controls/imagine/images/switch-handle@3x.png b/src/imports/controls/imagine/images/switch-handle@3x.png Binary files differnew file mode 100644 index 00000000..601c0d53 --- /dev/null +++ b/src/imports/controls/imagine/images/switch-handle@3x.png diff --git a/src/imports/controls/imagine/images/switch-handle@4x.png b/src/imports/controls/imagine/images/switch-handle@4x.png Binary files differnew file mode 100644 index 00000000..b03a1d31 --- /dev/null +++ b/src/imports/controls/imagine/images/switch-handle@4x.png diff --git a/src/imports/controls/imagine/images/switch-indicator-checked-focused.png b/src/imports/controls/imagine/images/switch-indicator-checked-focused.png Binary files differnew file mode 100644 index 00000000..06f09514 --- /dev/null +++ b/src/imports/controls/imagine/images/switch-indicator-checked-focused.png diff --git a/src/imports/controls/imagine/images/switch-indicator-checked-focused@2x.png b/src/imports/controls/imagine/images/switch-indicator-checked-focused@2x.png Binary files differnew file mode 100644 index 00000000..90044add --- /dev/null +++ b/src/imports/controls/imagine/images/switch-indicator-checked-focused@2x.png diff --git a/src/imports/controls/imagine/images/switch-indicator-checked-focused@3x.png b/src/imports/controls/imagine/images/switch-indicator-checked-focused@3x.png Binary files differnew file mode 100644 index 00000000..c987c7b5 --- /dev/null +++ b/src/imports/controls/imagine/images/switch-indicator-checked-focused@3x.png diff --git a/src/imports/controls/imagine/images/switch-indicator-checked-focused@4x.png b/src/imports/controls/imagine/images/switch-indicator-checked-focused@4x.png Binary files differnew file mode 100644 index 00000000..c2351de8 --- /dev/null +++ b/src/imports/controls/imagine/images/switch-indicator-checked-focused@4x.png diff --git a/src/imports/controls/imagine/images/switch-indicator-checked-hovered.png b/src/imports/controls/imagine/images/switch-indicator-checked-hovered.png Binary files differnew file mode 100644 index 00000000..06f09514 --- /dev/null +++ b/src/imports/controls/imagine/images/switch-indicator-checked-hovered.png diff --git a/src/imports/controls/imagine/images/switch-indicator-checked-hovered@2x.png b/src/imports/controls/imagine/images/switch-indicator-checked-hovered@2x.png Binary files differnew file mode 100644 index 00000000..90044add --- /dev/null +++ b/src/imports/controls/imagine/images/switch-indicator-checked-hovered@2x.png diff --git a/src/imports/controls/imagine/images/switch-indicator-checked-hovered@3x.png b/src/imports/controls/imagine/images/switch-indicator-checked-hovered@3x.png Binary files differnew file mode 100644 index 00000000..c987c7b5 --- /dev/null +++ b/src/imports/controls/imagine/images/switch-indicator-checked-hovered@3x.png diff --git a/src/imports/controls/imagine/images/switch-indicator-checked-hovered@4x.png b/src/imports/controls/imagine/images/switch-indicator-checked-hovered@4x.png Binary files differnew file mode 100644 index 00000000..c2351de8 --- /dev/null +++ b/src/imports/controls/imagine/images/switch-indicator-checked-hovered@4x.png diff --git a/src/imports/controls/imagine/images/switch-indicator-checked-pressed.png b/src/imports/controls/imagine/images/switch-indicator-checked-pressed.png Binary files differnew file mode 100644 index 00000000..fcf8a5f3 --- /dev/null +++ b/src/imports/controls/imagine/images/switch-indicator-checked-pressed.png diff --git a/src/imports/controls/imagine/images/switch-indicator-checked-pressed@2x.png b/src/imports/controls/imagine/images/switch-indicator-checked-pressed@2x.png Binary files differnew file mode 100644 index 00000000..b8747547 --- /dev/null +++ b/src/imports/controls/imagine/images/switch-indicator-checked-pressed@2x.png diff --git a/src/imports/controls/imagine/images/switch-indicator-checked-pressed@3x.png b/src/imports/controls/imagine/images/switch-indicator-checked-pressed@3x.png Binary files differnew file mode 100644 index 00000000..1a254945 --- /dev/null +++ b/src/imports/controls/imagine/images/switch-indicator-checked-pressed@3x.png diff --git a/src/imports/controls/imagine/images/switch-indicator-checked-pressed@4x.png b/src/imports/controls/imagine/images/switch-indicator-checked-pressed@4x.png Binary files differnew file mode 100644 index 00000000..7af5cc05 --- /dev/null +++ b/src/imports/controls/imagine/images/switch-indicator-checked-pressed@4x.png diff --git a/src/imports/controls/imagine/images/switch-indicator-checked.png b/src/imports/controls/imagine/images/switch-indicator-checked.png Binary files differnew file mode 100644 index 00000000..00af5fd7 --- /dev/null +++ b/src/imports/controls/imagine/images/switch-indicator-checked.png diff --git a/src/imports/controls/imagine/images/switch-indicator-checked@2x.png b/src/imports/controls/imagine/images/switch-indicator-checked@2x.png Binary files differnew file mode 100644 index 00000000..b9ae1ce2 --- /dev/null +++ b/src/imports/controls/imagine/images/switch-indicator-checked@2x.png diff --git a/src/imports/controls/imagine/images/switch-indicator-checked@3x.png b/src/imports/controls/imagine/images/switch-indicator-checked@3x.png Binary files differnew file mode 100644 index 00000000..fbcd46df --- /dev/null +++ b/src/imports/controls/imagine/images/switch-indicator-checked@3x.png diff --git a/src/imports/controls/imagine/images/switch-indicator-checked@4x.png b/src/imports/controls/imagine/images/switch-indicator-checked@4x.png Binary files differnew file mode 100644 index 00000000..04807b20 --- /dev/null +++ b/src/imports/controls/imagine/images/switch-indicator-checked@4x.png diff --git a/src/imports/controls/imagine/images/switch-indicator-disabled.png b/src/imports/controls/imagine/images/switch-indicator-disabled.png Binary files differnew file mode 100644 index 00000000..47800da2 --- /dev/null +++ b/src/imports/controls/imagine/images/switch-indicator-disabled.png diff --git a/src/imports/controls/imagine/images/switch-indicator-disabled@2x.png b/src/imports/controls/imagine/images/switch-indicator-disabled@2x.png Binary files differnew file mode 100644 index 00000000..bc3cfbf4 --- /dev/null +++ b/src/imports/controls/imagine/images/switch-indicator-disabled@2x.png diff --git a/src/imports/controls/imagine/images/switch-indicator-disabled@3x.png b/src/imports/controls/imagine/images/switch-indicator-disabled@3x.png Binary files differnew file mode 100644 index 00000000..b29d5756 --- /dev/null +++ b/src/imports/controls/imagine/images/switch-indicator-disabled@3x.png diff --git a/src/imports/controls/imagine/images/switch-indicator-disabled@4x.png b/src/imports/controls/imagine/images/switch-indicator-disabled@4x.png Binary files differnew file mode 100644 index 00000000..22562fdf --- /dev/null +++ b/src/imports/controls/imagine/images/switch-indicator-disabled@4x.png diff --git a/src/imports/controls/imagine/images/switch-indicator-focused.png b/src/imports/controls/imagine/images/switch-indicator-focused.png Binary files differnew file mode 100644 index 00000000..570f6872 --- /dev/null +++ b/src/imports/controls/imagine/images/switch-indicator-focused.png diff --git a/src/imports/controls/imagine/images/switch-indicator-focused@2x.png b/src/imports/controls/imagine/images/switch-indicator-focused@2x.png Binary files differnew file mode 100644 index 00000000..389c7f51 --- /dev/null +++ b/src/imports/controls/imagine/images/switch-indicator-focused@2x.png diff --git a/src/imports/controls/imagine/images/switch-indicator-focused@3x.png b/src/imports/controls/imagine/images/switch-indicator-focused@3x.png Binary files differnew file mode 100644 index 00000000..c2e2a155 --- /dev/null +++ b/src/imports/controls/imagine/images/switch-indicator-focused@3x.png diff --git a/src/imports/controls/imagine/images/switch-indicator-focused@4x.png b/src/imports/controls/imagine/images/switch-indicator-focused@4x.png Binary files differnew file mode 100644 index 00000000..3637139f --- /dev/null +++ b/src/imports/controls/imagine/images/switch-indicator-focused@4x.png diff --git a/src/imports/controls/imagine/images/switch-indicator-hovered.png b/src/imports/controls/imagine/images/switch-indicator-hovered.png Binary files differnew file mode 100644 index 00000000..570f6872 --- /dev/null +++ b/src/imports/controls/imagine/images/switch-indicator-hovered.png diff --git a/src/imports/controls/imagine/images/switch-indicator-hovered@2x.png b/src/imports/controls/imagine/images/switch-indicator-hovered@2x.png Binary files differnew file mode 100644 index 00000000..389c7f51 --- /dev/null +++ b/src/imports/controls/imagine/images/switch-indicator-hovered@2x.png diff --git a/src/imports/controls/imagine/images/switch-indicator-hovered@3x.png b/src/imports/controls/imagine/images/switch-indicator-hovered@3x.png Binary files differnew file mode 100644 index 00000000..c2e2a155 --- /dev/null +++ b/src/imports/controls/imagine/images/switch-indicator-hovered@3x.png diff --git a/src/imports/controls/imagine/images/switch-indicator-hovered@4x.png b/src/imports/controls/imagine/images/switch-indicator-hovered@4x.png Binary files differnew file mode 100644 index 00000000..3637139f --- /dev/null +++ b/src/imports/controls/imagine/images/switch-indicator-hovered@4x.png diff --git a/src/imports/controls/imagine/images/switch-indicator-pressed.png b/src/imports/controls/imagine/images/switch-indicator-pressed.png Binary files differnew file mode 100644 index 00000000..6129c382 --- /dev/null +++ b/src/imports/controls/imagine/images/switch-indicator-pressed.png diff --git a/src/imports/controls/imagine/images/switch-indicator-pressed@2x.png b/src/imports/controls/imagine/images/switch-indicator-pressed@2x.png Binary files differnew file mode 100644 index 00000000..144eb013 --- /dev/null +++ b/src/imports/controls/imagine/images/switch-indicator-pressed@2x.png diff --git a/src/imports/controls/imagine/images/switch-indicator-pressed@3x.png b/src/imports/controls/imagine/images/switch-indicator-pressed@3x.png Binary files differnew file mode 100644 index 00000000..f59d9051 --- /dev/null +++ b/src/imports/controls/imagine/images/switch-indicator-pressed@3x.png diff --git a/src/imports/controls/imagine/images/switch-indicator-pressed@4x.png b/src/imports/controls/imagine/images/switch-indicator-pressed@4x.png Binary files differnew file mode 100644 index 00000000..48d24f7c --- /dev/null +++ b/src/imports/controls/imagine/images/switch-indicator-pressed@4x.png diff --git a/src/imports/controls/imagine/images/switch-indicator.png b/src/imports/controls/imagine/images/switch-indicator.png Binary files differnew file mode 100644 index 00000000..e0ec85e2 --- /dev/null +++ b/src/imports/controls/imagine/images/switch-indicator.png diff --git a/src/imports/controls/imagine/images/switch-indicator@2x.png b/src/imports/controls/imagine/images/switch-indicator@2x.png Binary files differnew file mode 100644 index 00000000..d0026507 --- /dev/null +++ b/src/imports/controls/imagine/images/switch-indicator@2x.png diff --git a/src/imports/controls/imagine/images/switch-indicator@3x.png b/src/imports/controls/imagine/images/switch-indicator@3x.png Binary files differnew file mode 100644 index 00000000..1a59e3b0 --- /dev/null +++ b/src/imports/controls/imagine/images/switch-indicator@3x.png diff --git a/src/imports/controls/imagine/images/switch-indicator@4x.png b/src/imports/controls/imagine/images/switch-indicator@4x.png Binary files differnew file mode 100644 index 00000000..1db31ec3 --- /dev/null +++ b/src/imports/controls/imagine/images/switch-indicator@4x.png diff --git a/src/imports/controls/imagine/images/switchdelegate-background-disabled.9.png b/src/imports/controls/imagine/images/switchdelegate-background-disabled.9.png Binary files differnew file mode 100644 index 00000000..4b56fe35 --- /dev/null +++ b/src/imports/controls/imagine/images/switchdelegate-background-disabled.9.png diff --git a/src/imports/controls/imagine/images/switchdelegate-background-disabled@2x.9.png b/src/imports/controls/imagine/images/switchdelegate-background-disabled@2x.9.png Binary files differnew file mode 100644 index 00000000..34edef58 --- /dev/null +++ b/src/imports/controls/imagine/images/switchdelegate-background-disabled@2x.9.png diff --git a/src/imports/controls/imagine/images/switchdelegate-background-disabled@3x.9.png b/src/imports/controls/imagine/images/switchdelegate-background-disabled@3x.9.png Binary files differnew file mode 100644 index 00000000..dd2cc6ba --- /dev/null +++ b/src/imports/controls/imagine/images/switchdelegate-background-disabled@3x.9.png diff --git a/src/imports/controls/imagine/images/switchdelegate-background-disabled@4x.9.png b/src/imports/controls/imagine/images/switchdelegate-background-disabled@4x.9.png Binary files differnew file mode 100644 index 00000000..b7890a3c --- /dev/null +++ b/src/imports/controls/imagine/images/switchdelegate-background-disabled@4x.9.png diff --git a/src/imports/controls/imagine/images/switchdelegate-background-focused.9.png b/src/imports/controls/imagine/images/switchdelegate-background-focused.9.png Binary files differnew file mode 100644 index 00000000..b31343dd --- /dev/null +++ b/src/imports/controls/imagine/images/switchdelegate-background-focused.9.png diff --git a/src/imports/controls/imagine/images/switchdelegate-background-focused@2x.9.png b/src/imports/controls/imagine/images/switchdelegate-background-focused@2x.9.png Binary files differnew file mode 100644 index 00000000..c56c62da --- /dev/null +++ b/src/imports/controls/imagine/images/switchdelegate-background-focused@2x.9.png diff --git a/src/imports/controls/imagine/images/switchdelegate-background-focused@3x.9.png b/src/imports/controls/imagine/images/switchdelegate-background-focused@3x.9.png Binary files differnew file mode 100644 index 00000000..bfbc82f9 --- /dev/null +++ b/src/imports/controls/imagine/images/switchdelegate-background-focused@3x.9.png diff --git a/src/imports/controls/imagine/images/switchdelegate-background-focused@4x.9.png b/src/imports/controls/imagine/images/switchdelegate-background-focused@4x.9.png Binary files differnew file mode 100644 index 00000000..e31ab63b --- /dev/null +++ b/src/imports/controls/imagine/images/switchdelegate-background-focused@4x.9.png diff --git a/src/imports/controls/imagine/images/switchdelegate-background-hovered.9.png b/src/imports/controls/imagine/images/switchdelegate-background-hovered.9.png Binary files differnew file mode 100644 index 00000000..a53f63cd --- /dev/null +++ b/src/imports/controls/imagine/images/switchdelegate-background-hovered.9.png diff --git a/src/imports/controls/imagine/images/switchdelegate-background-hovered@2x.9.png b/src/imports/controls/imagine/images/switchdelegate-background-hovered@2x.9.png Binary files differnew file mode 100644 index 00000000..07510b10 --- /dev/null +++ b/src/imports/controls/imagine/images/switchdelegate-background-hovered@2x.9.png diff --git a/src/imports/controls/imagine/images/switchdelegate-background-hovered@3x.9.png b/src/imports/controls/imagine/images/switchdelegate-background-hovered@3x.9.png Binary files differnew file mode 100644 index 00000000..db2a210a --- /dev/null +++ b/src/imports/controls/imagine/images/switchdelegate-background-hovered@3x.9.png diff --git a/src/imports/controls/imagine/images/switchdelegate-background-hovered@4x.9.png b/src/imports/controls/imagine/images/switchdelegate-background-hovered@4x.9.png Binary files differnew file mode 100644 index 00000000..6427d7ab --- /dev/null +++ b/src/imports/controls/imagine/images/switchdelegate-background-hovered@4x.9.png diff --git a/src/imports/controls/imagine/images/switchdelegate-background-pressed.9.png b/src/imports/controls/imagine/images/switchdelegate-background-pressed.9.png Binary files differnew file mode 100644 index 00000000..b31343dd --- /dev/null +++ b/src/imports/controls/imagine/images/switchdelegate-background-pressed.9.png diff --git a/src/imports/controls/imagine/images/switchdelegate-background-pressed@2x.9.png b/src/imports/controls/imagine/images/switchdelegate-background-pressed@2x.9.png Binary files differnew file mode 100644 index 00000000..c56c62da --- /dev/null +++ b/src/imports/controls/imagine/images/switchdelegate-background-pressed@2x.9.png diff --git a/src/imports/controls/imagine/images/switchdelegate-background-pressed@3x.9.png b/src/imports/controls/imagine/images/switchdelegate-background-pressed@3x.9.png Binary files differnew file mode 100644 index 00000000..bfbc82f9 --- /dev/null +++ b/src/imports/controls/imagine/images/switchdelegate-background-pressed@3x.9.png diff --git a/src/imports/controls/imagine/images/switchdelegate-background-pressed@4x.9.png b/src/imports/controls/imagine/images/switchdelegate-background-pressed@4x.9.png Binary files differnew file mode 100644 index 00000000..e31ab63b --- /dev/null +++ b/src/imports/controls/imagine/images/switchdelegate-background-pressed@4x.9.png diff --git a/src/imports/controls/imagine/images/switchdelegate-background.9.png b/src/imports/controls/imagine/images/switchdelegate-background.9.png Binary files differnew file mode 100644 index 00000000..a53f63cd --- /dev/null +++ b/src/imports/controls/imagine/images/switchdelegate-background.9.png diff --git a/src/imports/controls/imagine/images/switchdelegate-background@2x.9.png b/src/imports/controls/imagine/images/switchdelegate-background@2x.9.png Binary files differnew file mode 100644 index 00000000..07510b10 --- /dev/null +++ b/src/imports/controls/imagine/images/switchdelegate-background@2x.9.png diff --git a/src/imports/controls/imagine/images/switchdelegate-background@3x.9.png b/src/imports/controls/imagine/images/switchdelegate-background@3x.9.png Binary files differnew file mode 100644 index 00000000..db2a210a --- /dev/null +++ b/src/imports/controls/imagine/images/switchdelegate-background@3x.9.png diff --git a/src/imports/controls/imagine/images/switchdelegate-background@4x.9.png b/src/imports/controls/imagine/images/switchdelegate-background@4x.9.png Binary files differnew file mode 100644 index 00000000..6427d7ab --- /dev/null +++ b/src/imports/controls/imagine/images/switchdelegate-background@4x.9.png diff --git a/src/imports/controls/imagine/images/switchdelegate-handle-disabled.png b/src/imports/controls/imagine/images/switchdelegate-handle-disabled.png Binary files differnew file mode 100644 index 00000000..4108457f --- /dev/null +++ b/src/imports/controls/imagine/images/switchdelegate-handle-disabled.png diff --git a/src/imports/controls/imagine/images/switchdelegate-handle-disabled@2x.png b/src/imports/controls/imagine/images/switchdelegate-handle-disabled@2x.png Binary files differnew file mode 100644 index 00000000..c73b8b45 --- /dev/null +++ b/src/imports/controls/imagine/images/switchdelegate-handle-disabled@2x.png diff --git a/src/imports/controls/imagine/images/switchdelegate-handle-disabled@3x.png b/src/imports/controls/imagine/images/switchdelegate-handle-disabled@3x.png Binary files differnew file mode 100644 index 00000000..3a927393 --- /dev/null +++ b/src/imports/controls/imagine/images/switchdelegate-handle-disabled@3x.png diff --git a/src/imports/controls/imagine/images/switchdelegate-handle-disabled@4x.png b/src/imports/controls/imagine/images/switchdelegate-handle-disabled@4x.png Binary files differnew file mode 100644 index 00000000..2893b7a6 --- /dev/null +++ b/src/imports/controls/imagine/images/switchdelegate-handle-disabled@4x.png diff --git a/src/imports/controls/imagine/images/switchdelegate-handle-pressed.png b/src/imports/controls/imagine/images/switchdelegate-handle-pressed.png Binary files differnew file mode 100644 index 00000000..4108457f --- /dev/null +++ b/src/imports/controls/imagine/images/switchdelegate-handle-pressed.png diff --git a/src/imports/controls/imagine/images/switchdelegate-handle-pressed@2x.png b/src/imports/controls/imagine/images/switchdelegate-handle-pressed@2x.png Binary files differnew file mode 100644 index 00000000..c73b8b45 --- /dev/null +++ b/src/imports/controls/imagine/images/switchdelegate-handle-pressed@2x.png diff --git a/src/imports/controls/imagine/images/switchdelegate-handle-pressed@3x.png b/src/imports/controls/imagine/images/switchdelegate-handle-pressed@3x.png Binary files differnew file mode 100644 index 00000000..3a927393 --- /dev/null +++ b/src/imports/controls/imagine/images/switchdelegate-handle-pressed@3x.png diff --git a/src/imports/controls/imagine/images/switchdelegate-handle-pressed@4x.png b/src/imports/controls/imagine/images/switchdelegate-handle-pressed@4x.png Binary files differnew file mode 100644 index 00000000..2893b7a6 --- /dev/null +++ b/src/imports/controls/imagine/images/switchdelegate-handle-pressed@4x.png diff --git a/src/imports/controls/imagine/images/switchdelegate-handle.png b/src/imports/controls/imagine/images/switchdelegate-handle.png Binary files differnew file mode 100644 index 00000000..814cfe4f --- /dev/null +++ b/src/imports/controls/imagine/images/switchdelegate-handle.png diff --git a/src/imports/controls/imagine/images/switchdelegate-handle@2x.png b/src/imports/controls/imagine/images/switchdelegate-handle@2x.png Binary files differnew file mode 100644 index 00000000..df3e41c5 --- /dev/null +++ b/src/imports/controls/imagine/images/switchdelegate-handle@2x.png diff --git a/src/imports/controls/imagine/images/switchdelegate-handle@3x.png b/src/imports/controls/imagine/images/switchdelegate-handle@3x.png Binary files differnew file mode 100644 index 00000000..601c0d53 --- /dev/null +++ b/src/imports/controls/imagine/images/switchdelegate-handle@3x.png diff --git a/src/imports/controls/imagine/images/switchdelegate-handle@4x.png b/src/imports/controls/imagine/images/switchdelegate-handle@4x.png Binary files differnew file mode 100644 index 00000000..b03a1d31 --- /dev/null +++ b/src/imports/controls/imagine/images/switchdelegate-handle@4x.png diff --git a/src/imports/controls/imagine/images/switchdelegate-indicator-checked-focused.png b/src/imports/controls/imagine/images/switchdelegate-indicator-checked-focused.png Binary files differnew file mode 100644 index 00000000..06f09514 --- /dev/null +++ b/src/imports/controls/imagine/images/switchdelegate-indicator-checked-focused.png diff --git a/src/imports/controls/imagine/images/switchdelegate-indicator-checked-focused@2x.png b/src/imports/controls/imagine/images/switchdelegate-indicator-checked-focused@2x.png Binary files differnew file mode 100644 index 00000000..90044add --- /dev/null +++ b/src/imports/controls/imagine/images/switchdelegate-indicator-checked-focused@2x.png diff --git a/src/imports/controls/imagine/images/switchdelegate-indicator-checked-focused@3x.png b/src/imports/controls/imagine/images/switchdelegate-indicator-checked-focused@3x.png Binary files differnew file mode 100644 index 00000000..c987c7b5 --- /dev/null +++ b/src/imports/controls/imagine/images/switchdelegate-indicator-checked-focused@3x.png diff --git a/src/imports/controls/imagine/images/switchdelegate-indicator-checked-focused@4x.png b/src/imports/controls/imagine/images/switchdelegate-indicator-checked-focused@4x.png Binary files differnew file mode 100644 index 00000000..c2351de8 --- /dev/null +++ b/src/imports/controls/imagine/images/switchdelegate-indicator-checked-focused@4x.png diff --git a/src/imports/controls/imagine/images/switchdelegate-indicator-checked-hovered.png b/src/imports/controls/imagine/images/switchdelegate-indicator-checked-hovered.png Binary files differnew file mode 100644 index 00000000..06f09514 --- /dev/null +++ b/src/imports/controls/imagine/images/switchdelegate-indicator-checked-hovered.png diff --git a/src/imports/controls/imagine/images/switchdelegate-indicator-checked-hovered@2x.png b/src/imports/controls/imagine/images/switchdelegate-indicator-checked-hovered@2x.png Binary files differnew file mode 100644 index 00000000..90044add --- /dev/null +++ b/src/imports/controls/imagine/images/switchdelegate-indicator-checked-hovered@2x.png diff --git a/src/imports/controls/imagine/images/switchdelegate-indicator-checked-hovered@3x.png b/src/imports/controls/imagine/images/switchdelegate-indicator-checked-hovered@3x.png Binary files differnew file mode 100644 index 00000000..c987c7b5 --- /dev/null +++ b/src/imports/controls/imagine/images/switchdelegate-indicator-checked-hovered@3x.png diff --git a/src/imports/controls/imagine/images/switchdelegate-indicator-checked-hovered@4x.png b/src/imports/controls/imagine/images/switchdelegate-indicator-checked-hovered@4x.png Binary files differnew file mode 100644 index 00000000..c2351de8 --- /dev/null +++ b/src/imports/controls/imagine/images/switchdelegate-indicator-checked-hovered@4x.png diff --git a/src/imports/controls/imagine/images/switchdelegate-indicator-checked-pressed.png b/src/imports/controls/imagine/images/switchdelegate-indicator-checked-pressed.png Binary files differnew file mode 100644 index 00000000..fcf8a5f3 --- /dev/null +++ b/src/imports/controls/imagine/images/switchdelegate-indicator-checked-pressed.png diff --git a/src/imports/controls/imagine/images/switchdelegate-indicator-checked-pressed@2x.png b/src/imports/controls/imagine/images/switchdelegate-indicator-checked-pressed@2x.png Binary files differnew file mode 100644 index 00000000..b8747547 --- /dev/null +++ b/src/imports/controls/imagine/images/switchdelegate-indicator-checked-pressed@2x.png diff --git a/src/imports/controls/imagine/images/switchdelegate-indicator-checked-pressed@3x.png b/src/imports/controls/imagine/images/switchdelegate-indicator-checked-pressed@3x.png Binary files differnew file mode 100644 index 00000000..1a254945 --- /dev/null +++ b/src/imports/controls/imagine/images/switchdelegate-indicator-checked-pressed@3x.png diff --git a/src/imports/controls/imagine/images/switchdelegate-indicator-checked-pressed@4x.png b/src/imports/controls/imagine/images/switchdelegate-indicator-checked-pressed@4x.png Binary files differnew file mode 100644 index 00000000..7af5cc05 --- /dev/null +++ b/src/imports/controls/imagine/images/switchdelegate-indicator-checked-pressed@4x.png diff --git a/src/imports/controls/imagine/images/switchdelegate-indicator-checked.png b/src/imports/controls/imagine/images/switchdelegate-indicator-checked.png Binary files differnew file mode 100644 index 00000000..00af5fd7 --- /dev/null +++ b/src/imports/controls/imagine/images/switchdelegate-indicator-checked.png diff --git a/src/imports/controls/imagine/images/switchdelegate-indicator-checked@2x.png b/src/imports/controls/imagine/images/switchdelegate-indicator-checked@2x.png Binary files differnew file mode 100644 index 00000000..b9ae1ce2 --- /dev/null +++ b/src/imports/controls/imagine/images/switchdelegate-indicator-checked@2x.png diff --git a/src/imports/controls/imagine/images/switchdelegate-indicator-checked@3x.png b/src/imports/controls/imagine/images/switchdelegate-indicator-checked@3x.png Binary files differnew file mode 100644 index 00000000..fbcd46df --- /dev/null +++ b/src/imports/controls/imagine/images/switchdelegate-indicator-checked@3x.png diff --git a/src/imports/controls/imagine/images/switchdelegate-indicator-checked@4x.png b/src/imports/controls/imagine/images/switchdelegate-indicator-checked@4x.png Binary files differnew file mode 100644 index 00000000..04807b20 --- /dev/null +++ b/src/imports/controls/imagine/images/switchdelegate-indicator-checked@4x.png diff --git a/src/imports/controls/imagine/images/switchdelegate-indicator-disabled.png b/src/imports/controls/imagine/images/switchdelegate-indicator-disabled.png Binary files differnew file mode 100644 index 00000000..47800da2 --- /dev/null +++ b/src/imports/controls/imagine/images/switchdelegate-indicator-disabled.png diff --git a/src/imports/controls/imagine/images/switchdelegate-indicator-disabled@2x.png b/src/imports/controls/imagine/images/switchdelegate-indicator-disabled@2x.png Binary files differnew file mode 100644 index 00000000..bc3cfbf4 --- /dev/null +++ b/src/imports/controls/imagine/images/switchdelegate-indicator-disabled@2x.png diff --git a/src/imports/controls/imagine/images/switchdelegate-indicator-disabled@3x.png b/src/imports/controls/imagine/images/switchdelegate-indicator-disabled@3x.png Binary files differnew file mode 100644 index 00000000..b29d5756 --- /dev/null +++ b/src/imports/controls/imagine/images/switchdelegate-indicator-disabled@3x.png diff --git a/src/imports/controls/imagine/images/switchdelegate-indicator-disabled@4x.png b/src/imports/controls/imagine/images/switchdelegate-indicator-disabled@4x.png Binary files differnew file mode 100644 index 00000000..22562fdf --- /dev/null +++ b/src/imports/controls/imagine/images/switchdelegate-indicator-disabled@4x.png diff --git a/src/imports/controls/imagine/images/switchdelegate-indicator-focused.png b/src/imports/controls/imagine/images/switchdelegate-indicator-focused.png Binary files differnew file mode 100644 index 00000000..570f6872 --- /dev/null +++ b/src/imports/controls/imagine/images/switchdelegate-indicator-focused.png diff --git a/src/imports/controls/imagine/images/switchdelegate-indicator-focused@2x.png b/src/imports/controls/imagine/images/switchdelegate-indicator-focused@2x.png Binary files differnew file mode 100644 index 00000000..389c7f51 --- /dev/null +++ b/src/imports/controls/imagine/images/switchdelegate-indicator-focused@2x.png diff --git a/src/imports/controls/imagine/images/switchdelegate-indicator-focused@3x.png b/src/imports/controls/imagine/images/switchdelegate-indicator-focused@3x.png Binary files differnew file mode 100644 index 00000000..c2e2a155 --- /dev/null +++ b/src/imports/controls/imagine/images/switchdelegate-indicator-focused@3x.png diff --git a/src/imports/controls/imagine/images/switchdelegate-indicator-focused@4x.png b/src/imports/controls/imagine/images/switchdelegate-indicator-focused@4x.png Binary files differnew file mode 100644 index 00000000..3637139f --- /dev/null +++ b/src/imports/controls/imagine/images/switchdelegate-indicator-focused@4x.png diff --git a/src/imports/controls/imagine/images/switchdelegate-indicator-hovered.png b/src/imports/controls/imagine/images/switchdelegate-indicator-hovered.png Binary files differnew file mode 100644 index 00000000..570f6872 --- /dev/null +++ b/src/imports/controls/imagine/images/switchdelegate-indicator-hovered.png diff --git a/src/imports/controls/imagine/images/switchdelegate-indicator-hovered@2x.png b/src/imports/controls/imagine/images/switchdelegate-indicator-hovered@2x.png Binary files differnew file mode 100644 index 00000000..389c7f51 --- /dev/null +++ b/src/imports/controls/imagine/images/switchdelegate-indicator-hovered@2x.png diff --git a/src/imports/controls/imagine/images/switchdelegate-indicator-hovered@3x.png b/src/imports/controls/imagine/images/switchdelegate-indicator-hovered@3x.png Binary files differnew file mode 100644 index 00000000..c2e2a155 --- /dev/null +++ b/src/imports/controls/imagine/images/switchdelegate-indicator-hovered@3x.png diff --git a/src/imports/controls/imagine/images/switchdelegate-indicator-hovered@4x.png b/src/imports/controls/imagine/images/switchdelegate-indicator-hovered@4x.png Binary files differnew file mode 100644 index 00000000..3637139f --- /dev/null +++ b/src/imports/controls/imagine/images/switchdelegate-indicator-hovered@4x.png diff --git a/src/imports/controls/imagine/images/switchdelegate-indicator-pressed.png b/src/imports/controls/imagine/images/switchdelegate-indicator-pressed.png Binary files differnew file mode 100644 index 00000000..6129c382 --- /dev/null +++ b/src/imports/controls/imagine/images/switchdelegate-indicator-pressed.png diff --git a/src/imports/controls/imagine/images/switchdelegate-indicator-pressed@2x.png b/src/imports/controls/imagine/images/switchdelegate-indicator-pressed@2x.png Binary files differnew file mode 100644 index 00000000..144eb013 --- /dev/null +++ b/src/imports/controls/imagine/images/switchdelegate-indicator-pressed@2x.png diff --git a/src/imports/controls/imagine/images/switchdelegate-indicator-pressed@3x.png b/src/imports/controls/imagine/images/switchdelegate-indicator-pressed@3x.png Binary files differnew file mode 100644 index 00000000..f59d9051 --- /dev/null +++ b/src/imports/controls/imagine/images/switchdelegate-indicator-pressed@3x.png diff --git a/src/imports/controls/imagine/images/switchdelegate-indicator-pressed@4x.png b/src/imports/controls/imagine/images/switchdelegate-indicator-pressed@4x.png Binary files differnew file mode 100644 index 00000000..48d24f7c --- /dev/null +++ b/src/imports/controls/imagine/images/switchdelegate-indicator-pressed@4x.png diff --git a/src/imports/controls/imagine/images/switchdelegate-indicator.png b/src/imports/controls/imagine/images/switchdelegate-indicator.png Binary files differnew file mode 100644 index 00000000..e0ec85e2 --- /dev/null +++ b/src/imports/controls/imagine/images/switchdelegate-indicator.png diff --git a/src/imports/controls/imagine/images/switchdelegate-indicator@2x.png b/src/imports/controls/imagine/images/switchdelegate-indicator@2x.png Binary files differnew file mode 100644 index 00000000..d0026507 --- /dev/null +++ b/src/imports/controls/imagine/images/switchdelegate-indicator@2x.png diff --git a/src/imports/controls/imagine/images/switchdelegate-indicator@3x.png b/src/imports/controls/imagine/images/switchdelegate-indicator@3x.png Binary files differnew file mode 100644 index 00000000..1a59e3b0 --- /dev/null +++ b/src/imports/controls/imagine/images/switchdelegate-indicator@3x.png diff --git a/src/imports/controls/imagine/images/switchdelegate-indicator@4x.png b/src/imports/controls/imagine/images/switchdelegate-indicator@4x.png Binary files differnew file mode 100644 index 00000000..1db31ec3 --- /dev/null +++ b/src/imports/controls/imagine/images/switchdelegate-indicator@4x.png diff --git a/src/imports/controls/imagine/images/tabbar-background.png b/src/imports/controls/imagine/images/tabbar-background.png Binary files differnew file mode 100644 index 00000000..1d806c2d --- /dev/null +++ b/src/imports/controls/imagine/images/tabbar-background.png diff --git a/src/imports/controls/imagine/images/tabbar-background@2x.png b/src/imports/controls/imagine/images/tabbar-background@2x.png Binary files differnew file mode 100644 index 00000000..943f11ba --- /dev/null +++ b/src/imports/controls/imagine/images/tabbar-background@2x.png diff --git a/src/imports/controls/imagine/images/tabbar-background@3x.png b/src/imports/controls/imagine/images/tabbar-background@3x.png Binary files differnew file mode 100644 index 00000000..4f0568a7 --- /dev/null +++ b/src/imports/controls/imagine/images/tabbar-background@3x.png diff --git a/src/imports/controls/imagine/images/tabbar-background@4x.png b/src/imports/controls/imagine/images/tabbar-background@4x.png Binary files differnew file mode 100644 index 00000000..33a7918c --- /dev/null +++ b/src/imports/controls/imagine/images/tabbar-background@4x.png diff --git a/src/imports/controls/imagine/images/tabbutton-background-checked.9.png b/src/imports/controls/imagine/images/tabbutton-background-checked.9.png Binary files differnew file mode 100644 index 00000000..7f2f6aa6 --- /dev/null +++ b/src/imports/controls/imagine/images/tabbutton-background-checked.9.png diff --git a/src/imports/controls/imagine/images/tabbutton-background-checked@2x.9.png b/src/imports/controls/imagine/images/tabbutton-background-checked@2x.9.png Binary files differnew file mode 100644 index 00000000..86dab9ac --- /dev/null +++ b/src/imports/controls/imagine/images/tabbutton-background-checked@2x.9.png diff --git a/src/imports/controls/imagine/images/tabbutton-background-checked@3x.9.png b/src/imports/controls/imagine/images/tabbutton-background-checked@3x.9.png Binary files differnew file mode 100644 index 00000000..f426f6a3 --- /dev/null +++ b/src/imports/controls/imagine/images/tabbutton-background-checked@3x.9.png diff --git a/src/imports/controls/imagine/images/tabbutton-background-checked@4x.9.png b/src/imports/controls/imagine/images/tabbutton-background-checked@4x.9.png Binary files differnew file mode 100644 index 00000000..fa4859e5 --- /dev/null +++ b/src/imports/controls/imagine/images/tabbutton-background-checked@4x.9.png diff --git a/src/imports/controls/imagine/images/tabbutton-background-disabled-checked.9.png b/src/imports/controls/imagine/images/tabbutton-background-disabled-checked.9.png Binary files differnew file mode 100644 index 00000000..0397108c --- /dev/null +++ b/src/imports/controls/imagine/images/tabbutton-background-disabled-checked.9.png diff --git a/src/imports/controls/imagine/images/tabbutton-background-disabled-checked@2x.9.png b/src/imports/controls/imagine/images/tabbutton-background-disabled-checked@2x.9.png Binary files differnew file mode 100644 index 00000000..e80b3c78 --- /dev/null +++ b/src/imports/controls/imagine/images/tabbutton-background-disabled-checked@2x.9.png diff --git a/src/imports/controls/imagine/images/tabbutton-background-disabled-checked@3x.9.png b/src/imports/controls/imagine/images/tabbutton-background-disabled-checked@3x.9.png Binary files differnew file mode 100644 index 00000000..97653e39 --- /dev/null +++ b/src/imports/controls/imagine/images/tabbutton-background-disabled-checked@3x.9.png diff --git a/src/imports/controls/imagine/images/tabbutton-background-disabled-checked@4x.9.png b/src/imports/controls/imagine/images/tabbutton-background-disabled-checked@4x.9.png Binary files differnew file mode 100644 index 00000000..f32db8c9 --- /dev/null +++ b/src/imports/controls/imagine/images/tabbutton-background-disabled-checked@4x.9.png diff --git a/src/imports/controls/imagine/images/tabbutton-background-disabled.9.png b/src/imports/controls/imagine/images/tabbutton-background-disabled.9.png Binary files differnew file mode 100644 index 00000000..0397108c --- /dev/null +++ b/src/imports/controls/imagine/images/tabbutton-background-disabled.9.png diff --git a/src/imports/controls/imagine/images/tabbutton-background-disabled@2x.9.png b/src/imports/controls/imagine/images/tabbutton-background-disabled@2x.9.png Binary files differnew file mode 100644 index 00000000..e80b3c78 --- /dev/null +++ b/src/imports/controls/imagine/images/tabbutton-background-disabled@2x.9.png diff --git a/src/imports/controls/imagine/images/tabbutton-background-disabled@3x.9.png b/src/imports/controls/imagine/images/tabbutton-background-disabled@3x.9.png Binary files differnew file mode 100644 index 00000000..97653e39 --- /dev/null +++ b/src/imports/controls/imagine/images/tabbutton-background-disabled@3x.9.png diff --git a/src/imports/controls/imagine/images/tabbutton-background-disabled@4x.9.png b/src/imports/controls/imagine/images/tabbutton-background-disabled@4x.9.png Binary files differnew file mode 100644 index 00000000..f32db8c9 --- /dev/null +++ b/src/imports/controls/imagine/images/tabbutton-background-disabled@4x.9.png diff --git a/src/imports/controls/imagine/images/tabbutton-background-hovered.9.png b/src/imports/controls/imagine/images/tabbutton-background-hovered.9.png Binary files differnew file mode 100644 index 00000000..0838287b --- /dev/null +++ b/src/imports/controls/imagine/images/tabbutton-background-hovered.9.png diff --git a/src/imports/controls/imagine/images/tabbutton-background-hovered@2x.9.png b/src/imports/controls/imagine/images/tabbutton-background-hovered@2x.9.png Binary files differnew file mode 100644 index 00000000..71fde8ce --- /dev/null +++ b/src/imports/controls/imagine/images/tabbutton-background-hovered@2x.9.png diff --git a/src/imports/controls/imagine/images/tabbutton-background-hovered@3x.9.png b/src/imports/controls/imagine/images/tabbutton-background-hovered@3x.9.png Binary files differnew file mode 100644 index 00000000..a289bbd2 --- /dev/null +++ b/src/imports/controls/imagine/images/tabbutton-background-hovered@3x.9.png diff --git a/src/imports/controls/imagine/images/tabbutton-background-hovered@4x.9.png b/src/imports/controls/imagine/images/tabbutton-background-hovered@4x.9.png Binary files differnew file mode 100644 index 00000000..20e16933 --- /dev/null +++ b/src/imports/controls/imagine/images/tabbutton-background-hovered@4x.9.png diff --git a/src/imports/controls/imagine/images/tabbutton-background-pressed.9.png b/src/imports/controls/imagine/images/tabbutton-background-pressed.9.png Binary files differnew file mode 100644 index 00000000..92e078bb --- /dev/null +++ b/src/imports/controls/imagine/images/tabbutton-background-pressed.9.png diff --git a/src/imports/controls/imagine/images/tabbutton-background-pressed@2x.9.png b/src/imports/controls/imagine/images/tabbutton-background-pressed@2x.9.png Binary files differnew file mode 100644 index 00000000..20f7e55e --- /dev/null +++ b/src/imports/controls/imagine/images/tabbutton-background-pressed@2x.9.png diff --git a/src/imports/controls/imagine/images/tabbutton-background-pressed@3x.9.png b/src/imports/controls/imagine/images/tabbutton-background-pressed@3x.9.png Binary files differnew file mode 100644 index 00000000..74e8ce65 --- /dev/null +++ b/src/imports/controls/imagine/images/tabbutton-background-pressed@3x.9.png diff --git a/src/imports/controls/imagine/images/tabbutton-background-pressed@4x.9.png b/src/imports/controls/imagine/images/tabbutton-background-pressed@4x.9.png Binary files differnew file mode 100644 index 00000000..20e52e48 --- /dev/null +++ b/src/imports/controls/imagine/images/tabbutton-background-pressed@4x.9.png diff --git a/src/imports/controls/imagine/images/tabbutton-background.9.png b/src/imports/controls/imagine/images/tabbutton-background.9.png Binary files differnew file mode 100644 index 00000000..60bddd70 --- /dev/null +++ b/src/imports/controls/imagine/images/tabbutton-background.9.png diff --git a/src/imports/controls/imagine/images/tabbutton-background@2x.9.png b/src/imports/controls/imagine/images/tabbutton-background@2x.9.png Binary files differnew file mode 100644 index 00000000..5e92aa79 --- /dev/null +++ b/src/imports/controls/imagine/images/tabbutton-background@2x.9.png diff --git a/src/imports/controls/imagine/images/tabbutton-background@3x.9.png b/src/imports/controls/imagine/images/tabbutton-background@3x.9.png Binary files differnew file mode 100644 index 00000000..b60a9a57 --- /dev/null +++ b/src/imports/controls/imagine/images/tabbutton-background@3x.9.png diff --git a/src/imports/controls/imagine/images/tabbutton-background@4x.9.png b/src/imports/controls/imagine/images/tabbutton-background@4x.9.png Binary files differnew file mode 100644 index 00000000..5fa46bbd --- /dev/null +++ b/src/imports/controls/imagine/images/tabbutton-background@4x.9.png diff --git a/src/imports/controls/imagine/images/textarea-background-disabled.9.png b/src/imports/controls/imagine/images/textarea-background-disabled.9.png Binary files differnew file mode 100644 index 00000000..23291866 --- /dev/null +++ b/src/imports/controls/imagine/images/textarea-background-disabled.9.png diff --git a/src/imports/controls/imagine/images/textarea-background-disabled@2x.9.png b/src/imports/controls/imagine/images/textarea-background-disabled@2x.9.png Binary files differnew file mode 100644 index 00000000..62b0697a --- /dev/null +++ b/src/imports/controls/imagine/images/textarea-background-disabled@2x.9.png diff --git a/src/imports/controls/imagine/images/textarea-background-disabled@3x.9.png b/src/imports/controls/imagine/images/textarea-background-disabled@3x.9.png Binary files differnew file mode 100644 index 00000000..188f0adf --- /dev/null +++ b/src/imports/controls/imagine/images/textarea-background-disabled@3x.9.png diff --git a/src/imports/controls/imagine/images/textarea-background-disabled@4x.9.png b/src/imports/controls/imagine/images/textarea-background-disabled@4x.9.png Binary files differnew file mode 100644 index 00000000..3040bc55 --- /dev/null +++ b/src/imports/controls/imagine/images/textarea-background-disabled@4x.9.png diff --git a/src/imports/controls/imagine/images/textarea-background-focused.9.png b/src/imports/controls/imagine/images/textarea-background-focused.9.png Binary files differnew file mode 100644 index 00000000..5098d8b3 --- /dev/null +++ b/src/imports/controls/imagine/images/textarea-background-focused.9.png diff --git a/src/imports/controls/imagine/images/textarea-background-focused@2x.9.png b/src/imports/controls/imagine/images/textarea-background-focused@2x.9.png Binary files differnew file mode 100644 index 00000000..41e3d319 --- /dev/null +++ b/src/imports/controls/imagine/images/textarea-background-focused@2x.9.png diff --git a/src/imports/controls/imagine/images/textarea-background-focused@3x.9.png b/src/imports/controls/imagine/images/textarea-background-focused@3x.9.png Binary files differnew file mode 100644 index 00000000..86052b8d --- /dev/null +++ b/src/imports/controls/imagine/images/textarea-background-focused@3x.9.png diff --git a/src/imports/controls/imagine/images/textarea-background-focused@4x.9.png b/src/imports/controls/imagine/images/textarea-background-focused@4x.9.png Binary files differnew file mode 100644 index 00000000..8891d4b0 --- /dev/null +++ b/src/imports/controls/imagine/images/textarea-background-focused@4x.9.png diff --git a/src/imports/controls/imagine/images/textarea-background.9.png b/src/imports/controls/imagine/images/textarea-background.9.png Binary files differnew file mode 100644 index 00000000..c7c34666 --- /dev/null +++ b/src/imports/controls/imagine/images/textarea-background.9.png diff --git a/src/imports/controls/imagine/images/textarea-background@2x.9.png b/src/imports/controls/imagine/images/textarea-background@2x.9.png Binary files differnew file mode 100644 index 00000000..7196c109 --- /dev/null +++ b/src/imports/controls/imagine/images/textarea-background@2x.9.png diff --git a/src/imports/controls/imagine/images/textarea-background@3x.9.png b/src/imports/controls/imagine/images/textarea-background@3x.9.png Binary files differnew file mode 100644 index 00000000..8e23e0aa --- /dev/null +++ b/src/imports/controls/imagine/images/textarea-background@3x.9.png diff --git a/src/imports/controls/imagine/images/textarea-background@4x.9.png b/src/imports/controls/imagine/images/textarea-background@4x.9.png Binary files differnew file mode 100644 index 00000000..b0bbb7ce --- /dev/null +++ b/src/imports/controls/imagine/images/textarea-background@4x.9.png diff --git a/src/imports/controls/imagine/images/textfield-background-disabled.9.png b/src/imports/controls/imagine/images/textfield-background-disabled.9.png Binary files differnew file mode 100644 index 00000000..b734333e --- /dev/null +++ b/src/imports/controls/imagine/images/textfield-background-disabled.9.png diff --git a/src/imports/controls/imagine/images/textfield-background-disabled@2x.9.png b/src/imports/controls/imagine/images/textfield-background-disabled@2x.9.png Binary files differnew file mode 100644 index 00000000..a24df3b9 --- /dev/null +++ b/src/imports/controls/imagine/images/textfield-background-disabled@2x.9.png diff --git a/src/imports/controls/imagine/images/textfield-background-disabled@3x.9.png b/src/imports/controls/imagine/images/textfield-background-disabled@3x.9.png Binary files differnew file mode 100644 index 00000000..094b8ab9 --- /dev/null +++ b/src/imports/controls/imagine/images/textfield-background-disabled@3x.9.png diff --git a/src/imports/controls/imagine/images/textfield-background-disabled@4x.9.png b/src/imports/controls/imagine/images/textfield-background-disabled@4x.9.png Binary files differnew file mode 100644 index 00000000..3610c116 --- /dev/null +++ b/src/imports/controls/imagine/images/textfield-background-disabled@4x.9.png diff --git a/src/imports/controls/imagine/images/textfield-background-focused.9.png b/src/imports/controls/imagine/images/textfield-background-focused.9.png Binary files differnew file mode 100644 index 00000000..b89c7a84 --- /dev/null +++ b/src/imports/controls/imagine/images/textfield-background-focused.9.png diff --git a/src/imports/controls/imagine/images/textfield-background-focused@2x.9.png b/src/imports/controls/imagine/images/textfield-background-focused@2x.9.png Binary files differnew file mode 100644 index 00000000..411ef62c --- /dev/null +++ b/src/imports/controls/imagine/images/textfield-background-focused@2x.9.png diff --git a/src/imports/controls/imagine/images/textfield-background-focused@3x.9.png b/src/imports/controls/imagine/images/textfield-background-focused@3x.9.png Binary files differnew file mode 100644 index 00000000..52dc65c2 --- /dev/null +++ b/src/imports/controls/imagine/images/textfield-background-focused@3x.9.png diff --git a/src/imports/controls/imagine/images/textfield-background-focused@4x.9.png b/src/imports/controls/imagine/images/textfield-background-focused@4x.9.png Binary files differnew file mode 100644 index 00000000..be9f5420 --- /dev/null +++ b/src/imports/controls/imagine/images/textfield-background-focused@4x.9.png diff --git a/src/imports/controls/imagine/images/textfield-background.9.png b/src/imports/controls/imagine/images/textfield-background.9.png Binary files differnew file mode 100644 index 00000000..c307aa00 --- /dev/null +++ b/src/imports/controls/imagine/images/textfield-background.9.png diff --git a/src/imports/controls/imagine/images/textfield-background@2x.9.png b/src/imports/controls/imagine/images/textfield-background@2x.9.png Binary files differnew file mode 100644 index 00000000..f7df296f --- /dev/null +++ b/src/imports/controls/imagine/images/textfield-background@2x.9.png diff --git a/src/imports/controls/imagine/images/textfield-background@3x.9.png b/src/imports/controls/imagine/images/textfield-background@3x.9.png Binary files differnew file mode 100644 index 00000000..81d73086 --- /dev/null +++ b/src/imports/controls/imagine/images/textfield-background@3x.9.png diff --git a/src/imports/controls/imagine/images/textfield-background@4x.9.png b/src/imports/controls/imagine/images/textfield-background@4x.9.png Binary files differnew file mode 100644 index 00000000..d8a96fdd --- /dev/null +++ b/src/imports/controls/imagine/images/textfield-background@4x.9.png diff --git a/src/imports/controls/imagine/images/toolbar-background.png b/src/imports/controls/imagine/images/toolbar-background.png Binary files differnew file mode 100644 index 00000000..dcd0cb75 --- /dev/null +++ b/src/imports/controls/imagine/images/toolbar-background.png diff --git a/src/imports/controls/imagine/images/toolbar-background@2x.png b/src/imports/controls/imagine/images/toolbar-background@2x.png Binary files differnew file mode 100644 index 00000000..5a8518c7 --- /dev/null +++ b/src/imports/controls/imagine/images/toolbar-background@2x.png diff --git a/src/imports/controls/imagine/images/toolbar-background@3x.png b/src/imports/controls/imagine/images/toolbar-background@3x.png Binary files differnew file mode 100644 index 00000000..0285b12c --- /dev/null +++ b/src/imports/controls/imagine/images/toolbar-background@3x.png diff --git a/src/imports/controls/imagine/images/toolbar-background@4x.png b/src/imports/controls/imagine/images/toolbar-background@4x.png Binary files differnew file mode 100644 index 00000000..e8d784ce --- /dev/null +++ b/src/imports/controls/imagine/images/toolbar-background@4x.png diff --git a/src/imports/controls/imagine/images/toolbutton-background-checked-focused.9.png b/src/imports/controls/imagine/images/toolbutton-background-checked-focused.9.png Binary files differnew file mode 100644 index 00000000..8ce5b791 --- /dev/null +++ b/src/imports/controls/imagine/images/toolbutton-background-checked-focused.9.png diff --git a/src/imports/controls/imagine/images/toolbutton-background-checked-focused@2x.9.png b/src/imports/controls/imagine/images/toolbutton-background-checked-focused@2x.9.png Binary files differnew file mode 100644 index 00000000..d99d1577 --- /dev/null +++ b/src/imports/controls/imagine/images/toolbutton-background-checked-focused@2x.9.png diff --git a/src/imports/controls/imagine/images/toolbutton-background-checked-focused@3x.9.png b/src/imports/controls/imagine/images/toolbutton-background-checked-focused@3x.9.png Binary files differnew file mode 100644 index 00000000..c47247fe --- /dev/null +++ b/src/imports/controls/imagine/images/toolbutton-background-checked-focused@3x.9.png diff --git a/src/imports/controls/imagine/images/toolbutton-background-checked-focused@4x.9.png b/src/imports/controls/imagine/images/toolbutton-background-checked-focused@4x.9.png Binary files differnew file mode 100644 index 00000000..e1e519da --- /dev/null +++ b/src/imports/controls/imagine/images/toolbutton-background-checked-focused@4x.9.png diff --git a/src/imports/controls/imagine/images/toolbutton-background-checked-hovered.9.png b/src/imports/controls/imagine/images/toolbutton-background-checked-hovered.9.png Binary files differnew file mode 100644 index 00000000..8ce5b791 --- /dev/null +++ b/src/imports/controls/imagine/images/toolbutton-background-checked-hovered.9.png diff --git a/src/imports/controls/imagine/images/toolbutton-background-checked-hovered@2x.9.png b/src/imports/controls/imagine/images/toolbutton-background-checked-hovered@2x.9.png Binary files differnew file mode 100644 index 00000000..d99d1577 --- /dev/null +++ b/src/imports/controls/imagine/images/toolbutton-background-checked-hovered@2x.9.png diff --git a/src/imports/controls/imagine/images/toolbutton-background-checked-hovered@3x.9.png b/src/imports/controls/imagine/images/toolbutton-background-checked-hovered@3x.9.png Binary files differnew file mode 100644 index 00000000..c47247fe --- /dev/null +++ b/src/imports/controls/imagine/images/toolbutton-background-checked-hovered@3x.9.png diff --git a/src/imports/controls/imagine/images/toolbutton-background-checked-hovered@4x.9.png b/src/imports/controls/imagine/images/toolbutton-background-checked-hovered@4x.9.png Binary files differnew file mode 100644 index 00000000..e1e519da --- /dev/null +++ b/src/imports/controls/imagine/images/toolbutton-background-checked-hovered@4x.9.png diff --git a/src/imports/controls/imagine/images/toolbutton-background-checked.9.png b/src/imports/controls/imagine/images/toolbutton-background-checked.9.png Binary files differnew file mode 100644 index 00000000..8ce5b791 --- /dev/null +++ b/src/imports/controls/imagine/images/toolbutton-background-checked.9.png diff --git a/src/imports/controls/imagine/images/toolbutton-background-checked@2x.9.png b/src/imports/controls/imagine/images/toolbutton-background-checked@2x.9.png Binary files differnew file mode 100644 index 00000000..d99d1577 --- /dev/null +++ b/src/imports/controls/imagine/images/toolbutton-background-checked@2x.9.png diff --git a/src/imports/controls/imagine/images/toolbutton-background-checked@3x.9.png b/src/imports/controls/imagine/images/toolbutton-background-checked@3x.9.png Binary files differnew file mode 100644 index 00000000..c47247fe --- /dev/null +++ b/src/imports/controls/imagine/images/toolbutton-background-checked@3x.9.png diff --git a/src/imports/controls/imagine/images/toolbutton-background-checked@4x.9.png b/src/imports/controls/imagine/images/toolbutton-background-checked@4x.9.png Binary files differnew file mode 100644 index 00000000..e1e519da --- /dev/null +++ b/src/imports/controls/imagine/images/toolbutton-background-checked@4x.9.png diff --git a/src/imports/controls/imagine/images/toolbutton-background-disabled-checked.9.png b/src/imports/controls/imagine/images/toolbutton-background-disabled-checked.9.png Binary files differnew file mode 100644 index 00000000..8ce5b791 --- /dev/null +++ b/src/imports/controls/imagine/images/toolbutton-background-disabled-checked.9.png diff --git a/src/imports/controls/imagine/images/toolbutton-background-disabled-checked@2x.9.png b/src/imports/controls/imagine/images/toolbutton-background-disabled-checked@2x.9.png Binary files differnew file mode 100644 index 00000000..d99d1577 --- /dev/null +++ b/src/imports/controls/imagine/images/toolbutton-background-disabled-checked@2x.9.png diff --git a/src/imports/controls/imagine/images/toolbutton-background-disabled-checked@3x.9.png b/src/imports/controls/imagine/images/toolbutton-background-disabled-checked@3x.9.png Binary files differnew file mode 100644 index 00000000..c47247fe --- /dev/null +++ b/src/imports/controls/imagine/images/toolbutton-background-disabled-checked@3x.9.png diff --git a/src/imports/controls/imagine/images/toolbutton-background-disabled-checked@4x.9.png b/src/imports/controls/imagine/images/toolbutton-background-disabled-checked@4x.9.png Binary files differnew file mode 100644 index 00000000..e1e519da --- /dev/null +++ b/src/imports/controls/imagine/images/toolbutton-background-disabled-checked@4x.9.png diff --git a/src/imports/controls/imagine/images/toolbutton-background-focused.9.png b/src/imports/controls/imagine/images/toolbutton-background-focused.9.png Binary files differnew file mode 100644 index 00000000..8ce5b791 --- /dev/null +++ b/src/imports/controls/imagine/images/toolbutton-background-focused.9.png diff --git a/src/imports/controls/imagine/images/toolbutton-background-focused@2x.9.png b/src/imports/controls/imagine/images/toolbutton-background-focused@2x.9.png Binary files differnew file mode 100644 index 00000000..d99d1577 --- /dev/null +++ b/src/imports/controls/imagine/images/toolbutton-background-focused@2x.9.png diff --git a/src/imports/controls/imagine/images/toolbutton-background-focused@3x.9.png b/src/imports/controls/imagine/images/toolbutton-background-focused@3x.9.png Binary files differnew file mode 100644 index 00000000..c47247fe --- /dev/null +++ b/src/imports/controls/imagine/images/toolbutton-background-focused@3x.9.png diff --git a/src/imports/controls/imagine/images/toolbutton-background-focused@4x.9.png b/src/imports/controls/imagine/images/toolbutton-background-focused@4x.9.png Binary files differnew file mode 100644 index 00000000..e1e519da --- /dev/null +++ b/src/imports/controls/imagine/images/toolbutton-background-focused@4x.9.png diff --git a/src/imports/controls/imagine/images/toolbutton-background-hovered.9.png b/src/imports/controls/imagine/images/toolbutton-background-hovered.9.png Binary files differnew file mode 100644 index 00000000..8ce5b791 --- /dev/null +++ b/src/imports/controls/imagine/images/toolbutton-background-hovered.9.png diff --git a/src/imports/controls/imagine/images/toolbutton-background-hovered@2x.9.png b/src/imports/controls/imagine/images/toolbutton-background-hovered@2x.9.png Binary files differnew file mode 100644 index 00000000..d99d1577 --- /dev/null +++ b/src/imports/controls/imagine/images/toolbutton-background-hovered@2x.9.png diff --git a/src/imports/controls/imagine/images/toolbutton-background-hovered@3x.9.png b/src/imports/controls/imagine/images/toolbutton-background-hovered@3x.9.png Binary files differnew file mode 100644 index 00000000..c47247fe --- /dev/null +++ b/src/imports/controls/imagine/images/toolbutton-background-hovered@3x.9.png diff --git a/src/imports/controls/imagine/images/toolbutton-background-hovered@4x.9.png b/src/imports/controls/imagine/images/toolbutton-background-hovered@4x.9.png Binary files differnew file mode 100644 index 00000000..e1e519da --- /dev/null +++ b/src/imports/controls/imagine/images/toolbutton-background-hovered@4x.9.png diff --git a/src/imports/controls/imagine/images/toolbutton-background-pressed.9.png b/src/imports/controls/imagine/images/toolbutton-background-pressed.9.png Binary files differnew file mode 100644 index 00000000..8ce5b791 --- /dev/null +++ b/src/imports/controls/imagine/images/toolbutton-background-pressed.9.png diff --git a/src/imports/controls/imagine/images/toolbutton-background-pressed@2x.9.png b/src/imports/controls/imagine/images/toolbutton-background-pressed@2x.9.png Binary files differnew file mode 100644 index 00000000..d99d1577 --- /dev/null +++ b/src/imports/controls/imagine/images/toolbutton-background-pressed@2x.9.png diff --git a/src/imports/controls/imagine/images/toolbutton-background-pressed@3x.9.png b/src/imports/controls/imagine/images/toolbutton-background-pressed@3x.9.png Binary files differnew file mode 100644 index 00000000..c47247fe --- /dev/null +++ b/src/imports/controls/imagine/images/toolbutton-background-pressed@3x.9.png diff --git a/src/imports/controls/imagine/images/toolbutton-background-pressed@4x.9.png b/src/imports/controls/imagine/images/toolbutton-background-pressed@4x.9.png Binary files differnew file mode 100644 index 00000000..e1e519da --- /dev/null +++ b/src/imports/controls/imagine/images/toolbutton-background-pressed@4x.9.png diff --git a/src/imports/controls/imagine/images/toolbutton-background.9.png b/src/imports/controls/imagine/images/toolbutton-background.9.png Binary files differnew file mode 100644 index 00000000..2359b090 --- /dev/null +++ b/src/imports/controls/imagine/images/toolbutton-background.9.png diff --git a/src/imports/controls/imagine/images/toolbutton-background@2x.9.png b/src/imports/controls/imagine/images/toolbutton-background@2x.9.png Binary files differnew file mode 100644 index 00000000..6c36bf22 --- /dev/null +++ b/src/imports/controls/imagine/images/toolbutton-background@2x.9.png diff --git a/src/imports/controls/imagine/images/toolbutton-background@3x.9.png b/src/imports/controls/imagine/images/toolbutton-background@3x.9.png Binary files differnew file mode 100644 index 00000000..f3cb6144 --- /dev/null +++ b/src/imports/controls/imagine/images/toolbutton-background@3x.9.png diff --git a/src/imports/controls/imagine/images/toolbutton-background@4x.9.png b/src/imports/controls/imagine/images/toolbutton-background@4x.9.png Binary files differnew file mode 100644 index 00000000..1bf51a87 --- /dev/null +++ b/src/imports/controls/imagine/images/toolbutton-background@4x.9.png diff --git a/src/imports/controls/imagine/images/toolseparator-separator-horizontal.9.png b/src/imports/controls/imagine/images/toolseparator-separator-horizontal.9.png Binary files differnew file mode 100644 index 00000000..45a22b6d --- /dev/null +++ b/src/imports/controls/imagine/images/toolseparator-separator-horizontal.9.png diff --git a/src/imports/controls/imagine/images/toolseparator-separator-horizontal@2x.9.png b/src/imports/controls/imagine/images/toolseparator-separator-horizontal@2x.9.png Binary files differnew file mode 100644 index 00000000..a2dc5227 --- /dev/null +++ b/src/imports/controls/imagine/images/toolseparator-separator-horizontal@2x.9.png diff --git a/src/imports/controls/imagine/images/toolseparator-separator-horizontal@3x.9.png b/src/imports/controls/imagine/images/toolseparator-separator-horizontal@3x.9.png Binary files differnew file mode 100644 index 00000000..471da912 --- /dev/null +++ b/src/imports/controls/imagine/images/toolseparator-separator-horizontal@3x.9.png diff --git a/src/imports/controls/imagine/images/toolseparator-separator-horizontal@4x.9.png b/src/imports/controls/imagine/images/toolseparator-separator-horizontal@4x.9.png Binary files differnew file mode 100644 index 00000000..23a8b1d3 --- /dev/null +++ b/src/imports/controls/imagine/images/toolseparator-separator-horizontal@4x.9.png diff --git a/src/imports/controls/imagine/images/toolseparator-separator-vertical.9.png b/src/imports/controls/imagine/images/toolseparator-separator-vertical.9.png Binary files differnew file mode 100644 index 00000000..31f24342 --- /dev/null +++ b/src/imports/controls/imagine/images/toolseparator-separator-vertical.9.png diff --git a/src/imports/controls/imagine/images/toolseparator-separator-vertical@2x.9.png b/src/imports/controls/imagine/images/toolseparator-separator-vertical@2x.9.png Binary files differnew file mode 100644 index 00000000..c1722962 --- /dev/null +++ b/src/imports/controls/imagine/images/toolseparator-separator-vertical@2x.9.png diff --git a/src/imports/controls/imagine/images/toolseparator-separator-vertical@3x.9.png b/src/imports/controls/imagine/images/toolseparator-separator-vertical@3x.9.png Binary files differnew file mode 100644 index 00000000..c7de6ead --- /dev/null +++ b/src/imports/controls/imagine/images/toolseparator-separator-vertical@3x.9.png diff --git a/src/imports/controls/imagine/images/toolseparator-separator-vertical@4x.9.png b/src/imports/controls/imagine/images/toolseparator-separator-vertical@4x.9.png Binary files differnew file mode 100644 index 00000000..e17b5dbd --- /dev/null +++ b/src/imports/controls/imagine/images/toolseparator-separator-vertical@4x.9.png diff --git a/src/imports/controls/imagine/images/tooltip-background.9.png b/src/imports/controls/imagine/images/tooltip-background.9.png Binary files differnew file mode 100644 index 00000000..b7f04322 --- /dev/null +++ b/src/imports/controls/imagine/images/tooltip-background.9.png diff --git a/src/imports/controls/imagine/images/tooltip-background@2x.9.png b/src/imports/controls/imagine/images/tooltip-background@2x.9.png Binary files differnew file mode 100644 index 00000000..9825f59b --- /dev/null +++ b/src/imports/controls/imagine/images/tooltip-background@2x.9.png diff --git a/src/imports/controls/imagine/images/tooltip-background@3x.9.png b/src/imports/controls/imagine/images/tooltip-background@3x.9.png Binary files differnew file mode 100644 index 00000000..59dad6cc --- /dev/null +++ b/src/imports/controls/imagine/images/tooltip-background@3x.9.png diff --git a/src/imports/controls/imagine/images/tooltip-background@4x.9.png b/src/imports/controls/imagine/images/tooltip-background@4x.9.png Binary files differnew file mode 100644 index 00000000..e14599cf --- /dev/null +++ b/src/imports/controls/imagine/images/tooltip-background@4x.9.png diff --git a/src/imports/controls/imagine/imagine.pri b/src/imports/controls/imagine/imagine.pri new file mode 100644 index 00000000..cb6857a5 --- /dev/null +++ b/src/imports/controls/imagine/imagine.pri @@ -0,0 +1,58 @@ +QML_FILES += \ + $$PWD/ApplicationWindow.qml \ + $$PWD/BusyIndicator.qml \ + $$PWD/Button.qml \ + $$PWD/CheckBox.qml \ + $$PWD/CheckDelegate.qml \ + $$PWD/ComboBox.qml \ + $$PWD/DelayButton.qml \ + $$PWD/Dial.qml \ + $$PWD/Dialog.qml \ + $$PWD/DialogButtonBox.qml \ + $$PWD/Drawer.qml \ + $$PWD/Frame.qml \ + $$PWD/GroupBox.qml \ + $$PWD/ItemDelegate.qml \ + $$PWD/Label.qml \ + $$PWD/Menu.qml \ + $$PWD/MenuItem.qml \ + $$PWD/MenuSeparator.qml \ + $$PWD/PageIndicator.qml \ + $$PWD/Page.qml \ + $$PWD/Pane.qml \ + $$PWD/Popup.qml \ + $$PWD/ProgressBar.qml \ + $$PWD/RadioButton.qml \ + $$PWD/RadioDelegate.qml \ + $$PWD/RangeSlider.qml \ + $$PWD/RoundButton.qml \ + $$PWD/ScrollBar.qml \ + $$PWD/ScrollIndicator.qml \ + $$PWD/Slider.qml \ + $$PWD/SpinBox.qml \ + $$PWD/StackView.qml \ + $$PWD/SwipeDelegate.qml \ + $$PWD/SwipeView.qml \ + $$PWD/Switch.qml \ + $$PWD/SwitchDelegate.qml \ + $$PWD/TextField.qml \ + $$PWD/TextArea.qml \ + $$PWD/TabBar.qml \ + $$PWD/TabButton.qml \ + $$PWD/ToolBar.qml \ + $$PWD/ToolButton.qml \ + $$PWD/ToolSeparator.qml \ + $$PWD/ToolTip.qml \ + $$PWD/Tumbler.qml + +HEADERS += \ + $$PWD/qquickimageselector_p.h \ + $$PWD/qquickimaginestyle_p.h \ + $$PWD/qquickimaginetheme_p.h \ + $$PWD/qquickninepatchimage_p.h + +SOURCES += \ + $$PWD/qquickimageselector.cpp \ + $$PWD/qquickimaginestyle.cpp \ + $$PWD/qquickimaginetheme.cpp \ + $$PWD/qquickninepatchimage.cpp diff --git a/src/imports/controls/imagine/imagine.pro b/src/imports/controls/imagine/imagine.pro new file mode 100644 index 00000000..19e86028 --- /dev/null +++ b/src/imports/controls/imagine/imagine.pro @@ -0,0 +1,27 @@ +TARGET = qtquickcontrols2imaginestyleplugin +TARGETPATH = QtQuick/Controls.2/Imagine +IMPORT_VERSION = 2.3 + +QT += qml quick +QT_PRIVATE += core-private gui-private qml-private quick-private quicktemplates2-private quickcontrols2-private + +DEFINES += QT_NO_CAST_TO_ASCII QT_NO_CAST_FROM_ASCII + +OTHER_FILES += \ + qmldir + +SOURCES += \ + $$PWD/qtquickcontrols2imaginestyleplugin.cpp + +include(imagine.pri) + +qtquickcontrols2imaginestyle.prefix = qt-project.org/imports/QtQuick/Controls.2/Imagine +qtquickcontrols2imaginestyle.files += \ + $$files($$PWD/images/*.png) \ + $$files($$PWD/images/*.webp) +RESOURCES += qtquickcontrols2imaginestyle + +CONFIG += no_cxx_module +load(qml_plugin) + +requires(qtConfig(quickcontrols2-imagine)) diff --git a/src/imports/controls/imagine/plugins.qmltypes b/src/imports/controls/imagine/plugins.qmltypes new file mode 100644 index 00000000..b09ae141 --- /dev/null +++ b/src/imports/controls/imagine/plugins.qmltypes @@ -0,0 +1,21 @@ +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.Controls.Imagine 2.3' + +Module { + dependencies: [] + Component { name: "QQuickAttachedObject"; prototype: "QObject" } + Component { + name: "QQuickImagineStyle" + prototype: "QQuickAttachedObject" + exports: ["QtQuick.Controls.Imagine/Imagine 2.3"] + isCreatable: false + exportMetaObjectRevisions: [0] + Property { name: "path"; type: "string" } + Property { name: "url"; type: "QUrl"; isReadonly: true } + } +} diff --git a/src/imports/controls/imagine/qmldir b/src/imports/controls/imagine/qmldir new file mode 100644 index 00000000..05de7a77 --- /dev/null +++ b/src/imports/controls/imagine/qmldir @@ -0,0 +1,4 @@ +module QtQuick.Controls.Imagine +plugin qtquickcontrols2imaginestyleplugin +classname QtQuickControls2ImagineStylePlugin +depends QtQuick.Controls 2.3 diff --git a/src/imports/controls/imagine/qquickimageselector.cpp b/src/imports/controls/imagine/qquickimageselector.cpp new file mode 100644 index 00000000..1b3e80a9 --- /dev/null +++ b/src/imports/controls/imagine/qquickimageselector.cpp @@ -0,0 +1,340 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qquickimageselector_p.h" + +#include <QtCore/qdir.h> +#include <QtCore/qfileinfo.h> +#include <QtCore/qcache.h> +#include <QtCore/qloggingcategory.h> +#include <QtCore/qfileselector.h> +#include <QtQml/qqmlfile.h> +#include <QtQml/private/qqmlproperty_p.h> +#include <algorithm> + +QT_BEGIN_NAMESPACE + +static const int DEFAULT_CACHE = 500; + +static inline int cacheSize() +{ + static bool ok = false; + static const int size = qEnvironmentVariableIntValue("QT_QUICK_CONTROLS_IMAGINE_CACHE", &ok); + return ok ? size : DEFAULT_CACHE; +} + +Q_DECLARE_LOGGING_CATEGORY(lcQtQuickControlsImagine) + +// input: [focused, pressed] +// => [[focused, pressed], [pressed, focused], [focused], [pressed]] +static QList<QStringList> permutations(const QStringList &input, int count = -1) +{ + if (count == -1) + count = input.count(); + + QList<QStringList> output; + for (int i = 0; i < input.count(); ++i) { + QStringList sub = input.mid(i, count); + + if (count > 1) { + if (i + count > input.count()) + sub += input.mid(0, count - i + 1); + + std::sort(sub.begin(), sub.end()); + do { + if (!sub.isEmpty()) + output += sub; + } while (std::next_permutation(sub.begin(), sub.end())); + } else { + output += sub; + } + + if (count == input.count()) + break; + } + + if (count > 1) + output += permutations(input, --count); + + return output; +} + +static QString findFile(const QDir &dir, const QString &baseName, const QStringList &extensions) +{ + for (const QString &ext : extensions) { + QString filePath = dir.filePath(baseName + QLatin1Char('.') + ext); + if (QFile::exists(filePath)) + return QFileSelector().select(filePath); + } + // return an empty string to indicate that the lookup has been done + // even if no matching asset was found + return QLatin1String(""); +} + +QQuickImageSelector::QQuickImageSelector(QObject *parent) + : QObject(parent), + m_cache(cacheSize() > 0), + m_complete(false), + m_separator(QLatin1String("-")) +{ +} + +QUrl QQuickImageSelector::source() const +{ + return m_source; +} + +void QQuickImageSelector::setSource(const QUrl &source) +{ + if (m_property.isValid()) + QQmlPropertyPrivate::write(m_property, source, QQmlPropertyData::BypassInterceptor | QQmlPropertyData::DontRemoveBinding); + if (m_source == source) + return; + + m_source = source; + emit sourceChanged(); +} + +QString QQuickImageSelector::name() const +{ + return m_name; +} + +void QQuickImageSelector::setName(const QString &name) +{ + if (m_name == name) + return; + + m_name = name; + if (m_complete) + updateSource(); +} + +QString QQuickImageSelector::path() const +{ + return m_path; +} + +void QQuickImageSelector::setPath(const QString &path) +{ + if (m_path == path) + return; + + m_path = path; + if (m_complete) + updateSource(); +} + +QVariantList QQuickImageSelector::states() const +{ + return m_allStates; +} + +void QQuickImageSelector::setStates(const QVariantList &states) +{ + if (m_allStates == states) + return; + + m_allStates = states; + if (updateActiveStates() && m_complete) + updateSource(); +} + +QString QQuickImageSelector::separator() const +{ + return m_separator; +} + +void QQuickImageSelector::setSeparator(const QString &separator) +{ + if (m_separator == separator) + return; + + m_separator = separator; + if (m_complete) + updateSource(); +} + +bool QQuickImageSelector::cache() const +{ + return m_cache; +} + +void QQuickImageSelector::setCache(bool cache) +{ + m_cache = cache; +} + +void QQuickImageSelector::write(const QVariant &value) +{ + setUrl(value.toUrl()); +} + +void QQuickImageSelector::setTarget(const QQmlProperty &property) +{ + m_property = property; +} + +void QQuickImageSelector::classBegin() +{ +} + +void QQuickImageSelector::componentComplete() +{ + setUrl(m_property.read().toUrl()); + m_complete = true; + updateSource(); +} + +QStringList QQuickImageSelector::fileExtensions() const +{ + static const QStringList extensions = QStringList() << QStringLiteral("png"); + return extensions; +} + +QString QQuickImageSelector::cacheKey() const +{ + if (!m_cache) + return QString(); + + return m_path + m_name + m_activeStates.join(m_separator); +} + +void QQuickImageSelector::updateSource() +{ + static QCache<QString, QString> cache(cacheSize()); + + const QString key = cacheKey(); + + QString bestFilePath; + + if (m_cache) { + QString *cachedPath = cache.object(key); + if (cachedPath) + bestFilePath = *cachedPath; + } + + // note: a cached file path may be empty + if (bestFilePath.isNull()) { + QDir dir(m_path); + int bestScore = -1; + + const QStringList extensions = fileExtensions(); + + const QList<QStringList> statePerms = permutations(m_activeStates); + for (const QStringList &perm : statePerms) { + const QString filePath = findFile(dir, m_name + m_separator + perm.join(m_separator), extensions); + if (!filePath.isEmpty()) { + int score = calculateScore(perm); + if (score > bestScore) { + bestScore = score; + bestFilePath = filePath; + } + } + } + + if (bestFilePath.isEmpty()) + bestFilePath = findFile(dir, m_name, extensions); + + if (m_cache) + cache.insert(key, new QString(bestFilePath)); + } + + qCDebug(lcQtQuickControlsImagine) << m_name << m_activeStates << "->" << bestFilePath; + + if (bestFilePath.startsWith(QLatin1Char(':'))) + setSource(QUrl(QLatin1String("qrc") + bestFilePath)); + else + setSource(QUrl::fromLocalFile(bestFilePath)); +} + +void QQuickImageSelector::setUrl(const QUrl &url) +{ + QFileInfo fileInfo(QQmlFile::urlToLocalFileOrQrc(url)); + setName(fileInfo.fileName()); + setPath(fileInfo.path()); +} + +bool QQuickImageSelector::updateActiveStates() +{ + QStringList active; + for (const QVariant &v : qAsConst(m_allStates)) { + const QVariantMap state = v.toMap(); + if (state.isEmpty()) + continue; + auto it = state.begin(); + if (it.value().toBool()) + active += it.key(); + } + + if (m_activeStates == active) + return false; + + m_activeStates = active; + return true; +} + +int QQuickImageSelector::calculateScore(const QStringList &states) const +{ + int score = 0; + for (int i = 0; i < states.count(); ++i) + score += (m_activeStates.count() - m_activeStates.indexOf(states.at(i))) << 1; + return score; +} + +QQuickNinePatchImageSelector::QQuickNinePatchImageSelector(QObject *parent) + : QQuickImageSelector(parent) +{ +} + +QStringList QQuickNinePatchImageSelector::fileExtensions() const +{ + static const QStringList extensions = QStringList() << QStringLiteral("9.png") << QStringLiteral("png"); + return extensions; +} + +QQuickAnimatedImageSelector::QQuickAnimatedImageSelector(QObject *parent) + : QQuickImageSelector(parent) +{ +} + +QStringList QQuickAnimatedImageSelector::fileExtensions() const +{ + static const QStringList extensions = QStringList() << QStringLiteral("webp") << QStringLiteral("gif"); + return extensions; +} + +QT_END_NAMESPACE diff --git a/src/imports/controls/imagine/qquickimageselector_p.h b/src/imports/controls/imagine/qquickimageselector_p.h new file mode 100644 index 00000000..2bb4e526 --- /dev/null +++ b/src/imports/controls/imagine/qquickimageselector_p.h @@ -0,0 +1,151 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QQUICKIMAGESELECTOR_P_H +#define QQUICKIMAGESELECTOR_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include <QtCore/qurl.h> +#include <QtCore/qobject.h> +#include <QtCore/qvariant.h> +#include <QtQml/qqmlproperty.h> +#include <QtQml/qqmlparserstatus.h> +#include <QtQml/private/qqmlpropertyvalueinterceptor_p.h> +#include <QtQml/qqmlproperty.h> +#include <QtQml/qqml.h> + +QT_BEGIN_NAMESPACE + +class QQuickImageSelector : public QObject, public QQmlParserStatus, public QQmlPropertyValueInterceptor +{ + Q_OBJECT + Q_PROPERTY(QUrl source READ source NOTIFY sourceChanged FINAL) + Q_PROPERTY(QString name READ name WRITE setName FINAL) + Q_PROPERTY(QString path READ path WRITE setPath FINAL) + Q_PROPERTY(QVariantList states READ states WRITE setStates FINAL) + Q_PROPERTY(QString separator READ separator WRITE setSeparator FINAL) + Q_PROPERTY(bool cache READ cache WRITE setCache FINAL) + Q_INTERFACES(QQmlParserStatus QQmlPropertyValueInterceptor) + +public: + explicit QQuickImageSelector(QObject *parent = nullptr); + + QUrl source() const; + void setSource(const QUrl &source); + + QString name() const; + void setName(const QString &name); + + QString path() const; + void setPath(const QString &path); + + QVariantList states() const; + void setStates(const QVariantList &states); + + QString separator() const; + void setSeparator(const QString &separator); + + bool cache() const; + void setCache(bool cache); + + void write(const QVariant &value) override; + void setTarget(const QQmlProperty &property) override; + +Q_SIGNALS: + void sourceChanged(); + +protected: + void classBegin() override; + void componentComplete() override; + + virtual QStringList fileExtensions() const; + + QString cacheKey() const; + void updateSource(); + void setUrl(const QUrl &url); + bool updateActiveStates(); + int calculateScore(const QStringList &states) const; + +private: + bool m_cache; + bool m_complete; + QUrl m_source; + QString m_path; + QString m_name; + QString m_separator; + QVariantList m_allStates; + QStringList m_activeStates; + QQmlProperty m_property; +}; + +class QQuickNinePatchImageSelector : public QQuickImageSelector +{ + Q_OBJECT + +public: + explicit QQuickNinePatchImageSelector(QObject *parent = nullptr); + +protected: + QStringList fileExtensions() const override; +}; + +class QQuickAnimatedImageSelector : public QQuickImageSelector +{ + Q_OBJECT + +public: + explicit QQuickAnimatedImageSelector(QObject *parent = nullptr); + +protected: + QStringList fileExtensions() const override; +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QQuickImageSelector) +QML_DECLARE_TYPE(QQuickAnimatedImageSelector) + +#endif // QQUICKIMAGESELECTOR_P_H diff --git a/src/imports/controls/imagine/qquickimaginestyle.cpp b/src/imports/controls/imagine/qquickimaginestyle.cpp new file mode 100644 index 00000000..7617fbf5 --- /dev/null +++ b/src/imports/controls/imagine/qquickimaginestyle.cpp @@ -0,0 +1,169 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qquickimaginestyle_p.h" + +#include <QtCore/qsettings.h> +#include <QtQuickControls2/private/qquickstyle_p.h> + +QT_BEGIN_NAMESPACE + +Q_GLOBAL_STATIC_WITH_ARGS(QString, GlobalPath, (QLatin1String("qrc:/qt-project.org/imports/QtQuick/Controls.2/Imagine/images/"))) + +static const QString ensureSlash(const QString &path) +{ + const QChar slash = QLatin1Char('/'); + return path.endsWith(slash) ? path : path + slash; +} + +QQuickImagineStyle::QQuickImagineStyle(QObject *parent) + : QQuickAttachedObject(parent), + m_explicitPath(false), + m_path(*GlobalPath()) +{ + init(); +} + +QQuickImagineStyle *QQuickImagineStyle::qmlAttachedProperties(QObject *object) +{ + return new QQuickImagineStyle(object); +} + +QString QQuickImagineStyle::path() const +{ + return m_path; +} + +void QQuickImagineStyle::setPath(const QString &path) +{ + m_explicitPath = true; + if (m_path == path) + return; + + m_path = path; + propagatePath(); + + emit pathChanged(); +} + +void QQuickImagineStyle::inheritPath(const QString &path) +{ + if (m_explicitPath || m_path == path) + return; + + m_path = path; + propagatePath(); + emit pathChanged(); +} + +void QQuickImagineStyle::propagatePath() +{ + const auto styles = attachedChildren(); + for (QQuickAttachedObject *child : styles) { + QQuickImagineStyle *imagine = qobject_cast<QQuickImagineStyle *>(child); + if (imagine) + imagine->inheritPath(m_path); + } +} + +void QQuickImagineStyle::resetPath() +{ + if (!m_explicitPath) + return; + + m_explicitPath = false; + QQuickImagineStyle *imagine = qobject_cast<QQuickImagineStyle *>(attachedParent()); + inheritPath(imagine ? imagine->path() : *GlobalPath()); +} + +QUrl QQuickImagineStyle::url() const +{ + // Using ApplicationWindow as an example, its NinePatchImage url + // was previously assigned like this: + // + // soruce: Imagine.path + "applicationwindow-background" + // + // If Imagine.path is set to ":/images" by the user, then the final URL would be: + // + // QUrl("file:///home/user/qt/qtbase/qml/QtQuick/Controls.2/Imagine/:/images/applicationwindow-background") + // + // To ensure that the correct URL is constructed, we do it ourselves here, + // and then the control QML files use the "url" property instead. + const QString path = ensureSlash(m_path); + if (path.startsWith(QLatin1String("qrc"))) + return QUrl(path); + + if (path.startsWith(QLatin1String(":/"))) + return QUrl(QLatin1String("qrc") + path); + + return QUrl::fromLocalFile(path); +} + +void QQuickImagineStyle::attachedParentChange(QQuickAttachedObject *newParent, QQuickAttachedObject *oldParent) +{ + Q_UNUSED(oldParent); + QQuickImagineStyle *imagine = qobject_cast<QQuickImagineStyle *>(newParent); + if (imagine) + inheritPath(imagine->path()); +} + +static QByteArray resolveSetting(const QByteArray &env, const QSharedPointer<QSettings> &settings, const QString &name) +{ + QByteArray value = qgetenv(env); +#if QT_CONFIG(settings) + if (value.isNull() && !settings.isNull()) + value = settings->value(name).toByteArray(); +#endif + return value; +} + +void QQuickImagineStyle::init() +{ + static bool globalsInitialized = false; + if (!globalsInitialized) { + QSharedPointer<QSettings> settings = QQuickStylePrivate::settings(QStringLiteral("Imagine")); + + QString path = QString::fromUtf8(resolveSetting("QT_QUICK_CONTROLS_IMAGINE_PATH", settings, QStringLiteral("Path"))); + if (!path.isEmpty()) + *GlobalPath() = m_path = ensureSlash(path); + + globalsInitialized = true; + } + + QQuickAttachedObject::init(); // TODO: lazy init? +} + +QT_END_NAMESPACE diff --git a/src/imports/controls/imagine/qquickimaginestyle_p.h b/src/imports/controls/imagine/qquickimaginestyle_p.h new file mode 100644 index 00000000..88b92c00 --- /dev/null +++ b/src/imports/controls/imagine/qquickimaginestyle_p.h @@ -0,0 +1,93 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QQUICKIMAGINESTYLE_P_H +#define QQUICKIMAGINESTYLE_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include <QtQuickControls2/private/qquickattachedobject_p.h> +#include <QtCore/qvariant.h> +#include <QtQml/qqml.h> + +QT_BEGIN_NAMESPACE + +class QQuickImagineStyle : public QQuickAttachedObject +{ + Q_OBJECT + Q_PROPERTY(QString path READ path WRITE setPath RESET resetPath NOTIFY pathChanged FINAL) + Q_PROPERTY(QUrl url READ url NOTIFY pathChanged FINAL) + +public: + explicit QQuickImagineStyle(QObject *parent = nullptr); + + static QQuickImagineStyle *qmlAttachedProperties(QObject *object); + + QString path() const; + void setPath(const QString &path); + void inheritPath(const QString &path); + void propagatePath(); + void resetPath(); + + QUrl url() const; + +Q_SIGNALS: + void pathChanged(); + +protected: + void attachedParentChange(QQuickAttachedObject *newParent, QQuickAttachedObject *oldParent) override; + +private: + void init(); + + bool m_explicitPath; + QString m_path; +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPEINFO(QQuickImagineStyle, QML_HAS_ATTACHED_PROPERTIES) + +#endif // QQUICKIMAGINESTYLE_P_H diff --git a/src/imports/controls/imagine/qquickimaginetheme.cpp b/src/imports/controls/imagine/qquickimaginetheme.cpp new file mode 100644 index 00000000..5505e7ce --- /dev/null +++ b/src/imports/controls/imagine/qquickimaginetheme.cpp @@ -0,0 +1,77 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qquickimaginetheme_p.h" + +#include <QtGui/qfontinfo.h> + +QT_BEGIN_NAMESPACE + +QQuickImagineTheme::QQuickImagineTheme() + : QQuickTheme(QStringLiteral("Imagine")) +{ + systemFont.setFamily(QLatin1String("Open Sans")); + systemFont = resolveFont(systemFont); + + const QColor accentColor = QColor::fromRgb(0x4fc1e9); + const QColor windowTextColor = QColor::fromRgb(0x434a54); + const QColor disabledWindowTextColor = QColor::fromRgb(0xccd1d9); + + systemPalette.setColor(QPalette::ButtonText, Qt::white); + systemPalette.setColor(QPalette::BrightText, Qt::white); + systemPalette.setColor(QPalette::Highlight, accentColor); + systemPalette.setColor(QPalette::HighlightedText, Qt::white); + systemPalette.setColor(QPalette::Text, windowTextColor); + systemPalette.setColor(QPalette::ToolTipText, Qt::white); + systemPalette.setColor(QPalette::WindowText, windowTextColor); + systemPalette.setColor(QPalette::Disabled, QPalette::Text, disabledWindowTextColor); + systemPalette.setColor(QPalette::Disabled, QPalette::WindowText, disabledWindowTextColor); + systemPalette = resolvePalette(systemPalette); +} + +const QFont *QQuickImagineTheme::font(QPlatformTheme::Font type) const +{ + Q_UNUSED(type); + return &systemFont; +} + +const QPalette *QQuickImagineTheme::palette(QPlatformTheme::Palette type) const +{ + Q_UNUSED(type); + return &systemPalette; +} + +QT_END_NAMESPACE diff --git a/src/imports/controls/imagine/qquickimaginetheme_p.h b/src/imports/controls/imagine/qquickimaginetheme_p.h new file mode 100644 index 00000000..ea3a1cbd --- /dev/null +++ b/src/imports/controls/imagine/qquickimaginetheme_p.h @@ -0,0 +1,70 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QQUICKIMAGINETHEME_P_H +#define QQUICKIMAGINETHEME_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include <QtQuickControls2/private/qquicktheme_p.h> + +QT_BEGIN_NAMESPACE + +class QQuickImagineTheme : public QQuickTheme +{ +public: + explicit QQuickImagineTheme(); + + const QFont *font(Font type = SystemFont) const override; + const QPalette *palette(Palette type = SystemPalette) const override; + +private: + QFont systemFont; + QPalette systemPalette; +}; + +QT_END_NAMESPACE + +#endif // QQUICKIMAGINETHEME_P_H diff --git a/src/imports/controls/imagine/qquickninepatchimage.cpp b/src/imports/controls/imagine/qquickninepatchimage.cpp new file mode 100644 index 00000000..9e1b82bf --- /dev/null +++ b/src/imports/controls/imagine/qquickninepatchimage.cpp @@ -0,0 +1,455 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qquickninepatchimage_p.h" + +#include <QtCore/qfileinfo.h> +#include <QtQuick/qsggeometry.h> +#include <QtQuick/qsgtexturematerial.h> +#include <QtQuick/private/qsgnode_p.h> +#include <QtQuick/private/qquickimage_p_p.h> + +QT_BEGIN_NAMESPACE + +struct QQuickNinePatchData +{ + QVector<qreal> coordsForSize(qreal count) const; + + inline bool isNull() const { return data.isEmpty(); } + inline int count() const { return data.size(); } + inline qreal at(int index) const { return data.at(index); } + inline qreal size() const { return data.last(); } + + void fill(const QVector<qreal> &coords, qreal count); + void clear(); + +private: + bool inverted = false; + QVector<qreal> data; +}; + +QVector<qreal> QQuickNinePatchData::coordsForSize(qreal size) const +{ + // n = number of stretchable sections + // We have to compensate when adding 0 and/or + // the source image width to the divs vector. + const int l = data.size(); + const int n = (inverted ? l - 1 : l) / 2; + const qreal stretch = (size - data.last()) / n; + + QVector<qreal> coords; + coords.reserve(l); + coords.append(0); + + bool stretched = !inverted; + for (int i = 1; i < l; ++i) { + qreal advance = data[i] - data[i - 1]; + if (stretched) + advance += stretch; + coords.append(coords.last() + advance); + + stretched = !stretched; + } + + return coords; +} + +void QQuickNinePatchData::fill(const QVector<qreal> &coords, qreal size) +{ + data.clear(); + inverted = coords.isEmpty() || coords.first() != 0; + + // Reserve an extra item in case we need to add the image width/height + if (inverted) { + data.reserve(coords.size() + 2); + data.append(0); + } else { + data.reserve(coords.size() + 1); + } + + data += coords; + data.append(size); +} + +void QQuickNinePatchData::clear() +{ + data.clear(); +} + +class QQuickNinePatchNode : public QSGGeometryNode +{ +public: + QQuickNinePatchNode(); + ~QQuickNinePatchNode(); + + void initialize(QSGTexture *texture, const QSizeF &targetSize, const QSize &sourceSize, + const QQuickNinePatchData &xDivs, const QQuickNinePatchData &yDivs, qreal dpr); + +private: + QSGGeometry m_geometry; + QSGTextureMaterial m_material; +}; + +QQuickNinePatchNode::QQuickNinePatchNode() + : m_geometry(QSGGeometry::defaultAttributes_TexturedPoint2D(), 4) +{ + m_geometry.setDrawingMode(QSGGeometry::DrawTriangles); + setGeometry(&m_geometry); + setMaterial(&m_material); +} + +QQuickNinePatchNode::~QQuickNinePatchNode() +{ + delete m_material.texture(); +} + +void QQuickNinePatchNode::initialize(QSGTexture *texture, const QSizeF &targetSize, const QSize &sourceSize, + const QQuickNinePatchData &xDivs, const QQuickNinePatchData &yDivs, qreal dpr) +{ + delete m_material.texture(); + m_material.setTexture(texture); + + const int xlen = xDivs.count(); + const int ylen = yDivs.count(); + + if (xlen > 0 && ylen > 0) { + const int quads = (xlen - 1) * (ylen - 1); + static const int verticesPerQuad = 6; + m_geometry.allocate(xlen * ylen, verticesPerQuad * quads); + + QSGGeometry::TexturedPoint2D *vertices = m_geometry.vertexDataAsTexturedPoint2D(); + QVector<qreal> xCoords = xDivs.coordsForSize(targetSize.width()); + QVector<qreal> yCoords = yDivs.coordsForSize(targetSize.height()); + + for (int y = 0; y < ylen; ++y) { + for (int x = 0; x < xlen; ++x, ++vertices) + vertices->set(xCoords[x] / dpr, yCoords[y] / dpr, + xDivs.at(x) / sourceSize.width(), + yDivs.at(y) / sourceSize.height()); + } + + quint16 *indices = m_geometry.indexDataAsUShort(); + int n = quads; + for (int q = 0; n--; ++q) { + if ((q + 1) % xlen == 0) // next row + ++q; + // Bottom-left half quad triangle + indices[0] = q; + indices[1] = q + xlen; + indices[2] = q + xlen + 1; + + // Top-right half quad triangle + indices[3] = q; + indices[4] = q + xlen + 1; + indices[5] = q + 1; + + indices += verticesPerQuad; + } + } + + markDirty(QSGNode::DirtyGeometry | QSGNode::DirtyMaterial); +} + +class QQuickNinePatchImagePrivate : public QQuickImagePrivate +{ + Q_DECLARE_PUBLIC(QQuickNinePatchImage) + +public: + void updatePatches(); + void updatePaddings(const QSizeF &size, const QVector<qreal> &horizontal, const QVector<qreal> &vertical); + void updateInsets(const QVector<qreal> &horizontal, const QVector<qreal> &vertical); + + qreal getImplicitWidth() const override; + qreal getImplicitHeight() const override; + + bool resetNode = false; + qreal topPadding = 0; + qreal leftPadding = 0; + qreal rightPadding = 0; + qreal bottomPadding = 0; + qreal topInset = 0; + qreal leftInset = 0; + qreal rightInset = 0; + qreal bottomInset = 0; + + QImage ninePatch; + QQuickNinePatchData xDivs; + QQuickNinePatchData yDivs; +}; + +static QVector<qreal> readCoords(const QRgb *data, int from, int count, int offset, QRgb color) +{ + int p1 = -1; + QVector<qreal> coords; + for (int i = 0; i < count; ++i) { + int p2 = from + i * offset; + if (data[p2] == color) { + // colored pixel + if (p1 == -1) + p1 = i; + } else { + // empty pixel + if (p1 != -1) { + coords << p1 << i; + p1 = -1; + } + } + } + return coords; +} + +void QQuickNinePatchImagePrivate::updatePatches() +{ + if (ninePatch.isNull()) + return; + + int w = ninePatch.width(); + int h = ninePatch.height(); + const QRgb *data = reinterpret_cast<const QRgb *>(ninePatch.constBits()); + + const QRgb black = qRgb(0,0,0); + const QRgb red = qRgb(255,0,0); + + xDivs.fill(readCoords(data, 1, w - 1, 1, black), w - 2); // top left -> top right + yDivs.fill(readCoords(data, w, h - 1, w, black), h - 2); // top left -> bottom left + + QVector<qreal> hInsets = readCoords(data, (h - 1) * w + 1, w - 1, 1, red); // bottom left -> bottom right + QVector<qreal> vInsets = readCoords(data, 2 * w - 1, h - 1, w, red); // top right -> bottom right + updateInsets(hInsets, vInsets); + + const QSizeF sz(w - leftInset - rightInset, h - topInset - bottomInset); + QVector<qreal> hPaddings = readCoords(data, (h - 1) * w + leftInset + 1, sz.width() - 2, 1, black); // bottom left -> bottom right + QVector<qreal> vPaddings = readCoords(data, (2 + topInset) * w - 1, sz.height() - 2, w, black); // top right -> bottom right + updatePaddings(sz, hPaddings, vPaddings); +} + +void QQuickNinePatchImagePrivate::updatePaddings(const QSizeF &size, const QVector<qreal> &horizontal, const QVector<qreal> &vertical) +{ + Q_Q(QQuickNinePatchImage); + qreal oldTopPadding = topPadding; + qreal oldLeftPadding = leftPadding; + qreal oldRightPadding = rightPadding; + qreal oldBottomPadding = bottomPadding; + + if (horizontal.count() >= 2) { + leftPadding = horizontal.first(); + rightPadding = size.width() - horizontal.last() - 2; + } else { + leftPadding = 0; + rightPadding = 0; + } + + if (vertical.count() >= 2) { + topPadding = vertical.first(); + bottomPadding = size.height() - vertical.last() - 2; + } else { + topPadding = 0; + bottomPadding = 0; + } + + if (!qFuzzyCompare(oldTopPadding, topPadding)) + emit q->topPaddingChanged(); + if (!qFuzzyCompare(oldBottomPadding, bottomPadding)) + emit q->bottomPaddingChanged(); + if (!qFuzzyCompare(oldLeftPadding, leftPadding)) + emit q->leftPaddingChanged(); + if (!qFuzzyCompare(oldRightPadding, rightPadding)) + emit q->rightPaddingChanged(); +} + +void QQuickNinePatchImagePrivate::updateInsets(const QVector<qreal> &horizontal, const QVector<qreal> &vertical) +{ + Q_Q(QQuickNinePatchImage); + qreal oldTopInset = topInset; + qreal oldLeftInset = leftInset; + qreal oldRightInset = rightInset; + qreal oldBottomInset = bottomInset; + + if (horizontal.count() >= 2 && horizontal.first() == 0) + leftInset = horizontal.at(1); + else + leftInset = 0; + + if (horizontal.count() == 2 && horizontal.first() > 0) + rightInset = horizontal.last() - horizontal.first(); + else if (horizontal.count() == 4) + rightInset = horizontal.last() - horizontal.at(2); + else + rightInset = 0; + + if (vertical.count() >= 2 && vertical.first() == 0) + topInset = vertical.at(1); + else + topInset = 0; + + if (vertical.count() == 2 && vertical.first() > 0) + bottomInset = vertical.last() - vertical.first(); + else if (vertical.count() == 4) + bottomInset = vertical.last() - vertical.at(2); + else + bottomInset = 0; + + if (!qFuzzyCompare(oldTopInset, topInset)) + emit q->topInsetChanged(); + if (!qFuzzyCompare(oldBottomInset, bottomInset)) + emit q->bottomInsetChanged(); + if (!qFuzzyCompare(oldLeftInset, leftInset)) + emit q->leftInsetChanged(); + if (!qFuzzyCompare(oldRightInset, rightInset)) + emit q->rightInsetChanged(); +} + +qreal QQuickNinePatchImagePrivate::getImplicitWidth() const +{ + Q_Q(const QQuickNinePatchImage); + return implicitWidth - q->leftInset() - q->rightInset(); +} + +qreal QQuickNinePatchImagePrivate::getImplicitHeight() const +{ + Q_Q(const QQuickNinePatchImage); + return implicitHeight - q->topInset() - q->bottomInset(); +} + +QQuickNinePatchImage::QQuickNinePatchImage(QQuickItem *parent) + : QQuickImage(*(new QQuickNinePatchImagePrivate), parent) +{ +} + +qreal QQuickNinePatchImage::topPadding() const +{ + Q_D(const QQuickNinePatchImage); + return d->topPadding / d->devicePixelRatio; +} + +qreal QQuickNinePatchImage::leftPadding() const +{ + Q_D(const QQuickNinePatchImage); + return d->leftPadding / d->devicePixelRatio; +} + +qreal QQuickNinePatchImage::rightPadding() const +{ + Q_D(const QQuickNinePatchImage); + return d->rightPadding / d->devicePixelRatio; +} + +qreal QQuickNinePatchImage::bottomPadding() const +{ + Q_D(const QQuickNinePatchImage); + return d->bottomPadding / d->devicePixelRatio; +} + +qreal QQuickNinePatchImage::topInset() const +{ + Q_D(const QQuickNinePatchImage); + return d->topInset / d->devicePixelRatio; +} + +qreal QQuickNinePatchImage::leftInset() const +{ + Q_D(const QQuickNinePatchImage); + return d->leftInset / d->devicePixelRatio; +} + +qreal QQuickNinePatchImage::rightInset() const +{ + Q_D(const QQuickNinePatchImage); + return d->rightInset / d->devicePixelRatio; +} + +qreal QQuickNinePatchImage::bottomInset() const +{ + Q_D(const QQuickNinePatchImage); + return d->bottomInset / d->devicePixelRatio; +} + +void QQuickNinePatchImage::pixmapChange() +{ + Q_D(QQuickNinePatchImage); + if (QFileInfo(d->url.fileName()).completeSuffix().toLower() == QLatin1String("9.png")) { + d->resetNode = d->ninePatch.isNull(); + d->ninePatch = d->pix.image(); + if (d->ninePatch.depth() != 32) + d->ninePatch = d->ninePatch.convertToFormat(QImage::Format_ARGB32); + + int w = d->ninePatch.width(); + int h = d->ninePatch.height(); + d->pix.setImage(QImage(d->ninePatch.constBits() + 4 * (w + 1), w - 2, h - 2, d->ninePatch.bytesPerLine(), d->ninePatch.format())); + + d->updatePatches(); + } else { + d->resetNode = !d->ninePatch.isNull(); + d->ninePatch = QImage(); + } + QQuickImage::pixmapChange(); +} + +QSGNode *QQuickNinePatchImage::updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *data) +{ + Q_D(QQuickNinePatchImage); + Q_UNUSED(data); + + if (d->resetNode) { + delete oldNode; + oldNode = nullptr; + d->resetNode = false; + } + + QSizeF sz = size(); + QImage image = d->pix.image(); + if (!sz.isValid() || image.isNull()) { + delete oldNode; + return nullptr; + } + + if (d->ninePatch.isNull()) + return QQuickImage::updatePaintNode(oldNode, data); + + QQuickNinePatchNode *patchNode = static_cast<QQuickNinePatchNode *>(oldNode); + if (!patchNode) + patchNode = new QQuickNinePatchNode; + +#ifdef QSG_RUNTIME_DESCRIPTION + qsgnode_set_description(patchNode, QString::fromLatin1("QQuickNinePatchImage: '%1'").arg(d->url.toString())); +#endif + + QSGTexture *texture = window()->createTextureFromImage(image); + patchNode->initialize(texture, sz * d->devicePixelRatio, image.size(), d->xDivs, d->yDivs, d->devicePixelRatio); + return patchNode; +} + +QT_END_NAMESPACE diff --git a/src/imports/controls/imagine/qquickninepatchimage_p.h b/src/imports/controls/imagine/qquickninepatchimage_p.h new file mode 100644 index 00000000..2c29490a --- /dev/null +++ b/src/imports/controls/imagine/qquickninepatchimage_p.h @@ -0,0 +1,106 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QQUICKNINEPATCHIMAGE_P_H +#define QQUICKNINEPATCHIMAGE_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include <QtQuick/private/qquickimage_p.h> + +QT_BEGIN_NAMESPACE + +class QQuickNinePatchImagePrivate; + +class QQuickNinePatchImage : public QQuickImage +{ + Q_OBJECT + Q_PROPERTY(qreal topPadding READ topPadding NOTIFY topPaddingChanged FINAL) + Q_PROPERTY(qreal leftPadding READ leftPadding NOTIFY leftPaddingChanged FINAL) + Q_PROPERTY(qreal rightPadding READ rightPadding NOTIFY rightPaddingChanged FINAL) + Q_PROPERTY(qreal bottomPadding READ bottomPadding NOTIFY bottomPaddingChanged FINAL) + Q_PROPERTY(qreal topInset READ topInset NOTIFY topInsetChanged FINAL) + Q_PROPERTY(qreal leftInset READ leftInset NOTIFY leftInsetChanged FINAL) + Q_PROPERTY(qreal rightInset READ rightInset NOTIFY rightInsetChanged FINAL) + Q_PROPERTY(qreal bottomInset READ bottomInset NOTIFY bottomInsetChanged FINAL) + +public: + explicit QQuickNinePatchImage(QQuickItem *parent = nullptr); + + qreal topPadding() const; + qreal leftPadding() const; + qreal rightPadding() const; + qreal bottomPadding() const; + + qreal topInset() const; + qreal leftInset() const; + qreal rightInset() const; + qreal bottomInset() const; + +Q_SIGNALS: + void topPaddingChanged(); + void leftPaddingChanged(); + void rightPaddingChanged(); + void bottomPaddingChanged(); + + void topInsetChanged(); + void leftInsetChanged(); + void rightInsetChanged(); + void bottomInsetChanged(); + +protected: + void pixmapChange() override; + QSGNode *updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *data) override; + +private: + Q_DISABLE_COPY(QQuickNinePatchImage) + Q_DECLARE_PRIVATE(QQuickNinePatchImage) +}; + +QT_END_NAMESPACE + +QML_DECLARE_TYPE(QQuickNinePatchImage) + +#endif // QQUICKNINEPATCHIMAGE_P_H diff --git a/src/imports/controls/imagine/qtquickcontrols2imaginestyleplugin.cpp b/src/imports/controls/imagine/qtquickcontrols2imaginestyleplugin.cpp new file mode 100644 index 00000000..7aa78075 --- /dev/null +++ b/src/imports/controls/imagine/qtquickcontrols2imaginestyleplugin.cpp @@ -0,0 +1,109 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <QtQuickControls2/private/qquickstyleplugin_p.h> +#include <QtCore/qloggingcategory.h> +#include <QtQml/qqml.h> + +#include "qquickimageselector_p.h" +#include "qquickimaginestyle_p.h" +#include "qquickimaginetheme_p.h" +#include "qquickninepatchimage_p.h" + +static inline void initResources() +{ + Q_INIT_RESOURCE(qmake_qtquickcontrols2imaginestyle); +#ifdef QT_STATIC + Q_INIT_RESOURCE(qmake_QtQuick_Controls_2_Imagine); +#endif +} + +QT_BEGIN_NAMESPACE + +Q_LOGGING_CATEGORY(lcQtQuickControlsImagine, "qt.quick.controls.imagine") + +class QtQuickControls2ImagineStylePlugin: public QQuickStylePlugin +{ + Q_OBJECT + Q_PLUGIN_METADATA(IID QQmlExtensionInterface_iid) + +public: + QtQuickControls2ImagineStylePlugin(QObject *parent = nullptr); + + void registerTypes(const char *uri) override; + void initializeEngine(QQmlEngine *engine, const char *uri) override; + + QString name() const override; + QQuickProxyTheme *createTheme() const override; +}; + +QtQuickControls2ImagineStylePlugin::QtQuickControls2ImagineStylePlugin(QObject *parent) : QQuickStylePlugin(parent) +{ + initResources(); +} + +void QtQuickControls2ImagineStylePlugin::registerTypes(const char *uri) +{ + qmlRegisterModule(uri, 2, QT_VERSION_MINOR - 7); // Qt 5.10 -> 2.3, 5.11 -> 2.4, ... + qmlRegisterUncreatableType<QQuickImagineStyle>(uri, 2, 3, "Imagine", tr("Imagine is an attached property")); +} + +void QtQuickControls2ImagineStylePlugin::initializeEngine(QQmlEngine *engine, const char *uri) +{ + QQuickStylePlugin::initializeEngine(engine, uri); + + QByteArray import = QByteArray(uri) + ".impl"; + qmlRegisterModule(import, 2, QT_VERSION_MINOR - 7); // Qt 5.10 -> 2.3, 5.11 -> 2.4, ... + + qmlRegisterType<QQuickAnimatedImageSelector>(import, 2, 3, "AnimatedImageSelector"); + qmlRegisterType<QQuickImageSelector>(import, 2, 3, "ImageSelector"); + qmlRegisterType<QQuickNinePatchImage>(import, 2, 3, "NinePatchImage"); + qmlRegisterType<QQuickNinePatchImageSelector>(import, 2, 3, "NinePatchImageSelector"); +} + +QString QtQuickControls2ImagineStylePlugin::name() const +{ + return QStringLiteral("imagine"); +} + +QQuickProxyTheme *QtQuickControls2ImagineStylePlugin::createTheme() const +{ + return new QQuickImagineTheme; +} + +QT_END_NAMESPACE + +#include "qtquickcontrols2imaginestyleplugin.moc" diff --git a/src/imports/controls/material/ApplicationWindow.qml b/src/imports/controls/material/ApplicationWindow.qml index 0d56ed2c..603edc84 100644 --- a/src/imports/controls/material/ApplicationWindow.qml +++ b/src/imports/controls/material/ApplicationWindow.qml @@ -34,10 +34,10 @@ ** ****************************************************************************/ -import QtQuick 2.9 +import QtQuick 2.10 import QtQuick.Window 2.3 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls.Material 2.2 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Material 2.3 T.ApplicationWindow { id: window diff --git a/src/imports/controls/material/BoxShadow.qml b/src/imports/controls/material/BoxShadow.qml index aa9fd0fa..0930d7e8 100644 --- a/src/imports/controls/material/BoxShadow.qml +++ b/src/imports/controls/material/BoxShadow.qml @@ -34,9 +34,9 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Controls.Material 2.2 -import QtQuick.Controls.Material.impl 2.2 +import QtQuick 2.10 +import QtQuick.Controls.Material 2.3 +import QtQuick.Controls.Material.impl 2.3 /* A implementation of CSS's box-shadow, used by ElevationEffect for a Material Design diff --git a/src/imports/controls/material/BusyIndicator.qml b/src/imports/controls/material/BusyIndicator.qml index beaaf30e..a483e13e 100644 --- a/src/imports/controls/material/BusyIndicator.qml +++ b/src/imports/controls/material/BusyIndicator.qml @@ -34,10 +34,10 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls.Material 2.2 -import QtQuick.Controls.Material.impl 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Material 2.3 +import QtQuick.Controls.Material.impl 2.3 T.BusyIndicator { id: control diff --git a/src/imports/controls/material/Button.qml b/src/imports/controls/material/Button.qml index e5821375..e3e795ee 100644 --- a/src/imports/controls/material/Button.qml +++ b/src/imports/controls/material/Button.qml @@ -34,10 +34,12 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls.Material 2.2 -import QtQuick.Controls.Material.impl 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Material 2.3 +import QtQuick.Controls.Material.impl 2.3 T.Button { id: control @@ -52,20 +54,29 @@ T.Button { padding: 12 leftPadding: padding - 4 rightPadding: padding - 4 + spacing: 6 + + icon.width: 24 + icon.height: 24 + icon.color: !enabled ? Material.hintTextColor : + flat && highlighted ? Material.accentColor : + highlighted ? Material.primaryHighlightedTextColor : Material.foreground Material.elevation: flat ? control.down || control.hovered ? 2 : 0 : control.down ? 8 : 2 Material.background: flat ? "transparent" : undefined - contentItem: Text { + contentItem: IconLabel { + spacing: control.spacing + mirrored: control.mirrored + display: control.display + + icon: control.icon text: control.text font: control.font color: !control.enabled ? control.Material.hintTextColor : control.flat && control.highlighted ? control.Material.accentColor : control.highlighted ? control.Material.primaryHighlightedTextColor : control.Material.foreground - horizontalAlignment: Text.AlignHCenter - verticalAlignment: Text.AlignVCenter - elide: Text.ElideRight } // TODO: Add a proper ripple/ink effect for mouse/touch input and focus state diff --git a/src/imports/controls/material/CheckBox.qml b/src/imports/controls/material/CheckBox.qml index bb953761..d5e65255 100644 --- a/src/imports/controls/material/CheckBox.qml +++ b/src/imports/controls/material/CheckBox.qml @@ -34,10 +34,10 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls.Material 2.2 -import QtQuick.Controls.Material.impl 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Material 2.3 +import QtQuick.Controls.Material.impl 2.3 T.CheckBox { id: control diff --git a/src/imports/controls/material/CheckDelegate.qml b/src/imports/controls/material/CheckDelegate.qml index 63c63bdf..9ae86d53 100644 --- a/src/imports/controls/material/CheckDelegate.qml +++ b/src/imports/controls/material/CheckDelegate.qml @@ -34,10 +34,12 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls.Material 2.2 -import QtQuick.Controls.Material.impl 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Material 2.3 +import QtQuick.Controls.Material.impl 2.3 T.CheckDelegate { id: control @@ -54,21 +56,29 @@ T.CheckDelegate { bottomPadding: 14 spacing: 16 + icon.width: 24 + icon.height: 24 + icon.color: enabled ? Material.foreground : Material.hintTextColor + indicator: CheckIndicator { x: text ? (control.mirrored ? control.leftPadding : control.width - width - control.rightPadding) : control.leftPadding + (control.availableWidth - width) / 2 y: control.topPadding + (control.availableHeight - height) / 2 control: control } - contentItem: Text { + contentItem: IconLabel { leftPadding: !control.mirrored ? 0 : control.indicator.width + control.spacing rightPadding: control.mirrored ? 0 : control.indicator.width + control.spacing + spacing: control.spacing + mirrored: control.mirrored + display: control.display + alignment: control.display === IconLabel.IconOnly || control.display === IconLabel.TextUnderIcon ? Qt.AlignCenter : Qt.AlignLeft + + icon: control.icon text: control.text font: control.font color: control.enabled ? control.Material.foreground : control.Material.hintTextColor - elide: Text.ElideRight - verticalAlignment: Text.AlignVCenter } background: Rectangle { diff --git a/src/imports/controls/material/CheckIndicator.qml b/src/imports/controls/material/CheckIndicator.qml index 8fe860f0..662879b6 100644 --- a/src/imports/controls/material/CheckIndicator.qml +++ b/src/imports/controls/material/CheckIndicator.qml @@ -34,9 +34,9 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Controls.Material 2.2 -import QtQuick.Controls.Material.impl 2.2 +import QtQuick 2.10 +import QtQuick.Controls.Material 2.3 +import QtQuick.Controls.Material.impl 2.3 Rectangle { id: indicatorItem diff --git a/src/imports/controls/material/ComboBox.qml b/src/imports/controls/material/ComboBox.qml index 79eee2b5..dd319ebc 100644 --- a/src/imports/controls/material/ComboBox.qml +++ b/src/imports/controls/material/ComboBox.qml @@ -34,12 +34,13 @@ ** ****************************************************************************/ -import QtQuick 2.9 +import QtQuick 2.10 import QtQuick.Window 2.3 -import QtQuick.Controls 2.2 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls.Material 2.2 -import QtQuick.Controls.Material.impl 2.2 +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Material 2.3 +import QtQuick.Controls.Material.impl 2.3 T.ComboBox { id: control @@ -67,12 +68,11 @@ T.ComboBox { hoverEnabled: control.hoverEnabled } - indicator: Image { + indicator: ColorImage { x: control.mirrored ? control.padding : control.width - width - control.padding y: control.topPadding + (control.availableHeight - height) / 2 - source: "image://material/drop-indicator/" + (control.enabled ? control.Material.foreground : control.Material.hintTextColor) - sourceSize.width: width - sourceSize.height: height + color: control.enabled ? control.Material.foreground : control.Material.hintTextColor + source: "qrc:/qt-project.org/imports/QtQuick/Controls.2/Material/images/drop-indicator.png" } contentItem: T.TextField { @@ -162,7 +162,6 @@ T.ComboBox { implicitHeight: contentHeight model: control.delegateModel currentIndex: control.highlightedIndex - highlightRangeMode: ListView.ApplyRange highlightMoveDuration: 0 T.ScrollIndicator.vertical: ScrollIndicator { } diff --git a/src/imports/controls/material/CursorDelegate.qml b/src/imports/controls/material/CursorDelegate.qml index 2af44017..02d82784 100644 --- a/src/imports/controls/material/CursorDelegate.qml +++ b/src/imports/controls/material/CursorDelegate.qml @@ -34,8 +34,8 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Controls.Material 2.2 +import QtQuick 2.10 +import QtQuick.Controls.Material 2.3 Rectangle { id: cursor diff --git a/src/imports/controls/material/DelayButton.qml b/src/imports/controls/material/DelayButton.qml index 16f240a2..a9ca5ccb 100644 --- a/src/imports/controls/material/DelayButton.qml +++ b/src/imports/controls/material/DelayButton.qml @@ -34,10 +34,12 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls.Material 2.2 -import QtQuick.Controls.Material.impl 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Material 2.3 +import QtQuick.Controls.Material.impl 2.3 T.DelayButton { id: control diff --git a/src/imports/controls/material/Dial.qml b/src/imports/controls/material/Dial.qml index 946142f1..cb0c3acc 100644 --- a/src/imports/controls/material/Dial.qml +++ b/src/imports/controls/material/Dial.qml @@ -34,10 +34,10 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls.Material 2.2 -import QtQuick.Controls.Material.impl 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Material 2.3 +import QtQuick.Controls.Material.impl 2.3 T.Dial { id: control diff --git a/src/imports/controls/material/Dialog.qml b/src/imports/controls/material/Dialog.qml index a97cb2fd..123e7987 100644 --- a/src/imports/controls/material/Dialog.qml +++ b/src/imports/controls/material/Dialog.qml @@ -34,11 +34,12 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls 2.2 -import QtQuick.Controls.Material 2.2 -import QtQuick.Controls.Material.impl 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Material 2.3 +import QtQuick.Controls.Material.impl 2.3 T.Dialog { id: control @@ -102,4 +103,14 @@ T.Dialog { footer: DialogButtonBox { visible: count > 0 } + + T.Overlay.modal: Rectangle { + color: control.Material.backgroundDimColor + Behavior on opacity { NumberAnimation { duration: 150 } } + } + + T.Overlay.modeless: Rectangle { + color: control.Material.backgroundDimColor + Behavior on opacity { NumberAnimation { duration: 150 } } + } } diff --git a/src/imports/controls/material/DialogButtonBox.qml b/src/imports/controls/material/DialogButtonBox.qml index c4b3e0ad..ad65becf 100644 --- a/src/imports/controls/material/DialogButtonBox.qml +++ b/src/imports/controls/material/DialogButtonBox.qml @@ -34,11 +34,12 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls 2.2 -import QtQuick.Controls.Material 2.2 -import QtQuick.Controls.Material.impl 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Material 2.3 +import QtQuick.Controls.Material.impl 2.3 T.DialogButtonBox { id: control diff --git a/src/imports/controls/material/Drawer.qml b/src/imports/controls/material/Drawer.qml index dc06c895..be16d3c5 100644 --- a/src/imports/controls/material/Drawer.qml +++ b/src/imports/controls/material/Drawer.qml @@ -34,15 +34,15 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls.Material 2.2 -import QtQuick.Controls.Material.impl 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Material 2.3 +import QtQuick.Controls.Material.impl 2.3 T.Drawer { id: control - parent: T.ApplicationWindow.overlay + parent: T.Overlay.overlay implicitWidth: Math.max(background ? background.implicitWidth : 0, contentWidth + leftPadding + rightPadding) implicitHeight: Math.max(background ? background.implicitHeight : 0, contentHeight + topPadding + bottomPadding) @@ -79,4 +79,14 @@ T.Drawer { fullHeight: true } } + + T.Overlay.modal: Rectangle { + color: control.Material.backgroundDimColor + Behavior on opacity { NumberAnimation { duration: 150 } } + } + + T.Overlay.modeless: Rectangle { + color: control.Material.backgroundDimColor + Behavior on opacity { NumberAnimation { duration: 150 } } + } } diff --git a/src/imports/controls/material/ElevationEffect.qml b/src/imports/controls/material/ElevationEffect.qml index 0d0c1992..8f66cd9a 100644 --- a/src/imports/controls/material/ElevationEffect.qml +++ b/src/imports/controls/material/ElevationEffect.qml @@ -34,9 +34,9 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Controls.Material 2.2 -import QtQuick.Controls.Material.impl 2.2 +import QtQuick 2.10 +import QtQuick.Controls.Material 2.3 +import QtQuick.Controls.Material.impl 2.3 /* An effect for standard Material Design elevation shadows. Useful for using as \c layer.effect. diff --git a/src/imports/controls/material/Frame.qml b/src/imports/controls/material/Frame.qml index 760fc6d2..145018e7 100644 --- a/src/imports/controls/material/Frame.qml +++ b/src/imports/controls/material/Frame.qml @@ -34,10 +34,10 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls.Material 2.2 -import QtQuick.Controls.Material.impl 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Material 2.3 +import QtQuick.Controls.Material.impl 2.3 T.Frame { id: control diff --git a/src/imports/controls/material/GroupBox.qml b/src/imports/controls/material/GroupBox.qml index 67105653..12f7eac4 100644 --- a/src/imports/controls/material/GroupBox.qml +++ b/src/imports/controls/material/GroupBox.qml @@ -34,10 +34,10 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls.Material 2.2 -import QtQuick.Controls.Material.impl 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Material 2.3 +import QtQuick.Controls.Material.impl 2.3 T.GroupBox { id: control diff --git a/src/imports/controls/material/ItemDelegate.qml b/src/imports/controls/material/ItemDelegate.qml index a096bfc2..b0705bbf 100644 --- a/src/imports/controls/material/ItemDelegate.qml +++ b/src/imports/controls/material/ItemDelegate.qml @@ -34,10 +34,12 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls.Material 2.2 -import QtQuick.Controls.Material.impl 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Material 2.3 +import QtQuick.Controls.Material.impl 2.3 T.ItemDelegate { id: control @@ -52,15 +54,20 @@ T.ItemDelegate { padding: 16 spacing: 16 - contentItem: Text { - leftPadding: control.checkable && !control.mirrored ? (control.indicator ? control.indicator.width : 0) + control.spacing : 0 - rightPadding: control.checkable && control.mirrored ? (control.indicator ? control.indicator.width : 0) + control.spacing : 0 + icon.width: 24 + icon.height: 24 + icon.color: enabled ? Material.foreground : Material.hintTextColor + contentItem: IconLabel { + spacing: control.spacing + mirrored: control.mirrored + display: control.display + alignment: control.display === IconLabel.IconOnly || control.display === IconLabel.TextUnderIcon ? Qt.AlignCenter : Qt.AlignLeft + + icon: control.icon text: control.text font: control.font color: control.enabled ? control.Material.foreground : control.Material.hintTextColor - elide: Text.ElideRight - verticalAlignment: Text.AlignVCenter } background: Rectangle { diff --git a/src/imports/controls/material/Label.qml b/src/imports/controls/material/Label.qml index 4433e248..7724658d 100644 --- a/src/imports/controls/material/Label.qml +++ b/src/imports/controls/material/Label.qml @@ -34,9 +34,9 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls.Material 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Material 2.3 T.Label { id: control diff --git a/src/imports/controls/material/Menu.qml b/src/imports/controls/material/Menu.qml index 3e76c81d..4fa9bee4 100644 --- a/src/imports/controls/material/Menu.qml +++ b/src/imports/controls/material/Menu.qml @@ -34,11 +34,11 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Controls 2.2 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls.Material 2.2 -import QtQuick.Controls.Material.impl 2.2 +import QtQuick 2.10 +import QtQuick.Controls 2.3 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Material 2.3 +import QtQuick.Controls.Material.impl 2.3 T.Menu { id: control @@ -54,7 +54,9 @@ T.Menu { topPadding: 8 bottomPadding: 8 - transformOrigin: Item.Top + transformOrigin: !cascade ? Item.Top : (mirrored ? Item.TopRight : Item.TopLeft) + + delegate: MenuItem { } enter: Transition { // grow_fade_in @@ -75,8 +77,7 @@ T.Menu { // TODO: improve this? interactive: ApplicationWindow.window ? contentHeight > ApplicationWindow.window.height : false clip: true - keyNavigationWraps: false - currentIndex: -1 + currentIndex: control.currentIndex ScrollIndicator.vertical: ScrollIndicator {} } @@ -93,4 +94,14 @@ T.Menu { elevation: control.Material.elevation } } + + T.Overlay.modal: Rectangle { + color: control.Material.backgroundDimColor + Behavior on opacity { NumberAnimation { duration: 150 } } + } + + T.Overlay.modeless: Rectangle { + color: control.Material.backgroundDimColor + Behavior on opacity { NumberAnimation { duration: 150 } } + } } diff --git a/src/imports/controls/material/MenuBar.qml b/src/imports/controls/material/MenuBar.qml new file mode 100644 index 00000000..c0a267ed --- /dev/null +++ b/src/imports/controls/material/MenuBar.qml @@ -0,0 +1,65 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Material 2.3 +import QtQuick.Controls.Material.impl 2.3 + +T.MenuBar { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, + contentWidth + leftPadding + rightPadding) + implicitHeight: Math.max(background ? background.implicitHeight : 0, + contentHeight + topPadding + bottomPadding) + + delegate: MenuBarItem { } + + contentItem: Row { + spacing: control.spacing + Repeater { + model: control.contentModel + } + } + + background: Rectangle { + implicitHeight: 40 + color: control.Material.dialogColor + } +} diff --git a/src/imports/controls/material/MenuBarItem.qml b/src/imports/controls/material/MenuBarItem.qml new file mode 100644 index 00000000..d757bed1 --- /dev/null +++ b/src/imports/controls/material/MenuBarItem.qml @@ -0,0 +1,90 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Material 2.3 +import QtQuick.Controls.Material.impl 2.3 + +T.MenuBarItem { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, + contentItem.implicitWidth + leftPadding + rightPadding) + implicitHeight: Math.max(background ? background.implicitHeight : 0, + contentItem.implicitHeight + topPadding + bottomPadding) + baselineOffset: contentItem.y + contentItem.baselineOffset + + padding: 16 + topPadding: 12 + bottomPadding: 12 + spacing: 16 + + icon.width: 24 + icon.height: 24 + icon.color: enabled ? Material.foreground : Material.hintTextColor + + contentItem: IconLabel { + spacing: control.spacing + mirrored: control.mirrored + display: control.display + alignment: Qt.AlignLeft + + icon: control.icon + text: control.text + font: control.font + color: control.enabled ? control.Material.foreground : control.Material.hintTextColor + } + + background: Rectangle { + implicitWidth: 40 + implicitHeight: 40 + color: control.highlighted ? control.Material.listHighlightColor : "transparent" + + Ripple { + width: parent.width + height: parent.height + + clip: visible + pressed: control.pressed + anchor: control + active: control.down || control.highlighted + color: control.Material.rippleColor + } + } +} diff --git a/src/imports/controls/material/MenuItem.qml b/src/imports/controls/material/MenuItem.qml index 06408101..cb0e8ff1 100644 --- a/src/imports/controls/material/MenuItem.qml +++ b/src/imports/controls/material/MenuItem.qml @@ -34,10 +34,12 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls.Material 2.2 -import QtQuick.Controls.Material.impl 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Material 2.3 +import QtQuick.Controls.Material.impl 2.3 T.MenuItem { id: control @@ -54,6 +56,10 @@ T.MenuItem { bottomPadding: 12 spacing: 16 + icon.width: 24 + icon.height: 24 + icon.color: enabled ? Material.foreground : Material.hintTextColor + indicator: CheckIndicator { x: text ? (control.mirrored ? control.width - width - control.rightPadding : control.leftPadding) : control.leftPadding + (control.availableWidth - width) / 2 y: control.topPadding + (control.availableHeight - height) / 2 @@ -61,15 +67,31 @@ T.MenuItem { control: control } - contentItem: Text { - leftPadding: control.checkable && !control.mirrored ? control.indicator.width + control.spacing : 0 - rightPadding: control.checkable && control.mirrored ? control.indicator.width + control.spacing : 0 + arrow: ColorImage { + x: control.mirrored ? control.padding : control.width - width - control.padding + y: control.topPadding + (control.availableHeight - height) / 2 + + visible: control.subMenu + mirror: control.mirrored + color: control.enabled ? control.Material.foreground : control.Material.hintTextColor + source: "qrc:/qt-project.org/imports/QtQuick/Controls.2/Material/images/arrow-indicator.png" + } + + contentItem: IconLabel { + readonly property real arrowPadding: control.subMenu && control.arrow ? control.arrow.width + control.spacing : 0 + readonly property real indicatorPadding: control.checkable && control.indicator ? control.indicator.width + control.spacing : 0 + leftPadding: !control.mirrored ? indicatorPadding : arrowPadding + rightPadding: control.mirrored ? indicatorPadding : arrowPadding + + spacing: control.spacing + mirrored: control.mirrored + display: control.display + alignment: Qt.AlignLeft + icon: control.icon text: control.text font: control.font color: control.enabled ? control.Material.foreground : control.Material.hintTextColor - elide: Text.ElideRight - verticalAlignment: Text.AlignVCenter } background: Rectangle { @@ -84,7 +106,7 @@ T.MenuItem { clip: visible pressed: control.pressed anchor: control - active: control.down || control.visualFocus || control.hovered + active: control.down || control.highlighted color: control.Material.rippleColor } } diff --git a/src/imports/controls/material/MenuSeparator.qml b/src/imports/controls/material/MenuSeparator.qml index fd0febbe..4fabc98a 100644 --- a/src/imports/controls/material/MenuSeparator.qml +++ b/src/imports/controls/material/MenuSeparator.qml @@ -34,9 +34,9 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls.Material 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Material 2.3 T.MenuSeparator { id: control diff --git a/src/imports/controls/material/Page.qml b/src/imports/controls/material/Page.qml index 825b9f90..9c0b7474 100644 --- a/src/imports/controls/material/Page.qml +++ b/src/imports/controls/material/Page.qml @@ -34,9 +34,9 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls.Material 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Material 2.3 T.Page { id: control diff --git a/src/imports/controls/material/PageIndicator.qml b/src/imports/controls/material/PageIndicator.qml index 15acae5e..107fe918 100644 --- a/src/imports/controls/material/PageIndicator.qml +++ b/src/imports/controls/material/PageIndicator.qml @@ -34,9 +34,9 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls.Material 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Material 2.3 T.PageIndicator { id: control diff --git a/src/imports/controls/material/Pane.qml b/src/imports/controls/material/Pane.qml index 925778fa..e88b3866 100644 --- a/src/imports/controls/material/Pane.qml +++ b/src/imports/controls/material/Pane.qml @@ -34,10 +34,10 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls.Material 2.2 -import QtQuick.Controls.Material.impl 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Material 2.3 +import QtQuick.Controls.Material.impl 2.3 T.Pane { id: control diff --git a/src/imports/controls/material/Popup.qml b/src/imports/controls/material/Popup.qml index cfcf00cb..35147a2b 100644 --- a/src/imports/controls/material/Popup.qml +++ b/src/imports/controls/material/Popup.qml @@ -34,10 +34,10 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls.Material 2.2 -import QtQuick.Controls.Material.impl 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Material 2.3 +import QtQuick.Controls.Material.impl 2.3 T.Popup { id: control @@ -75,4 +75,14 @@ T.Popup { elevation: control.Material.elevation } } + + T.Overlay.modal: Rectangle { + color: control.Material.backgroundDimColor + Behavior on opacity { NumberAnimation { duration: 150 } } + } + + T.Overlay.modeless: Rectangle { + color: control.Material.backgroundDimColor + Behavior on opacity { NumberAnimation { duration: 150 } } + } } diff --git a/src/imports/controls/material/ProgressBar.qml b/src/imports/controls/material/ProgressBar.qml index 1bc03016..3a20bbee 100644 --- a/src/imports/controls/material/ProgressBar.qml +++ b/src/imports/controls/material/ProgressBar.qml @@ -34,10 +34,10 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls.Material 2.2 -import QtQuick.Controls.Material.impl 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Material 2.3 +import QtQuick.Controls.Material.impl 2.3 T.ProgressBar { id: control @@ -59,9 +59,7 @@ T.ProgressBar { background: Rectangle { implicitWidth: 200 implicitHeight: 4 - x: control.leftPadding - y: control.topPadding + (control.availableHeight - height) / 2 - width: control.availableWidth + y: (control.height - height) / 2 height: 4 color: Qt.rgba(control.Material.accentColor.r, control.Material.accentColor.g, control.Material.accentColor.b, 0.25) diff --git a/src/imports/controls/material/RadioButton.qml b/src/imports/controls/material/RadioButton.qml index 9dec07b5..9d2aaac8 100644 --- a/src/imports/controls/material/RadioButton.qml +++ b/src/imports/controls/material/RadioButton.qml @@ -34,10 +34,10 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls.Material 2.2 -import QtQuick.Controls.Material.impl 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Material 2.3 +import QtQuick.Controls.Material.impl 2.3 T.RadioButton { id: control diff --git a/src/imports/controls/material/RadioDelegate.qml b/src/imports/controls/material/RadioDelegate.qml index e2c15342..4f69d624 100644 --- a/src/imports/controls/material/RadioDelegate.qml +++ b/src/imports/controls/material/RadioDelegate.qml @@ -34,10 +34,12 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls.Material 2.2 -import QtQuick.Controls.Material.impl 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Material 2.3 +import QtQuick.Controls.Material.impl 2.3 T.RadioDelegate { id: control @@ -54,21 +56,29 @@ T.RadioDelegate { bottomPadding: 8 spacing: 16 + icon.width: 24 + icon.height: 24 + icon.color: enabled ? Material.foreground : Material.hintTextColor + indicator: RadioIndicator { x: text ? (control.mirrored ? control.leftPadding : control.width - width - control.rightPadding) : control.leftPadding + (control.availableWidth - width) / 2 y: control.topPadding + (control.availableHeight - height) / 2 control: control } - contentItem: Text { + contentItem: IconLabel { leftPadding: !control.mirrored ? 0 : control.indicator.width + control.spacing rightPadding: control.mirrored ? 0 : control.indicator.width + control.spacing + spacing: control.spacing + mirrored: control.mirrored + display: control.display + alignment: control.display === IconLabel.IconOnly || control.display === IconLabel.TextUnderIcon ? Qt.AlignCenter : Qt.AlignLeft + + icon: control.icon text: control.text font: control.font color: control.enabled ? control.Material.foreground : control.Material.hintTextColor - elide: Text.ElideRight - verticalAlignment: Text.AlignVCenter } background: Rectangle { diff --git a/src/imports/controls/material/RadioIndicator.qml b/src/imports/controls/material/RadioIndicator.qml index 82b01ad3..97bd73eb 100644 --- a/src/imports/controls/material/RadioIndicator.qml +++ b/src/imports/controls/material/RadioIndicator.qml @@ -34,9 +34,9 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Controls.Material 2.2 -import QtQuick.Controls.Material.impl 2.2 +import QtQuick 2.10 +import QtQuick.Controls.Material 2.3 +import QtQuick.Controls.Material.impl 2.3 Rectangle { implicitWidth: 20 diff --git a/src/imports/controls/material/RangeSlider.qml b/src/imports/controls/material/RangeSlider.qml index 0b38ad6d..93f9adac 100644 --- a/src/imports/controls/material/RangeSlider.qml +++ b/src/imports/controls/material/RangeSlider.qml @@ -34,10 +34,10 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls.Material 2.2 -import QtQuick.Controls.Material.impl 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Material 2.3 +import QtQuick.Controls.Material.impl 2.3 T.RangeSlider { id: control @@ -52,8 +52,8 @@ T.RangeSlider { padding: 6 first.handle: SliderHandle { - x: control.leftPadding + (horizontal ? control.first.visualPosition * (control.availableWidth - width) : (control.availableWidth - width) / 2) - y: control.topPadding + (horizontal ? (control.availableHeight - height) / 2 : control.first.visualPosition * (control.availableHeight - height)) + x: control.leftPadding + (control.horizontal ? control.first.visualPosition * (control.availableWidth - width) : (control.availableWidth - width) / 2) + y: control.topPadding + (control.horizontal ? (control.availableHeight - height) / 2 : control.first.visualPosition * (control.availableHeight - height)) value: first.value handleHasFocus: activeFocus handlePressed: first.pressed @@ -61,8 +61,8 @@ T.RangeSlider { } second.handle: SliderHandle { - x: control.leftPadding + (horizontal ? control.second.visualPosition * (control.availableWidth - width) : (control.availableWidth - width) / 2) - y: control.topPadding + (horizontal ? (control.availableHeight - height) / 2 : control.second.visualPosition * (control.availableHeight - height)) + x: control.leftPadding + (control.horizontal ? control.second.visualPosition * (control.availableWidth - width) : (control.availableWidth - width) / 2) + y: control.topPadding + (control.horizontal ? (control.availableHeight - height) / 2 : control.second.visualPosition * (control.availableHeight - height)) value: second.value handleHasFocus: activeFocus handlePressed: second.pressed @@ -70,22 +70,20 @@ T.RangeSlider { } background: Rectangle { - x: control.leftPadding + (horizontal ? 0 : (control.availableWidth - width) / 2) - y: control.topPadding + (horizontal ? (control.availableHeight - height) / 2 : 0) - implicitWidth: horizontal ? 200 : 48 - implicitHeight: horizontal ? 48 : 200 - width: horizontal ? control.availableWidth : 1 - height: horizontal ? 1 : control.availableHeight + x: control.leftPadding + (control.horizontal ? 0 : (control.availableWidth - width) / 2) + y: control.topPadding + (control.horizontal ? (control.availableHeight - height) / 2 : 0) + implicitWidth: control.horizontal ? 200 : 48 + implicitHeight: control.horizontal ? 48 : 200 + width: control.horizontal ? control.availableWidth : 1 + height: control.horizontal ? 1 : control.availableHeight color: control.Material.foreground - scale: horizontal && control.mirrored ? -1 : 1 - - readonly property bool horizontal: control.orientation === Qt.Horizontal + scale:control.horizontal && control.mirrored ? -1 : 1 Rectangle { - x: parent.horizontal ? control.first.position * parent.width : -1 - y: parent.horizontal ? -1 : control.second.visualPosition * parent.height + 3 - width: parent.horizontal ? control.second.position * parent.width - control.first.position * parent.width - 3 : 3 - height: parent.horizontal ? 3 : control.second.position * parent.height - control.first.position * parent.height - 3 + x: control.horizontal ? control.first.position * parent.width : -1 + y: control.horizontal ? -1 : control.second.visualPosition * parent.height + 3 + width: control.horizontal ? control.second.position * parent.width - control.first.position * parent.width - 3 : 3 + height: control.horizontal ? 3 : control.second.position * parent.height - control.first.position * parent.height - 3 color: control.Material.accentColor } diff --git a/src/imports/controls/material/RoundButton.qml b/src/imports/controls/material/RoundButton.qml index 9660a1e4..17813e7f 100644 --- a/src/imports/controls/material/RoundButton.qml +++ b/src/imports/controls/material/RoundButton.qml @@ -34,10 +34,12 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls.Material 2.2 -import QtQuick.Controls.Material.impl 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Material 2.3 +import QtQuick.Controls.Material.impl 2.3 T.RoundButton { id: control @@ -50,20 +52,29 @@ T.RoundButton { // external vertical padding is 6 (to increase touch area) padding: 12 + spacing: 6 + + icon.width: 24 + icon.height: 24 + icon.color: !enabled ? Material.hintTextColor : + flat && highlighted ? Material.accentColor : + highlighted ? Material.primaryHighlightedTextColor : Material.foreground Material.elevation: flat ? control.down || control.hovered ? 2 : 0 : control.down ? 12 : 6 Material.background: flat ? "transparent" : undefined - contentItem: Text { + contentItem: IconLabel { + spacing: control.spacing + mirrored: control.mirrored + display: control.display + + icon: control.icon text: control.text font: control.font color: !control.enabled ? control.Material.hintTextColor : control.flat && control.highlighted ? control.Material.accentColor : control.highlighted ? control.Material.primaryHighlightedTextColor : control.Material.foreground - horizontalAlignment: Text.AlignHCenter - verticalAlignment: Text.AlignVCenter - elide: Text.ElideRight } // TODO: Add a proper ripple/ink effect for mouse/touch input and focus state diff --git a/src/imports/controls/material/ScrollBar.qml b/src/imports/controls/material/ScrollBar.qml index 3687b550..2153cadc 100644 --- a/src/imports/controls/material/ScrollBar.qml +++ b/src/imports/controls/material/ScrollBar.qml @@ -34,9 +34,9 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls.Material 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Material 2.3 T.ScrollBar { id: control diff --git a/src/imports/controls/material/ScrollIndicator.qml b/src/imports/controls/material/ScrollIndicator.qml index 41e72df6..f0889782 100644 --- a/src/imports/controls/material/ScrollIndicator.qml +++ b/src/imports/controls/material/ScrollIndicator.qml @@ -34,9 +34,9 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls.Material 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Material 2.3 T.ScrollIndicator { id: control diff --git a/src/imports/controls/material/Slider.qml b/src/imports/controls/material/Slider.qml index cb60dba6..b7468a19 100644 --- a/src/imports/controls/material/Slider.qml +++ b/src/imports/controls/material/Slider.qml @@ -34,10 +34,10 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls.Material 2.2 -import QtQuick.Controls.Material.impl 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Material 2.3 +import QtQuick.Controls.Material.impl 2.3 T.Slider { id: control @@ -50,8 +50,8 @@ T.Slider { padding: 6 handle: SliderHandle { - x: control.leftPadding + (horizontal ? control.visualPosition * (control.availableWidth - width) : (control.availableWidth - width) / 2) - y: control.topPadding + (horizontal ? (control.availableHeight - height) / 2 : control.visualPosition * (control.availableHeight - height)) + x: control.leftPadding + (control.horizontal ? control.visualPosition * (control.availableWidth - width) : (control.availableWidth - width) / 2) + y: control.topPadding + (control.horizontal ? (control.availableHeight - height) / 2 : control.visualPosition * (control.availableHeight - height)) value: control.value handleHasFocus: control.visualFocus handlePressed: control.pressed @@ -59,22 +59,20 @@ T.Slider { } background: Rectangle { - x: control.leftPadding + (horizontal ? 0 : (control.availableWidth - width) / 2) - y: control.topPadding + (horizontal ? (control.availableHeight - height) / 2 : 0) - implicitWidth: horizontal ? 200 : 48 - implicitHeight: horizontal ? 48 : 200 - width: horizontal ? control.availableWidth : 1 - height: horizontal ? 1 : control.availableHeight + x: control.leftPadding + (control.horizontal ? 0 : (control.availableWidth - width) / 2) + y: control.topPadding + (control.horizontal ? (control.availableHeight - height) / 2 : 0) + implicitWidth: control.horizontal ? 200 : 48 + implicitHeight: control.horizontal ? 48 : 200 + width: control.horizontal ? control.availableWidth : 1 + height: control.horizontal ? 1 : control.availableHeight color: control.Material.foreground - scale: horizontal && control.mirrored ? -1 : 1 - - readonly property bool horizontal: control.orientation === Qt.Horizontal + scale: control.horizontal && control.mirrored ? -1 : 1 Rectangle { - x: parent.horizontal ? 0 : (parent.width - width) / 2 - y: parent.horizontal ? (parent.height - height) / 2 : control.visualPosition * parent.height - width: parent.horizontal ? control.position * parent.width : 3 - height: parent.horizontal ? 3 : control.position * parent.height + x: control.horizontal ? 0 : (parent.width - width) / 2 + y: control.horizontal ? (parent.height - height) / 2 : control.visualPosition * parent.height + width: control.horizontal ? control.position * parent.width : 3 + height: control.horizontal ? 3 : control.position * parent.height color: control.Material.accentColor } diff --git a/src/imports/controls/material/SliderHandle.qml b/src/imports/controls/material/SliderHandle.qml index dd4de4a2..d9197543 100644 --- a/src/imports/controls/material/SliderHandle.qml +++ b/src/imports/controls/material/SliderHandle.qml @@ -34,9 +34,9 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Controls.Material 2.2 -import QtQuick.Controls.Material.impl 2.2 +import QtQuick 2.10 +import QtQuick.Controls.Material 2.3 +import QtQuick.Controls.Material.impl 2.3 Item { id: root @@ -48,7 +48,6 @@ Item { property bool handlePressed: false property bool handleHovered: false readonly property int initialSize: 13 - readonly property bool horizontal: control.orientation === Qt.Horizontal readonly property var control: parent Rectangle { diff --git a/src/imports/controls/material/SpinBox.qml b/src/imports/controls/material/SpinBox.qml index f0dfba08..00b26eb0 100644 --- a/src/imports/controls/material/SpinBox.qml +++ b/src/imports/controls/material/SpinBox.qml @@ -34,10 +34,10 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls.Material 2.2 -import QtQuick.Controls.Material.impl 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Material 2.3 +import QtQuick.Controls.Material.impl 2.3 T.SpinBox { id: control diff --git a/src/imports/controls/material/StackView.qml b/src/imports/controls/material/StackView.qml index 03cd384d..0a56c244 100644 --- a/src/imports/controls/material/StackView.qml +++ b/src/imports/controls/material/StackView.qml @@ -34,8 +34,9 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Material 2.3 T.StackView { id: control diff --git a/src/imports/controls/material/SwipeDelegate.qml b/src/imports/controls/material/SwipeDelegate.qml index a406df2c..eb87ece9 100644 --- a/src/imports/controls/material/SwipeDelegate.qml +++ b/src/imports/controls/material/SwipeDelegate.qml @@ -34,10 +34,12 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls.Material 2.2 -import QtQuick.Controls.Material.impl 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Material 2.3 +import QtQuick.Controls.Material.impl 2.3 T.SwipeDelegate { id: control @@ -54,17 +56,22 @@ T.SwipeDelegate { bottomPadding: 8 spacing: 16 + icon.width: 24 + icon.height: 24 + icon.color: enabled ? Material.foreground : Material.hintTextColor + swipe.transition: Transition { SmoothedAnimation { velocity: 3; easing.type: Easing.InOutCubic } } - contentItem: Text { - leftPadding: !control.mirrored ? (control.indicator ? control.indicator.width + control.spacing : 0) : 0 - rightPadding: control.mirrored ? (control.indicator ? control.indicator.width + control.spacing : 0) : 0 + contentItem: IconLabel { + spacing: control.spacing + mirrored: control.mirrored + display: control.display + alignment: control.display === IconLabel.IconOnly || control.display === IconLabel.TextUnderIcon ? Qt.AlignCenter : Qt.AlignLeft + icon: control.icon text: control.text font: control.font color: control.enabled ? control.Material.foreground : control.Material.hintTextColor - elide: Text.ElideRight - verticalAlignment: Text.AlignVCenter } background: Rectangle { diff --git a/src/imports/controls/material/SwipeView.qml b/src/imports/controls/material/SwipeView.qml index 64ecb00f..7fc8b915 100644 --- a/src/imports/controls/material/SwipeView.qml +++ b/src/imports/controls/material/SwipeView.qml @@ -34,8 +34,9 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Material 2.3 T.SwipeView { id: control diff --git a/src/imports/controls/material/Switch.qml b/src/imports/controls/material/Switch.qml index 36adcb45..9183f8c8 100644 --- a/src/imports/controls/material/Switch.qml +++ b/src/imports/controls/material/Switch.qml @@ -34,10 +34,10 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Controls.Material 2.2 -import QtQuick.Controls.Material.impl 2.2 -import QtQuick.Templates 2.2 as T +import QtQuick 2.10 +import QtQuick.Controls.Material 2.3 +import QtQuick.Controls.Material.impl 2.3 +import QtQuick.Templates 2.3 as T T.Switch { id: control diff --git a/src/imports/controls/material/SwitchDelegate.qml b/src/imports/controls/material/SwitchDelegate.qml index 2af147a0..6dfb9bb0 100644 --- a/src/imports/controls/material/SwitchDelegate.qml +++ b/src/imports/controls/material/SwitchDelegate.qml @@ -34,10 +34,12 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls.Material 2.2 -import QtQuick.Controls.Material.impl 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Material 2.3 +import QtQuick.Controls.Material.impl 2.3 T.SwitchDelegate { id: control @@ -54,21 +56,29 @@ T.SwitchDelegate { bottomPadding: 8 spacing: 16 + icon.width: 24 + icon.height: 24 + icon.color: enabled ? Material.foreground : Material.hintTextColor + indicator: SwitchIndicator { x: text ? (control.mirrored ? control.leftPadding : control.width - width - control.rightPadding) : control.leftPadding + (control.availableWidth - width) / 2 y: control.topPadding + (control.availableHeight - height) / 2 control: control } - contentItem: Text { + contentItem: IconLabel { leftPadding: !control.mirrored ? 0 : control.indicator.width + control.spacing rightPadding: control.mirrored ? 0 : control.indicator.width + control.spacing + spacing: control.spacing + mirrored: control.mirrored + display: control.display + alignment: control.display === IconLabel.IconOnly || control.display === IconLabel.TextUnderIcon ? Qt.AlignCenter : Qt.AlignLeft + + icon: control.icon text: control.text font: control.font color: control.enabled ? control.Material.foreground : control.Material.hintTextColor - elide: Text.ElideRight - verticalAlignment: Text.AlignVCenter } background: Rectangle { diff --git a/src/imports/controls/material/SwitchIndicator.qml b/src/imports/controls/material/SwitchIndicator.qml index 0ac7aee3..6d86d390 100644 --- a/src/imports/controls/material/SwitchIndicator.qml +++ b/src/imports/controls/material/SwitchIndicator.qml @@ -34,9 +34,9 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Controls.Material 2.2 -import QtQuick.Controls.Material.impl 2.2 +import QtQuick 2.10 +import QtQuick.Controls.Material 2.3 +import QtQuick.Controls.Material.impl 2.3 Item { id: indicator diff --git a/src/imports/controls/material/TabBar.qml b/src/imports/controls/material/TabBar.qml index db076447..af81cd58 100644 --- a/src/imports/controls/material/TabBar.qml +++ b/src/imports/controls/material/TabBar.qml @@ -34,10 +34,10 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls.Material 2.2 -import QtQuick.Controls.Material.impl 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Material 2.3 +import QtQuick.Controls.Material.impl 2.3 T.TabBar { id: control @@ -48,7 +48,6 @@ T.TabBar { contentHeight + topPadding + bottomPadding) spacing: 1 - contentHeight: 48 contentItem: ListView { model: control.contentModel diff --git a/src/imports/controls/material/TabButton.qml b/src/imports/controls/material/TabButton.qml index d83fc441..c378aa89 100644 --- a/src/imports/controls/material/TabButton.qml +++ b/src/imports/controls/material/TabButton.qml @@ -34,10 +34,12 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls.Material 2.2 -import QtQuick.Controls.Material.impl 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Material 2.3 +import QtQuick.Controls.Material.impl 2.3 T.TabButton { id: control @@ -49,14 +51,21 @@ T.TabButton { baselineOffset: contentItem.y + contentItem.baselineOffset padding: 12 + spacing: 6 - contentItem: Text { + icon.width: 24 + icon.height: 24 + icon.color: !enabled ? Material.hintTextColor : down || checked ? Material.accentColor : Material.foreground + + contentItem: IconLabel { + spacing: control.spacing + mirrored: control.mirrored + display: control.display + + icon: control.icon text: control.text font: control.font - elide: Text.ElideRight color: !control.enabled ? control.Material.hintTextColor : control.down || control.checked ? control.Material.accentColor : control.Material.foreground - horizontalAlignment: Text.AlignHCenter - verticalAlignment: Text.AlignVCenter } background: Ripple { diff --git a/src/imports/controls/material/TextArea.qml b/src/imports/controls/material/TextArea.qml index 34c633b6..199672ee 100644 --- a/src/imports/controls/material/TextArea.qml +++ b/src/imports/controls/material/TextArea.qml @@ -34,12 +34,12 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls 2.2 -import QtQuick.Controls.impl 2.2 -import QtQuick.Controls.Material 2.2 -import QtQuick.Controls.Material.impl 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Material 2.3 +import QtQuick.Controls.Material.impl 2.3 T.TextArea { id: control diff --git a/src/imports/controls/material/TextField.qml b/src/imports/controls/material/TextField.qml index f5c77f86..e1ba6ed3 100644 --- a/src/imports/controls/material/TextField.qml +++ b/src/imports/controls/material/TextField.qml @@ -34,12 +34,12 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls 2.2 -import QtQuick.Controls.impl 2.2 -import QtQuick.Controls.Material 2.2 -import QtQuick.Controls.Material.impl 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Material 2.3 +import QtQuick.Controls.Material.impl 2.3 T.TextField { id: control @@ -77,9 +77,10 @@ T.TextField { } background: Rectangle { - y: control.height - height - control.bottomPadding / 2 + y: control.height - height - control.bottomPadding + 8 implicitWidth: 120 - height: control.activeFocus ? 2 : 1 - color: control.activeFocus ? control.Material.accentColor : control.Material.hintTextColor + height: control.activeFocus || control.hovered ? 2 : 1 + color: control.activeFocus ? control.Material.accentColor + : (control.hovered ? control.Material.primaryTextColor : control.Material.hintTextColor) } } diff --git a/src/imports/controls/material/ToolBar.qml b/src/imports/controls/material/ToolBar.qml index 228a2692..1b60d814 100644 --- a/src/imports/controls/material/ToolBar.qml +++ b/src/imports/controls/material/ToolBar.qml @@ -34,10 +34,10 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls.Material 2.2 -import QtQuick.Controls.Material.impl 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Material 2.3 +import QtQuick.Controls.Material.impl 2.3 T.ToolBar { id: control diff --git a/src/imports/controls/material/ToolButton.qml b/src/imports/controls/material/ToolButton.qml index b2186fd4..b8f7a4ef 100644 --- a/src/imports/controls/material/ToolButton.qml +++ b/src/imports/controls/material/ToolButton.qml @@ -34,10 +34,12 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls.Material 2.2 -import QtQuick.Controls.Material.impl 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Material 2.3 +import QtQuick.Controls.Material.impl 2.3 T.ToolButton { id: control @@ -49,15 +51,22 @@ T.ToolButton { baselineOffset: contentItem.y + contentItem.baselineOffset padding: 6 + spacing: 6 - contentItem: Text { + icon.width: 24 + icon.height: 24 + icon.color: !enabled ? Material.hintTextColor : checked || highlighted ? Material.accent : Material.foreground + + contentItem: IconLabel { + spacing: control.spacing + mirrored: control.mirrored + display: control.display + + icon: control.icon text: control.text font: control.font color: !control.enabled ? control.Material.hintTextColor : control.checked || control.highlighted ? control.Material.accent : control.Material.foreground - elide: Text.ElideRight - horizontalAlignment: Text.AlignHCenter - verticalAlignment: Text.AlignVCenter } background: Ripple { diff --git a/src/imports/controls/material/ToolSeparator.qml b/src/imports/controls/material/ToolSeparator.qml index 808ddf4f..7402779c 100644 --- a/src/imports/controls/material/ToolSeparator.qml +++ b/src/imports/controls/material/ToolSeparator.qml @@ -34,9 +34,9 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls.Material 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Material 2.3 T.ToolSeparator { id: control diff --git a/src/imports/controls/material/ToolTip.qml b/src/imports/controls/material/ToolTip.qml index a1c2b0ef..08efd064 100644 --- a/src/imports/controls/material/ToolTip.qml +++ b/src/imports/controls/material/ToolTip.qml @@ -34,9 +34,9 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls.Material 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Material 2.3 T.ToolTip { id: control diff --git a/src/imports/controls/material/Tumbler.qml b/src/imports/controls/material/Tumbler.qml index 97628fc4..4364581d 100644 --- a/src/imports/controls/material/Tumbler.qml +++ b/src/imports/controls/material/Tumbler.qml @@ -34,11 +34,11 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Controls 2.2 -import QtQuick.Controls.impl 2.2 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls.Material 2.2 +import QtQuick 2.10 +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Material 2.3 T.Tumbler { id: control diff --git a/src/imports/controls/material/images/arrow-indicator.png b/src/imports/controls/material/images/arrow-indicator.png Binary files differnew file mode 100644 index 00000000..4a942849 --- /dev/null +++ b/src/imports/controls/material/images/arrow-indicator.png diff --git a/src/imports/controls/material/images/arrow-indicator.svg b/src/imports/controls/material/images/arrow-indicator.svg new file mode 100644 index 00000000..1e7217c8 --- /dev/null +++ b/src/imports/controls/material/images/arrow-indicator.svg @@ -0,0 +1,56 @@ +<?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" + width="5" + height="10" + viewBox="0 0 5 10" + version="1.1" + id="svg2" + inkscape:version="0.91 r13725" + sodipodi:docname="arrow-indicator.svg"> + <metadata + id="metadata10"> + <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="defs8" /> + <sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="2560" + inkscape:window-height="1571" + id="namedview6" + showgrid="false" + inkscape:zoom="27.812867" + inkscape:cx="13.137558" + inkscape:cy="12.83583" + inkscape:window-x="0" + inkscape:window-y="55" + inkscape:window-maximized="1" + inkscape:current-layer="svg2" /> + <path + d="M 0,10 5,5 0,0 Z" + id="path4" + inkscape:connector-curvature="0" + style="fill:#757575" /> +</svg> diff --git a/src/imports/controls/material/images/arrow-indicator@2x.png b/src/imports/controls/material/images/arrow-indicator@2x.png Binary files differnew file mode 100644 index 00000000..b31b56c1 --- /dev/null +++ b/src/imports/controls/material/images/arrow-indicator@2x.png diff --git a/src/imports/controls/material/images/arrow-indicator@3x.png b/src/imports/controls/material/images/arrow-indicator@3x.png Binary files differnew file mode 100644 index 00000000..637e9674 --- /dev/null +++ b/src/imports/controls/material/images/arrow-indicator@3x.png diff --git a/src/imports/controls/material/images/arrow-indicator@4x.png b/src/imports/controls/material/images/arrow-indicator@4x.png Binary files differnew file mode 100644 index 00000000..15b9a902 --- /dev/null +++ b/src/imports/controls/material/images/arrow-indicator@4x.png diff --git a/src/imports/controls/material/material.pri b/src/imports/controls/material/material.pri index 64d91442..ab925aa2 100644 --- a/src/imports/controls/material/material.pri +++ b/src/imports/controls/material/material.pri @@ -33,6 +33,8 @@ QML_FILES += \ $$PWD/ItemDelegate.qml \ $$PWD/Label.qml \ $$PWD/Menu.qml \ + $$PWD/MenuBar.qml \ + $$PWD/MenuBarItem.qml \ $$PWD/MenuItem.qml \ $$PWD/MenuSeparator.qml \ $$PWD/Page.qml \ diff --git a/src/imports/controls/material/material.pro b/src/imports/controls/material/material.pro index b7610cd9..5d036b61 100644 --- a/src/imports/controls/material/material.pro +++ b/src/imports/controls/material/material.pro @@ -1,6 +1,6 @@ TARGET = qtquickcontrols2materialstyleplugin TARGETPATH = QtQuick/Controls.2/Material -IMPORT_VERSION = 2.2 +IMPORT_VERSION = 2.3 QT += qml quick QT_PRIVATE += core-private gui-private qml-private quick-private quicktemplates2-private quickcontrols2-private diff --git a/src/imports/controls/material/plugins.qmltypes b/src/imports/controls/material/plugins.qmltypes index 0ff64084..2ddf99a7 100644 --- a/src/imports/controls/material/plugins.qmltypes +++ b/src/imports/controls/material/plugins.qmltypes @@ -4,13 +4,14 @@ import QtQuick.tooling 1.2 // It is used for QML tooling purposes only. // // This file was auto-generated by: -// 'qmlplugindump -nonrelocatable QtQuick.Controls.Material 2.0' +// 'qmlplugindump -nonrelocatable QtQuick.Controls.Material 2.3' Module { dependencies: [] + Component { name: "QQuickAttachedObject"; prototype: "QObject" } Component { name: "QQuickMaterialStyle" - prototype: "QQuickStyle" + prototype: "QQuickAttachedObject" exports: ["QtQuick.Controls.Material/Material 2.0"] isCreatable: false exportMetaObjectRevisions: [0] @@ -18,7 +19,8 @@ Module { name: "Theme" values: { "Light": 0, - "Dark": 1 + "Dark": 1, + "System": 2 } } Enum { @@ -69,6 +71,7 @@ Module { Property { name: "accent"; type: "QVariant" } Property { name: "foreground"; type: "QVariant" } Property { name: "background"; type: "QVariant" } + Property { name: "elevation"; type: "int" } Signal { name: "paletteChanged" } Method { name: "color" @@ -88,5 +91,4 @@ Module { Parameter { name: "shade"; type: "Shade" } } } - Component { name: "QQuickStyle"; prototype: "QObject" } } diff --git a/src/imports/controls/material/qmldir b/src/imports/controls/material/qmldir index 839ca3af..a5bae170 100644 --- a/src/imports/controls/material/qmldir +++ b/src/imports/controls/material/qmldir @@ -1,4 +1,4 @@ module QtQuick.Controls.Material plugin qtquickcontrols2materialstyleplugin classname QtQuickControls2MaterialStylePlugin -depends QtQuick.Controls 2.2 +depends QtQuick.Controls 2.3 diff --git a/src/imports/controls/material/qquickmaterialstyle.cpp b/src/imports/controls/material/qquickmaterialstyle.cpp index eeadb5f3..08d88ec7 100644 --- a/src/imports/controls/material/qquickmaterialstyle.cpp +++ b/src/imports/controls/material/qquickmaterialstyle.cpp @@ -39,7 +39,7 @@ #include <QtCore/qdebug.h> #include <QtCore/qsettings.h> #include <QtQml/qqmlinfo.h> -#include <QtQuickControls2/private/qquickstyleattached_p.h> +#include <QtQuickControls2/private/qquickstyle_p.h> QT_BEGIN_NAMESPACE @@ -419,16 +419,14 @@ static const QRgb rippleColorDark = 0x20FFFFFF; static const QRgb spinBoxDisabledIconColorLight = 0xFFCCCCCC; static const QRgb spinBoxDisabledIconColorDark = 0xFF666666; -extern bool qt_is_dark_system_theme(); - static QQuickMaterialStyle::Theme effectiveTheme(QQuickMaterialStyle::Theme theme) { if (theme == QQuickMaterialStyle::System) - theme = qt_is_dark_system_theme() ? QQuickMaterialStyle::Dark : QQuickMaterialStyle::Light; + theme = QQuickStylePrivate::isDarkSystemTheme() ? QQuickMaterialStyle::Dark : QQuickMaterialStyle::Light; return theme; } -QQuickMaterialStyle::QQuickMaterialStyle(QObject *parent) : QQuickStyleAttached(parent), +QQuickMaterialStyle::QQuickMaterialStyle(QObject *parent) : QQuickAttachedObject(parent), m_explicitTheme(false), m_explicitPrimary(false), m_explicitAccent(false), @@ -463,7 +461,7 @@ QQuickMaterialStyle::Theme QQuickMaterialStyle::theme() const void QQuickMaterialStyle::setTheme(Theme theme) { if (theme == System) - theme = qt_is_dark_system_theme() ? Dark : Light; + theme = QQuickStylePrivate::isDarkSystemTheme() ? Dark : Light; m_explicitTheme = true; if (m_theme == theme) @@ -500,8 +498,8 @@ void QQuickMaterialStyle::inheritTheme(Theme theme) void QQuickMaterialStyle::propagateTheme() { - const auto styles = childStyles(); - for (QQuickStyleAttached *child : styles) { + const auto styles = attachedChildren(); + for (QQuickAttachedObject *child : styles) { QQuickMaterialStyle *material = qobject_cast<QQuickMaterialStyle *>(child); if (material) material->inheritTheme(m_theme); @@ -514,7 +512,7 @@ void QQuickMaterialStyle::resetTheme() return; m_explicitTheme = false; - QQuickMaterialStyle *material = qobject_cast<QQuickMaterialStyle *>(parentStyle()); + QQuickMaterialStyle *material = qobject_cast<QQuickMaterialStyle *>(attachedParent()); inheritTheme(material ? material->theme() : globalTheme); } @@ -555,8 +553,8 @@ void QQuickMaterialStyle::inheritPrimary(uint primary, bool custom) void QQuickMaterialStyle::propagatePrimary() { - const auto styles = childStyles(); - for (QQuickStyleAttached *child : styles) { + const auto styles = attachedChildren(); + for (QQuickAttachedObject *child : styles) { QQuickMaterialStyle *material = qobject_cast<QQuickMaterialStyle *>(child); if (material) material->inheritPrimary(m_primary, m_customPrimary); @@ -570,7 +568,7 @@ void QQuickMaterialStyle::resetPrimary() m_customPrimary = false; m_explicitPrimary = false; - QQuickMaterialStyle *material = qobject_cast<QQuickMaterialStyle *>(parentStyle()); + QQuickMaterialStyle *material = qobject_cast<QQuickMaterialStyle *>(attachedParent()); if (material) inheritPrimary(material->m_primary, material->m_customPrimary); else @@ -614,8 +612,8 @@ void QQuickMaterialStyle::inheritAccent(uint accent, bool custom) void QQuickMaterialStyle::propagateAccent() { - const auto styles = childStyles(); - for (QQuickStyleAttached *child : styles) { + const auto styles = attachedChildren(); + for (QQuickAttachedObject *child : styles) { QQuickMaterialStyle *material = qobject_cast<QQuickMaterialStyle *>(child); if (material) material->inheritAccent(m_accent, m_customAccent); @@ -629,7 +627,7 @@ void QQuickMaterialStyle::resetAccent() m_customAccent = false; m_explicitAccent = false; - QQuickMaterialStyle *material = qobject_cast<QQuickMaterialStyle *>(parentStyle()); + QQuickMaterialStyle *material = qobject_cast<QQuickMaterialStyle *>(attachedParent()); if (material) inheritAccent(material->m_accent, material->m_customAccent); else @@ -679,8 +677,8 @@ void QQuickMaterialStyle::inheritForeground(uint foreground, bool custom, bool h void QQuickMaterialStyle::propagateForeground() { - const auto styles = childStyles(); - for (QQuickStyleAttached *child : styles) { + const auto styles = attachedChildren(); + for (QQuickAttachedObject *child : styles) { QQuickMaterialStyle *material = qobject_cast<QQuickMaterialStyle *>(child); if (material) material->inheritForeground(m_foreground, m_customForeground, m_hasForeground); @@ -695,7 +693,7 @@ void QQuickMaterialStyle::resetForeground() m_hasForeground = false; m_customForeground = false; m_explicitForeground = false; - QQuickMaterialStyle *material = qobject_cast<QQuickMaterialStyle *>(parentStyle()); + QQuickMaterialStyle *material = qobject_cast<QQuickMaterialStyle *>(attachedParent()); inheritForeground(material ? material->m_foreground : globalForeground, true, material ? material->m_hasForeground : false); } @@ -738,8 +736,8 @@ void QQuickMaterialStyle::inheritBackground(uint background, bool custom, bool h void QQuickMaterialStyle::propagateBackground() { - const auto styles = childStyles(); - for (QQuickStyleAttached *child : styles) { + const auto styles = attachedChildren(); + for (QQuickAttachedObject *child : styles) { QQuickMaterialStyle *material = qobject_cast<QQuickMaterialStyle *>(child); if (material) material->inheritBackground(m_background, m_customBackground, m_hasBackground); @@ -754,7 +752,7 @@ void QQuickMaterialStyle::resetBackground() m_hasBackground = false; m_customBackground = false; m_explicitBackground = false; - QQuickMaterialStyle *material = qobject_cast<QQuickMaterialStyle *>(parentStyle()); + QQuickMaterialStyle *material = qobject_cast<QQuickMaterialStyle *>(attachedParent()); inheritBackground(material ? material->m_background : globalBackground, true, material ? material->m_hasBackground : false); } @@ -1137,7 +1135,7 @@ QColor QQuickMaterialStyle::shade(const QColor &color, Shade shade) const } } -void QQuickMaterialStyle::parentStyleChange(QQuickStyleAttached *newParent, QQuickStyleAttached *oldParent) +void QQuickMaterialStyle::attachedParentChange(QQuickAttachedObject *newParent, QQuickAttachedObject *oldParent) { Q_UNUSED(oldParent); QQuickMaterialStyle *material = qobject_cast<QQuickMaterialStyle *>(newParent); @@ -1171,7 +1169,7 @@ void QQuickMaterialStyle::init() { static bool globalsInitialized = false; if (!globalsInitialized) { - QSharedPointer<QSettings> settings = QQuickStyleAttached::settings(QStringLiteral("Material")); + QSharedPointer<QSettings> settings = QQuickStylePrivate::settings(QStringLiteral("Material")); bool ok = false; QByteArray themeValue = resolveSetting("QT_QUICK_CONTROLS_MATERIAL_THEME", settings, QStringLiteral("Theme")); @@ -1248,7 +1246,7 @@ void QQuickMaterialStyle::init() globalsInitialized = true; } - QQuickStyleAttached::init(); // TODO: lazy init? + QQuickAttachedObject::init(); // TODO: lazy init? } bool QQuickMaterialStyle::variantToRgba(const QVariant &var, const char *name, QRgb *rgba, bool *custom) const diff --git a/src/imports/controls/material/qquickmaterialstyle_p.h b/src/imports/controls/material/qquickmaterialstyle_p.h index bb494697..2374eefb 100644 --- a/src/imports/controls/material/qquickmaterialstyle_p.h +++ b/src/imports/controls/material/qquickmaterialstyle_p.h @@ -49,11 +49,11 @@ // #include <QtGui/qcolor.h> -#include <QtQuickControls2/private/qquickstyleattached_p.h> +#include <QtQuickControls2/private/qquickattachedobject_p.h> QT_BEGIN_NAMESPACE -class QQuickMaterialStyle : public QQuickStyleAttached +class QQuickMaterialStyle : public QQuickAttachedObject { Q_OBJECT Q_PROPERTY(Theme theme READ theme WRITE setTheme RESET resetTheme NOTIFY themeChanged FINAL) @@ -236,7 +236,7 @@ Q_SIGNALS: void paletteChanged(); protected: - void parentStyleChange(QQuickStyleAttached *newParent, QQuickStyleAttached *oldParent) override; + void attachedParentChange(QQuickAttachedObject *newParent, QQuickAttachedObject *oldParent) override; private: void init(); diff --git a/src/imports/controls/material/qquickmaterialtheme.cpp b/src/imports/controls/material/qquickmaterialtheme.cpp index 3ea41779..c697b2a5 100644 --- a/src/imports/controls/material/qquickmaterialtheme.cpp +++ b/src/imports/controls/material/qquickmaterialtheme.cpp @@ -42,8 +42,8 @@ QT_BEGIN_NAMESPACE -QQuickMaterialTheme::QQuickMaterialTheme(QPlatformTheme *theme) - : QQuickProxyTheme(theme) +QQuickMaterialTheme::QQuickMaterialTheme() + : QQuickTheme(QStringLiteral("Material")) { QFont font; font.setFamily(QLatin1String("Roboto")); @@ -65,22 +65,29 @@ QQuickMaterialTheme::QQuickMaterialTheme(QPlatformTheme *theme) } systemFont.setPixelSize(14); + systemFont = resolveFont(systemFont); buttonFont.setPixelSize(14); buttonFont.setCapitalization(QFont::AllUppercase); buttonFont.setWeight(QFont::Medium); + buttonFont = resolveFont(buttonFont); toolTipFont.setPixelSize(14); toolTipFont.setWeight(QFont::Medium); + toolTipFont = resolveFont(toolTipFont); itemViewFont.setPixelSize(14); itemViewFont.setWeight(QFont::Medium); + itemViewFont = resolveFont(itemViewFont); listViewFont.setPixelSize(16); + listViewFont = resolveFont(listViewFont); menuItemFont.setPixelSize(16); + menuItemFont = resolveFont(menuItemFont); editorFont.setPixelSize(16); + editorFont = resolveFont(editorFont); } const QFont *QQuickMaterialTheme::font(QPlatformTheme::Font type) const @@ -96,6 +103,7 @@ const QFont *QQuickMaterialTheme::font(QPlatformTheme::Font type) const return &itemViewFont; case QPlatformTheme::ListViewFont: return &listViewFont; + case QPlatformTheme::MenuBarFont: case QPlatformTheme::MenuItemFont: case QPlatformTheme::ComboMenuItemFont: return &menuItemFont; @@ -110,14 +118,7 @@ QVariant QQuickMaterialTheme::themeHint(ThemeHint hint) const { switch (hint) { case QPlatformTheme::DialogButtonBoxLayout: - // https://material.io/guidelines/components/dialogs.html#dialogs-specs - // As per spec, affirmative actions are placed to the right, dismissive - // actions are placed directly to the left of affirmative actions. - // In the Android sources, there are additional type of actions - - // neutral, which are placed to the left. - // Rules for macOS seems to be the most suitable here and are also used - // in the Android QPA plugin. - return QVariant(QPlatformDialogHelper::MacLayout); + return QVariant(QPlatformDialogHelper::AndroidLayout); default: return QQuickProxyTheme::themeHint(hint); } diff --git a/src/imports/controls/material/qquickmaterialtheme_p.h b/src/imports/controls/material/qquickmaterialtheme_p.h index d505d4ff..0e791386 100644 --- a/src/imports/controls/material/qquickmaterialtheme_p.h +++ b/src/imports/controls/material/qquickmaterialtheme_p.h @@ -50,14 +50,14 @@ #include <QtCore/qvariant.h> #include <QtGui/qfont.h> -#include <QtQuickControls2/private/qquickproxytheme_p.h> +#include <QtQuickControls2/private/qquicktheme_p.h> QT_BEGIN_NAMESPACE -class QQuickMaterialTheme : public QQuickProxyTheme +class QQuickMaterialTheme : public QQuickTheme { public: - explicit QQuickMaterialTheme(QPlatformTheme *theme = nullptr); + explicit QQuickMaterialTheme(); const QFont *font(Font type = SystemFont) const override; diff --git a/src/imports/controls/material/qtquickcontrols2materialstyleplugin.cpp b/src/imports/controls/material/qtquickcontrols2materialstyleplugin.cpp index 3f3a66b0..7eae0826 100644 --- a/src/imports/controls/material/qtquickcontrols2materialstyleplugin.cpp +++ b/src/imports/controls/material/qtquickcontrols2materialstyleplugin.cpp @@ -44,7 +44,6 @@ #include <QtQuickControls2/private/qquickstyleselector_p.h> #include <QtQuickControls2/private/qquickpaddedrectangle_p.h> -#include <QtQuickControls2/private/qquickcolorimageprovider_p.h> static inline void initResources() { @@ -86,12 +85,9 @@ void QtQuickControls2MaterialStylePlugin::initializeEngine(QQmlEngine *engine, c { QQuickStylePlugin::initializeEngine(engine, uri); - engine->addImageProvider(name(), new QQuickColorImageProvider(QStringLiteral(":/qt-project.org/imports/QtQuick/Controls.2/Material/images"))); - QByteArray import = QByteArray(uri) + ".impl"; qmlRegisterModule(import, 2, QT_VERSION_MINOR - 7); // Qt 5.7->2.0, 5.8->2.1, 5.9->2.2... - qmlRegisterType<QQuickPaddedRectangle>(import, 2, 0, "PaddedRectangle"); qmlRegisterType<QQuickMaterialBusyIndicator>(import, 2, 0, "BusyIndicatorImpl"); qmlRegisterType<QQuickMaterialProgressBar>(import, 2, 0, "ProgressBarImpl"); qmlRegisterType<QQuickMaterialRipple>(import, 2, 0, "Ripple"); diff --git a/src/imports/controls/material/qtquickcontrols2materialstyleplugin.qrc b/src/imports/controls/material/qtquickcontrols2materialstyleplugin.qrc index e2cc90fa..6e29aea4 100644 --- a/src/imports/controls/material/qtquickcontrols2materialstyleplugin.qrc +++ b/src/imports/controls/material/qtquickcontrols2materialstyleplugin.qrc @@ -1,5 +1,9 @@ <RCC> <qresource prefix="/qt-project.org/imports/QtQuick/Controls.2/Material"> + <file>images/arrow-indicator.png</file> + <file>images/arrow-indicator@2x.png</file> + <file>images/arrow-indicator@3x.png</file> + <file>images/arrow-indicator@4x.png</file> <file>images/check.png</file> <file>images/check@2x.png</file> <file>images/check@3x.png</file> diff --git a/src/imports/controls/plugins.qmltypes b/src/imports/controls/plugins.qmltypes index a8bdb178..d5593246 100644 --- a/src/imports/controls/plugins.qmltypes +++ b/src/imports/controls/plugins.qmltypes @@ -4,20 +4,68 @@ import QtQuick.tooling 1.2 // It is used for QML tooling purposes only. // // This file was auto-generated by: -// 'qmlplugindump -nonrelocatable QtQuick.Controls 2.2 -merge ../templates/plugins.qmltypes -dependencies dependencies.json' +// 'qmlplugindump -nonrelocatable QtQuick.Controls 2.3 -merge ../templates/plugins.qmltypes -dependencies dependencies.json' Module { dependencies: [ "QtQuick 2.9", - "QtQuick.Templates 2.2", + "QtQuick.Templates 2.3", "QtQuick.Window 2.2" ] Component { + name: "QQuickCheckLabel" + defaultProperty: "data" + prototype: "QQuickText" + exports: ["QtQuick.Controls.impl/CheckLabel 2.3"] + exportMetaObjectRevisions: [0] + } + Component { + name: "QQuickColor" + prototype: "QObject" + exports: ["QtQuick.Controls.impl/Color 2.3"] + isCreatable: false + isSingleton: true + exportMetaObjectRevisions: [0] + Method { + name: "transparent" + type: "QColor" + Parameter { name: "color"; type: "QColor" } + Parameter { name: "opacity"; type: "double" } + } + Method { + name: "blend" + type: "QColor" + Parameter { name: "a"; type: "QColor" } + Parameter { name: "b"; type: "QColor" } + Parameter { name: "factor"; type: "double" } + } + } + Component { + name: "QQuickColorImage" + defaultProperty: "data" + prototype: "QQuickImage" + exports: ["QtQuick.Controls.impl/ColorImage 2.3"] + exportMetaObjectRevisions: [0] + Property { name: "color"; type: "QColor" } + Property { name: "defaultColor"; type: "QColor" } + } + Component { name: "QQuickDefaultBusyIndicator" defaultProperty: "data" prototype: "QQuickItem" exports: ["QtQuick.Controls.impl/BusyIndicatorImpl 2.0"] exportMetaObjectRevisions: [0] + Property { name: "pen"; type: "QColor" } + Property { name: "fill"; type: "QColor" } + } + Component { + name: "QQuickDefaultDial" + defaultProperty: "data" + prototype: "QQuickPaintedItem" + exports: ["QtQuick.Controls.impl/DialImpl 2.0"] + exportMetaObjectRevisions: [0] + Property { name: "progress"; type: "double" } + Property { name: "color"; type: "QColor" } } Component { name: "QQuickDefaultProgressBar" @@ -27,6 +75,7 @@ Module { exportMetaObjectRevisions: [0] Property { name: "indeterminate"; type: "bool" } Property { name: "progress"; type: "double" } + Property { name: "color"; type: "QColor" } } Component { name: "QQuickDefaultStyle" @@ -45,6 +94,7 @@ Module { Property { name: "textSelectionColor"; type: "QColor"; isReadonly: true } Property { name: "textDisabledColor"; type: "QColor"; isReadonly: true } Property { name: "textDisabledLightColor"; type: "QColor"; isReadonly: true } + Property { name: "textPlaceholderColor"; type: "QColor"; isReadonly: true } Property { name: "focusColor"; type: "QColor"; isReadonly: true } Property { name: "focusLightColor"; type: "QColor"; isReadonly: true } Property { name: "focusPressedColor"; type: "QColor"; isReadonly: true } @@ -76,13 +126,62 @@ Module { Property { name: "disabledLightColor"; type: "QColor"; isReadonly: true } } Component { - name: "QQuickDialRing" + name: "QQuickIconImage" defaultProperty: "data" - prototype: "QQuickPaintedItem" - exports: ["QtQuick.Controls.impl/DialRing 2.0"] + prototype: "QQuickImage" + exports: ["QtQuick.Controls.impl/IconImage 2.3"] exportMetaObjectRevisions: [0] - Property { name: "progress"; type: "double" } + Property { name: "name"; type: "string" } + Property { name: "color"; type: "QColor" } + } + Component { + name: "QQuickIconLabel" + defaultProperty: "data" + prototype: "QQuickItem" + exports: ["QtQuick.Controls.impl/IconLabel 2.3"] + exportMetaObjectRevisions: [0] + Enum { + name: "Display" + values: { + "IconOnly": 0, + "TextOnly": 1, + "TextBesideIcon": 2, + "TextUnderIcon": 3 + } + } + Property { name: "icon"; type: "QQuickIcon" } + Property { name: "text"; type: "string" } + Property { name: "font"; type: "QFont" } Property { name: "color"; type: "QColor" } + Property { name: "display"; type: "Display" } + Property { name: "spacing"; type: "double" } + Property { name: "mirrored"; type: "bool" } + Property { name: "alignment"; type: "Qt::Alignment" } + Property { name: "topPadding"; type: "double" } + Property { name: "leftPadding"; type: "double" } + Property { name: "rightPadding"; type: "double" } + Property { name: "bottomPadding"; type: "double" } + } + Component { + name: "QQuickMnemonicLabel" + defaultProperty: "data" + prototype: "QQuickText" + exports: ["QtQuick.Controls.impl/MnemonicLabel 2.3"] + exportMetaObjectRevisions: [0] + Property { name: "text"; type: "string" } + Property { name: "mnemonicVisible"; type: "bool" } + } + Component { + name: "QQuickPaddedRectangle" + defaultProperty: "data" + prototype: "QQuickRectangle" + exports: ["QtQuick.Controls.impl/PaddedRectangle 2.0"] + exportMetaObjectRevisions: [0] + Property { name: "padding"; type: "double" } + Property { name: "topPadding"; type: "double" } + Property { name: "leftPadding"; type: "double" } + Property { name: "rightPadding"; type: "double" } + Property { name: "bottomPadding"; type: "double" } } Component { name: "QQuickPlaceholderText" @@ -110,6 +209,21 @@ Module { defaultProperty: "data" } Component { + prototype: "QQuickAction" + name: "QtQuick.Controls/Action 2.3" + exports: ["QtQuick.Controls/Action 2.3"] + exportMetaObjectRevisions: [3] + isComposite: true + } + Component { + prototype: "QQuickActionGroup" + name: "QtQuick.Controls/ActionGroup 2.3" + exports: ["QtQuick.Controls/ActionGroup 2.3"] + exportMetaObjectRevisions: [3] + isComposite: true + defaultProperty: "actions" + } + Component { prototype: "QQuickApplicationWindow" name: "QtQuick.Controls/ApplicationWindow 2.0" exports: ["QtQuick.Controls/ApplicationWindow 2.0"] @@ -157,15 +271,6 @@ Module { defaultProperty: "data" } Component { - prototype: "QQuickRectangle" - name: "QtQuick.Controls.impl/CheckIndicator 2.0" - exports: ["QtQuick.Controls.impl/CheckIndicator 2.0"] - exportMetaObjectRevisions: [0] - isComposite: true - defaultProperty: "data" - Property { name: "control"; type: "QQuickItem"; isPointer: true } - } - Component { prototype: "QQuickComboBox" name: "QtQuick.Controls/ComboBox 2.0" exports: ["QtQuick.Controls/ComboBox 2.0"] @@ -270,6 +375,22 @@ Module { defaultProperty: "contentData" } Component { + prototype: "QQuickMenuBar" + name: "QtQuick.Controls/MenuBar 2.3" + exports: ["QtQuick.Controls/MenuBar 2.3"] + exportMetaObjectRevisions: [3] + isComposite: true + defaultProperty: "contentData" + } + Component { + prototype: "QQuickMenuBarItem" + name: "QtQuick.Controls/MenuBarItem 2.3" + exports: ["QtQuick.Controls/MenuBarItem 2.3"] + exportMetaObjectRevisions: [3] + isComposite: true + defaultProperty: "data" + } + Component { prototype: "QQuickMenuItem" name: "QtQuick.Controls/MenuItem 2.0" exports: ["QtQuick.Controls/MenuItem 2.0"] @@ -342,15 +463,6 @@ Module { defaultProperty: "data" } Component { - prototype: "QQuickRectangle" - name: "QtQuick.Controls.impl/RadioIndicator 2.0" - exports: ["QtQuick.Controls.impl/RadioIndicator 2.0"] - exportMetaObjectRevisions: [0] - isComposite: true - defaultProperty: "data" - Property { name: "control"; type: "QQuickItem"; isPointer: true } - } - Component { prototype: "QQuickRangeSlider" name: "QtQuick.Controls/RangeSlider 2.0" exports: ["QtQuick.Controls/RangeSlider 2.0"] @@ -447,15 +559,6 @@ Module { defaultProperty: "data" } Component { - prototype: "QQuickItem" - name: "QtQuick.Controls.impl/SwitchIndicator 2.0" - exports: ["QtQuick.Controls.impl/SwitchIndicator 2.0"] - exportMetaObjectRevisions: [0] - isComposite: true - defaultProperty: "data" - Property { name: "control"; type: "QQuickItem"; isPointer: true } - } - Component { prototype: "QQuickTabBar" name: "QtQuick.Controls/TabBar 2.0" exports: ["QtQuick.Controls/TabBar 2.0"] @@ -534,9 +637,19 @@ Module { prototype: "QQuickControl" exports: [ "QtQuick.Templates/AbstractButton 2.0", - "QtQuick.Templates/AbstractButton 2.2" + "QtQuick.Templates/AbstractButton 2.2", + "QtQuick.Templates/AbstractButton 2.3" ] - exportMetaObjectRevisions: [0, 2] + exportMetaObjectRevisions: [0, 2, 3] + Enum { + name: "Display" + values: { + "IconOnly": 0, + "TextOnly": 1, + "TextBesideIcon": 2, + "TextUnderIcon": 3 + } + } Property { name: "text"; type: "string" } Property { name: "down"; type: "bool" } Property { name: "pressed"; type: "bool"; isReadonly: true } @@ -544,21 +657,115 @@ Module { Property { name: "checkable"; type: "bool" } Property { name: "autoExclusive"; type: "bool" } Property { name: "indicator"; type: "QQuickItem"; isPointer: true } + Property { name: "icon"; revision: 3; type: "QQuickIcon" } + Property { name: "display"; revision: 3; type: "Display" } + Property { name: "action"; revision: 3; type: "QQuickAction"; isPointer: true } Signal { name: "pressed" } Signal { name: "released" } Signal { name: "canceled" } Signal { name: "clicked" } - Signal { name: "toggled"; revision: 2 } Signal { name: "pressAndHold" } Signal { name: "doubleClicked" } + Signal { name: "toggled"; revision: 2 } + Signal { name: "iconChanged"; revision: 3 } + Signal { name: "displayChanged"; revision: 3 } + Signal { name: "actionChanged"; revision: 3 } Method { name: "toggle" } } Component { + name: "QQuickAction" + prototype: "QObject" + exports: ["QtQuick.Templates/Action 2.3"] + exportMetaObjectRevisions: [0] + Property { name: "text"; type: "string" } + Property { name: "icon"; type: "QQuickIcon" } + Property { name: "enabled"; type: "bool" } + Property { name: "checked"; type: "bool" } + Property { name: "checkable"; type: "bool" } + Property { name: "shortcut"; type: "QVariant" } + Signal { + name: "textChanged" + Parameter { name: "text"; type: "string" } + } + Signal { + name: "iconChanged" + Parameter { name: "icon"; type: "QQuickIcon" } + } + Signal { + name: "enabledChanged" + Parameter { name: "enabled"; type: "bool" } + } + Signal { + name: "checkedChanged" + Parameter { name: "checked"; type: "bool" } + } + Signal { + name: "checkableChanged" + Parameter { name: "checkable"; type: "bool" } + } + Signal { + name: "shortcutChanged" + Parameter { name: "shortcut"; type: "QKeySequence" } + } + Signal { + name: "toggled" + Parameter { name: "source"; type: "QObject"; isPointer: true } + } + Signal { name: "toggled" } + Signal { + name: "triggered" + Parameter { name: "source"; type: "QObject"; isPointer: true } + } + Signal { name: "triggered" } + Method { + name: "toggle" + Parameter { name: "source"; type: "QObject"; isPointer: true } + } + Method { name: "toggle" } + Method { + name: "trigger" + Parameter { name: "source"; type: "QObject"; isPointer: true } + } + Method { name: "trigger" } + } + Component { + name: "QQuickActionGroup" + defaultProperty: "actions" + prototype: "QObject" + exports: ["QtQuick.Templates/ActionGroup 2.3"] + exportMetaObjectRevisions: [0] + attachedType: "QQuickActionGroupAttached" + Property { name: "checkedAction"; type: "QQuickAction"; isPointer: true } + Property { name: "actions"; type: "QQuickAction"; isList: true; isReadonly: true } + Property { name: "exclusive"; type: "bool" } + Property { name: "enabled"; type: "bool" } + Signal { + name: "triggered" + Parameter { name: "action"; type: "QQuickAction"; isPointer: true } + } + Method { + name: "addAction" + Parameter { name: "action"; type: "QQuickAction"; isPointer: true } + } + Method { + name: "removeAction" + Parameter { name: "action"; type: "QQuickAction"; isPointer: true } + } + } + Component { + name: "QQuickActionGroupAttached" + prototype: "QObject" + Property { name: "group"; type: "QQuickActionGroup"; isPointer: true } + } + Component { name: "QQuickApplicationWindow" defaultProperty: "contentData" prototype: "QQuickWindowQmlImpl" - exports: ["QtQuick.Templates/ApplicationWindow 2.0"] - exportMetaObjectRevisions: [0] + exports: [ + "QtQuick.Templates/ApplicationWindow 2.0", + "QtQuick.Templates/ApplicationWindow 2.3" + ] + exportMetaObjectRevisions: [0, 3] attachedType: "QQuickApplicationWindowAttached" Property { name: "background"; type: "QQuickItem"; isPointer: true } Property { name: "contentItem"; type: "QQuickItem"; isReadonly: true; isPointer: true } @@ -569,6 +776,10 @@ Module { Property { name: "overlay"; type: "QQuickOverlay"; isReadonly: true; isPointer: true } Property { name: "font"; type: "QFont" } Property { name: "locale"; type: "QLocale" } + Property { name: "palette"; revision: 3; type: "QPalette" } + Property { name: "menuBar"; revision: 3; type: "QQuickItem"; isPointer: true } + Signal { name: "paletteChanged"; revision: 3 } + Signal { name: "menuBarChanged"; revision: 3 } } Component { name: "QQuickApplicationWindowAttached" @@ -579,6 +790,7 @@ Module { Property { name: "header"; type: "QQuickItem"; isReadonly: true; isPointer: true } Property { name: "footer"; type: "QQuickItem"; isReadonly: true; isPointer: true } Property { name: "overlay"; type: "QQuickOverlay"; isReadonly: true; isPointer: true } + Property { name: "menuBar"; type: "QQuickItem"; isReadonly: true; isPointer: true } } Component { name: "QQuickBusyIndicator" @@ -603,17 +815,20 @@ Module { prototype: "QObject" exports: [ "QtQuick.Templates/ButtonGroup 2.0", - "QtQuick.Templates/ButtonGroup 2.1" + "QtQuick.Templates/ButtonGroup 2.1", + "QtQuick.Templates/ButtonGroup 2.3" ] - exportMetaObjectRevisions: [0, 1] + exportMetaObjectRevisions: [0, 1, 3] attachedType: "QQuickButtonGroupAttached" Property { name: "checkedButton"; type: "QQuickAbstractButton"; isPointer: true } Property { name: "buttons"; type: "QQuickAbstractButton"; isList: true; isReadonly: true } + Property { name: "exclusive"; revision: 3; type: "bool" } Signal { name: "clicked" revision: 1 Parameter { name: "button"; type: "QQuickAbstractButton"; isPointer: true } } + Signal { name: "exclusiveChanged"; revision: 3 } Method { name: "addButton" Parameter { name: "button"; type: "QQuickAbstractButton"; isPointer: true } @@ -659,31 +874,23 @@ Module { Property { name: "count"; type: "int"; isReadonly: true } Property { name: "model"; type: "QVariant" } Property { name: "delegateModel"; type: "QQmlInstanceModel"; isReadonly: true; isPointer: true } - Property { name: "editable"; revision: 2; type: "bool" } - Property { name: "flat"; revision: 1; type: "bool" } - Property { name: "down"; revision: 2; type: "bool" } Property { name: "pressed"; type: "bool" } Property { name: "highlightedIndex"; type: "int"; isReadonly: true } Property { name: "currentIndex"; type: "int" } Property { name: "currentText"; type: "string"; isReadonly: true } Property { name: "displayText"; type: "string" } - Property { name: "editText"; revision: 2; type: "string" } Property { name: "textRole"; type: "string" } Property { name: "delegate"; type: "QQmlComponent"; isPointer: true } Property { name: "indicator"; type: "QQuickItem"; isPointer: true } Property { name: "popup"; type: "QQuickPopup"; isPointer: true } + Property { name: "flat"; revision: 1; type: "bool" } + Property { name: "down"; revision: 2; type: "bool" } + Property { name: "editable"; revision: 2; type: "bool" } + Property { name: "editText"; revision: 2; type: "string" } Property { name: "validator"; revision: 2; type: "QValidator"; isPointer: true } Property { name: "inputMethodHints"; revision: 2; type: "Qt::InputMethodHints" } Property { name: "inputMethodComposing"; revision: 2; type: "bool"; isReadonly: true } Property { name: "acceptableInput"; revision: 2; type: "bool"; isReadonly: true } - Signal { name: "editableChanged"; revision: 2 } - Signal { name: "flatChanged"; revision: 1 } - Signal { name: "downChanged"; revision: 2 } - Signal { name: "editTextChanged"; revision: 2 } - Signal { name: "validatorChanged"; revision: 2 } - Signal { name: "inputMethodHintsChanged"; revision: 2 } - Signal { name: "inputMethodComposingChanged"; revision: 2 } - Signal { name: "acceptableInputChanged"; revision: 2 } Signal { name: "activated" Parameter { name: "index"; type: "int" } @@ -692,7 +899,15 @@ Module { name: "highlighted" Parameter { name: "index"; type: "int" } } + Signal { name: "flatChanged"; revision: 1 } Signal { name: "accepted"; revision: 2 } + Signal { name: "downChanged"; revision: 2 } + Signal { name: "editableChanged"; revision: 2 } + Signal { name: "editTextChanged"; revision: 2 } + Signal { name: "validatorChanged"; revision: 2 } + Signal { name: "inputMethodHintsChanged"; revision: 2 } + Signal { name: "inputMethodComposingChanged"; revision: 2 } + Signal { name: "acceptableInputChanged"; revision: 2 } Method { name: "incrementCurrentIndex" } Method { name: "decrementCurrentIndex" } Method { name: "selectAll"; revision: 2 } @@ -719,9 +934,10 @@ Module { prototype: "QQuickControl" exports: [ "QtQuick.Templates/Container 2.0", - "QtQuick.Templates/Container 2.1" + "QtQuick.Templates/Container 2.1", + "QtQuick.Templates/Container 2.3" ] - exportMetaObjectRevisions: [0, 1] + exportMetaObjectRevisions: [0, 1, 3] Property { name: "count"; type: "int"; isReadonly: true } Property { name: "contentModel"; type: "QVariant"; isReadonly: true } Property { name: "contentData"; type: "QObject"; isList: true; isReadonly: true } @@ -755,6 +971,12 @@ Module { } Method { name: "removeItem" + Parameter { name: "item"; type: "QVariant" } + } + Method { + name: "takeItem" + revision: 3 + type: "QQuickItem*" Parameter { name: "index"; type: "int" } } } @@ -762,8 +984,11 @@ Module { name: "QQuickControl" defaultProperty: "data" prototype: "QQuickItem" - exports: ["QtQuick.Templates/Control 2.0"] - exportMetaObjectRevisions: [0] + exports: [ + "QtQuick.Templates/Control 2.0", + "QtQuick.Templates/Control 2.3" + ] + exportMetaObjectRevisions: [0, 3] Property { name: "font"; type: "QFont" } Property { name: "availableWidth"; type: "double"; isReadonly: true } Property { name: "availableHeight"; type: "double"; isReadonly: true } @@ -783,6 +1008,8 @@ Module { Property { name: "wheelEnabled"; type: "bool" } Property { name: "background"; type: "QQuickItem"; isPointer: true } Property { name: "contentItem"; type: "QQuickItem"; isPointer: true } + Property { name: "palette"; revision: 3; type: "QPalette" } + Signal { name: "paletteChanged"; revision: 3 } } Component { name: "QQuickDelayButton" @@ -818,10 +1045,10 @@ Module { Property { name: "snapMode"; type: "SnapMode" } Property { name: "wrap"; type: "bool" } Property { name: "pressed"; type: "bool"; isReadonly: true } - Property { name: "live"; revision: 2; type: "bool" } Property { name: "handle"; type: "QQuickItem"; isPointer: true } - Signal { name: "liveChanged"; revision: 2 } + Property { name: "live"; revision: 2; type: "bool" } Signal { name: "moved"; revision: 2 } + Signal { name: "liveChanged"; revision: 2 } Method { name: "increase" } Method { name: "decrease" } } @@ -829,23 +1056,52 @@ Module { name: "QQuickDialog" defaultProperty: "contentData" prototype: "QQuickPopup" - exports: ["QtQuick.Templates/Dialog 2.1"] - exportMetaObjectRevisions: [0] + exports: [ + "QtQuick.Templates/Dialog 2.1", + "QtQuick.Templates/Dialog 2.3" + ] + exportMetaObjectRevisions: [0, 3] + Enum { + name: "StandardCode" + values: { + "Rejected": 0, + "Accepted": 1 + } + } Property { name: "title"; type: "string" } Property { name: "header"; type: "QQuickItem"; isPointer: true } Property { name: "footer"; type: "QQuickItem"; isPointer: true } Property { name: "standardButtons"; type: "QPlatformDialogHelper::StandardButtons" } + Property { name: "result"; revision: 3; type: "int" } Signal { name: "accepted" } Signal { name: "rejected" } + Signal { name: "applied"; revision: 3 } + Signal { name: "reset"; revision: 3 } + Signal { name: "discarded"; revision: 3 } + Signal { name: "helpRequested"; revision: 3 } + Signal { name: "resultChanged"; revision: 3 } Method { name: "accept" } Method { name: "reject" } + Method { + name: "done" + Parameter { name: "result"; type: "int" } + } + Method { + name: "standardButton" + revision: 3 + type: "QQuickAbstractButton*" + Parameter { name: "button"; type: "QPlatformDialogHelper::StandardButton" } + } } Component { name: "QQuickDialogButtonBox" defaultProperty: "contentData" prototype: "QQuickContainer" - exports: ["QtQuick.Templates/DialogButtonBox 2.1"] - exportMetaObjectRevisions: [0] + exports: [ + "QtQuick.Templates/DialogButtonBox 2.1", + "QtQuick.Templates/DialogButtonBox 2.3" + ] + exportMetaObjectRevisions: [0, 3] attachedType: "QQuickDialogButtonBoxAttached" Enum { name: "Position" @@ -861,6 +1117,9 @@ Module { Signal { name: "accepted" } Signal { name: "rejected" } Signal { name: "helpRequested" } + Signal { name: "applied"; revision: 3 } + Signal { name: "reset"; revision: 3 } + Signal { name: "discarded"; revision: 3 } Signal { name: "clicked" Parameter { name: "button"; type: "QQuickAbstractButton"; isPointer: true } @@ -924,16 +1183,36 @@ Module { exportMetaObjectRevisions: [0] Property { name: "font"; type: "QFont" } Property { name: "background"; type: "QQuickItem"; isPointer: true } + Property { name: "palette"; revision: 3; type: "QPalette" } + Signal { name: "paletteChanged"; revision: 3 } } Component { name: "QQuickMenu" defaultProperty: "contentData" prototype: "QQuickPopup" - exports: ["QtQuick.Templates/Menu 2.0"] - exportMetaObjectRevisions: [0] + exports: ["QtQuick.Templates/Menu 2.0", "QtQuick.Templates/Menu 2.3"] + exportMetaObjectRevisions: [0, 3] + Property { name: "count"; revision: 3; type: "int"; isReadonly: true } Property { name: "contentModel"; type: "QVariant"; isReadonly: true } Property { name: "contentData"; type: "QObject"; isList: true; isReadonly: true } Property { name: "title"; type: "string" } + Property { name: "cascade"; revision: 3; type: "bool" } + Property { name: "overlap"; revision: 3; type: "double" } + Property { name: "delegate"; revision: 3; type: "QQmlComponent"; isPointer: true } + Property { name: "currentIndex"; revision: 3; type: "int" } + Signal { name: "countChanged"; revision: 3 } + Signal { + name: "titleChanged" + Parameter { name: "title"; type: "string" } + } + Signal { + name: "cascadeChanged" + revision: 3 + Parameter { name: "cascade"; type: "bool" } + } + Signal { name: "overlapChanged"; revision: 3 } + Signal { name: "delegateChanged"; revision: 3 } + Signal { name: "currentIndexChanged"; revision: 3 } Method { name: "itemAt" type: "QQuickItem*" @@ -955,17 +1234,140 @@ Module { } Method { name: "removeItem" + Parameter { name: "item"; type: "QVariant" } + } + Method { + name: "takeItem" + revision: 3 + type: "QQuickItem*" + Parameter { name: "index"; type: "int" } + } + Method { + name: "menuAt" + revision: 3 + type: "QQuickMenu*" + Parameter { name: "index"; type: "int" } + } + Method { + name: "addMenu" + revision: 3 + Parameter { name: "menu"; type: "QQuickMenu"; isPointer: true } + } + Method { + name: "insertMenu" + revision: 3 Parameter { name: "index"; type: "int" } + Parameter { name: "menu"; type: "QQuickMenu"; isPointer: true } + } + Method { + name: "removeMenu" + revision: 3 + Parameter { name: "menu"; type: "QQuickMenu"; isPointer: true } + } + Method { + name: "takeMenu" + revision: 3 + type: "QQuickMenu*" + Parameter { name: "index"; type: "int" } + } + Method { + name: "actionAt" + revision: 3 + type: "QQuickAction*" + Parameter { name: "index"; type: "int" } + } + Method { + name: "addAction" + revision: 3 + Parameter { name: "action"; type: "QQuickAction"; isPointer: true } } + Method { + name: "insertAction" + revision: 3 + Parameter { name: "index"; type: "int" } + Parameter { name: "action"; type: "QQuickAction"; isPointer: true } + } + Method { + name: "removeAction" + revision: 3 + Parameter { name: "action"; type: "QQuickAction"; isPointer: true } + } + Method { + name: "takeAction" + revision: 3 + type: "QQuickAction*" + Parameter { name: "index"; type: "int" } + } + Method { + name: "popup" + revision: 3 + Parameter { name: "args"; type: "QQmlV4Function"; isPointer: true } + } + Method { name: "dismiss"; revision: 3 } } Component { - name: "QQuickMenuItem" + name: "QQuickMenuBar" + defaultProperty: "contentData" + prototype: "QQuickContainer" + exports: ["QtQuick.Templates/MenuBar 2.3"] + exportMetaObjectRevisions: [0] + Property { name: "delegate"; type: "QQmlComponent"; isPointer: true } + Property { name: "contentWidth"; type: "double" } + Property { name: "contentHeight"; type: "double" } + Property { name: "menus"; type: "QQuickMenu"; isList: true; isReadonly: true } + Property { name: "contentData"; type: "QObject"; isList: true; isReadonly: true } + Method { + name: "menuAt" + type: "QQuickMenu*" + Parameter { name: "index"; type: "int" } + } + Method { + name: "addMenu" + Parameter { name: "menu"; type: "QQuickMenu"; isPointer: true } + } + Method { + name: "insertMenu" + Parameter { name: "index"; type: "int" } + Parameter { name: "menu"; type: "QQuickMenu"; isPointer: true } + } + Method { + name: "removeMenu" + Parameter { name: "menu"; type: "QQuickMenu"; isPointer: true } + } + Method { + name: "takeMenu" + type: "QQuickMenu*" + Parameter { name: "index"; type: "int" } + } + } + Component { + name: "QQuickMenuBarItem" defaultProperty: "data" prototype: "QQuickAbstractButton" - exports: ["QtQuick.Templates/MenuItem 2.0"] + exports: ["QtQuick.Templates/MenuBarItem 2.3"] exportMetaObjectRevisions: [0] + Property { name: "menuBar"; type: "QQuickMenuBar"; isReadonly: true; isPointer: true } + Property { name: "menu"; type: "QQuickMenu"; isPointer: true } + Property { name: "highlighted"; type: "bool" } + Signal { name: "triggered" } + } + Component { + name: "QQuickMenuItem" + defaultProperty: "data" + prototype: "QQuickAbstractButton" + exports: [ + "QtQuick.Templates/MenuItem 2.0", + "QtQuick.Templates/MenuItem 2.3" + ] + exportMetaObjectRevisions: [0, 3] Property { name: "highlighted"; type: "bool" } + Property { name: "arrow"; revision: 3; type: "QQuickItem"; isPointer: true } + Property { name: "menu"; revision: 3; type: "QQuickMenu"; isReadonly: true; isPointer: true } + Property { name: "subMenu"; revision: 3; type: "QQuickMenu"; isReadonly: true; isPointer: true } Signal { name: "triggered" } + Signal { name: "arrowChanged"; revision: 3 } + Signal { name: "menuChanged"; revision: 3 } + Signal { name: "subMenuChanged"; revision: 3 } } Component { name: "QQuickMenuSeparator" @@ -978,6 +1380,19 @@ Module { name: "QQuickOverlay" defaultProperty: "data" prototype: "QQuickItem" + exports: ["QtQuick.Templates/Overlay 2.3"] + isCreatable: false + exportMetaObjectRevisions: [0] + attachedType: "QQuickOverlayAttached" + Property { name: "modal"; type: "QQmlComponent"; isPointer: true } + Property { name: "modeless"; type: "QQmlComponent"; isPointer: true } + Signal { name: "pressed" } + Signal { name: "released" } + } + Component { + name: "QQuickOverlayAttached" + prototype: "QObject" + Property { name: "overlay"; type: "QQuickOverlay"; isReadonly: true; isPointer: true } Property { name: "modal"; type: "QQmlComponent"; isPointer: true } Property { name: "modeless"; type: "QQmlComponent"; isPointer: true } Signal { name: "pressed" } @@ -992,10 +1407,10 @@ Module { Property { name: "title"; type: "string" } Property { name: "header"; type: "QQuickItem"; isPointer: true } Property { name: "footer"; type: "QQuickItem"; isPointer: true } - Property { name: "contentWidth"; revision: 1; type: "double" } - Property { name: "contentHeight"; revision: 1; type: "double" } Property { name: "contentData"; type: "QObject"; isList: true; isReadonly: true } Property { name: "contentChildren"; type: "QQuickItem"; isList: true; isReadonly: true } + Property { name: "contentWidth"; revision: 1; type: "double" } + Property { name: "contentHeight"; revision: 1; type: "double" } Signal { name: "contentWidthChanged"; revision: 1 } Signal { name: "contentHeightChanged"; revision: 1 } } @@ -1027,9 +1442,10 @@ Module { prototype: "QObject" exports: [ "QtQuick.Templates/Popup 2.0", - "QtQuick.Templates/Popup 2.1" + "QtQuick.Templates/Popup 2.1", + "QtQuick.Templates/Popup 2.3" ] - exportMetaObjectRevisions: [0, 1] + exportMetaObjectRevisions: [0, 1, 3] Enum { name: "ClosePolicy" values: { @@ -1066,7 +1482,6 @@ Module { Property { name: "contentHeight"; type: "double" } Property { name: "availableWidth"; type: "double"; isReadonly: true } Property { name: "availableHeight"; type: "double"; isReadonly: true } - Property { name: "spacing"; revision: 1; type: "double" } Property { name: "margins"; type: "double" } Property { name: "topMargin"; type: "double" } Property { name: "leftMargin"; type: "double" } @@ -1078,7 +1493,9 @@ Module { Property { name: "rightPadding"; type: "double" } Property { name: "bottomPadding"; type: "double" } Property { name: "locale"; type: "QLocale" } + Property { name: "mirrored"; revision: 3; type: "bool"; isReadonly: true } Property { name: "font"; type: "QFont" } + Property { name: "palette"; revision: 3; type: "QPalette" } Property { name: "parent"; type: "QQuickItem"; isPointer: true } Property { name: "background"; type: "QQuickItem"; isPointer: true } Property { name: "contentItem"; type: "QQuickItem"; isPointer: true } @@ -1090,21 +1507,28 @@ Module { Property { name: "modal"; type: "bool" } Property { name: "dim"; type: "bool" } Property { name: "visible"; type: "bool" } + Property { name: "enabled"; revision: 3; type: "bool" } + Property { name: "opened"; revision: 3; type: "bool"; isReadonly: true } Property { name: "opacity"; type: "double" } Property { name: "scale"; type: "double" } Property { name: "closePolicy"; type: "ClosePolicy" } Property { name: "transformOrigin"; type: "TransformOrigin" } Property { name: "enter"; type: "QQuickTransition"; isPointer: true } Property { name: "exit"; type: "QQuickTransition"; isPointer: true } - Signal { name: "spacingChanged"; revision: 1 } + Property { name: "spacing"; revision: 1; type: "double" } + Signal { name: "opened" } + Signal { name: "closed" } + Signal { name: "aboutToShow" } + Signal { name: "aboutToHide" } + Signal { name: "mirroredChanged"; revision: 3 } + Signal { name: "paletteChanged"; revision: 3 } + Signal { name: "enabledChanged"; revision: 3 } + Signal { name: "openedChanged"; revision: 3 } Signal { name: "windowChanged" Parameter { name: "window"; type: "QQuickWindow"; isPointer: true } } - Signal { name: "aboutToShow" } - Signal { name: "aboutToHide" } - Signal { name: "opened" } - Signal { name: "closed" } + Signal { name: "spacingChanged"; revision: 1 } Method { name: "open" } Method { name: "close" } Method { @@ -1147,9 +1571,10 @@ Module { exports: [ "QtQuick.Templates/RangeSlider 2.0", "QtQuick.Templates/RangeSlider 2.1", - "QtQuick.Templates/RangeSlider 2.2" + "QtQuick.Templates/RangeSlider 2.2", + "QtQuick.Templates/RangeSlider 2.3" ] - exportMetaObjectRevisions: [0, 1, 2] + exportMetaObjectRevisions: [0, 1, 2, 3] Enum { name: "SnapMode" values: { @@ -1166,6 +1591,8 @@ Module { Property { name: "snapMode"; type: "SnapMode" } Property { name: "orientation"; type: "Qt::Orientation" } Property { name: "live"; revision: 2; type: "bool" } + Property { name: "horizontal"; revision: 3; type: "bool"; isReadonly: true } + Property { name: "vertical"; revision: 3; type: "bool"; isReadonly: true } Signal { name: "liveChanged"; revision: 2 } Method { name: "setValues" @@ -1200,9 +1627,10 @@ Module { prototype: "QQuickControl" exports: [ "QtQuick.Templates/ScrollBar 2.0", - "QtQuick.Templates/ScrollBar 2.2" + "QtQuick.Templates/ScrollBar 2.2", + "QtQuick.Templates/ScrollBar 2.3" ] - exportMetaObjectRevisions: [0, 2] + exportMetaObjectRevisions: [0, 2, 3] attachedType: "QQuickScrollBarAttached" Enum { name: "SnapMode" @@ -1229,6 +1657,8 @@ Module { Property { name: "snapMode"; revision: 2; type: "SnapMode" } Property { name: "interactive"; revision: 2; type: "bool" } Property { name: "policy"; revision: 2; type: "Policy" } + Property { name: "horizontal"; revision: 3; type: "bool"; isReadonly: true } + Property { name: "vertical"; revision: 3; type: "bool"; isReadonly: true } Signal { name: "snapModeChanged"; revision: 2 } Signal { name: "interactiveChanged"; revision: 2 } Signal { name: "policyChanged"; revision: 2 } @@ -1253,13 +1683,18 @@ Module { name: "QQuickScrollIndicator" defaultProperty: "data" prototype: "QQuickControl" - exports: ["QtQuick.Templates/ScrollIndicator 2.0"] - exportMetaObjectRevisions: [0] + exports: [ + "QtQuick.Templates/ScrollIndicator 2.0", + "QtQuick.Templates/ScrollIndicator 2.3" + ] + exportMetaObjectRevisions: [0, 3] attachedType: "QQuickScrollIndicatorAttached" Property { name: "size"; type: "double" } Property { name: "position"; type: "double" } Property { name: "active"; type: "bool" } Property { name: "orientation"; type: "Qt::Orientation" } + Property { name: "horizontal"; revision: 3; type: "bool"; isReadonly: true } + Property { name: "vertical"; revision: 3; type: "bool"; isReadonly: true } Method { name: "setSize" Parameter { name: "size"; type: "double" } @@ -1293,9 +1728,10 @@ Module { exports: [ "QtQuick.Templates/Slider 2.0", "QtQuick.Templates/Slider 2.1", - "QtQuick.Templates/Slider 2.2" + "QtQuick.Templates/Slider 2.2", + "QtQuick.Templates/Slider 2.3" ] - exportMetaObjectRevisions: [0, 1, 2] + exportMetaObjectRevisions: [0, 1, 2, 3] Enum { name: "SnapMode" values: { @@ -1311,12 +1747,14 @@ Module { Property { name: "visualPosition"; type: "double"; isReadonly: true } Property { name: "stepSize"; type: "double" } Property { name: "snapMode"; type: "SnapMode" } - Property { name: "live"; revision: 2; type: "bool" } Property { name: "pressed"; type: "bool" } + Property { name: "horizontal"; revision: 3; type: "bool"; isReadonly: true } + Property { name: "vertical"; revision: 3; type: "bool"; isReadonly: true } Property { name: "orientation"; type: "Qt::Orientation" } Property { name: "handle"; type: "QQuickItem"; isPointer: true } - Signal { name: "liveChanged"; revision: 2 } + Property { name: "live"; revision: 2; type: "bool" } Signal { name: "moved"; revision: 2 } + Signal { name: "liveChanged"; revision: 2 } Method { name: "increase" } Method { name: "decrease" } Method { @@ -1333,9 +1771,10 @@ Module { exports: [ "QtQuick.Templates/SpinBox 2.0", "QtQuick.Templates/SpinBox 2.1", - "QtQuick.Templates/SpinBox 2.2" + "QtQuick.Templates/SpinBox 2.2", + "QtQuick.Templates/SpinBox 2.3" ] - exportMetaObjectRevisions: [0, 1, 2] + exportMetaObjectRevisions: [0, 1, 2, 3] Property { name: "from"; type: "int" } Property { name: "to"; type: "int" } Property { name: "value"; type: "int" } @@ -1348,9 +1787,11 @@ Module { Property { name: "down"; type: "QQuickSpinButton"; isReadonly: true; isPointer: true } Property { name: "inputMethodHints"; revision: 2; type: "Qt::InputMethodHints" } Property { name: "inputMethodComposing"; revision: 2; type: "bool"; isReadonly: true } + Property { name: "wrap"; revision: 3; type: "bool" } Signal { name: "valueModified"; revision: 2 } Signal { name: "inputMethodHintsChanged"; revision: 2 } Signal { name: "inputMethodComposingChanged"; revision: 2 } + Signal { name: "wrapChanged"; revision: 3 } Method { name: "increase" } Method { name: "decrease" } } @@ -1358,8 +1799,8 @@ Module { name: "QQuickSpinButton" prototype: "QObject" Property { name: "pressed"; type: "bool" } - Property { name: "hovered"; revision: 1; type: "bool" } Property { name: "indicator"; type: "QQuickItem"; isPointer: true } + Property { name: "hovered"; revision: 1; type: "bool" } Signal { name: "hoveredChanged"; revision: 1 } } Component { @@ -1408,6 +1849,12 @@ Module { Property { name: "pushExit"; type: "QQuickTransition"; isPointer: true } Property { name: "replaceEnter"; type: "QQuickTransition"; isPointer: true } Property { name: "replaceExit"; type: "QQuickTransition"; isPointer: true } + Property { name: "empty"; revision: 3; type: "bool"; isReadonly: true } + Signal { name: "emptyChanged"; revision: 3 } + Method { + name: "clear" + Parameter { name: "operation"; type: "Operation" } + } Method { name: "clear" } Method { name: "get" @@ -1462,23 +1909,23 @@ Module { prototype: "QObject" Property { name: "position"; type: "double" } Property { name: "complete"; type: "bool"; isReadonly: true } - Property { name: "enabled"; type: "bool" } Property { name: "left"; type: "QQmlComponent"; isPointer: true } Property { name: "behind"; type: "QQmlComponent"; isPointer: true } Property { name: "right"; type: "QQmlComponent"; isPointer: true } Property { name: "leftItem"; type: "QQuickItem"; isReadonly: true; isPointer: true } Property { name: "behindItem"; type: "QQuickItem"; isReadonly: true; isPointer: true } Property { name: "rightItem"; type: "QQuickItem"; isReadonly: true; isPointer: true } + Property { name: "enabled"; type: "bool" } Property { name: "transition"; type: "QQuickTransition"; isPointer: true } Signal { name: "completed" } Signal { name: "opened" } Signal { name: "closed" } + Method { name: "close"; revision: 1 } Method { name: "open" revision: 2 Parameter { name: "side"; type: "QQuickSwipeDelegate::Side" } } - Method { name: "close"; revision: 1 } } Component { name: "QQuickSwipeDelegate" @@ -1519,6 +1966,8 @@ Module { attachedType: "QQuickSwipeViewAttached" Property { name: "interactive"; revision: 1; type: "bool" } Property { name: "orientation"; revision: 2; type: "Qt::Orientation" } + Property { name: "horizontal"; revision: 3; type: "bool"; isReadonly: true } + Property { name: "vertical"; revision: 3; type: "bool"; isReadonly: true } Signal { name: "interactiveChanged"; revision: 1 } Signal { name: "orientationChanged"; revision: 2 } } @@ -1527,9 +1976,9 @@ Module { prototype: "QObject" Property { name: "index"; type: "int"; isReadonly: true } Property { name: "isCurrentItem"; type: "bool"; isReadonly: true } + Property { name: "view"; type: "QQuickSwipeView"; isReadonly: true; isPointer: true } Property { name: "isNextItem"; revision: 1; type: "bool"; isReadonly: true } Property { name: "isPreviousItem"; revision: 1; type: "bool"; isReadonly: true } - Property { name: "view"; type: "QQuickSwipeView"; isReadonly: true; isPointer: true } } Component { name: "QQuickSwitch" @@ -1558,6 +2007,7 @@ Module { "QtQuick.Templates/TabBar 2.2" ] exportMetaObjectRevisions: [0, 2] + attachedType: "QQuickTabBarAttached" Enum { name: "Position" values: { @@ -1572,6 +2022,13 @@ Module { Signal { name: "contentHeightChanged"; revision: 2 } } Component { + name: "QQuickTabBarAttached" + prototype: "QObject" + Property { name: "index"; type: "int"; isReadonly: true } + Property { name: "tabBar"; type: "QQuickTabBar"; isReadonly: true; isPointer: true } + Property { name: "position"; type: "QQuickTabBar::Position"; isReadonly: true } + } + Component { name: "QQuickTabButton" defaultProperty: "data" prototype: "QQuickAbstractButton" @@ -1596,10 +2053,9 @@ Module { Property { name: "focusReason"; type: "Qt::FocusReason" } Property { name: "hovered"; revision: 1; type: "bool"; isReadonly: true } Property { name: "hoverEnabled"; revision: 1; type: "bool" } + Property { name: "palette"; revision: 3; type: "QPalette" } Signal { name: "implicitWidthChanged3" } Signal { name: "implicitHeightChanged3" } - Signal { name: "hoveredChanged"; revision: 1 } - Signal { name: "hoverEnabledChanged"; revision: 1 } Signal { name: "pressAndHold" Parameter { name: "event"; type: "QQuickMouseEvent"; isPointer: true } @@ -1614,6 +2070,9 @@ Module { revision: 1 Parameter { name: "event"; type: "QQuickMouseEvent"; isPointer: true } } + Signal { name: "hoveredChanged"; revision: 1 } + Signal { name: "hoverEnabledChanged"; revision: 1 } + Signal { name: "paletteChanged"; revision: 3 } } Component { name: "QQuickTextAreaAttached" @@ -1637,10 +2096,9 @@ Module { Property { name: "focusReason"; type: "Qt::FocusReason" } Property { name: "hovered"; revision: 1; type: "bool"; isReadonly: true } Property { name: "hoverEnabled"; revision: 1; type: "bool" } + Property { name: "palette"; revision: 3; type: "QPalette" } Signal { name: "implicitWidthChanged3" } Signal { name: "implicitHeightChanged3" } - Signal { name: "hoveredChanged"; revision: 1 } - Signal { name: "hoverEnabledChanged"; revision: 1 } Signal { name: "pressAndHold" Parameter { name: "event"; type: "QQuickMouseEvent"; isPointer: true } @@ -1655,6 +2113,9 @@ Module { revision: 1 Parameter { name: "event"; type: "QQuickMouseEvent"; isPointer: true } } + Signal { name: "hoveredChanged"; revision: 1 } + Signal { name: "hoverEnabledChanged"; revision: 1 } + Signal { name: "paletteChanged"; revision: 3 } } Component { name: "QQuickToolBar" diff --git a/src/imports/controls/qmldir b/src/imports/controls/qmldir index 32f0d20d..9930b8d8 100644 --- a/src/imports/controls/qmldir +++ b/src/imports/controls/qmldir @@ -1,5 +1,5 @@ module QtQuick.Controls plugin qtquickcontrols2plugin classname QtQuickControls2Plugin -depends QtQuick.Templates 2.2 +depends QtQuick.Templates 2.3 designersupported diff --git a/src/imports/controls/qquickdefaultbusyindicator.cpp b/src/imports/controls/qquickdefaultbusyindicator.cpp index 526eb29f..c02d8128 100644 --- a/src/imports/controls/qquickdefaultbusyindicator.cpp +++ b/src/imports/controls/qquickdefaultbusyindicator.cpp @@ -45,7 +45,6 @@ QT_BEGIN_NAMESPACE static const int CircleCount = 10; static const int TotalDuration = 100 * CircleCount * 2; static const QRgb TransparentColor = 0x00000000; -static const QRgb FillColor = 0xFF353637; static QPointF moveCircle(const QPointF &pos, qreal rotation, qreal distance) { @@ -59,6 +58,10 @@ public: void updateCurrentTime(int time) override; void sync(QQuickItem *item) override; + +private: + QColor m_pen; + QColor m_fill; }; QQuickDefaultBusyIndicatorNode::QQuickDefaultBusyIndicatorNode(QQuickDefaultBusyIndicator *item) @@ -92,8 +95,9 @@ void QQuickDefaultBusyIndicatorNode::updateCurrentTime(int time) Q_ASSERT(rectNode->type() == QSGNode::GeometryNodeType); const bool fill = (firstPhaseProgress > qreal(i) / CircleCount) || (secondPhaseProgress > 0 && secondPhaseProgress < qreal(i) / CircleCount); - rectNode->setColor(QColor::fromRgba(fill ? FillColor : TransparentColor)); - rectNode->setPenWidth(fill ? 0 : 1); + rectNode->setColor(fill ? m_fill : QColor::fromRgba(TransparentColor)); + rectNode->setPenColor(m_pen); + rectNode->setPenWidth(1); rectNode->update(); transformNode = static_cast<QSGTransformNode*>(transformNode->nextSibling()); @@ -109,6 +113,9 @@ void QQuickDefaultBusyIndicatorNode::sync(QQuickItem *item) const qreal dy = (h - sz) / 2; const int circleRadius = sz / 12; + m_pen = static_cast<QQuickDefaultBusyIndicator *>(item)->pen(); + m_fill = static_cast<QQuickDefaultBusyIndicator *>(item)->fill(); + QSGTransformNode *transformNode = static_cast<QSGTransformNode *>(firstChild()); for (int i = 0; i < CircleCount; ++i) { Q_ASSERT(transformNode->type() == QSGNode::TransformNodeType); @@ -136,6 +143,34 @@ QQuickDefaultBusyIndicator::QQuickDefaultBusyIndicator(QQuickItem *parent) : setFlag(ItemHasContents); } +QColor QQuickDefaultBusyIndicator::pen() const +{ + return m_pen; +} + +void QQuickDefaultBusyIndicator::setPen(const QColor &pen) +{ + if (pen == m_pen) + return; + + m_pen = pen; + update(); +} + +QColor QQuickDefaultBusyIndicator::fill() const +{ + return m_fill; +} + +void QQuickDefaultBusyIndicator::setFill(const QColor &fill) +{ + if (fill == m_fill) + return; + + m_fill = fill; + update(); +} + bool QQuickDefaultBusyIndicator::isRunning() const { return isVisible(); diff --git a/src/imports/controls/qquickdefaultbusyindicator_p.h b/src/imports/controls/qquickdefaultbusyindicator_p.h index 21a706e7..1beeb0c9 100644 --- a/src/imports/controls/qquickdefaultbusyindicator_p.h +++ b/src/imports/controls/qquickdefaultbusyindicator_p.h @@ -49,17 +49,26 @@ // #include <QtQuick/qquickitem.h> +#include <QtGui/qcolor.h> QT_BEGIN_NAMESPACE class QQuickDefaultBusyIndicator : public QQuickItem { Q_OBJECT + Q_PROPERTY(QColor pen READ pen WRITE setPen FINAL) + Q_PROPERTY(QColor fill READ fill WRITE setFill FINAL) Q_PROPERTY(bool running READ isRunning WRITE setRunning) public: explicit QQuickDefaultBusyIndicator(QQuickItem *parent = nullptr); + QColor pen() const; + void setPen(const QColor &pen); + + QColor fill() const; + void setFill(const QColor &fill); + bool isRunning() const; void setRunning(bool running); @@ -71,6 +80,8 @@ protected: private: int m_elapsed; + QColor m_pen; + QColor m_fill; }; QT_END_NAMESPACE diff --git a/src/imports/controls/qquickdialring.cpp b/src/imports/controls/qquickdefaultdial.cpp index 2c6e7921..845e634d 100644 --- a/src/imports/controls/qquickdialring.cpp +++ b/src/imports/controls/qquickdefaultdial.cpp @@ -34,7 +34,7 @@ ** ****************************************************************************/ -#include "qquickdialring_p.h" +#include "qquickdefaultdial_p.h" #include <QtCore/qmath.h> #include <QtGui/qpainter.h> @@ -42,44 +42,42 @@ QT_BEGIN_NAMESPACE -QQuickDialRing::QQuickDialRing(QQuickItem *parent) : +QQuickDefaultDial::QQuickDefaultDial(QQuickItem *parent) : QQuickPaintedItem(parent), m_progress(0), m_color(Qt::black) { } -qreal QQuickDialRing::progress() const +qreal QQuickDefaultDial::progress() const { return m_progress; } -void QQuickDialRing::setProgress(qreal progress) +void QQuickDefaultDial::setProgress(qreal progress) { if (progress == m_progress) return; m_progress = progress; update(); - emit progressChanged(); } -QColor QQuickDialRing::color() const +QColor QQuickDefaultDial::color() const { return m_color; } -void QQuickDialRing::setColor(const QColor &color) +void QQuickDefaultDial::setColor(const QColor &color) { if (color == m_color) return; m_color = color; update(); - emit colorChanged(); } -void QQuickDialRing::paint(QPainter *painter) +void QQuickDefaultDial::paint(QPainter *painter) { if (width() <= 0 || height() <= 0) return; diff --git a/src/imports/controls/qquickdialring_p.h b/src/imports/controls/qquickdefaultdial_p.h index 5b2f49ba..10490610 100644 --- a/src/imports/controls/qquickdialring_p.h +++ b/src/imports/controls/qquickdefaultdial_p.h @@ -34,8 +34,8 @@ ** ****************************************************************************/ -#ifndef QQUICKDIALRING_P_H -#define QQUICKDIALRING_P_H +#ifndef QQUICKDEFAULTDIAL_P_H +#define QQUICKDEFAULTDIAL_P_H // // W A R N I N G @@ -53,14 +53,14 @@ QT_BEGIN_NAMESPACE -class QQuickDialRing : public QQuickPaintedItem +class QQuickDefaultDial : public QQuickPaintedItem { Q_OBJECT - Q_PROPERTY(qreal progress READ progress WRITE setProgress NOTIFY progressChanged) - Q_PROPERTY(QColor color READ color WRITE setColor NOTIFY colorChanged) + Q_PROPERTY(qreal progress READ progress WRITE setProgress FINAL) + Q_PROPERTY(QColor color READ color WRITE setColor FINAL) public: - QQuickDialRing(QQuickItem *parent = nullptr); + explicit QQuickDefaultDial(QQuickItem *parent = nullptr); qreal progress() const; void setProgress(qreal progress); @@ -70,10 +70,6 @@ public: void paint(QPainter *painter) override; -Q_SIGNALS: - void progressChanged(); - void colorChanged(); - private: qreal m_progress; QColor m_color; @@ -81,4 +77,4 @@ private: QT_END_NAMESPACE -#endif // QQUICKDIALRING_P_H +#endif // QQUICKDEFAULTDIAL_P_H diff --git a/src/imports/controls/qquickdefaultprogressbar.cpp b/src/imports/controls/qquickdefaultprogressbar.cpp index a34b6a28..f5bd1db8 100644 --- a/src/imports/controls/qquickdefaultprogressbar.cpp +++ b/src/imports/controls/qquickdefaultprogressbar.cpp @@ -51,7 +51,6 @@ static const int BlockSpan = Blocks * (BlockWidth + BlockRestingSpacing) - Block static const int TotalDuration = 4000; static const int SecondPhaseStart = TotalDuration * 0.4; static const int ThirdPhaseStart = TotalDuration * 0.6; -static const QRgb FillColor = 0x353637; static inline qreal blockStartX(int blockIndex) { @@ -178,7 +177,7 @@ void QQuickDefaultProgressBarNode::sync(QQuickItem *item) QSGInternalRectangleNode *rectNode = static_cast<QSGInternalRectangleNode*>(transformNode->firstChild()); if (!rectNode) { rectNode = d->sceneGraphContext()->createInternalRectangleNode(); - rectNode->setColor(FillColor); + rectNode->setColor(bar->color()); transformNode->appendChildNode(rectNode); } @@ -200,7 +199,7 @@ void QQuickDefaultProgressBarNode::sync(QQuickItem *item) QSGInternalRectangleNode *rectNode = static_cast<QSGInternalRectangleNode *>(firstChild()); if (!rectNode) { rectNode = d->sceneGraphContext()->createInternalRectangleNode(); - rectNode->setColor(FillColor); + rectNode->setColor(bar->color()); appendChildNode(rectNode); } @@ -229,7 +228,6 @@ void QQuickDefaultProgressBar::setProgress(qreal progress) m_progress = progress; update(); - emit progressChanged(); } bool QQuickDefaultProgressBar::isIndeterminate() const @@ -245,7 +243,20 @@ void QQuickDefaultProgressBar::setIndeterminate(bool indeterminate) m_indeterminate = indeterminate; setClip(m_indeterminate); update(); - emit indeterminateChanged(); +} + +QColor QQuickDefaultProgressBar::color() const +{ + return m_color; +} + +void QQuickDefaultProgressBar::setColor(const QColor &color) +{ + if (color == m_color) + return; + + m_color = color; + update(); } void QQuickDefaultProgressBar::itemChange(QQuickItem::ItemChange change, const QQuickItem::ItemChangeData &data) diff --git a/src/imports/controls/qquickdefaultprogressbar_p.h b/src/imports/controls/qquickdefaultprogressbar_p.h index 4fb9ae0b..91f8056b 100644 --- a/src/imports/controls/qquickdefaultprogressbar_p.h +++ b/src/imports/controls/qquickdefaultprogressbar_p.h @@ -49,14 +49,16 @@ // #include <QtQuick/qquickitem.h> +#include <QtGui/qcolor.h> QT_BEGIN_NAMESPACE class QQuickDefaultProgressBar : public QQuickItem { Q_OBJECT - Q_PROPERTY(bool indeterminate READ isIndeterminate WRITE setIndeterminate NOTIFY indeterminateChanged FINAL) - Q_PROPERTY(qreal progress READ progress WRITE setProgress NOTIFY progressChanged FINAL) + Q_PROPERTY(bool indeterminate READ isIndeterminate WRITE setIndeterminate FINAL) + Q_PROPERTY(qreal progress READ progress WRITE setProgress FINAL) + Q_PROPERTY(QColor color READ color WRITE setColor FINAL) public: explicit QQuickDefaultProgressBar(QQuickItem *parent = nullptr); @@ -67,9 +69,8 @@ public: qreal progress() const; void setProgress(qreal progress); -Q_SIGNALS: - void progressChanged(); - void indeterminateChanged(); + QColor color() const; + void setColor(const QColor &color); protected: void itemChange(ItemChange change, const ItemChangeData &data) override; @@ -78,6 +79,7 @@ protected: private: qreal m_progress; bool m_indeterminate; + QColor m_color; }; QT_END_NAMESPACE diff --git a/src/imports/controls/qquickdefaulttheme.cpp b/src/imports/controls/qquickdefaulttheme.cpp new file mode 100644 index 00000000..f4b6f5d7 --- /dev/null +++ b/src/imports/controls/qquickdefaulttheme.cpp @@ -0,0 +1,92 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qquickdefaulttheme_p.h" + +QT_BEGIN_NAMESPACE + +QQuickDefaultTheme::QQuickDefaultTheme() + : QQuickTheme(QStringLiteral("Default")) +{ + systemPalette.setColor(QPalette::Base, QColor::fromRgba(0xFFFFFFFF)); + systemPalette.setColor(QPalette::Disabled, QPalette::Base, QColor::fromRgba(0xFFD6D6D6)); + + systemPalette.setColor(QPalette::Button, QColor::fromRgba(0xFFE0E0E0)); + + systemPalette.setColor(QPalette::ButtonText, QColor::fromRgba(0xFF26282A)); + systemPalette.setColor(QPalette::Disabled, QPalette::ButtonText, QColor::fromRgba(0x4D26282A)); + + systemPalette.setColor(QPalette::BrightText, QColor::fromRgba(0xFFFFFFFF)); + systemPalette.setColor(QPalette::Disabled, QPalette::BrightText, QColor::fromRgba(0x4DFFFFFF)); + + systemPalette.setColor(QPalette::Dark, QColor::fromRgba(0xFF353637)); + + systemPalette.setColor(QPalette::Highlight, QColor::fromRgba(0xFF0066FF)); + systemPalette.setColor(QPalette::Disabled, QPalette::Highlight, QColor::fromRgba(0xFFF0F6FF)); + + systemPalette.setColor(QPalette::HighlightedText, QColor::fromRgba(0xFFFFFFFF)); + + systemPalette.setColor(QPalette::Light, QColor::fromRgba(0xFFF6F6F6)); + + systemPalette.setColor(QPalette::Link, QColor::fromRgba(0xFF45A7D7)); + + systemPalette.setColor(QPalette::Mid, QColor::fromRgba(0xFFBDBDBD)); + + systemPalette.setColor(QPalette::Midlight, QColor::fromRgba(0xFFE4E4E4)); + + systemPalette.setColor(QPalette::Text, QColor::fromRgba(0xFF353637)); + systemPalette.setColor(QPalette::Disabled, QPalette::Text, QColor::fromRgba(0x7F353637)); + + systemPalette.setColor(QPalette::Shadow, QColor::fromRgba(0xFF28282A)); + + systemPalette.setColor(QPalette::ToolTipBase, QColor::fromRgba(0xFFFFFFFF)); + systemPalette.setColor(QPalette::ToolTipText, QColor::fromRgba(0xFF000000)); + + systemPalette.setColor(QPalette::Window, QColor::fromRgba(0xFFFFFFFF)); + + systemPalette.setColor(QPalette::WindowText, QColor::fromRgba(0xFF26282A)); + systemPalette.setColor(QPalette::Disabled, QPalette::WindowText, QColor::fromRgba(0xFFBDBEBF)); + + systemPalette = resolvePalette(systemPalette); +} + +const QPalette *QQuickDefaultTheme::palette(QPlatformTheme::Palette type) const +{ + Q_UNUSED(type); + return &systemPalette; +} + +QT_END_NAMESPACE diff --git a/src/imports/controls/qquickdefaulttheme_p.h b/src/imports/controls/qquickdefaulttheme_p.h new file mode 100644 index 00000000..16e4d061 --- /dev/null +++ b/src/imports/controls/qquickdefaulttheme_p.h @@ -0,0 +1,68 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QQUICKDEFAULTTHEME_P_H +#define QQUICKDEFAULTTHEME_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include <QtQuickControls2/private/qquicktheme_p.h> + +QT_BEGIN_NAMESPACE + +class QQuickDefaultTheme : public QQuickTheme +{ +public: + explicit QQuickDefaultTheme(); + + const QPalette *palette(Palette type) const override; + +private: + QPalette systemPalette; +}; + +QT_END_NAMESPACE + +#endif // QQUICKDEFAULTTHEME_P_H diff --git a/src/imports/controls/qtquickcontrols2plugin.cpp b/src/imports/controls/qtquickcontrols2plugin.cpp index e9471227..464bbbdf 100644 --- a/src/imports/controls/qtquickcontrols2plugin.cpp +++ b/src/imports/controls/qtquickcontrols2plugin.cpp @@ -36,21 +36,29 @@ #include <QtCore/private/qfileselector_p.h> #include <QtQuickControls2/qquickstyle.h> +#include <QtQuickControls2/private/qquickchecklabel_p.h> +#include <QtQuickControls2/private/qquickcolor_p.h> +#include <QtQuickControls2/private/qquickcolorimage_p.h> +#include <QtQuickControls2/private/qquickiconimage_p.h> +#include <QtQuickControls2/private/qquickmnemoniclabel_p.h> +#include <QtQuickControls2/private/qquickpaddedrectangle_p.h> #include <QtQuickControls2/private/qquickplaceholdertext_p.h> +#include <QtQuickControls2/private/qquickiconlabel_p.h> #include <QtQuickControls2/private/qquickstyle_p.h> #include <QtQuickControls2/private/qquickstyleplugin_p.h> #include <QtQuickControls2/private/qquickstyleselector_p.h> -#include <QtQuickControls2/private/qquickcolorimageprovider_p.h> #if QT_CONFIG(quick_listview) && QT_CONFIG(quick_pathview) #include <QtQuickControls2/private/qquicktumblerview_p.h> #endif +#include <QtQuickTemplates2/private/qquickoverlay_p.h> #include <QtQuickControls2/private/qquickclippedtext_p.h> #include <QtQuickControls2/private/qquickitemgroup_p.h> #include "qquickdefaultbusyindicator_p.h" +#include "qquickdefaultdial_p.h" #include "qquickdefaultprogressbar_p.h" #include "qquickdefaultstyle_p.h" -#include "qquickdialring_p.h" +#include "qquickdefaulttheme_p.h" static inline void initResources() { @@ -69,8 +77,11 @@ class QtQuickControls2Plugin: public QQuickStylePlugin public: QtQuickControls2Plugin(QObject *parent = nullptr); - void registerTypes(const char *uri); - void initializeEngine(QQmlEngine *engine, const char *uri); + void registerTypes(const char *uri) override; + void initializeEngine(QQmlEngine *engine, const char *uri) override; + + QString name() const override; + QQuickProxyTheme *createTheme() const override; }; QtQuickControls2Plugin::QtQuickControls2Plugin(QObject *parent) : QQuickStylePlugin(parent) @@ -147,6 +158,13 @@ void QtQuickControls2Plugin::registerTypes(const char *uri) // QtQuick.Controls 2.2 (new types in Qt 5.9) qmlRegisterType(selector.select(QStringLiteral("DelayButton.qml")), uri, 2, 2, "DelayButton"); qmlRegisterType(selector.select(QStringLiteral("ScrollView.qml")), uri, 2, 2, "ScrollView"); + + // QtQuick.Controls 2.3 (new types in Qt 5.10) + qmlRegisterType(selector.select(QStringLiteral("Action.qml")), uri, 2, 3, "Action"); + qmlRegisterType(selector.select(QStringLiteral("ActionGroup.qml")), uri, 2, 3, "ActionGroup"); + qmlRegisterType(selector.select(QStringLiteral("MenuBar.qml")), uri, 2, 3, "MenuBar"); + qmlRegisterType(selector.select(QStringLiteral("MenuBarItem.qml")), uri, 2, 3, "MenuBarItem"); + qmlRegisterUncreatableType<QQuickOverlay>(uri, 2, 3, "Overlay", QStringLiteral("Overlay is only available as an attached property.")); } static QObject *styleSingleton(QQmlEngine *engine, QJSEngine *scriptEngine) @@ -156,28 +174,55 @@ static QObject *styleSingleton(QQmlEngine *engine, QJSEngine *scriptEngine) return new QQuickDefaultStyle; } -void QtQuickControls2Plugin::initializeEngine(QQmlEngine *engine, const char *uri) +static QObject *colorSingleton(QQmlEngine *engine, QJSEngine *scriptEngine) { - Q_UNUSED(uri); + Q_UNUSED(engine); + Q_UNUSED(scriptEngine); + return new QQuickColor; +} - engine->addImageProvider(QStringLiteral("default"), new QQuickColorImageProvider(QStringLiteral(":/qt-project.org/imports/QtQuick/Controls.2/images"))); +void QtQuickControls2Plugin::initializeEngine(QQmlEngine *engine, const char *uri) +{ + QQuickStylePlugin::initializeEngine(engine, uri); const QByteArray import = QByteArray(uri) + ".impl"; qmlRegisterModule(import, 2, QT_VERSION_MINOR - 7); // Qt 5.7->2.0, 5.8->2.1, 5.9->2.2... + // QtQuick.Controls.impl 2.0 (Qt 5.7) qmlRegisterType<QQuickDefaultBusyIndicator>(import, 2, 0, "BusyIndicatorImpl"); - qmlRegisterType<QQuickClippedText>(import, 2, 2, "ClippedText"); + qmlRegisterType<QQuickDefaultDial>(import, 2, 0, "DialImpl"); + qmlRegisterType<QQuickPaddedRectangle>(import, 2, 0, "PaddedRectangle"); qmlRegisterType<QQuickDefaultProgressBar>(import, 2, 0, "ProgressBarImpl"); - qmlRegisterType<QQuickDialRing>(import, 2, 0, "DialRing"); - qmlRegisterType<QQuickItemGroup>(import, 2, 2, "ItemGroup"); - qmlRegisterType<QQuickPlaceholderText>(import, 2, 2, "PlaceholderText"); + + // QtQuick.Controls.impl 2.1 (Qt 5.8) #if QT_CONFIG(quick_listview) && QT_CONFIG(quick_pathview) qmlRegisterType<QQuickTumblerView>(import, 2, 1, "TumblerView"); #endif qmlRegisterSingletonType<QQuickDefaultStyle>(import, 2, 1, "Default", styleSingleton); - qmlRegisterType(typeUrl(QStringLiteral("CheckIndicator.qml")), import, 2, 0, "CheckIndicator"); - qmlRegisterType(typeUrl(QStringLiteral("RadioIndicator.qml")), import, 2, 0, "RadioIndicator"); - qmlRegisterType(typeUrl(QStringLiteral("SwitchIndicator.qml")), import, 2, 0, "SwitchIndicator"); + + // QtQuick.Controls.impl 2.2 (Qt 5.9) + qmlRegisterType<QQuickClippedText>(import, 2, 2, "ClippedText"); + qmlRegisterType<QQuickItemGroup>(import, 2, 2, "ItemGroup"); + qmlRegisterType<QQuickPlaceholderText>(import, 2, 2, "PlaceholderText"); + + // QtQuick.Controls.impl 2.3 (Qt 5.10) + qmlRegisterType<QQuickColorImage>(import, 2, 3, "ColorImage"); + qmlRegisterType<QQuickIconImage>(import, 2, 3, "IconImage"); + qmlRegisterSingletonType<QQuickColor>(import, 2, 3, "Color", colorSingleton); + qmlRegisterType<QQuickIconLabel>(import, 2, 3, "IconLabel"); + qmlRegisterType<QQuickCheckLabel>(import, 2, 3, "CheckLabel"); + qmlRegisterType<QQuickMnemonicLabel>(import, 2, 3, "MnemonicLabel"); + qmlRegisterRevision<QQuickText, 6>(import, 2, 3); +} + +QString QtQuickControls2Plugin::name() const +{ + return QStringLiteral("default"); +} + +QQuickProxyTheme *QtQuickControls2Plugin::createTheme() const +{ + return new QQuickDefaultTheme; } QT_END_NAMESPACE diff --git a/src/imports/controls/qtquickcontrols2plugin.qrc b/src/imports/controls/qtquickcontrols2plugin.qrc index 0948a529..c2dd9d39 100644 --- a/src/imports/controls/qtquickcontrols2plugin.qrc +++ b/src/imports/controls/qtquickcontrols2plugin.qrc @@ -1,5 +1,9 @@ <RCC> <qresource prefix="/qt-project.org/imports/QtQuick/Controls.2"> + <file>images/arrow-indicator.png</file> + <file>images/arrow-indicator@2x.png</file> + <file>images/arrow-indicator@3x.png</file> + <file>images/arrow-indicator@4x.png</file> <file>images/check.png</file> <file>images/check@2x.png</file> <file>images/check@3x.png</file> diff --git a/src/imports/controls/universal/ApplicationWindow.qml b/src/imports/controls/universal/ApplicationWindow.qml index 3f3926de..4472e187 100644 --- a/src/imports/controls/universal/ApplicationWindow.qml +++ b/src/imports/controls/universal/ApplicationWindow.qml @@ -34,11 +34,11 @@ ** ****************************************************************************/ -import QtQuick 2.9 +import QtQuick 2.10 import QtQuick.Window 2.3 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls.Universal 2.2 -import QtQuick.Controls.Universal.impl 2.2 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Universal 2.3 +import QtQuick.Controls.Universal.impl 2.3 T.ApplicationWindow { id: window diff --git a/src/imports/controls/universal/BusyIndicator.qml b/src/imports/controls/universal/BusyIndicator.qml index 8f0574fe..f6d86823 100644 --- a/src/imports/controls/universal/BusyIndicator.qml +++ b/src/imports/controls/universal/BusyIndicator.qml @@ -34,10 +34,10 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls.Universal 2.2 -import QtQuick.Controls.Universal.impl 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Universal 2.3 +import QtQuick.Controls.Universal.impl 2.3 T.BusyIndicator { id: control diff --git a/src/imports/controls/universal/Button.qml b/src/imports/controls/universal/Button.qml index 0bf3621b..0e84d1f8 100644 --- a/src/imports/controls/universal/Button.qml +++ b/src/imports/controls/universal/Button.qml @@ -34,9 +34,11 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls.Universal 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Universal 2.3 T.Button { id: control @@ -50,18 +52,23 @@ T.Button { padding: 8 topPadding: padding - 4 bottomPadding: padding - 4 + spacing: 8 + + icon.width: 20 + icon.height: 20 + icon.color: Color.transparent(Universal.foreground, enabled ? 1.0 : 0.2) property bool useSystemFocusVisuals: true - contentItem: Text { + contentItem: IconLabel { + spacing: control.spacing + mirrored: control.mirrored + display: control.display + + icon: control.icon text: control.text font: control.font - elide: Text.ElideRight - horizontalAlignment: Text.AlignHCenter - verticalAlignment: Text.AlignVCenter - - opacity: enabled ? 1.0 : 0.2 - color: control.Universal.foreground + color: Color.transparent(control.Universal.foreground, enabled ? 1.0 : 0.2) } background: Rectangle { diff --git a/src/imports/controls/universal/CheckBox.qml b/src/imports/controls/universal/CheckBox.qml index 97a46c86..fa42a7e5 100644 --- a/src/imports/controls/universal/CheckBox.qml +++ b/src/imports/controls/universal/CheckBox.qml @@ -34,10 +34,10 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls.Universal 2.2 -import QtQuick.Controls.Universal.impl 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Universal 2.3 +import QtQuick.Controls.Universal.impl 2.3 T.CheckBox { id: control diff --git a/src/imports/controls/universal/CheckDelegate.qml b/src/imports/controls/universal/CheckDelegate.qml index 230851cf..27388987 100644 --- a/src/imports/controls/universal/CheckDelegate.qml +++ b/src/imports/controls/universal/CheckDelegate.qml @@ -34,10 +34,12 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls.Universal 2.2 -import QtQuick.Controls.Universal.impl 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Universal 2.3 +import QtQuick.Controls.Universal.impl 2.3 T.CheckDelegate { id: control @@ -55,23 +57,29 @@ T.CheckDelegate { topPadding: padding - 1 bottomPadding: padding + 1 + icon.width: 20 + icon.height: 20 + icon.color: Color.transparent(Universal.foreground, enabled ? 1.0 : 0.2) + indicator: CheckIndicator { x: text ? (control.mirrored ? control.leftPadding : control.width - width - control.rightPadding) : control.leftPadding + (control.availableWidth - width) / 2 y: control.topPadding + (control.availableHeight - height) / 2 control: control } - contentItem: Text { + contentItem: IconLabel { leftPadding: !control.mirrored ? 0 : control.indicator.width + control.spacing rightPadding: control.mirrored ? 0 : control.indicator.width + control.spacing + spacing: control.spacing + mirrored: control.mirrored + display: control.display + alignment: control.display === IconLabel.IconOnly || control.display === IconLabel.TextUnderIcon ? Qt.AlignCenter : Qt.AlignLeft + + icon: control.icon text: control.text font: control.font - elide: Text.ElideRight - verticalAlignment: Text.AlignVCenter - - opacity: enabled ? 1.0 : 0.2 - color: control.Universal.foreground + color: Color.transparent(control.Universal.foreground, enabled ? 1.0 : 0.2) } background: Rectangle { diff --git a/src/imports/controls/universal/CheckIndicator.qml b/src/imports/controls/universal/CheckIndicator.qml index eac150e2..669edc7f 100644 --- a/src/imports/controls/universal/CheckIndicator.qml +++ b/src/imports/controls/universal/CheckIndicator.qml @@ -34,9 +34,11 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls.Universal 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Universal 2.3 Rectangle { implicitWidth: 20 @@ -53,14 +55,13 @@ Rectangle { property Item control readonly property bool partiallyChecked: control.checkState === Qt.PartiallyChecked - Image { + ColorImage { x: (parent.width - width) / 2 y: (parent.height - height) / 2 visible: control.checkState === Qt.Checked - source: "image://universal/checkmark/" + (!control.enabled ? control.Universal.baseLowColor : control.Universal.chromeWhiteColor) - sourceSize.width: width - sourceSize.height: height + color: !control.enabled ? control.Universal.baseLowColor : control.Universal.chromeWhiteColor + source: "qrc:/qt-project.org/imports/QtQuick/Controls.2/Universal/images/checkmark.png" } Rectangle { diff --git a/src/imports/controls/universal/ComboBox.qml b/src/imports/controls/universal/ComboBox.qml index 17e869d4..3d01ab84 100644 --- a/src/imports/controls/universal/ComboBox.qml +++ b/src/imports/controls/universal/ComboBox.qml @@ -34,11 +34,12 @@ ** ****************************************************************************/ -import QtQuick 2.9 +import QtQuick 2.10 import QtQuick.Window 2.3 -import QtQuick.Controls 2.2 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls.Universal 2.2 +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Universal 2.3 T.ComboBox { id: control @@ -62,12 +63,11 @@ T.ComboBox { hoverEnabled: control.hoverEnabled } - indicator: Image { + indicator: ColorImage { x: control.mirrored ? control.padding : control.width - width - control.padding y: control.topPadding + (control.availableHeight - height) / 2 - source: "image://universal/downarrow/" + (!control.enabled ? control.Universal.baseLowColor : control.Universal.baseMediumHighColor) - sourceSize.width: width - sourceSize.height: height + color: !control.enabled ? control.Universal.baseLowColor : control.Universal.baseMediumHighColor + source: "qrc:/qt-project.org/imports/QtQuick/Controls.2/Universal/images/downarrow.png" Rectangle { z: -1 @@ -144,7 +144,6 @@ T.ComboBox { implicitHeight: contentHeight model: control.delegateModel currentIndex: control.highlightedIndex - highlightRangeMode: ListView.ApplyRange highlightMoveDuration: 0 T.ScrollIndicator.vertical: ScrollIndicator { } diff --git a/src/imports/controls/universal/DelayButton.qml b/src/imports/controls/universal/DelayButton.qml index 9d43be44..ae313a4c 100644 --- a/src/imports/controls/universal/DelayButton.qml +++ b/src/imports/controls/universal/DelayButton.qml @@ -34,9 +34,9 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls.Universal 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Universal 2.3 T.DelayButton { id: control diff --git a/src/imports/controls/universal/Dial.qml b/src/imports/controls/universal/Dial.qml index 2ffb4167..8f5700aa 100644 --- a/src/imports/controls/universal/Dial.qml +++ b/src/imports/controls/universal/Dial.qml @@ -34,9 +34,9 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls.Universal 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Universal 2.3 T.Dial { id: control diff --git a/src/imports/controls/universal/Dialog.qml b/src/imports/controls/universal/Dialog.qml index 07ae56a6..1188ef08 100644 --- a/src/imports/controls/universal/Dialog.qml +++ b/src/imports/controls/universal/Dialog.qml @@ -34,10 +34,10 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls 2.2 -import QtQuick.Controls.Universal 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.Universal 2.3 T.Dialog { id: control @@ -84,4 +84,12 @@ T.Dialog { footer: DialogButtonBox { visible: count > 0 } + + T.Overlay.modal: Rectangle { + color: control.Universal.baseLowColor + } + + T.Overlay.modeless: Rectangle { + color: control.Universal.baseLowColor + } } diff --git a/src/imports/controls/universal/DialogButtonBox.qml b/src/imports/controls/universal/DialogButtonBox.qml index 4ce41ad6..b50658b0 100644 --- a/src/imports/controls/universal/DialogButtonBox.qml +++ b/src/imports/controls/universal/DialogButtonBox.qml @@ -34,10 +34,10 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls 2.2 -import QtQuick.Controls.Universal 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.Universal 2.3 T.DialogButtonBox { id: control diff --git a/src/imports/controls/universal/Drawer.qml b/src/imports/controls/universal/Drawer.qml index 3543887e..faf4c15b 100644 --- a/src/imports/controls/universal/Drawer.qml +++ b/src/imports/controls/universal/Drawer.qml @@ -34,14 +34,14 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls.Universal 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Universal 2.3 T.Drawer { id: control - parent: T.ApplicationWindow.overlay + parent: T.Overlay.overlay implicitWidth: Math.max(background ? background.implicitWidth : 0, contentWidth + leftPadding + rightPadding) implicitHeight: Math.max(background ? background.implicitHeight : 0, contentHeight + topPadding + bottomPadding) @@ -68,4 +68,12 @@ T.Drawer { y: control.edge === Qt.TopEdge ? parent.height - 1 : 0 } } + + T.Overlay.modal: Rectangle { + color: control.Universal.baseLowColor + } + + T.Overlay.modeless: Rectangle { + color: control.Universal.baseLowColor + } } diff --git a/src/imports/controls/universal/Frame.qml b/src/imports/controls/universal/Frame.qml index 7d7d55a7..ac6c1e4f 100644 --- a/src/imports/controls/universal/Frame.qml +++ b/src/imports/controls/universal/Frame.qml @@ -34,9 +34,9 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls.Universal 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Universal 2.3 T.Frame { id: control diff --git a/src/imports/controls/universal/GroupBox.qml b/src/imports/controls/universal/GroupBox.qml index 38ab3d0b..8a74f024 100644 --- a/src/imports/controls/universal/GroupBox.qml +++ b/src/imports/controls/universal/GroupBox.qml @@ -34,9 +34,9 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls.Universal 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Universal 2.3 T.GroupBox { id: control diff --git a/src/imports/controls/universal/ItemDelegate.qml b/src/imports/controls/universal/ItemDelegate.qml index 4154d6f7..a2d4cfb9 100644 --- a/src/imports/controls/universal/ItemDelegate.qml +++ b/src/imports/controls/universal/ItemDelegate.qml @@ -34,9 +34,11 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls.Universal 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Universal 2.3 T.ItemDelegate { id: control @@ -54,17 +56,20 @@ T.ItemDelegate { topPadding: padding - 1 bottomPadding: padding + 1 - contentItem: Text { - leftPadding: !control.mirrored ? (control.indicator ? control.indicator.width : 0) + control.spacing : 0 - rightPadding: control.mirrored ? (control.indicator ? control.indicator.width : 0) + control.spacing : 0 + icon.width: 20 + icon.height: 20 + icon.color: Color.transparent(Universal.foreground, enabled ? 1.0 : 0.2) + contentItem: IconLabel { + spacing: control.spacing + mirrored: control.mirrored + display: control.display + alignment: control.display === IconLabel.IconOnly || control.display === IconLabel.TextUnderIcon ? Qt.AlignCenter : Qt.AlignLeft + + icon: control.icon text: control.text font: control.font - elide: Text.ElideRight - verticalAlignment: Text.AlignVCenter - - opacity: enabled ? 1.0 : 0.2 - color: control.Universal.foreground + color: Color.transparent(control.Universal.foreground, enabled ? 1.0 : 0.2) } background: Rectangle { diff --git a/src/imports/controls/universal/Label.qml b/src/imports/controls/universal/Label.qml index 3cfa9317..2e116d97 100644 --- a/src/imports/controls/universal/Label.qml +++ b/src/imports/controls/universal/Label.qml @@ -34,9 +34,9 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls.Universal 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Universal 2.3 T.Label { id: control diff --git a/src/imports/controls/universal/Menu.qml b/src/imports/controls/universal/Menu.qml index 0ca475f5..056053bb 100644 --- a/src/imports/controls/universal/Menu.qml +++ b/src/imports/controls/universal/Menu.qml @@ -34,10 +34,10 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Controls 2.2 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls.Universal 2.2 +import QtQuick 2.10 +import QtQuick.Controls 2.3 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Universal 2.3 T.Menu { id: control @@ -48,6 +48,9 @@ T.Menu { contentItem ? contentItem.implicitHeight : 0) + topPadding + bottomPadding margins: 0 + overlap: 1 + + delegate: MenuItem { } contentItem: ListView { implicitHeight: contentHeight @@ -55,8 +58,7 @@ T.Menu { // TODO: improve this? interactive: ApplicationWindow.window ? contentHeight > ApplicationWindow.window.height : false clip: true - keyNavigationWraps: false - currentIndex: -1 + currentIndex: control.currentIndex ScrollIndicator.vertical: ScrollIndicator {} } @@ -68,4 +70,12 @@ T.Menu { border.color: control.Universal.chromeHighColor border.width: 1 // FlyoutBorderThemeThickness } + + T.Overlay.modal: Rectangle { + color: control.Universal.baseLowColor + } + + T.Overlay.modeless: Rectangle { + color: control.Universal.baseLowColor + } } diff --git a/src/imports/controls/universal/MenuBar.qml b/src/imports/controls/universal/MenuBar.qml new file mode 100644 index 00000000..72a0f504 --- /dev/null +++ b/src/imports/controls/universal/MenuBar.qml @@ -0,0 +1,64 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Universal 2.3 + +T.MenuBar { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, + contentWidth + leftPadding + rightPadding) + implicitHeight: Math.max(background ? background.implicitHeight : 0, + contentHeight + topPadding + bottomPadding) + + delegate: MenuBarItem { } + + contentItem: Row { + spacing: control.spacing + Repeater { + model: control.contentModel + } + } + + background: Rectangle { + implicitHeight: 40 + color: control.Universal.chromeMediumColor + } +} diff --git a/src/imports/controls/universal/MenuBarItem.qml b/src/imports/controls/universal/MenuBarItem.qml new file mode 100644 index 00000000..59064ca1 --- /dev/null +++ b/src/imports/controls/universal/MenuBarItem.qml @@ -0,0 +1,92 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Universal 2.3 + +T.MenuBarItem { + id: control + + implicitWidth: Math.max(background ? background.implicitWidth : 0, + contentItem.implicitWidth + leftPadding + rightPadding) + implicitHeight: Math.max(background ? background.implicitHeight : 0, + Math.max(contentItem.implicitHeight, + indicator ? indicator.implicitHeight : 0) + topPadding + bottomPadding) + baselineOffset: contentItem.y + contentItem.baselineOffset + + padding: 12 + topPadding: padding - 1 + bottomPadding: padding + 1 + spacing: 12 + + icon.width: 20 + icon.height: 20 + icon.color: !enabled ? Universal.baseLowColor : Universal.baseHighColor + + contentItem: IconLabel { + spacing: control.spacing + mirrored: control.mirrored + display: control.display + alignment: Qt.AlignLeft + + icon: control.icon + text: control.text + font: control.font + color: !control.enabled ? control.Universal.baseLowColor : control.Universal.baseHighColor + } + + background: Rectangle { + implicitWidth: 40 + implicitHeight: 40 + + color: !control.enabled ? control.Universal.baseLowColor : + control.down ? control.Universal.listMediumColor : + control.highlighted ? control.Universal.listLowColor : "transparent" + + Rectangle { + x: 1; y: 1 + width: parent.width - 2 + height: parent.height - 2 + + visible: control.visualFocus + color: control.Universal.accent + opacity: control.Universal.theme === Universal.Light ? 0.4 : 0.6 + } + } +} diff --git a/src/imports/controls/universal/MenuItem.qml b/src/imports/controls/universal/MenuItem.qml index 48e7bf1c..b2d6c36c 100644 --- a/src/imports/controls/universal/MenuItem.qml +++ b/src/imports/controls/universal/MenuItem.qml @@ -34,9 +34,11 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls.Universal 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Universal 2.3 T.MenuItem { id: control @@ -53,25 +55,44 @@ T.MenuItem { bottomPadding: padding + 1 spacing: 12 - contentItem: Text { - leftPadding: !control.mirrored ? control.indicator.width + control.spacing : 0 - rightPadding: control.mirrored ? control.indicator.width + control.spacing : 0 + icon.width: 20 + icon.height: 20 + icon.color: !enabled ? Universal.baseLowColor : Universal.baseHighColor + contentItem: IconLabel { + readonly property real arrowPadding: control.subMenu && control.arrow ? control.arrow.width + control.spacing : 0 + readonly property real indicatorPadding: control.checkable && control.indicator ? control.indicator.width + control.spacing : 0 + leftPadding: !control.mirrored ? indicatorPadding : arrowPadding + rightPadding: control.mirrored ? indicatorPadding : arrowPadding + + spacing: control.spacing + mirrored: control.mirrored + display: control.display + alignment: Qt.AlignLeft + + icon: control.icon text: control.text font: control.font color: !control.enabled ? control.Universal.baseLowColor : control.Universal.baseHighColor - elide: Text.ElideRight - verticalAlignment: Text.AlignVCenter } - indicator: Image { + arrow: ColorImage { + x: control.mirrored ? control.leftPadding : control.width - width - control.rightPadding + y: control.topPadding + (control.availableHeight - height) / 2 + + visible: control.subMenu + mirror: control.mirrored + color: !enabled ? control.Universal.baseLowColor : control.Universal.baseHighColor + source: "qrc:/qt-project.org/imports/QtQuick/Controls.2/Universal/images/rightarrow.png" + } + + indicator: ColorImage { x: control.text ? (control.mirrored ? control.width - width - control.rightPadding : control.leftPadding) : control.leftPadding + (control.availableWidth - width) / 2 y: control.topPadding + (control.availableHeight - height) / 2 visible: control.checked - source: !control.checkable ? "" : "image://universal/checkmark/" + (!control.enabled ? control.Universal.baseLowColor : control.down ? control.Universal.baseHighColor : control.Universal.baseMediumHighColor) - sourceSize.width: width - sourceSize.height: height + color: !control.enabled ? control.Universal.baseLowColor : control.down ? control.Universal.baseHighColor : control.Universal.baseMediumHighColor + source: !control.checkable ? "" : "qrc:/qt-project.org/imports/QtQuick/Controls.2/Universal/images/checkmark.png" } background: Rectangle { @@ -80,7 +101,7 @@ T.MenuItem { color: !control.enabled ? control.Universal.baseLowColor : control.down ? control.Universal.listMediumColor : - control.hovered ? control.Universal.listLowColor : control.Universal.altMediumLowColor + control.highlighted ? control.Universal.listLowColor : control.Universal.altMediumLowColor Rectangle { x: 1; y: 1 diff --git a/src/imports/controls/universal/MenuSeparator.qml b/src/imports/controls/universal/MenuSeparator.qml index 18d12528..a99dfa66 100644 --- a/src/imports/controls/universal/MenuSeparator.qml +++ b/src/imports/controls/universal/MenuSeparator.qml @@ -34,9 +34,9 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls.Universal 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Universal 2.3 T.MenuSeparator { id: control diff --git a/src/imports/controls/universal/Page.qml b/src/imports/controls/universal/Page.qml index 1f006f16..d0dc73f3 100644 --- a/src/imports/controls/universal/Page.qml +++ b/src/imports/controls/universal/Page.qml @@ -34,9 +34,9 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls.Universal 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Universal 2.3 T.Page { id: control diff --git a/src/imports/controls/universal/PageIndicator.qml b/src/imports/controls/universal/PageIndicator.qml index f6a6baa6..8acede74 100644 --- a/src/imports/controls/universal/PageIndicator.qml +++ b/src/imports/controls/universal/PageIndicator.qml @@ -34,9 +34,9 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls.Universal 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Universal 2.3 T.PageIndicator { id: control diff --git a/src/imports/controls/universal/Pane.qml b/src/imports/controls/universal/Pane.qml index 67a66c93..5f1f07e5 100644 --- a/src/imports/controls/universal/Pane.qml +++ b/src/imports/controls/universal/Pane.qml @@ -34,9 +34,9 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls.Universal 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Universal 2.3 T.Pane { id: control diff --git a/src/imports/controls/universal/Popup.qml b/src/imports/controls/universal/Popup.qml index 0e42219c..1be238b7 100644 --- a/src/imports/controls/universal/Popup.qml +++ b/src/imports/controls/universal/Popup.qml @@ -34,9 +34,9 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls.Universal 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Universal 2.3 T.Popup { id: control @@ -56,4 +56,12 @@ T.Popup { border.color: control.Universal.chromeHighColor border.width: 1 // FlyoutBorderThemeThickness } + + T.Overlay.modal: Rectangle { + color: control.Universal.baseLowColor + } + + T.Overlay.modeless: Rectangle { + color: control.Universal.baseLowColor + } } diff --git a/src/imports/controls/universal/ProgressBar.qml b/src/imports/controls/universal/ProgressBar.qml index 58545d61..9b8be7d3 100644 --- a/src/imports/controls/universal/ProgressBar.qml +++ b/src/imports/controls/universal/ProgressBar.qml @@ -34,10 +34,10 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls.Universal 2.2 -import QtQuick.Controls.Universal.impl 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Universal 2.3 +import QtQuick.Controls.Universal.impl 2.3 T.ProgressBar { id: control @@ -59,10 +59,7 @@ T.ProgressBar { background: Rectangle { implicitWidth: 100 implicitHeight: 10 - - x: control.leftPadding - y: control.topPadding + (control.availableHeight - height) / 2 - width: control.availableWidth + y: (control.height - height) / 2 height: 10 visible: !control.indeterminate diff --git a/src/imports/controls/universal/RadioButton.qml b/src/imports/controls/universal/RadioButton.qml index 44949614..f124ffd9 100644 --- a/src/imports/controls/universal/RadioButton.qml +++ b/src/imports/controls/universal/RadioButton.qml @@ -34,10 +34,10 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls.Universal 2.2 -import QtQuick.Controls.Universal.impl 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Universal 2.3 +import QtQuick.Controls.Universal.impl 2.3 T.RadioButton { id: control diff --git a/src/imports/controls/universal/RadioDelegate.qml b/src/imports/controls/universal/RadioDelegate.qml index 575fa84d..0fd5aacf 100644 --- a/src/imports/controls/universal/RadioDelegate.qml +++ b/src/imports/controls/universal/RadioDelegate.qml @@ -34,10 +34,12 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls.Universal 2.2 -import QtQuick.Controls.Universal.impl 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Universal 2.3 +import QtQuick.Controls.Universal.impl 2.3 T.RadioDelegate { id: control @@ -55,23 +57,29 @@ T.RadioDelegate { topPadding: padding - 1 bottomPadding: padding + 1 + icon.width: 20 + icon.height: 20 + icon.color: Color.transparent(Universal.foreground, enabled ? 1.0 : 0.2) + indicator: RadioIndicator { x: text ? (control.mirrored ? control.leftPadding : control.width - width - control.rightPadding) : control.leftPadding + (control.availableWidth - width) / 2 y: control.topPadding + (control.availableHeight - height) / 2 control: control } - contentItem: Text { + contentItem: IconLabel { leftPadding: !control.mirrored ? 0 : control.indicator.width + control.spacing rightPadding: control.mirrored ? 0 : control.indicator.width + control.spacing + spacing: control.spacing + mirrored: control.mirrored + display: control.display + alignment: control.display === IconLabel.IconOnly || control.display === IconLabel.TextUnderIcon ? Qt.AlignCenter : Qt.AlignLeft + + icon: control.icon text: control.text font: control.font - elide: Text.ElideRight - verticalAlignment: Text.AlignVCenter - - opacity: enabled ? 1.0 : 0.2 - color: control.Universal.foreground + color: Color.transparent(control.Universal.foreground, enabled ? 1.0 : 0.2) } background: Rectangle { diff --git a/src/imports/controls/universal/RadioIndicator.qml b/src/imports/controls/universal/RadioIndicator.qml index 220983da..fcf80d4b 100644 --- a/src/imports/controls/universal/RadioIndicator.qml +++ b/src/imports/controls/universal/RadioIndicator.qml @@ -34,8 +34,8 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Controls.Universal 2.2 +import QtQuick 2.10 +import QtQuick.Controls.Universal 2.3 Rectangle { implicitWidth: 20 diff --git a/src/imports/controls/universal/RangeSlider.qml b/src/imports/controls/universal/RangeSlider.qml index d2cf7a65..da759b4a 100644 --- a/src/imports/controls/universal/RangeSlider.qml +++ b/src/imports/controls/universal/RangeSlider.qml @@ -34,9 +34,9 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls.Universal 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Universal 2.3 T.RangeSlider { id: control @@ -51,13 +51,11 @@ T.RangeSlider { padding: 6 first.handle: Rectangle { - implicitWidth: horizontal ? 8 : 24 - implicitHeight: horizontal ? 24 : 8 + implicitWidth: control.horizontal ? 8 : 24 + implicitHeight: control.horizontal ? 24 : 8 - readonly property bool horizontal: control.orientation === Qt.Horizontal - - x: control.leftPadding + (horizontal ? control.first.visualPosition * (control.availableWidth - width) : (control.availableWidth - width) / 2) - y: control.topPadding + (horizontal ? (control.availableHeight - height) / 2 : control.first.visualPosition * (control.availableHeight - height)) + x: control.leftPadding + (control.horizontal ? control.first.visualPosition * (control.availableWidth - width) : (control.availableWidth - width) / 2) + y: control.topPadding + (control.horizontal ? (control.availableHeight - height) / 2 : control.first.visualPosition * (control.availableHeight - height)) radius: 4 color: control.first.pressed ? control.Universal.chromeHighColor : @@ -66,13 +64,11 @@ T.RangeSlider { } second.handle: Rectangle { - implicitWidth: horizontal ? 8 : 24 - implicitHeight: horizontal ? 24 : 8 - - readonly property bool horizontal: control.orientation === Qt.Horizontal + implicitWidth: control.horizontal ? 8 : 24 + implicitHeight: control.horizontal ? 24 : 8 - x: control.leftPadding + (horizontal ? control.second.visualPosition * (control.availableWidth - width) : (control.availableWidth - width) / 2) - y: control.topPadding + (horizontal ? (control.availableHeight - height) / 2 : control.second.visualPosition * (control.availableHeight - height)) + x: control.leftPadding + (control.horizontal ? control.second.visualPosition * (control.availableWidth - width) : (control.availableWidth - width) / 2) + y: control.topPadding + (control.horizontal ? (control.availableHeight - height) / 2 : control.second.visualPosition * (control.availableHeight - height)) radius: 4 color: control.second.pressed ? control.Universal.chromeHighColor : @@ -81,33 +77,31 @@ T.RangeSlider { } background: Item { - implicitWidth: horizontal ? 200 : 18 - implicitHeight: horizontal ? 18 : 200 - - readonly property bool horizontal: control.orientation === Qt.Horizontal + implicitWidth: control.horizontal ? 200 : 18 + implicitHeight: control.horizontal ? 18 : 200 - x: control.leftPadding + (horizontal ? 0 : (control.availableWidth - width) / 2) - y: control.topPadding + (horizontal ? (control.availableHeight - height) / 2 : 0) - width: horizontal ? control.availableWidth : implicitWidth - height: horizontal ? implicitHeight : control.availableHeight + x: control.leftPadding + (control.horizontal ? 0 : (control.availableWidth - width) / 2) + y: control.topPadding + (control.horizontal ? (control.availableHeight - height) / 2 : 0) + width: control.horizontal ? control.availableWidth : implicitWidth + height: control.horizontal ? implicitHeight : control.availableHeight - scale: horizontal && control.mirrored ? -1 : 1 + scale: control.horizontal && control.mirrored ? -1 : 1 Rectangle { - x: parent.horizontal ? 0 : (parent.width - width) / 2 - y: parent.horizontal ? (parent.height - height) / 2 : 0 - width: parent.horizontal ? parent.width : 2 // SliderBackgroundThemeHeight - height: !parent.horizontal ? parent.height : 2 // SliderBackgroundThemeHeight + x: control.horizontal ? 0 : (parent.width - width) / 2 + y: control.horizontal ? (parent.height - height) / 2 : 0 + width: control.horizontal ? parent.width : 2 // SliderBackgroundThemeHeight + height: control.vertical ? parent.height : 2 // SliderBackgroundThemeHeight color: control.hovered && !control.pressed ? control.Universal.baseMediumColor : control.enabled ? control.Universal.baseMediumLowColor : control.Universal.chromeDisabledHighColor } Rectangle { - x: parent.horizontal ? control.first.position * parent.width : (parent.width - width) / 2 - y: parent.horizontal ? (parent.height - height) / 2 : control.second.visualPosition * parent.height - width: parent.horizontal ? control.second.position * parent.width - control.first.position * parent.width : 2 // SliderBackgroundThemeHeight - height: !parent.horizontal ? control.second.position * parent.height - control.first.position * parent.height : 2 // SliderBackgroundThemeHeight + x: control.horizontal ? control.first.position * parent.width : (parent.width - width) / 2 + y: control.horizontal ? (parent.height - height) / 2 : control.second.visualPosition * parent.height + width: control.horizontal ? control.second.position * parent.width - control.first.position * parent.width : 2 // SliderBackgroundThemeHeight + height: control.vertical ? control.second.position * parent.height - control.first.position * parent.height : 2 // SliderBackgroundThemeHeight color: control.enabled ? control.Universal.accent : control.Universal.chromeDisabledHighColor } diff --git a/src/imports/controls/universal/RoundButton.qml b/src/imports/controls/universal/RoundButton.qml index d70c4cda..0161552f 100644 --- a/src/imports/controls/universal/RoundButton.qml +++ b/src/imports/controls/universal/RoundButton.qml @@ -34,9 +34,11 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls.Universal 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Universal 2.3 T.RoundButton { id: control @@ -48,18 +50,23 @@ T.RoundButton { baselineOffset: contentItem.y + contentItem.baselineOffset padding: 8 + spacing: 8 + + icon.width: 20 + icon.height: 20 + icon.color: Color.transparent(Universal.foreground, enabled ? 1.0 : 0.2) property bool useSystemFocusVisuals: true - contentItem: Text { + contentItem: IconLabel { + spacing: control.spacing + mirrored: control.mirrored + display: control.display + + icon: control.icon text: control.text font: control.font - elide: Text.ElideRight - horizontalAlignment: Text.AlignHCenter - verticalAlignment: Text.AlignVCenter - - opacity: enabled ? 1.0 : 0.2 - color: control.Universal.foreground + color: Color.transparent(control.Universal.foreground, enabled ? 1.0 : 0.2) } background: Rectangle { diff --git a/src/imports/controls/universal/ScrollBar.qml b/src/imports/controls/universal/ScrollBar.qml index cbb81f1b..70df3bb1 100644 --- a/src/imports/controls/universal/ScrollBar.qml +++ b/src/imports/controls/universal/ScrollBar.qml @@ -34,9 +34,9 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls.Universal 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Universal 2.3 T.ScrollBar { id: control diff --git a/src/imports/controls/universal/ScrollIndicator.qml b/src/imports/controls/universal/ScrollIndicator.qml index 0b6733aa..bdfc7e0e 100644 --- a/src/imports/controls/universal/ScrollIndicator.qml +++ b/src/imports/controls/universal/ScrollIndicator.qml @@ -34,9 +34,9 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls.Universal 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Universal 2.3 T.ScrollIndicator { id: control diff --git a/src/imports/controls/universal/Slider.qml b/src/imports/controls/universal/Slider.qml index e02065e5..acfb06d3 100644 --- a/src/imports/controls/universal/Slider.qml +++ b/src/imports/controls/universal/Slider.qml @@ -34,9 +34,9 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls.Universal 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Universal 2.3 T.Slider { id: control @@ -51,13 +51,11 @@ T.Slider { property bool useSystemFocusVisuals: true handle: Rectangle { - implicitWidth: horizontal ? 8 : 24 - implicitHeight: horizontal ? 24 : 8 + implicitWidth: control.horizontal ? 8 : 24 + implicitHeight: control.horizontal ? 24 : 8 - readonly property bool horizontal: control.orientation === Qt.Horizontal - - x: control.leftPadding + (horizontal ? control.visualPosition * (control.availableWidth - width) : (control.availableWidth - width) / 2) - y: control.topPadding + (horizontal ? (control.availableHeight - height) / 2 : control.visualPosition * (control.availableHeight - height)) + x: control.leftPadding + (control.horizontal ? control.visualPosition * (control.availableWidth - width) : (control.availableWidth - width) / 2) + y: control.topPadding + (control.horizontal ? (control.availableHeight - height) / 2 : control.visualPosition * (control.availableHeight - height)) radius: 4 color: control.pressed ? control.Universal.chromeHighColor : @@ -66,33 +64,31 @@ T.Slider { } background: Item { - implicitWidth: horizontal ? 200 : 18 - implicitHeight: horizontal ? 18 : 200 - - readonly property bool horizontal: control.orientation === Qt.Horizontal + implicitWidth: control.horizontal ? 200 : 18 + implicitHeight: control.horizontal ? 18 : 200 - x: control.leftPadding + (horizontal ? 0 : (control.availableWidth - width) / 2) - y: control.topPadding + (horizontal ? (control.availableHeight - height) / 2 : 0) - width: horizontal ? control.availableWidth : implicitWidth - height: horizontal ? implicitHeight : control.availableHeight + x: control.leftPadding + (control.horizontal ? 0 : (control.availableWidth - width) / 2) + y: control.topPadding + (control.horizontal ? (control.availableHeight - height) / 2 : 0) + width: control.horizontal ? control.availableWidth : implicitWidth + height: control.horizontal ? implicitHeight : control.availableHeight - scale: horizontal && control.mirrored ? -1 : 1 + scale: control.horizontal && control.mirrored ? -1 : 1 Rectangle { - x: parent.horizontal ? 0 : (parent.width - width) / 2 - y: parent.horizontal ? (parent.height - height) / 2 : 0 - width: parent.horizontal ? parent.width : 2 // SliderTrackThemeHeight - height: !parent.horizontal ? parent.height : 2 // SliderTrackThemeHeight + x: control.horizontal ? 0 : (parent.width - width) / 2 + y: control.horizontal ? (parent.height - height) / 2 : 0 + width: control.horizontal ? parent.width : 2 // SliderTrackThemeHeight + height: !control.horizontal ? parent.height : 2 // SliderTrackThemeHeight color: control.hovered && !control.pressed ? control.Universal.baseMediumColor : control.enabled ? control.Universal.baseMediumLowColor : control.Universal.chromeDisabledHighColor } Rectangle { - x: parent.horizontal ? 0 : (parent.width - width) / 2 - y: parent.horizontal ? (parent.height - height) / 2 : control.visualPosition * parent.height - width: parent.horizontal ? control.position * parent.width : 2 // SliderTrackThemeHeight - height: !parent.horizontal ? control.position * parent.height : 2 // SliderTrackThemeHeight + x: control.horizontal ? 0 : (parent.width - width) / 2 + y: control.horizontal ? (parent.height - height) / 2 : control.visualPosition * parent.height + width: control.horizontal ? control.position * parent.width : 2 // SliderTrackThemeHeight + height: !control.horizontal ? control.position * parent.height : 2 // SliderTrackThemeHeight color: control.enabled ? control.Universal.accent : control.Universal.chromeDisabledHighColor } diff --git a/src/imports/controls/universal/SpinBox.qml b/src/imports/controls/universal/SpinBox.qml index 0cbfdd16..918568d5 100644 --- a/src/imports/controls/universal/SpinBox.qml +++ b/src/imports/controls/universal/SpinBox.qml @@ -34,9 +34,11 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls.Universal 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Universal 2.3 T.SpinBox { id: control @@ -99,14 +101,12 @@ T.SpinBox { opacity: control.activeFocus && !control.up.pressed ? 0.4 : 1.0 } - Image { + ColorImage { x: (parent.width - width) / 2 y: (parent.height - height) / 2 - source: "image://universal/" + (control.mirrored ? "left" : "right") + "arrow/" - + (!enabled ? control.Universal.chromeDisabledLowColor : - control.activeFocus ? control.Universal.chromeBlackHighColor : control.Universal.baseHighColor) - sourceSize.width: width - sourceSize.height: height + color: !enabled ? control.Universal.chromeDisabledLowColor : + control.activeFocus ? control.Universal.chromeBlackHighColor : control.Universal.baseHighColor + source: "qrc:/qt-project.org/imports/QtQuick/Controls.2/Universal/images/" + (control.mirrored ? "left" : "right") + "arrow.png" } } @@ -127,14 +127,12 @@ T.SpinBox { opacity: control.activeFocus && !control.down.pressed ? 0.4 : 1.0 } - Image { + ColorImage { x: (parent.width - width) / 2 y: (parent.height - height) / 2 - source: "image://universal/" + (control.mirrored ? "right" : "left") + "arrow/" - + (!enabled ? control.Universal.chromeDisabledLowColor : - control.activeFocus ? control.Universal.chromeBlackHighColor : control.Universal.baseHighColor) - sourceSize.width: width - sourceSize.height: height + color: !enabled ? control.Universal.chromeDisabledLowColor : + control.activeFocus ? control.Universal.chromeBlackHighColor : control.Universal.baseHighColor + source: "qrc:/qt-project.org/imports/QtQuick/Controls.2/Universal/images/" + (control.mirrored ? "right" : "left") + "arrow.png" } } diff --git a/src/imports/controls/universal/StackView.qml b/src/imports/controls/universal/StackView.qml index 071e1737..737d10b0 100644 --- a/src/imports/controls/universal/StackView.qml +++ b/src/imports/controls/universal/StackView.qml @@ -34,9 +34,9 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls.Universal 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Universal 2.3 T.StackView { id: control diff --git a/src/imports/controls/universal/SwipeDelegate.qml b/src/imports/controls/universal/SwipeDelegate.qml index 60f2542c..fc4d6ecf 100644 --- a/src/imports/controls/universal/SwipeDelegate.qml +++ b/src/imports/controls/universal/SwipeDelegate.qml @@ -34,9 +34,11 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls.Universal 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Universal 2.3 T.SwipeDelegate { id: control @@ -54,19 +56,22 @@ T.SwipeDelegate { topPadding: padding - 1 bottomPadding: padding + 1 + icon.width: 20 + icon.height: 20 + icon.color: Color.transparent(Universal.foreground, enabled ? 1.0 : 0.2) + swipe.transition: Transition { SmoothedAnimation { velocity: 3; easing.type: Easing.InOutCubic } } - contentItem: Text { - leftPadding: !control.mirrored ? (control.indicator ? control.indicator.width : 0) + control.spacing : 0 - rightPadding: control.mirrored ? (control.indicator ? control.indicator.width : 0) + control.spacing : 0 + contentItem: IconLabel { + spacing: control.spacing + mirrored: control.mirrored + display: control.display + alignment: control.display === IconLabel.IconOnly || control.display === IconLabel.TextUnderIcon ? Qt.AlignCenter : Qt.AlignLeft + icon: control.icon text: control.text font: control.font - elide: Text.ElideRight - verticalAlignment: Text.AlignVCenter - - opacity: enabled ? 1.0 : 0.2 - color: control.Universal.foreground + color: Color.transparent(control.Universal.foreground, enabled ? 1.0 : 0.2) } background: Rectangle { diff --git a/src/imports/controls/universal/Switch.qml b/src/imports/controls/universal/Switch.qml index bffd2b57..db0bcc43 100644 --- a/src/imports/controls/universal/Switch.qml +++ b/src/imports/controls/universal/Switch.qml @@ -34,10 +34,10 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls.Universal 2.2 -import QtQuick.Controls.Universal.impl 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Universal 2.3 +import QtQuick.Controls.Universal.impl 2.3 T.Switch { id: control diff --git a/src/imports/controls/universal/SwitchDelegate.qml b/src/imports/controls/universal/SwitchDelegate.qml index 533c2554..8720a2f9 100644 --- a/src/imports/controls/universal/SwitchDelegate.qml +++ b/src/imports/controls/universal/SwitchDelegate.qml @@ -34,10 +34,12 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls.Universal 2.2 -import QtQuick.Controls.Universal.impl 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Universal 2.3 +import QtQuick.Controls.Universal.impl 2.3 T.SwitchDelegate { id: control @@ -55,23 +57,29 @@ T.SwitchDelegate { topPadding: padding - 1 bottomPadding: padding + 1 + icon.width: 20 + icon.height: 20 + icon.color: Color.transparent(Universal.foreground, enabled ? 1.0 : 0.2) + indicator: SwitchIndicator { x: text ? (control.mirrored ? control.leftPadding : control.width - width - control.rightPadding) : control.leftPadding + (control.availableWidth - width) / 2 y: control.topPadding + (control.availableHeight - height) / 2 control: control } - contentItem: Text { + contentItem: IconLabel { leftPadding: !control.mirrored ? 0 : control.indicator.width + control.spacing rightPadding: control.mirrored ? 0 : control.indicator.width + control.spacing + spacing: control.spacing + mirrored: control.mirrored + display: control.display + alignment: control.display === IconLabel.IconOnly || control.display === IconLabel.TextUnderIcon ? Qt.AlignCenter : Qt.AlignLeft + + icon: control.icon text: control.text font: control.font - elide: Text.ElideRight - verticalAlignment: Text.AlignVCenter - - opacity: enabled ? 1.0 : 0.2 - color: control.Universal.foreground + color: Color.transparent(control.Universal.foreground, enabled ? 1.0 : 0.2) } background: Rectangle { diff --git a/src/imports/controls/universal/SwitchIndicator.qml b/src/imports/controls/universal/SwitchIndicator.qml index 1eb2f9b5..20b797ea 100644 --- a/src/imports/controls/universal/SwitchIndicator.qml +++ b/src/imports/controls/universal/SwitchIndicator.qml @@ -34,9 +34,9 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls.Universal 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Universal 2.3 Item { implicitWidth: 44 diff --git a/src/imports/controls/universal/TabBar.qml b/src/imports/controls/universal/TabBar.qml index c0de7fb2..5447049d 100644 --- a/src/imports/controls/universal/TabBar.qml +++ b/src/imports/controls/universal/TabBar.qml @@ -34,9 +34,9 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls.Universal 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Universal 2.3 T.TabBar { id: control @@ -46,8 +46,6 @@ T.TabBar { implicitHeight: Math.max(background ? background.implicitHeight : 0, contentHeight + topPadding + bottomPadding) - contentHeight: 48 - contentItem: PathView { model: control.contentModel currentIndex: control.currentIndex diff --git a/src/imports/controls/universal/TabButton.qml b/src/imports/controls/universal/TabButton.qml index ef982c60..8a5e1f1e 100644 --- a/src/imports/controls/universal/TabButton.qml +++ b/src/imports/controls/universal/TabButton.qml @@ -34,9 +34,11 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls.Universal 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Universal 2.3 T.TabButton { id: control @@ -48,15 +50,22 @@ T.TabButton { baselineOffset: contentItem.y + contentItem.baselineOffset padding: 12 // PivotItemMargin + spacing: 8 - contentItem: Text { + icon.width: 20 + icon.height: 20 + icon.color: Color.transparent(control.hovered ? control.Universal.baseMediumHighColor : control.Universal.foreground, + control.checked || control.down || control.hovered ? 1.0 : 0.2) + + contentItem: IconLabel { + spacing: control.spacing + mirrored: control.mirrored + display: control.display + + icon: control.icon text: control.text font: control.font - elide: Text.ElideRight - horizontalAlignment: Text.AlignHCenter - verticalAlignment: Text.AlignVCenter - - opacity: control.checked || control.down || control.hovered ? 1.0 : 0.2 - color: control.hovered ? control.Universal.baseMediumHighColor : control.Universal.foreground + color: Color.transparent(control.hovered ? control.Universal.baseMediumHighColor : control.Universal.foreground, + control.checked || control.down || control.hovered ? 1.0 : 0.2) } } diff --git a/src/imports/controls/universal/TextArea.qml b/src/imports/controls/universal/TextArea.qml index a173e676..d6838544 100644 --- a/src/imports/controls/universal/TextArea.qml +++ b/src/imports/controls/universal/TextArea.qml @@ -34,11 +34,11 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls 2.2 -import QtQuick.Controls.impl 2.2 -import QtQuick.Controls.Universal 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Universal 2.3 T.TextArea { id: control diff --git a/src/imports/controls/universal/TextField.qml b/src/imports/controls/universal/TextField.qml index 476630fd..36407595 100644 --- a/src/imports/controls/universal/TextField.qml +++ b/src/imports/controls/universal/TextField.qml @@ -34,11 +34,11 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls 2.2 -import QtQuick.Controls.impl 2.2 -import QtQuick.Controls.Universal 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Universal 2.3 T.TextField { id: control diff --git a/src/imports/controls/universal/ToolBar.qml b/src/imports/controls/universal/ToolBar.qml index f6bec475..32c11dd1 100644 --- a/src/imports/controls/universal/ToolBar.qml +++ b/src/imports/controls/universal/ToolBar.qml @@ -34,9 +34,9 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls.Universal 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Universal 2.3 T.ToolBar { id: control diff --git a/src/imports/controls/universal/ToolButton.qml b/src/imports/controls/universal/ToolButton.qml index 9b07490f..15463ebb 100644 --- a/src/imports/controls/universal/ToolButton.qml +++ b/src/imports/controls/universal/ToolButton.qml @@ -34,9 +34,11 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls.Universal 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 +import QtQuick.Controls.Universal 2.3 T.ToolButton { id: control @@ -48,18 +50,23 @@ T.ToolButton { baselineOffset: contentItem.y + contentItem.baselineOffset padding: 6 + spacing: 8 + + icon.width: 20 + icon.height: 20 + icon.color: Color.transparent(Universal.foreground, enabled ? 1.0 : 0.2) property bool useSystemFocusVisuals: true - contentItem: Text { + contentItem: IconLabel { + spacing: control.spacing + mirrored: control.mirrored + display: control.display + + icon: control.icon text: control.text font: control.font - elide: Text.ElideRight - horizontalAlignment: Text.AlignHCenter - verticalAlignment: Text.AlignVCenter - - opacity: enabled ? 1.0 : 0.2 - color: control.Universal.foreground + color: Color.transparent(control.Universal.foreground, enabled ? 1.0 : 0.2) } background: Rectangle { diff --git a/src/imports/controls/universal/ToolSeparator.qml b/src/imports/controls/universal/ToolSeparator.qml index 8d36d95b..3fc25d92 100644 --- a/src/imports/controls/universal/ToolSeparator.qml +++ b/src/imports/controls/universal/ToolSeparator.qml @@ -34,9 +34,9 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls.Universal 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Universal 2.3 T.ToolSeparator { id: control diff --git a/src/imports/controls/universal/ToolTip.qml b/src/imports/controls/universal/ToolTip.qml index 6f8f27f4..db48aab9 100644 --- a/src/imports/controls/universal/ToolTip.qml +++ b/src/imports/controls/universal/ToolTip.qml @@ -34,9 +34,9 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls.Universal 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Universal 2.3 T.ToolTip { id: control diff --git a/src/imports/controls/universal/Tumbler.qml b/src/imports/controls/universal/Tumbler.qml index 9972fb4c..30b3b785 100644 --- a/src/imports/controls/universal/Tumbler.qml +++ b/src/imports/controls/universal/Tumbler.qml @@ -34,11 +34,11 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Templates 2.2 as T -import QtQuick.Controls.Universal 2.2 -import QtQuick.Controls 2.2 -import QtQuick.Controls.impl 2.2 +import QtQuick 2.10 +import QtQuick.Templates 2.3 as T +import QtQuick.Controls.Universal 2.3 +import QtQuick.Controls 2.3 +import QtQuick.Controls.impl 2.3 T.Tumbler { id: control diff --git a/src/imports/controls/universal/plugins.qmltypes b/src/imports/controls/universal/plugins.qmltypes index 165e658e..979e8437 100644 --- a/src/imports/controls/universal/plugins.qmltypes +++ b/src/imports/controls/universal/plugins.qmltypes @@ -4,14 +4,14 @@ import QtQuick.tooling 1.2 // It is used for QML tooling purposes only. // // This file was auto-generated by: -// 'qmlplugindump -nonrelocatable QtQuick.Controls.Universal 2.0' +// 'qmlplugindump -nonrelocatable QtQuick.Controls.Universal 2.3' Module { dependencies: [] - Component { name: "QQuickStyle"; prototype: "QObject" } + Component { name: "QQuickAttachedObject"; prototype: "QObject" } Component { name: "QQuickUniversalStyle" - prototype: "QQuickStyle" + prototype: "QQuickAttachedObject" exports: ["QtQuick.Controls.Universal/Universal 2.0"] isCreatable: false exportMetaObjectRevisions: [0] @@ -19,7 +19,8 @@ Module { name: "Theme" values: { "Light": 0, - "Dark": 1 + "Dark": 1, + "System": 2 } } Enum { diff --git a/src/imports/controls/universal/qmldir b/src/imports/controls/universal/qmldir index da4a89d6..271eafa9 100644 --- a/src/imports/controls/universal/qmldir +++ b/src/imports/controls/universal/qmldir @@ -1,4 +1,4 @@ module QtQuick.Controls.Universal plugin qtquickcontrols2universalstyleplugin classname QtQuickControls2UniversalStylePlugin -depends QtQuick.Controls 2.2 +depends QtQuick.Controls 2.3 diff --git a/src/imports/controls/universal/qquickuniversalstyle.cpp b/src/imports/controls/universal/qquickuniversalstyle.cpp index c581a784..157d5ddb 100644 --- a/src/imports/controls/universal/qquickuniversalstyle.cpp +++ b/src/imports/controls/universal/qquickuniversalstyle.cpp @@ -39,7 +39,7 @@ #include <QtCore/qdebug.h> #include <QtCore/qsettings.h> #include <QtQml/qqmlinfo.h> -#include <QtQuickControls2/private/qquickstyleattached_p.h> +#include <QtQuickControls2/private/qquickstyle_p.h> QT_BEGIN_NAMESPACE @@ -132,12 +132,10 @@ static QRgb qquickuniversal_accent_color(QQuickUniversalStyle::Color accent) return colors[accent]; } -extern bool qt_is_dark_system_theme(); - static QQuickUniversalStyle::Theme qquickuniversal_effective_theme(QQuickUniversalStyle::Theme theme) { if (theme == QQuickUniversalStyle::System) - theme = qt_is_dark_system_theme() ? QQuickUniversalStyle::Dark : QQuickUniversalStyle::Light; + theme = QQuickStylePrivate::isDarkSystemTheme() ? QQuickUniversalStyle::Dark : QQuickUniversalStyle::Light; return theme; } @@ -153,7 +151,7 @@ static QRgb GlobalBackground = qquickuniversal_light_color(QQuickUniversalStyle: static bool HasGlobalForeground = false; static bool HasGlobalBackground = false; -QQuickUniversalStyle::QQuickUniversalStyle(QObject *parent) : QQuickStyleAttached(parent), +QQuickUniversalStyle::QQuickUniversalStyle(QObject *parent) : QQuickAttachedObject(parent), m_explicitTheme(false), m_explicitAccent(false), m_explicitForeground(false), m_explicitBackground(false), m_hasForeground(HasGlobalForeground), m_hasBackground(HasGlobalBackground), m_theme(GlobalTheme), m_accent(GlobalAccent), m_foreground(GlobalForeground), m_background(GlobalBackground) @@ -201,8 +199,8 @@ void QQuickUniversalStyle::inheritTheme(Theme theme) void QQuickUniversalStyle::propagateTheme() { - const auto styles = childStyles(); - for (QQuickStyleAttached *child : styles) { + const auto styles = attachedChildren(); + for (QQuickAttachedObject *child : styles) { QQuickUniversalStyle *universal = qobject_cast<QQuickUniversalStyle *>(child); if (universal) universal->inheritTheme(m_theme); @@ -215,7 +213,7 @@ void QQuickUniversalStyle::resetTheme() return; m_explicitTheme = false; - QQuickUniversalStyle *universal = qobject_cast<QQuickUniversalStyle *>(parentStyle()); + QQuickUniversalStyle *universal = qobject_cast<QQuickUniversalStyle *>(attachedParent()); inheritTheme(universal ? universal->theme() : GlobalTheme); } @@ -251,8 +249,8 @@ void QQuickUniversalStyle::inheritAccent(QRgb accent) void QQuickUniversalStyle::propagateAccent() { - const auto styles = childStyles(); - for (QQuickStyleAttached *child : styles) { + const auto styles = attachedChildren(); + for (QQuickAttachedObject *child : styles) { QQuickUniversalStyle *universal = qobject_cast<QQuickUniversalStyle *>(child); if (universal) universal->inheritAccent(m_accent); @@ -265,7 +263,7 @@ void QQuickUniversalStyle::resetAccent() return; m_explicitAccent = false; - QQuickUniversalStyle *universal = qobject_cast<QQuickUniversalStyle *>(parentStyle()); + QQuickUniversalStyle *universal = qobject_cast<QQuickUniversalStyle *>(attachedParent()); inheritAccent(universal ? universal->m_accent : GlobalAccent); } @@ -305,8 +303,8 @@ void QQuickUniversalStyle::inheritForeground(QRgb foreground, bool has) void QQuickUniversalStyle::propagateForeground() { - const auto styles = childStyles(); - for (QQuickStyleAttached *child : styles) { + const auto styles = attachedChildren(); + for (QQuickAttachedObject *child : styles) { QQuickUniversalStyle *universal = qobject_cast<QQuickUniversalStyle *>(child); if (universal) universal->inheritForeground(m_foreground, m_hasForeground); @@ -320,7 +318,7 @@ void QQuickUniversalStyle::resetForeground() m_hasForeground = false; m_explicitForeground = false; - QQuickUniversalStyle *universal = qobject_cast<QQuickUniversalStyle *>(parentStyle()); + QQuickUniversalStyle *universal = qobject_cast<QQuickUniversalStyle *>(attachedParent()); inheritForeground(universal ? universal->m_foreground : GlobalForeground, universal ? universal->m_hasForeground : false); } @@ -360,8 +358,8 @@ void QQuickUniversalStyle::inheritBackground(QRgb background, bool has) void QQuickUniversalStyle::propagateBackground() { - const auto styles = childStyles(); - for (QQuickStyleAttached *child : styles) { + const auto styles = attachedChildren(); + for (QQuickAttachedObject *child : styles) { QQuickUniversalStyle *universal = qobject_cast<QQuickUniversalStyle *>(child); if (universal) universal->inheritBackground(m_background, m_hasBackground); @@ -375,7 +373,7 @@ void QQuickUniversalStyle::resetBackground() m_hasBackground = false; m_explicitBackground = false; - QQuickUniversalStyle *universal = qobject_cast<QQuickUniversalStyle *>(parentStyle()); + QQuickUniversalStyle *universal = qobject_cast<QQuickUniversalStyle *>(attachedParent()); inheritBackground(universal ? universal->m_background : GlobalBackground, universal ? universal->m_hasBackground : false); } @@ -509,7 +507,7 @@ QColor QQuickUniversalStyle::systemColor(SystemColor role) const return QColor::fromRgba(m_theme == QQuickUniversalStyle::Dark ? qquickuniversal_dark_color(role) : qquickuniversal_light_color(role)); } -void QQuickUniversalStyle::parentStyleChange(QQuickStyleAttached *newParent, QQuickStyleAttached *oldParent) +void QQuickUniversalStyle::attachedParentChange(QQuickAttachedObject *newParent, QQuickAttachedObject *oldParent) { Q_UNUSED(oldParent); QQuickUniversalStyle *universal = qobject_cast<QQuickUniversalStyle *>(newParent); @@ -542,7 +540,7 @@ void QQuickUniversalStyle::init() { static bool globalsInitialized = false; if (!globalsInitialized) { - QSharedPointer<QSettings> settings = QQuickStyleAttached::settings(QStringLiteral("Universal")); + QSharedPointer<QSettings> settings = QQuickStylePrivate::settings(QStringLiteral("Universal")); bool ok = false; QByteArray themeValue = resolveSetting("QT_QUICK_CONTROLS_UNIVERSAL_THEME", settings, QStringLiteral("Theme")); @@ -597,7 +595,7 @@ void QQuickUniversalStyle::init() globalsInitialized = true; } - QQuickStyleAttached::init(); // TODO: lazy init? + QQuickAttachedObject::init(); // TODO: lazy init? } bool QQuickUniversalStyle::variantToRgba(const QVariant &var, const char *name, QRgb *rgba) const diff --git a/src/imports/controls/universal/qquickuniversalstyle_p.h b/src/imports/controls/universal/qquickuniversalstyle_p.h index 508e8297..196048ef 100644 --- a/src/imports/controls/universal/qquickuniversalstyle_p.h +++ b/src/imports/controls/universal/qquickuniversalstyle_p.h @@ -49,13 +49,13 @@ // #include <QtGui/qcolor.h> -#include <QtQuickControls2/private/qquickstyleattached_p.h> +#include <QtQuickControls2/private/qquickattachedobject_p.h> QT_BEGIN_NAMESPACE class QQuickUniversalStylePrivate; -class QQuickUniversalStyle : public QQuickStyleAttached +class QQuickUniversalStyle : public QQuickAttachedObject { Q_OBJECT Q_PROPERTY(Theme theme READ theme WRITE setTheme RESET resetTheme NOTIFY themeChanged FINAL) @@ -208,7 +208,7 @@ Q_SIGNALS: void paletteChanged(); protected: - void parentStyleChange(QQuickStyleAttached *newParent, QQuickStyleAttached *oldParent) override; + void attachedParentChange(QQuickAttachedObject *newParent, QQuickAttachedObject *oldParent) override; private: void init(); diff --git a/src/imports/controls/universal/qquickuniversaltheme.cpp b/src/imports/controls/universal/qquickuniversaltheme.cpp index a7bcbb8c..549840b6 100644 --- a/src/imports/controls/universal/qquickuniversaltheme.cpp +++ b/src/imports/controls/universal/qquickuniversaltheme.cpp @@ -41,8 +41,8 @@ QT_BEGIN_NAMESPACE -QQuickUniversalTheme::QQuickUniversalTheme(QPlatformTheme *theme) - : QQuickProxyTheme(theme) +QQuickUniversalTheme::QQuickUniversalTheme() + : QQuickTheme(QStringLiteral("Universal")) { const QFont font(QLatin1String("Segoe UI")); if (QFontInfo(font).family() == QLatin1String("Segoe UI")) { @@ -53,12 +53,15 @@ QQuickUniversalTheme::QQuickUniversalTheme(QPlatformTheme *theme) } systemFont.setPixelSize(15); + systemFont = resolveFont(systemFont); groupBoxTitleFont.setPixelSize(15); groupBoxTitleFont.setWeight(QFont::DemiBold); + groupBoxTitleFont = resolveFont(groupBoxTitleFont); tabButtonFont.setPixelSize(24); tabButtonFont.setWeight(QFont::Light); + tabButtonFont = resolveFont(tabButtonFont); } const QFont *QQuickUniversalTheme::font(QPlatformTheme::Font type) const diff --git a/src/imports/controls/universal/qquickuniversaltheme_p.h b/src/imports/controls/universal/qquickuniversaltheme_p.h index 3ac32598..f15dee3e 100644 --- a/src/imports/controls/universal/qquickuniversaltheme_p.h +++ b/src/imports/controls/universal/qquickuniversaltheme_p.h @@ -49,14 +49,14 @@ // #include <QtGui/qfont.h> -#include <QtQuickControls2/private/qquickproxytheme_p.h> +#include <QtQuickControls2/private/qquicktheme_p.h> QT_BEGIN_NAMESPACE -class QQuickUniversalTheme : public QQuickProxyTheme +class QQuickUniversalTheme : public QQuickTheme { public: - explicit QQuickUniversalTheme(QPlatformTheme *theme = nullptr); + explicit QQuickUniversalTheme(); const QFont *font(Font type = SystemFont) const override; diff --git a/src/imports/controls/universal/qtquickcontrols2universalstyleplugin.cpp b/src/imports/controls/universal/qtquickcontrols2universalstyleplugin.cpp index 017a1aad..55255181 100644 --- a/src/imports/controls/universal/qtquickcontrols2universalstyleplugin.cpp +++ b/src/imports/controls/universal/qtquickcontrols2universalstyleplugin.cpp @@ -42,8 +42,6 @@ #include "qquickuniversalstyle_p.h" #include "qquickuniversaltheme_p.h" -#include <QtQuickControls2/private/qquickcolorimageprovider_p.h> - static inline void initResources() { Q_INIT_RESOURCE(qtquickcontrols2universalstyleplugin); @@ -84,8 +82,6 @@ void QtQuickControls2UniversalStylePlugin::initializeEngine(QQmlEngine *engine, { QQuickStylePlugin::initializeEngine(engine, uri); - engine->addImageProvider(name(), new QQuickColorImageProvider(QStringLiteral(":/qt-project.org/imports/QtQuick/Controls.2/Universal/images"))); - QByteArray import = QByteArray(uri) + ".impl"; qmlRegisterModule(import, 2, QT_VERSION_MINOR - 7); // Qt 5.7->2.0, 5.8->2.1, 5.9->2.2... diff --git a/src/imports/controls/universal/universal.pri b/src/imports/controls/universal/universal.pri index c80a2dfc..33d0dcb0 100644 --- a/src/imports/controls/universal/universal.pri +++ b/src/imports/controls/universal/universal.pri @@ -16,6 +16,8 @@ QML_FILES += \ $$PWD/ItemDelegate.qml \ $$PWD/Label.qml \ $$PWD/Menu.qml \ + $$PWD/MenuBar.qml \ + $$PWD/MenuBarItem.qml \ $$PWD/MenuItem.qml \ $$PWD/MenuSeparator.qml \ $$PWD/Page.qml \ diff --git a/src/imports/controls/universal/universal.pro b/src/imports/controls/universal/universal.pro index e1b61c04..016fa085 100644 --- a/src/imports/controls/universal/universal.pro +++ b/src/imports/controls/universal/universal.pro @@ -1,6 +1,6 @@ TARGET = qtquickcontrols2universalstyleplugin TARGETPATH = QtQuick/Controls.2/Universal -IMPORT_VERSION = 2.2 +IMPORT_VERSION = 2.3 QT += qml quick QT_PRIVATE += core-private gui-private qml-private quick-private quicktemplates2-private quickcontrols2-private diff --git a/src/imports/imports.pro b/src/imports/imports.pro index e1da66c9..e32bded7 100644 --- a/src/imports/imports.pro +++ b/src/imports/imports.pro @@ -6,5 +6,7 @@ SUBDIRS += \ templates SUBDIRS += \ + controls/fusion/fusion.pro \ + controls/imagine/imagine.pro \ controls/material/material.pro \ controls/universal/universal.pro diff --git a/src/imports/platform/widgets/qwidgetplatformmenu.cpp b/src/imports/platform/widgets/qwidgetplatformmenu.cpp index 1aacb0ff..e5fe734f 100644 --- a/src/imports/platform/widgets/qwidgetplatformmenu.cpp +++ b/src/imports/platform/widgets/qwidgetplatformmenu.cpp @@ -44,7 +44,7 @@ QT_BEGIN_NAMESPACE QWidgetPlatformMenu::QWidgetPlatformMenu(QObject *parent) - : m_tag(reinterpret_cast<quintptr>(this)), m_menu(new QMenu) + : m_menu(new QMenu) { setParent(parent); @@ -95,16 +95,6 @@ void QWidgetPlatformMenu::syncSeparatorsCollapsible(bool enable) m_menu->setSeparatorsCollapsible(enable); } -quintptr QWidgetPlatformMenu::tag() const -{ - return m_tag; -} - -void QWidgetPlatformMenu::setTag(quintptr tag) -{ - m_tag = tag; -} - void QWidgetPlatformMenu::setText(const QString &text) { m_menu->setTitle(text); diff --git a/src/imports/platform/widgets/qwidgetplatformmenu_p.h b/src/imports/platform/widgets/qwidgetplatformmenu_p.h index 1df9ef78..4d58f528 100644 --- a/src/imports/platform/widgets/qwidgetplatformmenu_p.h +++ b/src/imports/platform/widgets/qwidgetplatformmenu_p.h @@ -70,9 +70,6 @@ public: void syncMenuItem(QPlatformMenuItem *item) override; void syncSeparatorsCollapsible(bool enable) override; - quintptr tag()const override; - void setTag(quintptr tag) override; - void setText(const QString &text) override; void setIcon(const QIcon &icon) override; void setEnabled(bool enabled) override; @@ -92,7 +89,6 @@ public: QPlatformMenu *createSubMenu() const override; private: - quintptr m_tag; QScopedPointer<QMenu> m_menu; QVector<QWidgetPlatformMenuItem *> m_items; }; diff --git a/src/imports/platform/widgets/qwidgetplatformmenuitem.cpp b/src/imports/platform/widgets/qwidgetplatformmenuitem.cpp index 8519c899..9de899f2 100644 --- a/src/imports/platform/widgets/qwidgetplatformmenuitem.cpp +++ b/src/imports/platform/widgets/qwidgetplatformmenuitem.cpp @@ -43,7 +43,7 @@ QT_BEGIN_NAMESPACE QWidgetPlatformMenuItem::QWidgetPlatformMenuItem(QObject *parent) - : m_tag(reinterpret_cast<quintptr>(this)), m_action(new QAction) + : m_action(new QAction) { setParent(parent); connect(m_action.data(), &QAction::hovered, this, &QPlatformMenuItem::hovered); @@ -59,16 +59,6 @@ QAction *QWidgetPlatformMenuItem::action() const return m_action.data(); } -quintptr QWidgetPlatformMenuItem::tag() const -{ - return m_tag; -} - -void QWidgetPlatformMenuItem::setTag(quintptr tag) -{ - m_tag = tag; -} - void QWidgetPlatformMenuItem::setText(const QString &text) { m_action->setText(text); diff --git a/src/imports/platform/widgets/qwidgetplatformmenuitem_p.h b/src/imports/platform/widgets/qwidgetplatformmenuitem_p.h index 752f8a03..43b3fc17 100644 --- a/src/imports/platform/widgets/qwidgetplatformmenuitem_p.h +++ b/src/imports/platform/widgets/qwidgetplatformmenuitem_p.h @@ -64,9 +64,6 @@ public: QAction *action() const; - quintptr tag()const override; - void setTag(quintptr tag) override; - void setText(const QString &text) override; void setIcon(const QIcon &icon) override; void setMenu(QPlatformMenu *menu) override; @@ -83,7 +80,6 @@ public: void setIconSize(int size) override; private: - quintptr m_tag; QScopedPointer<QAction> m_action; }; diff --git a/src/imports/templates/doc/src/qtquicktemplates2-qmltypes.qdoc b/src/imports/templates/doc/src/qtquicktemplates2-qmltypes.qdoc index 19725fa4..52796425 100644 --- a/src/imports/templates/doc/src/qtquicktemplates2-qmltypes.qdoc +++ b/src/imports/templates/doc/src/qtquicktemplates2-qmltypes.qdoc @@ -26,7 +26,7 @@ ****************************************************************************/ /*! - \qmlmodule QtQuick.Templates 2.2 + \qmlmodule QtQuick.Templates 2.3 \title Qt Quick Templates 2 QML Types \ingroup qmlmodules \brief Provides QML types for templates (Qt Quick Templates). @@ -38,7 +38,7 @@ \c .qml file: \badcode - import QtQuick.Templates 2.2 as T + import QtQuick.Templates 2.3 as T \endcode For the sake of clarity, there is a one-to-one mapping between the types diff --git a/src/imports/templates/plugins.qmltypes b/src/imports/templates/plugins.qmltypes index 712cf3b6..b951182f 100644 --- a/src/imports/templates/plugins.qmltypes +++ b/src/imports/templates/plugins.qmltypes @@ -4,7 +4,7 @@ import QtQuick.tooling 1.2 // It is used for QML tooling purposes only. // // This file was auto-generated by: -// 'qmlplugindump -nonrelocatable -dependencies dependencies.json QtQuick.Templates 2.2' +// 'qmlplugindump -nonrelocatable -dependencies dependencies.json QtQuick.Templates 2.3' Module { dependencies: ["QtQuick 2.9", "QtQuick.Window 2.2"] @@ -14,9 +14,19 @@ Module { prototype: "QQuickControl" exports: [ "QtQuick.Templates/AbstractButton 2.0", - "QtQuick.Templates/AbstractButton 2.2" + "QtQuick.Templates/AbstractButton 2.2", + "QtQuick.Templates/AbstractButton 2.3" ] - exportMetaObjectRevisions: [0, 2] + exportMetaObjectRevisions: [0, 2, 3] + Enum { + name: "Display" + values: { + "IconOnly": 0, + "TextOnly": 1, + "TextBesideIcon": 2, + "TextUnderIcon": 3 + } + } Property { name: "text"; type: "string" } Property { name: "down"; type: "bool" } Property { name: "pressed"; type: "bool"; isReadonly: true } @@ -24,21 +34,115 @@ Module { Property { name: "checkable"; type: "bool" } Property { name: "autoExclusive"; type: "bool" } Property { name: "indicator"; type: "QQuickItem"; isPointer: true } + Property { name: "icon"; revision: 3; type: "QQuickIcon" } + Property { name: "display"; revision: 3; type: "Display" } + Property { name: "action"; revision: 3; type: "QQuickAction"; isPointer: true } Signal { name: "pressed" } Signal { name: "released" } Signal { name: "canceled" } Signal { name: "clicked" } - Signal { name: "toggled"; revision: 2 } Signal { name: "pressAndHold" } Signal { name: "doubleClicked" } + Signal { name: "toggled"; revision: 2 } + Signal { name: "iconChanged"; revision: 3 } + Signal { name: "displayChanged"; revision: 3 } + Signal { name: "actionChanged"; revision: 3 } Method { name: "toggle" } } Component { + name: "QQuickAction" + prototype: "QObject" + exports: ["QtQuick.Templates/Action 2.3"] + exportMetaObjectRevisions: [0] + Property { name: "text"; type: "string" } + Property { name: "icon"; type: "QQuickIcon" } + Property { name: "enabled"; type: "bool" } + Property { name: "checked"; type: "bool" } + Property { name: "checkable"; type: "bool" } + Property { name: "shortcut"; type: "QVariant" } + Signal { + name: "textChanged" + Parameter { name: "text"; type: "string" } + } + Signal { + name: "iconChanged" + Parameter { name: "icon"; type: "QQuickIcon" } + } + Signal { + name: "enabledChanged" + Parameter { name: "enabled"; type: "bool" } + } + Signal { + name: "checkedChanged" + Parameter { name: "checked"; type: "bool" } + } + Signal { + name: "checkableChanged" + Parameter { name: "checkable"; type: "bool" } + } + Signal { + name: "shortcutChanged" + Parameter { name: "shortcut"; type: "QKeySequence" } + } + Signal { + name: "toggled" + Parameter { name: "source"; type: "QObject"; isPointer: true } + } + Signal { name: "toggled" } + Signal { + name: "triggered" + Parameter { name: "source"; type: "QObject"; isPointer: true } + } + Signal { name: "triggered" } + Method { + name: "toggle" + Parameter { name: "source"; type: "QObject"; isPointer: true } + } + Method { name: "toggle" } + Method { + name: "trigger" + Parameter { name: "source"; type: "QObject"; isPointer: true } + } + Method { name: "trigger" } + } + Component { + name: "QQuickActionGroup" + defaultProperty: "actions" + prototype: "QObject" + exports: ["QtQuick.Templates/ActionGroup 2.3"] + exportMetaObjectRevisions: [0] + attachedType: "QQuickActionGroupAttached" + Property { name: "checkedAction"; type: "QQuickAction"; isPointer: true } + Property { name: "actions"; type: "QQuickAction"; isList: true; isReadonly: true } + Property { name: "exclusive"; type: "bool" } + Property { name: "enabled"; type: "bool" } + Signal { + name: "triggered" + Parameter { name: "action"; type: "QQuickAction"; isPointer: true } + } + Method { + name: "addAction" + Parameter { name: "action"; type: "QQuickAction"; isPointer: true } + } + Method { + name: "removeAction" + Parameter { name: "action"; type: "QQuickAction"; isPointer: true } + } + } + Component { + name: "QQuickActionGroupAttached" + prototype: "QObject" + Property { name: "group"; type: "QQuickActionGroup"; isPointer: true } + } + Component { name: "QQuickApplicationWindow" defaultProperty: "contentData" prototype: "QQuickWindowQmlImpl" - exports: ["QtQuick.Templates/ApplicationWindow 2.0"] - exportMetaObjectRevisions: [0] + exports: [ + "QtQuick.Templates/ApplicationWindow 2.0", + "QtQuick.Templates/ApplicationWindow 2.3" + ] + exportMetaObjectRevisions: [0, 3] attachedType: "QQuickApplicationWindowAttached" Property { name: "background"; type: "QQuickItem"; isPointer: true } Property { name: "contentItem"; type: "QQuickItem"; isReadonly: true; isPointer: true } @@ -49,6 +153,10 @@ Module { Property { name: "overlay"; type: "QQuickOverlay"; isReadonly: true; isPointer: true } Property { name: "font"; type: "QFont" } Property { name: "locale"; type: "QLocale" } + Property { name: "palette"; revision: 3; type: "QPalette" } + Property { name: "menuBar"; revision: 3; type: "QQuickItem"; isPointer: true } + Signal { name: "paletteChanged"; revision: 3 } + Signal { name: "menuBarChanged"; revision: 3 } } Component { name: "QQuickApplicationWindowAttached" @@ -59,6 +167,7 @@ Module { Property { name: "header"; type: "QQuickItem"; isReadonly: true; isPointer: true } Property { name: "footer"; type: "QQuickItem"; isReadonly: true; isPointer: true } Property { name: "overlay"; type: "QQuickOverlay"; isReadonly: true; isPointer: true } + Property { name: "menuBar"; type: "QQuickItem"; isReadonly: true; isPointer: true } } Component { name: "QQuickBusyIndicator" @@ -83,17 +192,20 @@ Module { prototype: "QObject" exports: [ "QtQuick.Templates/ButtonGroup 2.0", - "QtQuick.Templates/ButtonGroup 2.1" + "QtQuick.Templates/ButtonGroup 2.1", + "QtQuick.Templates/ButtonGroup 2.3" ] - exportMetaObjectRevisions: [0, 1] + exportMetaObjectRevisions: [0, 1, 3] attachedType: "QQuickButtonGroupAttached" Property { name: "checkedButton"; type: "QQuickAbstractButton"; isPointer: true } Property { name: "buttons"; type: "QQuickAbstractButton"; isList: true; isReadonly: true } + Property { name: "exclusive"; revision: 3; type: "bool" } Signal { name: "clicked" revision: 1 Parameter { name: "button"; type: "QQuickAbstractButton"; isPointer: true } } + Signal { name: "exclusiveChanged"; revision: 3 } Method { name: "addButton" Parameter { name: "button"; type: "QQuickAbstractButton"; isPointer: true } @@ -139,31 +251,23 @@ Module { Property { name: "count"; type: "int"; isReadonly: true } Property { name: "model"; type: "QVariant" } Property { name: "delegateModel"; type: "QQmlInstanceModel"; isReadonly: true; isPointer: true } - Property { name: "editable"; revision: 2; type: "bool" } - Property { name: "flat"; revision: 1; type: "bool" } - Property { name: "down"; revision: 2; type: "bool" } Property { name: "pressed"; type: "bool" } Property { name: "highlightedIndex"; type: "int"; isReadonly: true } Property { name: "currentIndex"; type: "int" } Property { name: "currentText"; type: "string"; isReadonly: true } Property { name: "displayText"; type: "string" } - Property { name: "editText"; revision: 2; type: "string" } Property { name: "textRole"; type: "string" } Property { name: "delegate"; type: "QQmlComponent"; isPointer: true } Property { name: "indicator"; type: "QQuickItem"; isPointer: true } Property { name: "popup"; type: "QQuickPopup"; isPointer: true } + Property { name: "flat"; revision: 1; type: "bool" } + Property { name: "down"; revision: 2; type: "bool" } + Property { name: "editable"; revision: 2; type: "bool" } + Property { name: "editText"; revision: 2; type: "string" } Property { name: "validator"; revision: 2; type: "QValidator"; isPointer: true } Property { name: "inputMethodHints"; revision: 2; type: "Qt::InputMethodHints" } Property { name: "inputMethodComposing"; revision: 2; type: "bool"; isReadonly: true } Property { name: "acceptableInput"; revision: 2; type: "bool"; isReadonly: true } - Signal { name: "editableChanged"; revision: 2 } - Signal { name: "flatChanged"; revision: 1 } - Signal { name: "downChanged"; revision: 2 } - Signal { name: "editTextChanged"; revision: 2 } - Signal { name: "validatorChanged"; revision: 2 } - Signal { name: "inputMethodHintsChanged"; revision: 2 } - Signal { name: "inputMethodComposingChanged"; revision: 2 } - Signal { name: "acceptableInputChanged"; revision: 2 } Signal { name: "activated" Parameter { name: "index"; type: "int" } @@ -172,7 +276,15 @@ Module { name: "highlighted" Parameter { name: "index"; type: "int" } } + Signal { name: "flatChanged"; revision: 1 } Signal { name: "accepted"; revision: 2 } + Signal { name: "downChanged"; revision: 2 } + Signal { name: "editableChanged"; revision: 2 } + Signal { name: "editTextChanged"; revision: 2 } + Signal { name: "validatorChanged"; revision: 2 } + Signal { name: "inputMethodHintsChanged"; revision: 2 } + Signal { name: "inputMethodComposingChanged"; revision: 2 } + Signal { name: "acceptableInputChanged"; revision: 2 } Method { name: "incrementCurrentIndex" } Method { name: "decrementCurrentIndex" } Method { name: "selectAll"; revision: 2 } @@ -199,9 +311,10 @@ Module { prototype: "QQuickControl" exports: [ "QtQuick.Templates/Container 2.0", - "QtQuick.Templates/Container 2.1" + "QtQuick.Templates/Container 2.1", + "QtQuick.Templates/Container 2.3" ] - exportMetaObjectRevisions: [0, 1] + exportMetaObjectRevisions: [0, 1, 3] Property { name: "count"; type: "int"; isReadonly: true } Property { name: "contentModel"; type: "QVariant"; isReadonly: true } Property { name: "contentData"; type: "QObject"; isList: true; isReadonly: true } @@ -235,6 +348,12 @@ Module { } Method { name: "removeItem" + Parameter { name: "item"; type: "QVariant" } + } + Method { + name: "takeItem" + revision: 3 + type: "QQuickItem*" Parameter { name: "index"; type: "int" } } } @@ -242,8 +361,11 @@ Module { name: "QQuickControl" defaultProperty: "data" prototype: "QQuickItem" - exports: ["QtQuick.Templates/Control 2.0"] - exportMetaObjectRevisions: [0] + exports: [ + "QtQuick.Templates/Control 2.0", + "QtQuick.Templates/Control 2.3" + ] + exportMetaObjectRevisions: [0, 3] Property { name: "font"; type: "QFont" } Property { name: "availableWidth"; type: "double"; isReadonly: true } Property { name: "availableHeight"; type: "double"; isReadonly: true } @@ -263,6 +385,8 @@ Module { Property { name: "wheelEnabled"; type: "bool" } Property { name: "background"; type: "QQuickItem"; isPointer: true } Property { name: "contentItem"; type: "QQuickItem"; isPointer: true } + Property { name: "palette"; revision: 3; type: "QPalette" } + Signal { name: "paletteChanged"; revision: 3 } } Component { name: "QQuickDelayButton" @@ -298,10 +422,10 @@ Module { Property { name: "snapMode"; type: "SnapMode" } Property { name: "wrap"; type: "bool" } Property { name: "pressed"; type: "bool"; isReadonly: true } - Property { name: "live"; revision: 2; type: "bool" } Property { name: "handle"; type: "QQuickItem"; isPointer: true } - Signal { name: "liveChanged"; revision: 2 } + Property { name: "live"; revision: 2; type: "bool" } Signal { name: "moved"; revision: 2 } + Signal { name: "liveChanged"; revision: 2 } Method { name: "increase" } Method { name: "decrease" } } @@ -309,23 +433,52 @@ Module { name: "QQuickDialog" defaultProperty: "contentData" prototype: "QQuickPopup" - exports: ["QtQuick.Templates/Dialog 2.1"] - exportMetaObjectRevisions: [0] + exports: [ + "QtQuick.Templates/Dialog 2.1", + "QtQuick.Templates/Dialog 2.3" + ] + exportMetaObjectRevisions: [0, 3] + Enum { + name: "StandardCode" + values: { + "Rejected": 0, + "Accepted": 1 + } + } Property { name: "title"; type: "string" } Property { name: "header"; type: "QQuickItem"; isPointer: true } Property { name: "footer"; type: "QQuickItem"; isPointer: true } Property { name: "standardButtons"; type: "QPlatformDialogHelper::StandardButtons" } + Property { name: "result"; revision: 3; type: "int" } Signal { name: "accepted" } Signal { name: "rejected" } + Signal { name: "applied"; revision: 3 } + Signal { name: "reset"; revision: 3 } + Signal { name: "discarded"; revision: 3 } + Signal { name: "helpRequested"; revision: 3 } + Signal { name: "resultChanged"; revision: 3 } Method { name: "accept" } Method { name: "reject" } + Method { + name: "done" + Parameter { name: "result"; type: "int" } + } + Method { + name: "standardButton" + revision: 3 + type: "QQuickAbstractButton*" + Parameter { name: "button"; type: "QPlatformDialogHelper::StandardButton" } + } } Component { name: "QQuickDialogButtonBox" defaultProperty: "contentData" prototype: "QQuickContainer" - exports: ["QtQuick.Templates/DialogButtonBox 2.1"] - exportMetaObjectRevisions: [0] + exports: [ + "QtQuick.Templates/DialogButtonBox 2.1", + "QtQuick.Templates/DialogButtonBox 2.3" + ] + exportMetaObjectRevisions: [0, 3] attachedType: "QQuickDialogButtonBoxAttached" Enum { name: "Position" @@ -341,6 +494,9 @@ Module { Signal { name: "accepted" } Signal { name: "rejected" } Signal { name: "helpRequested" } + Signal { name: "applied"; revision: 3 } + Signal { name: "reset"; revision: 3 } + Signal { name: "discarded"; revision: 3 } Signal { name: "clicked" Parameter { name: "button"; type: "QQuickAbstractButton"; isPointer: true } @@ -404,16 +560,36 @@ Module { exportMetaObjectRevisions: [0] Property { name: "font"; type: "QFont" } Property { name: "background"; type: "QQuickItem"; isPointer: true } + Property { name: "palette"; revision: 3; type: "QPalette" } + Signal { name: "paletteChanged"; revision: 3 } } Component { name: "QQuickMenu" defaultProperty: "contentData" prototype: "QQuickPopup" - exports: ["QtQuick.Templates/Menu 2.0"] - exportMetaObjectRevisions: [0] + exports: ["QtQuick.Templates/Menu 2.0", "QtQuick.Templates/Menu 2.3"] + exportMetaObjectRevisions: [0, 3] + Property { name: "count"; revision: 3; type: "int"; isReadonly: true } Property { name: "contentModel"; type: "QVariant"; isReadonly: true } Property { name: "contentData"; type: "QObject"; isList: true; isReadonly: true } Property { name: "title"; type: "string" } + Property { name: "cascade"; revision: 3; type: "bool" } + Property { name: "overlap"; revision: 3; type: "double" } + Property { name: "delegate"; revision: 3; type: "QQmlComponent"; isPointer: true } + Property { name: "currentIndex"; revision: 3; type: "int" } + Signal { name: "countChanged"; revision: 3 } + Signal { + name: "titleChanged" + Parameter { name: "title"; type: "string" } + } + Signal { + name: "cascadeChanged" + revision: 3 + Parameter { name: "cascade"; type: "bool" } + } + Signal { name: "overlapChanged"; revision: 3 } + Signal { name: "delegateChanged"; revision: 3 } + Signal { name: "currentIndexChanged"; revision: 3 } Method { name: "itemAt" type: "QQuickItem*" @@ -435,17 +611,140 @@ Module { } Method { name: "removeItem" + Parameter { name: "item"; type: "QVariant" } + } + Method { + name: "takeItem" + revision: 3 + type: "QQuickItem*" + Parameter { name: "index"; type: "int" } + } + Method { + name: "menuAt" + revision: 3 + type: "QQuickMenu*" + Parameter { name: "index"; type: "int" } + } + Method { + name: "addMenu" + revision: 3 + Parameter { name: "menu"; type: "QQuickMenu"; isPointer: true } + } + Method { + name: "insertMenu" + revision: 3 + Parameter { name: "index"; type: "int" } + Parameter { name: "menu"; type: "QQuickMenu"; isPointer: true } + } + Method { + name: "removeMenu" + revision: 3 + Parameter { name: "menu"; type: "QQuickMenu"; isPointer: true } + } + Method { + name: "takeMenu" + revision: 3 + type: "QQuickMenu*" + Parameter { name: "index"; type: "int" } + } + Method { + name: "actionAt" + revision: 3 + type: "QQuickAction*" + Parameter { name: "index"; type: "int" } + } + Method { + name: "addAction" + revision: 3 + Parameter { name: "action"; type: "QQuickAction"; isPointer: true } + } + Method { + name: "insertAction" + revision: 3 Parameter { name: "index"; type: "int" } + Parameter { name: "action"; type: "QQuickAction"; isPointer: true } } + Method { + name: "removeAction" + revision: 3 + Parameter { name: "action"; type: "QQuickAction"; isPointer: true } + } + Method { + name: "takeAction" + revision: 3 + type: "QQuickAction*" + Parameter { name: "index"; type: "int" } + } + Method { + name: "popup" + revision: 3 + Parameter { name: "args"; type: "QQmlV4Function"; isPointer: true } + } + Method { name: "dismiss"; revision: 3 } } Component { - name: "QQuickMenuItem" + name: "QQuickMenuBar" + defaultProperty: "contentData" + prototype: "QQuickContainer" + exports: ["QtQuick.Templates/MenuBar 2.3"] + exportMetaObjectRevisions: [0] + Property { name: "delegate"; type: "QQmlComponent"; isPointer: true } + Property { name: "contentWidth"; type: "double" } + Property { name: "contentHeight"; type: "double" } + Property { name: "menus"; type: "QQuickMenu"; isList: true; isReadonly: true } + Property { name: "contentData"; type: "QObject"; isList: true; isReadonly: true } + Method { + name: "menuAt" + type: "QQuickMenu*" + Parameter { name: "index"; type: "int" } + } + Method { + name: "addMenu" + Parameter { name: "menu"; type: "QQuickMenu"; isPointer: true } + } + Method { + name: "insertMenu" + Parameter { name: "index"; type: "int" } + Parameter { name: "menu"; type: "QQuickMenu"; isPointer: true } + } + Method { + name: "removeMenu" + Parameter { name: "menu"; type: "QQuickMenu"; isPointer: true } + } + Method { + name: "takeMenu" + type: "QQuickMenu*" + Parameter { name: "index"; type: "int" } + } + } + Component { + name: "QQuickMenuBarItem" defaultProperty: "data" prototype: "QQuickAbstractButton" - exports: ["QtQuick.Templates/MenuItem 2.0"] + exports: ["QtQuick.Templates/MenuBarItem 2.3"] exportMetaObjectRevisions: [0] + Property { name: "menuBar"; type: "QQuickMenuBar"; isReadonly: true; isPointer: true } + Property { name: "menu"; type: "QQuickMenu"; isPointer: true } + Property { name: "highlighted"; type: "bool" } + Signal { name: "triggered" } + } + Component { + name: "QQuickMenuItem" + defaultProperty: "data" + prototype: "QQuickAbstractButton" + exports: [ + "QtQuick.Templates/MenuItem 2.0", + "QtQuick.Templates/MenuItem 2.3" + ] + exportMetaObjectRevisions: [0, 3] Property { name: "highlighted"; type: "bool" } + Property { name: "arrow"; revision: 3; type: "QQuickItem"; isPointer: true } + Property { name: "menu"; revision: 3; type: "QQuickMenu"; isReadonly: true; isPointer: true } + Property { name: "subMenu"; revision: 3; type: "QQuickMenu"; isReadonly: true; isPointer: true } Signal { name: "triggered" } + Signal { name: "arrowChanged"; revision: 3 } + Signal { name: "menuChanged"; revision: 3 } + Signal { name: "subMenuChanged"; revision: 3 } } Component { name: "QQuickMenuSeparator" @@ -458,6 +757,19 @@ Module { name: "QQuickOverlay" defaultProperty: "data" prototype: "QQuickItem" + exports: ["QtQuick.Templates/Overlay 2.3"] + isCreatable: false + exportMetaObjectRevisions: [0] + attachedType: "QQuickOverlayAttached" + Property { name: "modal"; type: "QQmlComponent"; isPointer: true } + Property { name: "modeless"; type: "QQmlComponent"; isPointer: true } + Signal { name: "pressed" } + Signal { name: "released" } + } + Component { + name: "QQuickOverlayAttached" + prototype: "QObject" + Property { name: "overlay"; type: "QQuickOverlay"; isReadonly: true; isPointer: true } Property { name: "modal"; type: "QQmlComponent"; isPointer: true } Property { name: "modeless"; type: "QQmlComponent"; isPointer: true } Signal { name: "pressed" } @@ -472,10 +784,10 @@ Module { Property { name: "title"; type: "string" } Property { name: "header"; type: "QQuickItem"; isPointer: true } Property { name: "footer"; type: "QQuickItem"; isPointer: true } - Property { name: "contentWidth"; revision: 1; type: "double" } - Property { name: "contentHeight"; revision: 1; type: "double" } Property { name: "contentData"; type: "QObject"; isList: true; isReadonly: true } Property { name: "contentChildren"; type: "QQuickItem"; isList: true; isReadonly: true } + Property { name: "contentWidth"; revision: 1; type: "double" } + Property { name: "contentHeight"; revision: 1; type: "double" } Signal { name: "contentWidthChanged"; revision: 1 } Signal { name: "contentHeightChanged"; revision: 1 } } @@ -507,9 +819,10 @@ Module { prototype: "QObject" exports: [ "QtQuick.Templates/Popup 2.0", - "QtQuick.Templates/Popup 2.1" + "QtQuick.Templates/Popup 2.1", + "QtQuick.Templates/Popup 2.3" ] - exportMetaObjectRevisions: [0, 1] + exportMetaObjectRevisions: [0, 1, 3] Enum { name: "ClosePolicy" values: { @@ -546,7 +859,6 @@ Module { Property { name: "contentHeight"; type: "double" } Property { name: "availableWidth"; type: "double"; isReadonly: true } Property { name: "availableHeight"; type: "double"; isReadonly: true } - Property { name: "spacing"; revision: 1; type: "double" } Property { name: "margins"; type: "double" } Property { name: "topMargin"; type: "double" } Property { name: "leftMargin"; type: "double" } @@ -558,7 +870,9 @@ Module { Property { name: "rightPadding"; type: "double" } Property { name: "bottomPadding"; type: "double" } Property { name: "locale"; type: "QLocale" } + Property { name: "mirrored"; revision: 3; type: "bool"; isReadonly: true } Property { name: "font"; type: "QFont" } + Property { name: "palette"; revision: 3; type: "QPalette" } Property { name: "parent"; type: "QQuickItem"; isPointer: true } Property { name: "background"; type: "QQuickItem"; isPointer: true } Property { name: "contentItem"; type: "QQuickItem"; isPointer: true } @@ -570,21 +884,28 @@ Module { Property { name: "modal"; type: "bool" } Property { name: "dim"; type: "bool" } Property { name: "visible"; type: "bool" } + Property { name: "enabled"; revision: 3; type: "bool" } + Property { name: "opened"; revision: 3; type: "bool"; isReadonly: true } Property { name: "opacity"; type: "double" } Property { name: "scale"; type: "double" } Property { name: "closePolicy"; type: "ClosePolicy" } Property { name: "transformOrigin"; type: "TransformOrigin" } Property { name: "enter"; type: "QQuickTransition"; isPointer: true } Property { name: "exit"; type: "QQuickTransition"; isPointer: true } - Signal { name: "spacingChanged"; revision: 1 } + Property { name: "spacing"; revision: 1; type: "double" } + Signal { name: "opened" } + Signal { name: "closed" } + Signal { name: "aboutToShow" } + Signal { name: "aboutToHide" } + Signal { name: "mirroredChanged"; revision: 3 } + Signal { name: "paletteChanged"; revision: 3 } + Signal { name: "enabledChanged"; revision: 3 } + Signal { name: "openedChanged"; revision: 3 } Signal { name: "windowChanged" Parameter { name: "window"; type: "QQuickWindow"; isPointer: true } } - Signal { name: "aboutToShow" } - Signal { name: "aboutToHide" } - Signal { name: "opened" } - Signal { name: "closed" } + Signal { name: "spacingChanged"; revision: 1 } Method { name: "open" } Method { name: "close" } Method { @@ -627,9 +948,10 @@ Module { exports: [ "QtQuick.Templates/RangeSlider 2.0", "QtQuick.Templates/RangeSlider 2.1", - "QtQuick.Templates/RangeSlider 2.2" + "QtQuick.Templates/RangeSlider 2.2", + "QtQuick.Templates/RangeSlider 2.3" ] - exportMetaObjectRevisions: [0, 1, 2] + exportMetaObjectRevisions: [0, 1, 2, 3] Enum { name: "SnapMode" values: { @@ -646,6 +968,8 @@ Module { Property { name: "snapMode"; type: "SnapMode" } Property { name: "orientation"; type: "Qt::Orientation" } Property { name: "live"; revision: 2; type: "bool" } + Property { name: "horizontal"; revision: 3; type: "bool"; isReadonly: true } + Property { name: "vertical"; revision: 3; type: "bool"; isReadonly: true } Signal { name: "liveChanged"; revision: 2 } Method { name: "setValues" @@ -680,9 +1004,10 @@ Module { prototype: "QQuickControl" exports: [ "QtQuick.Templates/ScrollBar 2.0", - "QtQuick.Templates/ScrollBar 2.2" + "QtQuick.Templates/ScrollBar 2.2", + "QtQuick.Templates/ScrollBar 2.3" ] - exportMetaObjectRevisions: [0, 2] + exportMetaObjectRevisions: [0, 2, 3] attachedType: "QQuickScrollBarAttached" Enum { name: "SnapMode" @@ -709,6 +1034,8 @@ Module { Property { name: "snapMode"; revision: 2; type: "SnapMode" } Property { name: "interactive"; revision: 2; type: "bool" } Property { name: "policy"; revision: 2; type: "Policy" } + Property { name: "horizontal"; revision: 3; type: "bool"; isReadonly: true } + Property { name: "vertical"; revision: 3; type: "bool"; isReadonly: true } Signal { name: "snapModeChanged"; revision: 2 } Signal { name: "interactiveChanged"; revision: 2 } Signal { name: "policyChanged"; revision: 2 } @@ -733,13 +1060,18 @@ Module { name: "QQuickScrollIndicator" defaultProperty: "data" prototype: "QQuickControl" - exports: ["QtQuick.Templates/ScrollIndicator 2.0"] - exportMetaObjectRevisions: [0] + exports: [ + "QtQuick.Templates/ScrollIndicator 2.0", + "QtQuick.Templates/ScrollIndicator 2.3" + ] + exportMetaObjectRevisions: [0, 3] attachedType: "QQuickScrollIndicatorAttached" Property { name: "size"; type: "double" } Property { name: "position"; type: "double" } Property { name: "active"; type: "bool" } Property { name: "orientation"; type: "Qt::Orientation" } + Property { name: "horizontal"; revision: 3; type: "bool"; isReadonly: true } + Property { name: "vertical"; revision: 3; type: "bool"; isReadonly: true } Method { name: "setSize" Parameter { name: "size"; type: "double" } @@ -773,9 +1105,10 @@ Module { exports: [ "QtQuick.Templates/Slider 2.0", "QtQuick.Templates/Slider 2.1", - "QtQuick.Templates/Slider 2.2" + "QtQuick.Templates/Slider 2.2", + "QtQuick.Templates/Slider 2.3" ] - exportMetaObjectRevisions: [0, 1, 2] + exportMetaObjectRevisions: [0, 1, 2, 3] Enum { name: "SnapMode" values: { @@ -791,12 +1124,14 @@ Module { Property { name: "visualPosition"; type: "double"; isReadonly: true } Property { name: "stepSize"; type: "double" } Property { name: "snapMode"; type: "SnapMode" } - Property { name: "live"; revision: 2; type: "bool" } Property { name: "pressed"; type: "bool" } + Property { name: "horizontal"; revision: 3; type: "bool"; isReadonly: true } + Property { name: "vertical"; revision: 3; type: "bool"; isReadonly: true } Property { name: "orientation"; type: "Qt::Orientation" } Property { name: "handle"; type: "QQuickItem"; isPointer: true } - Signal { name: "liveChanged"; revision: 2 } + Property { name: "live"; revision: 2; type: "bool" } Signal { name: "moved"; revision: 2 } + Signal { name: "liveChanged"; revision: 2 } Method { name: "increase" } Method { name: "decrease" } Method { @@ -813,9 +1148,10 @@ Module { exports: [ "QtQuick.Templates/SpinBox 2.0", "QtQuick.Templates/SpinBox 2.1", - "QtQuick.Templates/SpinBox 2.2" + "QtQuick.Templates/SpinBox 2.2", + "QtQuick.Templates/SpinBox 2.3" ] - exportMetaObjectRevisions: [0, 1, 2] + exportMetaObjectRevisions: [0, 1, 2, 3] Property { name: "from"; type: "int" } Property { name: "to"; type: "int" } Property { name: "value"; type: "int" } @@ -828,9 +1164,11 @@ Module { Property { name: "down"; type: "QQuickSpinButton"; isReadonly: true; isPointer: true } Property { name: "inputMethodHints"; revision: 2; type: "Qt::InputMethodHints" } Property { name: "inputMethodComposing"; revision: 2; type: "bool"; isReadonly: true } + Property { name: "wrap"; revision: 3; type: "bool" } Signal { name: "valueModified"; revision: 2 } Signal { name: "inputMethodHintsChanged"; revision: 2 } Signal { name: "inputMethodComposingChanged"; revision: 2 } + Signal { name: "wrapChanged"; revision: 3 } Method { name: "increase" } Method { name: "decrease" } } @@ -838,8 +1176,8 @@ Module { name: "QQuickSpinButton" prototype: "QObject" Property { name: "pressed"; type: "bool" } - Property { name: "hovered"; revision: 1; type: "bool" } Property { name: "indicator"; type: "QQuickItem"; isPointer: true } + Property { name: "hovered"; revision: 1; type: "bool" } Signal { name: "hoveredChanged"; revision: 1 } } Component { @@ -888,6 +1226,12 @@ Module { Property { name: "pushExit"; type: "QQuickTransition"; isPointer: true } Property { name: "replaceEnter"; type: "QQuickTransition"; isPointer: true } Property { name: "replaceExit"; type: "QQuickTransition"; isPointer: true } + Property { name: "empty"; revision: 3; type: "bool"; isReadonly: true } + Signal { name: "emptyChanged"; revision: 3 } + Method { + name: "clear" + Parameter { name: "operation"; type: "Operation" } + } Method { name: "clear" } Method { name: "get" @@ -942,23 +1286,23 @@ Module { prototype: "QObject" Property { name: "position"; type: "double" } Property { name: "complete"; type: "bool"; isReadonly: true } - Property { name: "enabled"; type: "bool" } Property { name: "left"; type: "QQmlComponent"; isPointer: true } Property { name: "behind"; type: "QQmlComponent"; isPointer: true } Property { name: "right"; type: "QQmlComponent"; isPointer: true } Property { name: "leftItem"; type: "QQuickItem"; isReadonly: true; isPointer: true } Property { name: "behindItem"; type: "QQuickItem"; isReadonly: true; isPointer: true } Property { name: "rightItem"; type: "QQuickItem"; isReadonly: true; isPointer: true } + Property { name: "enabled"; type: "bool" } Property { name: "transition"; type: "QQuickTransition"; isPointer: true } Signal { name: "completed" } Signal { name: "opened" } Signal { name: "closed" } + Method { name: "close"; revision: 1 } Method { name: "open" revision: 2 Parameter { name: "side"; type: "QQuickSwipeDelegate::Side" } } - Method { name: "close"; revision: 1 } } Component { name: "QQuickSwipeDelegate" @@ -999,6 +1343,8 @@ Module { attachedType: "QQuickSwipeViewAttached" Property { name: "interactive"; revision: 1; type: "bool" } Property { name: "orientation"; revision: 2; type: "Qt::Orientation" } + Property { name: "horizontal"; revision: 3; type: "bool"; isReadonly: true } + Property { name: "vertical"; revision: 3; type: "bool"; isReadonly: true } Signal { name: "interactiveChanged"; revision: 1 } Signal { name: "orientationChanged"; revision: 2 } } @@ -1007,9 +1353,9 @@ Module { prototype: "QObject" Property { name: "index"; type: "int"; isReadonly: true } Property { name: "isCurrentItem"; type: "bool"; isReadonly: true } + Property { name: "view"; type: "QQuickSwipeView"; isReadonly: true; isPointer: true } Property { name: "isNextItem"; revision: 1; type: "bool"; isReadonly: true } Property { name: "isPreviousItem"; revision: 1; type: "bool"; isReadonly: true } - Property { name: "view"; type: "QQuickSwipeView"; isReadonly: true; isPointer: true } } Component { name: "QQuickSwitch" @@ -1038,6 +1384,7 @@ Module { "QtQuick.Templates/TabBar 2.2" ] exportMetaObjectRevisions: [0, 2] + attachedType: "QQuickTabBarAttached" Enum { name: "Position" values: { @@ -1052,6 +1399,13 @@ Module { Signal { name: "contentHeightChanged"; revision: 2 } } Component { + name: "QQuickTabBarAttached" + prototype: "QObject" + Property { name: "index"; type: "int"; isReadonly: true } + Property { name: "tabBar"; type: "QQuickTabBar"; isReadonly: true; isPointer: true } + Property { name: "position"; type: "QQuickTabBar::Position"; isReadonly: true } + } + Component { name: "QQuickTabButton" defaultProperty: "data" prototype: "QQuickAbstractButton" @@ -1076,10 +1430,9 @@ Module { Property { name: "focusReason"; type: "Qt::FocusReason" } Property { name: "hovered"; revision: 1; type: "bool"; isReadonly: true } Property { name: "hoverEnabled"; revision: 1; type: "bool" } + Property { name: "palette"; revision: 3; type: "QPalette" } Signal { name: "implicitWidthChanged3" } Signal { name: "implicitHeightChanged3" } - Signal { name: "hoveredChanged"; revision: 1 } - Signal { name: "hoverEnabledChanged"; revision: 1 } Signal { name: "pressAndHold" Parameter { name: "event"; type: "QQuickMouseEvent"; isPointer: true } @@ -1094,6 +1447,9 @@ Module { revision: 1 Parameter { name: "event"; type: "QQuickMouseEvent"; isPointer: true } } + Signal { name: "hoveredChanged"; revision: 1 } + Signal { name: "hoverEnabledChanged"; revision: 1 } + Signal { name: "paletteChanged"; revision: 3 } } Component { name: "QQuickTextAreaAttached" @@ -1117,10 +1473,9 @@ Module { Property { name: "focusReason"; type: "Qt::FocusReason" } Property { name: "hovered"; revision: 1; type: "bool"; isReadonly: true } Property { name: "hoverEnabled"; revision: 1; type: "bool" } + Property { name: "palette"; revision: 3; type: "QPalette" } Signal { name: "implicitWidthChanged3" } Signal { name: "implicitHeightChanged3" } - Signal { name: "hoveredChanged"; revision: 1 } - Signal { name: "hoverEnabledChanged"; revision: 1 } Signal { name: "pressAndHold" Parameter { name: "event"; type: "QQuickMouseEvent"; isPointer: true } @@ -1135,6 +1490,9 @@ Module { revision: 1 Parameter { name: "event"; type: "QQuickMouseEvent"; isPointer: true } } + Signal { name: "hoveredChanged"; revision: 1 } + Signal { name: "hoverEnabledChanged"; revision: 1 } + Signal { name: "paletteChanged"; revision: 3 } } Component { name: "QQuickToolBar" diff --git a/src/imports/templates/qtquicktemplates2plugin.cpp b/src/imports/templates/qtquicktemplates2plugin.cpp index 2abdeb6e..813ace40 100644 --- a/src/imports/templates/qtquicktemplates2plugin.cpp +++ b/src/imports/templates/qtquicktemplates2plugin.cpp @@ -35,8 +35,11 @@ ****************************************************************************/ #include <QtQml/qqmlextensionplugin.h> +#include <QtQml/private/qqmlglobal_p.h> #include <QtQuickTemplates2/private/qquickabstractbutton_p.h> +#include <QtQuickTemplates2/private/qquickaction_p.h> +#include <QtQuickTemplates2/private/qquickactiongroup_p.h> #include <QtQuickTemplates2/private/qquickapplicationwindow_p.h> #include <QtQuickTemplates2/private/qquickbusyindicator_p.h> #include <QtQuickTemplates2/private/qquickbutton_p.h> @@ -53,14 +56,18 @@ #include <QtQuickTemplates2/private/qquickdrawer_p.h> #include <QtQuickTemplates2/private/qquickframe_p.h> #include <QtQuickTemplates2/private/qquickgroupbox_p.h> +#include <QtQuickTemplates2/private/qquickicon_p.h> #include <QtQuickTemplates2/private/qquickitemdelegate_p.h> #include <QtQuickTemplates2/private/qquicklabel_p.h> #include <QtQuickTemplates2/private/qquickmenu_p.h> +#include <QtQuickTemplates2/private/qquickmenubar_p.h> +#include <QtQuickTemplates2/private/qquickmenubaritem_p.h> #include <QtQuickTemplates2/private/qquickmenuitem_p.h> #include <QtQuickTemplates2/private/qquickmenuseparator_p.h> #include <QtQuickTemplates2/private/qquickoverlay_p.h> #include <QtQuickTemplates2/private/qquickpage_p.h> #include <QtQuickTemplates2/private/qquickpageindicator_p.h> +#include <QtQuickTemplates2/private/qquickpaletteprovider_p.h> #include <QtQuickTemplates2/private/qquickpane_p.h> #include <QtQuickTemplates2/private/qquickpopup_p.h> #include <QtQuickTemplates2/private/qquickprogressbar_p.h> @@ -108,6 +115,16 @@ extern void qt_quick_set_shortcut_context_matcher(ShortcutContextMatcher matcher QT_BEGIN_NAMESPACE +static void initProviders() +{ + QQuickPaletteProvider::init(); +} + +static void cleanupProviders() +{ + QQuickPaletteProvider::cleanup(); +} + class QtQuickTemplates2Plugin: public QQmlExtensionPlugin { Q_OBJECT @@ -117,15 +134,17 @@ public: QtQuickTemplates2Plugin(QObject *parent = nullptr); ~QtQuickTemplates2Plugin(); - void registerTypes(const char *uri); + void registerTypes(const char *uri) override; private: + bool registered; #if QT_CONFIG(shortcut) ShortcutContextMatcher originalContextMatcher; #endif }; -QtQuickTemplates2Plugin::QtQuickTemplates2Plugin(QObject *parent) : QQmlExtensionPlugin(parent) +QtQuickTemplates2Plugin::QtQuickTemplates2Plugin(QObject *parent) + : QQmlExtensionPlugin(parent), registered(false) { initResources(); @@ -137,6 +156,9 @@ QtQuickTemplates2Plugin::QtQuickTemplates2Plugin(QObject *parent) : QQmlExtensio QtQuickTemplates2Plugin::~QtQuickTemplates2Plugin() { + if (registered) + cleanupProviders(); + #if QT_CONFIG(shortcut) qt_quick_set_shortcut_context_matcher(originalContextMatcher); #endif @@ -144,6 +166,9 @@ QtQuickTemplates2Plugin::~QtQuickTemplates2Plugin() void QtQuickTemplates2Plugin::registerTypes(const char *uri) { + registered = true; + initProviders(); + qmlRegisterModule(uri, 2, QT_VERSION_MINOR - 7); // Qt 5.7->2.0, 5.8->2.1, 5.9->2.2... // QtQuick.Templates 2.0 (originally introduced in Qt 5.7) @@ -186,21 +211,21 @@ void QtQuickTemplates2Plugin::registerTypes(const char *uri) qmlRegisterType<QQuickSpinButton>(); qmlRegisterType<QQuickStackView>(uri, 2, 0, "StackView"); qmlRegisterType<QQuickStackViewAttached>(); - qmlRegisterType<QQuickSwipeDelegate>(uri, 2, 0, "SwipeDelegate"); qmlRegisterType<QQuickSwipe>(); - qmlRegisterType<QQuickSwipeViewAttached>(); + qmlRegisterType<QQuickSwipeDelegate>(uri, 2, 0, "SwipeDelegate"); qmlRegisterType<QQuickSwipeView>(uri, 2, 0, "SwipeView"); + qmlRegisterType<QQuickSwipeViewAttached>(); qmlRegisterType<QQuickSwitch>(uri, 2, 0, "Switch"); qmlRegisterType<QQuickSwitchDelegate>(uri, 2, 0, "SwitchDelegate"); qmlRegisterType<QQuickTabBar>(uri, 2, 0, "TabBar"); qmlRegisterType<QQuickTabButton>(uri, 2, 0, "TabButton"); - qmlRegisterType<QQuickTextAreaAttached>(); qmlRegisterType<QQuickTextArea>(uri, 2, 0, "TextArea"); + qmlRegisterType<QQuickTextAreaAttached>(); qmlRegisterType<QQuickTextField>(uri, 2, 0, "TextField"); qmlRegisterType<QQuickToolBar>(uri, 2, 0, "ToolBar"); qmlRegisterType<QQuickToolButton>(uri, 2, 0, "ToolButton"); - qmlRegisterType<QQuickToolTipAttached>(); qmlRegisterType<QQuickToolTip>(uri, 2, 0, "ToolTip"); + qmlRegisterType<QQuickToolTipAttached>(); #if QT_CONFIG(quick_listview) && QT_CONFIG(quick_pathview) qmlRegisterType<QQuickTumblerAttached>(); qmlRegisterType<QQuickTumbler>(uri, 2, 0, "Tumbler"); @@ -209,10 +234,10 @@ void QtQuickTemplates2Plugin::registerTypes(const char *uri) // NOTE: register the latest revisions of all template/control base classes to // make revisioned properties available to their subclasses (synced with Qt 5.7) qmlRegisterRevision<QQuickItem, 7>(uri, 2, 0); - qmlRegisterRevision<QQuickWindow, 2>(uri, 2, 0); qmlRegisterRevision<QQuickText, 6>(uri, 2, 0); qmlRegisterRevision<QQuickTextInput, 7>(uri, 2, 0); qmlRegisterRevision<QQuickTextEdit, 7>(uri, 2, 0); + qmlRegisterRevision<QQuickWindow, 2>(uri, 2, 0); qmlRegisterRevision<QWindow, 3>(uri, 2, 0); // QtQuick.Templates 2.1 (new types and revisions in Qt 5.8) @@ -262,6 +287,38 @@ void QtQuickTemplates2Plugin::registerTypes(const char *uri) qmlRegisterRevision<QQuickText, 9>(uri, 2, 2); qmlRegisterRevision<QQuickTextInput, 9>(uri, 2, 2); qmlRegisterRevision<QQuickWindowQmlImpl, 2>(uri, 2, 2); + + // QtQuick.Templates 2.3 (new types and revisions in Qt 5.10) + qmlRegisterType<QQuickAbstractButton, 3>(uri, 2, 3, "AbstractButton"); + qmlRegisterType<QQuickAction>(uri, 2, 3, "Action"); + qmlRegisterType<QQuickActionGroup>(uri, 2, 3, "ActionGroup"); + qmlRegisterType<QQuickApplicationWindow, 3>(uri, 2, 3, "ApplicationWindow"); + qmlRegisterType<QQuickButtonGroup, 3>(uri, 2, 3, "ButtonGroup"); + qmlRegisterType<QQuickControl, 3>(uri, 2, 3, "Control"); + qmlRegisterType<QQuickContainer, 3>(uri, 2, 3, "Container"); + qmlRegisterType<QQuickDialog, 3>(uri, 2, 3, "Dialog"); + qmlRegisterType<QQuickDialogButtonBox, 3>(uri, 2, 3, "DialogButtonBox"); + qRegisterMetaType<QQuickIcon>(); + qmlRegisterType<QQuickLabel, 3>(uri, 2, 3, "Label"); + qmlRegisterType<QQuickMenu, 3>(uri, 2, 3, "Menu"); + qmlRegisterType<QQuickMenuBar>(uri, 2, 3, "MenuBar"); + qmlRegisterType<QQuickMenuBarItem>(uri, 2, 3, "MenuBarItem"); + qmlRegisterType<QQuickMenuItem, 3>(uri, 2, 3, "MenuItem"); + qmlRegisterUncreatableType<QQuickOverlay>(uri, 2, 3, "Overlay", QStringLiteral("Overlay is only available as an attached property.")); + qmlRegisterType<QQuickOverlayAttached>(); + qmlRegisterType<QQuickPopup, 3>(uri, 2, 3, "Popup"); + qmlRegisterType<QQuickRangeSlider, 3>(uri, 2, 3, "RangeSlider"); + qmlRegisterType<QQuickScrollBar, 3>(uri, 2, 3, "ScrollBar"); + qmlRegisterType<QQuickScrollIndicator, 3>(uri, 2, 3, "ScrollIndicator"); + qmlRegisterType<QQuickSlider, 3>(uri, 2, 3, "Slider"); + qmlRegisterType<QQuickSpinBox, 3>(uri, 2, 3, "SpinBox"); + qmlRegisterType<QQuickTextArea, 3>(uri, 2, 3, "TextArea"); + qmlRegisterType<QQuickTextField, 3>(uri, 2, 3, "TextField"); + + // NOTE: register the latest revisions of all template/control base classes to + // make revisioned properties available to their subclasses (synced with Qt 5.10) + qmlRegisterRevision<QQuickText, 10>(uri, 2, 3); + qmlRegisterRevision<QQuickTextEdit, 10>(uri, 2, 3); } QT_END_NAMESPACE diff --git a/src/imports/templates/templates.pro b/src/imports/templates/templates.pro index 28207807..9a95812b 100644 --- a/src/imports/templates/templates.pro +++ b/src/imports/templates/templates.pro @@ -1,6 +1,6 @@ TARGET = qtquicktemplates2plugin TARGETPATH = QtQuick/Templates.2 -IMPORT_VERSION = 2.2 +IMPORT_VERSION = 2.3 QT += qml quick QT_PRIVATE += core-private gui-private qml-private quick-private quicktemplates2-private |