aboutsummaryrefslogtreecommitdiffstats
path: root/src/imports/controls
diff options
context:
space:
mode:
Diffstat (limited to 'src/imports/controls')
-rw-r--r--src/imports/controls/AbstractButton.qml4
-rw-r--r--src/imports/controls/Action.qml40
-rw-r--r--src/imports/controls/ActionGroup.qml40
-rw-r--r--src/imports/controls/ApplicationWindow.qml14
-rw-r--r--src/imports/controls/BusyIndicator.qml10
-rw-r--r--src/imports/controls/Button.qml36
-rw-r--r--src/imports/controls/ButtonGroup.qml4
-rw-r--r--src/imports/controls/CheckBox.qml11
-rw-r--r--src/imports/controls/CheckDelegate.qml28
-rw-r--r--src/imports/controls/CheckIndicator.qml25
-rw-r--r--src/imports/controls/ComboBox.qml29
-rw-r--r--src/imports/controls/Container.qml4
-rw-r--r--src/imports/controls/Control.qml4
-rw-r--r--src/imports/controls/DelayButton.qml16
-rw-r--r--src/imports/controls/Dial.qml20
-rw-r--r--src/imports/controls/Dialog.qml20
-rw-r--r--src/imports/controls/DialogButtonBox.qml5
-rw-r--r--src/imports/controls/Drawer.qml21
-rw-r--r--src/imports/controls/Frame.qml10
-rw-r--r--src/imports/controls/GroupBox.qml12
-rw-r--r--src/imports/controls/ItemDelegate.qml34
-rw-r--r--src/imports/controls/Label.qml12
-rw-r--r--src/imports/controls/Menu.qml26
-rw-r--r--src/imports/controls/MenuBar.qml63
-rw-r--r--src/imports/controls/MenuBarItem.qml78
-rw-r--r--src/imports/controls/MenuItem.qml50
-rw-r--r--src/imports/controls/MenuSeparator.qml10
-rw-r--r--src/imports/controls/Page.qml10
-rw-r--r--src/imports/controls/PageIndicator.qml10
-rw-r--r--src/imports/controls/Pane.qml10
-rw-r--r--src/imports/controls/Popup.qml19
-rw-r--r--src/imports/controls/ProgressBar.qml11
-rw-r--r--src/imports/controls/RadioButton.qml11
-rw-r--r--src/imports/controls/RadioDelegate.qml28
-rw-r--r--src/imports/controls/RadioIndicator.qml15
-rw-r--r--src/imports/controls/RangeSlider.qml64
-rw-r--r--src/imports/controls/RoundButton.qml34
-rw-r--r--src/imports/controls/ScrollBar.qml8
-rw-r--r--src/imports/controls/ScrollIndicator.qml8
-rw-r--r--src/imports/controls/ScrollView.qml8
-rw-r--r--src/imports/controls/Slider.qml47
-rw-r--r--src/imports/controls/SpinBox.qml17
-rw-r--r--src/imports/controls/StackView.qml6
-rw-r--r--src/imports/controls/SwipeDelegate.qml34
-rw-r--r--src/imports/controls/SwipeView.qml6
-rw-r--r--src/imports/controls/Switch.qml10
-rw-r--r--src/imports/controls/SwitchDelegate.qml32
-rw-r--r--src/imports/controls/SwitchIndicator.qml12
-rw-r--r--src/imports/controls/TabBar.qml5
-rw-r--r--src/imports/controls/TabButton.qml27
-rw-r--r--src/imports/controls/TextArea.qml14
-rw-r--r--src/imports/controls/TextField.qml18
-rw-r--r--src/imports/controls/ToolBar.qml10
-rw-r--r--src/imports/controls/ToolButton.qml30
-rw-r--r--src/imports/controls/ToolSeparator.qml10
-rw-r--r--src/imports/controls/ToolTip.qml12
-rw-r--r--src/imports/controls/Tumbler.qml12
-rw-r--r--src/imports/controls/controls.pri14
-rw-r--r--src/imports/controls/controls.pro2
-rw-r--r--src/imports/controls/dependencies.json2
-rw-r--r--src/imports/controls/doc/images/qtquickcontrols2-applicationwindow-wireframe.pngbin5696 -> 8518 bytes
-rw-r--r--src/imports/controls/doc/images/qtquickcontrols2-button-icononly.pngbin0 -> 626 bytes
-rw-r--r--src/imports/controls/doc/images/qtquickcontrols2-button-textbesideicon.pngbin0 -> 1827 bytes
-rw-r--r--src/imports/controls/doc/images/qtquickcontrols2-button-textonly.pngbin0 -> 1470 bytes
-rw-r--r--src/imports/controls/doc/images/qtquickcontrols2-fusion-palettes.pngbin0 -> 12467 bytes
-rw-r--r--src/imports/controls/doc/images/qtquickcontrols2-fusion-thumbnail.pngbin0 -> 7522 bytes
-rw-r--r--src/imports/controls/doc/images/qtquickcontrols2-fusion-violet.pngbin0 -> 3763 bytes
-rw-r--r--src/imports/controls/doc/images/qtquickcontrols2-fusion.pngbin0 -> 12316 bytes
-rw-r--r--src/imports/controls/doc/images/qtquickcontrols2-imagine-9-patch-4x.pngbin0 -> 6210 bytes
-rw-r--r--src/imports/controls/doc/images/qtquickcontrols2-imagine-9-patch-inset-boundaries.pngbin0 -> 7797 bytes
-rw-r--r--src/imports/controls/doc/images/qtquickcontrols2-imagine-9-patch-inset.pngbin0 -> 2435 bytes
-rw-r--r--src/imports/controls/doc/images/qtquickcontrols2-imagine-9-patch-resized-padding.pngbin0 -> 27813 bytes
-rw-r--r--src/imports/controls/doc/images/qtquickcontrols2-imagine-9-patch-resized-stretchable.pngbin0 -> 24222 bytes
-rw-r--r--src/imports/controls/doc/images/qtquickcontrols2-imagine-9-patch-size.pngbin0 -> 7982 bytes
-rw-r--r--src/imports/controls/doc/images/qtquickcontrols2-imagine-9-patch.svgzbin0 -> 7598 bytes
-rw-r--r--src/imports/controls/doc/images/qtquickcontrols2-imagine-customization-dark.pngbin0 -> 4542 bytes
-rw-r--r--src/imports/controls/doc/images/qtquickcontrols2-imagine-customization.svgzbin0 -> 2215 bytes
-rw-r--r--src/imports/controls/doc/images/qtquickcontrols2-imagine-thumbnail.pngbin0 -> 5192 bytes
-rw-r--r--src/imports/controls/doc/images/qtquickcontrols2-imagine.pngbin0 -> 10113 bytes
-rw-r--r--src/imports/controls/doc/images/qtquickcontrols2-menu-custom.pngbin2960 -> 8745 bytes
-rw-r--r--src/imports/controls/doc/images/qtquickcontrols2-menubar-custom.pngbin0 -> 3392 bytes
-rw-r--r--src/imports/controls/doc/images/qtquickcontrols2-menubar.pngbin0 -> 10188 bytes
-rw-r--r--src/imports/controls/doc/manifest-meta.qdocconf35
-rw-r--r--src/imports/controls/doc/qtquickcontrols2.qdocconf4
-rw-r--r--src/imports/controls/doc/snippets/qtquickcontrols2-action.qml56
-rw-r--r--src/imports/controls/doc/snippets/qtquickcontrols2-button-icononly.qml34
-rw-r--r--src/imports/controls/doc/snippets/qtquickcontrols2-button-textbesideicon.qml35
-rw-r--r--src/imports/controls/doc/snippets/qtquickcontrols2-button-textonly.qml34
-rw-r--r--src/imports/controls/doc/snippets/qtquickcontrols2-menu-custom.qml113
-rw-r--r--src/imports/controls/doc/snippets/qtquickcontrols2-menubar-custom.qml84
-rw-r--r--src/imports/controls/doc/snippets/qtquickcontrols2-menubar.qml67
-rw-r--r--src/imports/controls/doc/snippets/qtquickcontrols2-scrollbar-policy.qml2
-rw-r--r--src/imports/controls/doc/snippets/qtquickcontrols2-scrollview-custom.qml2
-rw-r--r--src/imports/controls/doc/snippets/qtquickcontrols2-scrollview-interactive.qml2
-rw-r--r--src/imports/controls/doc/snippets/qtquickcontrols2-scrollview-listview.qml2
-rw-r--r--src/imports/controls/doc/snippets/qtquickcontrols2-scrollview-policy.qml2
-rw-r--r--src/imports/controls/doc/snippets/qtquickcontrols2-scrollview.qml2
-rw-r--r--src/imports/controls/doc/snippets/qtquickcontrols2-stackview-visible.qml2
-rw-r--r--src/imports/controls/doc/snippets/qtquickcontrols2-swipedelegate-transition.qml2
-rw-r--r--src/imports/controls/doc/src/includes/qquickicon.qdocinc42
-rw-r--r--src/imports/controls/doc/src/includes/qquickimaginestyle.qdocinc29
-rw-r--r--src/imports/controls/doc/src/qtquickcontrols2-configuration.qdoc155
-rw-r--r--src/imports/controls/doc/src/qtquickcontrols2-customize.qdoc49
-rw-r--r--src/imports/controls/doc/src/qtquickcontrols2-differences.qdoc26
-rw-r--r--src/imports/controls/doc/src/qtquickcontrols2-environment.qdoc4
-rw-r--r--src/imports/controls/doc/src/qtquickcontrols2-fusion.qdoc93
-rw-r--r--src/imports/controls/doc/src/qtquickcontrols2-imagine.qdoc2546
-rw-r--r--src/imports/controls/doc/src/qtquickcontrols2-index.qdoc7
-rw-r--r--src/imports/controls/doc/src/qtquickcontrols2-material.qdoc2
-rw-r--r--src/imports/controls/doc/src/qtquickcontrols2-menus.qdoc27
-rw-r--r--src/imports/controls/doc/src/qtquickcontrols2-qmltypes.qdoc4
-rw-r--r--src/imports/controls/doc/src/qtquickcontrols2-styles.qdoc15
-rw-r--r--src/imports/controls/doc/src/qtquickcontrols2-universal.qdoc2
-rw-r--r--src/imports/controls/fusion/ApplicationWindow.qml55
-rw-r--r--src/imports/controls/fusion/BusyIndicator.qml69
-rw-r--r--src/imports/controls/fusion/Button.qml77
-rw-r--r--src/imports/controls/fusion/ButtonPanel.qml77
-rw-r--r--src/imports/controls/fusion/CheckBox.qml75
-rw-r--r--src/imports/controls/fusion/CheckDelegate.qml88
-rw-r--r--src/imports/controls/fusion/CheckIndicator.qml92
-rw-r--r--src/imports/controls/fusion/ComboBox.qml177
-rw-r--r--src/imports/controls/fusion/DelayButton.qml137
-rw-r--r--src/imports/controls/fusion/Dial.qml72
-rw-r--r--src/imports/controls/fusion/Dialog.qml103
-rw-r--r--src/imports/controls/fusion/DialogButtonBox.qml77
-rw-r--r--src/imports/controls/fusion/Drawer.qml90
-rw-r--r--src/imports/controls/fusion/Frame.qml59
-rw-r--r--src/imports/controls/fusion/GroupBox.qml80
-rw-r--r--src/imports/controls/fusion/ItemDelegate.qml78
-rw-r--r--src/imports/controls/fusion/Label.qml49
-rw-r--r--src/imports/controls/fusion/Menu.qml93
-rw-r--r--src/imports/controls/fusion/MenuBar.qml74
-rw-r--r--src/imports/controls/fusion/MenuBarItem.qml79
-rw-r--r--src/imports/controls/fusion/MenuItem.qml104
-rw-r--r--src/imports/controls/fusion/MenuSeparator.qml59
-rw-r--r--src/imports/controls/fusion/Page.qml62
-rw-r--r--src/imports/controls/fusion/PageIndicator.qml74
-rw-r--r--src/imports/controls/fusion/Pane.qml58
-rw-r--r--src/imports/controls/fusion/Popup.qml70
-rw-r--r--src/imports/controls/fusion/ProgressBar.qml118
-rw-r--r--src/imports/controls/fusion/RadioButton.qml75
-rw-r--r--src/imports/controls/fusion/RadioDelegate.qml88
-rw-r--r--src/imports/controls/fusion/RadioIndicator.qml78
-rw-r--r--src/imports/controls/fusion/RangeSlider.qml82
-rw-r--r--src/imports/controls/fusion/RoundButton.qml102
-rw-r--r--src/imports/controls/fusion/ScrollBar.qml79
-rw-r--r--src/imports/controls/fusion/ScrollIndicator.qml80
-rw-r--r--src/imports/controls/fusion/ScrollView.qml68
-rw-r--r--src/imports/controls/fusion/Slider.qml68
-rw-r--r--src/imports/controls/fusion/SliderGroove.qml94
-rw-r--r--src/imports/controls/fusion/SliderHandle.qml86
-rw-r--r--src/imports/controls/fusion/SpinBox.qml183
-rw-r--r--src/imports/controls/fusion/SwipeDelegate.qml80
-rw-r--r--src/imports/controls/fusion/Switch.qml75
-rw-r--r--src/imports/controls/fusion/SwitchDelegate.qml87
-rw-r--r--src/imports/controls/fusion/SwitchIndicator.qml137
-rw-r--r--src/imports/controls/fusion/TabBar.qml80
-rw-r--r--src/imports/controls/fusion/TabButton.qml110
-rw-r--r--src/imports/controls/fusion/TextArea.qml76
-rw-r--r--src/imports/controls/fusion/TextField.qml103
-rw-r--r--src/imports/controls/fusion/ToolBar.qml85
-rw-r--r--src/imports/controls/fusion/ToolButton.qml77
-rw-r--r--src/imports/controls/fusion/ToolSeparator.qml66
-rw-r--r--src/imports/controls/fusion/ToolTip.qml80
-rw-r--r--src/imports/controls/fusion/Tumbler.qml74
-rw-r--r--src/imports/controls/fusion/fusion.pri67
-rw-r--r--src/imports/controls/fusion/fusion.pro25
-rw-r--r--src/imports/controls/fusion/images/arrow.pngbin0 -> 195 bytes
-rw-r--r--src/imports/controls/fusion/images/arrow.svg75
-rw-r--r--src/imports/controls/fusion/images/arrow@2x.pngbin0 -> 219 bytes
-rw-r--r--src/imports/controls/fusion/images/arrow@3x.pngbin0 -> 245 bytes
-rw-r--r--src/imports/controls/fusion/images/arrow@4x.pngbin0 -> 290 bytes
-rw-r--r--src/imports/controls/fusion/images/checkmark.pngbin0 -> 255 bytes
-rw-r--r--src/imports/controls/fusion/images/checkmark.svg72
-rw-r--r--src/imports/controls/fusion/images/checkmark@2x.pngbin0 -> 390 bytes
-rw-r--r--src/imports/controls/fusion/images/checkmark@3x.pngbin0 -> 494 bytes
-rw-r--r--src/imports/controls/fusion/images/checkmark@4x.pngbin0 -> 556 bytes
-rw-r--r--src/imports/controls/fusion/images/progressmask.pngbin0 -> 383 bytes
-rw-r--r--src/imports/controls/fusion/images/progressmask.svg74
-rw-r--r--src/imports/controls/fusion/images/progressmask@2x.pngbin0 -> 660 bytes
-rw-r--r--src/imports/controls/fusion/images/progressmask@3x.pngbin0 -> 866 bytes
-rw-r--r--src/imports/controls/fusion/images/progressmask@4x.pngbin0 -> 1103 bytes
-rw-r--r--src/imports/controls/fusion/qmldir4
-rw-r--r--src/imports/controls/fusion/qquickfusionbusyindicator.cpp90
-rw-r--r--src/imports/controls/fusion/qquickfusionbusyindicator_p.h75
-rw-r--r--src/imports/controls/fusion/qquickfusiondial.cpp152
-rw-r--r--src/imports/controls/fusion/qquickfusiondial_p.h80
-rw-r--r--src/imports/controls/fusion/qquickfusionknob.cpp99
-rw-r--r--src/imports/controls/fusion/qquickfusionknob_p.h75
-rw-r--r--src/imports/controls/fusion/qquickfusionstyle.cpp172
-rw-r--r--src/imports/controls/fusion/qquickfusionstyle_p.h87
-rw-r--r--src/imports/controls/fusion/qquickfusiontheme.cpp46
-rw-r--r--src/imports/controls/fusion/qquickfusiontheme_p.h65
-rw-r--r--src/imports/controls/fusion/qtquickcontrols2fusionstyle.qrc16
-rw-r--r--src/imports/controls/fusion/qtquickcontrols2fusionstyleplugin.cpp121
-rw-r--r--src/imports/controls/images/arrow-indicator.pngbin0 -> 260 bytes
-rw-r--r--src/imports/controls/images/arrow-indicator@2x.pngbin0 -> 343 bytes
-rw-r--r--src/imports/controls/images/arrow-indicator@3x.pngbin0 -> 438 bytes
-rw-r--r--src/imports/controls/images/arrow-indicator@4x.pngbin0 -> 545 bytes
-rw-r--r--src/imports/controls/imagine/ApplicationWindow.qml77
-rw-r--r--src/imports/controls/imagine/BusyIndicator.qml87
-rw-r--r--src/imports/controls/imagine/Button.qml99
-rw-r--r--src/imports/controls/imagine/CheckBox.qml108
-rw-r--r--src/imports/controls/imagine/CheckDelegate.qml118
-rw-r--r--src/imports/controls/imagine/ComboBox.qml172
-rw-r--r--src/imports/controls/imagine/DelayButton.qml139
-rw-r--r--src/imports/controls/imagine/Dial.qml99
-rw-r--r--src/imports/controls/imagine/Dialog.qml119
-rw-r--r--src/imports/controls/imagine/DialogButtonBox.qml86
-rw-r--r--src/imports/controls/imagine/Drawer.qml96
-rw-r--r--src/imports/controls/imagine/Frame.qml69
-rw-r--r--src/imports/controls/imagine/GroupBox.qml105
-rw-r--r--src/imports/controls/imagine/ItemDelegate.qml94
-rw-r--r--src/imports/controls/imagine/Label.qml62
-rw-r--r--src/imports/controls/imagine/Menu.qml105
-rw-r--r--src/imports/controls/imagine/MenuItem.qml138
-rw-r--r--src/imports/controls/imagine/MenuSeparator.qml78
-rw-r--r--src/imports/controls/imagine/Page.qml75
-rw-r--r--src/imports/controls/imagine/PageIndicator.qml91
-rw-r--r--src/imports/controls/imagine/Pane.qml69
-rw-r--r--src/imports/controls/imagine/Popup.qml89
-rw-r--r--src/imports/controls/imagine/ProgressBar.qml140
-rw-r--r--src/imports/controls/imagine/RadioButton.qml106
-rw-r--r--src/imports/controls/imagine/RadioDelegate.qml116
-rw-r--r--src/imports/controls/imagine/RangeSlider.qml132
-rw-r--r--src/imports/controls/imagine/RoundButton.qml90
-rw-r--r--src/imports/controls/imagine/ScrollBar.qml117
-rw-r--r--src/imports/controls/imagine/ScrollIndicator.qml110
-rw-r--r--src/imports/controls/imagine/ScrollView.qml86
-rw-r--r--src/imports/controls/imagine/Slider.qml118
-rw-r--r--src/imports/controls/imagine/SpinBox.qml154
-rw-r--r--src/imports/controls/imagine/StackView.qml90
-rw-r--r--src/imports/controls/imagine/SwipeDelegate.qml96
-rw-r--r--src/imports/controls/imagine/SwipeView.qml88
-rw-r--r--src/imports/controls/imagine/Switch.qml135
-rw-r--r--src/imports/controls/imagine/SwitchDelegate.qml146
-rw-r--r--src/imports/controls/imagine/TabBar.qml86
-rw-r--r--src/imports/controls/imagine/TabButton.qml92
-rw-r--r--src/imports/controls/imagine/TextArea.qml95
-rw-r--r--src/imports/controls/imagine/TextField.qml95
-rw-r--r--src/imports/controls/imagine/ToolBar.qml71
-rw-r--r--src/imports/controls/imagine/ToolButton.qml95
-rw-r--r--src/imports/controls/imagine/ToolSeparator.qml82
-rw-r--r--src/imports/controls/imagine/ToolTip.qml84
-rw-r--r--src/imports/controls/imagine/Tumbler.qml89
-rw-r--r--src/imports/controls/imagine/images/applicationwindow-background.pngbin0 -> 67 bytes
-rw-r--r--src/imports/controls/imagine/images/applicationwindow-background@2x.pngbin0 -> 78 bytes
-rw-r--r--src/imports/controls/imagine/images/applicationwindow-background@3x.pngbin0 -> 78 bytes
-rw-r--r--src/imports/controls/imagine/images/applicationwindow-background@4x.pngbin0 -> 79 bytes
-rw-r--r--src/imports/controls/imagine/images/applicationwindow-overlay-modal.pngbin0 -> 70 bytes
-rw-r--r--src/imports/controls/imagine/images/applicationwindow-overlay-modal@2x.pngbin0 -> 77 bytes
-rw-r--r--src/imports/controls/imagine/images/applicationwindow-overlay-modal@3x.pngbin0 -> 78 bytes
-rw-r--r--src/imports/controls/imagine/images/applicationwindow-overlay-modal@4x.pngbin0 -> 78 bytes
-rw-r--r--src/imports/controls/imagine/images/applicationwindow-overlay.pngbin0 -> 70 bytes
-rw-r--r--src/imports/controls/imagine/images/applicationwindow-overlay@2x.pngbin0 -> 77 bytes
-rw-r--r--src/imports/controls/imagine/images/applicationwindow-overlay@3x.pngbin0 -> 78 bytes
-rw-r--r--src/imports/controls/imagine/images/applicationwindow-overlay@4x.pngbin0 -> 78 bytes
-rw-r--r--src/imports/controls/imagine/images/busyindicator-animation.webpbin0 -> 30116 bytes
-rw-r--r--src/imports/controls/imagine/images/busyindicator-animation@2x.webpbin0 -> 56588 bytes
-rw-r--r--src/imports/controls/imagine/images/busyindicator-animation@3x.webpbin0 -> 77816 bytes
-rw-r--r--src/imports/controls/imagine/images/busyindicator-animation@4x.webpbin0 -> 103290 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-checked-disabled.9.pngbin0 -> 185 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-checked-disabled@2x.9.pngbin0 -> 258 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-checked-disabled@3x.9.pngbin0 -> 338 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-checked-disabled@4x.9.pngbin0 -> 426 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-checked-focused.9.pngbin0 -> 185 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-checked-focused@2x.9.pngbin0 -> 258 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-checked-focused@3x.9.pngbin0 -> 338 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-checked-focused@4x.9.pngbin0 -> 436 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-checked-hovered.9.pngbin0 -> 185 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-checked-hovered@2x.9.pngbin0 -> 258 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-checked-hovered@3x.9.pngbin0 -> 338 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-checked-hovered@4x.9.pngbin0 -> 436 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-checked.9.pngbin0 -> 185 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-checked@2x.9.pngbin0 -> 258 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-checked@3x.9.pngbin0 -> 334 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-checked@4x.9.pngbin0 -> 436 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-disabled.9.pngbin0 -> 185 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-disabled@2x.9.pngbin0 -> 258 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-disabled@3x.9.pngbin0 -> 338 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-disabled@4x.9.pngbin0 -> 426 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-flat-checkable-checked-pressed.9.pngbin0 -> 185 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-flat-checkable-checked-pressed@2x.9.pngbin0 -> 258 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-flat-checkable-checked-pressed@3x.9.pngbin0 -> 338 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-flat-checkable-checked-pressed@4x.9.pngbin0 -> 426 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-flat-checkable-highlighted-checked.9.pngbin0 -> 185 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-flat-checkable-highlighted-checked@2x.9.pngbin0 -> 258 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-flat-checkable-highlighted-checked@3x.9.pngbin0 -> 338 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-flat-checkable-highlighted-checked@4x.9.pngbin0 -> 426 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-flat-checkable-highlighted-pressed.9.pngbin0 -> 185 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-flat-checkable-highlighted-pressed@2x.9.pngbin0 -> 258 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-flat-checkable-highlighted-pressed@3x.9.pngbin0 -> 338 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-flat-checkable-highlighted-pressed@4x.9.pngbin0 -> 426 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-flat-checkable-highlighted.9.pngbin0 -> 117 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-flat-checkable-highlighted@2x.9.pngbin0 -> 122 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-flat-checkable-highlighted@3x.9.pngbin0 -> 130 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-flat-checkable-highlighted@4x.9.pngbin0 -> 138 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-flat-checkable-hovered.9.pngbin0 -> 185 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-flat-checkable-hovered@2x.9.pngbin0 -> 258 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-flat-checkable-hovered@3x.9.pngbin0 -> 334 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-flat-checkable-hovered@4x.9.pngbin0 -> 436 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-flat-checkable-pressed.9.pngbin0 -> 185 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-flat-checkable-pressed@2x.9.pngbin0 -> 258 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-flat-checkable-pressed@3x.9.pngbin0 -> 338 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-flat-checkable-pressed@4x.9.pngbin0 -> 426 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-flat-checkable.9.pngbin0 -> 117 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-flat-checkable@2x.9.pngbin0 -> 122 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-flat-checkable@3x.9.pngbin0 -> 130 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-flat-checkable@4x.9.pngbin0 -> 138 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-flat-checked.9.pngbin0 -> 185 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-flat-checked@2x.9.pngbin0 -> 258 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-flat-checked@3x.9.pngbin0 -> 338 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-flat-checked@4x.9.pngbin0 -> 426 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-flat-disabled.9.pngbin0 -> 117 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-flat-disabled@2x.9.pngbin0 -> 122 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-flat-disabled@3x.9.pngbin0 -> 130 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-flat-disabled@4x.9.pngbin0 -> 138 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-flat-hovered.9.pngbin0 -> 185 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-flat-hovered@2x.9.pngbin0 -> 258 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-flat-hovered@3x.9.pngbin0 -> 334 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-flat-hovered@4x.9.pngbin0 -> 436 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-flat-pressed.9.pngbin0 -> 185 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-flat-pressed@2x.9.pngbin0 -> 258 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-flat-pressed@3x.9.pngbin0 -> 338 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-flat-pressed@4x.9.pngbin0 -> 426 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-flat.9.pngbin0 -> 117 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-flat@2x.9.pngbin0 -> 122 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-flat@3x.9.pngbin0 -> 130 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-flat@4x.9.pngbin0 -> 138 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-focused.9.pngbin0 -> 185 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-focused@2x.9.pngbin0 -> 258 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-focused@3x.9.pngbin0 -> 338 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-focused@4x.9.pngbin0 -> 436 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-highlighted-checkable-checked.9.pngbin0 -> 185 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-highlighted-checkable-checked@2x.9.pngbin0 -> 258 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-highlighted-checkable-checked@3x.9.pngbin0 -> 338 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-highlighted-checkable-checked@4x.9.pngbin0 -> 436 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-highlighted-checkable-hovered.9.pngbin0 -> 185 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-highlighted-checkable-hovered@2x.9.pngbin0 -> 258 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-highlighted-checkable-hovered@3x.9.pngbin0 -> 334 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-highlighted-checkable-hovered@4x.9.pngbin0 -> 426 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-highlighted-checkable-pressed.9.pngbin0 -> 185 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-highlighted-checkable-pressed@2x.9.pngbin0 -> 258 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-highlighted-checkable-pressed@3x.9.pngbin0 -> 338 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-highlighted-checkable-pressed@4x.9.pngbin0 -> 436 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-highlighted-checked.9.pngbin0 -> 185 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-highlighted-checked@2x.9.pngbin0 -> 258 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-highlighted-checked@3x.9.pngbin0 -> 338 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-highlighted-checked@4x.9.pngbin0 -> 436 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-highlighted-disabled.9.pngbin0 -> 185 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-highlighted-disabled@2x.9.pngbin0 -> 258 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-highlighted-disabled@3x.9.pngbin0 -> 338 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-highlighted-disabled@4x.9.pngbin0 -> 426 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-highlighted-focused.9.pngbin0 -> 185 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-highlighted-focused@2x.9.pngbin0 -> 258 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-highlighted-focused@3x.9.pngbin0 -> 334 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-highlighted-focused@4x.9.pngbin0 -> 426 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-highlighted-hovered.9.pngbin0 -> 185 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-highlighted-hovered@2x.9.pngbin0 -> 258 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-highlighted-hovered@3x.9.pngbin0 -> 334 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-highlighted-hovered@4x.9.pngbin0 -> 426 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-highlighted-pressed.9.pngbin0 -> 185 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-highlighted-pressed@2x.9.pngbin0 -> 258 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-highlighted-pressed@3x.9.pngbin0 -> 338 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-highlighted-pressed@4x.9.pngbin0 -> 436 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-highlighted.9.pngbin0 -> 185 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-highlighted@2x.9.pngbin0 -> 258 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-highlighted@3x.9.pngbin0 -> 338 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-highlighted@4x.9.pngbin0 -> 426 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-hovered.9.pngbin0 -> 185 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-hovered@2x.9.pngbin0 -> 258 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-hovered@3x.9.pngbin0 -> 338 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-hovered@4x.9.pngbin0 -> 436 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-pressed.9.pngbin0 -> 185 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-pressed@2x.9.pngbin0 -> 258 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-pressed@3x.9.pngbin0 -> 334 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background-pressed@4x.9.pngbin0 -> 436 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background.9.pngbin0 -> 185 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background@2x.9.pngbin0 -> 258 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background@3x.9.pngbin0 -> 338 bytes
-rw-r--r--src/imports/controls/imagine/images/button-background@4x.9.pngbin0 -> 426 bytes
-rw-r--r--src/imports/controls/imagine/images/checkbox-indicator-checked-focused.pngbin0 -> 235 bytes
-rw-r--r--src/imports/controls/imagine/images/checkbox-indicator-checked-focused@2x.pngbin0 -> 376 bytes
-rw-r--r--src/imports/controls/imagine/images/checkbox-indicator-checked-focused@3x.pngbin0 -> 455 bytes
-rw-r--r--src/imports/controls/imagine/images/checkbox-indicator-checked-focused@4x.pngbin0 -> 628 bytes
-rw-r--r--src/imports/controls/imagine/images/checkbox-indicator-checked-hovered.pngbin0 -> 235 bytes
-rw-r--r--src/imports/controls/imagine/images/checkbox-indicator-checked-hovered@2x.pngbin0 -> 376 bytes
-rw-r--r--src/imports/controls/imagine/images/checkbox-indicator-checked-hovered@3x.pngbin0 -> 455 bytes
-rw-r--r--src/imports/controls/imagine/images/checkbox-indicator-checked-hovered@4x.pngbin0 -> 628 bytes
-rw-r--r--src/imports/controls/imagine/images/checkbox-indicator-checked-pressed.pngbin0 -> 238 bytes
-rw-r--r--src/imports/controls/imagine/images/checkbox-indicator-checked-pressed@2x.pngbin0 -> 396 bytes
-rw-r--r--src/imports/controls/imagine/images/checkbox-indicator-checked-pressed@3x.pngbin0 -> 477 bytes
-rw-r--r--src/imports/controls/imagine/images/checkbox-indicator-checked-pressed@4x.pngbin0 -> 664 bytes
-rw-r--r--src/imports/controls/imagine/images/checkbox-indicator-checked.pngbin0 -> 232 bytes
-rw-r--r--src/imports/controls/imagine/images/checkbox-indicator-checked@2x.pngbin0 -> 389 bytes
-rw-r--r--src/imports/controls/imagine/images/checkbox-indicator-checked@3x.pngbin0 -> 478 bytes
-rw-r--r--src/imports/controls/imagine/images/checkbox-indicator-checked@4x.pngbin0 -> 637 bytes
-rw-r--r--src/imports/controls/imagine/images/checkbox-indicator-disabled.pngbin0 -> 121 bytes
-rw-r--r--src/imports/controls/imagine/images/checkbox-indicator-disabled@2x.pngbin0 -> 156 bytes
-rw-r--r--src/imports/controls/imagine/images/checkbox-indicator-disabled@3x.pngbin0 -> 192 bytes
-rw-r--r--src/imports/controls/imagine/images/checkbox-indicator-disabled@4x.pngbin0 -> 227 bytes
-rw-r--r--src/imports/controls/imagine/images/checkbox-indicator-focused.pngbin0 -> 121 bytes
-rw-r--r--src/imports/controls/imagine/images/checkbox-indicator-focused@2x.pngbin0 -> 156 bytes
-rw-r--r--src/imports/controls/imagine/images/checkbox-indicator-focused@3x.pngbin0 -> 192 bytes
-rw-r--r--src/imports/controls/imagine/images/checkbox-indicator-focused@4x.pngbin0 -> 227 bytes
-rw-r--r--src/imports/controls/imagine/images/checkbox-indicator-hovered.pngbin0 -> 121 bytes
-rw-r--r--src/imports/controls/imagine/images/checkbox-indicator-hovered@2x.pngbin0 -> 156 bytes
-rw-r--r--src/imports/controls/imagine/images/checkbox-indicator-hovered@3x.pngbin0 -> 192 bytes
-rw-r--r--src/imports/controls/imagine/images/checkbox-indicator-hovered@4x.pngbin0 -> 227 bytes
-rw-r--r--src/imports/controls/imagine/images/checkbox-indicator-partially-checked-focused.pngbin0 -> 131 bytes
-rw-r--r--src/imports/controls/imagine/images/checkbox-indicator-partially-checked-focused@2x.pngbin0 -> 164 bytes
-rw-r--r--src/imports/controls/imagine/images/checkbox-indicator-partially-checked-focused@3x.pngbin0 -> 202 bytes
-rw-r--r--src/imports/controls/imagine/images/checkbox-indicator-partially-checked-focused@4x.pngbin0 -> 243 bytes
-rw-r--r--src/imports/controls/imagine/images/checkbox-indicator-partially-checked-hovered.pngbin0 -> 131 bytes
-rw-r--r--src/imports/controls/imagine/images/checkbox-indicator-partially-checked-hovered@2x.pngbin0 -> 164 bytes
-rw-r--r--src/imports/controls/imagine/images/checkbox-indicator-partially-checked-hovered@3x.pngbin0 -> 202 bytes
-rw-r--r--src/imports/controls/imagine/images/checkbox-indicator-partially-checked-hovered@4x.pngbin0 -> 243 bytes
-rw-r--r--src/imports/controls/imagine/images/checkbox-indicator-partially-checked-pressed.pngbin0 -> 131 bytes
-rw-r--r--src/imports/controls/imagine/images/checkbox-indicator-partially-checked-pressed@2x.pngbin0 -> 164 bytes
-rw-r--r--src/imports/controls/imagine/images/checkbox-indicator-partially-checked-pressed@3x.pngbin0 -> 202 bytes
-rw-r--r--src/imports/controls/imagine/images/checkbox-indicator-partially-checked-pressed@4x.pngbin0 -> 243 bytes
-rw-r--r--src/imports/controls/imagine/images/checkbox-indicator-partially-checked.pngbin0 -> 131 bytes
-rw-r--r--src/imports/controls/imagine/images/checkbox-indicator-partially-checked@2x.pngbin0 -> 164 bytes
-rw-r--r--src/imports/controls/imagine/images/checkbox-indicator-partially-checked@3x.pngbin0 -> 202 bytes
-rw-r--r--src/imports/controls/imagine/images/checkbox-indicator-partially-checked@4x.pngbin0 -> 243 bytes
-rw-r--r--src/imports/controls/imagine/images/checkbox-indicator-pressed.pngbin0 -> 121 bytes
-rw-r--r--src/imports/controls/imagine/images/checkbox-indicator-pressed@2x.pngbin0 -> 156 bytes
-rw-r--r--src/imports/controls/imagine/images/checkbox-indicator-pressed@3x.pngbin0 -> 192 bytes
-rw-r--r--src/imports/controls/imagine/images/checkbox-indicator-pressed@4x.pngbin0 -> 227 bytes
-rw-r--r--src/imports/controls/imagine/images/checkbox-indicator.pngbin0 -> 121 bytes
-rw-r--r--src/imports/controls/imagine/images/checkbox-indicator@2x.pngbin0 -> 156 bytes
-rw-r--r--src/imports/controls/imagine/images/checkbox-indicator@3x.pngbin0 -> 192 bytes
-rw-r--r--src/imports/controls/imagine/images/checkbox-indicator@4x.pngbin0 -> 227 bytes
-rw-r--r--src/imports/controls/imagine/images/checkdelegate-background-checked.9.pngbin0 -> 113 bytes
-rw-r--r--src/imports/controls/imagine/images/checkdelegate-background-checked@2x.9.pngbin0 -> 123 bytes
-rw-r--r--src/imports/controls/imagine/images/checkdelegate-background-checked@3x.9.pngbin0 -> 127 bytes
-rw-r--r--src/imports/controls/imagine/images/checkdelegate-background-checked@4x.9.pngbin0 -> 132 bytes
-rw-r--r--src/imports/controls/imagine/images/checkdelegate-background-disabled.9.pngbin0 -> 114 bytes
-rw-r--r--src/imports/controls/imagine/images/checkdelegate-background-disabled@2x.9.pngbin0 -> 123 bytes
-rw-r--r--src/imports/controls/imagine/images/checkdelegate-background-disabled@3x.9.pngbin0 -> 127 bytes
-rw-r--r--src/imports/controls/imagine/images/checkdelegate-background-disabled@4x.9.pngbin0 -> 132 bytes
-rw-r--r--src/imports/controls/imagine/images/checkdelegate-background-focused.9.pngbin0 -> 114 bytes
-rw-r--r--src/imports/controls/imagine/images/checkdelegate-background-focused@2x.9.pngbin0 -> 123 bytes
-rw-r--r--src/imports/controls/imagine/images/checkdelegate-background-focused@3x.9.pngbin0 -> 127 bytes
-rw-r--r--src/imports/controls/imagine/images/checkdelegate-background-focused@4x.9.pngbin0 -> 132 bytes
-rw-r--r--src/imports/controls/imagine/images/checkdelegate-background-hovered.9.pngbin0 -> 113 bytes
-rw-r--r--src/imports/controls/imagine/images/checkdelegate-background-hovered@2x.9.pngbin0 -> 123 bytes
-rw-r--r--src/imports/controls/imagine/images/checkdelegate-background-hovered@3x.9.pngbin0 -> 127 bytes
-rw-r--r--src/imports/controls/imagine/images/checkdelegate-background-hovered@4x.9.pngbin0 -> 132 bytes
-rw-r--r--src/imports/controls/imagine/images/checkdelegate-background-pressed.9.pngbin0 -> 114 bytes
-rw-r--r--src/imports/controls/imagine/images/checkdelegate-background-pressed@2x.9.pngbin0 -> 123 bytes
-rw-r--r--src/imports/controls/imagine/images/checkdelegate-background-pressed@3x.9.pngbin0 -> 127 bytes
-rw-r--r--src/imports/controls/imagine/images/checkdelegate-background-pressed@4x.9.pngbin0 -> 132 bytes
-rw-r--r--src/imports/controls/imagine/images/checkdelegate-background.9.pngbin0 -> 113 bytes
-rw-r--r--src/imports/controls/imagine/images/checkdelegate-background@2x.9.pngbin0 -> 123 bytes
-rw-r--r--src/imports/controls/imagine/images/checkdelegate-background@3x.9.pngbin0 -> 127 bytes
-rw-r--r--src/imports/controls/imagine/images/checkdelegate-background@4x.9.pngbin0 -> 132 bytes
-rw-r--r--src/imports/controls/imagine/images/checkdelegate-indicator-checked-focused.pngbin0 -> 235 bytes
-rw-r--r--src/imports/controls/imagine/images/checkdelegate-indicator-checked-focused@2x.pngbin0 -> 376 bytes
-rw-r--r--src/imports/controls/imagine/images/checkdelegate-indicator-checked-focused@3x.pngbin0 -> 455 bytes
-rw-r--r--src/imports/controls/imagine/images/checkdelegate-indicator-checked-focused@4x.pngbin0 -> 628 bytes
-rw-r--r--src/imports/controls/imagine/images/checkdelegate-indicator-checked-hovered.pngbin0 -> 235 bytes
-rw-r--r--src/imports/controls/imagine/images/checkdelegate-indicator-checked-hovered@2x.pngbin0 -> 376 bytes
-rw-r--r--src/imports/controls/imagine/images/checkdelegate-indicator-checked-hovered@3x.pngbin0 -> 455 bytes
-rw-r--r--src/imports/controls/imagine/images/checkdelegate-indicator-checked-hovered@4x.pngbin0 -> 628 bytes
-rw-r--r--src/imports/controls/imagine/images/checkdelegate-indicator-checked-pressed.pngbin0 -> 238 bytes
-rw-r--r--src/imports/controls/imagine/images/checkdelegate-indicator-checked-pressed@2x.pngbin0 -> 396 bytes
-rw-r--r--src/imports/controls/imagine/images/checkdelegate-indicator-checked-pressed@3x.pngbin0 -> 477 bytes
-rw-r--r--src/imports/controls/imagine/images/checkdelegate-indicator-checked-pressed@4x.pngbin0 -> 664 bytes
-rw-r--r--src/imports/controls/imagine/images/checkdelegate-indicator-checked.pngbin0 -> 232 bytes
-rw-r--r--src/imports/controls/imagine/images/checkdelegate-indicator-checked@2x.pngbin0 -> 389 bytes
-rw-r--r--src/imports/controls/imagine/images/checkdelegate-indicator-checked@3x.pngbin0 -> 478 bytes
-rw-r--r--src/imports/controls/imagine/images/checkdelegate-indicator-checked@4x.pngbin0 -> 637 bytes
-rw-r--r--src/imports/controls/imagine/images/checkdelegate-indicator-disabled.pngbin0 -> 121 bytes
-rw-r--r--src/imports/controls/imagine/images/checkdelegate-indicator-disabled@2x.pngbin0 -> 156 bytes
-rw-r--r--src/imports/controls/imagine/images/checkdelegate-indicator-disabled@3x.pngbin0 -> 192 bytes
-rw-r--r--src/imports/controls/imagine/images/checkdelegate-indicator-disabled@4x.pngbin0 -> 227 bytes
-rw-r--r--src/imports/controls/imagine/images/checkdelegate-indicator-focused.pngbin0 -> 121 bytes
-rw-r--r--src/imports/controls/imagine/images/checkdelegate-indicator-focused@2x.pngbin0 -> 156 bytes
-rw-r--r--src/imports/controls/imagine/images/checkdelegate-indicator-focused@3x.pngbin0 -> 192 bytes
-rw-r--r--src/imports/controls/imagine/images/checkdelegate-indicator-focused@4x.pngbin0 -> 227 bytes
-rw-r--r--src/imports/controls/imagine/images/checkdelegate-indicator-hovered.pngbin0 -> 121 bytes
-rw-r--r--src/imports/controls/imagine/images/checkdelegate-indicator-hovered@2x.pngbin0 -> 156 bytes
-rw-r--r--src/imports/controls/imagine/images/checkdelegate-indicator-hovered@3x.pngbin0 -> 192 bytes
-rw-r--r--src/imports/controls/imagine/images/checkdelegate-indicator-hovered@4x.pngbin0 -> 227 bytes
-rw-r--r--src/imports/controls/imagine/images/checkdelegate-indicator-partially-checked-focused.pngbin0 -> 131 bytes
-rw-r--r--src/imports/controls/imagine/images/checkdelegate-indicator-partially-checked-focused@2x.pngbin0 -> 164 bytes
-rw-r--r--src/imports/controls/imagine/images/checkdelegate-indicator-partially-checked-focused@3x.pngbin0 -> 202 bytes
-rw-r--r--src/imports/controls/imagine/images/checkdelegate-indicator-partially-checked-focused@4x.pngbin0 -> 243 bytes
-rw-r--r--src/imports/controls/imagine/images/checkdelegate-indicator-partially-checked-hovered.pngbin0 -> 131 bytes
-rw-r--r--src/imports/controls/imagine/images/checkdelegate-indicator-partially-checked-hovered@2x.pngbin0 -> 164 bytes
-rw-r--r--src/imports/controls/imagine/images/checkdelegate-indicator-partially-checked-hovered@3x.pngbin0 -> 202 bytes
-rw-r--r--src/imports/controls/imagine/images/checkdelegate-indicator-partially-checked-hovered@4x.pngbin0 -> 243 bytes
-rw-r--r--src/imports/controls/imagine/images/checkdelegate-indicator-partially-checked-pressed.pngbin0 -> 131 bytes
-rw-r--r--src/imports/controls/imagine/images/checkdelegate-indicator-partially-checked-pressed@2x.pngbin0 -> 164 bytes
-rw-r--r--src/imports/controls/imagine/images/checkdelegate-indicator-partially-checked-pressed@3x.pngbin0 -> 202 bytes
-rw-r--r--src/imports/controls/imagine/images/checkdelegate-indicator-partially-checked-pressed@4x.pngbin0 -> 243 bytes
-rw-r--r--src/imports/controls/imagine/images/checkdelegate-indicator-partially-checked.pngbin0 -> 131 bytes
-rw-r--r--src/imports/controls/imagine/images/checkdelegate-indicator-partially-checked@2x.pngbin0 -> 164 bytes
-rw-r--r--src/imports/controls/imagine/images/checkdelegate-indicator-partially-checked@3x.pngbin0 -> 202 bytes
-rw-r--r--src/imports/controls/imagine/images/checkdelegate-indicator-partially-checked@4x.pngbin0 -> 243 bytes
-rw-r--r--src/imports/controls/imagine/images/checkdelegate-indicator-pressed.pngbin0 -> 121 bytes
-rw-r--r--src/imports/controls/imagine/images/checkdelegate-indicator-pressed@2x.pngbin0 -> 156 bytes
-rw-r--r--src/imports/controls/imagine/images/checkdelegate-indicator-pressed@3x.pngbin0 -> 192 bytes
-rw-r--r--src/imports/controls/imagine/images/checkdelegate-indicator-pressed@4x.pngbin0 -> 227 bytes
-rw-r--r--src/imports/controls/imagine/images/checkdelegate-indicator.pngbin0 -> 121 bytes
-rw-r--r--src/imports/controls/imagine/images/checkdelegate-indicator@2x.pngbin0 -> 156 bytes
-rw-r--r--src/imports/controls/imagine/images/checkdelegate-indicator@3x.pngbin0 -> 192 bytes
-rw-r--r--src/imports/controls/imagine/images/checkdelegate-indicator@4x.pngbin0 -> 227 bytes
-rw-r--r--src/imports/controls/imagine/images/combobox-background-disabled.9.pngbin0 -> 195 bytes
-rw-r--r--src/imports/controls/imagine/images/combobox-background-disabled@2x.9.pngbin0 -> 277 bytes
-rw-r--r--src/imports/controls/imagine/images/combobox-background-disabled@3x.9.pngbin0 -> 380 bytes
-rw-r--r--src/imports/controls/imagine/images/combobox-background-disabled@4x.9.pngbin0 -> 574 bytes
-rw-r--r--src/imports/controls/imagine/images/combobox-background-editable-disabled.9.pngbin0 -> 195 bytes
-rw-r--r--src/imports/controls/imagine/images/combobox-background-editable-disabled@2x.9.pngbin0 -> 277 bytes
-rw-r--r--src/imports/controls/imagine/images/combobox-background-editable-disabled@3x.9.pngbin0 -> 376 bytes
-rw-r--r--src/imports/controls/imagine/images/combobox-background-editable-disabled@4x.9.pngbin0 -> 589 bytes
-rw-r--r--src/imports/controls/imagine/images/combobox-background-editable-focused.9.pngbin0 -> 223 bytes
-rw-r--r--src/imports/controls/imagine/images/combobox-background-editable-focused@2x.9.pngbin0 -> 423 bytes
-rw-r--r--src/imports/controls/imagine/images/combobox-background-editable-focused@3x.9.pngbin0 -> 611 bytes
-rw-r--r--src/imports/controls/imagine/images/combobox-background-editable-focused@4x.9.pngbin0 -> 809 bytes
-rw-r--r--src/imports/controls/imagine/images/combobox-background-editable.9.pngbin0 -> 223 bytes
-rw-r--r--src/imports/controls/imagine/images/combobox-background-editable@2x.9.pngbin0 -> 424 bytes
-rw-r--r--src/imports/controls/imagine/images/combobox-background-editable@3x.9.pngbin0 -> 606 bytes
-rw-r--r--src/imports/controls/imagine/images/combobox-background-editable@4x.9.pngbin0 -> 809 bytes
-rw-r--r--src/imports/controls/imagine/images/combobox-background-focused.9.pngbin0 -> 195 bytes
-rw-r--r--src/imports/controls/imagine/images/combobox-background-focused@2x.9.pngbin0 -> 277 bytes
-rw-r--r--src/imports/controls/imagine/images/combobox-background-focused@3x.9.pngbin0 -> 380 bytes
-rw-r--r--src/imports/controls/imagine/images/combobox-background-focused@4x.9.pngbin0 -> 589 bytes
-rw-r--r--src/imports/controls/imagine/images/combobox-background-hovered.9.pngbin0 -> 195 bytes
-rw-r--r--src/imports/controls/imagine/images/combobox-background-hovered@2x.9.pngbin0 -> 277 bytes
-rw-r--r--src/imports/controls/imagine/images/combobox-background-hovered@3x.9.pngbin0 -> 380 bytes
-rw-r--r--src/imports/controls/imagine/images/combobox-background-hovered@4x.9.pngbin0 -> 589 bytes
-rw-r--r--src/imports/controls/imagine/images/combobox-background-open.9.pngbin0 -> 195 bytes
-rw-r--r--src/imports/controls/imagine/images/combobox-background-open@2x.9.pngbin0 -> 277 bytes
-rw-r--r--src/imports/controls/imagine/images/combobox-background-open@3x.9.pngbin0 -> 376 bytes
-rw-r--r--src/imports/controls/imagine/images/combobox-background-open@4x.9.pngbin0 -> 589 bytes
-rw-r--r--src/imports/controls/imagine/images/combobox-background-pressed.9.pngbin0 -> 195 bytes
-rw-r--r--src/imports/controls/imagine/images/combobox-background-pressed@2x.9.pngbin0 -> 277 bytes
-rw-r--r--src/imports/controls/imagine/images/combobox-background-pressed@3x.9.pngbin0 -> 376 bytes
-rw-r--r--src/imports/controls/imagine/images/combobox-background-pressed@4x.9.pngbin0 -> 589 bytes
-rw-r--r--src/imports/controls/imagine/images/combobox-background.9.pngbin0 -> 195 bytes
-rw-r--r--src/imports/controls/imagine/images/combobox-background@2x.9.pngbin0 -> 277 bytes
-rw-r--r--src/imports/controls/imagine/images/combobox-background@3x.9.pngbin0 -> 380 bytes
-rw-r--r--src/imports/controls/imagine/images/combobox-background@4x.9.pngbin0 -> 574 bytes
-rw-r--r--src/imports/controls/imagine/images/combobox-indicator-disabled.pngbin0 -> 127 bytes
-rw-r--r--src/imports/controls/imagine/images/combobox-indicator-disabled@2x.pngbin0 -> 157 bytes
-rw-r--r--src/imports/controls/imagine/images/combobox-indicator-disabled@3x.pngbin0 -> 178 bytes
-rw-r--r--src/imports/controls/imagine/images/combobox-indicator-disabled@4x.pngbin0 -> 201 bytes
-rw-r--r--src/imports/controls/imagine/images/combobox-indicator-editable-disabled.pngbin0 -> 177 bytes
-rw-r--r--src/imports/controls/imagine/images/combobox-indicator-editable-disabled@2x.pngbin0 -> 258 bytes
-rw-r--r--src/imports/controls/imagine/images/combobox-indicator-editable-disabled@3x.pngbin0 -> 335 bytes
-rw-r--r--src/imports/controls/imagine/images/combobox-indicator-editable-disabled@4x.pngbin0 -> 442 bytes
-rw-r--r--src/imports/controls/imagine/images/combobox-indicator-editable-mirrored-disabled.pngbin0 -> 175 bytes
-rw-r--r--src/imports/controls/imagine/images/combobox-indicator-editable-mirrored-disabled@2x.pngbin0 -> 262 bytes
-rw-r--r--src/imports/controls/imagine/images/combobox-indicator-editable-mirrored-disabled@3x.pngbin0 -> 342 bytes
-rw-r--r--src/imports/controls/imagine/images/combobox-indicator-editable-mirrored-disabled@4x.pngbin0 -> 449 bytes
-rw-r--r--src/imports/controls/imagine/images/combobox-indicator-editable-mirrored.pngbin0 -> 175 bytes
-rw-r--r--src/imports/controls/imagine/images/combobox-indicator-editable-mirrored@2x.pngbin0 -> 262 bytes
-rw-r--r--src/imports/controls/imagine/images/combobox-indicator-editable-mirrored@3x.pngbin0 -> 342 bytes
-rw-r--r--src/imports/controls/imagine/images/combobox-indicator-editable-mirrored@4x.pngbin0 -> 449 bytes
-rw-r--r--src/imports/controls/imagine/images/combobox-indicator-editable.pngbin0 -> 177 bytes
-rw-r--r--src/imports/controls/imagine/images/combobox-indicator-editable@2x.pngbin0 -> 258 bytes
-rw-r--r--src/imports/controls/imagine/images/combobox-indicator-editable@3x.pngbin0 -> 335 bytes
-rw-r--r--src/imports/controls/imagine/images/combobox-indicator-editable@4x.pngbin0 -> 442 bytes
-rw-r--r--src/imports/controls/imagine/images/combobox-indicator.pngbin0 -> 111 bytes
-rw-r--r--src/imports/controls/imagine/images/combobox-indicator@2x.pngbin0 -> 156 bytes
-rw-r--r--src/imports/controls/imagine/images/combobox-indicator@3x.pngbin0 -> 177 bytes
-rw-r--r--src/imports/controls/imagine/images/combobox-indicator@4x.pngbin0 -> 200 bytes
-rw-r--r--src/imports/controls/imagine/images/combobox-popup.9.pngbin0 -> 475 bytes
-rw-r--r--src/imports/controls/imagine/images/combobox-popup@2x.9.pngbin0 -> 807 bytes
-rw-r--r--src/imports/controls/imagine/images/combobox-popup@3x.9.pngbin0 -> 1167 bytes
-rw-r--r--src/imports/controls/imagine/images/combobox-popup@4x.9.pngbin0 -> 1568 bytes
-rw-r--r--src/imports/controls/imagine/images/delaybutton-background-checked-focused.9.pngbin0 -> 185 bytes
-rw-r--r--src/imports/controls/imagine/images/delaybutton-background-checked-focused@2x.9.pngbin0 -> 258 bytes
-rw-r--r--src/imports/controls/imagine/images/delaybutton-background-checked-focused@3x.9.pngbin0 -> 338 bytes
-rw-r--r--src/imports/controls/imagine/images/delaybutton-background-checked-focused@4x.9.pngbin0 -> 436 bytes
-rw-r--r--src/imports/controls/imagine/images/delaybutton-background-checked-hovered.9.pngbin0 -> 185 bytes
-rw-r--r--src/imports/controls/imagine/images/delaybutton-background-checked-hovered@2x.9.pngbin0 -> 258 bytes
-rw-r--r--src/imports/controls/imagine/images/delaybutton-background-checked-hovered@3x.9.pngbin0 -> 338 bytes
-rw-r--r--src/imports/controls/imagine/images/delaybutton-background-checked-hovered@4x.9.pngbin0 -> 436 bytes
-rw-r--r--src/imports/controls/imagine/images/delaybutton-background-checked.9.pngbin0 -> 185 bytes
-rw-r--r--src/imports/controls/imagine/images/delaybutton-background-checked@2x.9.pngbin0 -> 258 bytes
-rw-r--r--src/imports/controls/imagine/images/delaybutton-background-checked@3x.9.pngbin0 -> 334 bytes
-rw-r--r--src/imports/controls/imagine/images/delaybutton-background-checked@4x.9.pngbin0 -> 436 bytes
-rw-r--r--src/imports/controls/imagine/images/delaybutton-background-disabled-checked.9.pngbin0 -> 185 bytes
-rw-r--r--src/imports/controls/imagine/images/delaybutton-background-disabled-checked@2x.9.pngbin0 -> 258 bytes
-rw-r--r--src/imports/controls/imagine/images/delaybutton-background-disabled-checked@3x.9.pngbin0 -> 338 bytes
-rw-r--r--src/imports/controls/imagine/images/delaybutton-background-disabled-checked@4x.9.pngbin0 -> 426 bytes
-rw-r--r--src/imports/controls/imagine/images/delaybutton-background-disabled.9.pngbin0 -> 185 bytes
-rw-r--r--src/imports/controls/imagine/images/delaybutton-background-disabled@2x.9.pngbin0 -> 258 bytes
-rw-r--r--src/imports/controls/imagine/images/delaybutton-background-disabled@3x.9.pngbin0 -> 338 bytes
-rw-r--r--src/imports/controls/imagine/images/delaybutton-background-disabled@4x.9.pngbin0 -> 426 bytes
-rw-r--r--src/imports/controls/imagine/images/delaybutton-background-focused.9.pngbin0 -> 185 bytes
-rw-r--r--src/imports/controls/imagine/images/delaybutton-background-focused@2x.9.pngbin0 -> 258 bytes
-rw-r--r--src/imports/controls/imagine/images/delaybutton-background-focused@3x.9.pngbin0 -> 338 bytes
-rw-r--r--src/imports/controls/imagine/images/delaybutton-background-focused@4x.9.pngbin0 -> 436 bytes
-rw-r--r--src/imports/controls/imagine/images/delaybutton-background-hovered.9.pngbin0 -> 185 bytes
-rw-r--r--src/imports/controls/imagine/images/delaybutton-background-hovered@2x.9.pngbin0 -> 258 bytes
-rw-r--r--src/imports/controls/imagine/images/delaybutton-background-hovered@3x.9.pngbin0 -> 338 bytes
-rw-r--r--src/imports/controls/imagine/images/delaybutton-background-hovered@4x.9.pngbin0 -> 436 bytes
-rw-r--r--src/imports/controls/imagine/images/delaybutton-background-pressed.9.pngbin0 -> 185 bytes
-rw-r--r--src/imports/controls/imagine/images/delaybutton-background-pressed@2x.9.pngbin0 -> 258 bytes
-rw-r--r--src/imports/controls/imagine/images/delaybutton-background-pressed@3x.9.pngbin0 -> 334 bytes
-rw-r--r--src/imports/controls/imagine/images/delaybutton-background-pressed@4x.9.pngbin0 -> 436 bytes
-rw-r--r--src/imports/controls/imagine/images/delaybutton-background.9.pngbin0 -> 185 bytes
-rw-r--r--src/imports/controls/imagine/images/delaybutton-background@2x.9.pngbin0 -> 258 bytes
-rw-r--r--src/imports/controls/imagine/images/delaybutton-background@3x.9.pngbin0 -> 338 bytes
-rw-r--r--src/imports/controls/imagine/images/delaybutton-background@4x.9.pngbin0 -> 426 bytes
-rw-r--r--src/imports/controls/imagine/images/delaybutton-mask.9.pngbin0 -> 173 bytes
-rw-r--r--src/imports/controls/imagine/images/delaybutton-mask@2x.9.pngbin0 -> 246 bytes
-rw-r--r--src/imports/controls/imagine/images/delaybutton-mask@3x.9.pngbin0 -> 318 bytes
-rw-r--r--src/imports/controls/imagine/images/delaybutton-mask@4x.9.pngbin0 -> 419 bytes
-rw-r--r--src/imports/controls/imagine/images/delaybutton-progress-disabled.9.pngbin0 -> 128 bytes
-rw-r--r--src/imports/controls/imagine/images/delaybutton-progress-disabled@2x.9.pngbin0 -> 137 bytes
-rw-r--r--src/imports/controls/imagine/images/delaybutton-progress-disabled@3x.9.pngbin0 -> 154 bytes
-rw-r--r--src/imports/controls/imagine/images/delaybutton-progress-disabled@4x.9.pngbin0 -> 165 bytes
-rw-r--r--src/imports/controls/imagine/images/delaybutton-progress.9.pngbin0 -> 128 bytes
-rw-r--r--src/imports/controls/imagine/images/delaybutton-progress@2x.9.pngbin0 -> 137 bytes
-rw-r--r--src/imports/controls/imagine/images/delaybutton-progress@3x.9.pngbin0 -> 154 bytes
-rw-r--r--src/imports/controls/imagine/images/delaybutton-progress@4x.9.pngbin0 -> 165 bytes
-rw-r--r--src/imports/controls/imagine/images/dial-background-disabled.pngbin0 -> 2699 bytes
-rw-r--r--src/imports/controls/imagine/images/dial-background-disabled@2x.pngbin0 -> 4873 bytes
-rw-r--r--src/imports/controls/imagine/images/dial-background-disabled@3x.pngbin0 -> 7003 bytes
-rw-r--r--src/imports/controls/imagine/images/dial-background-disabled@4x.pngbin0 -> 9237 bytes
-rw-r--r--src/imports/controls/imagine/images/dial-background-focused.pngbin0 -> 2699 bytes
-rw-r--r--src/imports/controls/imagine/images/dial-background-focused@2x.pngbin0 -> 4873 bytes
-rw-r--r--src/imports/controls/imagine/images/dial-background-focused@3x.pngbin0 -> 7003 bytes
-rw-r--r--src/imports/controls/imagine/images/dial-background-focused@4x.pngbin0 -> 9237 bytes
-rw-r--r--src/imports/controls/imagine/images/dial-background.pngbin0 -> 2699 bytes
-rw-r--r--src/imports/controls/imagine/images/dial-background@2x.pngbin0 -> 4873 bytes
-rw-r--r--src/imports/controls/imagine/images/dial-background@3x.pngbin0 -> 7003 bytes
-rw-r--r--src/imports/controls/imagine/images/dial-background@4x.pngbin0 -> 9237 bytes
-rw-r--r--src/imports/controls/imagine/images/dial-handle-disabled.pngbin0 -> 164 bytes
-rw-r--r--src/imports/controls/imagine/images/dial-handle-disabled@2x.pngbin0 -> 190 bytes
-rw-r--r--src/imports/controls/imagine/images/dial-handle-disabled@3x.pngbin0 -> 216 bytes
-rw-r--r--src/imports/controls/imagine/images/dial-handle-disabled@4x.pngbin0 -> 226 bytes
-rw-r--r--src/imports/controls/imagine/images/dial-handle-focused-hovered.pngbin0 -> 164 bytes
-rw-r--r--src/imports/controls/imagine/images/dial-handle-focused-hovered@2x.pngbin0 -> 190 bytes
-rw-r--r--src/imports/controls/imagine/images/dial-handle-focused-hovered@3x.pngbin0 -> 216 bytes
-rw-r--r--src/imports/controls/imagine/images/dial-handle-focused-hovered@4x.pngbin0 -> 226 bytes
-rw-r--r--src/imports/controls/imagine/images/dial-handle-focused-pressed.pngbin0 -> 164 bytes
-rw-r--r--src/imports/controls/imagine/images/dial-handle-focused-pressed@2x.pngbin0 -> 190 bytes
-rw-r--r--src/imports/controls/imagine/images/dial-handle-focused-pressed@3x.pngbin0 -> 216 bytes
-rw-r--r--src/imports/controls/imagine/images/dial-handle-focused-pressed@4x.pngbin0 -> 226 bytes
-rw-r--r--src/imports/controls/imagine/images/dial-handle-focused.pngbin0 -> 164 bytes
-rw-r--r--src/imports/controls/imagine/images/dial-handle-focused@2x.pngbin0 -> 190 bytes
-rw-r--r--src/imports/controls/imagine/images/dial-handle-focused@3x.pngbin0 -> 216 bytes
-rw-r--r--src/imports/controls/imagine/images/dial-handle-focused@4x.pngbin0 -> 226 bytes
-rw-r--r--src/imports/controls/imagine/images/dial-handle-hovered.pngbin0 -> 164 bytes
-rw-r--r--src/imports/controls/imagine/images/dial-handle-hovered@2x.pngbin0 -> 190 bytes
-rw-r--r--src/imports/controls/imagine/images/dial-handle-hovered@3x.pngbin0 -> 216 bytes
-rw-r--r--src/imports/controls/imagine/images/dial-handle-hovered@4x.pngbin0 -> 226 bytes
-rw-r--r--src/imports/controls/imagine/images/dial-handle-pressed.pngbin0 -> 164 bytes
-rw-r--r--src/imports/controls/imagine/images/dial-handle-pressed@2x.pngbin0 -> 190 bytes
-rw-r--r--src/imports/controls/imagine/images/dial-handle-pressed@3x.pngbin0 -> 216 bytes
-rw-r--r--src/imports/controls/imagine/images/dial-handle-pressed@4x.pngbin0 -> 226 bytes
-rw-r--r--src/imports/controls/imagine/images/dial-handle.pngbin0 -> 164 bytes
-rw-r--r--src/imports/controls/imagine/images/dial-handle@2x.pngbin0 -> 190 bytes
-rw-r--r--src/imports/controls/imagine/images/dial-handle@3x.pngbin0 -> 216 bytes
-rw-r--r--src/imports/controls/imagine/images/dial-handle@4x.pngbin0 -> 226 bytes
-rw-r--r--src/imports/controls/imagine/images/dialog-background.9.pngbin0 -> 475 bytes
-rw-r--r--src/imports/controls/imagine/images/dialog-background@2x.9.pngbin0 -> 805 bytes
-rw-r--r--src/imports/controls/imagine/images/dialog-background@3x.9.pngbin0 -> 1165 bytes
-rw-r--r--src/imports/controls/imagine/images/dialog-background@4x.9.pngbin0 -> 1563 bytes
-rw-r--r--src/imports/controls/imagine/images/dialog-overlay-modal.pngbin0 -> 70 bytes
-rw-r--r--src/imports/controls/imagine/images/dialog-overlay-modal@2x.pngbin0 -> 77 bytes
-rw-r--r--src/imports/controls/imagine/images/dialog-overlay-modal@3x.pngbin0 -> 78 bytes
-rw-r--r--src/imports/controls/imagine/images/dialog-overlay-modal@4x.pngbin0 -> 78 bytes
-rw-r--r--src/imports/controls/imagine/images/dialog-overlay.pngbin0 -> 70 bytes
-rw-r--r--src/imports/controls/imagine/images/dialog-overlay@2x.pngbin0 -> 77 bytes
-rw-r--r--src/imports/controls/imagine/images/dialog-overlay@3x.pngbin0 -> 78 bytes
-rw-r--r--src/imports/controls/imagine/images/dialog-overlay@4x.pngbin0 -> 78 bytes
-rw-r--r--src/imports/controls/imagine/images/dialogbuttonbox-background.9.pngbin0 -> 100 bytes
-rw-r--r--src/imports/controls/imagine/images/dialogbuttonbox-background@2x.9.pngbin0 -> 116 bytes
-rw-r--r--src/imports/controls/imagine/images/dialogbuttonbox-background@3x.9.pngbin0 -> 118 bytes
-rw-r--r--src/imports/controls/imagine/images/dialogbuttonbox-background@4x.9.pngbin0 -> 118 bytes
-rw-r--r--src/imports/controls/imagine/images/drawer-background-bottom.9.pngbin0 -> 105 bytes
-rw-r--r--src/imports/controls/imagine/images/drawer-background-bottom@2x.9.pngbin0 -> 109 bytes
-rw-r--r--src/imports/controls/imagine/images/drawer-background-bottom@3x.9.pngbin0 -> 111 bytes
-rw-r--r--src/imports/controls/imagine/images/drawer-background-bottom@4x.9.pngbin0 -> 113 bytes
-rw-r--r--src/imports/controls/imagine/images/drawer-background-left.9.pngbin0 -> 105 bytes
-rw-r--r--src/imports/controls/imagine/images/drawer-background-left@2x.9.pngbin0 -> 110 bytes
-rw-r--r--src/imports/controls/imagine/images/drawer-background-left@3x.9.pngbin0 -> 114 bytes
-rw-r--r--src/imports/controls/imagine/images/drawer-background-left@4x.9.pngbin0 -> 117 bytes
-rw-r--r--src/imports/controls/imagine/images/drawer-background-right.9.pngbin0 -> 108 bytes
-rw-r--r--src/imports/controls/imagine/images/drawer-background-right@2x.9.pngbin0 -> 110 bytes
-rw-r--r--src/imports/controls/imagine/images/drawer-background-right@3x.9.pngbin0 -> 116 bytes
-rw-r--r--src/imports/controls/imagine/images/drawer-background-right@4x.9.pngbin0 -> 119 bytes
-rw-r--r--src/imports/controls/imagine/images/drawer-background-top.9.pngbin0 -> 111 bytes
-rw-r--r--src/imports/controls/imagine/images/drawer-background-top@2x.9.pngbin0 -> 119 bytes
-rw-r--r--src/imports/controls/imagine/images/drawer-background-top@3x.9.pngbin0 -> 120 bytes
-rw-r--r--src/imports/controls/imagine/images/drawer-background-top@4x.9.pngbin0 -> 119 bytes
-rw-r--r--src/imports/controls/imagine/images/drawer-overlay-modal.pngbin0 -> 70 bytes
-rw-r--r--src/imports/controls/imagine/images/drawer-overlay-modal@2x.pngbin0 -> 77 bytes
-rw-r--r--src/imports/controls/imagine/images/drawer-overlay-modal@3x.pngbin0 -> 78 bytes
-rw-r--r--src/imports/controls/imagine/images/drawer-overlay-modal@4x.pngbin0 -> 78 bytes
-rw-r--r--src/imports/controls/imagine/images/drawer-overlay.pngbin0 -> 70 bytes
-rw-r--r--src/imports/controls/imagine/images/drawer-overlay@2x.pngbin0 -> 77 bytes
-rw-r--r--src/imports/controls/imagine/images/drawer-overlay@3x.pngbin0 -> 78 bytes
-rw-r--r--src/imports/controls/imagine/images/drawer-overlay@4x.pngbin0 -> 78 bytes
-rw-r--r--src/imports/controls/imagine/images/frame-background.9.pngbin0 -> 202 bytes
-rw-r--r--src/imports/controls/imagine/images/frame-background@2x.9.pngbin0 -> 282 bytes
-rw-r--r--src/imports/controls/imagine/images/frame-background@3x.9.pngbin0 -> 366 bytes
-rw-r--r--src/imports/controls/imagine/images/frame-background@4x.9.pngbin0 -> 478 bytes
-rw-r--r--src/imports/controls/imagine/images/groupbox-background.9.pngbin0 -> 202 bytes
-rw-r--r--src/imports/controls/imagine/images/groupbox-background@2x.9.pngbin0 -> 282 bytes
-rw-r--r--src/imports/controls/imagine/images/groupbox-background@3x.9.pngbin0 -> 366 bytes
-rw-r--r--src/imports/controls/imagine/images/groupbox-background@4x.9.pngbin0 -> 478 bytes
-rw-r--r--src/imports/controls/imagine/images/groupbox-title.9.pngbin0 -> 111 bytes
-rw-r--r--src/imports/controls/imagine/images/groupbox-title@2x.9.pngbin0 -> 117 bytes
-rw-r--r--src/imports/controls/imagine/images/groupbox-title@3x.9.pngbin0 -> 120 bytes
-rw-r--r--src/imports/controls/imagine/images/groupbox-title@4x.9.pngbin0 -> 122 bytes
-rw-r--r--src/imports/controls/imagine/images/itemdelegate-background-disabled.9.pngbin0 -> 114 bytes
-rw-r--r--src/imports/controls/imagine/images/itemdelegate-background-disabled@2x.9.pngbin0 -> 123 bytes
-rw-r--r--src/imports/controls/imagine/images/itemdelegate-background-disabled@3x.9.pngbin0 -> 127 bytes
-rw-r--r--src/imports/controls/imagine/images/itemdelegate-background-disabled@4x.9.pngbin0 -> 132 bytes
-rw-r--r--src/imports/controls/imagine/images/itemdelegate-background-focused.9.pngbin0 -> 114 bytes
-rw-r--r--src/imports/controls/imagine/images/itemdelegate-background-focused@2x.9.pngbin0 -> 123 bytes
-rw-r--r--src/imports/controls/imagine/images/itemdelegate-background-focused@3x.9.pngbin0 -> 127 bytes
-rw-r--r--src/imports/controls/imagine/images/itemdelegate-background-focused@4x.9.pngbin0 -> 132 bytes
-rw-r--r--src/imports/controls/imagine/images/itemdelegate-background-highlighted.9.pngbin0 -> 114 bytes
-rw-r--r--src/imports/controls/imagine/images/itemdelegate-background-highlighted@2x.9.pngbin0 -> 123 bytes
-rw-r--r--src/imports/controls/imagine/images/itemdelegate-background-highlighted@3x.9.pngbin0 -> 127 bytes
-rw-r--r--src/imports/controls/imagine/images/itemdelegate-background-highlighted@4x.9.pngbin0 -> 132 bytes
-rw-r--r--src/imports/controls/imagine/images/itemdelegate-background-hovered.9.pngbin0 -> 113 bytes
-rw-r--r--src/imports/controls/imagine/images/itemdelegate-background-hovered@2x.9.pngbin0 -> 123 bytes
-rw-r--r--src/imports/controls/imagine/images/itemdelegate-background-hovered@3x.9.pngbin0 -> 127 bytes
-rw-r--r--src/imports/controls/imagine/images/itemdelegate-background-hovered@4x.9.pngbin0 -> 132 bytes
-rw-r--r--src/imports/controls/imagine/images/itemdelegate-background-pressed.9.pngbin0 -> 114 bytes
-rw-r--r--src/imports/controls/imagine/images/itemdelegate-background-pressed@2x.9.pngbin0 -> 123 bytes
-rw-r--r--src/imports/controls/imagine/images/itemdelegate-background-pressed@3x.9.pngbin0 -> 127 bytes
-rw-r--r--src/imports/controls/imagine/images/itemdelegate-background-pressed@4x.9.pngbin0 -> 132 bytes
-rw-r--r--src/imports/controls/imagine/images/itemdelegate-background.9.pngbin0 -> 113 bytes
-rw-r--r--src/imports/controls/imagine/images/itemdelegate-background@2x.9.pngbin0 -> 123 bytes
-rw-r--r--src/imports/controls/imagine/images/itemdelegate-background@3x.9.pngbin0 -> 127 bytes
-rw-r--r--src/imports/controls/imagine/images/itemdelegate-background@4x.9.pngbin0 -> 132 bytes
-rw-r--r--src/imports/controls/imagine/images/menu-background.9.pngbin0 -> 664 bytes
-rw-r--r--src/imports/controls/imagine/images/menu-background@2x.9.pngbin0 -> 1343 bytes
-rw-r--r--src/imports/controls/imagine/images/menu-background@3x.9.pngbin0 -> 2079 bytes
-rw-r--r--src/imports/controls/imagine/images/menu-background@4x.9.pngbin0 -> 2870 bytes
-rw-r--r--src/imports/controls/imagine/images/menuitem-arrow-disabled.pngbin0 -> 123 bytes
-rw-r--r--src/imports/controls/imagine/images/menuitem-arrow-disabled@2x.pngbin0 -> 136 bytes
-rw-r--r--src/imports/controls/imagine/images/menuitem-arrow-disabled@3x.pngbin0 -> 152 bytes
-rw-r--r--src/imports/controls/imagine/images/menuitem-arrow-disabled@4x.pngbin0 -> 168 bytes
-rw-r--r--src/imports/controls/imagine/images/menuitem-arrow-mirrored-disabled.pngbin0 -> 112 bytes
-rw-r--r--src/imports/controls/imagine/images/menuitem-arrow-mirrored-disabled@2x.pngbin0 -> 144 bytes
-rw-r--r--src/imports/controls/imagine/images/menuitem-arrow-mirrored-disabled@3x.pngbin0 -> 164 bytes
-rw-r--r--src/imports/controls/imagine/images/menuitem-arrow-mirrored-disabled@4x.pngbin0 -> 172 bytes
-rw-r--r--src/imports/controls/imagine/images/menuitem-arrow-mirrored.pngbin0 -> 122 bytes
-rw-r--r--src/imports/controls/imagine/images/menuitem-arrow-mirrored@2x.pngbin0 -> 144 bytes
-rw-r--r--src/imports/controls/imagine/images/menuitem-arrow-mirrored@3x.pngbin0 -> 164 bytes
-rw-r--r--src/imports/controls/imagine/images/menuitem-arrow-mirrored@4x.pngbin0 -> 172 bytes
-rw-r--r--src/imports/controls/imagine/images/menuitem-arrow.pngbin0 -> 123 bytes
-rw-r--r--src/imports/controls/imagine/images/menuitem-arrow@2x.pngbin0 -> 136 bytes
-rw-r--r--src/imports/controls/imagine/images/menuitem-arrow@3x.pngbin0 -> 152 bytes
-rw-r--r--src/imports/controls/imagine/images/menuitem-arrow@4x.pngbin0 -> 168 bytes
-rw-r--r--src/imports/controls/imagine/images/menuitem-background-highlighted.9.pngbin0 -> 120 bytes
-rw-r--r--src/imports/controls/imagine/images/menuitem-background-highlighted@2x.9.pngbin0 -> 124 bytes
-rw-r--r--src/imports/controls/imagine/images/menuitem-background-highlighted@3x.9.pngbin0 -> 128 bytes
-rw-r--r--src/imports/controls/imagine/images/menuitem-background-highlighted@4x.9.pngbin0 -> 138 bytes
-rw-r--r--src/imports/controls/imagine/images/menuitem-background.9.pngbin0 -> 115 bytes
-rw-r--r--src/imports/controls/imagine/images/menuitem-background@2x.9.pngbin0 -> 118 bytes
-rw-r--r--src/imports/controls/imagine/images/menuitem-background@3x.9.pngbin0 -> 119 bytes
-rw-r--r--src/imports/controls/imagine/images/menuitem-background@4x.9.pngbin0 -> 124 bytes
-rw-r--r--src/imports/controls/imagine/images/menuitem-indicator-checked-focused.pngbin0 -> 235 bytes
-rw-r--r--src/imports/controls/imagine/images/menuitem-indicator-checked-focused@2x.pngbin0 -> 376 bytes
-rw-r--r--src/imports/controls/imagine/images/menuitem-indicator-checked-focused@3x.pngbin0 -> 455 bytes
-rw-r--r--src/imports/controls/imagine/images/menuitem-indicator-checked-focused@4x.pngbin0 -> 628 bytes
-rw-r--r--src/imports/controls/imagine/images/menuitem-indicator-checked-hovered.pngbin0 -> 235 bytes
-rw-r--r--src/imports/controls/imagine/images/menuitem-indicator-checked-hovered@2x.pngbin0 -> 376 bytes
-rw-r--r--src/imports/controls/imagine/images/menuitem-indicator-checked-hovered@3x.pngbin0 -> 455 bytes
-rw-r--r--src/imports/controls/imagine/images/menuitem-indicator-checked-hovered@4x.pngbin0 -> 628 bytes
-rw-r--r--src/imports/controls/imagine/images/menuitem-indicator-checked-pressed.pngbin0 -> 238 bytes
-rw-r--r--src/imports/controls/imagine/images/menuitem-indicator-checked-pressed@2x.pngbin0 -> 396 bytes
-rw-r--r--src/imports/controls/imagine/images/menuitem-indicator-checked-pressed@3x.pngbin0 -> 477 bytes
-rw-r--r--src/imports/controls/imagine/images/menuitem-indicator-checked-pressed@4x.pngbin0 -> 664 bytes
-rw-r--r--src/imports/controls/imagine/images/menuitem-indicator-checked.pngbin0 -> 232 bytes
-rw-r--r--src/imports/controls/imagine/images/menuitem-indicator-checked@2x.pngbin0 -> 389 bytes
-rw-r--r--src/imports/controls/imagine/images/menuitem-indicator-checked@3x.pngbin0 -> 478 bytes
-rw-r--r--src/imports/controls/imagine/images/menuitem-indicator-checked@4x.pngbin0 -> 637 bytes
-rw-r--r--src/imports/controls/imagine/images/menuitem-indicator-disabled.pngbin0 -> 121 bytes
-rw-r--r--src/imports/controls/imagine/images/menuitem-indicator-disabled@2x.pngbin0 -> 156 bytes
-rw-r--r--src/imports/controls/imagine/images/menuitem-indicator-disabled@3x.pngbin0 -> 192 bytes
-rw-r--r--src/imports/controls/imagine/images/menuitem-indicator-disabled@4x.pngbin0 -> 227 bytes
-rw-r--r--src/imports/controls/imagine/images/menuitem-indicator-focused.pngbin0 -> 121 bytes
-rw-r--r--src/imports/controls/imagine/images/menuitem-indicator-focused@2x.pngbin0 -> 156 bytes
-rw-r--r--src/imports/controls/imagine/images/menuitem-indicator-focused@3x.pngbin0 -> 192 bytes
-rw-r--r--src/imports/controls/imagine/images/menuitem-indicator-focused@4x.pngbin0 -> 227 bytes
-rw-r--r--src/imports/controls/imagine/images/menuitem-indicator-hovered.pngbin0 -> 121 bytes
-rw-r--r--src/imports/controls/imagine/images/menuitem-indicator-hovered@2x.pngbin0 -> 156 bytes
-rw-r--r--src/imports/controls/imagine/images/menuitem-indicator-hovered@3x.pngbin0 -> 192 bytes
-rw-r--r--src/imports/controls/imagine/images/menuitem-indicator-hovered@4x.pngbin0 -> 227 bytes
-rw-r--r--src/imports/controls/imagine/images/menuitem-indicator-pressed.pngbin0 -> 121 bytes
-rw-r--r--src/imports/controls/imagine/images/menuitem-indicator-pressed@2x.pngbin0 -> 156 bytes
-rw-r--r--src/imports/controls/imagine/images/menuitem-indicator-pressed@3x.pngbin0 -> 192 bytes
-rw-r--r--src/imports/controls/imagine/images/menuitem-indicator-pressed@4x.pngbin0 -> 227 bytes
-rw-r--r--src/imports/controls/imagine/images/menuitem-indicator.pngbin0 -> 121 bytes
-rw-r--r--src/imports/controls/imagine/images/menuitem-indicator@2x.pngbin0 -> 156 bytes
-rw-r--r--src/imports/controls/imagine/images/menuitem-indicator@3x.pngbin0 -> 192 bytes
-rw-r--r--src/imports/controls/imagine/images/menuitem-indicator@4x.pngbin0 -> 227 bytes
-rw-r--r--src/imports/controls/imagine/images/menuseparator-separator.9.pngbin0 -> 79 bytes
-rw-r--r--src/imports/controls/imagine/images/menuseparator-separator@2x.9.pngbin0 -> 94 bytes
-rw-r--r--src/imports/controls/imagine/images/menuseparator-separator@3x.9.pngbin0 -> 104 bytes
-rw-r--r--src/imports/controls/imagine/images/menuseparator-separator@4x.9.pngbin0 -> 108 bytes
-rw-r--r--src/imports/controls/imagine/images/page-background.pngbin0 -> 67 bytes
-rw-r--r--src/imports/controls/imagine/images/page-background@2x.pngbin0 -> 78 bytes
-rw-r--r--src/imports/controls/imagine/images/page-background@3x.pngbin0 -> 78 bytes
-rw-r--r--src/imports/controls/imagine/images/page-background@4x.pngbin0 -> 79 bytes
-rw-r--r--src/imports/controls/imagine/images/pageindicator-delegate-current.pngbin0 -> 146 bytes
-rw-r--r--src/imports/controls/imagine/images/pageindicator-delegate-current@2x.pngbin0 -> 199 bytes
-rw-r--r--src/imports/controls/imagine/images/pageindicator-delegate-current@3x.pngbin0 -> 257 bytes
-rw-r--r--src/imports/controls/imagine/images/pageindicator-delegate-current@4x.pngbin0 -> 300 bytes
-rw-r--r--src/imports/controls/imagine/images/pageindicator-delegate-disabled-current.pngbin0 -> 146 bytes
-rw-r--r--src/imports/controls/imagine/images/pageindicator-delegate-disabled-current@2x.pngbin0 -> 199 bytes
-rw-r--r--src/imports/controls/imagine/images/pageindicator-delegate-disabled-current@3x.pngbin0 -> 257 bytes
-rw-r--r--src/imports/controls/imagine/images/pageindicator-delegate-disabled-current@4x.pngbin0 -> 296 bytes
-rw-r--r--src/imports/controls/imagine/images/pageindicator-delegate-disabled.pngbin0 -> 146 bytes
-rw-r--r--src/imports/controls/imagine/images/pageindicator-delegate-disabled@2x.pngbin0 -> 199 bytes
-rw-r--r--src/imports/controls/imagine/images/pageindicator-delegate-disabled@3x.pngbin0 -> 257 bytes
-rw-r--r--src/imports/controls/imagine/images/pageindicator-delegate-disabled@4x.pngbin0 -> 296 bytes
-rw-r--r--src/imports/controls/imagine/images/pageindicator-delegate-mirrored.pngbin0 -> 146 bytes
-rw-r--r--src/imports/controls/imagine/images/pageindicator-delegate-mirrored@2x.pngbin0 -> 199 bytes
-rw-r--r--src/imports/controls/imagine/images/pageindicator-delegate-mirrored@3x.pngbin0 -> 257 bytes
-rw-r--r--src/imports/controls/imagine/images/pageindicator-delegate-mirrored@4x.pngbin0 -> 300 bytes
-rw-r--r--src/imports/controls/imagine/images/pageindicator-delegate-pressed.pngbin0 -> 146 bytes
-rw-r--r--src/imports/controls/imagine/images/pageindicator-delegate-pressed@2x.pngbin0 -> 199 bytes
-rw-r--r--src/imports/controls/imagine/images/pageindicator-delegate-pressed@3x.pngbin0 -> 257 bytes
-rw-r--r--src/imports/controls/imagine/images/pageindicator-delegate-pressed@4x.pngbin0 -> 300 bytes
-rw-r--r--src/imports/controls/imagine/images/pageindicator-delegate.pngbin0 -> 146 bytes
-rw-r--r--src/imports/controls/imagine/images/pageindicator-delegate@2x.pngbin0 -> 199 bytes
-rw-r--r--src/imports/controls/imagine/images/pageindicator-delegate@3x.pngbin0 -> 257 bytes
-rw-r--r--src/imports/controls/imagine/images/pageindicator-delegate@4x.pngbin0 -> 300 bytes
-rw-r--r--src/imports/controls/imagine/images/pane-background.9.pngbin0 -> 119 bytes
-rw-r--r--src/imports/controls/imagine/images/pane-background@2x.9.pngbin0 -> 123 bytes
-rw-r--r--src/imports/controls/imagine/images/pane-background@3x.9.pngbin0 -> 130 bytes
-rw-r--r--src/imports/controls/imagine/images/pane-background@4x.9.pngbin0 -> 137 bytes
-rw-r--r--src/imports/controls/imagine/images/popup-background.9.pngbin0 -> 475 bytes
-rw-r--r--src/imports/controls/imagine/images/popup-background@2x.9.pngbin0 -> 805 bytes
-rw-r--r--src/imports/controls/imagine/images/popup-background@3x.9.pngbin0 -> 1165 bytes
-rw-r--r--src/imports/controls/imagine/images/popup-background@4x.9.pngbin0 -> 1563 bytes
-rw-r--r--src/imports/controls/imagine/images/popup-overlay-modal.pngbin0 -> 70 bytes
-rw-r--r--src/imports/controls/imagine/images/popup-overlay-modal@2x.pngbin0 -> 77 bytes
-rw-r--r--src/imports/controls/imagine/images/popup-overlay-modal@3x.pngbin0 -> 78 bytes
-rw-r--r--src/imports/controls/imagine/images/popup-overlay-modal@4x.pngbin0 -> 78 bytes
-rw-r--r--src/imports/controls/imagine/images/popup-overlay.pngbin0 -> 70 bytes
-rw-r--r--src/imports/controls/imagine/images/popup-overlay@2x.pngbin0 -> 77 bytes
-rw-r--r--src/imports/controls/imagine/images/popup-overlay@3x.pngbin0 -> 78 bytes
-rw-r--r--src/imports/controls/imagine/images/popup-overlay@4x.pngbin0 -> 78 bytes
-rw-r--r--src/imports/controls/imagine/images/progressbar-animation.webpbin0 -> 4760 bytes
-rw-r--r--src/imports/controls/imagine/images/progressbar-animation@2x.webpbin0 -> 7932 bytes
-rw-r--r--src/imports/controls/imagine/images/progressbar-animation@3x.webpbin0 -> 8154 bytes
-rw-r--r--src/imports/controls/imagine/images/progressbar-animation@4x.webpbin0 -> 9646 bytes
-rw-r--r--src/imports/controls/imagine/images/progressbar-background.9.pngbin0 -> 189 bytes
-rw-r--r--src/imports/controls/imagine/images/progressbar-background@2x.9.pngbin0 -> 276 bytes
-rw-r--r--src/imports/controls/imagine/images/progressbar-background@3x.9.pngbin0 -> 397 bytes
-rw-r--r--src/imports/controls/imagine/images/progressbar-background@4x.9.pngbin0 -> 558 bytes
-rw-r--r--src/imports/controls/imagine/images/progressbar-mask.9.pngbin0 -> 161 bytes
-rw-r--r--src/imports/controls/imagine/images/progressbar-mask@2x.9.pngbin0 -> 218 bytes
-rw-r--r--src/imports/controls/imagine/images/progressbar-mask@3x.9.pngbin0 -> 284 bytes
-rw-r--r--src/imports/controls/imagine/images/progressbar-mask@4x.9.pngbin0 -> 330 bytes
-rw-r--r--src/imports/controls/imagine/images/progressbar-progress.pngbin0 -> 77 bytes
-rw-r--r--src/imports/controls/imagine/images/progressbar-progress@2x.pngbin0 -> 82 bytes
-rw-r--r--src/imports/controls/imagine/images/progressbar-progress@3x.pngbin0 -> 82 bytes
-rw-r--r--src/imports/controls/imagine/images/progressbar-progress@4x.pngbin0 -> 83 bytes
-rw-r--r--src/imports/controls/imagine/images/radiobutton-indicator-checked-focused.pngbin0 -> 311 bytes
-rw-r--r--src/imports/controls/imagine/images/radiobutton-indicator-checked-focused@2x.pngbin0 -> 484 bytes
-rw-r--r--src/imports/controls/imagine/images/radiobutton-indicator-checked-focused@3x.pngbin0 -> 686 bytes
-rw-r--r--src/imports/controls/imagine/images/radiobutton-indicator-checked-focused@4x.pngbin0 -> 877 bytes
-rw-r--r--src/imports/controls/imagine/images/radiobutton-indicator-checked-hovered.pngbin0 -> 311 bytes
-rw-r--r--src/imports/controls/imagine/images/radiobutton-indicator-checked-hovered@2x.pngbin0 -> 484 bytes
-rw-r--r--src/imports/controls/imagine/images/radiobutton-indicator-checked-hovered@3x.pngbin0 -> 686 bytes
-rw-r--r--src/imports/controls/imagine/images/radiobutton-indicator-checked-hovered@4x.pngbin0 -> 877 bytes
-rw-r--r--src/imports/controls/imagine/images/radiobutton-indicator-checked-pressed.pngbin0 -> 311 bytes
-rw-r--r--src/imports/controls/imagine/images/radiobutton-indicator-checked-pressed@2x.pngbin0 -> 493 bytes
-rw-r--r--src/imports/controls/imagine/images/radiobutton-indicator-checked-pressed@3x.pngbin0 -> 700 bytes
-rw-r--r--src/imports/controls/imagine/images/radiobutton-indicator-checked-pressed@4x.pngbin0 -> 888 bytes
-rw-r--r--src/imports/controls/imagine/images/radiobutton-indicator-checked.pngbin0 -> 311 bytes
-rw-r--r--src/imports/controls/imagine/images/radiobutton-indicator-checked@2x.pngbin0 -> 493 bytes
-rw-r--r--src/imports/controls/imagine/images/radiobutton-indicator-checked@3x.pngbin0 -> 699 bytes
-rw-r--r--src/imports/controls/imagine/images/radiobutton-indicator-checked@4x.pngbin0 -> 882 bytes
-rw-r--r--src/imports/controls/imagine/images/radiobutton-indicator-disabled.pngbin0 -> 240 bytes
-rw-r--r--src/imports/controls/imagine/images/radiobutton-indicator-disabled@2x.pngbin0 -> 367 bytes
-rw-r--r--src/imports/controls/imagine/images/radiobutton-indicator-disabled@3x.pngbin0 -> 510 bytes
-rw-r--r--src/imports/controls/imagine/images/radiobutton-indicator-disabled@4x.pngbin0 -> 659 bytes
-rw-r--r--src/imports/controls/imagine/images/radiobutton-indicator-focused.pngbin0 -> 240 bytes
-rw-r--r--src/imports/controls/imagine/images/radiobutton-indicator-focused@2x.pngbin0 -> 360 bytes
-rw-r--r--src/imports/controls/imagine/images/radiobutton-indicator-focused@3x.pngbin0 -> 512 bytes
-rw-r--r--src/imports/controls/imagine/images/radiobutton-indicator-focused@4x.pngbin0 -> 666 bytes
-rw-r--r--src/imports/controls/imagine/images/radiobutton-indicator-hovered.pngbin0 -> 240 bytes
-rw-r--r--src/imports/controls/imagine/images/radiobutton-indicator-hovered@2x.pngbin0 -> 360 bytes
-rw-r--r--src/imports/controls/imagine/images/radiobutton-indicator-hovered@3x.pngbin0 -> 512 bytes
-rw-r--r--src/imports/controls/imagine/images/radiobutton-indicator-hovered@4x.pngbin0 -> 666 bytes
-rw-r--r--src/imports/controls/imagine/images/radiobutton-indicator-pressed.pngbin0 -> 240 bytes
-rw-r--r--src/imports/controls/imagine/images/radiobutton-indicator-pressed@2x.pngbin0 -> 367 bytes
-rw-r--r--src/imports/controls/imagine/images/radiobutton-indicator-pressed@3x.pngbin0 -> 500 bytes
-rw-r--r--src/imports/controls/imagine/images/radiobutton-indicator-pressed@4x.pngbin0 -> 649 bytes
-rw-r--r--src/imports/controls/imagine/images/radiobutton-indicator.pngbin0 -> 240 bytes
-rw-r--r--src/imports/controls/imagine/images/radiobutton-indicator@2x.pngbin0 -> 360 bytes
-rw-r--r--src/imports/controls/imagine/images/radiobutton-indicator@3x.pngbin0 -> 502 bytes
-rw-r--r--src/imports/controls/imagine/images/radiobutton-indicator@4x.pngbin0 -> 653 bytes
-rw-r--r--src/imports/controls/imagine/images/radiodelegate-background-checked.9.pngbin0 -> 113 bytes
-rw-r--r--src/imports/controls/imagine/images/radiodelegate-background-checked@2x.9.pngbin0 -> 123 bytes
-rw-r--r--src/imports/controls/imagine/images/radiodelegate-background-checked@3x.9.pngbin0 -> 127 bytes
-rw-r--r--src/imports/controls/imagine/images/radiodelegate-background-checked@4x.9.pngbin0 -> 132 bytes
-rw-r--r--src/imports/controls/imagine/images/radiodelegate-background-disabled.9.pngbin0 -> 114 bytes
-rw-r--r--src/imports/controls/imagine/images/radiodelegate-background-disabled@2x.9.pngbin0 -> 123 bytes
-rw-r--r--src/imports/controls/imagine/images/radiodelegate-background-disabled@3x.9.pngbin0 -> 127 bytes
-rw-r--r--src/imports/controls/imagine/images/radiodelegate-background-disabled@4x.9.pngbin0 -> 132 bytes
-rw-r--r--src/imports/controls/imagine/images/radiodelegate-background-focused.9.pngbin0 -> 114 bytes
-rw-r--r--src/imports/controls/imagine/images/radiodelegate-background-focused@2x.9.pngbin0 -> 123 bytes
-rw-r--r--src/imports/controls/imagine/images/radiodelegate-background-focused@3x.9.pngbin0 -> 127 bytes
-rw-r--r--src/imports/controls/imagine/images/radiodelegate-background-focused@4x.9.pngbin0 -> 132 bytes
-rw-r--r--src/imports/controls/imagine/images/radiodelegate-background-hovered.9.pngbin0 -> 113 bytes
-rw-r--r--src/imports/controls/imagine/images/radiodelegate-background-hovered@2x.9.pngbin0 -> 123 bytes
-rw-r--r--src/imports/controls/imagine/images/radiodelegate-background-hovered@3x.9.pngbin0 -> 127 bytes
-rw-r--r--src/imports/controls/imagine/images/radiodelegate-background-hovered@4x.9.pngbin0 -> 132 bytes
-rw-r--r--src/imports/controls/imagine/images/radiodelegate-background-pressed.9.pngbin0 -> 114 bytes
-rw-r--r--src/imports/controls/imagine/images/radiodelegate-background-pressed@2x.9.pngbin0 -> 123 bytes
-rw-r--r--src/imports/controls/imagine/images/radiodelegate-background-pressed@3x.9.pngbin0 -> 127 bytes
-rw-r--r--src/imports/controls/imagine/images/radiodelegate-background-pressed@4x.9.pngbin0 -> 132 bytes
-rw-r--r--src/imports/controls/imagine/images/radiodelegate-background.9.pngbin0 -> 113 bytes
-rw-r--r--src/imports/controls/imagine/images/radiodelegate-background@2x.9.pngbin0 -> 123 bytes
-rw-r--r--src/imports/controls/imagine/images/radiodelegate-background@3x.9.pngbin0 -> 127 bytes
-rw-r--r--src/imports/controls/imagine/images/radiodelegate-background@4x.9.pngbin0 -> 132 bytes
-rw-r--r--src/imports/controls/imagine/images/radiodelegate-indicator-checked-focused.pngbin0 -> 311 bytes
-rw-r--r--src/imports/controls/imagine/images/radiodelegate-indicator-checked-focused@2x.pngbin0 -> 484 bytes
-rw-r--r--src/imports/controls/imagine/images/radiodelegate-indicator-checked-focused@3x.pngbin0 -> 686 bytes
-rw-r--r--src/imports/controls/imagine/images/radiodelegate-indicator-checked-focused@4x.pngbin0 -> 877 bytes
-rw-r--r--src/imports/controls/imagine/images/radiodelegate-indicator-checked-hovered.pngbin0 -> 311 bytes
-rw-r--r--src/imports/controls/imagine/images/radiodelegate-indicator-checked-hovered@2x.pngbin0 -> 484 bytes
-rw-r--r--src/imports/controls/imagine/images/radiodelegate-indicator-checked-hovered@3x.pngbin0 -> 686 bytes
-rw-r--r--src/imports/controls/imagine/images/radiodelegate-indicator-checked-hovered@4x.pngbin0 -> 877 bytes
-rw-r--r--src/imports/controls/imagine/images/radiodelegate-indicator-checked-pressed.pngbin0 -> 311 bytes
-rw-r--r--src/imports/controls/imagine/images/radiodelegate-indicator-checked-pressed@2x.pngbin0 -> 493 bytes
-rw-r--r--src/imports/controls/imagine/images/radiodelegate-indicator-checked-pressed@3x.pngbin0 -> 700 bytes
-rw-r--r--src/imports/controls/imagine/images/radiodelegate-indicator-checked-pressed@4x.pngbin0 -> 888 bytes
-rw-r--r--src/imports/controls/imagine/images/radiodelegate-indicator-checked.pngbin0 -> 311 bytes
-rw-r--r--src/imports/controls/imagine/images/radiodelegate-indicator-checked@2x.pngbin0 -> 493 bytes
-rw-r--r--src/imports/controls/imagine/images/radiodelegate-indicator-checked@3x.pngbin0 -> 699 bytes
-rw-r--r--src/imports/controls/imagine/images/radiodelegate-indicator-checked@4x.pngbin0 -> 882 bytes
-rw-r--r--src/imports/controls/imagine/images/radiodelegate-indicator-disabled.pngbin0 -> 240 bytes
-rw-r--r--src/imports/controls/imagine/images/radiodelegate-indicator-disabled@2x.pngbin0 -> 367 bytes
-rw-r--r--src/imports/controls/imagine/images/radiodelegate-indicator-disabled@3x.pngbin0 -> 510 bytes
-rw-r--r--src/imports/controls/imagine/images/radiodelegate-indicator-disabled@4x.pngbin0 -> 659 bytes
-rw-r--r--src/imports/controls/imagine/images/radiodelegate-indicator-focused.pngbin0 -> 240 bytes
-rw-r--r--src/imports/controls/imagine/images/radiodelegate-indicator-focused@2x.pngbin0 -> 360 bytes
-rw-r--r--src/imports/controls/imagine/images/radiodelegate-indicator-focused@3x.pngbin0 -> 512 bytes
-rw-r--r--src/imports/controls/imagine/images/radiodelegate-indicator-focused@4x.pngbin0 -> 666 bytes
-rw-r--r--src/imports/controls/imagine/images/radiodelegate-indicator-hovered.pngbin0 -> 240 bytes
-rw-r--r--src/imports/controls/imagine/images/radiodelegate-indicator-hovered@2x.pngbin0 -> 360 bytes
-rw-r--r--src/imports/controls/imagine/images/radiodelegate-indicator-hovered@3x.pngbin0 -> 512 bytes
-rw-r--r--src/imports/controls/imagine/images/radiodelegate-indicator-hovered@4x.pngbin0 -> 666 bytes
-rw-r--r--src/imports/controls/imagine/images/radiodelegate-indicator-pressed.pngbin0 -> 240 bytes
-rw-r--r--src/imports/controls/imagine/images/radiodelegate-indicator-pressed@2x.pngbin0 -> 367 bytes
-rw-r--r--src/imports/controls/imagine/images/radiodelegate-indicator-pressed@3x.pngbin0 -> 500 bytes
-rw-r--r--src/imports/controls/imagine/images/radiodelegate-indicator-pressed@4x.pngbin0 -> 649 bytes
-rw-r--r--src/imports/controls/imagine/images/radiodelegate-indicator.pngbin0 -> 240 bytes
-rw-r--r--src/imports/controls/imagine/images/radiodelegate-indicator@2x.pngbin0 -> 360 bytes
-rw-r--r--src/imports/controls/imagine/images/radiodelegate-indicator@3x.pngbin0 -> 502 bytes
-rw-r--r--src/imports/controls/imagine/images/radiodelegate-indicator@4x.pngbin0 -> 653 bytes
-rw-r--r--src/imports/controls/imagine/images/rangeslider-background-horizontal.9.pngbin0 -> 178 bytes
-rw-r--r--src/imports/controls/imagine/images/rangeslider-background-horizontal@2x.9.pngbin0 -> 262 bytes
-rw-r--r--src/imports/controls/imagine/images/rangeslider-background-horizontal@3x.9.pngbin0 -> 373 bytes
-rw-r--r--src/imports/controls/imagine/images/rangeslider-background-horizontal@4x.9.pngbin0 -> 486 bytes
-rw-r--r--src/imports/controls/imagine/images/rangeslider-background-vertical.9.pngbin0 -> 185 bytes
-rw-r--r--src/imports/controls/imagine/images/rangeslider-background-vertical@2x.9.pngbin0 -> 270 bytes
-rw-r--r--src/imports/controls/imagine/images/rangeslider-background-vertical@3x.9.pngbin0 -> 369 bytes
-rw-r--r--src/imports/controls/imagine/images/rangeslider-background-vertical@4x.9.pngbin0 -> 590 bytes
-rw-r--r--src/imports/controls/imagine/images/rangeslider-handle-disabled.pngbin0 -> 317 bytes
-rw-r--r--src/imports/controls/imagine/images/rangeslider-handle-disabled@2x.pngbin0 -> 573 bytes
-rw-r--r--src/imports/controls/imagine/images/rangeslider-handle-disabled@3x.pngbin0 -> 784 bytes
-rw-r--r--src/imports/controls/imagine/images/rangeslider-handle-disabled@4x.pngbin0 -> 1061 bytes
-rw-r--r--src/imports/controls/imagine/images/rangeslider-handle-focused-hovered.pngbin0 -> 316 bytes
-rw-r--r--src/imports/controls/imagine/images/rangeslider-handle-focused-hovered@2x.pngbin0 -> 557 bytes
-rw-r--r--src/imports/controls/imagine/images/rangeslider-handle-focused-hovered@3x.pngbin0 -> 774 bytes
-rw-r--r--src/imports/controls/imagine/images/rangeslider-handle-focused-hovered@4x.pngbin0 -> 1050 bytes
-rw-r--r--src/imports/controls/imagine/images/rangeslider-handle-focused-pressed.pngbin0 -> 344 bytes
-rw-r--r--src/imports/controls/imagine/images/rangeslider-handle-focused-pressed@2x.pngbin0 -> 563 bytes
-rw-r--r--src/imports/controls/imagine/images/rangeslider-handle-focused-pressed@3x.pngbin0 -> 814 bytes
-rw-r--r--src/imports/controls/imagine/images/rangeslider-handle-focused-pressed@4x.pngbin0 -> 1063 bytes
-rw-r--r--src/imports/controls/imagine/images/rangeslider-handle-focused.pngbin0 -> 344 bytes
-rw-r--r--src/imports/controls/imagine/images/rangeslider-handle-focused@2x.pngbin0 -> 543 bytes
-rw-r--r--src/imports/controls/imagine/images/rangeslider-handle-focused@3x.pngbin0 -> 801 bytes
-rw-r--r--src/imports/controls/imagine/images/rangeslider-handle-focused@4x.pngbin0 -> 1073 bytes
-rw-r--r--src/imports/controls/imagine/images/rangeslider-handle-hovered.pngbin0 -> 303 bytes
-rw-r--r--src/imports/controls/imagine/images/rangeslider-handle-hovered@2x.pngbin0 -> 553 bytes
-rw-r--r--src/imports/controls/imagine/images/rangeslider-handle-hovered@3x.pngbin0 -> 779 bytes
-rw-r--r--src/imports/controls/imagine/images/rangeslider-handle-hovered@4x.pngbin0 -> 1047 bytes
-rw-r--r--src/imports/controls/imagine/images/rangeslider-handle-pressed.pngbin0 -> 317 bytes
-rw-r--r--src/imports/controls/imagine/images/rangeslider-handle-pressed@2x.pngbin0 -> 573 bytes
-rw-r--r--src/imports/controls/imagine/images/rangeslider-handle-pressed@3x.pngbin0 -> 784 bytes
-rw-r--r--src/imports/controls/imagine/images/rangeslider-handle-pressed@4x.pngbin0 -> 1061 bytes
-rw-r--r--src/imports/controls/imagine/images/rangeslider-handle.pngbin0 -> 316 bytes
-rw-r--r--src/imports/controls/imagine/images/rangeslider-handle@2x.pngbin0 -> 534 bytes
-rw-r--r--src/imports/controls/imagine/images/rangeslider-handle@3x.pngbin0 -> 805 bytes
-rw-r--r--src/imports/controls/imagine/images/rangeslider-handle@4x.pngbin0 -> 1076 bytes
-rw-r--r--src/imports/controls/imagine/images/rangeslider-progress-horizontal-disabled.9.pngbin0 -> 151 bytes
-rw-r--r--src/imports/controls/imagine/images/rangeslider-progress-horizontal-disabled@2x.9.pngbin0 -> 197 bytes
-rw-r--r--src/imports/controls/imagine/images/rangeslider-progress-horizontal-disabled@3x.9.pngbin0 -> 248 bytes
-rw-r--r--src/imports/controls/imagine/images/rangeslider-progress-horizontal-disabled@4x.9.pngbin0 -> 278 bytes
-rw-r--r--src/imports/controls/imagine/images/rangeslider-progress-horizontal.9.pngbin0 -> 151 bytes
-rw-r--r--src/imports/controls/imagine/images/rangeslider-progress-horizontal@2x.9.pngbin0 -> 197 bytes
-rw-r--r--src/imports/controls/imagine/images/rangeslider-progress-horizontal@3x.9.pngbin0 -> 248 bytes
-rw-r--r--src/imports/controls/imagine/images/rangeslider-progress-horizontal@4x.9.pngbin0 -> 278 bytes
-rw-r--r--src/imports/controls/imagine/images/rangeslider-progress-vertical-disabled.9.pngbin0 -> 148 bytes
-rw-r--r--src/imports/controls/imagine/images/rangeslider-progress-vertical-disabled@2x.9.pngbin0 -> 202 bytes
-rw-r--r--src/imports/controls/imagine/images/rangeslider-progress-vertical-disabled@3x.9.pngbin0 -> 249 bytes
-rw-r--r--src/imports/controls/imagine/images/rangeslider-progress-vertical-disabled@4x.9.pngbin0 -> 284 bytes
-rw-r--r--src/imports/controls/imagine/images/rangeslider-progress-vertical.9.pngbin0 -> 148 bytes
-rw-r--r--src/imports/controls/imagine/images/rangeslider-progress-vertical@2x.9.pngbin0 -> 202 bytes
-rw-r--r--src/imports/controls/imagine/images/rangeslider-progress-vertical@3x.9.pngbin0 -> 249 bytes
-rw-r--r--src/imports/controls/imagine/images/rangeslider-progress-vertical@4x.9.pngbin0 -> 284 bytes
-rw-r--r--src/imports/controls/imagine/images/roundbutton-background-checked-focused.pngbin0 -> 360 bytes
-rw-r--r--src/imports/controls/imagine/images/roundbutton-background-checked-focused@2x.pngbin0 -> 662 bytes
-rw-r--r--src/imports/controls/imagine/images/roundbutton-background-checked-focused@3x.pngbin0 -> 973 bytes
-rw-r--r--src/imports/controls/imagine/images/roundbutton-background-checked-focused@4x.pngbin0 -> 1397 bytes
-rw-r--r--src/imports/controls/imagine/images/roundbutton-background-checked-hovered.pngbin0 -> 360 bytes
-rw-r--r--src/imports/controls/imagine/images/roundbutton-background-checked-hovered@2x.pngbin0 -> 662 bytes
-rw-r--r--src/imports/controls/imagine/images/roundbutton-background-checked-hovered@3x.pngbin0 -> 973 bytes
-rw-r--r--src/imports/controls/imagine/images/roundbutton-background-checked-hovered@4x.pngbin0 -> 1397 bytes
-rw-r--r--src/imports/controls/imagine/images/roundbutton-background-checked.pngbin0 -> 360 bytes
-rw-r--r--src/imports/controls/imagine/images/roundbutton-background-checked@2x.pngbin0 -> 662 bytes
-rw-r--r--src/imports/controls/imagine/images/roundbutton-background-checked@3x.pngbin0 -> 985 bytes
-rw-r--r--src/imports/controls/imagine/images/roundbutton-background-checked@4x.pngbin0 -> 1428 bytes
-rw-r--r--src/imports/controls/imagine/images/roundbutton-background-disabled-checked.pngbin0 -> 367 bytes
-rw-r--r--src/imports/controls/imagine/images/roundbutton-background-disabled-checked@2x.pngbin0 -> 659 bytes
-rw-r--r--src/imports/controls/imagine/images/roundbutton-background-disabled-checked@3x.pngbin0 -> 983 bytes
-rw-r--r--src/imports/controls/imagine/images/roundbutton-background-disabled-checked@4x.pngbin0 -> 1425 bytes
-rw-r--r--src/imports/controls/imagine/images/roundbutton-background-disabled.pngbin0 -> 367 bytes
-rw-r--r--src/imports/controls/imagine/images/roundbutton-background-disabled@2x.pngbin0 -> 659 bytes
-rw-r--r--src/imports/controls/imagine/images/roundbutton-background-disabled@3x.pngbin0 -> 983 bytes
-rw-r--r--src/imports/controls/imagine/images/roundbutton-background-disabled@4x.pngbin0 -> 1425 bytes
-rw-r--r--src/imports/controls/imagine/images/roundbutton-background-focused.pngbin0 -> 360 bytes
-rw-r--r--src/imports/controls/imagine/images/roundbutton-background-focused@2x.pngbin0 -> 649 bytes
-rw-r--r--src/imports/controls/imagine/images/roundbutton-background-focused@3x.pngbin0 -> 989 bytes
-rw-r--r--src/imports/controls/imagine/images/roundbutton-background-focused@4x.pngbin0 -> 1406 bytes
-rw-r--r--src/imports/controls/imagine/images/roundbutton-background-highlighted-focused.pngbin0 -> 360 bytes
-rw-r--r--src/imports/controls/imagine/images/roundbutton-background-highlighted-focused@2x.pngbin0 -> 647 bytes
-rw-r--r--src/imports/controls/imagine/images/roundbutton-background-highlighted-focused@3x.pngbin0 -> 969 bytes
-rw-r--r--src/imports/controls/imagine/images/roundbutton-background-highlighted-focused@4x.pngbin0 -> 1422 bytes
-rw-r--r--src/imports/controls/imagine/images/roundbutton-background-highlighted-hovered.pngbin0 -> 360 bytes
-rw-r--r--src/imports/controls/imagine/images/roundbutton-background-highlighted-hovered@2x.pngbin0 -> 647 bytes
-rw-r--r--src/imports/controls/imagine/images/roundbutton-background-highlighted-hovered@3x.pngbin0 -> 969 bytes
-rw-r--r--src/imports/controls/imagine/images/roundbutton-background-highlighted-hovered@4x.pngbin0 -> 1422 bytes
-rw-r--r--src/imports/controls/imagine/images/roundbutton-background-highlighted-pressed.pngbin0 -> 367 bytes
-rw-r--r--src/imports/controls/imagine/images/roundbutton-background-highlighted-pressed@2x.pngbin0 -> 647 bytes
-rw-r--r--src/imports/controls/imagine/images/roundbutton-background-highlighted-pressed@3x.pngbin0 -> 973 bytes
-rw-r--r--src/imports/controls/imagine/images/roundbutton-background-highlighted-pressed@4x.pngbin0 -> 1384 bytes
-rw-r--r--src/imports/controls/imagine/images/roundbutton-background-highlighted.pngbin0 -> 367 bytes
-rw-r--r--src/imports/controls/imagine/images/roundbutton-background-highlighted@2x.pngbin0 -> 647 bytes
-rw-r--r--src/imports/controls/imagine/images/roundbutton-background-highlighted@3x.pngbin0 -> 985 bytes
-rw-r--r--src/imports/controls/imagine/images/roundbutton-background-highlighted@4x.pngbin0 -> 1394 bytes
-rw-r--r--src/imports/controls/imagine/images/roundbutton-background-hovered.pngbin0 -> 360 bytes
-rw-r--r--src/imports/controls/imagine/images/roundbutton-background-hovered@2x.pngbin0 -> 649 bytes
-rw-r--r--src/imports/controls/imagine/images/roundbutton-background-hovered@3x.pngbin0 -> 989 bytes
-rw-r--r--src/imports/controls/imagine/images/roundbutton-background-hovered@4x.pngbin0 -> 1406 bytes
-rw-r--r--src/imports/controls/imagine/images/roundbutton-background-pressed.pngbin0 -> 360 bytes
-rw-r--r--src/imports/controls/imagine/images/roundbutton-background-pressed@2x.pngbin0 -> 662 bytes
-rw-r--r--src/imports/controls/imagine/images/roundbutton-background-pressed@3x.pngbin0 -> 985 bytes
-rw-r--r--src/imports/controls/imagine/images/roundbutton-background-pressed@4x.pngbin0 -> 1428 bytes
-rw-r--r--src/imports/controls/imagine/images/roundbutton-background.pngbin0 -> 367 bytes
-rw-r--r--src/imports/controls/imagine/images/roundbutton-background@2x.pngbin0 -> 649 bytes
-rw-r--r--src/imports/controls/imagine/images/roundbutton-background@3x.pngbin0 -> 978 bytes
-rw-r--r--src/imports/controls/imagine/images/roundbutton-background@4x.pngbin0 -> 1417 bytes
-rw-r--r--src/imports/controls/imagine/images/scrollbar-handle-disabled.pngbin0 -> 78 bytes
-rw-r--r--src/imports/controls/imagine/images/scrollbar-handle-disabled@2x.pngbin0 -> 78 bytes
-rw-r--r--src/imports/controls/imagine/images/scrollbar-handle-disabled@3x.pngbin0 -> 82 bytes
-rw-r--r--src/imports/controls/imagine/images/scrollbar-handle-disabled@4x.pngbin0 -> 81 bytes
-rw-r--r--src/imports/controls/imagine/images/scrollbar-handle-interactive-disabled.pngbin0 -> 79 bytes
-rw-r--r--src/imports/controls/imagine/images/scrollbar-handle-interactive-disabled@2x.pngbin0 -> 83 bytes
-rw-r--r--src/imports/controls/imagine/images/scrollbar-handle-interactive-disabled@3x.pngbin0 -> 83 bytes
-rw-r--r--src/imports/controls/imagine/images/scrollbar-handle-interactive-disabled@4x.pngbin0 -> 83 bytes
-rw-r--r--src/imports/controls/imagine/images/scrollbar-handle-interactive-hovered.pngbin0 -> 79 bytes
-rw-r--r--src/imports/controls/imagine/images/scrollbar-handle-interactive-hovered@2x.pngbin0 -> 83 bytes
-rw-r--r--src/imports/controls/imagine/images/scrollbar-handle-interactive-hovered@3x.pngbin0 -> 83 bytes
-rw-r--r--src/imports/controls/imagine/images/scrollbar-handle-interactive-hovered@4x.pngbin0 -> 83 bytes
-rw-r--r--src/imports/controls/imagine/images/scrollbar-handle-interactive-pressed.pngbin0 -> 79 bytes
-rw-r--r--src/imports/controls/imagine/images/scrollbar-handle-interactive-pressed@2x.pngbin0 -> 83 bytes
-rw-r--r--src/imports/controls/imagine/images/scrollbar-handle-interactive-pressed@3x.pngbin0 -> 83 bytes
-rw-r--r--src/imports/controls/imagine/images/scrollbar-handle-interactive-pressed@4x.pngbin0 -> 83 bytes
-rw-r--r--src/imports/controls/imagine/images/scrollbar-handle-interactive.pngbin0 -> 79 bytes
-rw-r--r--src/imports/controls/imagine/images/scrollbar-handle-interactive@2x.pngbin0 -> 83 bytes
-rw-r--r--src/imports/controls/imagine/images/scrollbar-handle-interactive@3x.pngbin0 -> 83 bytes
-rw-r--r--src/imports/controls/imagine/images/scrollbar-handle-interactive@4x.pngbin0 -> 83 bytes
-rw-r--r--src/imports/controls/imagine/images/scrollbar-handle.pngbin0 -> 78 bytes
-rw-r--r--src/imports/controls/imagine/images/scrollbar-handle@2x.pngbin0 -> 78 bytes
-rw-r--r--src/imports/controls/imagine/images/scrollbar-handle@3x.pngbin0 -> 82 bytes
-rw-r--r--src/imports/controls/imagine/images/scrollbar-handle@4x.pngbin0 -> 81 bytes
-rw-r--r--src/imports/controls/imagine/images/scrollindicator-handle.pngbin0 -> 78 bytes
-rw-r--r--src/imports/controls/imagine/images/scrollindicator-handle@2x.pngbin0 -> 79 bytes
-rw-r--r--src/imports/controls/imagine/images/scrollindicator-handle@3x.pngbin0 -> 78 bytes
-rw-r--r--src/imports/controls/imagine/images/scrollindicator-handle@4x.pngbin0 -> 79 bytes
-rw-r--r--src/imports/controls/imagine/images/slider-background-horizontal.9.pngbin0 -> 178 bytes
-rw-r--r--src/imports/controls/imagine/images/slider-background-horizontal@2x.9.pngbin0 -> 262 bytes
-rw-r--r--src/imports/controls/imagine/images/slider-background-horizontal@3x.9.pngbin0 -> 373 bytes
-rw-r--r--src/imports/controls/imagine/images/slider-background-horizontal@4x.9.pngbin0 -> 486 bytes
-rw-r--r--src/imports/controls/imagine/images/slider-background-vertical.9.pngbin0 -> 185 bytes
-rw-r--r--src/imports/controls/imagine/images/slider-background-vertical@2x.9.pngbin0 -> 270 bytes
-rw-r--r--src/imports/controls/imagine/images/slider-background-vertical@3x.9.pngbin0 -> 369 bytes
-rw-r--r--src/imports/controls/imagine/images/slider-background-vertical@4x.9.pngbin0 -> 590 bytes
-rw-r--r--src/imports/controls/imagine/images/slider-handle-disabled.pngbin0 -> 317 bytes
-rw-r--r--src/imports/controls/imagine/images/slider-handle-disabled@2x.pngbin0 -> 573 bytes
-rw-r--r--src/imports/controls/imagine/images/slider-handle-disabled@3x.pngbin0 -> 784 bytes
-rw-r--r--src/imports/controls/imagine/images/slider-handle-disabled@4x.pngbin0 -> 1061 bytes
-rw-r--r--src/imports/controls/imagine/images/slider-handle-focused-hovered.pngbin0 -> 316 bytes
-rw-r--r--src/imports/controls/imagine/images/slider-handle-focused-hovered@2x.pngbin0 -> 557 bytes
-rw-r--r--src/imports/controls/imagine/images/slider-handle-focused-hovered@3x.pngbin0 -> 774 bytes
-rw-r--r--src/imports/controls/imagine/images/slider-handle-focused-hovered@4x.pngbin0 -> 1050 bytes
-rw-r--r--src/imports/controls/imagine/images/slider-handle-focused-pressed.pngbin0 -> 344 bytes
-rw-r--r--src/imports/controls/imagine/images/slider-handle-focused-pressed@2x.pngbin0 -> 563 bytes
-rw-r--r--src/imports/controls/imagine/images/slider-handle-focused-pressed@3x.pngbin0 -> 814 bytes
-rw-r--r--src/imports/controls/imagine/images/slider-handle-focused-pressed@4x.pngbin0 -> 1063 bytes
-rw-r--r--src/imports/controls/imagine/images/slider-handle-focused.pngbin0 -> 344 bytes
-rw-r--r--src/imports/controls/imagine/images/slider-handle-focused@2x.pngbin0 -> 543 bytes
-rw-r--r--src/imports/controls/imagine/images/slider-handle-focused@3x.pngbin0 -> 801 bytes
-rw-r--r--src/imports/controls/imagine/images/slider-handle-focused@4x.pngbin0 -> 1073 bytes
-rw-r--r--src/imports/controls/imagine/images/slider-handle-hovered.pngbin0 -> 303 bytes
-rw-r--r--src/imports/controls/imagine/images/slider-handle-hovered@2x.pngbin0 -> 553 bytes
-rw-r--r--src/imports/controls/imagine/images/slider-handle-hovered@3x.pngbin0 -> 779 bytes
-rw-r--r--src/imports/controls/imagine/images/slider-handle-hovered@4x.pngbin0 -> 1047 bytes
-rw-r--r--src/imports/controls/imagine/images/slider-handle-pressed.pngbin0 -> 317 bytes
-rw-r--r--src/imports/controls/imagine/images/slider-handle-pressed@2x.pngbin0 -> 573 bytes
-rw-r--r--src/imports/controls/imagine/images/slider-handle-pressed@3x.pngbin0 -> 784 bytes
-rw-r--r--src/imports/controls/imagine/images/slider-handle-pressed@4x.pngbin0 -> 1061 bytes
-rw-r--r--src/imports/controls/imagine/images/slider-handle.pngbin0 -> 316 bytes
-rw-r--r--src/imports/controls/imagine/images/slider-handle@2x.pngbin0 -> 534 bytes
-rw-r--r--src/imports/controls/imagine/images/slider-handle@3x.pngbin0 -> 805 bytes
-rw-r--r--src/imports/controls/imagine/images/slider-handle@4x.pngbin0 -> 1076 bytes
-rw-r--r--src/imports/controls/imagine/images/slider-progress-horizontal-disabled.9.pngbin0 -> 151 bytes
-rw-r--r--src/imports/controls/imagine/images/slider-progress-horizontal-disabled@2x.9.pngbin0 -> 197 bytes
-rw-r--r--src/imports/controls/imagine/images/slider-progress-horizontal-disabled@3x.9.pngbin0 -> 248 bytes
-rw-r--r--src/imports/controls/imagine/images/slider-progress-horizontal-disabled@4x.9.pngbin0 -> 278 bytes
-rw-r--r--src/imports/controls/imagine/images/slider-progress-horizontal.9.pngbin0 -> 151 bytes
-rw-r--r--src/imports/controls/imagine/images/slider-progress-horizontal@2x.9.pngbin0 -> 197 bytes
-rw-r--r--src/imports/controls/imagine/images/slider-progress-horizontal@3x.9.pngbin0 -> 248 bytes
-rw-r--r--src/imports/controls/imagine/images/slider-progress-horizontal@4x.9.pngbin0 -> 278 bytes
-rw-r--r--src/imports/controls/imagine/images/slider-progress-vertical-disabled.9.pngbin0 -> 148 bytes
-rw-r--r--src/imports/controls/imagine/images/slider-progress-vertical-disabled@2x.9.pngbin0 -> 202 bytes
-rw-r--r--src/imports/controls/imagine/images/slider-progress-vertical-disabled@3x.9.pngbin0 -> 249 bytes
-rw-r--r--src/imports/controls/imagine/images/slider-progress-vertical-disabled@4x.9.pngbin0 -> 284 bytes
-rw-r--r--src/imports/controls/imagine/images/slider-progress-vertical.9.pngbin0 -> 148 bytes
-rw-r--r--src/imports/controls/imagine/images/slider-progress-vertical@2x.9.pngbin0 -> 202 bytes
-rw-r--r--src/imports/controls/imagine/images/slider-progress-vertical@3x.9.pngbin0 -> 249 bytes
-rw-r--r--src/imports/controls/imagine/images/slider-progress-vertical@4x.9.pngbin0 -> 284 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-background-disabled.9.pngbin0 -> 192 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-background-disabled@2x.9.pngbin0 -> 277 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-background-disabled@3x.9.pngbin0 -> 371 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-background-disabled@4x.9.pngbin0 -> 578 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-background-editable.9.pngbin0 -> 221 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-background-editable@2x.9.pngbin0 -> 423 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-background-editable@3x.9.pngbin0 -> 597 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-background-editable@4x.9.pngbin0 -> 802 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-background-focused.9.pngbin0 -> 221 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-background-focused@2x.9.pngbin0 -> 423 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-background-focused@3x.9.pngbin0 -> 602 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-background-focused@4x.9.pngbin0 -> 802 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-background.9.pngbin0 -> 221 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-background@2x.9.pngbin0 -> 409 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-background@3x.9.pngbin0 -> 590 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-background@4x.9.pngbin0 -> 784 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-down-disabled.9.pngbin0 -> 152 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-down-disabled@2x.9.pngbin0 -> 187 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-down-disabled@3x.9.pngbin0 -> 225 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-down-disabled@4x.9.pngbin0 -> 259 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-down-editable-focused.9.pngbin0 -> 152 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-down-editable-focused@2x.9.pngbin0 -> 187 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-down-editable-focused@3x.9.pngbin0 -> 225 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-down-editable-focused@4x.9.pngbin0 -> 259 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-down-editable-hovered.9.pngbin0 -> 152 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-down-editable-hovered@2x.9.pngbin0 -> 187 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-down-editable-hovered@3x.9.pngbin0 -> 225 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-down-editable-hovered@4x.9.pngbin0 -> 259 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored-focused.9.pngbin0 -> 155 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored-focused@2x.9.pngbin0 -> 190 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored-focused@3x.9.pngbin0 -> 230 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored-focused@4x.9.pngbin0 -> 266 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored-hovered.9.pngbin0 -> 155 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored-hovered@2x.9.pngbin0 -> 190 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored-hovered@3x.9.pngbin0 -> 230 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored-hovered@4x.9.pngbin0 -> 266 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored-mirrored.9.pngbin0 -> 155 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored-mirrored@2x.9.pngbin0 -> 190 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored-mirrored@3x.9.pngbin0 -> 230 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored-mirrored@4x.9.pngbin0 -> 266 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored-pressed.9.pngbin0 -> 155 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored-pressed@2x.9.pngbin0 -> 190 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored-pressed@3x.9.pngbin0 -> 230 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored-pressed@4x.9.pngbin0 -> 266 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored.9.pngbin0 -> 155 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored@2x.9.pngbin0 -> 190 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored@3x.9.pngbin0 -> 230 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored@4x.9.pngbin0 -> 266 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-down-editable-pressed.9.pngbin0 -> 152 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-down-editable-pressed@2x.9.pngbin0 -> 187 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-down-editable-pressed@3x.9.pngbin0 -> 225 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-down-editable-pressed@4x.9.pngbin0 -> 259 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-down-editable.9.pngbin0 -> 152 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-down-editable@2x.9.pngbin0 -> 187 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-down-editable@3x.9.pngbin0 -> 225 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-down-editable@4x.9.pngbin0 -> 259 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-down-focused.9.pngbin0 -> 152 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-down-focused@2x.9.pngbin0 -> 187 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-down-focused@3x.9.pngbin0 -> 225 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-down-focused@4x.9.pngbin0 -> 259 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-down-hovered.9.pngbin0 -> 152 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-down-hovered@2x.9.pngbin0 -> 187 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-down-hovered@3x.9.pngbin0 -> 225 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-down-hovered@4x.9.pngbin0 -> 259 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-down-mirrored-disabled.9.pngbin0 -> 155 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-down-mirrored-disabled@2x.9.pngbin0 -> 190 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-down-mirrored-disabled@3x.9.pngbin0 -> 230 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-down-mirrored-disabled@4x.9.pngbin0 -> 266 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-down-mirrored-focused.9.pngbin0 -> 155 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-down-mirrored-focused@2x.9.pngbin0 -> 190 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-down-mirrored-focused@3x.9.pngbin0 -> 230 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-down-mirrored-focused@4x.9.pngbin0 -> 266 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-down-mirrored-hovered.9.pngbin0 -> 155 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-down-mirrored-hovered@2x.9.pngbin0 -> 190 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-down-mirrored-hovered@3x.9.pngbin0 -> 230 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-down-mirrored-hovered@4x.9.pngbin0 -> 266 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-down-mirrored-pressed.9.pngbin0 -> 155 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-down-mirrored-pressed@2x.9.pngbin0 -> 190 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-down-mirrored-pressed@3x.9.pngbin0 -> 230 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-down-mirrored-pressed@4x.9.pngbin0 -> 266 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-down-mirrored.9.pngbin0 -> 155 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-down-mirrored@2x.9.pngbin0 -> 190 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-down-mirrored@3x.9.pngbin0 -> 230 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-down-mirrored@4x.9.pngbin0 -> 266 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-down-pressed.9.pngbin0 -> 152 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-down-pressed@2x.9.pngbin0 -> 187 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-down-pressed@3x.9.pngbin0 -> 225 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-down-pressed@4x.9.pngbin0 -> 259 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-down.9.pngbin0 -> 152 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-down@2x.9.pngbin0 -> 187 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-down@3x.9.pngbin0 -> 225 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-down@4x.9.pngbin0 -> 259 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-up-disabled.9.pngbin0 -> 162 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-up-disabled@2x.9.pngbin0 -> 195 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-up-disabled@3x.9.pngbin0 -> 238 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-up-disabled@4x.9.pngbin0 -> 275 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-up-editable-focused.9.pngbin0 -> 162 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-up-editable-focused@2x.9.pngbin0 -> 195 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-up-editable-focused@3x.9.pngbin0 -> 238 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-up-editable-focused@4x.9.pngbin0 -> 275 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-up-editable-hovered.9.pngbin0 -> 162 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-up-editable-hovered@2x.9.pngbin0 -> 195 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-up-editable-hovered@3x.9.pngbin0 -> 238 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-up-editable-hovered@4x.9.pngbin0 -> 275 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored-focused.9.pngbin0 -> 159 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored-focused@2x.9.pngbin0 -> 192 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored-focused@3x.9.pngbin0 -> 234 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored-focused@4x.9.pngbin0 -> 267 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored-hovered.9.pngbin0 -> 159 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored-hovered@2x.9.pngbin0 -> 192 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored-hovered@3x.9.pngbin0 -> 234 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored-hovered@4x.9.pngbin0 -> 267 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored-mirrored.9.pngbin0 -> 159 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored-mirrored@2x.9.pngbin0 -> 192 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored-mirrored@3x.9.pngbin0 -> 234 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored-mirrored@4x.9.pngbin0 -> 267 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored-pressed.9.pngbin0 -> 159 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored-pressed@2x.9.pngbin0 -> 192 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored-pressed@3x.9.pngbin0 -> 234 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored-pressed@4x.9.pngbin0 -> 267 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored.9.pngbin0 -> 159 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored@2x.9.pngbin0 -> 192 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored@3x.9.pngbin0 -> 234 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored@4x.9.pngbin0 -> 267 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-up-editable-pressed.9.pngbin0 -> 162 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-up-editable-pressed@2x.9.pngbin0 -> 195 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-up-editable-pressed@3x.9.pngbin0 -> 238 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-up-editable-pressed@4x.9.pngbin0 -> 275 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-up-editable.9.pngbin0 -> 162 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-up-editable@2x.9.pngbin0 -> 195 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-up-editable@3x.9.pngbin0 -> 238 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-up-editable@4x.9.pngbin0 -> 275 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-up-focused.9.pngbin0 -> 162 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-up-focused@2x.9.pngbin0 -> 195 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-up-focused@3x.9.pngbin0 -> 238 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-up-focused@4x.9.pngbin0 -> 275 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-up-hovered.9.pngbin0 -> 162 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-up-hovered@2x.9.pngbin0 -> 195 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-up-hovered@3x.9.pngbin0 -> 238 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-up-hovered@4x.9.pngbin0 -> 275 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-up-mirrored-disabled.9.pngbin0 -> 159 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-up-mirrored-disabled@2x.9.pngbin0 -> 192 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-up-mirrored-disabled@3x.9.pngbin0 -> 234 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-up-mirrored-disabled@4x.9.pngbin0 -> 267 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-up-mirrored-focused.9.pngbin0 -> 159 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-up-mirrored-focused@2x.9.pngbin0 -> 192 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-up-mirrored-focused@3x.9.pngbin0 -> 234 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-up-mirrored-focused@4x.9.pngbin0 -> 267 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-up-mirrored-hovered.9.pngbin0 -> 159 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-up-mirrored-hovered@2x.9.pngbin0 -> 192 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-up-mirrored-hovered@3x.9.pngbin0 -> 234 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-up-mirrored-hovered@4x.9.pngbin0 -> 267 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-up-mirrored-pressed.9.pngbin0 -> 159 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-up-mirrored-pressed@2x.9.pngbin0 -> 192 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-up-mirrored-pressed@3x.9.pngbin0 -> 234 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-up-mirrored-pressed@4x.9.pngbin0 -> 267 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-up-mirrored.9.pngbin0 -> 159 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-up-mirrored@2x.9.pngbin0 -> 192 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-up-mirrored@3x.9.pngbin0 -> 234 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-up-mirrored@4x.9.pngbin0 -> 267 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-up-pressed.9.pngbin0 -> 162 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-up-pressed@2x.9.pngbin0 -> 195 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-up-pressed@3x.9.pngbin0 -> 238 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-up-pressed@4x.9.pngbin0 -> 275 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-up.9.pngbin0 -> 162 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-up@2x.9.pngbin0 -> 195 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-up@3x.9.pngbin0 -> 238 bytes
-rw-r--r--src/imports/controls/imagine/images/spinbox-indicator-up@4x.9.pngbin0 -> 275 bytes
-rw-r--r--src/imports/controls/imagine/images/swipedelegate-background-disabled.9.pngbin0 -> 114 bytes
-rw-r--r--src/imports/controls/imagine/images/swipedelegate-background-disabled@2x.9.pngbin0 -> 123 bytes
-rw-r--r--src/imports/controls/imagine/images/swipedelegate-background-disabled@3x.9.pngbin0 -> 127 bytes
-rw-r--r--src/imports/controls/imagine/images/swipedelegate-background-disabled@4x.9.pngbin0 -> 132 bytes
-rw-r--r--src/imports/controls/imagine/images/swipedelegate-background-focused.9.pngbin0 -> 114 bytes
-rw-r--r--src/imports/controls/imagine/images/swipedelegate-background-focused@2x.9.pngbin0 -> 123 bytes
-rw-r--r--src/imports/controls/imagine/images/swipedelegate-background-focused@3x.9.pngbin0 -> 127 bytes
-rw-r--r--src/imports/controls/imagine/images/swipedelegate-background-focused@4x.9.pngbin0 -> 132 bytes
-rw-r--r--src/imports/controls/imagine/images/swipedelegate-background-hovered.9.pngbin0 -> 113 bytes
-rw-r--r--src/imports/controls/imagine/images/swipedelegate-background-hovered@2x.9.pngbin0 -> 123 bytes
-rw-r--r--src/imports/controls/imagine/images/swipedelegate-background-hovered@3x.9.pngbin0 -> 127 bytes
-rw-r--r--src/imports/controls/imagine/images/swipedelegate-background-hovered@4x.9.pngbin0 -> 132 bytes
-rw-r--r--src/imports/controls/imagine/images/swipedelegate-background-pressed.9.pngbin0 -> 114 bytes
-rw-r--r--src/imports/controls/imagine/images/swipedelegate-background-pressed@2x.9.pngbin0 -> 123 bytes
-rw-r--r--src/imports/controls/imagine/images/swipedelegate-background-pressed@3x.9.pngbin0 -> 127 bytes
-rw-r--r--src/imports/controls/imagine/images/swipedelegate-background-pressed@4x.9.pngbin0 -> 132 bytes
-rw-r--r--src/imports/controls/imagine/images/swipedelegate-background.9.pngbin0 -> 113 bytes
-rw-r--r--src/imports/controls/imagine/images/swipedelegate-background@2x.9.pngbin0 -> 123 bytes
-rw-r--r--src/imports/controls/imagine/images/swipedelegate-background@3x.9.pngbin0 -> 127 bytes
-rw-r--r--src/imports/controls/imagine/images/swipedelegate-background@4x.9.pngbin0 -> 132 bytes
-rw-r--r--src/imports/controls/imagine/images/switch-handle-disabled.pngbin0 -> 250 bytes
-rw-r--r--src/imports/controls/imagine/images/switch-handle-disabled@2x.pngbin0 -> 380 bytes
-rw-r--r--src/imports/controls/imagine/images/switch-handle-disabled@3x.pngbin0 -> 526 bytes
-rw-r--r--src/imports/controls/imagine/images/switch-handle-disabled@4x.pngbin0 -> 692 bytes
-rw-r--r--src/imports/controls/imagine/images/switch-handle-pressed.pngbin0 -> 250 bytes
-rw-r--r--src/imports/controls/imagine/images/switch-handle-pressed@2x.pngbin0 -> 380 bytes
-rw-r--r--src/imports/controls/imagine/images/switch-handle-pressed@3x.pngbin0 -> 526 bytes
-rw-r--r--src/imports/controls/imagine/images/switch-handle-pressed@4x.pngbin0 -> 692 bytes
-rw-r--r--src/imports/controls/imagine/images/switch-handle.pngbin0 -> 250 bytes
-rw-r--r--src/imports/controls/imagine/images/switch-handle@2x.pngbin0 -> 380 bytes
-rw-r--r--src/imports/controls/imagine/images/switch-handle@3x.pngbin0 -> 521 bytes
-rw-r--r--src/imports/controls/imagine/images/switch-handle@4x.pngbin0 -> 670 bytes
-rw-r--r--src/imports/controls/imagine/images/switch-indicator-checked-focused.pngbin0 -> 283 bytes
-rw-r--r--src/imports/controls/imagine/images/switch-indicator-checked-focused@2x.pngbin0 -> 513 bytes
-rw-r--r--src/imports/controls/imagine/images/switch-indicator-checked-focused@3x.pngbin0 -> 667 bytes
-rw-r--r--src/imports/controls/imagine/images/switch-indicator-checked-focused@4x.pngbin0 -> 867 bytes
-rw-r--r--src/imports/controls/imagine/images/switch-indicator-checked-hovered.pngbin0 -> 283 bytes
-rw-r--r--src/imports/controls/imagine/images/switch-indicator-checked-hovered@2x.pngbin0 -> 513 bytes
-rw-r--r--src/imports/controls/imagine/images/switch-indicator-checked-hovered@3x.pngbin0 -> 667 bytes
-rw-r--r--src/imports/controls/imagine/images/switch-indicator-checked-hovered@4x.pngbin0 -> 867 bytes
-rw-r--r--src/imports/controls/imagine/images/switch-indicator-checked-pressed.pngbin0 -> 283 bytes
-rw-r--r--src/imports/controls/imagine/images/switch-indicator-checked-pressed@2x.pngbin0 -> 507 bytes
-rw-r--r--src/imports/controls/imagine/images/switch-indicator-checked-pressed@3x.pngbin0 -> 661 bytes
-rw-r--r--src/imports/controls/imagine/images/switch-indicator-checked-pressed@4x.pngbin0 -> 870 bytes
-rw-r--r--src/imports/controls/imagine/images/switch-indicator-checked.pngbin0 -> 283 bytes
-rw-r--r--src/imports/controls/imagine/images/switch-indicator-checked@2x.pngbin0 -> 523 bytes
-rw-r--r--src/imports/controls/imagine/images/switch-indicator-checked@3x.pngbin0 -> 656 bytes
-rw-r--r--src/imports/controls/imagine/images/switch-indicator-checked@4x.pngbin0 -> 887 bytes
-rw-r--r--src/imports/controls/imagine/images/switch-indicator-disabled.pngbin0 -> 283 bytes
-rw-r--r--src/imports/controls/imagine/images/switch-indicator-disabled@2x.pngbin0 -> 523 bytes
-rw-r--r--src/imports/controls/imagine/images/switch-indicator-disabled@3x.pngbin0 -> 673 bytes
-rw-r--r--src/imports/controls/imagine/images/switch-indicator-disabled@4x.pngbin0 -> 879 bytes
-rw-r--r--src/imports/controls/imagine/images/switch-indicator-focused.pngbin0 -> 283 bytes
-rw-r--r--src/imports/controls/imagine/images/switch-indicator-focused@2x.pngbin0 -> 523 bytes
-rw-r--r--src/imports/controls/imagine/images/switch-indicator-focused@3x.pngbin0 -> 681 bytes
-rw-r--r--src/imports/controls/imagine/images/switch-indicator-focused@4x.pngbin0 -> 887 bytes
-rw-r--r--src/imports/controls/imagine/images/switch-indicator-hovered.pngbin0 -> 283 bytes
-rw-r--r--src/imports/controls/imagine/images/switch-indicator-hovered@2x.pngbin0 -> 523 bytes
-rw-r--r--src/imports/controls/imagine/images/switch-indicator-hovered@3x.pngbin0 -> 681 bytes
-rw-r--r--src/imports/controls/imagine/images/switch-indicator-hovered@4x.pngbin0 -> 887 bytes
-rw-r--r--src/imports/controls/imagine/images/switch-indicator-pressed.pngbin0 -> 283 bytes
-rw-r--r--src/imports/controls/imagine/images/switch-indicator-pressed@2x.pngbin0 -> 541 bytes
-rw-r--r--src/imports/controls/imagine/images/switch-indicator-pressed@3x.pngbin0 -> 663 bytes
-rw-r--r--src/imports/controls/imagine/images/switch-indicator-pressed@4x.pngbin0 -> 886 bytes
-rw-r--r--src/imports/controls/imagine/images/switch-indicator.pngbin0 -> 283 bytes
-rw-r--r--src/imports/controls/imagine/images/switch-indicator@2x.pngbin0 -> 507 bytes
-rw-r--r--src/imports/controls/imagine/images/switch-indicator@3x.pngbin0 -> 668 bytes
-rw-r--r--src/imports/controls/imagine/images/switch-indicator@4x.pngbin0 -> 870 bytes
-rw-r--r--src/imports/controls/imagine/images/switchdelegate-background-checked.9.pngbin0 -> 113 bytes
-rw-r--r--src/imports/controls/imagine/images/switchdelegate-background-checked@2x.9.pngbin0 -> 123 bytes
-rw-r--r--src/imports/controls/imagine/images/switchdelegate-background-checked@3x.9.pngbin0 -> 127 bytes
-rw-r--r--src/imports/controls/imagine/images/switchdelegate-background-checked@4x.9.pngbin0 -> 132 bytes
-rw-r--r--src/imports/controls/imagine/images/switchdelegate-background-disabled.9.pngbin0 -> 114 bytes
-rw-r--r--src/imports/controls/imagine/images/switchdelegate-background-disabled@2x.9.pngbin0 -> 123 bytes
-rw-r--r--src/imports/controls/imagine/images/switchdelegate-background-disabled@3x.9.pngbin0 -> 127 bytes
-rw-r--r--src/imports/controls/imagine/images/switchdelegate-background-disabled@4x.9.pngbin0 -> 132 bytes
-rw-r--r--src/imports/controls/imagine/images/switchdelegate-background-focused.9.pngbin0 -> 114 bytes
-rw-r--r--src/imports/controls/imagine/images/switchdelegate-background-focused@2x.9.pngbin0 -> 123 bytes
-rw-r--r--src/imports/controls/imagine/images/switchdelegate-background-focused@3x.9.pngbin0 -> 127 bytes
-rw-r--r--src/imports/controls/imagine/images/switchdelegate-background-focused@4x.9.pngbin0 -> 132 bytes
-rw-r--r--src/imports/controls/imagine/images/switchdelegate-background-hovered.9.pngbin0 -> 113 bytes
-rw-r--r--src/imports/controls/imagine/images/switchdelegate-background-hovered@2x.9.pngbin0 -> 123 bytes
-rw-r--r--src/imports/controls/imagine/images/switchdelegate-background-hovered@3x.9.pngbin0 -> 127 bytes
-rw-r--r--src/imports/controls/imagine/images/switchdelegate-background-hovered@4x.9.pngbin0 -> 132 bytes
-rw-r--r--src/imports/controls/imagine/images/switchdelegate-background-pressed.9.pngbin0 -> 114 bytes
-rw-r--r--src/imports/controls/imagine/images/switchdelegate-background-pressed@2x.9.pngbin0 -> 123 bytes
-rw-r--r--src/imports/controls/imagine/images/switchdelegate-background-pressed@3x.9.pngbin0 -> 127 bytes
-rw-r--r--src/imports/controls/imagine/images/switchdelegate-background-pressed@4x.9.pngbin0 -> 132 bytes
-rw-r--r--src/imports/controls/imagine/images/switchdelegate-background.9.pngbin0 -> 113 bytes
-rw-r--r--src/imports/controls/imagine/images/switchdelegate-background@2x.9.pngbin0 -> 123 bytes
-rw-r--r--src/imports/controls/imagine/images/switchdelegate-background@3x.9.pngbin0 -> 127 bytes
-rw-r--r--src/imports/controls/imagine/images/switchdelegate-background@4x.9.pngbin0 -> 132 bytes
-rw-r--r--src/imports/controls/imagine/images/switchdelegate-handle-disabled.pngbin0 -> 250 bytes
-rw-r--r--src/imports/controls/imagine/images/switchdelegate-handle-disabled@2x.pngbin0 -> 380 bytes
-rw-r--r--src/imports/controls/imagine/images/switchdelegate-handle-disabled@3x.pngbin0 -> 526 bytes
-rw-r--r--src/imports/controls/imagine/images/switchdelegate-handle-disabled@4x.pngbin0 -> 692 bytes
-rw-r--r--src/imports/controls/imagine/images/switchdelegate-handle.pngbin0 -> 250 bytes
-rw-r--r--src/imports/controls/imagine/images/switchdelegate-handle@2x.pngbin0 -> 380 bytes
-rw-r--r--src/imports/controls/imagine/images/switchdelegate-handle@3x.pngbin0 -> 521 bytes
-rw-r--r--src/imports/controls/imagine/images/switchdelegate-handle@4x.pngbin0 -> 670 bytes
-rw-r--r--src/imports/controls/imagine/images/switchdelegate-indicator-checked-focused.pngbin0 -> 283 bytes
-rw-r--r--src/imports/controls/imagine/images/switchdelegate-indicator-checked-focused@2x.pngbin0 -> 513 bytes
-rw-r--r--src/imports/controls/imagine/images/switchdelegate-indicator-checked-focused@3x.pngbin0 -> 667 bytes
-rw-r--r--src/imports/controls/imagine/images/switchdelegate-indicator-checked-focused@4x.pngbin0 -> 867 bytes
-rw-r--r--src/imports/controls/imagine/images/switchdelegate-indicator-checked-hovered.pngbin0 -> 283 bytes
-rw-r--r--src/imports/controls/imagine/images/switchdelegate-indicator-checked-hovered@2x.pngbin0 -> 513 bytes
-rw-r--r--src/imports/controls/imagine/images/switchdelegate-indicator-checked-hovered@3x.pngbin0 -> 667 bytes
-rw-r--r--src/imports/controls/imagine/images/switchdelegate-indicator-checked-hovered@4x.pngbin0 -> 867 bytes
-rw-r--r--src/imports/controls/imagine/images/switchdelegate-indicator-checked-pressed.pngbin0 -> 283 bytes
-rw-r--r--src/imports/controls/imagine/images/switchdelegate-indicator-checked-pressed@2x.pngbin0 -> 507 bytes
-rw-r--r--src/imports/controls/imagine/images/switchdelegate-indicator-checked-pressed@3x.pngbin0 -> 661 bytes
-rw-r--r--src/imports/controls/imagine/images/switchdelegate-indicator-checked-pressed@4x.pngbin0 -> 870 bytes
-rw-r--r--src/imports/controls/imagine/images/switchdelegate-indicator-checked.pngbin0 -> 283 bytes
-rw-r--r--src/imports/controls/imagine/images/switchdelegate-indicator-checked@2x.pngbin0 -> 523 bytes
-rw-r--r--src/imports/controls/imagine/images/switchdelegate-indicator-checked@3x.pngbin0 -> 656 bytes
-rw-r--r--src/imports/controls/imagine/images/switchdelegate-indicator-checked@4x.pngbin0 -> 887 bytes
-rw-r--r--src/imports/controls/imagine/images/switchdelegate-indicator-disabled.pngbin0 -> 283 bytes
-rw-r--r--src/imports/controls/imagine/images/switchdelegate-indicator-disabled@2x.pngbin0 -> 523 bytes
-rw-r--r--src/imports/controls/imagine/images/switchdelegate-indicator-disabled@3x.pngbin0 -> 673 bytes
-rw-r--r--src/imports/controls/imagine/images/switchdelegate-indicator-disabled@4x.pngbin0 -> 879 bytes
-rw-r--r--src/imports/controls/imagine/images/switchdelegate-indicator-focused.pngbin0 -> 283 bytes
-rw-r--r--src/imports/controls/imagine/images/switchdelegate-indicator-focused@2x.pngbin0 -> 523 bytes
-rw-r--r--src/imports/controls/imagine/images/switchdelegate-indicator-focused@3x.pngbin0 -> 681 bytes
-rw-r--r--src/imports/controls/imagine/images/switchdelegate-indicator-focused@4x.pngbin0 -> 887 bytes
-rw-r--r--src/imports/controls/imagine/images/switchdelegate-indicator-hovered.pngbin0 -> 283 bytes
-rw-r--r--src/imports/controls/imagine/images/switchdelegate-indicator-hovered@2x.pngbin0 -> 523 bytes
-rw-r--r--src/imports/controls/imagine/images/switchdelegate-indicator-hovered@3x.pngbin0 -> 681 bytes
-rw-r--r--src/imports/controls/imagine/images/switchdelegate-indicator-hovered@4x.pngbin0 -> 887 bytes
-rw-r--r--src/imports/controls/imagine/images/switchdelegate-indicator-pressed.pngbin0 -> 283 bytes
-rw-r--r--src/imports/controls/imagine/images/switchdelegate-indicator-pressed@2x.pngbin0 -> 541 bytes
-rw-r--r--src/imports/controls/imagine/images/switchdelegate-indicator-pressed@3x.pngbin0 -> 663 bytes
-rw-r--r--src/imports/controls/imagine/images/switchdelegate-indicator-pressed@4x.pngbin0 -> 886 bytes
-rw-r--r--src/imports/controls/imagine/images/switchdelegate-indicator.pngbin0 -> 283 bytes
-rw-r--r--src/imports/controls/imagine/images/switchdelegate-indicator@2x.pngbin0 -> 507 bytes
-rw-r--r--src/imports/controls/imagine/images/switchdelegate-indicator@3x.pngbin0 -> 668 bytes
-rw-r--r--src/imports/controls/imagine/images/switchdelegate-indicator@4x.pngbin0 -> 870 bytes
-rw-r--r--src/imports/controls/imagine/images/tabbar-background.pngbin0 -> 78 bytes
-rw-r--r--src/imports/controls/imagine/images/tabbar-background@2x.pngbin0 -> 79 bytes
-rw-r--r--src/imports/controls/imagine/images/tabbar-background@3x.pngbin0 -> 79 bytes
-rw-r--r--src/imports/controls/imagine/images/tabbar-background@4x.pngbin0 -> 81 bytes
-rw-r--r--src/imports/controls/imagine/images/tabbutton-background-checked.9.pngbin0 -> 127 bytes
-rw-r--r--src/imports/controls/imagine/images/tabbutton-background-checked@2x.9.pngbin0 -> 137 bytes
-rw-r--r--src/imports/controls/imagine/images/tabbutton-background-checked@3x.9.pngbin0 -> 153 bytes
-rw-r--r--src/imports/controls/imagine/images/tabbutton-background-checked@4x.9.pngbin0 -> 169 bytes
-rw-r--r--src/imports/controls/imagine/images/tabbutton-background-disabled-checked.9.pngbin0 -> 127 bytes
-rw-r--r--src/imports/controls/imagine/images/tabbutton-background-disabled-checked@2x.9.pngbin0 -> 137 bytes
-rw-r--r--src/imports/controls/imagine/images/tabbutton-background-disabled-checked@3x.9.pngbin0 -> 153 bytes
-rw-r--r--src/imports/controls/imagine/images/tabbutton-background-disabled-checked@4x.9.pngbin0 -> 169 bytes
-rw-r--r--src/imports/controls/imagine/images/tabbutton-background-disabled.9.pngbin0 -> 127 bytes
-rw-r--r--src/imports/controls/imagine/images/tabbutton-background-disabled@2x.9.pngbin0 -> 137 bytes
-rw-r--r--src/imports/controls/imagine/images/tabbutton-background-disabled@3x.9.pngbin0 -> 153 bytes
-rw-r--r--src/imports/controls/imagine/images/tabbutton-background-disabled@4x.9.pngbin0 -> 169 bytes
-rw-r--r--src/imports/controls/imagine/images/tabbutton-background-hovered.9.pngbin0 -> 127 bytes
-rw-r--r--src/imports/controls/imagine/images/tabbutton-background-hovered@2x.9.pngbin0 -> 137 bytes
-rw-r--r--src/imports/controls/imagine/images/tabbutton-background-hovered@3x.9.pngbin0 -> 153 bytes
-rw-r--r--src/imports/controls/imagine/images/tabbutton-background-hovered@4x.9.pngbin0 -> 169 bytes
-rw-r--r--src/imports/controls/imagine/images/tabbutton-background-pressed.9.pngbin0 -> 127 bytes
-rw-r--r--src/imports/controls/imagine/images/tabbutton-background-pressed@2x.9.pngbin0 -> 137 bytes
-rw-r--r--src/imports/controls/imagine/images/tabbutton-background-pressed@3x.9.pngbin0 -> 153 bytes
-rw-r--r--src/imports/controls/imagine/images/tabbutton-background-pressed@4x.9.pngbin0 -> 169 bytes
-rw-r--r--src/imports/controls/imagine/images/tabbutton-background.9.pngbin0 -> 127 bytes
-rw-r--r--src/imports/controls/imagine/images/tabbutton-background@2x.9.pngbin0 -> 137 bytes
-rw-r--r--src/imports/controls/imagine/images/tabbutton-background@3x.9.pngbin0 -> 153 bytes
-rw-r--r--src/imports/controls/imagine/images/tabbutton-background@4x.9.pngbin0 -> 169 bytes
-rw-r--r--src/imports/controls/imagine/images/textarea-background-disabled.9.pngbin0 -> 180 bytes
-rw-r--r--src/imports/controls/imagine/images/textarea-background-disabled@2x.9.pngbin0 -> 242 bytes
-rw-r--r--src/imports/controls/imagine/images/textarea-background-disabled@3x.9.pngbin0 -> 312 bytes
-rw-r--r--src/imports/controls/imagine/images/textarea-background-disabled@4x.9.pngbin0 -> 375 bytes
-rw-r--r--src/imports/controls/imagine/images/textarea-background-focused.9.pngbin0 -> 208 bytes
-rw-r--r--src/imports/controls/imagine/images/textarea-background-focused@2x.9.pngbin0 -> 366 bytes
-rw-r--r--src/imports/controls/imagine/images/textarea-background-focused@3x.9.pngbin0 -> 477 bytes
-rw-r--r--src/imports/controls/imagine/images/textarea-background-focused@4x.9.pngbin0 -> 570 bytes
-rw-r--r--src/imports/controls/imagine/images/textarea-background-pressed.9.pngbin0 -> 196 bytes
-rw-r--r--src/imports/controls/imagine/images/textarea-background-pressed@2x.9.pngbin0 -> 363 bytes
-rw-r--r--src/imports/controls/imagine/images/textarea-background-pressed@3x.9.pngbin0 -> 477 bytes
-rw-r--r--src/imports/controls/imagine/images/textarea-background-pressed@4x.9.pngbin0 -> 577 bytes
-rw-r--r--src/imports/controls/imagine/images/textarea-background.9.pngbin0 -> 208 bytes
-rw-r--r--src/imports/controls/imagine/images/textarea-background@2x.9.pngbin0 -> 368 bytes
-rw-r--r--src/imports/controls/imagine/images/textarea-background@3x.9.pngbin0 -> 467 bytes
-rw-r--r--src/imports/controls/imagine/images/textarea-background@4x.9.pngbin0 -> 570 bytes
-rw-r--r--src/imports/controls/imagine/images/textfield-background-disabled.9.pngbin0 -> 188 bytes
-rw-r--r--src/imports/controls/imagine/images/textfield-background-disabled@2x.9.pngbin0 -> 272 bytes
-rw-r--r--src/imports/controls/imagine/images/textfield-background-disabled@3x.9.pngbin0 -> 354 bytes
-rw-r--r--src/imports/controls/imagine/images/textfield-background-disabled@4x.9.pngbin0 -> 512 bytes
-rw-r--r--src/imports/controls/imagine/images/textfield-background-focused.9.pngbin0 -> 217 bytes
-rw-r--r--src/imports/controls/imagine/images/textfield-background-focused@2x.9.pngbin0 -> 399 bytes
-rw-r--r--src/imports/controls/imagine/images/textfield-background-focused@3x.9.pngbin0 -> 568 bytes
-rw-r--r--src/imports/controls/imagine/images/textfield-background-focused@4x.9.pngbin0 -> 744 bytes
-rw-r--r--src/imports/controls/imagine/images/textfield-background-pressed.9.pngbin0 -> 205 bytes
-rw-r--r--src/imports/controls/imagine/images/textfield-background-pressed@2x.9.pngbin0 -> 395 bytes
-rw-r--r--src/imports/controls/imagine/images/textfield-background-pressed@3x.9.pngbin0 -> 568 bytes
-rw-r--r--src/imports/controls/imagine/images/textfield-background-pressed@4x.9.pngbin0 -> 760 bytes
-rw-r--r--src/imports/controls/imagine/images/textfield-background.9.pngbin0 -> 217 bytes
-rw-r--r--src/imports/controls/imagine/images/textfield-background@2x.9.pngbin0 -> 400 bytes
-rw-r--r--src/imports/controls/imagine/images/textfield-background@3x.9.pngbin0 -> 563 bytes
-rw-r--r--src/imports/controls/imagine/images/textfield-background@4x.9.pngbin0 -> 744 bytes
-rw-r--r--src/imports/controls/imagine/images/toolbar-background.pngbin0 -> 77 bytes
-rw-r--r--src/imports/controls/imagine/images/toolbar-background@2x.pngbin0 -> 79 bytes
-rw-r--r--src/imports/controls/imagine/images/toolbar-background@3x.pngbin0 -> 79 bytes
-rw-r--r--src/imports/controls/imagine/images/toolbar-background@4x.pngbin0 -> 81 bytes
-rw-r--r--src/imports/controls/imagine/images/toolbutton-background-checked-focused.9.pngbin0 -> 122 bytes
-rw-r--r--src/imports/controls/imagine/images/toolbutton-background-checked-focused@2x.9.pngbin0 -> 127 bytes
-rw-r--r--src/imports/controls/imagine/images/toolbutton-background-checked-focused@3x.9.pngbin0 -> 135 bytes
-rw-r--r--src/imports/controls/imagine/images/toolbutton-background-checked-focused@4x.9.pngbin0 -> 149 bytes
-rw-r--r--src/imports/controls/imagine/images/toolbutton-background-checked-hovered.9.pngbin0 -> 122 bytes
-rw-r--r--src/imports/controls/imagine/images/toolbutton-background-checked-hovered@2x.9.pngbin0 -> 127 bytes
-rw-r--r--src/imports/controls/imagine/images/toolbutton-background-checked-hovered@3x.9.pngbin0 -> 135 bytes
-rw-r--r--src/imports/controls/imagine/images/toolbutton-background-checked-hovered@4x.9.pngbin0 -> 149 bytes
-rw-r--r--src/imports/controls/imagine/images/toolbutton-background-checked.9.pngbin0 -> 122 bytes
-rw-r--r--src/imports/controls/imagine/images/toolbutton-background-checked@2x.9.pngbin0 -> 127 bytes
-rw-r--r--src/imports/controls/imagine/images/toolbutton-background-checked@3x.9.pngbin0 -> 135 bytes
-rw-r--r--src/imports/controls/imagine/images/toolbutton-background-checked@4x.9.pngbin0 -> 149 bytes
-rw-r--r--src/imports/controls/imagine/images/toolbutton-background-disabled-checked.9.pngbin0 -> 122 bytes
-rw-r--r--src/imports/controls/imagine/images/toolbutton-background-disabled-checked@2x.9.pngbin0 -> 127 bytes
-rw-r--r--src/imports/controls/imagine/images/toolbutton-background-disabled-checked@3x.9.pngbin0 -> 135 bytes
-rw-r--r--src/imports/controls/imagine/images/toolbutton-background-disabled-checked@4x.9.pngbin0 -> 149 bytes
-rw-r--r--src/imports/controls/imagine/images/toolbutton-background-focused.9.pngbin0 -> 122 bytes
-rw-r--r--src/imports/controls/imagine/images/toolbutton-background-focused@2x.9.pngbin0 -> 127 bytes
-rw-r--r--src/imports/controls/imagine/images/toolbutton-background-focused@3x.9.pngbin0 -> 135 bytes
-rw-r--r--src/imports/controls/imagine/images/toolbutton-background-focused@4x.9.pngbin0 -> 149 bytes
-rw-r--r--src/imports/controls/imagine/images/toolbutton-background-hovered.9.pngbin0 -> 122 bytes
-rw-r--r--src/imports/controls/imagine/images/toolbutton-background-hovered@2x.9.pngbin0 -> 127 bytes
-rw-r--r--src/imports/controls/imagine/images/toolbutton-background-hovered@3x.9.pngbin0 -> 135 bytes
-rw-r--r--src/imports/controls/imagine/images/toolbutton-background-hovered@4x.9.pngbin0 -> 149 bytes
-rw-r--r--src/imports/controls/imagine/images/toolbutton-background-pressed.9.pngbin0 -> 122 bytes
-rw-r--r--src/imports/controls/imagine/images/toolbutton-background-pressed@2x.9.pngbin0 -> 127 bytes
-rw-r--r--src/imports/controls/imagine/images/toolbutton-background-pressed@3x.9.pngbin0 -> 135 bytes
-rw-r--r--src/imports/controls/imagine/images/toolbutton-background-pressed@4x.9.pngbin0 -> 149 bytes
-rw-r--r--src/imports/controls/imagine/images/toolbutton-background.9.pngbin0 -> 122 bytes
-rw-r--r--src/imports/controls/imagine/images/toolbutton-background@2x.9.pngbin0 -> 127 bytes
-rw-r--r--src/imports/controls/imagine/images/toolbutton-background@3x.9.pngbin0 -> 135 bytes
-rw-r--r--src/imports/controls/imagine/images/toolbutton-background@4x.9.pngbin0 -> 149 bytes
-rw-r--r--src/imports/controls/imagine/images/toolseparator-separator-horizontal.9.pngbin0 -> 124 bytes
-rw-r--r--src/imports/controls/imagine/images/toolseparator-separator-horizontal@2x.9.pngbin0 -> 133 bytes
-rw-r--r--src/imports/controls/imagine/images/toolseparator-separator-horizontal@3x.9.pngbin0 -> 139 bytes
-rw-r--r--src/imports/controls/imagine/images/toolseparator-separator-horizontal@4x.9.pngbin0 -> 151 bytes
-rw-r--r--src/imports/controls/imagine/images/toolseparator-separator-vertical.9.pngbin0 -> 122 bytes
-rw-r--r--src/imports/controls/imagine/images/toolseparator-separator-vertical@2x.9.pngbin0 -> 132 bytes
-rw-r--r--src/imports/controls/imagine/images/toolseparator-separator-vertical@3x.9.pngbin0 -> 135 bytes
-rw-r--r--src/imports/controls/imagine/images/toolseparator-separator-vertical@4x.9.pngbin0 -> 151 bytes
-rw-r--r--src/imports/controls/imagine/images/tooltip-background.9.pngbin0 -> 195 bytes
-rw-r--r--src/imports/controls/imagine/images/tooltip-background@2x.9.pngbin0 -> 264 bytes
-rw-r--r--src/imports/controls/imagine/images/tooltip-background@3x.9.pngbin0 -> 341 bytes
-rw-r--r--src/imports/controls/imagine/images/tooltip-background@4x.9.pngbin0 -> 415 bytes
-rw-r--r--src/imports/controls/imagine/imagine.pri58
-rw-r--r--src/imports/controls/imagine/imagine.pro27
-rw-r--r--src/imports/controls/imagine/qmldir4
-rw-r--r--src/imports/controls/imagine/qquickimageselector.cpp321
-rw-r--r--src/imports/controls/imagine/qquickimageselector_p.h151
-rw-r--r--src/imports/controls/imagine/qquickimaginestyle.cpp169
-rw-r--r--src/imports/controls/imagine/qquickimaginestyle_p.h93
-rw-r--r--src/imports/controls/imagine/qquickimaginetheme.cpp110
-rw-r--r--src/imports/controls/imagine/qquickimaginetheme_p.h79
-rw-r--r--src/imports/controls/imagine/qquickninepatchimage.cpp455
-rw-r--r--src/imports/controls/imagine/qquickninepatchimage_p.h106
-rw-r--r--src/imports/controls/imagine/qtquickcontrols2imaginestyleplugin.cpp106
-rw-r--r--src/imports/controls/material/ApplicationWindow.qml6
-rw-r--r--src/imports/controls/material/BoxShadow.qml6
-rw-r--r--src/imports/controls/material/BusyIndicator.qml8
-rw-r--r--src/imports/controls/material/Button.qml27
-rw-r--r--src/imports/controls/material/CheckBox.qml8
-rw-r--r--src/imports/controls/material/CheckDelegate.qml26
-rw-r--r--src/imports/controls/material/CheckIndicator.qml6
-rw-r--r--src/imports/controls/material/ComboBox.qml19
-rw-r--r--src/imports/controls/material/CursorDelegate.qml4
-rw-r--r--src/imports/controls/material/DelayButton.qml10
-rw-r--r--src/imports/controls/material/Dial.qml8
-rw-r--r--src/imports/controls/material/Dialog.qml21
-rw-r--r--src/imports/controls/material/DialogButtonBox.qml11
-rw-r--r--src/imports/controls/material/Drawer.qml20
-rw-r--r--src/imports/controls/material/ElevationEffect.qml6
-rw-r--r--src/imports/controls/material/Frame.qml8
-rw-r--r--src/imports/controls/material/GroupBox.qml8
-rw-r--r--src/imports/controls/material/ItemDelegate.qml27
-rw-r--r--src/imports/controls/material/Label.qml6
-rw-r--r--src/imports/controls/material/Menu.qml27
-rw-r--r--src/imports/controls/material/MenuBar.qml65
-rw-r--r--src/imports/controls/material/MenuBarItem.qml90
-rw-r--r--src/imports/controls/material/MenuItem.qml44
-rw-r--r--src/imports/controls/material/MenuSeparator.qml6
-rw-r--r--src/imports/controls/material/Page.qml6
-rw-r--r--src/imports/controls/material/PageIndicator.qml6
-rw-r--r--src/imports/controls/material/Pane.qml8
-rw-r--r--src/imports/controls/material/Popup.qml18
-rw-r--r--src/imports/controls/material/ProgressBar.qml8
-rw-r--r--src/imports/controls/material/RadioButton.qml8
-rw-r--r--src/imports/controls/material/RadioDelegate.qml26
-rw-r--r--src/imports/controls/material/RadioIndicator.qml6
-rw-r--r--src/imports/controls/material/RangeSlider.qml40
-rw-r--r--src/imports/controls/material/RoundButton.qml27
-rw-r--r--src/imports/controls/material/ScrollBar.qml6
-rw-r--r--src/imports/controls/material/ScrollIndicator.qml6
-rw-r--r--src/imports/controls/material/Slider.qml36
-rw-r--r--src/imports/controls/material/SliderHandle.qml7
-rw-r--r--src/imports/controls/material/SpinBox.qml8
-rw-r--r--src/imports/controls/material/StackView.qml5
-rw-r--r--src/imports/controls/material/SwipeDelegate.qml27
-rw-r--r--src/imports/controls/material/SwipeView.qml5
-rw-r--r--src/imports/controls/material/Switch.qml8
-rw-r--r--src/imports/controls/material/SwitchDelegate.qml26
-rw-r--r--src/imports/controls/material/SwitchIndicator.qml6
-rw-r--r--src/imports/controls/material/TabBar.qml9
-rw-r--r--src/imports/controls/material/TabButton.qml25
-rw-r--r--src/imports/controls/material/TextArea.qml12
-rw-r--r--src/imports/controls/material/TextField.qml19
-rw-r--r--src/imports/controls/material/ToolBar.qml8
-rw-r--r--src/imports/controls/material/ToolButton.qml25
-rw-r--r--src/imports/controls/material/ToolSeparator.qml6
-rw-r--r--src/imports/controls/material/ToolTip.qml6
-rw-r--r--src/imports/controls/material/Tumbler.qml10
-rw-r--r--src/imports/controls/material/images/arrow-indicator.pngbin0 -> 200 bytes
-rw-r--r--src/imports/controls/material/images/arrow-indicator.svg56
-rw-r--r--src/imports/controls/material/images/arrow-indicator@2x.pngbin0 -> 239 bytes
-rw-r--r--src/imports/controls/material/images/arrow-indicator@3x.pngbin0 -> 277 bytes
-rw-r--r--src/imports/controls/material/images/arrow-indicator@4x.pngbin0 -> 317 bytes
-rw-r--r--src/imports/controls/material/material.pri2
-rw-r--r--src/imports/controls/material/material.pro2
-rw-r--r--src/imports/controls/material/qmldir2
-rw-r--r--src/imports/controls/material/qquickmaterialstyle.cpp46
-rw-r--r--src/imports/controls/material/qquickmaterialstyle_p.h6
-rw-r--r--src/imports/controls/material/qquickmaterialtheme.cpp21
-rw-r--r--src/imports/controls/material/qquickmaterialtheme_p.h6
-rw-r--r--src/imports/controls/material/qtquickcontrols2materialstyleplugin.cpp4
-rw-r--r--src/imports/controls/material/qtquickcontrols2materialstyleplugin.qrc4
-rw-r--r--src/imports/controls/plugins.qmltypes442
-rw-r--r--src/imports/controls/qmldir2
-rw-r--r--src/imports/controls/qquickdefaultbusyindicator.cpp41
-rw-r--r--src/imports/controls/qquickdefaultbusyindicator_p.h11
-rw-r--r--src/imports/controls/qquickdefaultdial.cpp (renamed from src/imports/controls/qquickdialring.cpp)16
-rw-r--r--src/imports/controls/qquickdefaultdial_p.h (renamed from src/imports/controls/qquickdialring_p.h)18
-rw-r--r--src/imports/controls/qquickdefaultprogressbar.cpp21
-rw-r--r--src/imports/controls/qquickdefaultprogressbar_p.h12
-rw-r--r--src/imports/controls/qquickdefaultstyle.cpp45
-rw-r--r--src/imports/controls/qquickdefaultstyle_p.h16
-rw-r--r--src/imports/controls/qquickdefaulttheme.cpp92
-rw-r--r--src/imports/controls/qquickdefaulttheme_p.h68
-rw-r--r--src/imports/controls/qtquickcontrols2plugin.cpp53
-rw-r--r--src/imports/controls/qtquickcontrols2plugin.qrc4
-rw-r--r--src/imports/controls/universal/ApplicationWindow.qml8
-rw-r--r--src/imports/controls/universal/BusyIndicator.qml8
-rw-r--r--src/imports/controls/universal/Button.qml27
-rw-r--r--src/imports/controls/universal/CheckBox.qml8
-rw-r--r--src/imports/controls/universal/CheckDelegate.qml30
-rw-r--r--src/imports/controls/universal/CheckIndicator.qml15
-rw-r--r--src/imports/controls/universal/ComboBox.qml17
-rw-r--r--src/imports/controls/universal/DelayButton.qml6
-rw-r--r--src/imports/controls/universal/Dial.qml6
-rw-r--r--src/imports/controls/universal/Dialog.qml16
-rw-r--r--src/imports/controls/universal/DialogButtonBox.qml8
-rw-r--r--src/imports/controls/universal/Drawer.qml16
-rw-r--r--src/imports/controls/universal/Frame.qml6
-rw-r--r--src/imports/controls/universal/GroupBox.qml6
-rw-r--r--src/imports/controls/universal/ItemDelegate.qml29
-rw-r--r--src/imports/controls/universal/Label.qml6
-rw-r--r--src/imports/controls/universal/Menu.qml22
-rw-r--r--src/imports/controls/universal/MenuBar.qml64
-rw-r--r--src/imports/controls/universal/MenuBarItem.qml92
-rw-r--r--src/imports/controls/universal/MenuItem.qml49
-rw-r--r--src/imports/controls/universal/MenuSeparator.qml6
-rw-r--r--src/imports/controls/universal/Page.qml6
-rw-r--r--src/imports/controls/universal/PageIndicator.qml6
-rw-r--r--src/imports/controls/universal/Pane.qml6
-rw-r--r--src/imports/controls/universal/Popup.qml14
-rw-r--r--src/imports/controls/universal/ProgressBar.qml8
-rw-r--r--src/imports/controls/universal/RadioButton.qml8
-rw-r--r--src/imports/controls/universal/RadioDelegate.qml30
-rw-r--r--src/imports/controls/universal/RadioIndicator.qml4
-rw-r--r--src/imports/controls/universal/RangeSlider.qml58
-rw-r--r--src/imports/controls/universal/RoundButton.qml27
-rw-r--r--src/imports/controls/universal/ScrollBar.qml6
-rw-r--r--src/imports/controls/universal/ScrollIndicator.qml6
-rw-r--r--src/imports/controls/universal/Slider.qml48
-rw-r--r--src/imports/controls/universal/SpinBox.qml28
-rw-r--r--src/imports/controls/universal/StackView.qml6
-rw-r--r--src/imports/controls/universal/SwipeDelegate.qml29
-rw-r--r--src/imports/controls/universal/Switch.qml8
-rw-r--r--src/imports/controls/universal/SwitchDelegate.qml30
-rw-r--r--src/imports/controls/universal/SwitchIndicator.qml6
-rw-r--r--src/imports/controls/universal/TabBar.qml8
-rw-r--r--src/imports/controls/universal/TabButton.qml29
-rw-r--r--src/imports/controls/universal/TextArea.qml10
-rw-r--r--src/imports/controls/universal/TextField.qml10
-rw-r--r--src/imports/controls/universal/ToolBar.qml6
-rw-r--r--src/imports/controls/universal/ToolButton.qml27
-rw-r--r--src/imports/controls/universal/ToolSeparator.qml6
-rw-r--r--src/imports/controls/universal/ToolTip.qml6
-rw-r--r--src/imports/controls/universal/Tumbler.qml10
-rw-r--r--src/imports/controls/universal/qmldir2
-rw-r--r--src/imports/controls/universal/qquickuniversalstyle.cpp38
-rw-r--r--src/imports/controls/universal/qquickuniversalstyle_p.h6
-rw-r--r--src/imports/controls/universal/qquickuniversaltheme.cpp7
-rw-r--r--src/imports/controls/universal/qquickuniversaltheme_p.h6
-rw-r--r--src/imports/controls/universal/qtquickcontrols2universalstyleplugin.cpp4
-rw-r--r--src/imports/controls/universal/universal.pri2
-rw-r--r--src/imports/controls/universal/universal.pro2
1708 files changed, 18354 insertions, 1356 deletions
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 234c2e01..06be00ec 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,8 @@ T.BusyIndicator {
implicitWidth: 48
implicitHeight: 48
+ pen: control.palette.dark
+ fill: control.palette.dark
opacity: control.running ? 1 : 0
visible: control.running || animator.running
Behavior on opacity { OpacityAnimator { id: animator; duration: 250 } }
diff --git a/src/imports/controls/Button.qml b/src/imports/controls/Button.qml
index 6c150d5d..1dbcd3ed 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,17 +51,25 @@ 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.visualFocus ? control.palette.highlight :
+ control.flat && !control.down ? 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.visualFocus ? control.palette.highlight :
+ control.flat && !control.down ? control.palette.windowText : control.palette.buttonText
}
background: Rectangle {
@@ -69,9 +77,9 @@ T.Button {
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.buttonCheckedFocusColor : control.palette.highlight) : (control.down ? Default.buttonCheckedPressedColor : Default.textColor)) :
(control.visualFocus ? (control.down ? Default.focusPressedColor : Default.focusLightColor) : (control.down ? Default.buttonPressedColor : Default.buttonColor))
- border.color: Default.focusColor
+ 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 7945ca72..9ae4f8f6 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
@@ -64,11 +64,10 @@ T.CheckBox {
text: control.text
font: control.font
- color: control.down ? Default.textDarkColor : Default.textColor
+ color: control.palette.windowText
elide: Text.ElideRight
visible: control.text
horizontalAlignment: Text.AlignLeft
verticalAlignment: Text.AlignVCenter
- opacity: enabled ? 1 : 0.3
}
}
diff --git a/src/imports/controls/CheckDelegate.qml b/src/imports/controls/CheckDelegate.qml
index 05a0baf6..55dd05eb 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,17 +52,23 @@ 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
- visible: control.text
- horizontalAlignment: Text.AlignLeft
- verticalAlignment: Text.AlignVCenter
+ color: control.palette.text
}
indicator: CheckIndicator {
@@ -76,6 +82,6 @@ T.CheckDelegate {
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/CheckIndicator.qml b/src/imports/controls/CheckIndicator.qml
index 0be3e6cd..730878be 100644
--- a/src/imports/controls/CheckIndicator.qml
+++ b/src/imports/controls/CheckIndicator.qml
@@ -34,9 +34,9 @@
**
****************************************************************************/
-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
Rectangle {
id: indicator
@@ -46,21 +46,16 @@ Rectangle {
implicitWidth: 28
implicitHeight: 28
- color: control.enabled ? (control.down
- ? (control.visualFocus ? Default.focusPressedColor : Default.indicatorPressedColor)
- : Default.backgroundColor) : Default.disabledDarkColor
+ color: control.down ? control.palette.light : control.palette.base
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
+ border.color: control.visualFocus ? control.palette.highlight : control.palette.mid
- Image {
+ ColorImage {
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
+ defaultColor: "#353637"
+ color: control.palette.text
+ source: "qrc:/qt-project.org/imports/QtQuick/Controls.2/images/check.png"
visible: control.checkState === Qt.Checked
}
@@ -69,7 +64,7 @@ Rectangle {
y: (parent.height - height) / 2
width: 16
height: 3
- color: control.visualFocus ? Default.focusColor : Default.frameDarkColor
+ color: control.palette.text
visible: control.checkState === Qt.PartiallyChecked
}
}
diff --git a/src/imports/controls/ComboBox.qml b/src/imports/controls/ComboBox.qml
index 6a885320..289c321f 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,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://default/double-arrow/" + (!control.editable && control.visualFocus ? Default.focusColor : Default.textColor)
- sourceSize.width: width
- sourceSize.height: height
+ color: !control.editable && control.visualFocus ? control.palette.highlight : undefined
+ source: "qrc:/qt-project.org/imports/QtQuick/Controls.2/images/double-arrow.png"
opacity: enabled ? 1 : 0.3
}
@@ -85,27 +84,26 @@ 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.visualFocus ? control.palette.highlight : control.palette.text
+ selectionColor: control.palette.highlight
+ selectedTextColor: control.palette.highlightedText
horizontalAlignment: Text.AlignLeft
verticalAlignment: Text.AlignVCenter
- opacity: control.enabled ? 1 : 0.3
background: Rectangle {
visible: 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 : Default.buttonColor
}
}
background: Rectangle {
- implicitWidth: 120
+ implicitWidth: 140
implicitHeight: 40
color: !control.editable && control.visualFocus ? (control.pressed ? Default.focusPressedColor : Default.focusLightColor) :
(control.down || popup.visible ? Default.buttonPressedColor : Default.buttonColor)
- border.color: Default.focusColor
+ border.color: control.palette.highlight
border.width: !control.editable && control.visualFocus ? 2 : 0
visible: !control.flat || control.down
}
@@ -122,7 +120,6 @@ T.ComboBox {
implicitHeight: contentHeight
model: control.popup.visible ? control.delegateModel : null
currentIndex: control.highlightedIndex
- highlightRangeMode: ListView.ApplyRange
highlightMoveDuration: 0
Rectangle {
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 4a569fcf..bfbd2f08 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
@@ -79,7 +79,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.visualFocus ? control.palette.highlight : control.palette.buttonText
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
elide: Text.ElideRight
@@ -102,7 +102,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
@@ -114,13 +114,13 @@ T.DelayButton {
implicitWidth: 100
implicitHeight: 40
color: control.visualFocus ? (control.down ? Default.focusPressedColor : Default.focusLightColor) : (control.down ? Default.buttonPressedColor : Default.buttonColor)
- border.color: Default.focusColor
+ border.color: control.palette.highlight
border.width: control.visualFocus ? 2 : 0
Rectangle {
width: control.progress * parent.width
height: parent.height
- color: control.visualFocus ? (control.down ? Default.buttonCheckedFocusColor : Default.focusColor) : (control.down ? Default.buttonCheckedPressedColor : Default.textColor)
+ color: control.visualFocus ? (control.down ? Default.buttonCheckedFocusColor : control.palette.highlight) : (control.down ? Default.buttonCheckedPressedColor : Default.textColor)
}
}
}
diff --git a/src/imports/controls/Dial.qml b/src/imports/controls/Dial.qml
index affcfa62..f3706fa3 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,23 +45,23 @@ 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 {
id: handleItem
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 ee81250b..967f591d 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
horizontalAlignment: Text.AlignLeft
verticalAlignment: Text.AlignVCenter
@@ -72,6 +72,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 6ee03ca2..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,27 +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
- visible: control.text
- horizontalAlignment: Text.AlignLeft
- 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/MenuBar.qml b/src/imports/controls/MenuBar.qml
new file mode 100644
index 00000000..4c205465
--- /dev/null
+++ b/src/imports/controls/MenuBar.qml
@@ -0,0 +1,63 @@
+/****************************************************************************
+**
+** 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.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.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 d2420d86..751b33f6 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,26 +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
- visible: control.text
- horizontalAlignment: Text.AlignLeft
- 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: Item {
@@ -81,7 +103,7 @@ T.MenuItem {
y: 1
width: parent.width - 2
height: parent.height - 2
- color: control.visualFocus || control.down ? Default.delegateColor : "transparent"
+ 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..ff760099 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,6 +53,7 @@ T.ProgressBar {
scale: control.mirrored ? -1 : 1
progress: control.position
indeterminate: control.visible && control.indeterminate
+ color: control.palette.dark
}
background: Rectangle {
@@ -63,6 +64,6 @@ T.ProgressBar {
width: control.availableWidth
height: 6
- color: Default.progressBarColor
+ color: control.palette.midlight
}
}
diff --git a/src/imports/controls/RadioButton.qml b/src/imports/controls/RadioButton.qml
index 878a0fe3..c00360cf 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
@@ -64,11 +64,10 @@ T.RadioButton {
text: control.text
font: control.font
- color: control.down ? Default.textDarkColor : Default.textColor
+ color: control.palette.windowText
elide: Text.ElideRight
visible: control.text
horizontalAlignment: Text.AlignLeft
verticalAlignment: Text.AlignVCenter
- opacity: enabled ? 1 : 0.3
}
}
diff --git a/src/imports/controls/RadioDelegate.qml b/src/imports/controls/RadioDelegate.qml
index 03cd83bd..bf14dbc1 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,17 +52,23 @@ 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
- visible: control.text
- horizontalAlignment: Text.AlignLeft
- verticalAlignment: Text.AlignVCenter
+ color: control.palette.text
}
indicator: RadioIndicator {
@@ -76,6 +82,6 @@ T.RadioDelegate {
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/RadioIndicator.qml b/src/imports/controls/RadioIndicator.qml
index d9889fba..e0d32047 100644
--- a/src/imports/controls/RadioIndicator.qml
+++ b/src/imports/controls/RadioIndicator.qml
@@ -34,21 +34,18 @@
**
****************************************************************************/
-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
Rectangle {
implicitWidth: 28
implicitHeight: 28
radius: width / 2
- color: control.down
- ? (control.visualFocus ? Default.focusPressedColor : Default.indicatorPressedColor)
- : (control.visualFocus ? Default.focusLightColor : Default.backgroundColor)
+ color: control.down ? control.palette.light : control.palette.base
border.width: control.visualFocus ? 2 : 1
- border.color: control.visualFocus ? Default.focusColor : (control.down ? Default.indicatorFramePressedColor : Default.indicatorFrameColor)
- opacity: enabled ? 1 : 0.3
+ border.color: control.visualFocus ? control.palette.highlight : control.palette.mid
property Item control
@@ -58,7 +55,7 @@ Rectangle {
width: 20
height: 20
radius: width / 2
- color: control.down ? Default.textDarkColor : Default.buttonCheckedColor
+ color: control.palette.text
visible: control.checked
}
}
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..0704bf01 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,25 @@ 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.visualFocus ? control.palette.highlight :
+ control.flat && !control.down ? 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.visualFocus ? control.palette.highlight :
+ control.flat && !control.down ? control.palette.windowText : control.palette.buttonText
}
background: Rectangle {
@@ -67,9 +77,9 @@ T.RoundButton {
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.buttonCheckedFocusColor : control.palette.highlight) : (control.down ? Default.buttonCheckedPressedColor : Default.buttonCheckedColor)) :
(control.visualFocus ? (control.down ? Default.focusPressedColor : Default.focusLightColor) : (control.down ? Default.buttonPressedColor : Default.buttonColor))
- border.color: Default.focusColor
+ 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 79e3e1ee..ea6ae930 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
diff --git a/src/imports/controls/ScrollIndicator.qml b/src/imports/controls/ScrollIndicator.qml
index 12ec2d40..c7a7bf5f 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
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..56cee139 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
}
}
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 d9f72da9..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,24 +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
- visible: control.text
- horizontalAlignment: Text.AlignLeft
- 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 4ccef22b..2b4e9c2e 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 55b08039..2ff9c553 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
@@ -64,7 +64,7 @@ T.Switch {
text: control.text
font: control.font
- color: control.enabled ? Default.textDarkColor : Default.textDisabledColor
+ color: control.palette.windowText
elide: Text.ElideRight
visible: control.text
horizontalAlignment: Text.AlignLeft
diff --git a/src/imports/controls/SwitchDelegate.qml b/src/imports/controls/SwitchDelegate.qml
index 6536ac53..1c57c907 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,29 +52,35 @@ T.SwitchDelegate {
padding: 12
spacing: 12
+ icon.width: 24
+ icon.height: 24
+ icon.color: control.palette.text
+
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 {
- 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
- visible: control.text
- horizontalAlignment: Text.AlignLeft
- 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/SwitchIndicator.qml b/src/imports/controls/SwitchIndicator.qml
index 347b2293..c8bfc9b9 100644
--- a/src/imports/controls/SwitchIndicator.qml
+++ b/src/imports/controls/SwitchIndicator.qml
@@ -34,9 +34,9 @@
**
****************************************************************************/
-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
Item {
implicitWidth: 56
@@ -49,9 +49,9 @@ Item {
width: 56
height: 16
radius: 8
- color: control.checked ? (control.visualFocus ? Default.focusColor : Default.buttonCheckedColor) : Default.buttonColor
+ color: control.checked ? (control.visualFocus ? control.palette.highlight : Default.buttonCheckedColor) : Default.buttonColor
border.width: control.visualFocus ? 2 : 0
- border.color: Default.focusColor
+ border.color: control.palette.highlight
}
Rectangle {
@@ -65,7 +65,7 @@ Item {
: (control.visualFocus ? Default.focusLightColor : Default.backgroundColor)) : Default.indicatorDisabledColor
border.width: control.visualFocus ? 2 : 1
border.color: control.enabled ? (control.visualFocus
- ? Default.focusColor
+ ? control.palette.highlight
: (control.down ? Default.indicatorFramePressedColor : Default.indicatorFrameColor)) : Default.indicatorFrameDisabledColor
Behavior on x {
diff --git a/src/imports/controls/TabBar.qml b/src/imports/controls/TabBar.qml
index 6e6b7d74..ac7fb995 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
diff --git a/src/imports/controls/TabButton.qml b/src/imports/controls/TabButton.qml
index acdda056..bd506ed6 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,15 +49,22 @@ T.TabButton {
baselineOffset: contentItem.y + contentItem.baselineOffset
padding: 6
+ spacing: 6
- contentItem: Text {
+ icon.width: 24
+ icon.height: 24
+ icon.color: Color.transparent(!checked ? Default.textLightColor : down ? Default.textDarkColor : Default.textColor, enabled ? 1 : 0.3)
+
+ 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: Color.transparent(!control.checked ? Default.textLightColor : control.down ? Default.textDarkColor : Default.textColor,
+ enabled ? 1 : 0.3)
}
background: Rectangle {
diff --git a/src/imports/controls/TextArea.qml b/src/imports/controls/TextArea.qml
index ed83fb7d..1701b9fe 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
diff --git a/src/imports/controls/TextField.qml b/src/imports/controls/TextField.qml
index 31336029..4d17fc41 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 {
@@ -76,7 +76,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 3659e770..918144a0 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
@@ -47,9 +47,9 @@ T.Tumbler {
delegate: Text {
id: label
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) / (visibleItemCount / 2)) * (control.enabled ? 1 : 0.6)
+ opacity: 1.0 - Math.abs(Tumbler.displacement) / (visibleItemCount / 2)
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
}
diff --git a/src/imports/controls/controls.pri b/src/imports/controls/controls.pri
index d7aedb4a..56c7a8ee 100644
--- a/src/imports/controls/controls.pri
+++ b/src/imports/controls/controls.pri
@@ -1,17 +1,21 @@
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 \
@@ -32,6 +36,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 \
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
index d9c8b261..522713bc 100644
--- a/src/imports/controls/doc/images/qtquickcontrols2-applicationwindow-wireframe.png
+++ b/src/imports/controls/doc/images/qtquickcontrols2-applicationwindow-wireframe.png
Binary files differ
diff --git a/src/imports/controls/doc/images/qtquickcontrols2-button-icononly.png b/src/imports/controls/doc/images/qtquickcontrols2-button-icononly.png
new file mode 100644
index 00000000..91a21d17
--- /dev/null
+++ b/src/imports/controls/doc/images/qtquickcontrols2-button-icononly.png
Binary files differ
diff --git a/src/imports/controls/doc/images/qtquickcontrols2-button-textbesideicon.png b/src/imports/controls/doc/images/qtquickcontrols2-button-textbesideicon.png
new file mode 100644
index 00000000..1d46133f
--- /dev/null
+++ b/src/imports/controls/doc/images/qtquickcontrols2-button-textbesideicon.png
Binary files differ
diff --git a/src/imports/controls/doc/images/qtquickcontrols2-button-textonly.png b/src/imports/controls/doc/images/qtquickcontrols2-button-textonly.png
new file mode 100644
index 00000000..4449e748
--- /dev/null
+++ b/src/imports/controls/doc/images/qtquickcontrols2-button-textonly.png
Binary files differ
diff --git a/src/imports/controls/doc/images/qtquickcontrols2-fusion-palettes.png b/src/imports/controls/doc/images/qtquickcontrols2-fusion-palettes.png
new file mode 100644
index 00000000..d649e137
--- /dev/null
+++ b/src/imports/controls/doc/images/qtquickcontrols2-fusion-palettes.png
Binary files differ
diff --git a/src/imports/controls/doc/images/qtquickcontrols2-fusion-thumbnail.png b/src/imports/controls/doc/images/qtquickcontrols2-fusion-thumbnail.png
new file mode 100644
index 00000000..d15fe970
--- /dev/null
+++ b/src/imports/controls/doc/images/qtquickcontrols2-fusion-thumbnail.png
Binary files differ
diff --git a/src/imports/controls/doc/images/qtquickcontrols2-fusion-violet.png b/src/imports/controls/doc/images/qtquickcontrols2-fusion-violet.png
new file mode 100644
index 00000000..4186a78f
--- /dev/null
+++ b/src/imports/controls/doc/images/qtquickcontrols2-fusion-violet.png
Binary files differ
diff --git a/src/imports/controls/doc/images/qtquickcontrols2-fusion.png b/src/imports/controls/doc/images/qtquickcontrols2-fusion.png
new file mode 100644
index 00000000..037069b5
--- /dev/null
+++ b/src/imports/controls/doc/images/qtquickcontrols2-fusion.png
Binary files differ
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
new file mode 100644
index 00000000..426a72c4
--- /dev/null
+++ b/src/imports/controls/doc/images/qtquickcontrols2-imagine-9-patch-4x.png
Binary files differ
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
new file mode 100644
index 00000000..af078f9e
--- /dev/null
+++ b/src/imports/controls/doc/images/qtquickcontrols2-imagine-9-patch-inset-boundaries.png
Binary files differ
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
new file mode 100644
index 00000000..2f55b854
--- /dev/null
+++ b/src/imports/controls/doc/images/qtquickcontrols2-imagine-9-patch-inset.png
Binary files differ
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
new file mode 100644
index 00000000..003cb73d
--- /dev/null
+++ b/src/imports/controls/doc/images/qtquickcontrols2-imagine-9-patch-resized-padding.png
Binary files differ
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
new file mode 100644
index 00000000..be3d8daa
--- /dev/null
+++ b/src/imports/controls/doc/images/qtquickcontrols2-imagine-9-patch-resized-stretchable.png
Binary files differ
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
new file mode 100644
index 00000000..5cc76d89
--- /dev/null
+++ b/src/imports/controls/doc/images/qtquickcontrols2-imagine-9-patch-size.png
Binary files differ
diff --git a/src/imports/controls/doc/images/qtquickcontrols2-imagine-9-patch.svgz b/src/imports/controls/doc/images/qtquickcontrols2-imagine-9-patch.svgz
new file mode 100644
index 00000000..5a1a1094
--- /dev/null
+++ b/src/imports/controls/doc/images/qtquickcontrols2-imagine-9-patch.svgz
Binary files differ
diff --git a/src/imports/controls/doc/images/qtquickcontrols2-imagine-customization-dark.png b/src/imports/controls/doc/images/qtquickcontrols2-imagine-customization-dark.png
new file mode 100644
index 00000000..d114d2cd
--- /dev/null
+++ b/src/imports/controls/doc/images/qtquickcontrols2-imagine-customization-dark.png
Binary files differ
diff --git a/src/imports/controls/doc/images/qtquickcontrols2-imagine-customization.svgz b/src/imports/controls/doc/images/qtquickcontrols2-imagine-customization.svgz
new file mode 100644
index 00000000..fb830563
--- /dev/null
+++ b/src/imports/controls/doc/images/qtquickcontrols2-imagine-customization.svgz
Binary files differ
diff --git a/src/imports/controls/doc/images/qtquickcontrols2-imagine-thumbnail.png b/src/imports/controls/doc/images/qtquickcontrols2-imagine-thumbnail.png
new file mode 100644
index 00000000..b949ab7c
--- /dev/null
+++ b/src/imports/controls/doc/images/qtquickcontrols2-imagine-thumbnail.png
Binary files differ
diff --git a/src/imports/controls/doc/images/qtquickcontrols2-imagine.png b/src/imports/controls/doc/images/qtquickcontrols2-imagine.png
new file mode 100644
index 00000000..1cf7a0f2
--- /dev/null
+++ b/src/imports/controls/doc/images/qtquickcontrols2-imagine.png
Binary files differ
diff --git a/src/imports/controls/doc/images/qtquickcontrols2-menu-custom.png b/src/imports/controls/doc/images/qtquickcontrols2-menu-custom.png
index 7121fd0a..b631d871 100644
--- a/src/imports/controls/doc/images/qtquickcontrols2-menu-custom.png
+++ b/src/imports/controls/doc/images/qtquickcontrols2-menu-custom.png
Binary files differ
diff --git a/src/imports/controls/doc/images/qtquickcontrols2-menubar-custom.png b/src/imports/controls/doc/images/qtquickcontrols2-menubar-custom.png
new file mode 100644
index 00000000..3903e31d
--- /dev/null
+++ b/src/imports/controls/doc/images/qtquickcontrols2-menubar-custom.png
Binary files differ
diff --git a/src/imports/controls/doc/images/qtquickcontrols2-menubar.png b/src/imports/controls/doc/images/qtquickcontrols2-menubar.png
new file mode 100644
index 00000000..94e3676f
--- /dev/null
+++ b/src/imports/controls/doc/images/qtquickcontrols2-menubar.png
Binary files differ
diff --git a/src/imports/controls/doc/manifest-meta.qdocconf b/src/imports/controls/doc/manifest-meta.qdocconf
new file mode 100644
index 00000000..74dbb41f
--- /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..225b7bea 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($PWD/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..43110494
--- /dev/null
+++ b/src/imports/controls/doc/snippets/qtquickcontrols2-button-icononly.qml
@@ -0,0 +1,34 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://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 http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://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: http://www.gnu.org/copyleft/fdl.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..e3be7a4b
--- /dev/null
+++ b/src/imports/controls/doc/snippets/qtquickcontrols2-button-textbesideicon.qml
@@ -0,0 +1,35 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://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 http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://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: http://www.gnu.org/copyleft/fdl.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..883340dc
--- /dev/null
+++ b/src/imports/controls/doc/snippets/qtquickcontrols2-button-textonly.qml
@@ -0,0 +1,34 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://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 http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://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: http://www.gnu.org/copyleft/fdl.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..bdb03e39
--- /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: {
+ header.itemAt(0).triggered()
+ header.itemAt(0).menu.itemAt(2).highlighted = true
+ }
+ //! [skipto]
+
+ header: 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("Cut") }
+ 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..8acec2a8
--- /dev/null
+++ b/src/imports/controls/doc/src/includes/qquickimaginestyle.qdocinc
@@ -0,0 +1,29 @@
+//! [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.
+
+ \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.
+
+ \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 36bce98d..23e52705 100644
--- a/src/imports/controls/doc/src/qtquickcontrols2-configuration.qdoc
+++ b/src/imports/controls/doc/src/qtquickcontrols2-configuration.qdoc
@@ -53,16 +53,163 @@
Primary=BlueGrey
\endcode
- \l {Material style} specific values that can be specified in a \c Material
- section of the configuration file:
+ \section1 Imagine Style Configuration
+
+ 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 Style Configuration
+
+ 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
- \l {Universal style} specific values that can be specified in a \c Universal
- section of the configuration file:
+ \section1 Universal Style Configuration
+
+ 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
+
+ Supported palette attributes:
+ \table
+ \header
+ \li Variable
+ \li Description
+ \row
+ \li \l {QPalette::ColorRole}{\c Window}
+ \li A general background color.
+ \row
+ \li \l {QPalette::ColorRole}{\c WindowText}
+ \li A general foreground color.
+ \row
+ \li \l {QPalette::ColorRole}{\c Base}
+ \li Used mostly as the background color for text editor controls and items views.
+ It is usually white or another light color.
+ \row
+ \li \l {QPalette::ColorRole}{\c Text}
+ \li The foreground color used with \c Base. This is usually the same as the \c WindowText,
+ in which case it must provide good contrast with \c Window and \c Base.
+ \row
+ \li \l {QPalette::ColorRole}{\c Button}
+ \li The general button background color. This background can be different from \c Window
+ as some styles require a different background color for buttons.
+ \row
+ \li \l {QPalette::ColorRole}{\c ButtonText}
+ \li A foreground color used with the \c Button color.
+ \row
+ \li \l {QPalette::ColorRole}{\c BrightText}
+ \li A text color that is very different from \c WindowText, and contrasts well with e.g. \c Dark.
+ Typically used for text that needs to be drawn where \c Text, \c WindowText or \c ButtonText
+ would give poor contrast, such as on highlighted buttons.
+ \row
+ \li \l {QPalette::ColorRole}{\c ToolTipBase}
+ \li Used as the background color for tooltips.
+ \row
+ \li \l {QPalette::ColorRole}{\c ToolTipText}
+ \li Used as the foreground color for tooltips.
+
+ \row
+ \li \l {QPalette::ColorRole}{\c Light}
+ \li Lighter than \c Button.
+ \row
+ \li \l {QPalette::ColorRole}{\c Midlight}
+ \li Between \c Button and \c Light.
+ \row
+ \li \l {QPalette::ColorRole}{\c Dark}
+ \li Darker than \c Button.
+ \row
+ \li \l {QPalette::ColorRole}{\c Mid}
+ \li Between \c Button and \c Dark.
+ \row
+ \li \l {QPalette::ColorRole}{\c Shadow}
+ \li A very dark color.
+
+ \row
+ \li \l {QPalette::ColorRole}{\c Highlight}
+ \li A color to indicate a selected item or the current item.
+ \row
+ \li \l {QPalette::ColorRole}{\c HighlightedText}
+ \li A text color that contrasts with \c Highlight.
+
+ \row
+ \li \l {QPalette::ColorRole}{\c Link}
+ \li A text color used for hyperlinks.
+ \endtable
+
+ \section1 Using the Configuration File in a Project
+
In order to make it possible for Qt Quick Controls 2 to find the configuration file,
it must be built into application's resources using the \l {The Qt Resource System}.
Here's an example \c .qrc file:
diff --git a/src/imports/controls/doc/src/qtquickcontrols2-customize.qdoc b/src/imports/controls/doc/src/qtquickcontrols2-customize.qdoc
index c2b1e640..a1d65396 100644
--- a/src/imports/controls/doc/src/qtquickcontrols2-customize.qdoc
+++ b/src/imports/controls/doc/src/qtquickcontrols2-customize.qdoc
@@ -542,41 +542,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.9
+ \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.9
+ \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-imagine.qdoc b/src/imports/controls/doc/src/qtquickcontrols2-imagine.qdoc
new file mode 100644
index 00000000..e1f974bd
--- /dev/null
+++ b/src/imports/controls/doc/src/qtquickcontrols2-imagine.qdoc
@@ -0,0 +1,2546 @@
+/****************************************************************************
+**
+** 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 highlighted, checkable, hovered
+ \li \image imagine/images/button-background-highlighted-checkable-hovered.9.png
+ \li
+ \row
+ \li
+ \li background
+ \li highlighted, checkable, pressed
+ \li \image imagine/images/button-background-highlighted-checkable-pressed.9.png
+ \li
+ \row
+ \li
+ \li background
+ \li highlighted, checkable, checked
+ \li \image imagine/images/button-background-highlighted-checkable-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
+ \li background
+ \li flat, checkable
+ \li \image imagine/images/button-background-flat-checkable.9.png
+ \li
+ \row
+ \li
+ \li background
+ \li flat, checkable, hovered
+ \li \image imagine/images/button-background-flat-checkable-hovered.9.png
+ \li
+ \row
+ \li
+ \li background
+ \li flat, checkable, pressed
+ \li \image imagine/images/button-background-flat-checkable-pressed.9.png
+ \li
+ \row
+ \li
+ \li background
+ \li flat, checkable, checked, pressed
+ \li \image imagine/images/button-background-flat-checkable-checked-pressed.9.png
+ \li
+ \row
+ \li
+ \li background
+ \li flat, checkable, highlighted
+ \li \image imagine/images/button-background-flat-checkable-highlighted.9.png
+ \li
+ \row
+ \li
+ \li background
+ \li flat, checkable, highlighted, pressed
+ \li \image imagine/images/button-background-flat-checkable-highlighted-pressed.9.png
+ \li
+ \row
+ \li
+ \li background
+ \li flat, checkable, highlighted, checked
+ \li \image imagine/images/button-background-flat-checkable-highlighted-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 checked
+ \li \image imagine/images/checkdelegate-background-checked.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
+ \li delegate
+ \li mirrored
+ \li \image imagine/images/pageindicator-delegate-mirrored.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 checked
+ \li \image imagine/images/radiodelegate-background-checked.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 checked
+ \li \image imagine/images/switchdelegate-background-checked.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 pressed
+ \li \image imagine/images/textarea-background-pressed.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 pressed
+ \li \image imagine/images/textfield-background-pressed.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}
+ \endlist
+*/
diff --git a/src/imports/controls/doc/src/qtquickcontrols2-index.qdoc b/src/imports/controls/doc/src/qtquickcontrols2-index.qdoc
index 51d672f3..f64901d5 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 ...
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-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 f2df16ce..21eca464 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 {Using File Selectors with 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..d0f2b531
--- /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
+
+ opacity: control.running ? 1 : 0
+ visible: control.running || opacityAnimator.running
+ Behavior on opacity { OpacityAnimator { id: opacityAnimator; duration: 250 } }
+
+ RotationAnimator on rotation {
+ running: control.running || opacityAnimator.running
+ 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/fusion/ButtonPanel.qml b/src/imports/controls/fusion/ButtonPanel.qml
new file mode 100644
index 00000000..801c2816
--- /dev/null
+++ b/src/imports/controls/fusion/ButtonPanel.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.Controls 2.3
+import QtQuick.Controls.impl 2.3
+import QtQuick.Controls.Fusion 2.3
+import QtQuick.Controls.Fusion.impl 2.3
+
+Rectangle {
+ id: panel
+
+ property Item control
+ property bool highlighted: control.highlighted
+
+ visible: !control.flat || control.down || control.checked
+
+ color: Fusion.buttonColor(control.palette, panel.highlighted, control.down || control.checked, control.hovered)
+ gradient: control.down || control.checked ? null : buttonGradient
+
+ 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..813d99b4
--- /dev/null
+++ b/src/imports/controls/fusion/CheckBox.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 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
+ visible: control.text
+ horizontalAlignment: Text.AlignLeft
+ 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..fefa1131
--- /dev/null
+++ b/src/imports/controls/fusion/ComboBox.qml
@@ -0,0 +1,177 @@
+/****************************************************************************
+**
+** 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.popup.visible
+ 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
+ horizontalAlignment: Text.AlignLeft
+ 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 {
+ id: 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.popup.visible ? control.delegateModel : null
+ 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..abeda360
--- /dev/null
+++ b/src/imports/controls/fusion/DelayButton.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.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: Item {
+ implicitWidth: label.implicitWidth
+ implicitHeight: label.implicitHeight
+
+ Item {
+ x: -control.leftPadding + (control.mirrored ? 0 : control.progress * control.width)
+ width: control.width
+ height: parent.height
+
+ clip: control.progress > 0
+ visible: control.mirrored ? control.progress > 0 : control.progress < 1
+
+ Text {
+ id: label
+ x: -parent.x
+ width: control.availableWidth
+ height: parent.height
+
+ text: control.text
+ font: control.font
+ color: control.mirrored ? control.palette.brightText : control.palette.buttonText
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ elide: Text.ElideRight
+ }
+ }
+
+ Item {
+ x: -control.leftPadding
+ width: (control.mirrored ? 1.0 - control.progress : control.progress) * control.width
+ height: parent.height
+
+ clip: control.progress > 0
+ visible: control.mirrored ? control.progress < 1 : control.progress > 0
+
+ Text {
+ x: -parent.x
+ width: control.availableWidth
+ height: parent.height
+
+ 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..16fbfbdb
--- /dev/null
+++ b/src/imports/controls/fusion/GroupBox.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.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
+ horizontalAlignment: Text.AlignLeft
+ 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..f7e21809
--- /dev/null
+++ b/src/imports/controls/fusion/ProgressBar.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.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 {
+ id: mask
+ 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: -mask.implicitWidth
+ 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..c9484c7d
--- /dev/null
+++ b/src/imports/controls/fusion/RadioButton.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 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
+ visible: control.text
+ horizontalAlignment: Text.AlignLeft
+ 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/fusion/RadioIndicator.qml b/src/imports/controls/fusion/RadioIndicator.qml
new file mode 100644
index 00000000..2aceab2e
--- /dev/null
+++ b/src/imports/controls/fusion/RadioIndicator.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.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
+
+ 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)
+
+ 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: 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..390f78f3
--- /dev/null
+++ b/src/imports/controls/fusion/RoundButton.qml
@@ -0,0 +1,102 @@
+/****************************************************************************
+**
+** 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
+
+ color: Fusion.buttonColor(control.palette, control.highlighted, control.down || control.checked, control.hovered)
+ gradient: control.down || control.checked ? null : buttonGradient
+
+ Gradient {
+ id: buttonGradient
+ GradientStop {
+ position: 0
+ color: Fusion.gradientStart(Fusion.buttonColor(control.palette, control.highlighted, control.down, control.hovered))
+ }
+ GradientStop {
+ position: 1
+ color: 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..e85c8440
--- /dev/null
+++ b/src/imports/controls/fusion/ScrollBar.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.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 {
+ id: handle
+
+ 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: handle; opacity: 0.75 }
+ }
+
+ transitions: Transition {
+ from: "active"
+ SequentialAnimation {
+ PauseAnimation { duration: 450 }
+ NumberAnimation { target: handle; 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..68147ea5
--- /dev/null
+++ b/src/imports/controls/fusion/ScrollIndicator.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.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 {
+ id: indicator
+
+ 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: indicator; opacity: 0.75 }
+ }
+
+ transitions: [
+ Transition {
+ from: "active"
+ SequentialAnimation {
+ PauseAnimation { duration: 450 }
+ NumberAnimation { target: indicator; 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..c9e01f3d
--- /dev/null
+++ b/src/imports/controls/fusion/Switch.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 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
+ visible: control.text
+ horizontalAlignment: Text.AlignLeft
+ 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..c4ec2029
--- /dev/null
+++ b/src/imports/controls/fusion/TabButton.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 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: control.checked ? selectedGradient : normalGradient
+
+ Gradient {
+ id: selectedGradient
+ GradientStop {
+ position: 0
+ color: Qt.lighter(Fusion.tabFrameColor(control.palette), 1.04)
+ }
+ GradientStop {
+ position: 1
+ color: Fusion.tabFrameColor(control.palette)
+ }
+ }
+
+ Gradient {
+ id: normalGradient
+ GradientStop {
+ position: 0
+ color: Qt.darker(Fusion.tabFrameColor(control.palette), 1.08)
+ }
+ GradientStop {
+ position: 0.85
+ color: Qt.darker(Fusion.tabFrameColor(control.palette), 1.08)
+ }
+ GradientStop {
+ position: 1
+ color: 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..6d47e237
--- /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.palette.text
+ 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..686690bb
--- /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.palette.text
+ 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..6f06e8f5
--- /dev/null
+++ b/src/imports/controls/fusion/Tumbler.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.Tumbler {
+ id: control
+ implicitWidth: 60
+ implicitHeight: 200
+
+ delegate: Text {
+ id: label
+ text: modelData
+ color: control.palette.windowText
+ font: control.font
+ opacity: (1.0 - Math.abs(Tumbler.displacement) / (visibleItemCount / 2)) * (control.enabled ? 1 : 0.6)
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ }
+
+ contentItem: TumblerView {
+ id: tumblerView
+ model: control.model
+ delegate: control.delegate
+ path: Path {
+ startX: tumblerView.width / 2
+ startY: -tumblerView.delegateHeight / 2
+ PathLine {
+ x: tumblerView.width / 2
+ y: (control.visibleItemCount + 1) * tumblerView.delegateHeight - tumblerView.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
new file mode 100644
index 00000000..ad8cdc95
--- /dev/null
+++ b/src/imports/controls/fusion/images/arrow.png
Binary files differ
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
new file mode 100644
index 00000000..4f94c58f
--- /dev/null
+++ b/src/imports/controls/fusion/images/arrow@2x.png
Binary files differ
diff --git a/src/imports/controls/fusion/images/arrow@3x.png b/src/imports/controls/fusion/images/arrow@3x.png
new file mode 100644
index 00000000..68928ea9
--- /dev/null
+++ b/src/imports/controls/fusion/images/arrow@3x.png
Binary files differ
diff --git a/src/imports/controls/fusion/images/arrow@4x.png b/src/imports/controls/fusion/images/arrow@4x.png
new file mode 100644
index 00000000..edde50f3
--- /dev/null
+++ b/src/imports/controls/fusion/images/arrow@4x.png
Binary files differ
diff --git a/src/imports/controls/fusion/images/checkmark.png b/src/imports/controls/fusion/images/checkmark.png
new file mode 100644
index 00000000..9cb04883
--- /dev/null
+++ b/src/imports/controls/fusion/images/checkmark.png
Binary files differ
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
new file mode 100644
index 00000000..ae9a7749
--- /dev/null
+++ b/src/imports/controls/fusion/images/checkmark@2x.png
Binary files differ
diff --git a/src/imports/controls/fusion/images/checkmark@3x.png b/src/imports/controls/fusion/images/checkmark@3x.png
new file mode 100644
index 00000000..4a67e88a
--- /dev/null
+++ b/src/imports/controls/fusion/images/checkmark@3x.png
Binary files differ
diff --git a/src/imports/controls/fusion/images/checkmark@4x.png b/src/imports/controls/fusion/images/checkmark@4x.png
new file mode 100644
index 00000000..0890d2ba
--- /dev/null
+++ b/src/imports/controls/fusion/images/checkmark@4x.png
Binary files differ
diff --git a/src/imports/controls/fusion/images/progressmask.png b/src/imports/controls/fusion/images/progressmask.png
new file mode 100644
index 00000000..683f9e2f
--- /dev/null
+++ b/src/imports/controls/fusion/images/progressmask.png
Binary files differ
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
new file mode 100644
index 00000000..e101f5de
--- /dev/null
+++ b/src/imports/controls/fusion/images/progressmask@2x.png
Binary files differ
diff --git a/src/imports/controls/fusion/images/progressmask@3x.png b/src/imports/controls/fusion/images/progressmask@3x.png
new file mode 100644
index 00000000..784f01c0
--- /dev/null
+++ b/src/imports/controls/fusion/images/progressmask@3x.png
Binary files differ
diff --git a/src/imports/controls/fusion/images/progressmask@4x.png b/src/imports/controls/fusion/images/progressmask@4x.png
new file mode 100644
index 00000000..8af0b2c2
--- /dev/null
+++ b/src/imports/controls/fusion/images/progressmask@4x.png
Binary files differ
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..7254b7b7
--- /dev/null
+++ b/src/imports/controls/fusion/qquickfusionbusyindicator.cpp
@@ -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$
+**
+****************************************************************************/
+
+#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();
+}
+
+void QQuickFusionBusyIndicator::paint(QPainter *painter)
+{
+ const qreal w = width();
+ const qreal h = height();
+ if (w <= 0 || h <= 0 || !isVisible())
+ 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);
+}
+
+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..c8af3311
--- /dev/null
+++ b/src/imports/controls/fusion/qquickfusionbusyindicator_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 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)
+
+public:
+ explicit QQuickFusionBusyIndicator(QQuickItem *parent = nullptr);
+
+ QColor color() const;
+ void setColor(const QColor &color);
+
+ void paint(QPainter *painter) 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
new file mode 100644
index 00000000..50f230dc
--- /dev/null
+++ b/src/imports/controls/images/arrow-indicator.png
Binary files differ
diff --git a/src/imports/controls/images/arrow-indicator@2x.png b/src/imports/controls/images/arrow-indicator@2x.png
new file mode 100644
index 00000000..457cdde0
--- /dev/null
+++ b/src/imports/controls/images/arrow-indicator@2x.png
Binary files differ
diff --git a/src/imports/controls/images/arrow-indicator@3x.png b/src/imports/controls/images/arrow-indicator@3x.png
new file mode 100644
index 00000000..8d624154
--- /dev/null
+++ b/src/imports/controls/images/arrow-indicator@3x.png
Binary files differ
diff --git a/src/imports/controls/images/arrow-indicator@4x.png b/src/imports/controls/images/arrow-indicator@4x.png
new file mode 100644
index 00000000..7d2c49e2
--- /dev/null
+++ b/src/imports/controls/images/arrow-indicator@4x.png
Binary files differ
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..a1ce3f7b
--- /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 {
+ playing: control.running
+ opacity: control.running ? 1 : 0
+ visible: control.running || animator.running
+ Behavior on opacity { OpacityAnimator { id: animator; 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..01426054
--- /dev/null
+++ b/src/imports/controls/imagine/CheckBox.qml
@@ -0,0 +1,108 @@
+/****************************************************************************
+**
+** 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
+ visible: control.text
+ horizontalAlignment: Text.AlignLeft
+ 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..1a85b675
--- /dev/null
+++ b/src/imports/controls/imagine/ComboBox.qml
@@ -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$
+**
+****************************************************************************/
+
+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.popup.visible},
+ {"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.popup.visible
+ 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
+ horizontalAlignment: Text.AlignLeft
+ 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.popup.visible},
+ {"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.popup.visible ? control.delegateModel : null
+ 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..3b2eb8bb
--- /dev/null
+++ b/src/imports/controls/imagine/DelayButton.qml
@@ -0,0 +1,139 @@
+/****************************************************************************
+**
+** 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}
+ ]
+ }
+
+ NinePatchImage {
+ id: progress
+ 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}
+ ]
+ }
+ }
+
+ NinePatchImage {
+ id: mask
+ width: parent.width
+ height: parent.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}
+ ]
+ }
+ }
+
+ OpacityMask {
+ id: effect
+ width: source.width
+ height: source.height
+ source: progress
+
+ maskSource: ShaderEffectSource {
+ sourceItem: mask
+ sourceRect: Qt.rect(0, 0, effect.width, 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..8ff48c42
--- /dev/null
+++ b/src/imports/controls/imagine/GroupBox.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.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: header.topPadding
+ leftPadding: header.leftPadding
+ rightPadding: header.rightPadding
+ bottomPadding: header.bottomPadding
+
+ text: control.title
+ font: control.font
+ elide: Text.ElideRight
+ horizontalAlignment: Text.AlignLeft
+ verticalAlignment: Text.AlignVCenter
+
+ color: control.palette.windowText
+
+ background: NinePatchImage {
+ id: header
+ 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..89645d3c
--- /dev/null
+++ b/src/imports/controls/imagine/ProgressBar.qml
@@ -0,0 +1,140 @@
+/****************************************************************************
+**
+** 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
+
+ NinePatchImage {
+ id: progress
+ width: control.position * parent.width
+ height: parent.height
+ visible: !control.indeterminate && mask.status === Image.Null
+
+ source: Imagine.url + "progressbar-progress"
+ NinePatchImageSelector on source {
+ states: [
+ {"disabled": !control.enabled},
+ {"indeterminate": control.indeterminate},
+ {"mirrored": control.mirrored},
+ {"hovered": control.hovered}
+ ]
+ }
+ }
+
+ AnimatedImage {
+ id: animation
+ width: parent.width
+ height: parent.height
+ playing: control.indeterminate
+ visible: control.indeterminate && mask.status === Image.Null
+
+ source: Imagine.url + "progressbar-animation"
+ AnimatedImageSelector on source {
+ states: [
+ {"disabled": !control.enabled},
+ {"mirrored": control.mirrored},
+ {"hovered": control.hovered}
+ ]
+ }
+ }
+
+ NinePatchImage {
+ id: mask
+ width: parent.width
+ height: parent.height
+ visible: false
+
+ source: Imagine.url + "progressbar-mask"
+ NinePatchImageSelector on source {
+ states: [
+ {"disabled": !control.enabled},
+ {"indeterminate": control.indeterminate},
+ {"mirrored": control.mirrored},
+ {"hovered": control.hovered}
+ ]
+ }
+ }
+
+ OpacityMask {
+ id: effect
+ width: source.width
+ height: source.height
+ source: control.indeterminate ? animation : progress
+
+ maskSource: ShaderEffectSource {
+ sourceItem: mask
+ sourceRect: Qt.rect(0, 0, effect.width, 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..8df27fcc
--- /dev/null
+++ b/src/imports/controls/imagine/RadioButton.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.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
+ visible: control.text
+ horizontalAlignment: Text.AlignLeft
+ 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..e3ee269b
--- /dev/null
+++ b/src/imports/controls/imagine/RoundButton.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.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
+
+ 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
+
+ // ### 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..af927806
--- /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: 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))
+
+ 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..ebadb860
--- /dev/null
+++ b/src/imports/controls/imagine/SpinBox.qml
@@ -0,0 +1,154 @@
+/****************************************************************************
+**
+** 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 {
+ id: upIndicator
+ x: control.mirrored ? 0 : parent.width - width
+ height: parent.height
+
+ source: Imagine.url + "spinbox-indicator"
+ NinePatchImageSelector on source {
+ states: [
+ {"up": true},
+ {"disabled": !upIndicator.enabled},
+ {"editable": control.editable},
+ {"pressed": control.up.pressed},
+ {"focused": control.activeFocus},
+ {"mirrored": control.mirrored},
+ {"hovered": control.up.hovered}
+ ]
+ }
+ }
+
+ down.indicator: NinePatchImage {
+ id: downIndicator
+ x: control.mirrored ? parent.width - width : 0
+ height: parent.height
+
+ source: Imagine.url + "spinbox-indicator"
+ NinePatchImageSelector on source {
+ states: [
+ {"down": true},
+ {"disabled": !downIndicator.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..a4a33e29
--- /dev/null
+++ b/src/imports/controls/imagine/Switch.qml
@@ -0,0 +1,135 @@
+/****************************************************************************
+**
+** 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}
+ ]
+ }
+
+ NinePatchImage {
+ id: handle
+ 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)
+
+ 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
+ visible: control.text
+ horizontalAlignment: Text.AlignLeft
+ 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..0c9bfb15
--- /dev/null
+++ b/src/imports/controls/imagine/SwitchDelegate.qml
@@ -0,0 +1,146 @@
+/****************************************************************************
+**
+** 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}
+ ]
+ }
+
+ NinePatchImage {
+ id: handle
+ 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)
+
+ 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..ac212b95
--- /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.palette.text
+ 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..a6449884
--- /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.palette.text
+ 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..5e1c913c
--- /dev/null
+++ b/src/imports/controls/imagine/Tumbler.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 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) / (visibleItemCount / 2)) * (control.enabled ? 1 : 0.6)
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ }
+
+ contentItem: TumblerView {
+ id: tumblerView
+ model: control.model
+ delegate: control.delegate
+ path: Path {
+ startX: tumblerView.width / 2
+ startY: -tumblerView.delegateHeight / 2
+ PathLine {
+ x: tumblerView.width / 2
+ y: (control.visibleItemCount + 1) * tumblerView.delegateHeight - tumblerView.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/images/applicationwindow-background.png b/src/imports/controls/imagine/images/applicationwindow-background.png
new file mode 100644
index 00000000..2d8d70f2
--- /dev/null
+++ b/src/imports/controls/imagine/images/applicationwindow-background.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/applicationwindow-background@2x.png b/src/imports/controls/imagine/images/applicationwindow-background@2x.png
new file mode 100644
index 00000000..ba9b40df
--- /dev/null
+++ b/src/imports/controls/imagine/images/applicationwindow-background@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/applicationwindow-background@3x.png b/src/imports/controls/imagine/images/applicationwindow-background@3x.png
new file mode 100644
index 00000000..3b369748
--- /dev/null
+++ b/src/imports/controls/imagine/images/applicationwindow-background@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/applicationwindow-background@4x.png b/src/imports/controls/imagine/images/applicationwindow-background@4x.png
new file mode 100644
index 00000000..a2fa69df
--- /dev/null
+++ b/src/imports/controls/imagine/images/applicationwindow-background@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/applicationwindow-overlay-modal.png b/src/imports/controls/imagine/images/applicationwindow-overlay-modal.png
new file mode 100644
index 00000000..3113bd99
--- /dev/null
+++ b/src/imports/controls/imagine/images/applicationwindow-overlay-modal.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/applicationwindow-overlay-modal@2x.png b/src/imports/controls/imagine/images/applicationwindow-overlay-modal@2x.png
new file mode 100644
index 00000000..0ad9ce6d
--- /dev/null
+++ b/src/imports/controls/imagine/images/applicationwindow-overlay-modal@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/applicationwindow-overlay-modal@3x.png b/src/imports/controls/imagine/images/applicationwindow-overlay-modal@3x.png
new file mode 100644
index 00000000..170607d9
--- /dev/null
+++ b/src/imports/controls/imagine/images/applicationwindow-overlay-modal@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/applicationwindow-overlay-modal@4x.png b/src/imports/controls/imagine/images/applicationwindow-overlay-modal@4x.png
new file mode 100644
index 00000000..8b4b974d
--- /dev/null
+++ b/src/imports/controls/imagine/images/applicationwindow-overlay-modal@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/applicationwindow-overlay.png b/src/imports/controls/imagine/images/applicationwindow-overlay.png
new file mode 100644
index 00000000..7a172720
--- /dev/null
+++ b/src/imports/controls/imagine/images/applicationwindow-overlay.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/applicationwindow-overlay@2x.png b/src/imports/controls/imagine/images/applicationwindow-overlay@2x.png
new file mode 100644
index 00000000..e8fb48ad
--- /dev/null
+++ b/src/imports/controls/imagine/images/applicationwindow-overlay@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/applicationwindow-overlay@3x.png b/src/imports/controls/imagine/images/applicationwindow-overlay@3x.png
new file mode 100644
index 00000000..1ea6204c
--- /dev/null
+++ b/src/imports/controls/imagine/images/applicationwindow-overlay@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/applicationwindow-overlay@4x.png b/src/imports/controls/imagine/images/applicationwindow-overlay@4x.png
new file mode 100644
index 00000000..cc4df170
--- /dev/null
+++ b/src/imports/controls/imagine/images/applicationwindow-overlay@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/busyindicator-animation.webp b/src/imports/controls/imagine/images/busyindicator-animation.webp
new file mode 100644
index 00000000..ebf04c4a
--- /dev/null
+++ b/src/imports/controls/imagine/images/busyindicator-animation.webp
Binary files differ
diff --git a/src/imports/controls/imagine/images/busyindicator-animation@2x.webp b/src/imports/controls/imagine/images/busyindicator-animation@2x.webp
new file mode 100644
index 00000000..43805a0b
--- /dev/null
+++ b/src/imports/controls/imagine/images/busyindicator-animation@2x.webp
Binary files differ
diff --git a/src/imports/controls/imagine/images/busyindicator-animation@3x.webp b/src/imports/controls/imagine/images/busyindicator-animation@3x.webp
new file mode 100644
index 00000000..b700b81f
--- /dev/null
+++ b/src/imports/controls/imagine/images/busyindicator-animation@3x.webp
Binary files differ
diff --git a/src/imports/controls/imagine/images/busyindicator-animation@4x.webp b/src/imports/controls/imagine/images/busyindicator-animation@4x.webp
new file mode 100644
index 00000000..bfaa8df9
--- /dev/null
+++ b/src/imports/controls/imagine/images/busyindicator-animation@4x.webp
Binary files differ
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
new file mode 100644
index 00000000..3cc20a45
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-checked-disabled.9.png
Binary files differ
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
new file mode 100644
index 00000000..459634ed
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-checked-disabled@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..ed44c623
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-checked-disabled@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..7795c5cf
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-checked-disabled@4x.9.png
Binary files differ
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
new file mode 100644
index 00000000..aff98b73
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-checked-focused.9.png
Binary files differ
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
new file mode 100644
index 00000000..ab0d89ec
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-checked-focused@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..299510e2
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-checked-focused@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..c5031415
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-checked-focused@4x.9.png
Binary files differ
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
new file mode 100644
index 00000000..aff98b73
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-checked-hovered.9.png
Binary files differ
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
new file mode 100644
index 00000000..ab0d89ec
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-checked-hovered@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..299510e2
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-checked-hovered@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..c5031415
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-checked-hovered@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/button-background-checked.9.png b/src/imports/controls/imagine/images/button-background-checked.9.png
new file mode 100644
index 00000000..8127c8e1
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-checked.9.png
Binary files differ
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
new file mode 100644
index 00000000..b11c9e30
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-checked@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..31cb846b
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-checked@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..558d80a2
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-checked@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/button-background-disabled.9.png b/src/imports/controls/imagine/images/button-background-disabled.9.png
new file mode 100644
index 00000000..3cc20a45
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-disabled.9.png
Binary files differ
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
new file mode 100644
index 00000000..459634ed
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-disabled@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..ed44c623
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-disabled@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..7795c5cf
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-disabled@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/button-background-flat-checkable-checked-pressed.9.png b/src/imports/controls/imagine/images/button-background-flat-checkable-checked-pressed.9.png
new file mode 100644
index 00000000..3cc20a45
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-flat-checkable-checked-pressed.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/button-background-flat-checkable-checked-pressed@2x.9.png b/src/imports/controls/imagine/images/button-background-flat-checkable-checked-pressed@2x.9.png
new file mode 100644
index 00000000..459634ed
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-flat-checkable-checked-pressed@2x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/button-background-flat-checkable-checked-pressed@3x.9.png b/src/imports/controls/imagine/images/button-background-flat-checkable-checked-pressed@3x.9.png
new file mode 100644
index 00000000..ed44c623
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-flat-checkable-checked-pressed@3x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/button-background-flat-checkable-checked-pressed@4x.9.png b/src/imports/controls/imagine/images/button-background-flat-checkable-checked-pressed@4x.9.png
new file mode 100644
index 00000000..7795c5cf
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-flat-checkable-checked-pressed@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/button-background-flat-checkable-highlighted-checked.9.png b/src/imports/controls/imagine/images/button-background-flat-checkable-highlighted-checked.9.png
new file mode 100644
index 00000000..3cc20a45
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-flat-checkable-highlighted-checked.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/button-background-flat-checkable-highlighted-checked@2x.9.png b/src/imports/controls/imagine/images/button-background-flat-checkable-highlighted-checked@2x.9.png
new file mode 100644
index 00000000..459634ed
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-flat-checkable-highlighted-checked@2x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/button-background-flat-checkable-highlighted-checked@3x.9.png b/src/imports/controls/imagine/images/button-background-flat-checkable-highlighted-checked@3x.9.png
new file mode 100644
index 00000000..ed44c623
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-flat-checkable-highlighted-checked@3x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/button-background-flat-checkable-highlighted-checked@4x.9.png b/src/imports/controls/imagine/images/button-background-flat-checkable-highlighted-checked@4x.9.png
new file mode 100644
index 00000000..7795c5cf
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-flat-checkable-highlighted-checked@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/button-background-flat-checkable-highlighted-pressed.9.png b/src/imports/controls/imagine/images/button-background-flat-checkable-highlighted-pressed.9.png
new file mode 100644
index 00000000..3cc20a45
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-flat-checkable-highlighted-pressed.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/button-background-flat-checkable-highlighted-pressed@2x.9.png b/src/imports/controls/imagine/images/button-background-flat-checkable-highlighted-pressed@2x.9.png
new file mode 100644
index 00000000..459634ed
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-flat-checkable-highlighted-pressed@2x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/button-background-flat-checkable-highlighted-pressed@3x.9.png b/src/imports/controls/imagine/images/button-background-flat-checkable-highlighted-pressed@3x.9.png
new file mode 100644
index 00000000..ed44c623
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-flat-checkable-highlighted-pressed@3x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/button-background-flat-checkable-highlighted-pressed@4x.9.png b/src/imports/controls/imagine/images/button-background-flat-checkable-highlighted-pressed@4x.9.png
new file mode 100644
index 00000000..7795c5cf
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-flat-checkable-highlighted-pressed@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/button-background-flat-checkable-highlighted.9.png b/src/imports/controls/imagine/images/button-background-flat-checkable-highlighted.9.png
new file mode 100644
index 00000000..59907409
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-flat-checkable-highlighted.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/button-background-flat-checkable-highlighted@2x.9.png b/src/imports/controls/imagine/images/button-background-flat-checkable-highlighted@2x.9.png
new file mode 100644
index 00000000..d66acd9c
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-flat-checkable-highlighted@2x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/button-background-flat-checkable-highlighted@3x.9.png b/src/imports/controls/imagine/images/button-background-flat-checkable-highlighted@3x.9.png
new file mode 100644
index 00000000..89b8c353
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-flat-checkable-highlighted@3x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/button-background-flat-checkable-highlighted@4x.9.png b/src/imports/controls/imagine/images/button-background-flat-checkable-highlighted@4x.9.png
new file mode 100644
index 00000000..d3a675cf
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-flat-checkable-highlighted@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/button-background-flat-checkable-hovered.9.png b/src/imports/controls/imagine/images/button-background-flat-checkable-hovered.9.png
new file mode 100644
index 00000000..8800e4db
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-flat-checkable-hovered.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/button-background-flat-checkable-hovered@2x.9.png b/src/imports/controls/imagine/images/button-background-flat-checkable-hovered@2x.9.png
new file mode 100644
index 00000000..5b3647ca
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-flat-checkable-hovered@2x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/button-background-flat-checkable-hovered@3x.9.png b/src/imports/controls/imagine/images/button-background-flat-checkable-hovered@3x.9.png
new file mode 100644
index 00000000..1714fd98
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-flat-checkable-hovered@3x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/button-background-flat-checkable-hovered@4x.9.png b/src/imports/controls/imagine/images/button-background-flat-checkable-hovered@4x.9.png
new file mode 100644
index 00000000..2ceba458
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-flat-checkable-hovered@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/button-background-flat-checkable-pressed.9.png b/src/imports/controls/imagine/images/button-background-flat-checkable-pressed.9.png
new file mode 100644
index 00000000..3cc20a45
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-flat-checkable-pressed.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/button-background-flat-checkable-pressed@2x.9.png b/src/imports/controls/imagine/images/button-background-flat-checkable-pressed@2x.9.png
new file mode 100644
index 00000000..459634ed
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-flat-checkable-pressed@2x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/button-background-flat-checkable-pressed@3x.9.png b/src/imports/controls/imagine/images/button-background-flat-checkable-pressed@3x.9.png
new file mode 100644
index 00000000..ed44c623
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-flat-checkable-pressed@3x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/button-background-flat-checkable-pressed@4x.9.png b/src/imports/controls/imagine/images/button-background-flat-checkable-pressed@4x.9.png
new file mode 100644
index 00000000..7795c5cf
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-flat-checkable-pressed@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/button-background-flat-checkable.9.png b/src/imports/controls/imagine/images/button-background-flat-checkable.9.png
new file mode 100644
index 00000000..59907409
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-flat-checkable.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/button-background-flat-checkable@2x.9.png b/src/imports/controls/imagine/images/button-background-flat-checkable@2x.9.png
new file mode 100644
index 00000000..d66acd9c
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-flat-checkable@2x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/button-background-flat-checkable@3x.9.png b/src/imports/controls/imagine/images/button-background-flat-checkable@3x.9.png
new file mode 100644
index 00000000..89b8c353
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-flat-checkable@3x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/button-background-flat-checkable@4x.9.png b/src/imports/controls/imagine/images/button-background-flat-checkable@4x.9.png
new file mode 100644
index 00000000..d3a675cf
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-flat-checkable@4x.9.png
Binary files differ
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
new file mode 100644
index 00000000..3cc20a45
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-flat-checked.9.png
Binary files differ
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
new file mode 100644
index 00000000..459634ed
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-flat-checked@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..ed44c623
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-flat-checked@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..7795c5cf
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-flat-checked@4x.9.png
Binary files differ
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
new file mode 100644
index 00000000..59907409
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-flat-disabled.9.png
Binary files differ
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
new file mode 100644
index 00000000..d66acd9c
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-flat-disabled@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..89b8c353
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-flat-disabled@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..d3a675cf
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-flat-disabled@4x.9.png
Binary files differ
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
new file mode 100644
index 00000000..8800e4db
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-flat-hovered.9.png
Binary files differ
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
new file mode 100644
index 00000000..5b3647ca
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-flat-hovered@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..1714fd98
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-flat-hovered@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..2ceba458
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-flat-hovered@4x.9.png
Binary files differ
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
new file mode 100644
index 00000000..3cc20a45
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-flat-pressed.9.png
Binary files differ
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
new file mode 100644
index 00000000..459634ed
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-flat-pressed@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..ed44c623
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-flat-pressed@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..7795c5cf
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-flat-pressed@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/button-background-flat.9.png b/src/imports/controls/imagine/images/button-background-flat.9.png
new file mode 100644
index 00000000..59907409
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-flat.9.png
Binary files differ
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
new file mode 100644
index 00000000..d66acd9c
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-flat@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..89b8c353
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-flat@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..d3a675cf
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-flat@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/button-background-focused.9.png b/src/imports/controls/imagine/images/button-background-focused.9.png
new file mode 100644
index 00000000..64278299
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-focused.9.png
Binary files differ
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
new file mode 100644
index 00000000..0213bba2
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-focused@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..e4189bf5
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-focused@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..7ffc9c80
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-focused@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/button-background-highlighted-checkable-checked.9.png b/src/imports/controls/imagine/images/button-background-highlighted-checkable-checked.9.png
new file mode 100644
index 00000000..99dec0e9
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-highlighted-checkable-checked.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/button-background-highlighted-checkable-checked@2x.9.png b/src/imports/controls/imagine/images/button-background-highlighted-checkable-checked@2x.9.png
new file mode 100644
index 00000000..23202bf1
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-highlighted-checkable-checked@2x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/button-background-highlighted-checkable-checked@3x.9.png b/src/imports/controls/imagine/images/button-background-highlighted-checkable-checked@3x.9.png
new file mode 100644
index 00000000..57bfcef6
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-highlighted-checkable-checked@3x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/button-background-highlighted-checkable-checked@4x.9.png b/src/imports/controls/imagine/images/button-background-highlighted-checkable-checked@4x.9.png
new file mode 100644
index 00000000..81ad9cd2
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-highlighted-checkable-checked@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/button-background-highlighted-checkable-hovered.9.png b/src/imports/controls/imagine/images/button-background-highlighted-checkable-hovered.9.png
new file mode 100644
index 00000000..8767034d
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-highlighted-checkable-hovered.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/button-background-highlighted-checkable-hovered@2x.9.png b/src/imports/controls/imagine/images/button-background-highlighted-checkable-hovered@2x.9.png
new file mode 100644
index 00000000..7b4fb07b
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-highlighted-checkable-hovered@2x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/button-background-highlighted-checkable-hovered@3x.9.png b/src/imports/controls/imagine/images/button-background-highlighted-checkable-hovered@3x.9.png
new file mode 100644
index 00000000..f932aa9b
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-highlighted-checkable-hovered@3x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/button-background-highlighted-checkable-hovered@4x.9.png b/src/imports/controls/imagine/images/button-background-highlighted-checkable-hovered@4x.9.png
new file mode 100644
index 00000000..290da64f
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-highlighted-checkable-hovered@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/button-background-highlighted-checkable-pressed.9.png b/src/imports/controls/imagine/images/button-background-highlighted-checkable-pressed.9.png
new file mode 100644
index 00000000..99dec0e9
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-highlighted-checkable-pressed.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/button-background-highlighted-checkable-pressed@2x.9.png b/src/imports/controls/imagine/images/button-background-highlighted-checkable-pressed@2x.9.png
new file mode 100644
index 00000000..23202bf1
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-highlighted-checkable-pressed@2x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/button-background-highlighted-checkable-pressed@3x.9.png b/src/imports/controls/imagine/images/button-background-highlighted-checkable-pressed@3x.9.png
new file mode 100644
index 00000000..57bfcef6
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-highlighted-checkable-pressed@3x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/button-background-highlighted-checkable-pressed@4x.9.png b/src/imports/controls/imagine/images/button-background-highlighted-checkable-pressed@4x.9.png
new file mode 100644
index 00000000..81ad9cd2
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-highlighted-checkable-pressed@4x.9.png
Binary files differ
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
new file mode 100644
index 00000000..99dec0e9
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-highlighted-checked.9.png
Binary files differ
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
new file mode 100644
index 00000000..23202bf1
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-highlighted-checked@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..57bfcef6
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-highlighted-checked@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..81ad9cd2
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-highlighted-checked@4x.9.png
Binary files differ
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
new file mode 100644
index 00000000..3cc20a45
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-highlighted-disabled.9.png
Binary files differ
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
new file mode 100644
index 00000000..459634ed
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-highlighted-disabled@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..ed44c623
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-highlighted-disabled@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..7795c5cf
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-highlighted-disabled@4x.9.png
Binary files differ
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
new file mode 100644
index 00000000..8767034d
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-highlighted-focused.9.png
Binary files differ
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
new file mode 100644
index 00000000..7b4fb07b
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-highlighted-focused@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..f932aa9b
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-highlighted-focused@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..290da64f
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-highlighted-focused@4x.9.png
Binary files differ
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
new file mode 100644
index 00000000..8767034d
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-highlighted-hovered.9.png
Binary files differ
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
new file mode 100644
index 00000000..7b4fb07b
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-highlighted-hovered@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..f932aa9b
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-highlighted-hovered@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..290da64f
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-highlighted-hovered@4x.9.png
Binary files differ
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
new file mode 100644
index 00000000..99dec0e9
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-highlighted-pressed.9.png
Binary files differ
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
new file mode 100644
index 00000000..23202bf1
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-highlighted-pressed@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..57bfcef6
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-highlighted-pressed@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..81ad9cd2
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-highlighted-pressed@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/button-background-highlighted.9.png b/src/imports/controls/imagine/images/button-background-highlighted.9.png
new file mode 100644
index 00000000..66e8cf19
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-highlighted.9.png
Binary files differ
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
new file mode 100644
index 00000000..e4c68712
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-highlighted@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..a97f6330
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-highlighted@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..6a8f386c
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-highlighted@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/button-background-hovered.9.png b/src/imports/controls/imagine/images/button-background-hovered.9.png
new file mode 100644
index 00000000..64278299
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-hovered.9.png
Binary files differ
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
new file mode 100644
index 00000000..0213bba2
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-hovered@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..e4189bf5
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-hovered@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..7ffc9c80
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-hovered@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/button-background-pressed.9.png b/src/imports/controls/imagine/images/button-background-pressed.9.png
new file mode 100644
index 00000000..8127c8e1
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-pressed.9.png
Binary files differ
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
new file mode 100644
index 00000000..b11c9e30
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-pressed@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..31cb846b
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-pressed@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..558d80a2
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background-pressed@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/button-background.9.png b/src/imports/controls/imagine/images/button-background.9.png
new file mode 100644
index 00000000..43215ebd
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/button-background@2x.9.png b/src/imports/controls/imagine/images/button-background@2x.9.png
new file mode 100644
index 00000000..6526a1a0
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background@2x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/button-background@3x.9.png b/src/imports/controls/imagine/images/button-background@3x.9.png
new file mode 100644
index 00000000..c30044cb
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background@3x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/button-background@4x.9.png b/src/imports/controls/imagine/images/button-background@4x.9.png
new file mode 100644
index 00000000..e35896fa
--- /dev/null
+++ b/src/imports/controls/imagine/images/button-background@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/checkbox-indicator-checked-focused.png b/src/imports/controls/imagine/images/checkbox-indicator-checked-focused.png
new file mode 100644
index 00000000..d84b6424
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkbox-indicator-checked-focused.png
Binary files differ
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
new file mode 100644
index 00000000..d9974cd3
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkbox-indicator-checked-focused@2x.png
Binary files differ
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
new file mode 100644
index 00000000..55f2a641
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkbox-indicator-checked-focused@3x.png
Binary files differ
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
new file mode 100644
index 00000000..f0da6e95
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkbox-indicator-checked-focused@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/checkbox-indicator-checked-hovered.png b/src/imports/controls/imagine/images/checkbox-indicator-checked-hovered.png
new file mode 100644
index 00000000..d84b6424
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkbox-indicator-checked-hovered.png
Binary files differ
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
new file mode 100644
index 00000000..d9974cd3
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkbox-indicator-checked-hovered@2x.png
Binary files differ
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
new file mode 100644
index 00000000..55f2a641
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkbox-indicator-checked-hovered@3x.png
Binary files differ
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
new file mode 100644
index 00000000..f0da6e95
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkbox-indicator-checked-hovered@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/checkbox-indicator-checked-pressed.png b/src/imports/controls/imagine/images/checkbox-indicator-checked-pressed.png
new file mode 100644
index 00000000..5ed3cca2
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkbox-indicator-checked-pressed.png
Binary files differ
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
new file mode 100644
index 00000000..4a88a2fa
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkbox-indicator-checked-pressed@2x.png
Binary files differ
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
new file mode 100644
index 00000000..244744e5
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkbox-indicator-checked-pressed@3x.png
Binary files differ
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
new file mode 100644
index 00000000..e782944b
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkbox-indicator-checked-pressed@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/checkbox-indicator-checked.png b/src/imports/controls/imagine/images/checkbox-indicator-checked.png
new file mode 100644
index 00000000..d44ffceb
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkbox-indicator-checked.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/checkbox-indicator-checked@2x.png b/src/imports/controls/imagine/images/checkbox-indicator-checked@2x.png
new file mode 100644
index 00000000..f25091e5
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkbox-indicator-checked@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/checkbox-indicator-checked@3x.png b/src/imports/controls/imagine/images/checkbox-indicator-checked@3x.png
new file mode 100644
index 00000000..74b00801
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkbox-indicator-checked@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/checkbox-indicator-checked@4x.png b/src/imports/controls/imagine/images/checkbox-indicator-checked@4x.png
new file mode 100644
index 00000000..1b6b021c
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkbox-indicator-checked@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/checkbox-indicator-disabled.png b/src/imports/controls/imagine/images/checkbox-indicator-disabled.png
new file mode 100644
index 00000000..2d47edd5
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkbox-indicator-disabled.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/checkbox-indicator-disabled@2x.png b/src/imports/controls/imagine/images/checkbox-indicator-disabled@2x.png
new file mode 100644
index 00000000..590848e6
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkbox-indicator-disabled@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/checkbox-indicator-disabled@3x.png b/src/imports/controls/imagine/images/checkbox-indicator-disabled@3x.png
new file mode 100644
index 00000000..7dcc9dd8
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkbox-indicator-disabled@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/checkbox-indicator-disabled@4x.png b/src/imports/controls/imagine/images/checkbox-indicator-disabled@4x.png
new file mode 100644
index 00000000..c996429a
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkbox-indicator-disabled@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/checkbox-indicator-focused.png b/src/imports/controls/imagine/images/checkbox-indicator-focused.png
new file mode 100644
index 00000000..0faa5917
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkbox-indicator-focused.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/checkbox-indicator-focused@2x.png b/src/imports/controls/imagine/images/checkbox-indicator-focused@2x.png
new file mode 100644
index 00000000..25f20bb1
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkbox-indicator-focused@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/checkbox-indicator-focused@3x.png b/src/imports/controls/imagine/images/checkbox-indicator-focused@3x.png
new file mode 100644
index 00000000..32de5064
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkbox-indicator-focused@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/checkbox-indicator-focused@4x.png b/src/imports/controls/imagine/images/checkbox-indicator-focused@4x.png
new file mode 100644
index 00000000..73912ac8
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkbox-indicator-focused@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/checkbox-indicator-hovered.png b/src/imports/controls/imagine/images/checkbox-indicator-hovered.png
new file mode 100644
index 00000000..0faa5917
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkbox-indicator-hovered.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/checkbox-indicator-hovered@2x.png b/src/imports/controls/imagine/images/checkbox-indicator-hovered@2x.png
new file mode 100644
index 00000000..25f20bb1
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkbox-indicator-hovered@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/checkbox-indicator-hovered@3x.png b/src/imports/controls/imagine/images/checkbox-indicator-hovered@3x.png
new file mode 100644
index 00000000..32de5064
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkbox-indicator-hovered@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/checkbox-indicator-hovered@4x.png b/src/imports/controls/imagine/images/checkbox-indicator-hovered@4x.png
new file mode 100644
index 00000000..73912ac8
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkbox-indicator-hovered@4x.png
Binary files differ
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
new file mode 100644
index 00000000..b7f4a585
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkbox-indicator-partially-checked-focused.png
Binary files differ
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
new file mode 100644
index 00000000..0dccb3bc
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkbox-indicator-partially-checked-focused@2x.png
Binary files differ
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
new file mode 100644
index 00000000..80acb448
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkbox-indicator-partially-checked-focused@3x.png
Binary files differ
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
new file mode 100644
index 00000000..cfa50540
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkbox-indicator-partially-checked-focused@4x.png
Binary files differ
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
new file mode 100644
index 00000000..b7f4a585
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkbox-indicator-partially-checked-hovered.png
Binary files differ
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
new file mode 100644
index 00000000..0dccb3bc
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkbox-indicator-partially-checked-hovered@2x.png
Binary files differ
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
new file mode 100644
index 00000000..80acb448
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkbox-indicator-partially-checked-hovered@3x.png
Binary files differ
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
new file mode 100644
index 00000000..cfa50540
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkbox-indicator-partially-checked-hovered@4x.png
Binary files differ
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
new file mode 100644
index 00000000..a9c9abe9
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkbox-indicator-partially-checked-pressed.png
Binary files differ
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
new file mode 100644
index 00000000..778ad295
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkbox-indicator-partially-checked-pressed@2x.png
Binary files differ
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
new file mode 100644
index 00000000..ec8f5a22
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkbox-indicator-partially-checked-pressed@3x.png
Binary files differ
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
new file mode 100644
index 00000000..f5382745
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkbox-indicator-partially-checked-pressed@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/checkbox-indicator-partially-checked.png b/src/imports/controls/imagine/images/checkbox-indicator-partially-checked.png
new file mode 100644
index 00000000..a507d5cc
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkbox-indicator-partially-checked.png
Binary files differ
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
new file mode 100644
index 00000000..e3995307
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkbox-indicator-partially-checked@2x.png
Binary files differ
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
new file mode 100644
index 00000000..8fdcd8c5
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkbox-indicator-partially-checked@3x.png
Binary files differ
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
new file mode 100644
index 00000000..a1baf6d8
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkbox-indicator-partially-checked@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/checkbox-indicator-pressed.png b/src/imports/controls/imagine/images/checkbox-indicator-pressed.png
new file mode 100644
index 00000000..aebea490
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkbox-indicator-pressed.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/checkbox-indicator-pressed@2x.png b/src/imports/controls/imagine/images/checkbox-indicator-pressed@2x.png
new file mode 100644
index 00000000..5b4ac2bb
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkbox-indicator-pressed@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/checkbox-indicator-pressed@3x.png b/src/imports/controls/imagine/images/checkbox-indicator-pressed@3x.png
new file mode 100644
index 00000000..76948af7
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkbox-indicator-pressed@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/checkbox-indicator-pressed@4x.png b/src/imports/controls/imagine/images/checkbox-indicator-pressed@4x.png
new file mode 100644
index 00000000..9ff1655d
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkbox-indicator-pressed@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/checkbox-indicator.png b/src/imports/controls/imagine/images/checkbox-indicator.png
new file mode 100644
index 00000000..0e63e749
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkbox-indicator.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/checkbox-indicator@2x.png b/src/imports/controls/imagine/images/checkbox-indicator@2x.png
new file mode 100644
index 00000000..0a15f8ef
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkbox-indicator@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/checkbox-indicator@3x.png b/src/imports/controls/imagine/images/checkbox-indicator@3x.png
new file mode 100644
index 00000000..76650657
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkbox-indicator@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/checkbox-indicator@4x.png b/src/imports/controls/imagine/images/checkbox-indicator@4x.png
new file mode 100644
index 00000000..fa1e8ac8
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkbox-indicator@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/checkdelegate-background-checked.9.png b/src/imports/controls/imagine/images/checkdelegate-background-checked.9.png
new file mode 100644
index 00000000..cef1bafa
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkdelegate-background-checked.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/checkdelegate-background-checked@2x.9.png b/src/imports/controls/imagine/images/checkdelegate-background-checked@2x.9.png
new file mode 100644
index 00000000..5a136a0c
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkdelegate-background-checked@2x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/checkdelegate-background-checked@3x.9.png b/src/imports/controls/imagine/images/checkdelegate-background-checked@3x.9.png
new file mode 100644
index 00000000..f47a366b
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkdelegate-background-checked@3x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/checkdelegate-background-checked@4x.9.png b/src/imports/controls/imagine/images/checkdelegate-background-checked@4x.9.png
new file mode 100644
index 00000000..9ecb680f
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkdelegate-background-checked@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/checkdelegate-background-disabled.9.png b/src/imports/controls/imagine/images/checkdelegate-background-disabled.9.png
new file mode 100644
index 00000000..ce48ee74
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkdelegate-background-disabled.9.png
Binary files differ
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
new file mode 100644
index 00000000..c7abb65c
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkdelegate-background-disabled@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..46b84d7d
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkdelegate-background-disabled@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..f4dfd338
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkdelegate-background-disabled@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/checkdelegate-background-focused.9.png b/src/imports/controls/imagine/images/checkdelegate-background-focused.9.png
new file mode 100644
index 00000000..39fa8664
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkdelegate-background-focused.9.png
Binary files differ
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
new file mode 100644
index 00000000..6b61562c
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkdelegate-background-focused@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..e46c0bf1
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkdelegate-background-focused@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..010444e8
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkdelegate-background-focused@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/checkdelegate-background-hovered.9.png b/src/imports/controls/imagine/images/checkdelegate-background-hovered.9.png
new file mode 100644
index 00000000..cef1bafa
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkdelegate-background-hovered.9.png
Binary files differ
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
new file mode 100644
index 00000000..5a136a0c
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkdelegate-background-hovered@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..f47a366b
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkdelegate-background-hovered@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..9ecb680f
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkdelegate-background-hovered@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/checkdelegate-background-pressed.9.png b/src/imports/controls/imagine/images/checkdelegate-background-pressed.9.png
new file mode 100644
index 00000000..39fa8664
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkdelegate-background-pressed.9.png
Binary files differ
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
new file mode 100644
index 00000000..6b61562c
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkdelegate-background-pressed@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..e46c0bf1
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkdelegate-background-pressed@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..010444e8
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkdelegate-background-pressed@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/checkdelegate-background.9.png b/src/imports/controls/imagine/images/checkdelegate-background.9.png
new file mode 100644
index 00000000..cef1bafa
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkdelegate-background.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/checkdelegate-background@2x.9.png b/src/imports/controls/imagine/images/checkdelegate-background@2x.9.png
new file mode 100644
index 00000000..5a136a0c
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkdelegate-background@2x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/checkdelegate-background@3x.9.png b/src/imports/controls/imagine/images/checkdelegate-background@3x.9.png
new file mode 100644
index 00000000..f47a366b
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkdelegate-background@3x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/checkdelegate-background@4x.9.png b/src/imports/controls/imagine/images/checkdelegate-background@4x.9.png
new file mode 100644
index 00000000..9ecb680f
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkdelegate-background@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/checkdelegate-indicator-checked-focused.png b/src/imports/controls/imagine/images/checkdelegate-indicator-checked-focused.png
new file mode 100644
index 00000000..d84b6424
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkdelegate-indicator-checked-focused.png
Binary files differ
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
new file mode 100644
index 00000000..d9974cd3
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkdelegate-indicator-checked-focused@2x.png
Binary files differ
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
new file mode 100644
index 00000000..55f2a641
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkdelegate-indicator-checked-focused@3x.png
Binary files differ
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
new file mode 100644
index 00000000..f0da6e95
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkdelegate-indicator-checked-focused@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/checkdelegate-indicator-checked-hovered.png b/src/imports/controls/imagine/images/checkdelegate-indicator-checked-hovered.png
new file mode 100644
index 00000000..d84b6424
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkdelegate-indicator-checked-hovered.png
Binary files differ
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
new file mode 100644
index 00000000..d9974cd3
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkdelegate-indicator-checked-hovered@2x.png
Binary files differ
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
new file mode 100644
index 00000000..55f2a641
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkdelegate-indicator-checked-hovered@3x.png
Binary files differ
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
new file mode 100644
index 00000000..f0da6e95
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkdelegate-indicator-checked-hovered@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/checkdelegate-indicator-checked-pressed.png b/src/imports/controls/imagine/images/checkdelegate-indicator-checked-pressed.png
new file mode 100644
index 00000000..5ed3cca2
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkdelegate-indicator-checked-pressed.png
Binary files differ
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
new file mode 100644
index 00000000..4a88a2fa
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkdelegate-indicator-checked-pressed@2x.png
Binary files differ
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
new file mode 100644
index 00000000..244744e5
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkdelegate-indicator-checked-pressed@3x.png
Binary files differ
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
new file mode 100644
index 00000000..e782944b
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkdelegate-indicator-checked-pressed@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/checkdelegate-indicator-checked.png b/src/imports/controls/imagine/images/checkdelegate-indicator-checked.png
new file mode 100644
index 00000000..d44ffceb
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkdelegate-indicator-checked.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/checkdelegate-indicator-checked@2x.png b/src/imports/controls/imagine/images/checkdelegate-indicator-checked@2x.png
new file mode 100644
index 00000000..f25091e5
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkdelegate-indicator-checked@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/checkdelegate-indicator-checked@3x.png b/src/imports/controls/imagine/images/checkdelegate-indicator-checked@3x.png
new file mode 100644
index 00000000..74b00801
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkdelegate-indicator-checked@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/checkdelegate-indicator-checked@4x.png b/src/imports/controls/imagine/images/checkdelegate-indicator-checked@4x.png
new file mode 100644
index 00000000..1b6b021c
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkdelegate-indicator-checked@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/checkdelegate-indicator-disabled.png b/src/imports/controls/imagine/images/checkdelegate-indicator-disabled.png
new file mode 100644
index 00000000..2d47edd5
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkdelegate-indicator-disabled.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/checkdelegate-indicator-disabled@2x.png b/src/imports/controls/imagine/images/checkdelegate-indicator-disabled@2x.png
new file mode 100644
index 00000000..590848e6
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkdelegate-indicator-disabled@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/checkdelegate-indicator-disabled@3x.png b/src/imports/controls/imagine/images/checkdelegate-indicator-disabled@3x.png
new file mode 100644
index 00000000..7dcc9dd8
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkdelegate-indicator-disabled@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/checkdelegate-indicator-disabled@4x.png b/src/imports/controls/imagine/images/checkdelegate-indicator-disabled@4x.png
new file mode 100644
index 00000000..c996429a
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkdelegate-indicator-disabled@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/checkdelegate-indicator-focused.png b/src/imports/controls/imagine/images/checkdelegate-indicator-focused.png
new file mode 100644
index 00000000..0faa5917
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkdelegate-indicator-focused.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/checkdelegate-indicator-focused@2x.png b/src/imports/controls/imagine/images/checkdelegate-indicator-focused@2x.png
new file mode 100644
index 00000000..25f20bb1
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkdelegate-indicator-focused@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/checkdelegate-indicator-focused@3x.png b/src/imports/controls/imagine/images/checkdelegate-indicator-focused@3x.png
new file mode 100644
index 00000000..32de5064
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkdelegate-indicator-focused@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/checkdelegate-indicator-focused@4x.png b/src/imports/controls/imagine/images/checkdelegate-indicator-focused@4x.png
new file mode 100644
index 00000000..73912ac8
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkdelegate-indicator-focused@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/checkdelegate-indicator-hovered.png b/src/imports/controls/imagine/images/checkdelegate-indicator-hovered.png
new file mode 100644
index 00000000..0faa5917
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkdelegate-indicator-hovered.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/checkdelegate-indicator-hovered@2x.png b/src/imports/controls/imagine/images/checkdelegate-indicator-hovered@2x.png
new file mode 100644
index 00000000..25f20bb1
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkdelegate-indicator-hovered@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/checkdelegate-indicator-hovered@3x.png b/src/imports/controls/imagine/images/checkdelegate-indicator-hovered@3x.png
new file mode 100644
index 00000000..32de5064
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkdelegate-indicator-hovered@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/checkdelegate-indicator-hovered@4x.png b/src/imports/controls/imagine/images/checkdelegate-indicator-hovered@4x.png
new file mode 100644
index 00000000..73912ac8
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkdelegate-indicator-hovered@4x.png
Binary files differ
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
new file mode 100644
index 00000000..b7f4a585
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkdelegate-indicator-partially-checked-focused.png
Binary files differ
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
new file mode 100644
index 00000000..0dccb3bc
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkdelegate-indicator-partially-checked-focused@2x.png
Binary files differ
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
new file mode 100644
index 00000000..80acb448
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkdelegate-indicator-partially-checked-focused@3x.png
Binary files differ
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
new file mode 100644
index 00000000..cfa50540
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkdelegate-indicator-partially-checked-focused@4x.png
Binary files differ
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
new file mode 100644
index 00000000..b7f4a585
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkdelegate-indicator-partially-checked-hovered.png
Binary files differ
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
new file mode 100644
index 00000000..0dccb3bc
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkdelegate-indicator-partially-checked-hovered@2x.png
Binary files differ
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
new file mode 100644
index 00000000..80acb448
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkdelegate-indicator-partially-checked-hovered@3x.png
Binary files differ
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
new file mode 100644
index 00000000..cfa50540
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkdelegate-indicator-partially-checked-hovered@4x.png
Binary files differ
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
new file mode 100644
index 00000000..a9c9abe9
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkdelegate-indicator-partially-checked-pressed.png
Binary files differ
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
new file mode 100644
index 00000000..778ad295
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkdelegate-indicator-partially-checked-pressed@2x.png
Binary files differ
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
new file mode 100644
index 00000000..ec8f5a22
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkdelegate-indicator-partially-checked-pressed@3x.png
Binary files differ
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
new file mode 100644
index 00000000..f5382745
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkdelegate-indicator-partially-checked-pressed@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/checkdelegate-indicator-partially-checked.png b/src/imports/controls/imagine/images/checkdelegate-indicator-partially-checked.png
new file mode 100644
index 00000000..a507d5cc
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkdelegate-indicator-partially-checked.png
Binary files differ
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
new file mode 100644
index 00000000..e3995307
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkdelegate-indicator-partially-checked@2x.png
Binary files differ
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
new file mode 100644
index 00000000..8fdcd8c5
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkdelegate-indicator-partially-checked@3x.png
Binary files differ
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
new file mode 100644
index 00000000..a1baf6d8
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkdelegate-indicator-partially-checked@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/checkdelegate-indicator-pressed.png b/src/imports/controls/imagine/images/checkdelegate-indicator-pressed.png
new file mode 100644
index 00000000..aebea490
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkdelegate-indicator-pressed.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/checkdelegate-indicator-pressed@2x.png b/src/imports/controls/imagine/images/checkdelegate-indicator-pressed@2x.png
new file mode 100644
index 00000000..5b4ac2bb
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkdelegate-indicator-pressed@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/checkdelegate-indicator-pressed@3x.png b/src/imports/controls/imagine/images/checkdelegate-indicator-pressed@3x.png
new file mode 100644
index 00000000..76948af7
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkdelegate-indicator-pressed@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/checkdelegate-indicator-pressed@4x.png b/src/imports/controls/imagine/images/checkdelegate-indicator-pressed@4x.png
new file mode 100644
index 00000000..9ff1655d
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkdelegate-indicator-pressed@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/checkdelegate-indicator.png b/src/imports/controls/imagine/images/checkdelegate-indicator.png
new file mode 100644
index 00000000..0e63e749
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkdelegate-indicator.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/checkdelegate-indicator@2x.png b/src/imports/controls/imagine/images/checkdelegate-indicator@2x.png
new file mode 100644
index 00000000..0a15f8ef
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkdelegate-indicator@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/checkdelegate-indicator@3x.png b/src/imports/controls/imagine/images/checkdelegate-indicator@3x.png
new file mode 100644
index 00000000..76650657
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkdelegate-indicator@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/checkdelegate-indicator@4x.png b/src/imports/controls/imagine/images/checkdelegate-indicator@4x.png
new file mode 100644
index 00000000..fa1e8ac8
--- /dev/null
+++ b/src/imports/controls/imagine/images/checkdelegate-indicator@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/combobox-background-disabled.9.png b/src/imports/controls/imagine/images/combobox-background-disabled.9.png
new file mode 100644
index 00000000..153ab9c0
--- /dev/null
+++ b/src/imports/controls/imagine/images/combobox-background-disabled.9.png
Binary files differ
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
new file mode 100644
index 00000000..0b29947f
--- /dev/null
+++ b/src/imports/controls/imagine/images/combobox-background-disabled@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..16aac1cb
--- /dev/null
+++ b/src/imports/controls/imagine/images/combobox-background-disabled@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..0047174d
--- /dev/null
+++ b/src/imports/controls/imagine/images/combobox-background-disabled@4x.9.png
Binary files differ
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
new file mode 100644
index 00000000..190d9d32
--- /dev/null
+++ b/src/imports/controls/imagine/images/combobox-background-editable-disabled.9.png
Binary files differ
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
new file mode 100644
index 00000000..6dbb6b1d
--- /dev/null
+++ b/src/imports/controls/imagine/images/combobox-background-editable-disabled@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..c4f03970
--- /dev/null
+++ b/src/imports/controls/imagine/images/combobox-background-editable-disabled@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..df732fc8
--- /dev/null
+++ b/src/imports/controls/imagine/images/combobox-background-editable-disabled@4x.9.png
Binary files differ
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
new file mode 100644
index 00000000..55da8aa7
--- /dev/null
+++ b/src/imports/controls/imagine/images/combobox-background-editable-focused.9.png
Binary files differ
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
new file mode 100644
index 00000000..f2220ecb
--- /dev/null
+++ b/src/imports/controls/imagine/images/combobox-background-editable-focused@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..55ddac00
--- /dev/null
+++ b/src/imports/controls/imagine/images/combobox-background-editable-focused@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..98867862
--- /dev/null
+++ b/src/imports/controls/imagine/images/combobox-background-editable-focused@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/combobox-background-editable.9.png b/src/imports/controls/imagine/images/combobox-background-editable.9.png
new file mode 100644
index 00000000..ccf07a23
--- /dev/null
+++ b/src/imports/controls/imagine/images/combobox-background-editable.9.png
Binary files differ
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
new file mode 100644
index 00000000..ab27211e
--- /dev/null
+++ b/src/imports/controls/imagine/images/combobox-background-editable@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..1b41eb6c
--- /dev/null
+++ b/src/imports/controls/imagine/images/combobox-background-editable@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..4e6bf163
--- /dev/null
+++ b/src/imports/controls/imagine/images/combobox-background-editable@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/combobox-background-focused.9.png b/src/imports/controls/imagine/images/combobox-background-focused.9.png
new file mode 100644
index 00000000..1eb48fab
--- /dev/null
+++ b/src/imports/controls/imagine/images/combobox-background-focused.9.png
Binary files differ
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
new file mode 100644
index 00000000..b14677f9
--- /dev/null
+++ b/src/imports/controls/imagine/images/combobox-background-focused@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..c86acfd6
--- /dev/null
+++ b/src/imports/controls/imagine/images/combobox-background-focused@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..eaea1dc4
--- /dev/null
+++ b/src/imports/controls/imagine/images/combobox-background-focused@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/combobox-background-hovered.9.png b/src/imports/controls/imagine/images/combobox-background-hovered.9.png
new file mode 100644
index 00000000..1eb48fab
--- /dev/null
+++ b/src/imports/controls/imagine/images/combobox-background-hovered.9.png
Binary files differ
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
new file mode 100644
index 00000000..b14677f9
--- /dev/null
+++ b/src/imports/controls/imagine/images/combobox-background-hovered@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..c86acfd6
--- /dev/null
+++ b/src/imports/controls/imagine/images/combobox-background-hovered@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..eaea1dc4
--- /dev/null
+++ b/src/imports/controls/imagine/images/combobox-background-hovered@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/combobox-background-open.9.png b/src/imports/controls/imagine/images/combobox-background-open.9.png
new file mode 100644
index 00000000..e4d1d23a
--- /dev/null
+++ b/src/imports/controls/imagine/images/combobox-background-open.9.png
Binary files differ
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
new file mode 100644
index 00000000..a8fbfddb
--- /dev/null
+++ b/src/imports/controls/imagine/images/combobox-background-open@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..95b0a5bc
--- /dev/null
+++ b/src/imports/controls/imagine/images/combobox-background-open@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..f78367b8
--- /dev/null
+++ b/src/imports/controls/imagine/images/combobox-background-open@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/combobox-background-pressed.9.png b/src/imports/controls/imagine/images/combobox-background-pressed.9.png
new file mode 100644
index 00000000..e4d1d23a
--- /dev/null
+++ b/src/imports/controls/imagine/images/combobox-background-pressed.9.png
Binary files differ
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
new file mode 100644
index 00000000..a8fbfddb
--- /dev/null
+++ b/src/imports/controls/imagine/images/combobox-background-pressed@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..95b0a5bc
--- /dev/null
+++ b/src/imports/controls/imagine/images/combobox-background-pressed@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..f78367b8
--- /dev/null
+++ b/src/imports/controls/imagine/images/combobox-background-pressed@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/combobox-background.9.png b/src/imports/controls/imagine/images/combobox-background.9.png
new file mode 100644
index 00000000..4531fc9f
--- /dev/null
+++ b/src/imports/controls/imagine/images/combobox-background.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/combobox-background@2x.9.png b/src/imports/controls/imagine/images/combobox-background@2x.9.png
new file mode 100644
index 00000000..2487f954
--- /dev/null
+++ b/src/imports/controls/imagine/images/combobox-background@2x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/combobox-background@3x.9.png b/src/imports/controls/imagine/images/combobox-background@3x.9.png
new file mode 100644
index 00000000..2830c414
--- /dev/null
+++ b/src/imports/controls/imagine/images/combobox-background@3x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/combobox-background@4x.9.png b/src/imports/controls/imagine/images/combobox-background@4x.9.png
new file mode 100644
index 00000000..eef233f2
--- /dev/null
+++ b/src/imports/controls/imagine/images/combobox-background@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/combobox-indicator-disabled.png b/src/imports/controls/imagine/images/combobox-indicator-disabled.png
new file mode 100644
index 00000000..4a6a4b2c
--- /dev/null
+++ b/src/imports/controls/imagine/images/combobox-indicator-disabled.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/combobox-indicator-disabled@2x.png b/src/imports/controls/imagine/images/combobox-indicator-disabled@2x.png
new file mode 100644
index 00000000..5f1fdadd
--- /dev/null
+++ b/src/imports/controls/imagine/images/combobox-indicator-disabled@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/combobox-indicator-disabled@3x.png b/src/imports/controls/imagine/images/combobox-indicator-disabled@3x.png
new file mode 100644
index 00000000..841fa7bf
--- /dev/null
+++ b/src/imports/controls/imagine/images/combobox-indicator-disabled@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/combobox-indicator-disabled@4x.png b/src/imports/controls/imagine/images/combobox-indicator-disabled@4x.png
new file mode 100644
index 00000000..a0a16277
--- /dev/null
+++ b/src/imports/controls/imagine/images/combobox-indicator-disabled@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/combobox-indicator-editable-disabled.png b/src/imports/controls/imagine/images/combobox-indicator-editable-disabled.png
new file mode 100644
index 00000000..cee1fecd
--- /dev/null
+++ b/src/imports/controls/imagine/images/combobox-indicator-editable-disabled.png
Binary files differ
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
new file mode 100644
index 00000000..2ed968ab
--- /dev/null
+++ b/src/imports/controls/imagine/images/combobox-indicator-editable-disabled@2x.png
Binary files differ
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
new file mode 100644
index 00000000..0af07c5e
--- /dev/null
+++ b/src/imports/controls/imagine/images/combobox-indicator-editable-disabled@3x.png
Binary files differ
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
new file mode 100644
index 00000000..7b9784fc
--- /dev/null
+++ b/src/imports/controls/imagine/images/combobox-indicator-editable-disabled@4x.png
Binary files differ
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
new file mode 100644
index 00000000..5f9eea3e
--- /dev/null
+++ b/src/imports/controls/imagine/images/combobox-indicator-editable-mirrored-disabled.png
Binary files differ
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
new file mode 100644
index 00000000..0d2b2643
--- /dev/null
+++ b/src/imports/controls/imagine/images/combobox-indicator-editable-mirrored-disabled@2x.png
Binary files differ
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
new file mode 100644
index 00000000..71b8f63e
--- /dev/null
+++ b/src/imports/controls/imagine/images/combobox-indicator-editable-mirrored-disabled@3x.png
Binary files differ
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
new file mode 100644
index 00000000..7996a196
--- /dev/null
+++ b/src/imports/controls/imagine/images/combobox-indicator-editable-mirrored-disabled@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/combobox-indicator-editable-mirrored.png b/src/imports/controls/imagine/images/combobox-indicator-editable-mirrored.png
new file mode 100644
index 00000000..931fd8b1
--- /dev/null
+++ b/src/imports/controls/imagine/images/combobox-indicator-editable-mirrored.png
Binary files differ
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
new file mode 100644
index 00000000..bc6d3f66
--- /dev/null
+++ b/src/imports/controls/imagine/images/combobox-indicator-editable-mirrored@2x.png
Binary files differ
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
new file mode 100644
index 00000000..41126aef
--- /dev/null
+++ b/src/imports/controls/imagine/images/combobox-indicator-editable-mirrored@3x.png
Binary files differ
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
new file mode 100644
index 00000000..de34478e
--- /dev/null
+++ b/src/imports/controls/imagine/images/combobox-indicator-editable-mirrored@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/combobox-indicator-editable.png b/src/imports/controls/imagine/images/combobox-indicator-editable.png
new file mode 100644
index 00000000..9044989c
--- /dev/null
+++ b/src/imports/controls/imagine/images/combobox-indicator-editable.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/combobox-indicator-editable@2x.png b/src/imports/controls/imagine/images/combobox-indicator-editable@2x.png
new file mode 100644
index 00000000..4f3a7cb5
--- /dev/null
+++ b/src/imports/controls/imagine/images/combobox-indicator-editable@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/combobox-indicator-editable@3x.png b/src/imports/controls/imagine/images/combobox-indicator-editable@3x.png
new file mode 100644
index 00000000..aceb17e1
--- /dev/null
+++ b/src/imports/controls/imagine/images/combobox-indicator-editable@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/combobox-indicator-editable@4x.png b/src/imports/controls/imagine/images/combobox-indicator-editable@4x.png
new file mode 100644
index 00000000..6bb7693d
--- /dev/null
+++ b/src/imports/controls/imagine/images/combobox-indicator-editable@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/combobox-indicator.png b/src/imports/controls/imagine/images/combobox-indicator.png
new file mode 100644
index 00000000..f5cc0858
--- /dev/null
+++ b/src/imports/controls/imagine/images/combobox-indicator.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/combobox-indicator@2x.png b/src/imports/controls/imagine/images/combobox-indicator@2x.png
new file mode 100644
index 00000000..f765281e
--- /dev/null
+++ b/src/imports/controls/imagine/images/combobox-indicator@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/combobox-indicator@3x.png b/src/imports/controls/imagine/images/combobox-indicator@3x.png
new file mode 100644
index 00000000..21731ead
--- /dev/null
+++ b/src/imports/controls/imagine/images/combobox-indicator@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/combobox-indicator@4x.png b/src/imports/controls/imagine/images/combobox-indicator@4x.png
new file mode 100644
index 00000000..2c2cfeaa
--- /dev/null
+++ b/src/imports/controls/imagine/images/combobox-indicator@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/combobox-popup.9.png b/src/imports/controls/imagine/images/combobox-popup.9.png
new file mode 100644
index 00000000..26e60fb0
--- /dev/null
+++ b/src/imports/controls/imagine/images/combobox-popup.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/combobox-popup@2x.9.png b/src/imports/controls/imagine/images/combobox-popup@2x.9.png
new file mode 100644
index 00000000..f2f3c868
--- /dev/null
+++ b/src/imports/controls/imagine/images/combobox-popup@2x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/combobox-popup@3x.9.png b/src/imports/controls/imagine/images/combobox-popup@3x.9.png
new file mode 100644
index 00000000..f6227cd9
--- /dev/null
+++ b/src/imports/controls/imagine/images/combobox-popup@3x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/combobox-popup@4x.9.png b/src/imports/controls/imagine/images/combobox-popup@4x.9.png
new file mode 100644
index 00000000..3791257b
--- /dev/null
+++ b/src/imports/controls/imagine/images/combobox-popup@4x.9.png
Binary files differ
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
new file mode 100644
index 00000000..aff98b73
--- /dev/null
+++ b/src/imports/controls/imagine/images/delaybutton-background-checked-focused.9.png
Binary files differ
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
new file mode 100644
index 00000000..ab0d89ec
--- /dev/null
+++ b/src/imports/controls/imagine/images/delaybutton-background-checked-focused@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..299510e2
--- /dev/null
+++ b/src/imports/controls/imagine/images/delaybutton-background-checked-focused@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..c5031415
--- /dev/null
+++ b/src/imports/controls/imagine/images/delaybutton-background-checked-focused@4x.9.png
Binary files differ
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
new file mode 100644
index 00000000..aff98b73
--- /dev/null
+++ b/src/imports/controls/imagine/images/delaybutton-background-checked-hovered.9.png
Binary files differ
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
new file mode 100644
index 00000000..ab0d89ec
--- /dev/null
+++ b/src/imports/controls/imagine/images/delaybutton-background-checked-hovered@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..299510e2
--- /dev/null
+++ b/src/imports/controls/imagine/images/delaybutton-background-checked-hovered@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..c5031415
--- /dev/null
+++ b/src/imports/controls/imagine/images/delaybutton-background-checked-hovered@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/delaybutton-background-checked.9.png b/src/imports/controls/imagine/images/delaybutton-background-checked.9.png
new file mode 100644
index 00000000..8127c8e1
--- /dev/null
+++ b/src/imports/controls/imagine/images/delaybutton-background-checked.9.png
Binary files differ
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
new file mode 100644
index 00000000..b11c9e30
--- /dev/null
+++ b/src/imports/controls/imagine/images/delaybutton-background-checked@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..31cb846b
--- /dev/null
+++ b/src/imports/controls/imagine/images/delaybutton-background-checked@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..558d80a2
--- /dev/null
+++ b/src/imports/controls/imagine/images/delaybutton-background-checked@4x.9.png
Binary files differ
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
new file mode 100644
index 00000000..3cc20a45
--- /dev/null
+++ b/src/imports/controls/imagine/images/delaybutton-background-disabled-checked.9.png
Binary files differ
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
new file mode 100644
index 00000000..459634ed
--- /dev/null
+++ b/src/imports/controls/imagine/images/delaybutton-background-disabled-checked@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..ed44c623
--- /dev/null
+++ b/src/imports/controls/imagine/images/delaybutton-background-disabled-checked@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..7795c5cf
--- /dev/null
+++ b/src/imports/controls/imagine/images/delaybutton-background-disabled-checked@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/delaybutton-background-disabled.9.png b/src/imports/controls/imagine/images/delaybutton-background-disabled.9.png
new file mode 100644
index 00000000..3cc20a45
--- /dev/null
+++ b/src/imports/controls/imagine/images/delaybutton-background-disabled.9.png
Binary files differ
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
new file mode 100644
index 00000000..459634ed
--- /dev/null
+++ b/src/imports/controls/imagine/images/delaybutton-background-disabled@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..ed44c623
--- /dev/null
+++ b/src/imports/controls/imagine/images/delaybutton-background-disabled@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..7795c5cf
--- /dev/null
+++ b/src/imports/controls/imagine/images/delaybutton-background-disabled@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/delaybutton-background-focused.9.png b/src/imports/controls/imagine/images/delaybutton-background-focused.9.png
new file mode 100644
index 00000000..64278299
--- /dev/null
+++ b/src/imports/controls/imagine/images/delaybutton-background-focused.9.png
Binary files differ
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
new file mode 100644
index 00000000..0213bba2
--- /dev/null
+++ b/src/imports/controls/imagine/images/delaybutton-background-focused@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..e4189bf5
--- /dev/null
+++ b/src/imports/controls/imagine/images/delaybutton-background-focused@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..7ffc9c80
--- /dev/null
+++ b/src/imports/controls/imagine/images/delaybutton-background-focused@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/delaybutton-background-hovered.9.png b/src/imports/controls/imagine/images/delaybutton-background-hovered.9.png
new file mode 100644
index 00000000..64278299
--- /dev/null
+++ b/src/imports/controls/imagine/images/delaybutton-background-hovered.9.png
Binary files differ
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
new file mode 100644
index 00000000..0213bba2
--- /dev/null
+++ b/src/imports/controls/imagine/images/delaybutton-background-hovered@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..e4189bf5
--- /dev/null
+++ b/src/imports/controls/imagine/images/delaybutton-background-hovered@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..7ffc9c80
--- /dev/null
+++ b/src/imports/controls/imagine/images/delaybutton-background-hovered@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/delaybutton-background-pressed.9.png b/src/imports/controls/imagine/images/delaybutton-background-pressed.9.png
new file mode 100644
index 00000000..8127c8e1
--- /dev/null
+++ b/src/imports/controls/imagine/images/delaybutton-background-pressed.9.png
Binary files differ
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
new file mode 100644
index 00000000..b11c9e30
--- /dev/null
+++ b/src/imports/controls/imagine/images/delaybutton-background-pressed@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..31cb846b
--- /dev/null
+++ b/src/imports/controls/imagine/images/delaybutton-background-pressed@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..558d80a2
--- /dev/null
+++ b/src/imports/controls/imagine/images/delaybutton-background-pressed@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/delaybutton-background.9.png b/src/imports/controls/imagine/images/delaybutton-background.9.png
new file mode 100644
index 00000000..43215ebd
--- /dev/null
+++ b/src/imports/controls/imagine/images/delaybutton-background.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/delaybutton-background@2x.9.png b/src/imports/controls/imagine/images/delaybutton-background@2x.9.png
new file mode 100644
index 00000000..6526a1a0
--- /dev/null
+++ b/src/imports/controls/imagine/images/delaybutton-background@2x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/delaybutton-background@3x.9.png b/src/imports/controls/imagine/images/delaybutton-background@3x.9.png
new file mode 100644
index 00000000..c30044cb
--- /dev/null
+++ b/src/imports/controls/imagine/images/delaybutton-background@3x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/delaybutton-background@4x.9.png b/src/imports/controls/imagine/images/delaybutton-background@4x.9.png
new file mode 100644
index 00000000..e35896fa
--- /dev/null
+++ b/src/imports/controls/imagine/images/delaybutton-background@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/delaybutton-mask.9.png b/src/imports/controls/imagine/images/delaybutton-mask.9.png
new file mode 100644
index 00000000..83dde2d3
--- /dev/null
+++ b/src/imports/controls/imagine/images/delaybutton-mask.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/delaybutton-mask@2x.9.png b/src/imports/controls/imagine/images/delaybutton-mask@2x.9.png
new file mode 100644
index 00000000..cfa5a8ad
--- /dev/null
+++ b/src/imports/controls/imagine/images/delaybutton-mask@2x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/delaybutton-mask@3x.9.png b/src/imports/controls/imagine/images/delaybutton-mask@3x.9.png
new file mode 100644
index 00000000..62eb0194
--- /dev/null
+++ b/src/imports/controls/imagine/images/delaybutton-mask@3x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/delaybutton-mask@4x.9.png b/src/imports/controls/imagine/images/delaybutton-mask@4x.9.png
new file mode 100644
index 00000000..7d8fdae5
--- /dev/null
+++ b/src/imports/controls/imagine/images/delaybutton-mask@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/delaybutton-progress-disabled.9.png b/src/imports/controls/imagine/images/delaybutton-progress-disabled.9.png
new file mode 100644
index 00000000..5c209c9c
--- /dev/null
+++ b/src/imports/controls/imagine/images/delaybutton-progress-disabled.9.png
Binary files differ
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
new file mode 100644
index 00000000..0ef11a8d
--- /dev/null
+++ b/src/imports/controls/imagine/images/delaybutton-progress-disabled@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..f3f8e547
--- /dev/null
+++ b/src/imports/controls/imagine/images/delaybutton-progress-disabled@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..b24f50e6
--- /dev/null
+++ b/src/imports/controls/imagine/images/delaybutton-progress-disabled@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/delaybutton-progress.9.png b/src/imports/controls/imagine/images/delaybutton-progress.9.png
new file mode 100644
index 00000000..4dd3aec5
--- /dev/null
+++ b/src/imports/controls/imagine/images/delaybutton-progress.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/delaybutton-progress@2x.9.png b/src/imports/controls/imagine/images/delaybutton-progress@2x.9.png
new file mode 100644
index 00000000..cd422076
--- /dev/null
+++ b/src/imports/controls/imagine/images/delaybutton-progress@2x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/delaybutton-progress@3x.9.png b/src/imports/controls/imagine/images/delaybutton-progress@3x.9.png
new file mode 100644
index 00000000..08610300
--- /dev/null
+++ b/src/imports/controls/imagine/images/delaybutton-progress@3x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/delaybutton-progress@4x.9.png b/src/imports/controls/imagine/images/delaybutton-progress@4x.9.png
new file mode 100644
index 00000000..24cc19ba
--- /dev/null
+++ b/src/imports/controls/imagine/images/delaybutton-progress@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/dial-background-disabled.png b/src/imports/controls/imagine/images/dial-background-disabled.png
new file mode 100644
index 00000000..fdf00515
--- /dev/null
+++ b/src/imports/controls/imagine/images/dial-background-disabled.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/dial-background-disabled@2x.png b/src/imports/controls/imagine/images/dial-background-disabled@2x.png
new file mode 100644
index 00000000..e84495a5
--- /dev/null
+++ b/src/imports/controls/imagine/images/dial-background-disabled@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/dial-background-disabled@3x.png b/src/imports/controls/imagine/images/dial-background-disabled@3x.png
new file mode 100644
index 00000000..a22eccc1
--- /dev/null
+++ b/src/imports/controls/imagine/images/dial-background-disabled@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/dial-background-disabled@4x.png b/src/imports/controls/imagine/images/dial-background-disabled@4x.png
new file mode 100644
index 00000000..2bfc73dc
--- /dev/null
+++ b/src/imports/controls/imagine/images/dial-background-disabled@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/dial-background-focused.png b/src/imports/controls/imagine/images/dial-background-focused.png
new file mode 100644
index 00000000..10fa4c2d
--- /dev/null
+++ b/src/imports/controls/imagine/images/dial-background-focused.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/dial-background-focused@2x.png b/src/imports/controls/imagine/images/dial-background-focused@2x.png
new file mode 100644
index 00000000..bfb2a3fd
--- /dev/null
+++ b/src/imports/controls/imagine/images/dial-background-focused@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/dial-background-focused@3x.png b/src/imports/controls/imagine/images/dial-background-focused@3x.png
new file mode 100644
index 00000000..77cba1df
--- /dev/null
+++ b/src/imports/controls/imagine/images/dial-background-focused@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/dial-background-focused@4x.png b/src/imports/controls/imagine/images/dial-background-focused@4x.png
new file mode 100644
index 00000000..755e497e
--- /dev/null
+++ b/src/imports/controls/imagine/images/dial-background-focused@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/dial-background.png b/src/imports/controls/imagine/images/dial-background.png
new file mode 100644
index 00000000..60837fe5
--- /dev/null
+++ b/src/imports/controls/imagine/images/dial-background.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/dial-background@2x.png b/src/imports/controls/imagine/images/dial-background@2x.png
new file mode 100644
index 00000000..2103bf55
--- /dev/null
+++ b/src/imports/controls/imagine/images/dial-background@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/dial-background@3x.png b/src/imports/controls/imagine/images/dial-background@3x.png
new file mode 100644
index 00000000..58a7ff95
--- /dev/null
+++ b/src/imports/controls/imagine/images/dial-background@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/dial-background@4x.png b/src/imports/controls/imagine/images/dial-background@4x.png
new file mode 100644
index 00000000..664ebb9d
--- /dev/null
+++ b/src/imports/controls/imagine/images/dial-background@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/dial-handle-disabled.png b/src/imports/controls/imagine/images/dial-handle-disabled.png
new file mode 100644
index 00000000..626edccd
--- /dev/null
+++ b/src/imports/controls/imagine/images/dial-handle-disabled.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/dial-handle-disabled@2x.png b/src/imports/controls/imagine/images/dial-handle-disabled@2x.png
new file mode 100644
index 00000000..28b09f14
--- /dev/null
+++ b/src/imports/controls/imagine/images/dial-handle-disabled@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/dial-handle-disabled@3x.png b/src/imports/controls/imagine/images/dial-handle-disabled@3x.png
new file mode 100644
index 00000000..e1f46a0a
--- /dev/null
+++ b/src/imports/controls/imagine/images/dial-handle-disabled@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/dial-handle-disabled@4x.png b/src/imports/controls/imagine/images/dial-handle-disabled@4x.png
new file mode 100644
index 00000000..e3c26204
--- /dev/null
+++ b/src/imports/controls/imagine/images/dial-handle-disabled@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/dial-handle-focused-hovered.png b/src/imports/controls/imagine/images/dial-handle-focused-hovered.png
new file mode 100644
index 00000000..fc9470e6
--- /dev/null
+++ b/src/imports/controls/imagine/images/dial-handle-focused-hovered.png
Binary files differ
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
new file mode 100644
index 00000000..a3dc50bd
--- /dev/null
+++ b/src/imports/controls/imagine/images/dial-handle-focused-hovered@2x.png
Binary files differ
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
new file mode 100644
index 00000000..a23de192
--- /dev/null
+++ b/src/imports/controls/imagine/images/dial-handle-focused-hovered@3x.png
Binary files differ
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
new file mode 100644
index 00000000..8820ff1a
--- /dev/null
+++ b/src/imports/controls/imagine/images/dial-handle-focused-hovered@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/dial-handle-focused-pressed.png b/src/imports/controls/imagine/images/dial-handle-focused-pressed.png
new file mode 100644
index 00000000..6b6dc410
--- /dev/null
+++ b/src/imports/controls/imagine/images/dial-handle-focused-pressed.png
Binary files differ
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
new file mode 100644
index 00000000..ac52880b
--- /dev/null
+++ b/src/imports/controls/imagine/images/dial-handle-focused-pressed@2x.png
Binary files differ
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
new file mode 100644
index 00000000..bfc68881
--- /dev/null
+++ b/src/imports/controls/imagine/images/dial-handle-focused-pressed@3x.png
Binary files differ
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
new file mode 100644
index 00000000..5fa78b1a
--- /dev/null
+++ b/src/imports/controls/imagine/images/dial-handle-focused-pressed@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/dial-handle-focused.png b/src/imports/controls/imagine/images/dial-handle-focused.png
new file mode 100644
index 00000000..fc9470e6
--- /dev/null
+++ b/src/imports/controls/imagine/images/dial-handle-focused.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/dial-handle-focused@2x.png b/src/imports/controls/imagine/images/dial-handle-focused@2x.png
new file mode 100644
index 00000000..a3dc50bd
--- /dev/null
+++ b/src/imports/controls/imagine/images/dial-handle-focused@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/dial-handle-focused@3x.png b/src/imports/controls/imagine/images/dial-handle-focused@3x.png
new file mode 100644
index 00000000..a23de192
--- /dev/null
+++ b/src/imports/controls/imagine/images/dial-handle-focused@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/dial-handle-focused@4x.png b/src/imports/controls/imagine/images/dial-handle-focused@4x.png
new file mode 100644
index 00000000..8820ff1a
--- /dev/null
+++ b/src/imports/controls/imagine/images/dial-handle-focused@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/dial-handle-hovered.png b/src/imports/controls/imagine/images/dial-handle-hovered.png
new file mode 100644
index 00000000..5b9bc934
--- /dev/null
+++ b/src/imports/controls/imagine/images/dial-handle-hovered.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/dial-handle-hovered@2x.png b/src/imports/controls/imagine/images/dial-handle-hovered@2x.png
new file mode 100644
index 00000000..9c1f4022
--- /dev/null
+++ b/src/imports/controls/imagine/images/dial-handle-hovered@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/dial-handle-hovered@3x.png b/src/imports/controls/imagine/images/dial-handle-hovered@3x.png
new file mode 100644
index 00000000..1d621bd4
--- /dev/null
+++ b/src/imports/controls/imagine/images/dial-handle-hovered@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/dial-handle-hovered@4x.png b/src/imports/controls/imagine/images/dial-handle-hovered@4x.png
new file mode 100644
index 00000000..2b545261
--- /dev/null
+++ b/src/imports/controls/imagine/images/dial-handle-hovered@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/dial-handle-pressed.png b/src/imports/controls/imagine/images/dial-handle-pressed.png
new file mode 100644
index 00000000..25d334cc
--- /dev/null
+++ b/src/imports/controls/imagine/images/dial-handle-pressed.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/dial-handle-pressed@2x.png b/src/imports/controls/imagine/images/dial-handle-pressed@2x.png
new file mode 100644
index 00000000..f6c3ddce
--- /dev/null
+++ b/src/imports/controls/imagine/images/dial-handle-pressed@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/dial-handle-pressed@3x.png b/src/imports/controls/imagine/images/dial-handle-pressed@3x.png
new file mode 100644
index 00000000..523187d0
--- /dev/null
+++ b/src/imports/controls/imagine/images/dial-handle-pressed@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/dial-handle-pressed@4x.png b/src/imports/controls/imagine/images/dial-handle-pressed@4x.png
new file mode 100644
index 00000000..c4c9c042
--- /dev/null
+++ b/src/imports/controls/imagine/images/dial-handle-pressed@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/dial-handle.png b/src/imports/controls/imagine/images/dial-handle.png
new file mode 100644
index 00000000..606e9583
--- /dev/null
+++ b/src/imports/controls/imagine/images/dial-handle.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/dial-handle@2x.png b/src/imports/controls/imagine/images/dial-handle@2x.png
new file mode 100644
index 00000000..4eced358
--- /dev/null
+++ b/src/imports/controls/imagine/images/dial-handle@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/dial-handle@3x.png b/src/imports/controls/imagine/images/dial-handle@3x.png
new file mode 100644
index 00000000..4bf76452
--- /dev/null
+++ b/src/imports/controls/imagine/images/dial-handle@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/dial-handle@4x.png b/src/imports/controls/imagine/images/dial-handle@4x.png
new file mode 100644
index 00000000..4fce7c3a
--- /dev/null
+++ b/src/imports/controls/imagine/images/dial-handle@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/dialog-background.9.png b/src/imports/controls/imagine/images/dialog-background.9.png
new file mode 100644
index 00000000..ddf40352
--- /dev/null
+++ b/src/imports/controls/imagine/images/dialog-background.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/dialog-background@2x.9.png b/src/imports/controls/imagine/images/dialog-background@2x.9.png
new file mode 100644
index 00000000..5127eab4
--- /dev/null
+++ b/src/imports/controls/imagine/images/dialog-background@2x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/dialog-background@3x.9.png b/src/imports/controls/imagine/images/dialog-background@3x.9.png
new file mode 100644
index 00000000..42046abb
--- /dev/null
+++ b/src/imports/controls/imagine/images/dialog-background@3x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/dialog-background@4x.9.png b/src/imports/controls/imagine/images/dialog-background@4x.9.png
new file mode 100644
index 00000000..a5841341
--- /dev/null
+++ b/src/imports/controls/imagine/images/dialog-background@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/dialog-overlay-modal.png b/src/imports/controls/imagine/images/dialog-overlay-modal.png
new file mode 100644
index 00000000..3113bd99
--- /dev/null
+++ b/src/imports/controls/imagine/images/dialog-overlay-modal.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/dialog-overlay-modal@2x.png b/src/imports/controls/imagine/images/dialog-overlay-modal@2x.png
new file mode 100644
index 00000000..0ad9ce6d
--- /dev/null
+++ b/src/imports/controls/imagine/images/dialog-overlay-modal@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/dialog-overlay-modal@3x.png b/src/imports/controls/imagine/images/dialog-overlay-modal@3x.png
new file mode 100644
index 00000000..170607d9
--- /dev/null
+++ b/src/imports/controls/imagine/images/dialog-overlay-modal@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/dialog-overlay-modal@4x.png b/src/imports/controls/imagine/images/dialog-overlay-modal@4x.png
new file mode 100644
index 00000000..8b4b974d
--- /dev/null
+++ b/src/imports/controls/imagine/images/dialog-overlay-modal@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/dialog-overlay.png b/src/imports/controls/imagine/images/dialog-overlay.png
new file mode 100644
index 00000000..7a172720
--- /dev/null
+++ b/src/imports/controls/imagine/images/dialog-overlay.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/dialog-overlay@2x.png b/src/imports/controls/imagine/images/dialog-overlay@2x.png
new file mode 100644
index 00000000..e8fb48ad
--- /dev/null
+++ b/src/imports/controls/imagine/images/dialog-overlay@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/dialog-overlay@3x.png b/src/imports/controls/imagine/images/dialog-overlay@3x.png
new file mode 100644
index 00000000..1ea6204c
--- /dev/null
+++ b/src/imports/controls/imagine/images/dialog-overlay@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/dialog-overlay@4x.png b/src/imports/controls/imagine/images/dialog-overlay@4x.png
new file mode 100644
index 00000000..cc4df170
--- /dev/null
+++ b/src/imports/controls/imagine/images/dialog-overlay@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/dialogbuttonbox-background.9.png b/src/imports/controls/imagine/images/dialogbuttonbox-background.9.png
new file mode 100644
index 00000000..cda610f2
--- /dev/null
+++ b/src/imports/controls/imagine/images/dialogbuttonbox-background.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/dialogbuttonbox-background@2x.9.png b/src/imports/controls/imagine/images/dialogbuttonbox-background@2x.9.png
new file mode 100644
index 00000000..79a8aafa
--- /dev/null
+++ b/src/imports/controls/imagine/images/dialogbuttonbox-background@2x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/dialogbuttonbox-background@3x.9.png b/src/imports/controls/imagine/images/dialogbuttonbox-background@3x.9.png
new file mode 100644
index 00000000..8afb56d0
--- /dev/null
+++ b/src/imports/controls/imagine/images/dialogbuttonbox-background@3x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/dialogbuttonbox-background@4x.9.png b/src/imports/controls/imagine/images/dialogbuttonbox-background@4x.9.png
new file mode 100644
index 00000000..33f89d09
--- /dev/null
+++ b/src/imports/controls/imagine/images/dialogbuttonbox-background@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/drawer-background-bottom.9.png b/src/imports/controls/imagine/images/drawer-background-bottom.9.png
new file mode 100644
index 00000000..90b247b7
--- /dev/null
+++ b/src/imports/controls/imagine/images/drawer-background-bottom.9.png
Binary files differ
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
new file mode 100644
index 00000000..b7c2ae57
--- /dev/null
+++ b/src/imports/controls/imagine/images/drawer-background-bottom@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..5e20598f
--- /dev/null
+++ b/src/imports/controls/imagine/images/drawer-background-bottom@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..8f915ed8
--- /dev/null
+++ b/src/imports/controls/imagine/images/drawer-background-bottom@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/drawer-background-left.9.png b/src/imports/controls/imagine/images/drawer-background-left.9.png
new file mode 100644
index 00000000..03a5f3ad
--- /dev/null
+++ b/src/imports/controls/imagine/images/drawer-background-left.9.png
Binary files differ
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
new file mode 100644
index 00000000..efdb8a87
--- /dev/null
+++ b/src/imports/controls/imagine/images/drawer-background-left@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..4abd55ea
--- /dev/null
+++ b/src/imports/controls/imagine/images/drawer-background-left@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..212b5b60
--- /dev/null
+++ b/src/imports/controls/imagine/images/drawer-background-left@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/drawer-background-right.9.png b/src/imports/controls/imagine/images/drawer-background-right.9.png
new file mode 100644
index 00000000..1429e0df
--- /dev/null
+++ b/src/imports/controls/imagine/images/drawer-background-right.9.png
Binary files differ
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
new file mode 100644
index 00000000..60d4a3b6
--- /dev/null
+++ b/src/imports/controls/imagine/images/drawer-background-right@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..106d260c
--- /dev/null
+++ b/src/imports/controls/imagine/images/drawer-background-right@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..ccc99ac4
--- /dev/null
+++ b/src/imports/controls/imagine/images/drawer-background-right@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/drawer-background-top.9.png b/src/imports/controls/imagine/images/drawer-background-top.9.png
new file mode 100644
index 00000000..3019288b
--- /dev/null
+++ b/src/imports/controls/imagine/images/drawer-background-top.9.png
Binary files differ
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
new file mode 100644
index 00000000..a579d6fe
--- /dev/null
+++ b/src/imports/controls/imagine/images/drawer-background-top@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..8a7b94ea
--- /dev/null
+++ b/src/imports/controls/imagine/images/drawer-background-top@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..8759b67c
--- /dev/null
+++ b/src/imports/controls/imagine/images/drawer-background-top@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/drawer-overlay-modal.png b/src/imports/controls/imagine/images/drawer-overlay-modal.png
new file mode 100644
index 00000000..3113bd99
--- /dev/null
+++ b/src/imports/controls/imagine/images/drawer-overlay-modal.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/drawer-overlay-modal@2x.png b/src/imports/controls/imagine/images/drawer-overlay-modal@2x.png
new file mode 100644
index 00000000..0ad9ce6d
--- /dev/null
+++ b/src/imports/controls/imagine/images/drawer-overlay-modal@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/drawer-overlay-modal@3x.png b/src/imports/controls/imagine/images/drawer-overlay-modal@3x.png
new file mode 100644
index 00000000..170607d9
--- /dev/null
+++ b/src/imports/controls/imagine/images/drawer-overlay-modal@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/drawer-overlay-modal@4x.png b/src/imports/controls/imagine/images/drawer-overlay-modal@4x.png
new file mode 100644
index 00000000..8b4b974d
--- /dev/null
+++ b/src/imports/controls/imagine/images/drawer-overlay-modal@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/drawer-overlay.png b/src/imports/controls/imagine/images/drawer-overlay.png
new file mode 100644
index 00000000..7a172720
--- /dev/null
+++ b/src/imports/controls/imagine/images/drawer-overlay.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/drawer-overlay@2x.png b/src/imports/controls/imagine/images/drawer-overlay@2x.png
new file mode 100644
index 00000000..e8fb48ad
--- /dev/null
+++ b/src/imports/controls/imagine/images/drawer-overlay@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/drawer-overlay@3x.png b/src/imports/controls/imagine/images/drawer-overlay@3x.png
new file mode 100644
index 00000000..1ea6204c
--- /dev/null
+++ b/src/imports/controls/imagine/images/drawer-overlay@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/drawer-overlay@4x.png b/src/imports/controls/imagine/images/drawer-overlay@4x.png
new file mode 100644
index 00000000..cc4df170
--- /dev/null
+++ b/src/imports/controls/imagine/images/drawer-overlay@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/frame-background.9.png b/src/imports/controls/imagine/images/frame-background.9.png
new file mode 100644
index 00000000..265ca206
--- /dev/null
+++ b/src/imports/controls/imagine/images/frame-background.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/frame-background@2x.9.png b/src/imports/controls/imagine/images/frame-background@2x.9.png
new file mode 100644
index 00000000..e6501fac
--- /dev/null
+++ b/src/imports/controls/imagine/images/frame-background@2x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/frame-background@3x.9.png b/src/imports/controls/imagine/images/frame-background@3x.9.png
new file mode 100644
index 00000000..da98a302
--- /dev/null
+++ b/src/imports/controls/imagine/images/frame-background@3x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/frame-background@4x.9.png b/src/imports/controls/imagine/images/frame-background@4x.9.png
new file mode 100644
index 00000000..14623218
--- /dev/null
+++ b/src/imports/controls/imagine/images/frame-background@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/groupbox-background.9.png b/src/imports/controls/imagine/images/groupbox-background.9.png
new file mode 100644
index 00000000..265ca206
--- /dev/null
+++ b/src/imports/controls/imagine/images/groupbox-background.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/groupbox-background@2x.9.png b/src/imports/controls/imagine/images/groupbox-background@2x.9.png
new file mode 100644
index 00000000..e6501fac
--- /dev/null
+++ b/src/imports/controls/imagine/images/groupbox-background@2x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/groupbox-background@3x.9.png b/src/imports/controls/imagine/images/groupbox-background@3x.9.png
new file mode 100644
index 00000000..da98a302
--- /dev/null
+++ b/src/imports/controls/imagine/images/groupbox-background@3x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/groupbox-background@4x.9.png b/src/imports/controls/imagine/images/groupbox-background@4x.9.png
new file mode 100644
index 00000000..14623218
--- /dev/null
+++ b/src/imports/controls/imagine/images/groupbox-background@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/groupbox-title.9.png b/src/imports/controls/imagine/images/groupbox-title.9.png
new file mode 100644
index 00000000..d891dd04
--- /dev/null
+++ b/src/imports/controls/imagine/images/groupbox-title.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/groupbox-title@2x.9.png b/src/imports/controls/imagine/images/groupbox-title@2x.9.png
new file mode 100644
index 00000000..d5359d85
--- /dev/null
+++ b/src/imports/controls/imagine/images/groupbox-title@2x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/groupbox-title@3x.9.png b/src/imports/controls/imagine/images/groupbox-title@3x.9.png
new file mode 100644
index 00000000..0e4b5c9f
--- /dev/null
+++ b/src/imports/controls/imagine/images/groupbox-title@3x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/groupbox-title@4x.9.png b/src/imports/controls/imagine/images/groupbox-title@4x.9.png
new file mode 100644
index 00000000..908dfe6b
--- /dev/null
+++ b/src/imports/controls/imagine/images/groupbox-title@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/itemdelegate-background-disabled.9.png b/src/imports/controls/imagine/images/itemdelegate-background-disabled.9.png
new file mode 100644
index 00000000..ce48ee74
--- /dev/null
+++ b/src/imports/controls/imagine/images/itemdelegate-background-disabled.9.png
Binary files differ
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
new file mode 100644
index 00000000..c7abb65c
--- /dev/null
+++ b/src/imports/controls/imagine/images/itemdelegate-background-disabled@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..46b84d7d
--- /dev/null
+++ b/src/imports/controls/imagine/images/itemdelegate-background-disabled@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..f4dfd338
--- /dev/null
+++ b/src/imports/controls/imagine/images/itemdelegate-background-disabled@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/itemdelegate-background-focused.9.png b/src/imports/controls/imagine/images/itemdelegate-background-focused.9.png
new file mode 100644
index 00000000..39fa8664
--- /dev/null
+++ b/src/imports/controls/imagine/images/itemdelegate-background-focused.9.png
Binary files differ
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
new file mode 100644
index 00000000..6b61562c
--- /dev/null
+++ b/src/imports/controls/imagine/images/itemdelegate-background-focused@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..e46c0bf1
--- /dev/null
+++ b/src/imports/controls/imagine/images/itemdelegate-background-focused@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..010444e8
--- /dev/null
+++ b/src/imports/controls/imagine/images/itemdelegate-background-focused@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/itemdelegate-background-highlighted.9.png b/src/imports/controls/imagine/images/itemdelegate-background-highlighted.9.png
new file mode 100644
index 00000000..ed949fe2
--- /dev/null
+++ b/src/imports/controls/imagine/images/itemdelegate-background-highlighted.9.png
Binary files differ
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
new file mode 100644
index 00000000..ea68d35f
--- /dev/null
+++ b/src/imports/controls/imagine/images/itemdelegate-background-highlighted@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..6d610415
--- /dev/null
+++ b/src/imports/controls/imagine/images/itemdelegate-background-highlighted@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..590cca96
--- /dev/null
+++ b/src/imports/controls/imagine/images/itemdelegate-background-highlighted@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/itemdelegate-background-hovered.9.png b/src/imports/controls/imagine/images/itemdelegate-background-hovered.9.png
new file mode 100644
index 00000000..cef1bafa
--- /dev/null
+++ b/src/imports/controls/imagine/images/itemdelegate-background-hovered.9.png
Binary files differ
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
new file mode 100644
index 00000000..5a136a0c
--- /dev/null
+++ b/src/imports/controls/imagine/images/itemdelegate-background-hovered@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..f47a366b
--- /dev/null
+++ b/src/imports/controls/imagine/images/itemdelegate-background-hovered@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..9ecb680f
--- /dev/null
+++ b/src/imports/controls/imagine/images/itemdelegate-background-hovered@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/itemdelegate-background-pressed.9.png b/src/imports/controls/imagine/images/itemdelegate-background-pressed.9.png
new file mode 100644
index 00000000..39fa8664
--- /dev/null
+++ b/src/imports/controls/imagine/images/itemdelegate-background-pressed.9.png
Binary files differ
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
new file mode 100644
index 00000000..6b61562c
--- /dev/null
+++ b/src/imports/controls/imagine/images/itemdelegate-background-pressed@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..e46c0bf1
--- /dev/null
+++ b/src/imports/controls/imagine/images/itemdelegate-background-pressed@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..010444e8
--- /dev/null
+++ b/src/imports/controls/imagine/images/itemdelegate-background-pressed@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/itemdelegate-background.9.png b/src/imports/controls/imagine/images/itemdelegate-background.9.png
new file mode 100644
index 00000000..cef1bafa
--- /dev/null
+++ b/src/imports/controls/imagine/images/itemdelegate-background.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/itemdelegate-background@2x.9.png b/src/imports/controls/imagine/images/itemdelegate-background@2x.9.png
new file mode 100644
index 00000000..5a136a0c
--- /dev/null
+++ b/src/imports/controls/imagine/images/itemdelegate-background@2x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/itemdelegate-background@3x.9.png b/src/imports/controls/imagine/images/itemdelegate-background@3x.9.png
new file mode 100644
index 00000000..f47a366b
--- /dev/null
+++ b/src/imports/controls/imagine/images/itemdelegate-background@3x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/itemdelegate-background@4x.9.png b/src/imports/controls/imagine/images/itemdelegate-background@4x.9.png
new file mode 100644
index 00000000..9ecb680f
--- /dev/null
+++ b/src/imports/controls/imagine/images/itemdelegate-background@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/menu-background.9.png b/src/imports/controls/imagine/images/menu-background.9.png
new file mode 100644
index 00000000..13591ddb
--- /dev/null
+++ b/src/imports/controls/imagine/images/menu-background.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/menu-background@2x.9.png b/src/imports/controls/imagine/images/menu-background@2x.9.png
new file mode 100644
index 00000000..451372f7
--- /dev/null
+++ b/src/imports/controls/imagine/images/menu-background@2x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/menu-background@3x.9.png b/src/imports/controls/imagine/images/menu-background@3x.9.png
new file mode 100644
index 00000000..1c3a695b
--- /dev/null
+++ b/src/imports/controls/imagine/images/menu-background@3x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/menu-background@4x.9.png b/src/imports/controls/imagine/images/menu-background@4x.9.png
new file mode 100644
index 00000000..1a1b11ce
--- /dev/null
+++ b/src/imports/controls/imagine/images/menu-background@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/menuitem-arrow-disabled.png b/src/imports/controls/imagine/images/menuitem-arrow-disabled.png
new file mode 100644
index 00000000..e9d77838
--- /dev/null
+++ b/src/imports/controls/imagine/images/menuitem-arrow-disabled.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/menuitem-arrow-disabled@2x.png b/src/imports/controls/imagine/images/menuitem-arrow-disabled@2x.png
new file mode 100644
index 00000000..62a57de4
--- /dev/null
+++ b/src/imports/controls/imagine/images/menuitem-arrow-disabled@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/menuitem-arrow-disabled@3x.png b/src/imports/controls/imagine/images/menuitem-arrow-disabled@3x.png
new file mode 100644
index 00000000..37591d7c
--- /dev/null
+++ b/src/imports/controls/imagine/images/menuitem-arrow-disabled@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/menuitem-arrow-disabled@4x.png b/src/imports/controls/imagine/images/menuitem-arrow-disabled@4x.png
new file mode 100644
index 00000000..0abd7e80
--- /dev/null
+++ b/src/imports/controls/imagine/images/menuitem-arrow-disabled@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/menuitem-arrow-mirrored-disabled.png b/src/imports/controls/imagine/images/menuitem-arrow-mirrored-disabled.png
new file mode 100644
index 00000000..906392dd
--- /dev/null
+++ b/src/imports/controls/imagine/images/menuitem-arrow-mirrored-disabled.png
Binary files differ
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
new file mode 100644
index 00000000..446970de
--- /dev/null
+++ b/src/imports/controls/imagine/images/menuitem-arrow-mirrored-disabled@2x.png
Binary files differ
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
new file mode 100644
index 00000000..54b63b9b
--- /dev/null
+++ b/src/imports/controls/imagine/images/menuitem-arrow-mirrored-disabled@3x.png
Binary files differ
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
new file mode 100644
index 00000000..77e0894b
--- /dev/null
+++ b/src/imports/controls/imagine/images/menuitem-arrow-mirrored-disabled@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/menuitem-arrow-mirrored.png b/src/imports/controls/imagine/images/menuitem-arrow-mirrored.png
new file mode 100644
index 00000000..5009cb4a
--- /dev/null
+++ b/src/imports/controls/imagine/images/menuitem-arrow-mirrored.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/menuitem-arrow-mirrored@2x.png b/src/imports/controls/imagine/images/menuitem-arrow-mirrored@2x.png
new file mode 100644
index 00000000..fbbe1fc0
--- /dev/null
+++ b/src/imports/controls/imagine/images/menuitem-arrow-mirrored@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/menuitem-arrow-mirrored@3x.png b/src/imports/controls/imagine/images/menuitem-arrow-mirrored@3x.png
new file mode 100644
index 00000000..dd56d8df
--- /dev/null
+++ b/src/imports/controls/imagine/images/menuitem-arrow-mirrored@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/menuitem-arrow-mirrored@4x.png b/src/imports/controls/imagine/images/menuitem-arrow-mirrored@4x.png
new file mode 100644
index 00000000..355b92d8
--- /dev/null
+++ b/src/imports/controls/imagine/images/menuitem-arrow-mirrored@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/menuitem-arrow.png b/src/imports/controls/imagine/images/menuitem-arrow.png
new file mode 100644
index 00000000..990c92ae
--- /dev/null
+++ b/src/imports/controls/imagine/images/menuitem-arrow.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/menuitem-arrow@2x.png b/src/imports/controls/imagine/images/menuitem-arrow@2x.png
new file mode 100644
index 00000000..4bd03ef5
--- /dev/null
+++ b/src/imports/controls/imagine/images/menuitem-arrow@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/menuitem-arrow@3x.png b/src/imports/controls/imagine/images/menuitem-arrow@3x.png
new file mode 100644
index 00000000..4748eb2a
--- /dev/null
+++ b/src/imports/controls/imagine/images/menuitem-arrow@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/menuitem-arrow@4x.png b/src/imports/controls/imagine/images/menuitem-arrow@4x.png
new file mode 100644
index 00000000..9201c8c8
--- /dev/null
+++ b/src/imports/controls/imagine/images/menuitem-arrow@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/menuitem-background-highlighted.9.png b/src/imports/controls/imagine/images/menuitem-background-highlighted.9.png
new file mode 100644
index 00000000..7b8fa0f4
--- /dev/null
+++ b/src/imports/controls/imagine/images/menuitem-background-highlighted.9.png
Binary files differ
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
new file mode 100644
index 00000000..9edc3079
--- /dev/null
+++ b/src/imports/controls/imagine/images/menuitem-background-highlighted@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..183f6194
--- /dev/null
+++ b/src/imports/controls/imagine/images/menuitem-background-highlighted@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..0a1ab863
--- /dev/null
+++ b/src/imports/controls/imagine/images/menuitem-background-highlighted@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/menuitem-background.9.png b/src/imports/controls/imagine/images/menuitem-background.9.png
new file mode 100644
index 00000000..aab131ed
--- /dev/null
+++ b/src/imports/controls/imagine/images/menuitem-background.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/menuitem-background@2x.9.png b/src/imports/controls/imagine/images/menuitem-background@2x.9.png
new file mode 100644
index 00000000..c46938c4
--- /dev/null
+++ b/src/imports/controls/imagine/images/menuitem-background@2x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/menuitem-background@3x.9.png b/src/imports/controls/imagine/images/menuitem-background@3x.9.png
new file mode 100644
index 00000000..bac1a83f
--- /dev/null
+++ b/src/imports/controls/imagine/images/menuitem-background@3x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/menuitem-background@4x.9.png b/src/imports/controls/imagine/images/menuitem-background@4x.9.png
new file mode 100644
index 00000000..ba77504c
--- /dev/null
+++ b/src/imports/controls/imagine/images/menuitem-background@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/menuitem-indicator-checked-focused.png b/src/imports/controls/imagine/images/menuitem-indicator-checked-focused.png
new file mode 100644
index 00000000..d84b6424
--- /dev/null
+++ b/src/imports/controls/imagine/images/menuitem-indicator-checked-focused.png
Binary files differ
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
new file mode 100644
index 00000000..d9974cd3
--- /dev/null
+++ b/src/imports/controls/imagine/images/menuitem-indicator-checked-focused@2x.png
Binary files differ
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
new file mode 100644
index 00000000..55f2a641
--- /dev/null
+++ b/src/imports/controls/imagine/images/menuitem-indicator-checked-focused@3x.png
Binary files differ
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
new file mode 100644
index 00000000..f0da6e95
--- /dev/null
+++ b/src/imports/controls/imagine/images/menuitem-indicator-checked-focused@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/menuitem-indicator-checked-hovered.png b/src/imports/controls/imagine/images/menuitem-indicator-checked-hovered.png
new file mode 100644
index 00000000..d84b6424
--- /dev/null
+++ b/src/imports/controls/imagine/images/menuitem-indicator-checked-hovered.png
Binary files differ
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
new file mode 100644
index 00000000..d9974cd3
--- /dev/null
+++ b/src/imports/controls/imagine/images/menuitem-indicator-checked-hovered@2x.png
Binary files differ
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
new file mode 100644
index 00000000..55f2a641
--- /dev/null
+++ b/src/imports/controls/imagine/images/menuitem-indicator-checked-hovered@3x.png
Binary files differ
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
new file mode 100644
index 00000000..f0da6e95
--- /dev/null
+++ b/src/imports/controls/imagine/images/menuitem-indicator-checked-hovered@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/menuitem-indicator-checked-pressed.png b/src/imports/controls/imagine/images/menuitem-indicator-checked-pressed.png
new file mode 100644
index 00000000..5ed3cca2
--- /dev/null
+++ b/src/imports/controls/imagine/images/menuitem-indicator-checked-pressed.png
Binary files differ
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
new file mode 100644
index 00000000..4a88a2fa
--- /dev/null
+++ b/src/imports/controls/imagine/images/menuitem-indicator-checked-pressed@2x.png
Binary files differ
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
new file mode 100644
index 00000000..244744e5
--- /dev/null
+++ b/src/imports/controls/imagine/images/menuitem-indicator-checked-pressed@3x.png
Binary files differ
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
new file mode 100644
index 00000000..e782944b
--- /dev/null
+++ b/src/imports/controls/imagine/images/menuitem-indicator-checked-pressed@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/menuitem-indicator-checked.png b/src/imports/controls/imagine/images/menuitem-indicator-checked.png
new file mode 100644
index 00000000..d44ffceb
--- /dev/null
+++ b/src/imports/controls/imagine/images/menuitem-indicator-checked.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/menuitem-indicator-checked@2x.png b/src/imports/controls/imagine/images/menuitem-indicator-checked@2x.png
new file mode 100644
index 00000000..f25091e5
--- /dev/null
+++ b/src/imports/controls/imagine/images/menuitem-indicator-checked@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/menuitem-indicator-checked@3x.png b/src/imports/controls/imagine/images/menuitem-indicator-checked@3x.png
new file mode 100644
index 00000000..74b00801
--- /dev/null
+++ b/src/imports/controls/imagine/images/menuitem-indicator-checked@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/menuitem-indicator-checked@4x.png b/src/imports/controls/imagine/images/menuitem-indicator-checked@4x.png
new file mode 100644
index 00000000..1b6b021c
--- /dev/null
+++ b/src/imports/controls/imagine/images/menuitem-indicator-checked@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/menuitem-indicator-disabled.png b/src/imports/controls/imagine/images/menuitem-indicator-disabled.png
new file mode 100644
index 00000000..2d47edd5
--- /dev/null
+++ b/src/imports/controls/imagine/images/menuitem-indicator-disabled.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/menuitem-indicator-disabled@2x.png b/src/imports/controls/imagine/images/menuitem-indicator-disabled@2x.png
new file mode 100644
index 00000000..590848e6
--- /dev/null
+++ b/src/imports/controls/imagine/images/menuitem-indicator-disabled@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/menuitem-indicator-disabled@3x.png b/src/imports/controls/imagine/images/menuitem-indicator-disabled@3x.png
new file mode 100644
index 00000000..7dcc9dd8
--- /dev/null
+++ b/src/imports/controls/imagine/images/menuitem-indicator-disabled@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/menuitem-indicator-disabled@4x.png b/src/imports/controls/imagine/images/menuitem-indicator-disabled@4x.png
new file mode 100644
index 00000000..c996429a
--- /dev/null
+++ b/src/imports/controls/imagine/images/menuitem-indicator-disabled@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/menuitem-indicator-focused.png b/src/imports/controls/imagine/images/menuitem-indicator-focused.png
new file mode 100644
index 00000000..0faa5917
--- /dev/null
+++ b/src/imports/controls/imagine/images/menuitem-indicator-focused.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/menuitem-indicator-focused@2x.png b/src/imports/controls/imagine/images/menuitem-indicator-focused@2x.png
new file mode 100644
index 00000000..25f20bb1
--- /dev/null
+++ b/src/imports/controls/imagine/images/menuitem-indicator-focused@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/menuitem-indicator-focused@3x.png b/src/imports/controls/imagine/images/menuitem-indicator-focused@3x.png
new file mode 100644
index 00000000..32de5064
--- /dev/null
+++ b/src/imports/controls/imagine/images/menuitem-indicator-focused@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/menuitem-indicator-focused@4x.png b/src/imports/controls/imagine/images/menuitem-indicator-focused@4x.png
new file mode 100644
index 00000000..73912ac8
--- /dev/null
+++ b/src/imports/controls/imagine/images/menuitem-indicator-focused@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/menuitem-indicator-hovered.png b/src/imports/controls/imagine/images/menuitem-indicator-hovered.png
new file mode 100644
index 00000000..0faa5917
--- /dev/null
+++ b/src/imports/controls/imagine/images/menuitem-indicator-hovered.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/menuitem-indicator-hovered@2x.png b/src/imports/controls/imagine/images/menuitem-indicator-hovered@2x.png
new file mode 100644
index 00000000..25f20bb1
--- /dev/null
+++ b/src/imports/controls/imagine/images/menuitem-indicator-hovered@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/menuitem-indicator-hovered@3x.png b/src/imports/controls/imagine/images/menuitem-indicator-hovered@3x.png
new file mode 100644
index 00000000..32de5064
--- /dev/null
+++ b/src/imports/controls/imagine/images/menuitem-indicator-hovered@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/menuitem-indicator-hovered@4x.png b/src/imports/controls/imagine/images/menuitem-indicator-hovered@4x.png
new file mode 100644
index 00000000..73912ac8
--- /dev/null
+++ b/src/imports/controls/imagine/images/menuitem-indicator-hovered@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/menuitem-indicator-pressed.png b/src/imports/controls/imagine/images/menuitem-indicator-pressed.png
new file mode 100644
index 00000000..aebea490
--- /dev/null
+++ b/src/imports/controls/imagine/images/menuitem-indicator-pressed.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/menuitem-indicator-pressed@2x.png b/src/imports/controls/imagine/images/menuitem-indicator-pressed@2x.png
new file mode 100644
index 00000000..5b4ac2bb
--- /dev/null
+++ b/src/imports/controls/imagine/images/menuitem-indicator-pressed@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/menuitem-indicator-pressed@3x.png b/src/imports/controls/imagine/images/menuitem-indicator-pressed@3x.png
new file mode 100644
index 00000000..76948af7
--- /dev/null
+++ b/src/imports/controls/imagine/images/menuitem-indicator-pressed@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/menuitem-indicator-pressed@4x.png b/src/imports/controls/imagine/images/menuitem-indicator-pressed@4x.png
new file mode 100644
index 00000000..9ff1655d
--- /dev/null
+++ b/src/imports/controls/imagine/images/menuitem-indicator-pressed@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/menuitem-indicator.png b/src/imports/controls/imagine/images/menuitem-indicator.png
new file mode 100644
index 00000000..0e63e749
--- /dev/null
+++ b/src/imports/controls/imagine/images/menuitem-indicator.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/menuitem-indicator@2x.png b/src/imports/controls/imagine/images/menuitem-indicator@2x.png
new file mode 100644
index 00000000..0a15f8ef
--- /dev/null
+++ b/src/imports/controls/imagine/images/menuitem-indicator@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/menuitem-indicator@3x.png b/src/imports/controls/imagine/images/menuitem-indicator@3x.png
new file mode 100644
index 00000000..76650657
--- /dev/null
+++ b/src/imports/controls/imagine/images/menuitem-indicator@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/menuitem-indicator@4x.png b/src/imports/controls/imagine/images/menuitem-indicator@4x.png
new file mode 100644
index 00000000..fa1e8ac8
--- /dev/null
+++ b/src/imports/controls/imagine/images/menuitem-indicator@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/menuseparator-separator.9.png b/src/imports/controls/imagine/images/menuseparator-separator.9.png
new file mode 100644
index 00000000..2794cd85
--- /dev/null
+++ b/src/imports/controls/imagine/images/menuseparator-separator.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/menuseparator-separator@2x.9.png b/src/imports/controls/imagine/images/menuseparator-separator@2x.9.png
new file mode 100644
index 00000000..4c0dd649
--- /dev/null
+++ b/src/imports/controls/imagine/images/menuseparator-separator@2x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/menuseparator-separator@3x.9.png b/src/imports/controls/imagine/images/menuseparator-separator@3x.9.png
new file mode 100644
index 00000000..f63aa47d
--- /dev/null
+++ b/src/imports/controls/imagine/images/menuseparator-separator@3x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/menuseparator-separator@4x.9.png b/src/imports/controls/imagine/images/menuseparator-separator@4x.9.png
new file mode 100644
index 00000000..d2c2d127
--- /dev/null
+++ b/src/imports/controls/imagine/images/menuseparator-separator@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/page-background.png b/src/imports/controls/imagine/images/page-background.png
new file mode 100644
index 00000000..2d8d70f2
--- /dev/null
+++ b/src/imports/controls/imagine/images/page-background.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/page-background@2x.png b/src/imports/controls/imagine/images/page-background@2x.png
new file mode 100644
index 00000000..ba9b40df
--- /dev/null
+++ b/src/imports/controls/imagine/images/page-background@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/page-background@3x.png b/src/imports/controls/imagine/images/page-background@3x.png
new file mode 100644
index 00000000..3b369748
--- /dev/null
+++ b/src/imports/controls/imagine/images/page-background@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/page-background@4x.png b/src/imports/controls/imagine/images/page-background@4x.png
new file mode 100644
index 00000000..a2fa69df
--- /dev/null
+++ b/src/imports/controls/imagine/images/page-background@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/pageindicator-delegate-current.png b/src/imports/controls/imagine/images/pageindicator-delegate-current.png
new file mode 100644
index 00000000..66ee4cb3
--- /dev/null
+++ b/src/imports/controls/imagine/images/pageindicator-delegate-current.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/pageindicator-delegate-current@2x.png b/src/imports/controls/imagine/images/pageindicator-delegate-current@2x.png
new file mode 100644
index 00000000..22bd5d84
--- /dev/null
+++ b/src/imports/controls/imagine/images/pageindicator-delegate-current@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/pageindicator-delegate-current@3x.png b/src/imports/controls/imagine/images/pageindicator-delegate-current@3x.png
new file mode 100644
index 00000000..a11690a3
--- /dev/null
+++ b/src/imports/controls/imagine/images/pageindicator-delegate-current@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/pageindicator-delegate-current@4x.png b/src/imports/controls/imagine/images/pageindicator-delegate-current@4x.png
new file mode 100644
index 00000000..fb73840e
--- /dev/null
+++ b/src/imports/controls/imagine/images/pageindicator-delegate-current@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/pageindicator-delegate-disabled-current.png b/src/imports/controls/imagine/images/pageindicator-delegate-disabled-current.png
new file mode 100644
index 00000000..d99c2a69
--- /dev/null
+++ b/src/imports/controls/imagine/images/pageindicator-delegate-disabled-current.png
Binary files differ
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
new file mode 100644
index 00000000..c1a924f0
--- /dev/null
+++ b/src/imports/controls/imagine/images/pageindicator-delegate-disabled-current@2x.png
Binary files differ
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
new file mode 100644
index 00000000..f22ab01c
--- /dev/null
+++ b/src/imports/controls/imagine/images/pageindicator-delegate-disabled-current@3x.png
Binary files differ
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
new file mode 100644
index 00000000..80fadbbe
--- /dev/null
+++ b/src/imports/controls/imagine/images/pageindicator-delegate-disabled-current@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/pageindicator-delegate-disabled.png b/src/imports/controls/imagine/images/pageindicator-delegate-disabled.png
new file mode 100644
index 00000000..d99c2a69
--- /dev/null
+++ b/src/imports/controls/imagine/images/pageindicator-delegate-disabled.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/pageindicator-delegate-disabled@2x.png b/src/imports/controls/imagine/images/pageindicator-delegate-disabled@2x.png
new file mode 100644
index 00000000..c1a924f0
--- /dev/null
+++ b/src/imports/controls/imagine/images/pageindicator-delegate-disabled@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/pageindicator-delegate-disabled@3x.png b/src/imports/controls/imagine/images/pageindicator-delegate-disabled@3x.png
new file mode 100644
index 00000000..f22ab01c
--- /dev/null
+++ b/src/imports/controls/imagine/images/pageindicator-delegate-disabled@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/pageindicator-delegate-disabled@4x.png b/src/imports/controls/imagine/images/pageindicator-delegate-disabled@4x.png
new file mode 100644
index 00000000..80fadbbe
--- /dev/null
+++ b/src/imports/controls/imagine/images/pageindicator-delegate-disabled@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/pageindicator-delegate-mirrored.png b/src/imports/controls/imagine/images/pageindicator-delegate-mirrored.png
new file mode 100644
index 00000000..961a12f7
--- /dev/null
+++ b/src/imports/controls/imagine/images/pageindicator-delegate-mirrored.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/pageindicator-delegate-mirrored@2x.png b/src/imports/controls/imagine/images/pageindicator-delegate-mirrored@2x.png
new file mode 100644
index 00000000..2b86f759
--- /dev/null
+++ b/src/imports/controls/imagine/images/pageindicator-delegate-mirrored@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/pageindicator-delegate-mirrored@3x.png b/src/imports/controls/imagine/images/pageindicator-delegate-mirrored@3x.png
new file mode 100644
index 00000000..eecf434a
--- /dev/null
+++ b/src/imports/controls/imagine/images/pageindicator-delegate-mirrored@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/pageindicator-delegate-mirrored@4x.png b/src/imports/controls/imagine/images/pageindicator-delegate-mirrored@4x.png
new file mode 100644
index 00000000..c8d08bd7
--- /dev/null
+++ b/src/imports/controls/imagine/images/pageindicator-delegate-mirrored@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/pageindicator-delegate-pressed.png b/src/imports/controls/imagine/images/pageindicator-delegate-pressed.png
new file mode 100644
index 00000000..66ee4cb3
--- /dev/null
+++ b/src/imports/controls/imagine/images/pageindicator-delegate-pressed.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/pageindicator-delegate-pressed@2x.png b/src/imports/controls/imagine/images/pageindicator-delegate-pressed@2x.png
new file mode 100644
index 00000000..22bd5d84
--- /dev/null
+++ b/src/imports/controls/imagine/images/pageindicator-delegate-pressed@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/pageindicator-delegate-pressed@3x.png b/src/imports/controls/imagine/images/pageindicator-delegate-pressed@3x.png
new file mode 100644
index 00000000..a11690a3
--- /dev/null
+++ b/src/imports/controls/imagine/images/pageindicator-delegate-pressed@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/pageindicator-delegate-pressed@4x.png b/src/imports/controls/imagine/images/pageindicator-delegate-pressed@4x.png
new file mode 100644
index 00000000..fb73840e
--- /dev/null
+++ b/src/imports/controls/imagine/images/pageindicator-delegate-pressed@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/pageindicator-delegate.png b/src/imports/controls/imagine/images/pageindicator-delegate.png
new file mode 100644
index 00000000..961a12f7
--- /dev/null
+++ b/src/imports/controls/imagine/images/pageindicator-delegate.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/pageindicator-delegate@2x.png b/src/imports/controls/imagine/images/pageindicator-delegate@2x.png
new file mode 100644
index 00000000..2b86f759
--- /dev/null
+++ b/src/imports/controls/imagine/images/pageindicator-delegate@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/pageindicator-delegate@3x.png b/src/imports/controls/imagine/images/pageindicator-delegate@3x.png
new file mode 100644
index 00000000..eecf434a
--- /dev/null
+++ b/src/imports/controls/imagine/images/pageindicator-delegate@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/pageindicator-delegate@4x.png b/src/imports/controls/imagine/images/pageindicator-delegate@4x.png
new file mode 100644
index 00000000..c8d08bd7
--- /dev/null
+++ b/src/imports/controls/imagine/images/pageindicator-delegate@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/pane-background.9.png b/src/imports/controls/imagine/images/pane-background.9.png
new file mode 100644
index 00000000..1d3cff54
--- /dev/null
+++ b/src/imports/controls/imagine/images/pane-background.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/pane-background@2x.9.png b/src/imports/controls/imagine/images/pane-background@2x.9.png
new file mode 100644
index 00000000..a84ac04a
--- /dev/null
+++ b/src/imports/controls/imagine/images/pane-background@2x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/pane-background@3x.9.png b/src/imports/controls/imagine/images/pane-background@3x.9.png
new file mode 100644
index 00000000..2b1c4da9
--- /dev/null
+++ b/src/imports/controls/imagine/images/pane-background@3x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/pane-background@4x.9.png b/src/imports/controls/imagine/images/pane-background@4x.9.png
new file mode 100644
index 00000000..90295db4
--- /dev/null
+++ b/src/imports/controls/imagine/images/pane-background@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/popup-background.9.png b/src/imports/controls/imagine/images/popup-background.9.png
new file mode 100644
index 00000000..ddf40352
--- /dev/null
+++ b/src/imports/controls/imagine/images/popup-background.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/popup-background@2x.9.png b/src/imports/controls/imagine/images/popup-background@2x.9.png
new file mode 100644
index 00000000..5127eab4
--- /dev/null
+++ b/src/imports/controls/imagine/images/popup-background@2x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/popup-background@3x.9.png b/src/imports/controls/imagine/images/popup-background@3x.9.png
new file mode 100644
index 00000000..42046abb
--- /dev/null
+++ b/src/imports/controls/imagine/images/popup-background@3x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/popup-background@4x.9.png b/src/imports/controls/imagine/images/popup-background@4x.9.png
new file mode 100644
index 00000000..a5841341
--- /dev/null
+++ b/src/imports/controls/imagine/images/popup-background@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/popup-overlay-modal.png b/src/imports/controls/imagine/images/popup-overlay-modal.png
new file mode 100644
index 00000000..3113bd99
--- /dev/null
+++ b/src/imports/controls/imagine/images/popup-overlay-modal.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/popup-overlay-modal@2x.png b/src/imports/controls/imagine/images/popup-overlay-modal@2x.png
new file mode 100644
index 00000000..0ad9ce6d
--- /dev/null
+++ b/src/imports/controls/imagine/images/popup-overlay-modal@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/popup-overlay-modal@3x.png b/src/imports/controls/imagine/images/popup-overlay-modal@3x.png
new file mode 100644
index 00000000..170607d9
--- /dev/null
+++ b/src/imports/controls/imagine/images/popup-overlay-modal@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/popup-overlay-modal@4x.png b/src/imports/controls/imagine/images/popup-overlay-modal@4x.png
new file mode 100644
index 00000000..8b4b974d
--- /dev/null
+++ b/src/imports/controls/imagine/images/popup-overlay-modal@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/popup-overlay.png b/src/imports/controls/imagine/images/popup-overlay.png
new file mode 100644
index 00000000..7a172720
--- /dev/null
+++ b/src/imports/controls/imagine/images/popup-overlay.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/popup-overlay@2x.png b/src/imports/controls/imagine/images/popup-overlay@2x.png
new file mode 100644
index 00000000..e8fb48ad
--- /dev/null
+++ b/src/imports/controls/imagine/images/popup-overlay@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/popup-overlay@3x.png b/src/imports/controls/imagine/images/popup-overlay@3x.png
new file mode 100644
index 00000000..1ea6204c
--- /dev/null
+++ b/src/imports/controls/imagine/images/popup-overlay@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/popup-overlay@4x.png b/src/imports/controls/imagine/images/popup-overlay@4x.png
new file mode 100644
index 00000000..cc4df170
--- /dev/null
+++ b/src/imports/controls/imagine/images/popup-overlay@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/progressbar-animation.webp b/src/imports/controls/imagine/images/progressbar-animation.webp
new file mode 100644
index 00000000..51c35c88
--- /dev/null
+++ b/src/imports/controls/imagine/images/progressbar-animation.webp
Binary files differ
diff --git a/src/imports/controls/imagine/images/progressbar-animation@2x.webp b/src/imports/controls/imagine/images/progressbar-animation@2x.webp
new file mode 100644
index 00000000..ee120630
--- /dev/null
+++ b/src/imports/controls/imagine/images/progressbar-animation@2x.webp
Binary files differ
diff --git a/src/imports/controls/imagine/images/progressbar-animation@3x.webp b/src/imports/controls/imagine/images/progressbar-animation@3x.webp
new file mode 100644
index 00000000..c2f94a74
--- /dev/null
+++ b/src/imports/controls/imagine/images/progressbar-animation@3x.webp
Binary files differ
diff --git a/src/imports/controls/imagine/images/progressbar-animation@4x.webp b/src/imports/controls/imagine/images/progressbar-animation@4x.webp
new file mode 100644
index 00000000..d49657e9
--- /dev/null
+++ b/src/imports/controls/imagine/images/progressbar-animation@4x.webp
Binary files differ
diff --git a/src/imports/controls/imagine/images/progressbar-background.9.png b/src/imports/controls/imagine/images/progressbar-background.9.png
new file mode 100644
index 00000000..87003ea3
--- /dev/null
+++ b/src/imports/controls/imagine/images/progressbar-background.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/progressbar-background@2x.9.png b/src/imports/controls/imagine/images/progressbar-background@2x.9.png
new file mode 100644
index 00000000..db16055f
--- /dev/null
+++ b/src/imports/controls/imagine/images/progressbar-background@2x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/progressbar-background@3x.9.png b/src/imports/controls/imagine/images/progressbar-background@3x.9.png
new file mode 100644
index 00000000..4a8264a6
--- /dev/null
+++ b/src/imports/controls/imagine/images/progressbar-background@3x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/progressbar-background@4x.9.png b/src/imports/controls/imagine/images/progressbar-background@4x.9.png
new file mode 100644
index 00000000..33626d99
--- /dev/null
+++ b/src/imports/controls/imagine/images/progressbar-background@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/progressbar-mask.9.png b/src/imports/controls/imagine/images/progressbar-mask.9.png
new file mode 100644
index 00000000..fd2355ac
--- /dev/null
+++ b/src/imports/controls/imagine/images/progressbar-mask.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/progressbar-mask@2x.9.png b/src/imports/controls/imagine/images/progressbar-mask@2x.9.png
new file mode 100644
index 00000000..cb046464
--- /dev/null
+++ b/src/imports/controls/imagine/images/progressbar-mask@2x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/progressbar-mask@3x.9.png b/src/imports/controls/imagine/images/progressbar-mask@3x.9.png
new file mode 100644
index 00000000..d2fcc04c
--- /dev/null
+++ b/src/imports/controls/imagine/images/progressbar-mask@3x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/progressbar-mask@4x.9.png b/src/imports/controls/imagine/images/progressbar-mask@4x.9.png
new file mode 100644
index 00000000..45ca4fbf
--- /dev/null
+++ b/src/imports/controls/imagine/images/progressbar-mask@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/progressbar-progress.png b/src/imports/controls/imagine/images/progressbar-progress.png
new file mode 100644
index 00000000..0311ce11
--- /dev/null
+++ b/src/imports/controls/imagine/images/progressbar-progress.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/progressbar-progress@2x.png b/src/imports/controls/imagine/images/progressbar-progress@2x.png
new file mode 100644
index 00000000..55fc5fdd
--- /dev/null
+++ b/src/imports/controls/imagine/images/progressbar-progress@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/progressbar-progress@3x.png b/src/imports/controls/imagine/images/progressbar-progress@3x.png
new file mode 100644
index 00000000..d8513cf8
--- /dev/null
+++ b/src/imports/controls/imagine/images/progressbar-progress@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/progressbar-progress@4x.png b/src/imports/controls/imagine/images/progressbar-progress@4x.png
new file mode 100644
index 00000000..abc8fa67
--- /dev/null
+++ b/src/imports/controls/imagine/images/progressbar-progress@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/radiobutton-indicator-checked-focused.png b/src/imports/controls/imagine/images/radiobutton-indicator-checked-focused.png
new file mode 100644
index 00000000..1be6da2f
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiobutton-indicator-checked-focused.png
Binary files differ
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
new file mode 100644
index 00000000..eb8dee7d
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiobutton-indicator-checked-focused@2x.png
Binary files differ
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
new file mode 100644
index 00000000..fcf18108
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiobutton-indicator-checked-focused@3x.png
Binary files differ
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
new file mode 100644
index 00000000..cb4f55e6
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiobutton-indicator-checked-focused@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/radiobutton-indicator-checked-hovered.png b/src/imports/controls/imagine/images/radiobutton-indicator-checked-hovered.png
new file mode 100644
index 00000000..1be6da2f
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiobutton-indicator-checked-hovered.png
Binary files differ
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
new file mode 100644
index 00000000..eb8dee7d
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiobutton-indicator-checked-hovered@2x.png
Binary files differ
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
new file mode 100644
index 00000000..fcf18108
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiobutton-indicator-checked-hovered@3x.png
Binary files differ
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
new file mode 100644
index 00000000..cb4f55e6
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiobutton-indicator-checked-hovered@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/radiobutton-indicator-checked-pressed.png b/src/imports/controls/imagine/images/radiobutton-indicator-checked-pressed.png
new file mode 100644
index 00000000..897a3453
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiobutton-indicator-checked-pressed.png
Binary files differ
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
new file mode 100644
index 00000000..9ae59133
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiobutton-indicator-checked-pressed@2x.png
Binary files differ
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
new file mode 100644
index 00000000..94cecc80
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiobutton-indicator-checked-pressed@3x.png
Binary files differ
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
new file mode 100644
index 00000000..f9699ec1
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiobutton-indicator-checked-pressed@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/radiobutton-indicator-checked.png b/src/imports/controls/imagine/images/radiobutton-indicator-checked.png
new file mode 100644
index 00000000..20a7fbc1
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiobutton-indicator-checked.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/radiobutton-indicator-checked@2x.png b/src/imports/controls/imagine/images/radiobutton-indicator-checked@2x.png
new file mode 100644
index 00000000..a868af81
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiobutton-indicator-checked@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/radiobutton-indicator-checked@3x.png b/src/imports/controls/imagine/images/radiobutton-indicator-checked@3x.png
new file mode 100644
index 00000000..89453cc2
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiobutton-indicator-checked@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/radiobutton-indicator-checked@4x.png b/src/imports/controls/imagine/images/radiobutton-indicator-checked@4x.png
new file mode 100644
index 00000000..ec8d0a85
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiobutton-indicator-checked@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/radiobutton-indicator-disabled.png b/src/imports/controls/imagine/images/radiobutton-indicator-disabled.png
new file mode 100644
index 00000000..f841e6b7
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiobutton-indicator-disabled.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/radiobutton-indicator-disabled@2x.png b/src/imports/controls/imagine/images/radiobutton-indicator-disabled@2x.png
new file mode 100644
index 00000000..dbea47e6
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiobutton-indicator-disabled@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/radiobutton-indicator-disabled@3x.png b/src/imports/controls/imagine/images/radiobutton-indicator-disabled@3x.png
new file mode 100644
index 00000000..e55dd3d5
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiobutton-indicator-disabled@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/radiobutton-indicator-disabled@4x.png b/src/imports/controls/imagine/images/radiobutton-indicator-disabled@4x.png
new file mode 100644
index 00000000..5d2daadc
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiobutton-indicator-disabled@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/radiobutton-indicator-focused.png b/src/imports/controls/imagine/images/radiobutton-indicator-focused.png
new file mode 100644
index 00000000..4f24fbfb
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiobutton-indicator-focused.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/radiobutton-indicator-focused@2x.png b/src/imports/controls/imagine/images/radiobutton-indicator-focused@2x.png
new file mode 100644
index 00000000..08861807
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiobutton-indicator-focused@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/radiobutton-indicator-focused@3x.png b/src/imports/controls/imagine/images/radiobutton-indicator-focused@3x.png
new file mode 100644
index 00000000..e4ba60ca
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiobutton-indicator-focused@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/radiobutton-indicator-focused@4x.png b/src/imports/controls/imagine/images/radiobutton-indicator-focused@4x.png
new file mode 100644
index 00000000..0aedcfac
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiobutton-indicator-focused@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/radiobutton-indicator-hovered.png b/src/imports/controls/imagine/images/radiobutton-indicator-hovered.png
new file mode 100644
index 00000000..4f24fbfb
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiobutton-indicator-hovered.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/radiobutton-indicator-hovered@2x.png b/src/imports/controls/imagine/images/radiobutton-indicator-hovered@2x.png
new file mode 100644
index 00000000..08861807
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiobutton-indicator-hovered@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/radiobutton-indicator-hovered@3x.png b/src/imports/controls/imagine/images/radiobutton-indicator-hovered@3x.png
new file mode 100644
index 00000000..e4ba60ca
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiobutton-indicator-hovered@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/radiobutton-indicator-hovered@4x.png b/src/imports/controls/imagine/images/radiobutton-indicator-hovered@4x.png
new file mode 100644
index 00000000..0aedcfac
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiobutton-indicator-hovered@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/radiobutton-indicator-pressed.png b/src/imports/controls/imagine/images/radiobutton-indicator-pressed.png
new file mode 100644
index 00000000..77643bce
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiobutton-indicator-pressed.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/radiobutton-indicator-pressed@2x.png b/src/imports/controls/imagine/images/radiobutton-indicator-pressed@2x.png
new file mode 100644
index 00000000..f7cc7332
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiobutton-indicator-pressed@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/radiobutton-indicator-pressed@3x.png b/src/imports/controls/imagine/images/radiobutton-indicator-pressed@3x.png
new file mode 100644
index 00000000..40c698ee
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiobutton-indicator-pressed@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/radiobutton-indicator-pressed@4x.png b/src/imports/controls/imagine/images/radiobutton-indicator-pressed@4x.png
new file mode 100644
index 00000000..ec1e6c40
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiobutton-indicator-pressed@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/radiobutton-indicator.png b/src/imports/controls/imagine/images/radiobutton-indicator.png
new file mode 100644
index 00000000..2914fae6
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiobutton-indicator.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/radiobutton-indicator@2x.png b/src/imports/controls/imagine/images/radiobutton-indicator@2x.png
new file mode 100644
index 00000000..f7f84db4
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiobutton-indicator@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/radiobutton-indicator@3x.png b/src/imports/controls/imagine/images/radiobutton-indicator@3x.png
new file mode 100644
index 00000000..65811cf6
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiobutton-indicator@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/radiobutton-indicator@4x.png b/src/imports/controls/imagine/images/radiobutton-indicator@4x.png
new file mode 100644
index 00000000..5cde89a1
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiobutton-indicator@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/radiodelegate-background-checked.9.png b/src/imports/controls/imagine/images/radiodelegate-background-checked.9.png
new file mode 100644
index 00000000..cef1bafa
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiodelegate-background-checked.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/radiodelegate-background-checked@2x.9.png b/src/imports/controls/imagine/images/radiodelegate-background-checked@2x.9.png
new file mode 100644
index 00000000..5a136a0c
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiodelegate-background-checked@2x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/radiodelegate-background-checked@3x.9.png b/src/imports/controls/imagine/images/radiodelegate-background-checked@3x.9.png
new file mode 100644
index 00000000..f47a366b
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiodelegate-background-checked@3x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/radiodelegate-background-checked@4x.9.png b/src/imports/controls/imagine/images/radiodelegate-background-checked@4x.9.png
new file mode 100644
index 00000000..9ecb680f
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiodelegate-background-checked@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/radiodelegate-background-disabled.9.png b/src/imports/controls/imagine/images/radiodelegate-background-disabled.9.png
new file mode 100644
index 00000000..ce48ee74
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiodelegate-background-disabled.9.png
Binary files differ
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
new file mode 100644
index 00000000..c7abb65c
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiodelegate-background-disabled@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..46b84d7d
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiodelegate-background-disabled@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..f4dfd338
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiodelegate-background-disabled@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/radiodelegate-background-focused.9.png b/src/imports/controls/imagine/images/radiodelegate-background-focused.9.png
new file mode 100644
index 00000000..39fa8664
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiodelegate-background-focused.9.png
Binary files differ
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
new file mode 100644
index 00000000..6b61562c
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiodelegate-background-focused@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..e46c0bf1
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiodelegate-background-focused@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..010444e8
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiodelegate-background-focused@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/radiodelegate-background-hovered.9.png b/src/imports/controls/imagine/images/radiodelegate-background-hovered.9.png
new file mode 100644
index 00000000..cef1bafa
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiodelegate-background-hovered.9.png
Binary files differ
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
new file mode 100644
index 00000000..5a136a0c
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiodelegate-background-hovered@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..f47a366b
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiodelegate-background-hovered@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..9ecb680f
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiodelegate-background-hovered@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/radiodelegate-background-pressed.9.png b/src/imports/controls/imagine/images/radiodelegate-background-pressed.9.png
new file mode 100644
index 00000000..39fa8664
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiodelegate-background-pressed.9.png
Binary files differ
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
new file mode 100644
index 00000000..6b61562c
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiodelegate-background-pressed@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..e46c0bf1
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiodelegate-background-pressed@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..010444e8
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiodelegate-background-pressed@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/radiodelegate-background.9.png b/src/imports/controls/imagine/images/radiodelegate-background.9.png
new file mode 100644
index 00000000..cef1bafa
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiodelegate-background.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/radiodelegate-background@2x.9.png b/src/imports/controls/imagine/images/radiodelegate-background@2x.9.png
new file mode 100644
index 00000000..5a136a0c
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiodelegate-background@2x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/radiodelegate-background@3x.9.png b/src/imports/controls/imagine/images/radiodelegate-background@3x.9.png
new file mode 100644
index 00000000..f47a366b
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiodelegate-background@3x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/radiodelegate-background@4x.9.png b/src/imports/controls/imagine/images/radiodelegate-background@4x.9.png
new file mode 100644
index 00000000..9ecb680f
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiodelegate-background@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/radiodelegate-indicator-checked-focused.png b/src/imports/controls/imagine/images/radiodelegate-indicator-checked-focused.png
new file mode 100644
index 00000000..1be6da2f
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiodelegate-indicator-checked-focused.png
Binary files differ
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
new file mode 100644
index 00000000..eb8dee7d
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiodelegate-indicator-checked-focused@2x.png
Binary files differ
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
new file mode 100644
index 00000000..fcf18108
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiodelegate-indicator-checked-focused@3x.png
Binary files differ
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
new file mode 100644
index 00000000..cb4f55e6
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiodelegate-indicator-checked-focused@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/radiodelegate-indicator-checked-hovered.png b/src/imports/controls/imagine/images/radiodelegate-indicator-checked-hovered.png
new file mode 100644
index 00000000..1be6da2f
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiodelegate-indicator-checked-hovered.png
Binary files differ
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
new file mode 100644
index 00000000..eb8dee7d
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiodelegate-indicator-checked-hovered@2x.png
Binary files differ
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
new file mode 100644
index 00000000..fcf18108
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiodelegate-indicator-checked-hovered@3x.png
Binary files differ
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
new file mode 100644
index 00000000..cb4f55e6
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiodelegate-indicator-checked-hovered@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/radiodelegate-indicator-checked-pressed.png b/src/imports/controls/imagine/images/radiodelegate-indicator-checked-pressed.png
new file mode 100644
index 00000000..897a3453
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiodelegate-indicator-checked-pressed.png
Binary files differ
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
new file mode 100644
index 00000000..9ae59133
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiodelegate-indicator-checked-pressed@2x.png
Binary files differ
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
new file mode 100644
index 00000000..94cecc80
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiodelegate-indicator-checked-pressed@3x.png
Binary files differ
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
new file mode 100644
index 00000000..f9699ec1
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiodelegate-indicator-checked-pressed@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/radiodelegate-indicator-checked.png b/src/imports/controls/imagine/images/radiodelegate-indicator-checked.png
new file mode 100644
index 00000000..20a7fbc1
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiodelegate-indicator-checked.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/radiodelegate-indicator-checked@2x.png b/src/imports/controls/imagine/images/radiodelegate-indicator-checked@2x.png
new file mode 100644
index 00000000..a868af81
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiodelegate-indicator-checked@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/radiodelegate-indicator-checked@3x.png b/src/imports/controls/imagine/images/radiodelegate-indicator-checked@3x.png
new file mode 100644
index 00000000..89453cc2
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiodelegate-indicator-checked@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/radiodelegate-indicator-checked@4x.png b/src/imports/controls/imagine/images/radiodelegate-indicator-checked@4x.png
new file mode 100644
index 00000000..ec8d0a85
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiodelegate-indicator-checked@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/radiodelegate-indicator-disabled.png b/src/imports/controls/imagine/images/radiodelegate-indicator-disabled.png
new file mode 100644
index 00000000..f841e6b7
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiodelegate-indicator-disabled.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/radiodelegate-indicator-disabled@2x.png b/src/imports/controls/imagine/images/radiodelegate-indicator-disabled@2x.png
new file mode 100644
index 00000000..dbea47e6
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiodelegate-indicator-disabled@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/radiodelegate-indicator-disabled@3x.png b/src/imports/controls/imagine/images/radiodelegate-indicator-disabled@3x.png
new file mode 100644
index 00000000..e55dd3d5
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiodelegate-indicator-disabled@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/radiodelegate-indicator-disabled@4x.png b/src/imports/controls/imagine/images/radiodelegate-indicator-disabled@4x.png
new file mode 100644
index 00000000..5d2daadc
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiodelegate-indicator-disabled@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/radiodelegate-indicator-focused.png b/src/imports/controls/imagine/images/radiodelegate-indicator-focused.png
new file mode 100644
index 00000000..4f24fbfb
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiodelegate-indicator-focused.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/radiodelegate-indicator-focused@2x.png b/src/imports/controls/imagine/images/radiodelegate-indicator-focused@2x.png
new file mode 100644
index 00000000..08861807
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiodelegate-indicator-focused@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/radiodelegate-indicator-focused@3x.png b/src/imports/controls/imagine/images/radiodelegate-indicator-focused@3x.png
new file mode 100644
index 00000000..e4ba60ca
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiodelegate-indicator-focused@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/radiodelegate-indicator-focused@4x.png b/src/imports/controls/imagine/images/radiodelegate-indicator-focused@4x.png
new file mode 100644
index 00000000..0aedcfac
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiodelegate-indicator-focused@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/radiodelegate-indicator-hovered.png b/src/imports/controls/imagine/images/radiodelegate-indicator-hovered.png
new file mode 100644
index 00000000..4f24fbfb
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiodelegate-indicator-hovered.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/radiodelegate-indicator-hovered@2x.png b/src/imports/controls/imagine/images/radiodelegate-indicator-hovered@2x.png
new file mode 100644
index 00000000..08861807
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiodelegate-indicator-hovered@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/radiodelegate-indicator-hovered@3x.png b/src/imports/controls/imagine/images/radiodelegate-indicator-hovered@3x.png
new file mode 100644
index 00000000..e4ba60ca
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiodelegate-indicator-hovered@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/radiodelegate-indicator-hovered@4x.png b/src/imports/controls/imagine/images/radiodelegate-indicator-hovered@4x.png
new file mode 100644
index 00000000..0aedcfac
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiodelegate-indicator-hovered@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/radiodelegate-indicator-pressed.png b/src/imports/controls/imagine/images/radiodelegate-indicator-pressed.png
new file mode 100644
index 00000000..77643bce
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiodelegate-indicator-pressed.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/radiodelegate-indicator-pressed@2x.png b/src/imports/controls/imagine/images/radiodelegate-indicator-pressed@2x.png
new file mode 100644
index 00000000..f7cc7332
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiodelegate-indicator-pressed@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/radiodelegate-indicator-pressed@3x.png b/src/imports/controls/imagine/images/radiodelegate-indicator-pressed@3x.png
new file mode 100644
index 00000000..40c698ee
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiodelegate-indicator-pressed@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/radiodelegate-indicator-pressed@4x.png b/src/imports/controls/imagine/images/radiodelegate-indicator-pressed@4x.png
new file mode 100644
index 00000000..ec1e6c40
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiodelegate-indicator-pressed@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/radiodelegate-indicator.png b/src/imports/controls/imagine/images/radiodelegate-indicator.png
new file mode 100644
index 00000000..2914fae6
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiodelegate-indicator.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/radiodelegate-indicator@2x.png b/src/imports/controls/imagine/images/radiodelegate-indicator@2x.png
new file mode 100644
index 00000000..f7f84db4
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiodelegate-indicator@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/radiodelegate-indicator@3x.png b/src/imports/controls/imagine/images/radiodelegate-indicator@3x.png
new file mode 100644
index 00000000..65811cf6
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiodelegate-indicator@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/radiodelegate-indicator@4x.png b/src/imports/controls/imagine/images/radiodelegate-indicator@4x.png
new file mode 100644
index 00000000..5cde89a1
--- /dev/null
+++ b/src/imports/controls/imagine/images/radiodelegate-indicator@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/rangeslider-background-horizontal.9.png b/src/imports/controls/imagine/images/rangeslider-background-horizontal.9.png
new file mode 100644
index 00000000..15bb3445
--- /dev/null
+++ b/src/imports/controls/imagine/images/rangeslider-background-horizontal.9.png
Binary files differ
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
new file mode 100644
index 00000000..3d03e1e7
--- /dev/null
+++ b/src/imports/controls/imagine/images/rangeslider-background-horizontal@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..301c2562
--- /dev/null
+++ b/src/imports/controls/imagine/images/rangeslider-background-horizontal@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..4221018b
--- /dev/null
+++ b/src/imports/controls/imagine/images/rangeslider-background-horizontal@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/rangeslider-background-vertical.9.png b/src/imports/controls/imagine/images/rangeslider-background-vertical.9.png
new file mode 100644
index 00000000..f2c5f90e
--- /dev/null
+++ b/src/imports/controls/imagine/images/rangeslider-background-vertical.9.png
Binary files differ
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
new file mode 100644
index 00000000..1318a6f3
--- /dev/null
+++ b/src/imports/controls/imagine/images/rangeslider-background-vertical@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..20b5c99a
--- /dev/null
+++ b/src/imports/controls/imagine/images/rangeslider-background-vertical@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..36b55661
--- /dev/null
+++ b/src/imports/controls/imagine/images/rangeslider-background-vertical@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/rangeslider-handle-disabled.png b/src/imports/controls/imagine/images/rangeslider-handle-disabled.png
new file mode 100644
index 00000000..25138580
--- /dev/null
+++ b/src/imports/controls/imagine/images/rangeslider-handle-disabled.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/rangeslider-handle-disabled@2x.png b/src/imports/controls/imagine/images/rangeslider-handle-disabled@2x.png
new file mode 100644
index 00000000..cf3f67fe
--- /dev/null
+++ b/src/imports/controls/imagine/images/rangeslider-handle-disabled@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/rangeslider-handle-disabled@3x.png b/src/imports/controls/imagine/images/rangeslider-handle-disabled@3x.png
new file mode 100644
index 00000000..c0814aa9
--- /dev/null
+++ b/src/imports/controls/imagine/images/rangeslider-handle-disabled@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/rangeslider-handle-disabled@4x.png b/src/imports/controls/imagine/images/rangeslider-handle-disabled@4x.png
new file mode 100644
index 00000000..6a6d9da3
--- /dev/null
+++ b/src/imports/controls/imagine/images/rangeslider-handle-disabled@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/rangeslider-handle-focused-hovered.png b/src/imports/controls/imagine/images/rangeslider-handle-focused-hovered.png
new file mode 100644
index 00000000..b4979b53
--- /dev/null
+++ b/src/imports/controls/imagine/images/rangeslider-handle-focused-hovered.png
Binary files differ
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
new file mode 100644
index 00000000..bb23d803
--- /dev/null
+++ b/src/imports/controls/imagine/images/rangeslider-handle-focused-hovered@2x.png
Binary files differ
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
new file mode 100644
index 00000000..7f336dc2
--- /dev/null
+++ b/src/imports/controls/imagine/images/rangeslider-handle-focused-hovered@3x.png
Binary files differ
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
new file mode 100644
index 00000000..b6d9611d
--- /dev/null
+++ b/src/imports/controls/imagine/images/rangeslider-handle-focused-hovered@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/rangeslider-handle-focused-pressed.png b/src/imports/controls/imagine/images/rangeslider-handle-focused-pressed.png
new file mode 100644
index 00000000..635eb024
--- /dev/null
+++ b/src/imports/controls/imagine/images/rangeslider-handle-focused-pressed.png
Binary files differ
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
new file mode 100644
index 00000000..4134f02c
--- /dev/null
+++ b/src/imports/controls/imagine/images/rangeslider-handle-focused-pressed@2x.png
Binary files differ
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
new file mode 100644
index 00000000..3e667643
--- /dev/null
+++ b/src/imports/controls/imagine/images/rangeslider-handle-focused-pressed@3x.png
Binary files differ
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
new file mode 100644
index 00000000..e2be77f3
--- /dev/null
+++ b/src/imports/controls/imagine/images/rangeslider-handle-focused-pressed@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/rangeslider-handle-focused.png b/src/imports/controls/imagine/images/rangeslider-handle-focused.png
new file mode 100644
index 00000000..03c23d68
--- /dev/null
+++ b/src/imports/controls/imagine/images/rangeslider-handle-focused.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/rangeslider-handle-focused@2x.png b/src/imports/controls/imagine/images/rangeslider-handle-focused@2x.png
new file mode 100644
index 00000000..2efb4932
--- /dev/null
+++ b/src/imports/controls/imagine/images/rangeslider-handle-focused@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/rangeslider-handle-focused@3x.png b/src/imports/controls/imagine/images/rangeslider-handle-focused@3x.png
new file mode 100644
index 00000000..51363323
--- /dev/null
+++ b/src/imports/controls/imagine/images/rangeslider-handle-focused@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/rangeslider-handle-focused@4x.png b/src/imports/controls/imagine/images/rangeslider-handle-focused@4x.png
new file mode 100644
index 00000000..68a58ee4
--- /dev/null
+++ b/src/imports/controls/imagine/images/rangeslider-handle-focused@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/rangeslider-handle-hovered.png b/src/imports/controls/imagine/images/rangeslider-handle-hovered.png
new file mode 100644
index 00000000..e2d89d4f
--- /dev/null
+++ b/src/imports/controls/imagine/images/rangeslider-handle-hovered.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/rangeslider-handle-hovered@2x.png b/src/imports/controls/imagine/images/rangeslider-handle-hovered@2x.png
new file mode 100644
index 00000000..ade1f99d
--- /dev/null
+++ b/src/imports/controls/imagine/images/rangeslider-handle-hovered@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/rangeslider-handle-hovered@3x.png b/src/imports/controls/imagine/images/rangeslider-handle-hovered@3x.png
new file mode 100644
index 00000000..ad5ee70a
--- /dev/null
+++ b/src/imports/controls/imagine/images/rangeslider-handle-hovered@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/rangeslider-handle-hovered@4x.png b/src/imports/controls/imagine/images/rangeslider-handle-hovered@4x.png
new file mode 100644
index 00000000..a0970f90
--- /dev/null
+++ b/src/imports/controls/imagine/images/rangeslider-handle-hovered@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/rangeslider-handle-pressed.png b/src/imports/controls/imagine/images/rangeslider-handle-pressed.png
new file mode 100644
index 00000000..25138580
--- /dev/null
+++ b/src/imports/controls/imagine/images/rangeslider-handle-pressed.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/rangeslider-handle-pressed@2x.png b/src/imports/controls/imagine/images/rangeslider-handle-pressed@2x.png
new file mode 100644
index 00000000..cf3f67fe
--- /dev/null
+++ b/src/imports/controls/imagine/images/rangeslider-handle-pressed@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/rangeslider-handle-pressed@3x.png b/src/imports/controls/imagine/images/rangeslider-handle-pressed@3x.png
new file mode 100644
index 00000000..c0814aa9
--- /dev/null
+++ b/src/imports/controls/imagine/images/rangeslider-handle-pressed@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/rangeslider-handle-pressed@4x.png b/src/imports/controls/imagine/images/rangeslider-handle-pressed@4x.png
new file mode 100644
index 00000000..6a6d9da3
--- /dev/null
+++ b/src/imports/controls/imagine/images/rangeslider-handle-pressed@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/rangeslider-handle.png b/src/imports/controls/imagine/images/rangeslider-handle.png
new file mode 100644
index 00000000..f60f6da1
--- /dev/null
+++ b/src/imports/controls/imagine/images/rangeslider-handle.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/rangeslider-handle@2x.png b/src/imports/controls/imagine/images/rangeslider-handle@2x.png
new file mode 100644
index 00000000..cd125824
--- /dev/null
+++ b/src/imports/controls/imagine/images/rangeslider-handle@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/rangeslider-handle@3x.png b/src/imports/controls/imagine/images/rangeslider-handle@3x.png
new file mode 100644
index 00000000..9836bd2c
--- /dev/null
+++ b/src/imports/controls/imagine/images/rangeslider-handle@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/rangeslider-handle@4x.png b/src/imports/controls/imagine/images/rangeslider-handle@4x.png
new file mode 100644
index 00000000..a465f239
--- /dev/null
+++ b/src/imports/controls/imagine/images/rangeslider-handle@4x.png
Binary files differ
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
new file mode 100644
index 00000000..bee9547d
--- /dev/null
+++ b/src/imports/controls/imagine/images/rangeslider-progress-horizontal-disabled.9.png
Binary files differ
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
new file mode 100644
index 00000000..ceed0464
--- /dev/null
+++ b/src/imports/controls/imagine/images/rangeslider-progress-horizontal-disabled@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..502d04b7
--- /dev/null
+++ b/src/imports/controls/imagine/images/rangeslider-progress-horizontal-disabled@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..aa70191c
--- /dev/null
+++ b/src/imports/controls/imagine/images/rangeslider-progress-horizontal-disabled@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/rangeslider-progress-horizontal.9.png b/src/imports/controls/imagine/images/rangeslider-progress-horizontal.9.png
new file mode 100644
index 00000000..a618468e
--- /dev/null
+++ b/src/imports/controls/imagine/images/rangeslider-progress-horizontal.9.png
Binary files differ
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
new file mode 100644
index 00000000..587dc96f
--- /dev/null
+++ b/src/imports/controls/imagine/images/rangeslider-progress-horizontal@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..9163bc71
--- /dev/null
+++ b/src/imports/controls/imagine/images/rangeslider-progress-horizontal@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..7c833b08
--- /dev/null
+++ b/src/imports/controls/imagine/images/rangeslider-progress-horizontal@4x.9.png
Binary files differ
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
new file mode 100644
index 00000000..7327188d
--- /dev/null
+++ b/src/imports/controls/imagine/images/rangeslider-progress-vertical-disabled.9.png
Binary files differ
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
new file mode 100644
index 00000000..d0659595
--- /dev/null
+++ b/src/imports/controls/imagine/images/rangeslider-progress-vertical-disabled@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..225adb29
--- /dev/null
+++ b/src/imports/controls/imagine/images/rangeslider-progress-vertical-disabled@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..d738587b
--- /dev/null
+++ b/src/imports/controls/imagine/images/rangeslider-progress-vertical-disabled@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/rangeslider-progress-vertical.9.png b/src/imports/controls/imagine/images/rangeslider-progress-vertical.9.png
new file mode 100644
index 00000000..d11d31d1
--- /dev/null
+++ b/src/imports/controls/imagine/images/rangeslider-progress-vertical.9.png
Binary files differ
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
new file mode 100644
index 00000000..cedd14e5
--- /dev/null
+++ b/src/imports/controls/imagine/images/rangeslider-progress-vertical@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..7f144fe1
--- /dev/null
+++ b/src/imports/controls/imagine/images/rangeslider-progress-vertical@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..413883a1
--- /dev/null
+++ b/src/imports/controls/imagine/images/rangeslider-progress-vertical@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/roundbutton-background-checked-focused.png b/src/imports/controls/imagine/images/roundbutton-background-checked-focused.png
new file mode 100644
index 00000000..5f201a8e
--- /dev/null
+++ b/src/imports/controls/imagine/images/roundbutton-background-checked-focused.png
Binary files differ
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
new file mode 100644
index 00000000..2280e5a8
--- /dev/null
+++ b/src/imports/controls/imagine/images/roundbutton-background-checked-focused@2x.png
Binary files differ
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
new file mode 100644
index 00000000..e263ab81
--- /dev/null
+++ b/src/imports/controls/imagine/images/roundbutton-background-checked-focused@3x.png
Binary files differ
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
new file mode 100644
index 00000000..08ee587c
--- /dev/null
+++ b/src/imports/controls/imagine/images/roundbutton-background-checked-focused@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/roundbutton-background-checked-hovered.png b/src/imports/controls/imagine/images/roundbutton-background-checked-hovered.png
new file mode 100644
index 00000000..5f201a8e
--- /dev/null
+++ b/src/imports/controls/imagine/images/roundbutton-background-checked-hovered.png
Binary files differ
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
new file mode 100644
index 00000000..2280e5a8
--- /dev/null
+++ b/src/imports/controls/imagine/images/roundbutton-background-checked-hovered@2x.png
Binary files differ
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
new file mode 100644
index 00000000..e263ab81
--- /dev/null
+++ b/src/imports/controls/imagine/images/roundbutton-background-checked-hovered@3x.png
Binary files differ
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
new file mode 100644
index 00000000..08ee587c
--- /dev/null
+++ b/src/imports/controls/imagine/images/roundbutton-background-checked-hovered@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/roundbutton-background-checked.png b/src/imports/controls/imagine/images/roundbutton-background-checked.png
new file mode 100644
index 00000000..1cf540bf
--- /dev/null
+++ b/src/imports/controls/imagine/images/roundbutton-background-checked.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/roundbutton-background-checked@2x.png b/src/imports/controls/imagine/images/roundbutton-background-checked@2x.png
new file mode 100644
index 00000000..7f4e414a
--- /dev/null
+++ b/src/imports/controls/imagine/images/roundbutton-background-checked@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/roundbutton-background-checked@3x.png b/src/imports/controls/imagine/images/roundbutton-background-checked@3x.png
new file mode 100644
index 00000000..b896b9a9
--- /dev/null
+++ b/src/imports/controls/imagine/images/roundbutton-background-checked@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/roundbutton-background-checked@4x.png b/src/imports/controls/imagine/images/roundbutton-background-checked@4x.png
new file mode 100644
index 00000000..7eca6055
--- /dev/null
+++ b/src/imports/controls/imagine/images/roundbutton-background-checked@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/roundbutton-background-disabled-checked.png b/src/imports/controls/imagine/images/roundbutton-background-disabled-checked.png
new file mode 100644
index 00000000..dbea47e6
--- /dev/null
+++ b/src/imports/controls/imagine/images/roundbutton-background-disabled-checked.png
Binary files differ
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
new file mode 100644
index 00000000..5d2daadc
--- /dev/null
+++ b/src/imports/controls/imagine/images/roundbutton-background-disabled-checked@2x.png
Binary files differ
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
new file mode 100644
index 00000000..af159453
--- /dev/null
+++ b/src/imports/controls/imagine/images/roundbutton-background-disabled-checked@3x.png
Binary files differ
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
new file mode 100644
index 00000000..5b9265de
--- /dev/null
+++ b/src/imports/controls/imagine/images/roundbutton-background-disabled-checked@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/roundbutton-background-disabled.png b/src/imports/controls/imagine/images/roundbutton-background-disabled.png
new file mode 100644
index 00000000..dbea47e6
--- /dev/null
+++ b/src/imports/controls/imagine/images/roundbutton-background-disabled.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/roundbutton-background-disabled@2x.png b/src/imports/controls/imagine/images/roundbutton-background-disabled@2x.png
new file mode 100644
index 00000000..5d2daadc
--- /dev/null
+++ b/src/imports/controls/imagine/images/roundbutton-background-disabled@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/roundbutton-background-disabled@3x.png b/src/imports/controls/imagine/images/roundbutton-background-disabled@3x.png
new file mode 100644
index 00000000..af159453
--- /dev/null
+++ b/src/imports/controls/imagine/images/roundbutton-background-disabled@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/roundbutton-background-disabled@4x.png b/src/imports/controls/imagine/images/roundbutton-background-disabled@4x.png
new file mode 100644
index 00000000..5b9265de
--- /dev/null
+++ b/src/imports/controls/imagine/images/roundbutton-background-disabled@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/roundbutton-background-focused.png b/src/imports/controls/imagine/images/roundbutton-background-focused.png
new file mode 100644
index 00000000..6463712b
--- /dev/null
+++ b/src/imports/controls/imagine/images/roundbutton-background-focused.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/roundbutton-background-focused@2x.png b/src/imports/controls/imagine/images/roundbutton-background-focused@2x.png
new file mode 100644
index 00000000..0f6328fa
--- /dev/null
+++ b/src/imports/controls/imagine/images/roundbutton-background-focused@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/roundbutton-background-focused@3x.png b/src/imports/controls/imagine/images/roundbutton-background-focused@3x.png
new file mode 100644
index 00000000..9c54a505
--- /dev/null
+++ b/src/imports/controls/imagine/images/roundbutton-background-focused@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/roundbutton-background-focused@4x.png b/src/imports/controls/imagine/images/roundbutton-background-focused@4x.png
new file mode 100644
index 00000000..487ac9c2
--- /dev/null
+++ b/src/imports/controls/imagine/images/roundbutton-background-focused@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/roundbutton-background-highlighted-focused.png b/src/imports/controls/imagine/images/roundbutton-background-highlighted-focused.png
new file mode 100644
index 00000000..0733e0d7
--- /dev/null
+++ b/src/imports/controls/imagine/images/roundbutton-background-highlighted-focused.png
Binary files differ
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
new file mode 100644
index 00000000..b68ef94b
--- /dev/null
+++ b/src/imports/controls/imagine/images/roundbutton-background-highlighted-focused@2x.png
Binary files differ
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
new file mode 100644
index 00000000..c154da07
--- /dev/null
+++ b/src/imports/controls/imagine/images/roundbutton-background-highlighted-focused@3x.png
Binary files differ
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
new file mode 100644
index 00000000..21d75716
--- /dev/null
+++ b/src/imports/controls/imagine/images/roundbutton-background-highlighted-focused@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/roundbutton-background-highlighted-hovered.png b/src/imports/controls/imagine/images/roundbutton-background-highlighted-hovered.png
new file mode 100644
index 00000000..0733e0d7
--- /dev/null
+++ b/src/imports/controls/imagine/images/roundbutton-background-highlighted-hovered.png
Binary files differ
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
new file mode 100644
index 00000000..b68ef94b
--- /dev/null
+++ b/src/imports/controls/imagine/images/roundbutton-background-highlighted-hovered@2x.png
Binary files differ
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
new file mode 100644
index 00000000..c154da07
--- /dev/null
+++ b/src/imports/controls/imagine/images/roundbutton-background-highlighted-hovered@3x.png
Binary files differ
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
new file mode 100644
index 00000000..21d75716
--- /dev/null
+++ b/src/imports/controls/imagine/images/roundbutton-background-highlighted-hovered@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/roundbutton-background-highlighted-pressed.png b/src/imports/controls/imagine/images/roundbutton-background-highlighted-pressed.png
new file mode 100644
index 00000000..a743679c
--- /dev/null
+++ b/src/imports/controls/imagine/images/roundbutton-background-highlighted-pressed.png
Binary files differ
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
new file mode 100644
index 00000000..bbebd799
--- /dev/null
+++ b/src/imports/controls/imagine/images/roundbutton-background-highlighted-pressed@2x.png
Binary files differ
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
new file mode 100644
index 00000000..0302453b
--- /dev/null
+++ b/src/imports/controls/imagine/images/roundbutton-background-highlighted-pressed@3x.png
Binary files differ
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
new file mode 100644
index 00000000..266899c4
--- /dev/null
+++ b/src/imports/controls/imagine/images/roundbutton-background-highlighted-pressed@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/roundbutton-background-highlighted.png b/src/imports/controls/imagine/images/roundbutton-background-highlighted.png
new file mode 100644
index 00000000..4e75d76c
--- /dev/null
+++ b/src/imports/controls/imagine/images/roundbutton-background-highlighted.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/roundbutton-background-highlighted@2x.png b/src/imports/controls/imagine/images/roundbutton-background-highlighted@2x.png
new file mode 100644
index 00000000..89b1d6f6
--- /dev/null
+++ b/src/imports/controls/imagine/images/roundbutton-background-highlighted@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/roundbutton-background-highlighted@3x.png b/src/imports/controls/imagine/images/roundbutton-background-highlighted@3x.png
new file mode 100644
index 00000000..0575aff6
--- /dev/null
+++ b/src/imports/controls/imagine/images/roundbutton-background-highlighted@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/roundbutton-background-highlighted@4x.png b/src/imports/controls/imagine/images/roundbutton-background-highlighted@4x.png
new file mode 100644
index 00000000..7ee9159f
--- /dev/null
+++ b/src/imports/controls/imagine/images/roundbutton-background-highlighted@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/roundbutton-background-hovered.png b/src/imports/controls/imagine/images/roundbutton-background-hovered.png
new file mode 100644
index 00000000..6463712b
--- /dev/null
+++ b/src/imports/controls/imagine/images/roundbutton-background-hovered.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/roundbutton-background-hovered@2x.png b/src/imports/controls/imagine/images/roundbutton-background-hovered@2x.png
new file mode 100644
index 00000000..0f6328fa
--- /dev/null
+++ b/src/imports/controls/imagine/images/roundbutton-background-hovered@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/roundbutton-background-hovered@3x.png b/src/imports/controls/imagine/images/roundbutton-background-hovered@3x.png
new file mode 100644
index 00000000..9c54a505
--- /dev/null
+++ b/src/imports/controls/imagine/images/roundbutton-background-hovered@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/roundbutton-background-hovered@4x.png b/src/imports/controls/imagine/images/roundbutton-background-hovered@4x.png
new file mode 100644
index 00000000..487ac9c2
--- /dev/null
+++ b/src/imports/controls/imagine/images/roundbutton-background-hovered@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/roundbutton-background-pressed.png b/src/imports/controls/imagine/images/roundbutton-background-pressed.png
new file mode 100644
index 00000000..1cf540bf
--- /dev/null
+++ b/src/imports/controls/imagine/images/roundbutton-background-pressed.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/roundbutton-background-pressed@2x.png b/src/imports/controls/imagine/images/roundbutton-background-pressed@2x.png
new file mode 100644
index 00000000..7f4e414a
--- /dev/null
+++ b/src/imports/controls/imagine/images/roundbutton-background-pressed@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/roundbutton-background-pressed@3x.png b/src/imports/controls/imagine/images/roundbutton-background-pressed@3x.png
new file mode 100644
index 00000000..b896b9a9
--- /dev/null
+++ b/src/imports/controls/imagine/images/roundbutton-background-pressed@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/roundbutton-background-pressed@4x.png b/src/imports/controls/imagine/images/roundbutton-background-pressed@4x.png
new file mode 100644
index 00000000..7eca6055
--- /dev/null
+++ b/src/imports/controls/imagine/images/roundbutton-background-pressed@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/roundbutton-background.png b/src/imports/controls/imagine/images/roundbutton-background.png
new file mode 100644
index 00000000..f7cc7332
--- /dev/null
+++ b/src/imports/controls/imagine/images/roundbutton-background.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/roundbutton-background@2x.png b/src/imports/controls/imagine/images/roundbutton-background@2x.png
new file mode 100644
index 00000000..ec1e6c40
--- /dev/null
+++ b/src/imports/controls/imagine/images/roundbutton-background@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/roundbutton-background@3x.png b/src/imports/controls/imagine/images/roundbutton-background@3x.png
new file mode 100644
index 00000000..971ff0b5
--- /dev/null
+++ b/src/imports/controls/imagine/images/roundbutton-background@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/roundbutton-background@4x.png b/src/imports/controls/imagine/images/roundbutton-background@4x.png
new file mode 100644
index 00000000..d8443545
--- /dev/null
+++ b/src/imports/controls/imagine/images/roundbutton-background@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/scrollbar-handle-disabled.png b/src/imports/controls/imagine/images/scrollbar-handle-disabled.png
new file mode 100644
index 00000000..a6ee16bf
--- /dev/null
+++ b/src/imports/controls/imagine/images/scrollbar-handle-disabled.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/scrollbar-handle-disabled@2x.png b/src/imports/controls/imagine/images/scrollbar-handle-disabled@2x.png
new file mode 100644
index 00000000..5105af6e
--- /dev/null
+++ b/src/imports/controls/imagine/images/scrollbar-handle-disabled@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/scrollbar-handle-disabled@3x.png b/src/imports/controls/imagine/images/scrollbar-handle-disabled@3x.png
new file mode 100644
index 00000000..92f235b3
--- /dev/null
+++ b/src/imports/controls/imagine/images/scrollbar-handle-disabled@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/scrollbar-handle-disabled@4x.png b/src/imports/controls/imagine/images/scrollbar-handle-disabled@4x.png
new file mode 100644
index 00000000..2584d3db
--- /dev/null
+++ b/src/imports/controls/imagine/images/scrollbar-handle-disabled@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/scrollbar-handle-interactive-disabled.png b/src/imports/controls/imagine/images/scrollbar-handle-interactive-disabled.png
new file mode 100644
index 00000000..8e3b88d5
--- /dev/null
+++ b/src/imports/controls/imagine/images/scrollbar-handle-interactive-disabled.png
Binary files differ
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
new file mode 100644
index 00000000..abc3d2c0
--- /dev/null
+++ b/src/imports/controls/imagine/images/scrollbar-handle-interactive-disabled@2x.png
Binary files differ
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
new file mode 100644
index 00000000..e215cf5b
--- /dev/null
+++ b/src/imports/controls/imagine/images/scrollbar-handle-interactive-disabled@3x.png
Binary files differ
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
new file mode 100644
index 00000000..c6ec0520
--- /dev/null
+++ b/src/imports/controls/imagine/images/scrollbar-handle-interactive-disabled@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/scrollbar-handle-interactive-hovered.png b/src/imports/controls/imagine/images/scrollbar-handle-interactive-hovered.png
new file mode 100644
index 00000000..670979e0
--- /dev/null
+++ b/src/imports/controls/imagine/images/scrollbar-handle-interactive-hovered.png
Binary files differ
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
new file mode 100644
index 00000000..8f5abb84
--- /dev/null
+++ b/src/imports/controls/imagine/images/scrollbar-handle-interactive-hovered@2x.png
Binary files differ
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
new file mode 100644
index 00000000..73963d75
--- /dev/null
+++ b/src/imports/controls/imagine/images/scrollbar-handle-interactive-hovered@3x.png
Binary files differ
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
new file mode 100644
index 00000000..04d6131e
--- /dev/null
+++ b/src/imports/controls/imagine/images/scrollbar-handle-interactive-hovered@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/scrollbar-handle-interactive-pressed.png b/src/imports/controls/imagine/images/scrollbar-handle-interactive-pressed.png
new file mode 100644
index 00000000..8af97568
--- /dev/null
+++ b/src/imports/controls/imagine/images/scrollbar-handle-interactive-pressed.png
Binary files differ
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
new file mode 100644
index 00000000..63459b00
--- /dev/null
+++ b/src/imports/controls/imagine/images/scrollbar-handle-interactive-pressed@2x.png
Binary files differ
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
new file mode 100644
index 00000000..81003729
--- /dev/null
+++ b/src/imports/controls/imagine/images/scrollbar-handle-interactive-pressed@3x.png
Binary files differ
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
new file mode 100644
index 00000000..a137eda0
--- /dev/null
+++ b/src/imports/controls/imagine/images/scrollbar-handle-interactive-pressed@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/scrollbar-handle-interactive.png b/src/imports/controls/imagine/images/scrollbar-handle-interactive.png
new file mode 100644
index 00000000..55b60d27
--- /dev/null
+++ b/src/imports/controls/imagine/images/scrollbar-handle-interactive.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/scrollbar-handle-interactive@2x.png b/src/imports/controls/imagine/images/scrollbar-handle-interactive@2x.png
new file mode 100644
index 00000000..bd63a1b1
--- /dev/null
+++ b/src/imports/controls/imagine/images/scrollbar-handle-interactive@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/scrollbar-handle-interactive@3x.png b/src/imports/controls/imagine/images/scrollbar-handle-interactive@3x.png
new file mode 100644
index 00000000..31452954
--- /dev/null
+++ b/src/imports/controls/imagine/images/scrollbar-handle-interactive@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/scrollbar-handle-interactive@4x.png b/src/imports/controls/imagine/images/scrollbar-handle-interactive@4x.png
new file mode 100644
index 00000000..6db4d81d
--- /dev/null
+++ b/src/imports/controls/imagine/images/scrollbar-handle-interactive@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/scrollbar-handle.png b/src/imports/controls/imagine/images/scrollbar-handle.png
new file mode 100644
index 00000000..2c96de52
--- /dev/null
+++ b/src/imports/controls/imagine/images/scrollbar-handle.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/scrollbar-handle@2x.png b/src/imports/controls/imagine/images/scrollbar-handle@2x.png
new file mode 100644
index 00000000..49a08629
--- /dev/null
+++ b/src/imports/controls/imagine/images/scrollbar-handle@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/scrollbar-handle@3x.png b/src/imports/controls/imagine/images/scrollbar-handle@3x.png
new file mode 100644
index 00000000..de06a761
--- /dev/null
+++ b/src/imports/controls/imagine/images/scrollbar-handle@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/scrollbar-handle@4x.png b/src/imports/controls/imagine/images/scrollbar-handle@4x.png
new file mode 100644
index 00000000..55887ca5
--- /dev/null
+++ b/src/imports/controls/imagine/images/scrollbar-handle@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/scrollindicator-handle.png b/src/imports/controls/imagine/images/scrollindicator-handle.png
new file mode 100644
index 00000000..7c41d869
--- /dev/null
+++ b/src/imports/controls/imagine/images/scrollindicator-handle.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/scrollindicator-handle@2x.png b/src/imports/controls/imagine/images/scrollindicator-handle@2x.png
new file mode 100644
index 00000000..d937e753
--- /dev/null
+++ b/src/imports/controls/imagine/images/scrollindicator-handle@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/scrollindicator-handle@3x.png b/src/imports/controls/imagine/images/scrollindicator-handle@3x.png
new file mode 100644
index 00000000..49a08629
--- /dev/null
+++ b/src/imports/controls/imagine/images/scrollindicator-handle@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/scrollindicator-handle@4x.png b/src/imports/controls/imagine/images/scrollindicator-handle@4x.png
new file mode 100644
index 00000000..55b60d27
--- /dev/null
+++ b/src/imports/controls/imagine/images/scrollindicator-handle@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/slider-background-horizontal.9.png b/src/imports/controls/imagine/images/slider-background-horizontal.9.png
new file mode 100644
index 00000000..15bb3445
--- /dev/null
+++ b/src/imports/controls/imagine/images/slider-background-horizontal.9.png
Binary files differ
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
new file mode 100644
index 00000000..3d03e1e7
--- /dev/null
+++ b/src/imports/controls/imagine/images/slider-background-horizontal@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..301c2562
--- /dev/null
+++ b/src/imports/controls/imagine/images/slider-background-horizontal@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..4221018b
--- /dev/null
+++ b/src/imports/controls/imagine/images/slider-background-horizontal@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/slider-background-vertical.9.png b/src/imports/controls/imagine/images/slider-background-vertical.9.png
new file mode 100644
index 00000000..f2c5f90e
--- /dev/null
+++ b/src/imports/controls/imagine/images/slider-background-vertical.9.png
Binary files differ
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
new file mode 100644
index 00000000..1318a6f3
--- /dev/null
+++ b/src/imports/controls/imagine/images/slider-background-vertical@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..20b5c99a
--- /dev/null
+++ b/src/imports/controls/imagine/images/slider-background-vertical@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..36b55661
--- /dev/null
+++ b/src/imports/controls/imagine/images/slider-background-vertical@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/slider-handle-disabled.png b/src/imports/controls/imagine/images/slider-handle-disabled.png
new file mode 100644
index 00000000..25138580
--- /dev/null
+++ b/src/imports/controls/imagine/images/slider-handle-disabled.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/slider-handle-disabled@2x.png b/src/imports/controls/imagine/images/slider-handle-disabled@2x.png
new file mode 100644
index 00000000..cf3f67fe
--- /dev/null
+++ b/src/imports/controls/imagine/images/slider-handle-disabled@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/slider-handle-disabled@3x.png b/src/imports/controls/imagine/images/slider-handle-disabled@3x.png
new file mode 100644
index 00000000..c0814aa9
--- /dev/null
+++ b/src/imports/controls/imagine/images/slider-handle-disabled@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/slider-handle-disabled@4x.png b/src/imports/controls/imagine/images/slider-handle-disabled@4x.png
new file mode 100644
index 00000000..6a6d9da3
--- /dev/null
+++ b/src/imports/controls/imagine/images/slider-handle-disabled@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/slider-handle-focused-hovered.png b/src/imports/controls/imagine/images/slider-handle-focused-hovered.png
new file mode 100644
index 00000000..b4979b53
--- /dev/null
+++ b/src/imports/controls/imagine/images/slider-handle-focused-hovered.png
Binary files differ
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
new file mode 100644
index 00000000..bb23d803
--- /dev/null
+++ b/src/imports/controls/imagine/images/slider-handle-focused-hovered@2x.png
Binary files differ
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
new file mode 100644
index 00000000..7f336dc2
--- /dev/null
+++ b/src/imports/controls/imagine/images/slider-handle-focused-hovered@3x.png
Binary files differ
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
new file mode 100644
index 00000000..b6d9611d
--- /dev/null
+++ b/src/imports/controls/imagine/images/slider-handle-focused-hovered@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/slider-handle-focused-pressed.png b/src/imports/controls/imagine/images/slider-handle-focused-pressed.png
new file mode 100644
index 00000000..635eb024
--- /dev/null
+++ b/src/imports/controls/imagine/images/slider-handle-focused-pressed.png
Binary files differ
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
new file mode 100644
index 00000000..4134f02c
--- /dev/null
+++ b/src/imports/controls/imagine/images/slider-handle-focused-pressed@2x.png
Binary files differ
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
new file mode 100644
index 00000000..3e667643
--- /dev/null
+++ b/src/imports/controls/imagine/images/slider-handle-focused-pressed@3x.png
Binary files differ
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
new file mode 100644
index 00000000..e2be77f3
--- /dev/null
+++ b/src/imports/controls/imagine/images/slider-handle-focused-pressed@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/slider-handle-focused.png b/src/imports/controls/imagine/images/slider-handle-focused.png
new file mode 100644
index 00000000..03c23d68
--- /dev/null
+++ b/src/imports/controls/imagine/images/slider-handle-focused.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/slider-handle-focused@2x.png b/src/imports/controls/imagine/images/slider-handle-focused@2x.png
new file mode 100644
index 00000000..2efb4932
--- /dev/null
+++ b/src/imports/controls/imagine/images/slider-handle-focused@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/slider-handle-focused@3x.png b/src/imports/controls/imagine/images/slider-handle-focused@3x.png
new file mode 100644
index 00000000..51363323
--- /dev/null
+++ b/src/imports/controls/imagine/images/slider-handle-focused@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/slider-handle-focused@4x.png b/src/imports/controls/imagine/images/slider-handle-focused@4x.png
new file mode 100644
index 00000000..68a58ee4
--- /dev/null
+++ b/src/imports/controls/imagine/images/slider-handle-focused@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/slider-handle-hovered.png b/src/imports/controls/imagine/images/slider-handle-hovered.png
new file mode 100644
index 00000000..e2d89d4f
--- /dev/null
+++ b/src/imports/controls/imagine/images/slider-handle-hovered.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/slider-handle-hovered@2x.png b/src/imports/controls/imagine/images/slider-handle-hovered@2x.png
new file mode 100644
index 00000000..ade1f99d
--- /dev/null
+++ b/src/imports/controls/imagine/images/slider-handle-hovered@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/slider-handle-hovered@3x.png b/src/imports/controls/imagine/images/slider-handle-hovered@3x.png
new file mode 100644
index 00000000..ad5ee70a
--- /dev/null
+++ b/src/imports/controls/imagine/images/slider-handle-hovered@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/slider-handle-hovered@4x.png b/src/imports/controls/imagine/images/slider-handle-hovered@4x.png
new file mode 100644
index 00000000..a0970f90
--- /dev/null
+++ b/src/imports/controls/imagine/images/slider-handle-hovered@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/slider-handle-pressed.png b/src/imports/controls/imagine/images/slider-handle-pressed.png
new file mode 100644
index 00000000..25138580
--- /dev/null
+++ b/src/imports/controls/imagine/images/slider-handle-pressed.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/slider-handle-pressed@2x.png b/src/imports/controls/imagine/images/slider-handle-pressed@2x.png
new file mode 100644
index 00000000..cf3f67fe
--- /dev/null
+++ b/src/imports/controls/imagine/images/slider-handle-pressed@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/slider-handle-pressed@3x.png b/src/imports/controls/imagine/images/slider-handle-pressed@3x.png
new file mode 100644
index 00000000..c0814aa9
--- /dev/null
+++ b/src/imports/controls/imagine/images/slider-handle-pressed@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/slider-handle-pressed@4x.png b/src/imports/controls/imagine/images/slider-handle-pressed@4x.png
new file mode 100644
index 00000000..6a6d9da3
--- /dev/null
+++ b/src/imports/controls/imagine/images/slider-handle-pressed@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/slider-handle.png b/src/imports/controls/imagine/images/slider-handle.png
new file mode 100644
index 00000000..f60f6da1
--- /dev/null
+++ b/src/imports/controls/imagine/images/slider-handle.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/slider-handle@2x.png b/src/imports/controls/imagine/images/slider-handle@2x.png
new file mode 100644
index 00000000..cd125824
--- /dev/null
+++ b/src/imports/controls/imagine/images/slider-handle@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/slider-handle@3x.png b/src/imports/controls/imagine/images/slider-handle@3x.png
new file mode 100644
index 00000000..9836bd2c
--- /dev/null
+++ b/src/imports/controls/imagine/images/slider-handle@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/slider-handle@4x.png b/src/imports/controls/imagine/images/slider-handle@4x.png
new file mode 100644
index 00000000..a465f239
--- /dev/null
+++ b/src/imports/controls/imagine/images/slider-handle@4x.png
Binary files differ
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
new file mode 100644
index 00000000..bee9547d
--- /dev/null
+++ b/src/imports/controls/imagine/images/slider-progress-horizontal-disabled.9.png
Binary files differ
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
new file mode 100644
index 00000000..ceed0464
--- /dev/null
+++ b/src/imports/controls/imagine/images/slider-progress-horizontal-disabled@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..502d04b7
--- /dev/null
+++ b/src/imports/controls/imagine/images/slider-progress-horizontal-disabled@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..aa70191c
--- /dev/null
+++ b/src/imports/controls/imagine/images/slider-progress-horizontal-disabled@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/slider-progress-horizontal.9.png b/src/imports/controls/imagine/images/slider-progress-horizontal.9.png
new file mode 100644
index 00000000..a618468e
--- /dev/null
+++ b/src/imports/controls/imagine/images/slider-progress-horizontal.9.png
Binary files differ
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
new file mode 100644
index 00000000..587dc96f
--- /dev/null
+++ b/src/imports/controls/imagine/images/slider-progress-horizontal@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..9163bc71
--- /dev/null
+++ b/src/imports/controls/imagine/images/slider-progress-horizontal@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..7c833b08
--- /dev/null
+++ b/src/imports/controls/imagine/images/slider-progress-horizontal@4x.9.png
Binary files differ
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
new file mode 100644
index 00000000..7327188d
--- /dev/null
+++ b/src/imports/controls/imagine/images/slider-progress-vertical-disabled.9.png
Binary files differ
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
new file mode 100644
index 00000000..d0659595
--- /dev/null
+++ b/src/imports/controls/imagine/images/slider-progress-vertical-disabled@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..225adb29
--- /dev/null
+++ b/src/imports/controls/imagine/images/slider-progress-vertical-disabled@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..d738587b
--- /dev/null
+++ b/src/imports/controls/imagine/images/slider-progress-vertical-disabled@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/slider-progress-vertical.9.png b/src/imports/controls/imagine/images/slider-progress-vertical.9.png
new file mode 100644
index 00000000..d11d31d1
--- /dev/null
+++ b/src/imports/controls/imagine/images/slider-progress-vertical.9.png
Binary files differ
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
new file mode 100644
index 00000000..cedd14e5
--- /dev/null
+++ b/src/imports/controls/imagine/images/slider-progress-vertical@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..7f144fe1
--- /dev/null
+++ b/src/imports/controls/imagine/images/slider-progress-vertical@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..413883a1
--- /dev/null
+++ b/src/imports/controls/imagine/images/slider-progress-vertical@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/spinbox-background-disabled.9.png b/src/imports/controls/imagine/images/spinbox-background-disabled.9.png
new file mode 100644
index 00000000..30a87be6
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-background-disabled.9.png
Binary files differ
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
new file mode 100644
index 00000000..3e1ca104
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-background-disabled@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..f8e22ccc
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-background-disabled@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..826ecc67
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-background-disabled@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/spinbox-background-editable.9.png b/src/imports/controls/imagine/images/spinbox-background-editable.9.png
new file mode 100644
index 00000000..6e2a2d26
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-background-editable.9.png
Binary files differ
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
new file mode 100644
index 00000000..8e8ec57a
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-background-editable@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..da076f2c
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-background-editable@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..aa430c4c
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-background-editable@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/spinbox-background-focused.9.png b/src/imports/controls/imagine/images/spinbox-background-focused.9.png
new file mode 100644
index 00000000..84404c7f
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-background-focused.9.png
Binary files differ
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
new file mode 100644
index 00000000..aaeff8a4
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-background-focused@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..0d1ea9f2
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-background-focused@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..379b3ab7
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-background-focused@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/spinbox-background.9.png b/src/imports/controls/imagine/images/spinbox-background.9.png
new file mode 100644
index 00000000..ce4702b0
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-background.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/spinbox-background@2x.9.png b/src/imports/controls/imagine/images/spinbox-background@2x.9.png
new file mode 100644
index 00000000..e947d167
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-background@2x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/spinbox-background@3x.9.png b/src/imports/controls/imagine/images/spinbox-background@3x.9.png
new file mode 100644
index 00000000..f485196f
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-background@3x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/spinbox-background@4x.9.png b/src/imports/controls/imagine/images/spinbox-background@4x.9.png
new file mode 100644
index 00000000..5482d667
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-background@4x.9.png
Binary files differ
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
new file mode 100644
index 00000000..c20d4edf
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-down-disabled.9.png
Binary files differ
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
new file mode 100644
index 00000000..c65b70d2
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-down-disabled@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..e13ef88f
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-down-disabled@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..c7903568
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-down-disabled@4x.9.png
Binary files differ
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
new file mode 100644
index 00000000..ca207709
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-focused.9.png
Binary files differ
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
new file mode 100644
index 00000000..4e6c2c6d
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-focused@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..c9c46568
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-focused@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..538b8048
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-focused@4x.9.png
Binary files differ
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
new file mode 100644
index 00000000..ca207709
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-hovered.9.png
Binary files differ
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
new file mode 100644
index 00000000..4e6c2c6d
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-hovered@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..c9c46568
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-hovered@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..538b8048
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-hovered@4x.9.png
Binary files differ
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
new file mode 100644
index 00000000..0b34d6c4
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored-focused.9.png
Binary files differ
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
new file mode 100644
index 00000000..ae9c07c3
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored-focused@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..9b862ef7
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored-focused@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..298d3996
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored-focused@4x.9.png
Binary files differ
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
new file mode 100644
index 00000000..0b34d6c4
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored-hovered.9.png
Binary files differ
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
new file mode 100644
index 00000000..ae9c07c3
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored-hovered@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..9b862ef7
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored-hovered@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..298d3996
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored-hovered@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored-mirrored.9.png b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored-mirrored.9.png
new file mode 100644
index 00000000..63e48ae2
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored-mirrored.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored-mirrored@2x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored-mirrored@2x.9.png
new file mode 100644
index 00000000..eadedcd3
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored-mirrored@2x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored-mirrored@3x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored-mirrored@3x.9.png
new file mode 100644
index 00000000..140f0d33
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored-mirrored@3x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored-mirrored@4x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored-mirrored@4x.9.png
new file mode 100644
index 00000000..5db63bc6
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored-mirrored@4x.9.png
Binary files differ
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
new file mode 100644
index 00000000..9a580be3
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored-pressed.9.png
Binary files differ
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
new file mode 100644
index 00000000..8e8192d2
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored-pressed@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..5a751c6a
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored-pressed@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..80aff885
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored-pressed@4x.9.png
Binary files differ
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
new file mode 100644
index 00000000..63e48ae2
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored.9.png
Binary files differ
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
new file mode 100644
index 00000000..eadedcd3
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..140f0d33
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..5db63bc6
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-mirrored@4x.9.png
Binary files differ
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
new file mode 100644
index 00000000..0bf2d73c
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-pressed.9.png
Binary files differ
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
new file mode 100644
index 00000000..2e3c13d2
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-pressed@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..8d9569df
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-pressed@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..a89b6e37
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-down-editable-pressed@4x.9.png
Binary files differ
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
new file mode 100644
index 00000000..f50434fc
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-down-editable.9.png
Binary files differ
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
new file mode 100644
index 00000000..82a7b71e
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-down-editable@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..91ae261d
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-down-editable@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..7e93bd09
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-down-editable@4x.9.png
Binary files differ
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
new file mode 100644
index 00000000..2166d461
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-down-focused.9.png
Binary files differ
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
new file mode 100644
index 00000000..2e04ac11
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-down-focused@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..4c421cae
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-down-focused@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..0642a8e7
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-down-focused@4x.9.png
Binary files differ
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
new file mode 100644
index 00000000..2166d461
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-down-hovered.9.png
Binary files differ
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
new file mode 100644
index 00000000..2e04ac11
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-down-hovered@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..4c421cae
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-down-hovered@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..0642a8e7
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-down-hovered@4x.9.png
Binary files differ
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
new file mode 100644
index 00000000..5ca41cba
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-down-mirrored-disabled.9.png
Binary files differ
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
new file mode 100644
index 00000000..5efb47dd
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-down-mirrored-disabled@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..4ff3d439
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-down-mirrored-disabled@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..f2241ab3
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-down-mirrored-disabled@4x.9.png
Binary files differ
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
new file mode 100644
index 00000000..648b30c4
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-down-mirrored-focused.9.png
Binary files differ
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
new file mode 100644
index 00000000..f87ce876
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-down-mirrored-focused@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..bea3eff1
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-down-mirrored-focused@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..44b9f81f
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-down-mirrored-focused@4x.9.png
Binary files differ
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
new file mode 100644
index 00000000..648b30c4
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-down-mirrored-hovered.9.png
Binary files differ
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
new file mode 100644
index 00000000..f87ce876
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-down-mirrored-hovered@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..bea3eff1
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-down-mirrored-hovered@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..44b9f81f
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-down-mirrored-hovered@4x.9.png
Binary files differ
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
new file mode 100644
index 00000000..eb6a9812
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-down-mirrored-pressed.9.png
Binary files differ
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
new file mode 100644
index 00000000..51f20f47
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-down-mirrored-pressed@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..00082963
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-down-mirrored-pressed@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..6ae20279
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-down-mirrored-pressed@4x.9.png
Binary files differ
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
new file mode 100644
index 00000000..0eb5528f
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-down-mirrored.9.png
Binary files differ
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
new file mode 100644
index 00000000..7d234c78
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-down-mirrored@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..dee53c86
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-down-mirrored@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..df682f98
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-down-mirrored@4x.9.png
Binary files differ
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
new file mode 100644
index 00000000..9452dd71
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-down-pressed.9.png
Binary files differ
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
new file mode 100644
index 00000000..0d1eaeb8
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-down-pressed@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..7e3ad172
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-down-pressed@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..30c31fe1
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-down-pressed@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/spinbox-indicator-down.9.png b/src/imports/controls/imagine/images/spinbox-indicator-down.9.png
new file mode 100644
index 00000000..e7dd2bd8
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-down.9.png
Binary files differ
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
new file mode 100644
index 00000000..4ff2bc4e
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-down@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..7876005b
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-down@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..b59c8501
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-down@4x.9.png
Binary files differ
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
new file mode 100644
index 00000000..1f089e25
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-up-disabled.9.png
Binary files differ
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
new file mode 100644
index 00000000..59ae5ab3
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-up-disabled@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..17759082
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-up-disabled@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..a65e1002
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-up-disabled@4x.9.png
Binary files differ
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
new file mode 100644
index 00000000..989203b7
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-focused.9.png
Binary files differ
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
new file mode 100644
index 00000000..ee421c80
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-focused@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..a718107a
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-focused@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..a9e6d6cd
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-focused@4x.9.png
Binary files differ
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
new file mode 100644
index 00000000..989203b7
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-hovered.9.png
Binary files differ
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
new file mode 100644
index 00000000..ee421c80
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-hovered@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..a718107a
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-hovered@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..a9e6d6cd
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-hovered@4x.9.png
Binary files differ
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
new file mode 100644
index 00000000..5f05bc73
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored-focused.9.png
Binary files differ
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
new file mode 100644
index 00000000..c83d7574
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored-focused@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..f3cffa2b
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored-focused@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..4bda0ce3
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored-focused@4x.9.png
Binary files differ
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
new file mode 100644
index 00000000..5f05bc73
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored-hovered.9.png
Binary files differ
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
new file mode 100644
index 00000000..c83d7574
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored-hovered@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..f3cffa2b
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored-hovered@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..4bda0ce3
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored-hovered@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored-mirrored.9.png b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored-mirrored.9.png
new file mode 100644
index 00000000..0f946e4b
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored-mirrored.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored-mirrored@2x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored-mirrored@2x.9.png
new file mode 100644
index 00000000..8e1a3f4d
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored-mirrored@2x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored-mirrored@3x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored-mirrored@3x.9.png
new file mode 100644
index 00000000..e76b4a79
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored-mirrored@3x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored-mirrored@4x.9.png b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored-mirrored@4x.9.png
new file mode 100644
index 00000000..bd256696
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored-mirrored@4x.9.png
Binary files differ
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
new file mode 100644
index 00000000..243ebfca
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored-pressed.9.png
Binary files differ
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
new file mode 100644
index 00000000..79d87a9c
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored-pressed@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..a644865d
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored-pressed@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..45189533
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored-pressed@4x.9.png
Binary files differ
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
new file mode 100644
index 00000000..0f946e4b
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored.9.png
Binary files differ
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
new file mode 100644
index 00000000..8e1a3f4d
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..e76b4a79
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..bd256696
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-mirrored@4x.9.png
Binary files differ
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
new file mode 100644
index 00000000..256b2e03
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-pressed.9.png
Binary files differ
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
new file mode 100644
index 00000000..d79fe89c
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-pressed@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..f85f0179
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-pressed@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..96f8ba7e
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-up-editable-pressed@4x.9.png
Binary files differ
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
new file mode 100644
index 00000000..a1dfa8b3
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-up-editable.9.png
Binary files differ
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
new file mode 100644
index 00000000..f86efbd1
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-up-editable@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..acd9d658
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-up-editable@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..cf9d25d1
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-up-editable@4x.9.png
Binary files differ
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
new file mode 100644
index 00000000..e4363213
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-up-focused.9.png
Binary files differ
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
new file mode 100644
index 00000000..4ab68a4d
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-up-focused@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..47f032d6
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-up-focused@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..96bef030
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-up-focused@4x.9.png
Binary files differ
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
new file mode 100644
index 00000000..e4363213
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-up-hovered.9.png
Binary files differ
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
new file mode 100644
index 00000000..4ab68a4d
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-up-hovered@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..47f032d6
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-up-hovered@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..96bef030
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-up-hovered@4x.9.png
Binary files differ
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
new file mode 100644
index 00000000..b5c1c5c6
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-up-mirrored-disabled.9.png
Binary files differ
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
new file mode 100644
index 00000000..5246ee8e
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-up-mirrored-disabled@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..466a7e19
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-up-mirrored-disabled@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..1e510d84
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-up-mirrored-disabled@4x.9.png
Binary files differ
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
new file mode 100644
index 00000000..314ed022
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-up-mirrored-focused.9.png
Binary files differ
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
new file mode 100644
index 00000000..798f2e9c
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-up-mirrored-focused@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..447dfda6
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-up-mirrored-focused@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..b11cb7f2
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-up-mirrored-focused@4x.9.png
Binary files differ
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
new file mode 100644
index 00000000..314ed022
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-up-mirrored-hovered.9.png
Binary files differ
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
new file mode 100644
index 00000000..798f2e9c
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-up-mirrored-hovered@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..447dfda6
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-up-mirrored-hovered@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..b11cb7f2
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-up-mirrored-hovered@4x.9.png
Binary files differ
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
new file mode 100644
index 00000000..56a6a992
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-up-mirrored-pressed.9.png
Binary files differ
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
new file mode 100644
index 00000000..d5329c51
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-up-mirrored-pressed@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..1667bfdf
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-up-mirrored-pressed@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..45b48332
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-up-mirrored-pressed@4x.9.png
Binary files differ
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
new file mode 100644
index 00000000..222285e3
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-up-mirrored.9.png
Binary files differ
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
new file mode 100644
index 00000000..5788f366
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-up-mirrored@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..1f8342c6
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-up-mirrored@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..b19c5629
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-up-mirrored@4x.9.png
Binary files differ
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
new file mode 100644
index 00000000..619d2ef2
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-up-pressed.9.png
Binary files differ
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
new file mode 100644
index 00000000..a8ef2345
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-up-pressed@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..64c93785
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-up-pressed@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..e12ce5e9
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-up-pressed@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/spinbox-indicator-up.9.png b/src/imports/controls/imagine/images/spinbox-indicator-up.9.png
new file mode 100644
index 00000000..9a76855d
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-up.9.png
Binary files differ
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
new file mode 100644
index 00000000..b883e239
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-up@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..b3efe0cc
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-up@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..68b90337
--- /dev/null
+++ b/src/imports/controls/imagine/images/spinbox-indicator-up@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/swipedelegate-background-disabled.9.png b/src/imports/controls/imagine/images/swipedelegate-background-disabled.9.png
new file mode 100644
index 00000000..ce48ee74
--- /dev/null
+++ b/src/imports/controls/imagine/images/swipedelegate-background-disabled.9.png
Binary files differ
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
new file mode 100644
index 00000000..c7abb65c
--- /dev/null
+++ b/src/imports/controls/imagine/images/swipedelegate-background-disabled@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..46b84d7d
--- /dev/null
+++ b/src/imports/controls/imagine/images/swipedelegate-background-disabled@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..f4dfd338
--- /dev/null
+++ b/src/imports/controls/imagine/images/swipedelegate-background-disabled@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/swipedelegate-background-focused.9.png b/src/imports/controls/imagine/images/swipedelegate-background-focused.9.png
new file mode 100644
index 00000000..39fa8664
--- /dev/null
+++ b/src/imports/controls/imagine/images/swipedelegate-background-focused.9.png
Binary files differ
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
new file mode 100644
index 00000000..6b61562c
--- /dev/null
+++ b/src/imports/controls/imagine/images/swipedelegate-background-focused@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..e46c0bf1
--- /dev/null
+++ b/src/imports/controls/imagine/images/swipedelegate-background-focused@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..010444e8
--- /dev/null
+++ b/src/imports/controls/imagine/images/swipedelegate-background-focused@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/swipedelegate-background-hovered.9.png b/src/imports/controls/imagine/images/swipedelegate-background-hovered.9.png
new file mode 100644
index 00000000..cef1bafa
--- /dev/null
+++ b/src/imports/controls/imagine/images/swipedelegate-background-hovered.9.png
Binary files differ
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
new file mode 100644
index 00000000..5a136a0c
--- /dev/null
+++ b/src/imports/controls/imagine/images/swipedelegate-background-hovered@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..f47a366b
--- /dev/null
+++ b/src/imports/controls/imagine/images/swipedelegate-background-hovered@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..9ecb680f
--- /dev/null
+++ b/src/imports/controls/imagine/images/swipedelegate-background-hovered@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/swipedelegate-background-pressed.9.png b/src/imports/controls/imagine/images/swipedelegate-background-pressed.9.png
new file mode 100644
index 00000000..39fa8664
--- /dev/null
+++ b/src/imports/controls/imagine/images/swipedelegate-background-pressed.9.png
Binary files differ
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
new file mode 100644
index 00000000..6b61562c
--- /dev/null
+++ b/src/imports/controls/imagine/images/swipedelegate-background-pressed@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..e46c0bf1
--- /dev/null
+++ b/src/imports/controls/imagine/images/swipedelegate-background-pressed@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..010444e8
--- /dev/null
+++ b/src/imports/controls/imagine/images/swipedelegate-background-pressed@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/swipedelegate-background.9.png b/src/imports/controls/imagine/images/swipedelegate-background.9.png
new file mode 100644
index 00000000..cef1bafa
--- /dev/null
+++ b/src/imports/controls/imagine/images/swipedelegate-background.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/swipedelegate-background@2x.9.png b/src/imports/controls/imagine/images/swipedelegate-background@2x.9.png
new file mode 100644
index 00000000..5a136a0c
--- /dev/null
+++ b/src/imports/controls/imagine/images/swipedelegate-background@2x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/swipedelegate-background@3x.9.png b/src/imports/controls/imagine/images/swipedelegate-background@3x.9.png
new file mode 100644
index 00000000..f47a366b
--- /dev/null
+++ b/src/imports/controls/imagine/images/swipedelegate-background@3x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/swipedelegate-background@4x.9.png b/src/imports/controls/imagine/images/swipedelegate-background@4x.9.png
new file mode 100644
index 00000000..9ecb680f
--- /dev/null
+++ b/src/imports/controls/imagine/images/swipedelegate-background@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switch-handle-disabled.png b/src/imports/controls/imagine/images/switch-handle-disabled.png
new file mode 100644
index 00000000..0924073f
--- /dev/null
+++ b/src/imports/controls/imagine/images/switch-handle-disabled.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switch-handle-disabled@2x.png b/src/imports/controls/imagine/images/switch-handle-disabled@2x.png
new file mode 100644
index 00000000..4703c210
--- /dev/null
+++ b/src/imports/controls/imagine/images/switch-handle-disabled@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switch-handle-disabled@3x.png b/src/imports/controls/imagine/images/switch-handle-disabled@3x.png
new file mode 100644
index 00000000..352cd9ca
--- /dev/null
+++ b/src/imports/controls/imagine/images/switch-handle-disabled@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switch-handle-disabled@4x.png b/src/imports/controls/imagine/images/switch-handle-disabled@4x.png
new file mode 100644
index 00000000..cd0fdc3c
--- /dev/null
+++ b/src/imports/controls/imagine/images/switch-handle-disabled@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switch-handle-pressed.png b/src/imports/controls/imagine/images/switch-handle-pressed.png
new file mode 100644
index 00000000..0924073f
--- /dev/null
+++ b/src/imports/controls/imagine/images/switch-handle-pressed.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switch-handle-pressed@2x.png b/src/imports/controls/imagine/images/switch-handle-pressed@2x.png
new file mode 100644
index 00000000..4703c210
--- /dev/null
+++ b/src/imports/controls/imagine/images/switch-handle-pressed@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switch-handle-pressed@3x.png b/src/imports/controls/imagine/images/switch-handle-pressed@3x.png
new file mode 100644
index 00000000..352cd9ca
--- /dev/null
+++ b/src/imports/controls/imagine/images/switch-handle-pressed@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switch-handle-pressed@4x.png b/src/imports/controls/imagine/images/switch-handle-pressed@4x.png
new file mode 100644
index 00000000..cd0fdc3c
--- /dev/null
+++ b/src/imports/controls/imagine/images/switch-handle-pressed@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switch-handle.png b/src/imports/controls/imagine/images/switch-handle.png
new file mode 100644
index 00000000..856c1f19
--- /dev/null
+++ b/src/imports/controls/imagine/images/switch-handle.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switch-handle@2x.png b/src/imports/controls/imagine/images/switch-handle@2x.png
new file mode 100644
index 00000000..0f3ef325
--- /dev/null
+++ b/src/imports/controls/imagine/images/switch-handle@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switch-handle@3x.png b/src/imports/controls/imagine/images/switch-handle@3x.png
new file mode 100644
index 00000000..336686af
--- /dev/null
+++ b/src/imports/controls/imagine/images/switch-handle@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switch-handle@4x.png b/src/imports/controls/imagine/images/switch-handle@4x.png
new file mode 100644
index 00000000..a888832a
--- /dev/null
+++ b/src/imports/controls/imagine/images/switch-handle@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switch-indicator-checked-focused.png b/src/imports/controls/imagine/images/switch-indicator-checked-focused.png
new file mode 100644
index 00000000..d542dfc4
--- /dev/null
+++ b/src/imports/controls/imagine/images/switch-indicator-checked-focused.png
Binary files differ
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
new file mode 100644
index 00000000..221e0c1a
--- /dev/null
+++ b/src/imports/controls/imagine/images/switch-indicator-checked-focused@2x.png
Binary files differ
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
new file mode 100644
index 00000000..095092a8
--- /dev/null
+++ b/src/imports/controls/imagine/images/switch-indicator-checked-focused@3x.png
Binary files differ
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
new file mode 100644
index 00000000..9894fb7d
--- /dev/null
+++ b/src/imports/controls/imagine/images/switch-indicator-checked-focused@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switch-indicator-checked-hovered.png b/src/imports/controls/imagine/images/switch-indicator-checked-hovered.png
new file mode 100644
index 00000000..d542dfc4
--- /dev/null
+++ b/src/imports/controls/imagine/images/switch-indicator-checked-hovered.png
Binary files differ
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
new file mode 100644
index 00000000..221e0c1a
--- /dev/null
+++ b/src/imports/controls/imagine/images/switch-indicator-checked-hovered@2x.png
Binary files differ
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
new file mode 100644
index 00000000..095092a8
--- /dev/null
+++ b/src/imports/controls/imagine/images/switch-indicator-checked-hovered@3x.png
Binary files differ
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
new file mode 100644
index 00000000..9894fb7d
--- /dev/null
+++ b/src/imports/controls/imagine/images/switch-indicator-checked-hovered@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switch-indicator-checked-pressed.png b/src/imports/controls/imagine/images/switch-indicator-checked-pressed.png
new file mode 100644
index 00000000..a8a48c68
--- /dev/null
+++ b/src/imports/controls/imagine/images/switch-indicator-checked-pressed.png
Binary files differ
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
new file mode 100644
index 00000000..cdb2d08a
--- /dev/null
+++ b/src/imports/controls/imagine/images/switch-indicator-checked-pressed@2x.png
Binary files differ
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
new file mode 100644
index 00000000..6fcc036c
--- /dev/null
+++ b/src/imports/controls/imagine/images/switch-indicator-checked-pressed@3x.png
Binary files differ
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
new file mode 100644
index 00000000..d48a45aa
--- /dev/null
+++ b/src/imports/controls/imagine/images/switch-indicator-checked-pressed@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switch-indicator-checked.png b/src/imports/controls/imagine/images/switch-indicator-checked.png
new file mode 100644
index 00000000..59d722e4
--- /dev/null
+++ b/src/imports/controls/imagine/images/switch-indicator-checked.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switch-indicator-checked@2x.png b/src/imports/controls/imagine/images/switch-indicator-checked@2x.png
new file mode 100644
index 00000000..60fac1e5
--- /dev/null
+++ b/src/imports/controls/imagine/images/switch-indicator-checked@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switch-indicator-checked@3x.png b/src/imports/controls/imagine/images/switch-indicator-checked@3x.png
new file mode 100644
index 00000000..d9a46c95
--- /dev/null
+++ b/src/imports/controls/imagine/images/switch-indicator-checked@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switch-indicator-checked@4x.png b/src/imports/controls/imagine/images/switch-indicator-checked@4x.png
new file mode 100644
index 00000000..ee0b3234
--- /dev/null
+++ b/src/imports/controls/imagine/images/switch-indicator-checked@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switch-indicator-disabled.png b/src/imports/controls/imagine/images/switch-indicator-disabled.png
new file mode 100644
index 00000000..41ecf82e
--- /dev/null
+++ b/src/imports/controls/imagine/images/switch-indicator-disabled.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switch-indicator-disabled@2x.png b/src/imports/controls/imagine/images/switch-indicator-disabled@2x.png
new file mode 100644
index 00000000..0fee44f1
--- /dev/null
+++ b/src/imports/controls/imagine/images/switch-indicator-disabled@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switch-indicator-disabled@3x.png b/src/imports/controls/imagine/images/switch-indicator-disabled@3x.png
new file mode 100644
index 00000000..c25438fa
--- /dev/null
+++ b/src/imports/controls/imagine/images/switch-indicator-disabled@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switch-indicator-disabled@4x.png b/src/imports/controls/imagine/images/switch-indicator-disabled@4x.png
new file mode 100644
index 00000000..d028eb27
--- /dev/null
+++ b/src/imports/controls/imagine/images/switch-indicator-disabled@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switch-indicator-focused.png b/src/imports/controls/imagine/images/switch-indicator-focused.png
new file mode 100644
index 00000000..9ceb35c6
--- /dev/null
+++ b/src/imports/controls/imagine/images/switch-indicator-focused.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switch-indicator-focused@2x.png b/src/imports/controls/imagine/images/switch-indicator-focused@2x.png
new file mode 100644
index 00000000..5f049cc0
--- /dev/null
+++ b/src/imports/controls/imagine/images/switch-indicator-focused@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switch-indicator-focused@3x.png b/src/imports/controls/imagine/images/switch-indicator-focused@3x.png
new file mode 100644
index 00000000..fa43264b
--- /dev/null
+++ b/src/imports/controls/imagine/images/switch-indicator-focused@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switch-indicator-focused@4x.png b/src/imports/controls/imagine/images/switch-indicator-focused@4x.png
new file mode 100644
index 00000000..6f9b35e8
--- /dev/null
+++ b/src/imports/controls/imagine/images/switch-indicator-focused@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switch-indicator-hovered.png b/src/imports/controls/imagine/images/switch-indicator-hovered.png
new file mode 100644
index 00000000..9ceb35c6
--- /dev/null
+++ b/src/imports/controls/imagine/images/switch-indicator-hovered.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switch-indicator-hovered@2x.png b/src/imports/controls/imagine/images/switch-indicator-hovered@2x.png
new file mode 100644
index 00000000..5f049cc0
--- /dev/null
+++ b/src/imports/controls/imagine/images/switch-indicator-hovered@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switch-indicator-hovered@3x.png b/src/imports/controls/imagine/images/switch-indicator-hovered@3x.png
new file mode 100644
index 00000000..fa43264b
--- /dev/null
+++ b/src/imports/controls/imagine/images/switch-indicator-hovered@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switch-indicator-hovered@4x.png b/src/imports/controls/imagine/images/switch-indicator-hovered@4x.png
new file mode 100644
index 00000000..6f9b35e8
--- /dev/null
+++ b/src/imports/controls/imagine/images/switch-indicator-hovered@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switch-indicator-pressed.png b/src/imports/controls/imagine/images/switch-indicator-pressed.png
new file mode 100644
index 00000000..385992ea
--- /dev/null
+++ b/src/imports/controls/imagine/images/switch-indicator-pressed.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switch-indicator-pressed@2x.png b/src/imports/controls/imagine/images/switch-indicator-pressed@2x.png
new file mode 100644
index 00000000..f67dc74b
--- /dev/null
+++ b/src/imports/controls/imagine/images/switch-indicator-pressed@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switch-indicator-pressed@3x.png b/src/imports/controls/imagine/images/switch-indicator-pressed@3x.png
new file mode 100644
index 00000000..8781317d
--- /dev/null
+++ b/src/imports/controls/imagine/images/switch-indicator-pressed@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switch-indicator-pressed@4x.png b/src/imports/controls/imagine/images/switch-indicator-pressed@4x.png
new file mode 100644
index 00000000..7eebff6c
--- /dev/null
+++ b/src/imports/controls/imagine/images/switch-indicator-pressed@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switch-indicator.png b/src/imports/controls/imagine/images/switch-indicator.png
new file mode 100644
index 00000000..f7352cda
--- /dev/null
+++ b/src/imports/controls/imagine/images/switch-indicator.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switch-indicator@2x.png b/src/imports/controls/imagine/images/switch-indicator@2x.png
new file mode 100644
index 00000000..eefb2f1c
--- /dev/null
+++ b/src/imports/controls/imagine/images/switch-indicator@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switch-indicator@3x.png b/src/imports/controls/imagine/images/switch-indicator@3x.png
new file mode 100644
index 00000000..6254561d
--- /dev/null
+++ b/src/imports/controls/imagine/images/switch-indicator@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switch-indicator@4x.png b/src/imports/controls/imagine/images/switch-indicator@4x.png
new file mode 100644
index 00000000..dcc5e3cf
--- /dev/null
+++ b/src/imports/controls/imagine/images/switch-indicator@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switchdelegate-background-checked.9.png b/src/imports/controls/imagine/images/switchdelegate-background-checked.9.png
new file mode 100644
index 00000000..cef1bafa
--- /dev/null
+++ b/src/imports/controls/imagine/images/switchdelegate-background-checked.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switchdelegate-background-checked@2x.9.png b/src/imports/controls/imagine/images/switchdelegate-background-checked@2x.9.png
new file mode 100644
index 00000000..5a136a0c
--- /dev/null
+++ b/src/imports/controls/imagine/images/switchdelegate-background-checked@2x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switchdelegate-background-checked@3x.9.png b/src/imports/controls/imagine/images/switchdelegate-background-checked@3x.9.png
new file mode 100644
index 00000000..f47a366b
--- /dev/null
+++ b/src/imports/controls/imagine/images/switchdelegate-background-checked@3x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switchdelegate-background-checked@4x.9.png b/src/imports/controls/imagine/images/switchdelegate-background-checked@4x.9.png
new file mode 100644
index 00000000..9ecb680f
--- /dev/null
+++ b/src/imports/controls/imagine/images/switchdelegate-background-checked@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switchdelegate-background-disabled.9.png b/src/imports/controls/imagine/images/switchdelegate-background-disabled.9.png
new file mode 100644
index 00000000..ce48ee74
--- /dev/null
+++ b/src/imports/controls/imagine/images/switchdelegate-background-disabled.9.png
Binary files differ
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
new file mode 100644
index 00000000..c7abb65c
--- /dev/null
+++ b/src/imports/controls/imagine/images/switchdelegate-background-disabled@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..46b84d7d
--- /dev/null
+++ b/src/imports/controls/imagine/images/switchdelegate-background-disabled@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..f4dfd338
--- /dev/null
+++ b/src/imports/controls/imagine/images/switchdelegate-background-disabled@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switchdelegate-background-focused.9.png b/src/imports/controls/imagine/images/switchdelegate-background-focused.9.png
new file mode 100644
index 00000000..39fa8664
--- /dev/null
+++ b/src/imports/controls/imagine/images/switchdelegate-background-focused.9.png
Binary files differ
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
new file mode 100644
index 00000000..6b61562c
--- /dev/null
+++ b/src/imports/controls/imagine/images/switchdelegate-background-focused@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..e46c0bf1
--- /dev/null
+++ b/src/imports/controls/imagine/images/switchdelegate-background-focused@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..010444e8
--- /dev/null
+++ b/src/imports/controls/imagine/images/switchdelegate-background-focused@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switchdelegate-background-hovered.9.png b/src/imports/controls/imagine/images/switchdelegate-background-hovered.9.png
new file mode 100644
index 00000000..cef1bafa
--- /dev/null
+++ b/src/imports/controls/imagine/images/switchdelegate-background-hovered.9.png
Binary files differ
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
new file mode 100644
index 00000000..5a136a0c
--- /dev/null
+++ b/src/imports/controls/imagine/images/switchdelegate-background-hovered@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..f47a366b
--- /dev/null
+++ b/src/imports/controls/imagine/images/switchdelegate-background-hovered@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..9ecb680f
--- /dev/null
+++ b/src/imports/controls/imagine/images/switchdelegate-background-hovered@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switchdelegate-background-pressed.9.png b/src/imports/controls/imagine/images/switchdelegate-background-pressed.9.png
new file mode 100644
index 00000000..39fa8664
--- /dev/null
+++ b/src/imports/controls/imagine/images/switchdelegate-background-pressed.9.png
Binary files differ
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
new file mode 100644
index 00000000..6b61562c
--- /dev/null
+++ b/src/imports/controls/imagine/images/switchdelegate-background-pressed@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..e46c0bf1
--- /dev/null
+++ b/src/imports/controls/imagine/images/switchdelegate-background-pressed@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..010444e8
--- /dev/null
+++ b/src/imports/controls/imagine/images/switchdelegate-background-pressed@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switchdelegate-background.9.png b/src/imports/controls/imagine/images/switchdelegate-background.9.png
new file mode 100644
index 00000000..cef1bafa
--- /dev/null
+++ b/src/imports/controls/imagine/images/switchdelegate-background.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switchdelegate-background@2x.9.png b/src/imports/controls/imagine/images/switchdelegate-background@2x.9.png
new file mode 100644
index 00000000..5a136a0c
--- /dev/null
+++ b/src/imports/controls/imagine/images/switchdelegate-background@2x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switchdelegate-background@3x.9.png b/src/imports/controls/imagine/images/switchdelegate-background@3x.9.png
new file mode 100644
index 00000000..f47a366b
--- /dev/null
+++ b/src/imports/controls/imagine/images/switchdelegate-background@3x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switchdelegate-background@4x.9.png b/src/imports/controls/imagine/images/switchdelegate-background@4x.9.png
new file mode 100644
index 00000000..9ecb680f
--- /dev/null
+++ b/src/imports/controls/imagine/images/switchdelegate-background@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switchdelegate-handle-disabled.png b/src/imports/controls/imagine/images/switchdelegate-handle-disabled.png
new file mode 100644
index 00000000..0924073f
--- /dev/null
+++ b/src/imports/controls/imagine/images/switchdelegate-handle-disabled.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switchdelegate-handle-disabled@2x.png b/src/imports/controls/imagine/images/switchdelegate-handle-disabled@2x.png
new file mode 100644
index 00000000..4703c210
--- /dev/null
+++ b/src/imports/controls/imagine/images/switchdelegate-handle-disabled@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switchdelegate-handle-disabled@3x.png b/src/imports/controls/imagine/images/switchdelegate-handle-disabled@3x.png
new file mode 100644
index 00000000..352cd9ca
--- /dev/null
+++ b/src/imports/controls/imagine/images/switchdelegate-handle-disabled@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switchdelegate-handle-disabled@4x.png b/src/imports/controls/imagine/images/switchdelegate-handle-disabled@4x.png
new file mode 100644
index 00000000..cd0fdc3c
--- /dev/null
+++ b/src/imports/controls/imagine/images/switchdelegate-handle-disabled@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switchdelegate-handle.png b/src/imports/controls/imagine/images/switchdelegate-handle.png
new file mode 100644
index 00000000..856c1f19
--- /dev/null
+++ b/src/imports/controls/imagine/images/switchdelegate-handle.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switchdelegate-handle@2x.png b/src/imports/controls/imagine/images/switchdelegate-handle@2x.png
new file mode 100644
index 00000000..0f3ef325
--- /dev/null
+++ b/src/imports/controls/imagine/images/switchdelegate-handle@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switchdelegate-handle@3x.png b/src/imports/controls/imagine/images/switchdelegate-handle@3x.png
new file mode 100644
index 00000000..336686af
--- /dev/null
+++ b/src/imports/controls/imagine/images/switchdelegate-handle@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switchdelegate-handle@4x.png b/src/imports/controls/imagine/images/switchdelegate-handle@4x.png
new file mode 100644
index 00000000..a888832a
--- /dev/null
+++ b/src/imports/controls/imagine/images/switchdelegate-handle@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switchdelegate-indicator-checked-focused.png b/src/imports/controls/imagine/images/switchdelegate-indicator-checked-focused.png
new file mode 100644
index 00000000..d542dfc4
--- /dev/null
+++ b/src/imports/controls/imagine/images/switchdelegate-indicator-checked-focused.png
Binary files differ
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
new file mode 100644
index 00000000..221e0c1a
--- /dev/null
+++ b/src/imports/controls/imagine/images/switchdelegate-indicator-checked-focused@2x.png
Binary files differ
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
new file mode 100644
index 00000000..095092a8
--- /dev/null
+++ b/src/imports/controls/imagine/images/switchdelegate-indicator-checked-focused@3x.png
Binary files differ
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
new file mode 100644
index 00000000..9894fb7d
--- /dev/null
+++ b/src/imports/controls/imagine/images/switchdelegate-indicator-checked-focused@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switchdelegate-indicator-checked-hovered.png b/src/imports/controls/imagine/images/switchdelegate-indicator-checked-hovered.png
new file mode 100644
index 00000000..d542dfc4
--- /dev/null
+++ b/src/imports/controls/imagine/images/switchdelegate-indicator-checked-hovered.png
Binary files differ
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
new file mode 100644
index 00000000..221e0c1a
--- /dev/null
+++ b/src/imports/controls/imagine/images/switchdelegate-indicator-checked-hovered@2x.png
Binary files differ
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
new file mode 100644
index 00000000..095092a8
--- /dev/null
+++ b/src/imports/controls/imagine/images/switchdelegate-indicator-checked-hovered@3x.png
Binary files differ
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
new file mode 100644
index 00000000..9894fb7d
--- /dev/null
+++ b/src/imports/controls/imagine/images/switchdelegate-indicator-checked-hovered@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switchdelegate-indicator-checked-pressed.png b/src/imports/controls/imagine/images/switchdelegate-indicator-checked-pressed.png
new file mode 100644
index 00000000..a8a48c68
--- /dev/null
+++ b/src/imports/controls/imagine/images/switchdelegate-indicator-checked-pressed.png
Binary files differ
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
new file mode 100644
index 00000000..cdb2d08a
--- /dev/null
+++ b/src/imports/controls/imagine/images/switchdelegate-indicator-checked-pressed@2x.png
Binary files differ
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
new file mode 100644
index 00000000..6fcc036c
--- /dev/null
+++ b/src/imports/controls/imagine/images/switchdelegate-indicator-checked-pressed@3x.png
Binary files differ
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
new file mode 100644
index 00000000..d48a45aa
--- /dev/null
+++ b/src/imports/controls/imagine/images/switchdelegate-indicator-checked-pressed@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switchdelegate-indicator-checked.png b/src/imports/controls/imagine/images/switchdelegate-indicator-checked.png
new file mode 100644
index 00000000..59d722e4
--- /dev/null
+++ b/src/imports/controls/imagine/images/switchdelegate-indicator-checked.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switchdelegate-indicator-checked@2x.png b/src/imports/controls/imagine/images/switchdelegate-indicator-checked@2x.png
new file mode 100644
index 00000000..60fac1e5
--- /dev/null
+++ b/src/imports/controls/imagine/images/switchdelegate-indicator-checked@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switchdelegate-indicator-checked@3x.png b/src/imports/controls/imagine/images/switchdelegate-indicator-checked@3x.png
new file mode 100644
index 00000000..d9a46c95
--- /dev/null
+++ b/src/imports/controls/imagine/images/switchdelegate-indicator-checked@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switchdelegate-indicator-checked@4x.png b/src/imports/controls/imagine/images/switchdelegate-indicator-checked@4x.png
new file mode 100644
index 00000000..ee0b3234
--- /dev/null
+++ b/src/imports/controls/imagine/images/switchdelegate-indicator-checked@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switchdelegate-indicator-disabled.png b/src/imports/controls/imagine/images/switchdelegate-indicator-disabled.png
new file mode 100644
index 00000000..41ecf82e
--- /dev/null
+++ b/src/imports/controls/imagine/images/switchdelegate-indicator-disabled.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switchdelegate-indicator-disabled@2x.png b/src/imports/controls/imagine/images/switchdelegate-indicator-disabled@2x.png
new file mode 100644
index 00000000..0fee44f1
--- /dev/null
+++ b/src/imports/controls/imagine/images/switchdelegate-indicator-disabled@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switchdelegate-indicator-disabled@3x.png b/src/imports/controls/imagine/images/switchdelegate-indicator-disabled@3x.png
new file mode 100644
index 00000000..c25438fa
--- /dev/null
+++ b/src/imports/controls/imagine/images/switchdelegate-indicator-disabled@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switchdelegate-indicator-disabled@4x.png b/src/imports/controls/imagine/images/switchdelegate-indicator-disabled@4x.png
new file mode 100644
index 00000000..d028eb27
--- /dev/null
+++ b/src/imports/controls/imagine/images/switchdelegate-indicator-disabled@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switchdelegate-indicator-focused.png b/src/imports/controls/imagine/images/switchdelegate-indicator-focused.png
new file mode 100644
index 00000000..9ceb35c6
--- /dev/null
+++ b/src/imports/controls/imagine/images/switchdelegate-indicator-focused.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switchdelegate-indicator-focused@2x.png b/src/imports/controls/imagine/images/switchdelegate-indicator-focused@2x.png
new file mode 100644
index 00000000..5f049cc0
--- /dev/null
+++ b/src/imports/controls/imagine/images/switchdelegate-indicator-focused@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switchdelegate-indicator-focused@3x.png b/src/imports/controls/imagine/images/switchdelegate-indicator-focused@3x.png
new file mode 100644
index 00000000..fa43264b
--- /dev/null
+++ b/src/imports/controls/imagine/images/switchdelegate-indicator-focused@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switchdelegate-indicator-focused@4x.png b/src/imports/controls/imagine/images/switchdelegate-indicator-focused@4x.png
new file mode 100644
index 00000000..6f9b35e8
--- /dev/null
+++ b/src/imports/controls/imagine/images/switchdelegate-indicator-focused@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switchdelegate-indicator-hovered.png b/src/imports/controls/imagine/images/switchdelegate-indicator-hovered.png
new file mode 100644
index 00000000..9ceb35c6
--- /dev/null
+++ b/src/imports/controls/imagine/images/switchdelegate-indicator-hovered.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switchdelegate-indicator-hovered@2x.png b/src/imports/controls/imagine/images/switchdelegate-indicator-hovered@2x.png
new file mode 100644
index 00000000..5f049cc0
--- /dev/null
+++ b/src/imports/controls/imagine/images/switchdelegate-indicator-hovered@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switchdelegate-indicator-hovered@3x.png b/src/imports/controls/imagine/images/switchdelegate-indicator-hovered@3x.png
new file mode 100644
index 00000000..fa43264b
--- /dev/null
+++ b/src/imports/controls/imagine/images/switchdelegate-indicator-hovered@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switchdelegate-indicator-hovered@4x.png b/src/imports/controls/imagine/images/switchdelegate-indicator-hovered@4x.png
new file mode 100644
index 00000000..6f9b35e8
--- /dev/null
+++ b/src/imports/controls/imagine/images/switchdelegate-indicator-hovered@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switchdelegate-indicator-pressed.png b/src/imports/controls/imagine/images/switchdelegate-indicator-pressed.png
new file mode 100644
index 00000000..385992ea
--- /dev/null
+++ b/src/imports/controls/imagine/images/switchdelegate-indicator-pressed.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switchdelegate-indicator-pressed@2x.png b/src/imports/controls/imagine/images/switchdelegate-indicator-pressed@2x.png
new file mode 100644
index 00000000..f67dc74b
--- /dev/null
+++ b/src/imports/controls/imagine/images/switchdelegate-indicator-pressed@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switchdelegate-indicator-pressed@3x.png b/src/imports/controls/imagine/images/switchdelegate-indicator-pressed@3x.png
new file mode 100644
index 00000000..8781317d
--- /dev/null
+++ b/src/imports/controls/imagine/images/switchdelegate-indicator-pressed@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switchdelegate-indicator-pressed@4x.png b/src/imports/controls/imagine/images/switchdelegate-indicator-pressed@4x.png
new file mode 100644
index 00000000..7eebff6c
--- /dev/null
+++ b/src/imports/controls/imagine/images/switchdelegate-indicator-pressed@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switchdelegate-indicator.png b/src/imports/controls/imagine/images/switchdelegate-indicator.png
new file mode 100644
index 00000000..f7352cda
--- /dev/null
+++ b/src/imports/controls/imagine/images/switchdelegate-indicator.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switchdelegate-indicator@2x.png b/src/imports/controls/imagine/images/switchdelegate-indicator@2x.png
new file mode 100644
index 00000000..eefb2f1c
--- /dev/null
+++ b/src/imports/controls/imagine/images/switchdelegate-indicator@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switchdelegate-indicator@3x.png b/src/imports/controls/imagine/images/switchdelegate-indicator@3x.png
new file mode 100644
index 00000000..6254561d
--- /dev/null
+++ b/src/imports/controls/imagine/images/switchdelegate-indicator@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/switchdelegate-indicator@4x.png b/src/imports/controls/imagine/images/switchdelegate-indicator@4x.png
new file mode 100644
index 00000000..dcc5e3cf
--- /dev/null
+++ b/src/imports/controls/imagine/images/switchdelegate-indicator@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/tabbar-background.png b/src/imports/controls/imagine/images/tabbar-background.png
new file mode 100644
index 00000000..9e5bf120
--- /dev/null
+++ b/src/imports/controls/imagine/images/tabbar-background.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/tabbar-background@2x.png b/src/imports/controls/imagine/images/tabbar-background@2x.png
new file mode 100644
index 00000000..9beecae2
--- /dev/null
+++ b/src/imports/controls/imagine/images/tabbar-background@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/tabbar-background@3x.png b/src/imports/controls/imagine/images/tabbar-background@3x.png
new file mode 100644
index 00000000..b064b560
--- /dev/null
+++ b/src/imports/controls/imagine/images/tabbar-background@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/tabbar-background@4x.png b/src/imports/controls/imagine/images/tabbar-background@4x.png
new file mode 100644
index 00000000..5f8767f6
--- /dev/null
+++ b/src/imports/controls/imagine/images/tabbar-background@4x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/tabbutton-background-checked.9.png b/src/imports/controls/imagine/images/tabbutton-background-checked.9.png
new file mode 100644
index 00000000..d2f0fa76
--- /dev/null
+++ b/src/imports/controls/imagine/images/tabbutton-background-checked.9.png
Binary files differ
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
new file mode 100644
index 00000000..bee13292
--- /dev/null
+++ b/src/imports/controls/imagine/images/tabbutton-background-checked@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..70afb7d3
--- /dev/null
+++ b/src/imports/controls/imagine/images/tabbutton-background-checked@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..3a2015c4
--- /dev/null
+++ b/src/imports/controls/imagine/images/tabbutton-background-checked@4x.9.png
Binary files differ
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
new file mode 100644
index 00000000..a6d3011b
--- /dev/null
+++ b/src/imports/controls/imagine/images/tabbutton-background-disabled-checked.9.png
Binary files differ
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
new file mode 100644
index 00000000..8ebfa026
--- /dev/null
+++ b/src/imports/controls/imagine/images/tabbutton-background-disabled-checked@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..1d5a1d51
--- /dev/null
+++ b/src/imports/controls/imagine/images/tabbutton-background-disabled-checked@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..f06dc55f
--- /dev/null
+++ b/src/imports/controls/imagine/images/tabbutton-background-disabled-checked@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/tabbutton-background-disabled.9.png b/src/imports/controls/imagine/images/tabbutton-background-disabled.9.png
new file mode 100644
index 00000000..a6d3011b
--- /dev/null
+++ b/src/imports/controls/imagine/images/tabbutton-background-disabled.9.png
Binary files differ
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
new file mode 100644
index 00000000..8ebfa026
--- /dev/null
+++ b/src/imports/controls/imagine/images/tabbutton-background-disabled@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..1d5a1d51
--- /dev/null
+++ b/src/imports/controls/imagine/images/tabbutton-background-disabled@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..f06dc55f
--- /dev/null
+++ b/src/imports/controls/imagine/images/tabbutton-background-disabled@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/tabbutton-background-hovered.9.png b/src/imports/controls/imagine/images/tabbutton-background-hovered.9.png
new file mode 100644
index 00000000..2416c79a
--- /dev/null
+++ b/src/imports/controls/imagine/images/tabbutton-background-hovered.9.png
Binary files differ
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
new file mode 100644
index 00000000..3d6282fd
--- /dev/null
+++ b/src/imports/controls/imagine/images/tabbutton-background-hovered@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..f8bc9772
--- /dev/null
+++ b/src/imports/controls/imagine/images/tabbutton-background-hovered@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..e653b356
--- /dev/null
+++ b/src/imports/controls/imagine/images/tabbutton-background-hovered@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/tabbutton-background-pressed.9.png b/src/imports/controls/imagine/images/tabbutton-background-pressed.9.png
new file mode 100644
index 00000000..d48733ed
--- /dev/null
+++ b/src/imports/controls/imagine/images/tabbutton-background-pressed.9.png
Binary files differ
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
new file mode 100644
index 00000000..fbbaad7b
--- /dev/null
+++ b/src/imports/controls/imagine/images/tabbutton-background-pressed@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..3a0ba70e
--- /dev/null
+++ b/src/imports/controls/imagine/images/tabbutton-background-pressed@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..c04f124e
--- /dev/null
+++ b/src/imports/controls/imagine/images/tabbutton-background-pressed@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/tabbutton-background.9.png b/src/imports/controls/imagine/images/tabbutton-background.9.png
new file mode 100644
index 00000000..2266c722
--- /dev/null
+++ b/src/imports/controls/imagine/images/tabbutton-background.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/tabbutton-background@2x.9.png b/src/imports/controls/imagine/images/tabbutton-background@2x.9.png
new file mode 100644
index 00000000..b7adb7ad
--- /dev/null
+++ b/src/imports/controls/imagine/images/tabbutton-background@2x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/tabbutton-background@3x.9.png b/src/imports/controls/imagine/images/tabbutton-background@3x.9.png
new file mode 100644
index 00000000..d8f4eae5
--- /dev/null
+++ b/src/imports/controls/imagine/images/tabbutton-background@3x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/tabbutton-background@4x.9.png b/src/imports/controls/imagine/images/tabbutton-background@4x.9.png
new file mode 100644
index 00000000..066d35b3
--- /dev/null
+++ b/src/imports/controls/imagine/images/tabbutton-background@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/textarea-background-disabled.9.png b/src/imports/controls/imagine/images/textarea-background-disabled.9.png
new file mode 100644
index 00000000..910fbca9
--- /dev/null
+++ b/src/imports/controls/imagine/images/textarea-background-disabled.9.png
Binary files differ
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
new file mode 100644
index 00000000..32a488ce
--- /dev/null
+++ b/src/imports/controls/imagine/images/textarea-background-disabled@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..7d788599
--- /dev/null
+++ b/src/imports/controls/imagine/images/textarea-background-disabled@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..997ea6cc
--- /dev/null
+++ b/src/imports/controls/imagine/images/textarea-background-disabled@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/textarea-background-focused.9.png b/src/imports/controls/imagine/images/textarea-background-focused.9.png
new file mode 100644
index 00000000..22009a1b
--- /dev/null
+++ b/src/imports/controls/imagine/images/textarea-background-focused.9.png
Binary files differ
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
new file mode 100644
index 00000000..51d393df
--- /dev/null
+++ b/src/imports/controls/imagine/images/textarea-background-focused@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..621f912e
--- /dev/null
+++ b/src/imports/controls/imagine/images/textarea-background-focused@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..d2b0f85f
--- /dev/null
+++ b/src/imports/controls/imagine/images/textarea-background-focused@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/textarea-background-pressed.9.png b/src/imports/controls/imagine/images/textarea-background-pressed.9.png
new file mode 100644
index 00000000..7a8cd7f9
--- /dev/null
+++ b/src/imports/controls/imagine/images/textarea-background-pressed.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/textarea-background-pressed@2x.9.png b/src/imports/controls/imagine/images/textarea-background-pressed@2x.9.png
new file mode 100644
index 00000000..e580a5a6
--- /dev/null
+++ b/src/imports/controls/imagine/images/textarea-background-pressed@2x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/textarea-background-pressed@3x.9.png b/src/imports/controls/imagine/images/textarea-background-pressed@3x.9.png
new file mode 100644
index 00000000..cf1b19da
--- /dev/null
+++ b/src/imports/controls/imagine/images/textarea-background-pressed@3x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/textarea-background-pressed@4x.9.png b/src/imports/controls/imagine/images/textarea-background-pressed@4x.9.png
new file mode 100644
index 00000000..1c6e0ef7
--- /dev/null
+++ b/src/imports/controls/imagine/images/textarea-background-pressed@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/textarea-background.9.png b/src/imports/controls/imagine/images/textarea-background.9.png
new file mode 100644
index 00000000..efd78e1e
--- /dev/null
+++ b/src/imports/controls/imagine/images/textarea-background.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/textarea-background@2x.9.png b/src/imports/controls/imagine/images/textarea-background@2x.9.png
new file mode 100644
index 00000000..a644ec9a
--- /dev/null
+++ b/src/imports/controls/imagine/images/textarea-background@2x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/textarea-background@3x.9.png b/src/imports/controls/imagine/images/textarea-background@3x.9.png
new file mode 100644
index 00000000..0b80c021
--- /dev/null
+++ b/src/imports/controls/imagine/images/textarea-background@3x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/textarea-background@4x.9.png b/src/imports/controls/imagine/images/textarea-background@4x.9.png
new file mode 100644
index 00000000..78cdcb28
--- /dev/null
+++ b/src/imports/controls/imagine/images/textarea-background@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/textfield-background-disabled.9.png b/src/imports/controls/imagine/images/textfield-background-disabled.9.png
new file mode 100644
index 00000000..9f2dd1c5
--- /dev/null
+++ b/src/imports/controls/imagine/images/textfield-background-disabled.9.png
Binary files differ
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
new file mode 100644
index 00000000..6f573f77
--- /dev/null
+++ b/src/imports/controls/imagine/images/textfield-background-disabled@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..279c3a74
--- /dev/null
+++ b/src/imports/controls/imagine/images/textfield-background-disabled@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..ae0743ab
--- /dev/null
+++ b/src/imports/controls/imagine/images/textfield-background-disabled@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/textfield-background-focused.9.png b/src/imports/controls/imagine/images/textfield-background-focused.9.png
new file mode 100644
index 00000000..d9596759
--- /dev/null
+++ b/src/imports/controls/imagine/images/textfield-background-focused.9.png
Binary files differ
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
new file mode 100644
index 00000000..149a0f2d
--- /dev/null
+++ b/src/imports/controls/imagine/images/textfield-background-focused@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..9ca64625
--- /dev/null
+++ b/src/imports/controls/imagine/images/textfield-background-focused@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..756bdc3b
--- /dev/null
+++ b/src/imports/controls/imagine/images/textfield-background-focused@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/textfield-background-pressed.9.png b/src/imports/controls/imagine/images/textfield-background-pressed.9.png
new file mode 100644
index 00000000..1eeceff5
--- /dev/null
+++ b/src/imports/controls/imagine/images/textfield-background-pressed.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/textfield-background-pressed@2x.9.png b/src/imports/controls/imagine/images/textfield-background-pressed@2x.9.png
new file mode 100644
index 00000000..3271ae54
--- /dev/null
+++ b/src/imports/controls/imagine/images/textfield-background-pressed@2x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/textfield-background-pressed@3x.9.png b/src/imports/controls/imagine/images/textfield-background-pressed@3x.9.png
new file mode 100644
index 00000000..f00ec72d
--- /dev/null
+++ b/src/imports/controls/imagine/images/textfield-background-pressed@3x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/textfield-background-pressed@4x.9.png b/src/imports/controls/imagine/images/textfield-background-pressed@4x.9.png
new file mode 100644
index 00000000..9adf1b4b
--- /dev/null
+++ b/src/imports/controls/imagine/images/textfield-background-pressed@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/textfield-background.9.png b/src/imports/controls/imagine/images/textfield-background.9.png
new file mode 100644
index 00000000..ec33410f
--- /dev/null
+++ b/src/imports/controls/imagine/images/textfield-background.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/textfield-background@2x.9.png b/src/imports/controls/imagine/images/textfield-background@2x.9.png
new file mode 100644
index 00000000..7d661b44
--- /dev/null
+++ b/src/imports/controls/imagine/images/textfield-background@2x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/textfield-background@3x.9.png b/src/imports/controls/imagine/images/textfield-background@3x.9.png
new file mode 100644
index 00000000..5ad6a93b
--- /dev/null
+++ b/src/imports/controls/imagine/images/textfield-background@3x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/textfield-background@4x.9.png b/src/imports/controls/imagine/images/textfield-background@4x.9.png
new file mode 100644
index 00000000..f100945a
--- /dev/null
+++ b/src/imports/controls/imagine/images/textfield-background@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/toolbar-background.png b/src/imports/controls/imagine/images/toolbar-background.png
new file mode 100644
index 00000000..2203da02
--- /dev/null
+++ b/src/imports/controls/imagine/images/toolbar-background.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/toolbar-background@2x.png b/src/imports/controls/imagine/images/toolbar-background@2x.png
new file mode 100644
index 00000000..e264fd93
--- /dev/null
+++ b/src/imports/controls/imagine/images/toolbar-background@2x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/toolbar-background@3x.png b/src/imports/controls/imagine/images/toolbar-background@3x.png
new file mode 100644
index 00000000..6d6cead5
--- /dev/null
+++ b/src/imports/controls/imagine/images/toolbar-background@3x.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/toolbar-background@4x.png b/src/imports/controls/imagine/images/toolbar-background@4x.png
new file mode 100644
index 00000000..028eb28b
--- /dev/null
+++ b/src/imports/controls/imagine/images/toolbar-background@4x.png
Binary files differ
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
new file mode 100644
index 00000000..287a2872
--- /dev/null
+++ b/src/imports/controls/imagine/images/toolbutton-background-checked-focused.9.png
Binary files differ
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
new file mode 100644
index 00000000..aa844165
--- /dev/null
+++ b/src/imports/controls/imagine/images/toolbutton-background-checked-focused@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..8c682255
--- /dev/null
+++ b/src/imports/controls/imagine/images/toolbutton-background-checked-focused@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..89bdd096
--- /dev/null
+++ b/src/imports/controls/imagine/images/toolbutton-background-checked-focused@4x.9.png
Binary files differ
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
new file mode 100644
index 00000000..3c95ab6d
--- /dev/null
+++ b/src/imports/controls/imagine/images/toolbutton-background-checked-hovered.9.png
Binary files differ
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
new file mode 100644
index 00000000..1195aa1e
--- /dev/null
+++ b/src/imports/controls/imagine/images/toolbutton-background-checked-hovered@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..9e2666c5
--- /dev/null
+++ b/src/imports/controls/imagine/images/toolbutton-background-checked-hovered@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..24e93b95
--- /dev/null
+++ b/src/imports/controls/imagine/images/toolbutton-background-checked-hovered@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/toolbutton-background-checked.9.png b/src/imports/controls/imagine/images/toolbutton-background-checked.9.png
new file mode 100644
index 00000000..287a2872
--- /dev/null
+++ b/src/imports/controls/imagine/images/toolbutton-background-checked.9.png
Binary files differ
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
new file mode 100644
index 00000000..aa844165
--- /dev/null
+++ b/src/imports/controls/imagine/images/toolbutton-background-checked@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..8c682255
--- /dev/null
+++ b/src/imports/controls/imagine/images/toolbutton-background-checked@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..89bdd096
--- /dev/null
+++ b/src/imports/controls/imagine/images/toolbutton-background-checked@4x.9.png
Binary files differ
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
new file mode 100644
index 00000000..287a2872
--- /dev/null
+++ b/src/imports/controls/imagine/images/toolbutton-background-disabled-checked.9.png
Binary files differ
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
new file mode 100644
index 00000000..aa844165
--- /dev/null
+++ b/src/imports/controls/imagine/images/toolbutton-background-disabled-checked@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..8c682255
--- /dev/null
+++ b/src/imports/controls/imagine/images/toolbutton-background-disabled-checked@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..89bdd096
--- /dev/null
+++ b/src/imports/controls/imagine/images/toolbutton-background-disabled-checked@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/toolbutton-background-focused.9.png b/src/imports/controls/imagine/images/toolbutton-background-focused.9.png
new file mode 100644
index 00000000..5a72a621
--- /dev/null
+++ b/src/imports/controls/imagine/images/toolbutton-background-focused.9.png
Binary files differ
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
new file mode 100644
index 00000000..688a071a
--- /dev/null
+++ b/src/imports/controls/imagine/images/toolbutton-background-focused@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..64375a7e
--- /dev/null
+++ b/src/imports/controls/imagine/images/toolbutton-background-focused@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..96004a10
--- /dev/null
+++ b/src/imports/controls/imagine/images/toolbutton-background-focused@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/toolbutton-background-hovered.9.png b/src/imports/controls/imagine/images/toolbutton-background-hovered.9.png
new file mode 100644
index 00000000..0de6e5b1
--- /dev/null
+++ b/src/imports/controls/imagine/images/toolbutton-background-hovered.9.png
Binary files differ
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
new file mode 100644
index 00000000..68245c68
--- /dev/null
+++ b/src/imports/controls/imagine/images/toolbutton-background-hovered@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..c05ef625
--- /dev/null
+++ b/src/imports/controls/imagine/images/toolbutton-background-hovered@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..dda2a933
--- /dev/null
+++ b/src/imports/controls/imagine/images/toolbutton-background-hovered@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/toolbutton-background-pressed.9.png b/src/imports/controls/imagine/images/toolbutton-background-pressed.9.png
new file mode 100644
index 00000000..287a2872
--- /dev/null
+++ b/src/imports/controls/imagine/images/toolbutton-background-pressed.9.png
Binary files differ
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
new file mode 100644
index 00000000..aa844165
--- /dev/null
+++ b/src/imports/controls/imagine/images/toolbutton-background-pressed@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..8c682255
--- /dev/null
+++ b/src/imports/controls/imagine/images/toolbutton-background-pressed@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..89bdd096
--- /dev/null
+++ b/src/imports/controls/imagine/images/toolbutton-background-pressed@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/toolbutton-background.9.png b/src/imports/controls/imagine/images/toolbutton-background.9.png
new file mode 100644
index 00000000..5a72a621
--- /dev/null
+++ b/src/imports/controls/imagine/images/toolbutton-background.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/toolbutton-background@2x.9.png b/src/imports/controls/imagine/images/toolbutton-background@2x.9.png
new file mode 100644
index 00000000..688a071a
--- /dev/null
+++ b/src/imports/controls/imagine/images/toolbutton-background@2x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/toolbutton-background@3x.9.png b/src/imports/controls/imagine/images/toolbutton-background@3x.9.png
new file mode 100644
index 00000000..64375a7e
--- /dev/null
+++ b/src/imports/controls/imagine/images/toolbutton-background@3x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/toolbutton-background@4x.9.png b/src/imports/controls/imagine/images/toolbutton-background@4x.9.png
new file mode 100644
index 00000000..96004a10
--- /dev/null
+++ b/src/imports/controls/imagine/images/toolbutton-background@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/toolseparator-separator-horizontal.9.png b/src/imports/controls/imagine/images/toolseparator-separator-horizontal.9.png
new file mode 100644
index 00000000..923d53ed
--- /dev/null
+++ b/src/imports/controls/imagine/images/toolseparator-separator-horizontal.9.png
Binary files differ
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
new file mode 100644
index 00000000..d1144b51
--- /dev/null
+++ b/src/imports/controls/imagine/images/toolseparator-separator-horizontal@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..247b7f9d
--- /dev/null
+++ b/src/imports/controls/imagine/images/toolseparator-separator-horizontal@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..e03e5fe7
--- /dev/null
+++ b/src/imports/controls/imagine/images/toolseparator-separator-horizontal@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/toolseparator-separator-vertical.9.png b/src/imports/controls/imagine/images/toolseparator-separator-vertical.9.png
new file mode 100644
index 00000000..0d797eb0
--- /dev/null
+++ b/src/imports/controls/imagine/images/toolseparator-separator-vertical.9.png
Binary files differ
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
new file mode 100644
index 00000000..44cd4d0f
--- /dev/null
+++ b/src/imports/controls/imagine/images/toolseparator-separator-vertical@2x.9.png
Binary files differ
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
new file mode 100644
index 00000000..a4f4ff1c
--- /dev/null
+++ b/src/imports/controls/imagine/images/toolseparator-separator-vertical@3x.9.png
Binary files differ
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
new file mode 100644
index 00000000..04e97483
--- /dev/null
+++ b/src/imports/controls/imagine/images/toolseparator-separator-vertical@4x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/tooltip-background.9.png b/src/imports/controls/imagine/images/tooltip-background.9.png
new file mode 100644
index 00000000..2078d7de
--- /dev/null
+++ b/src/imports/controls/imagine/images/tooltip-background.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/tooltip-background@2x.9.png b/src/imports/controls/imagine/images/tooltip-background@2x.9.png
new file mode 100644
index 00000000..823b48f3
--- /dev/null
+++ b/src/imports/controls/imagine/images/tooltip-background@2x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/tooltip-background@3x.9.png b/src/imports/controls/imagine/images/tooltip-background@3x.9.png
new file mode 100644
index 00000000..594d7e05
--- /dev/null
+++ b/src/imports/controls/imagine/images/tooltip-background@3x.9.png
Binary files differ
diff --git a/src/imports/controls/imagine/images/tooltip-background@4x.9.png b/src/imports/controls/imagine/images/tooltip-background@4x.9.png
new file mode 100644
index 00000000..db542e0a
--- /dev/null
+++ b/src/imports/controls/imagine/images/tooltip-background@4x.9.png
Binary files differ
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/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..dd8a0c2d
--- /dev/null
+++ b/src/imports/controls/imagine/qquickimageselector.cpp
@@ -0,0 +1,321 @@
+/****************************************************************************
+**
+** 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 <QtQml/qqmlfile.h>
+#include <QtQml/private/qqmlproperty_p.h>
+#include <algorithm>
+
+QT_BEGIN_NAMESPACE
+
+// 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 filePath;
+ }
+ return QString();
+}
+
+QQuickImageSelector::QQuickImageSelector(QObject *parent)
+ : QObject(parent),
+ m_cache(false),
+ 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.value<QUrl>());
+}
+
+void QQuickImageSelector::setTarget(const QQmlProperty &property)
+{
+ m_property = property;
+}
+
+void QQuickImageSelector::classBegin()
+{
+}
+
+void QQuickImageSelector::componentComplete()
+{
+ setUrl(m_property.read().value<QUrl>());
+ 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(200); // TODO: cost
+
+ const QString key = cacheKey();
+
+ QString bestFilePath;
+ if (m_cache) {
+ QString *cachedPath = cache.object(key);
+ if (cachedPath)
+ bestFilePath = *cachedPath;
+ }
+
+ if (bestFilePath.isEmpty()) {
+ 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));
+ }
+
+ 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..17fb920f
--- /dev/null
+++ b/src/imports/controls/imagine/qquickimaginetheme.cpp
@@ -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$
+**
+****************************************************************************/
+
+#include "qquickimaginetheme_p.h"
+
+#include <QtGui/qfontinfo.h>
+
+QT_BEGIN_NAMESPACE
+
+QQuickImagineTheme::QQuickImagineTheme()
+ : QQuickTheme(QStringLiteral("Imagine"))
+{
+ QFont font;
+ font.setFamily(QLatin1String("Open Sans"));
+ const QString family = QFontInfo(font).family();
+ if (family == QLatin1String("Open Sans")) {
+ buttonFont.setFamily(family);
+ checkBoxFont.setFamily(family);
+ editorFont.setFamily(family);
+ groupBoxFont.setFamily(family);
+ labelFont.setFamily(family);
+ itemViewFont.setFamily(family);
+ menuItemFont.setFamily(family);
+ systemFont.setFamily(family);
+ toolTipFont.setFamily(family);
+ }
+
+ 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
+{
+ switch (type) {
+ case QPlatformTheme::TabButtonFont:
+ case QPlatformTheme::PushButtonFont:
+ case QPlatformTheme::ToolButtonFont:
+ return &buttonFont;
+ case QPlatformTheme::CheckBoxFont:
+ return &checkBoxFont;
+ case QPlatformTheme::GroupBoxTitleFont:
+ return &groupBoxFont;
+ case QPlatformTheme::LabelFont:
+ return &labelFont;
+ case QPlatformTheme::TipLabelFont:
+ return &toolTipFont;
+ case QPlatformTheme::ItemViewFont:
+ return &itemViewFont;
+ case QPlatformTheme::MenuItemFont:
+ case QPlatformTheme::ComboMenuItemFont:
+ return &menuItemFont;
+ case QPlatformTheme::EditorFont:
+ return &editorFont;
+ default:
+ 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..9006e6ef
--- /dev/null
+++ b/src/imports/controls/imagine/qquickimaginetheme_p.h
@@ -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$
+**
+****************************************************************************/
+
+#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 buttonFont;
+ QFont checkBoxFont;
+ QFont editorFont;
+ QFont groupBoxFont;
+ QFont labelFont;
+ QFont itemViewFont;
+ QFont menuItemFont;
+ QFont systemFont;
+ QFont toolTipFont;
+
+ 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..c50199fa
--- /dev/null
+++ b/src/imports/controls/imagine/qtquickcontrols2imaginestyleplugin.cpp
@@ -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$
+**
+****************************************************************************/
+
+#include <QtQuickControls2/private/qquickstyleplugin_p.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
+
+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 f1cf8eb5..d32b7299 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 e1c559da..64a89756 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 545ca64a..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,23 +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
- visible: control.text
- horizontalAlignment: Text.AlignLeft
- 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 da9fd73c..3ec46dbc 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 {
@@ -163,7 +163,6 @@ T.ComboBox {
implicitHeight: contentHeight
model: control.popup.visible ? control.delegateModel : null
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 e0632e62..9d6969cf 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 e7055404..55bcd71f 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 59d51c36..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,17 +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
- visible: control.text
- horizontalAlignment: Text.AlignLeft
- 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 5a136231..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,17 +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
- visible: control.text
- horizontalAlignment: Text.AlignLeft
- verticalAlignment: Text.AlignVCenter
}
background: Rectangle {
@@ -86,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..06682285 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
diff --git a/src/imports/controls/material/RadioButton.qml b/src/imports/controls/material/RadioButton.qml
index d178654f..b16c4d99 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 fb4f33dc..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,23 +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
- visible: control.text
- horizontalAlignment: Text.AlignLeft
- 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 8374c0f9..c782e6f7 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 effb18ad..7664500a 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 d9014fcd..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,19 +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
- visible: control.text
- horizontalAlignment: Text.AlignLeft
- verticalAlignment: Text.AlignVCenter
}
background: Rectangle {
diff --git a/src/imports/controls/material/SwipeView.qml b/src/imports/controls/material/SwipeView.qml
index 293cce46..78e25aab 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 c4f279ee..d41c8579 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 717ee250..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,23 +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
- visible: control.text
- horizontalAlignment: Text.AlignLeft
- 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 eaff0b1c..c67523ae 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 9b1309ab..b331eae8 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
new file mode 100644
index 00000000..4a942849
--- /dev/null
+++ b/src/imports/controls/material/images/arrow-indicator.png
Binary files differ
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
new file mode 100644
index 00000000..b31b56c1
--- /dev/null
+++ b/src/imports/controls/material/images/arrow-indicator@2x.png
Binary files differ
diff --git a/src/imports/controls/material/images/arrow-indicator@3x.png b/src/imports/controls/material/images/arrow-indicator@3x.png
new file mode 100644
index 00000000..637e9674
--- /dev/null
+++ b/src/imports/controls/material/images/arrow-indicator@3x.png
Binary files differ
diff --git a/src/imports/controls/material/images/arrow-indicator@4x.png b/src/imports/controls/material/images/arrow-indicator@4x.png
new file mode 100644
index 00000000..15b9a902
--- /dev/null
+++ b/src/imports/controls/material/images/arrow-indicator@4x.png
Binary files differ
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/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..eba8e74e 100644
--- a/src/imports/controls/plugins.qmltypes
+++ b/src/imports/controls/plugins.qmltypes
@@ -4,20 +4,53 @@ 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: "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" }
+ }
+ }
+ Component {
+ name: "QQuickColorImage"
+ defaultProperty: "data"
+ prototype: "QQuickImage"
+ exports: ["QtQuick.Controls.impl/ColorImage 2.3"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "color"; 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 +60,7 @@ Module {
exportMetaObjectRevisions: [0]
Property { name: "indeterminate"; type: "bool" }
Property { name: "progress"; type: "double" }
+ Property { name: "color"; type: "QColor" }
}
Component {
name: "QQuickDefaultStyle"
@@ -36,16 +70,11 @@ Module {
isSingleton: true
exportMetaObjectRevisions: [0]
Property { name: "backgroundColor"; type: "QColor"; isReadonly: true }
- Property { name: "overlayModalColor"; type: "QColor"; isReadonly: true }
- Property { name: "overlayDimColor"; type: "QColor"; isReadonly: true }
Property { name: "textColor"; type: "QColor"; isReadonly: true }
Property { name: "textDarkColor"; type: "QColor"; isReadonly: true }
Property { name: "textLightColor"; type: "QColor"; isReadonly: true }
- Property { name: "textLinkColor"; type: "QColor"; isReadonly: true }
- Property { name: "textSelectionColor"; type: "QColor"; isReadonly: true }
Property { name: "textDisabledColor"; type: "QColor"; isReadonly: true }
Property { name: "textDisabledLightColor"; 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 }
Property { name: "buttonColor"; type: "QColor"; isReadonly: true }
@@ -69,22 +98,59 @@ Module {
Property { name: "frameLightColor"; type: "QColor"; isReadonly: true }
Property { name: "scrollBarColor"; type: "QColor"; isReadonly: true }
Property { name: "scrollBarPressedColor"; type: "QColor"; isReadonly: true }
- Property { name: "progressBarColor"; type: "QColor"; isReadonly: true }
- Property { name: "pageIndicatorColor"; type: "QColor"; isReadonly: true }
- Property { name: "separatorColor"; type: "QColor"; isReadonly: true }
Property { name: "disabledDarkColor"; type: "QColor"; isReadonly: true }
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: "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"
defaultProperty: "data"
prototype: "QQuickText"
@@ -110,6 +176,20 @@ 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
+ }
+ Component {
prototype: "QQuickApplicationWindow"
name: "QtQuick.Controls/ApplicationWindow 2.0"
exports: ["QtQuick.Controls/ApplicationWindow 2.0"]
@@ -534,9 +614,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,6 +634,9 @@ 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" }
@@ -551,14 +644,104 @@ Module {
Signal { name: "toggled"; revision: 2 }
Signal { name: "pressAndHold" }
Signal { name: "doubleClicked" }
+ 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"
+ 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 +752,8 @@ 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" }
+ Signal { name: "paletteChanged"; revision: 3 }
}
Component {
name: "QQuickApplicationWindowAttached"
@@ -603,12 +788,15 @@ 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: "exclusiveChanged"; revision: 3 }
Signal {
name: "clicked"
revision: 1
@@ -719,9 +907,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 +944,12 @@ Module {
}
Method {
name: "removeItem"
+ Parameter { name: "item"; type: "QVariant" }
+ }
+ Method {
+ name: "takeItem"
+ revision: 3
+ type: "QQuickItem*"
Parameter { name: "index"; type: "int" }
}
}
@@ -762,8 +957,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 +981,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"
@@ -829,23 +1029,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, 0]
attachedType: "QQuickDialogButtonBoxAttached"
Enum {
name: "Position"
@@ -861,6 +1090,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 +1156,30 @@ 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: "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: "titleChanged"
+ Parameter { name: "title"; type: "string" }
+ }
+ Signal { name: "cascadeChanged"; revision: 3 }
+ Signal { name: "overlapChanged"; revision: 3 }
+ Signal { name: "delegateChanged"; revision: 3 }
+ Signal { name: "currentIndexChanged"; revision: 3 }
Method {
name: "itemAt"
type: "QQuickItem*"
@@ -955,17 +1201,81 @@ Module {
}
Method {
name: "removeItem"
+ Parameter { name: "item"; type: "QVariant" }
+ }
+ Method {
+ name: "takeItem"
+ revision: 3
+ type: "QQuickItem*"
+ 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: "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 }
}
}
Component {
name: "QQuickMenuItem"
defaultProperty: "data"
prototype: "QQuickAbstractButton"
- exports: ["QtQuick.Templates/MenuItem 2.0"]
- exportMetaObjectRevisions: [0]
+ 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"
@@ -1027,9 +1337,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: {
@@ -1079,6 +1390,7 @@ Module {
Property { name: "bottomPadding"; type: "double" }
Property { name: "locale"; type: "QLocale" }
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,6 +1402,8 @@ 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" }
@@ -1097,6 +1411,9 @@ Module {
Property { name: "enter"; type: "QQuickTransition"; isPointer: true }
Property { name: "exit"; type: "QQuickTransition"; isPointer: true }
Signal { name: "spacingChanged"; revision: 1 }
+ 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 }
@@ -1147,9 +1464,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: {
@@ -1165,6 +1483,8 @@ Module {
Property { name: "stepSize"; type: "double" }
Property { name: "snapMode"; type: "SnapMode" }
Property { name: "orientation"; type: "Qt::Orientation" }
+ Property { name: "horizontal"; revision: 3; type: "bool"; isReadonly: true }
+ Property { name: "vertical"; revision: 3; type: "bool"; isReadonly: true }
Property { name: "live"; revision: 2; type: "bool" }
Signal { name: "liveChanged"; revision: 2 }
Method {
@@ -1200,9 +1520,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 +1550,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 +1576,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 +1621,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: {
@@ -1313,6 +1642,8 @@ Module {
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 }
@@ -1333,9 +1664,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 +1680,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" }
}
@@ -1408,6 +1742,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"
@@ -1519,6 +1859,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 }
}
@@ -1558,6 +1900,7 @@ Module {
"QtQuick.Templates/TabBar 2.2"
]
exportMetaObjectRevisions: [0, 2]
+ attachedType: "QQuickTabBarAttached"
Enum {
name: "Position"
values: {
@@ -1572,6 +1915,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,6 +1946,7 @@ 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 }
@@ -1614,6 +1965,7 @@ Module {
revision: 1
Parameter { name: "event"; type: "QQuickMouseEvent"; isPointer: true }
}
+ Signal { name: "paletteChanged"; revision: 3 }
}
Component {
name: "QQuickTextAreaAttached"
@@ -1637,6 +1989,7 @@ 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 }
@@ -1655,6 +2008,7 @@ Module {
revision: 1
Parameter { name: "event"; type: "QQuickMouseEvent"; isPointer: true }
}
+ 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 315b2b8b..138e94e8 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();
+}
+
int QQuickDefaultBusyIndicator::elapsed() const
{
return m_elapsed;
diff --git a/src/imports/controls/qquickdefaultbusyindicator_p.h b/src/imports/controls/qquickdefaultbusyindicator_p.h
index 7daeabd1..f327c8de 100644
--- a/src/imports/controls/qquickdefaultbusyindicator_p.h
+++ b/src/imports/controls/qquickdefaultbusyindicator_p.h
@@ -49,16 +49,25 @@
//
#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)
public:
explicit QQuickDefaultBusyIndicator(QQuickItem *parent = nullptr);
+ QColor pen() const;
+ void setPen(const QColor &pen);
+
+ QColor fill() const;
+ void setFill(const QColor &fill);
+
int elapsed() const;
protected:
@@ -67,6 +76,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/qquickdefaultstyle.cpp b/src/imports/controls/qquickdefaultstyle.cpp
index 15c59798..736940dd 100644
--- a/src/imports/controls/qquickdefaultstyle.cpp
+++ b/src/imports/controls/qquickdefaultstyle.cpp
@@ -48,16 +48,6 @@ QColor QQuickDefaultStyle::backgroundColor() const
return QColor::fromRgba(0xFFFFFFFF);
}
-QColor QQuickDefaultStyle::overlayModalColor() const
-{
- return QColor::fromRgba(0x7F28282A);
-}
-
-QColor QQuickDefaultStyle::overlayDimColor() const
-{
- return QColor::fromRgba(0x1F28282A);
-}
-
QColor QQuickDefaultStyle::textColor() const
{
return QColor::fromRgba(0xFF353637);
@@ -73,16 +63,6 @@ QColor QQuickDefaultStyle::textLightColor() const
return QColor::fromRgba(0xFFFFFFFF);
}
-QColor QQuickDefaultStyle::textLinkColor() const
-{
- return QColor::fromRgba(0xFF45A7D7);
-}
-
-QColor QQuickDefaultStyle::textSelectionColor() const
-{
- return QColor::fromRgba(0xFFFDDD5C);
-}
-
QColor QQuickDefaultStyle::textDisabledColor() const
{
return QColor::fromRgba(0xFFBDBEBF);
@@ -98,11 +78,6 @@ QColor QQuickDefaultStyle::textPlaceholderColor() const
return QColor::fromRgba(0xFF777777);
}
-QColor QQuickDefaultStyle::focusColor() const
-{
- return QColor::fromRgba(0xFF0066FF);
-}
-
QColor QQuickDefaultStyle::focusLightColor() const
{
return QColor::fromRgba(0xFFF0F6FF);
@@ -218,29 +193,9 @@ QColor QQuickDefaultStyle::scrollBarPressedColor() const
return QColor::fromRgba(0xFF28282A);
}
-QColor QQuickDefaultStyle::progressBarColor() const
-{
- return QColor::fromRgba(0xFFE4E4E4);
-}
-
-QColor QQuickDefaultStyle::pageIndicatorColor() const
-{
- return QColor::fromRgba(0xFF28282A);
-}
-
-QColor QQuickDefaultStyle::separatorColor() const
-{
- return QColor::fromRgba(0xFFCCCCCC);
-}
-
QColor QQuickDefaultStyle::disabledDarkColor() const
{
return QColor::fromRgba(0xFF353637);
}
-QColor QQuickDefaultStyle::disabledLightColor() const
-{
- return QColor::fromRgba(0xFFBDBEBF);
-}
-
QT_END_NAMESPACE
diff --git a/src/imports/controls/qquickdefaultstyle_p.h b/src/imports/controls/qquickdefaultstyle_p.h
index fcd489a0..34000420 100644
--- a/src/imports/controls/qquickdefaultstyle_p.h
+++ b/src/imports/controls/qquickdefaultstyle_p.h
@@ -57,17 +57,12 @@ class QQuickDefaultStyle : public QObject
{
Q_OBJECT
Q_PROPERTY(QColor backgroundColor READ backgroundColor CONSTANT FINAL)
- Q_PROPERTY(QColor overlayModalColor READ overlayModalColor CONSTANT FINAL)
- Q_PROPERTY(QColor overlayDimColor READ overlayDimColor CONSTANT FINAL)
Q_PROPERTY(QColor textColor READ textColor CONSTANT FINAL)
Q_PROPERTY(QColor textDarkColor READ textDarkColor CONSTANT FINAL)
Q_PROPERTY(QColor textLightColor READ textLightColor CONSTANT FINAL)
- Q_PROPERTY(QColor textLinkColor READ textLinkColor CONSTANT FINAL)
- Q_PROPERTY(QColor textSelectionColor READ textSelectionColor CONSTANT FINAL)
Q_PROPERTY(QColor textDisabledColor READ textDisabledColor CONSTANT FINAL)
Q_PROPERTY(QColor textDisabledLightColor READ textDisabledLightColor CONSTANT FINAL)
Q_PROPERTY(QColor textPlaceholderColor READ textPlaceholderColor CONSTANT FINAL)
- Q_PROPERTY(QColor focusColor READ focusColor CONSTANT FINAL)
Q_PROPERTY(QColor focusLightColor READ focusLightColor CONSTANT FINAL)
Q_PROPERTY(QColor focusPressedColor READ focusPressedColor CONSTANT FINAL)
Q_PROPERTY(QColor buttonColor READ buttonColor CONSTANT FINAL)
@@ -91,18 +86,12 @@ class QQuickDefaultStyle : public QObject
Q_PROPERTY(QColor frameLightColor READ frameLightColor CONSTANT FINAL)
Q_PROPERTY(QColor scrollBarColor READ scrollBarColor CONSTANT FINAL)
Q_PROPERTY(QColor scrollBarPressedColor READ scrollBarPressedColor CONSTANT FINAL)
- Q_PROPERTY(QColor progressBarColor READ progressBarColor CONSTANT FINAL)
- Q_PROPERTY(QColor pageIndicatorColor READ pageIndicatorColor CONSTANT FINAL)
- Q_PROPERTY(QColor separatorColor READ separatorColor CONSTANT FINAL)
Q_PROPERTY(QColor disabledDarkColor READ disabledDarkColor CONSTANT FINAL)
- Q_PROPERTY(QColor disabledLightColor READ disabledLightColor CONSTANT FINAL)
public:
explicit QQuickDefaultStyle(QObject *parent = nullptr);
QColor backgroundColor() const;
- QColor overlayModalColor() const;
- QColor overlayDimColor() const;
QColor textColor() const;
QColor textDarkColor() const;
QColor textLightColor() const;
@@ -111,7 +100,6 @@ public:
QColor textDisabledColor() const;
QColor textDisabledLightColor() const;
QColor textPlaceholderColor() const;
- QColor focusColor() const;
QColor focusLightColor() const;
QColor focusPressedColor() const;
QColor buttonColor() const;
@@ -135,11 +123,7 @@ public:
QColor frameLightColor() const;
QColor scrollBarColor() const;
QColor scrollBarPressedColor() const;
- QColor progressBarColor() const;
- QColor pageIndicatorColor() const;
- QColor separatorColor() const;
QColor disabledDarkColor() const;
- QColor disabledLightColor() const;
};
QT_END_NAMESPACE
diff --git a/src/imports/controls/qquickdefaulttheme.cpp b/src/imports/controls/qquickdefaulttheme.cpp
new file mode 100644
index 00000000..a547b7ce
--- /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(0x4D353637));
+
+ 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 32270be0..dbb1e106 100644
--- a/src/imports/controls/qtquickcontrols2plugin.cpp
+++ b/src/imports/controls/qtquickcontrols2plugin.cpp
@@ -36,19 +36,25 @@
#include <QtCore/private/qfileselector_p.h>
#include <QtQuickControls2/qquickstyle.h>
+#include <QtQuickControls2/private/qquickcolor_p.h>
+#include <QtQuickControls2/private/qquickcolorimage_p.h>
+#include <QtQuickControls2/private/qquickiconimage_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 "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()
{
@@ -67,8 +73,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)
@@ -145,6 +154,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)
@@ -154,18 +170,24 @@ 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...
qmlRegisterType<QQuickDefaultBusyIndicator>(import, 2, 0, "BusyIndicatorImpl");
+ 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<QQuickPlaceholderText>(import, 2, 2, "PlaceholderText");
#if QT_CONFIG(quick_listview) && QT_CONFIG(quick_pathview)
qmlRegisterType<QQuickTumblerView>(import, 2, 1, "TumblerView");
@@ -174,6 +196,21 @@ void QtQuickControls2Plugin::initializeEngine(QQmlEngine *engine, const char *ur
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");
+
+ 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");
+}
+
+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 8f4b248d..a0ed3da5 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 d3d8690e..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,25 +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
- visible: control.text
- horizontalAlignment: Text.AlignLeft
- 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 a2ba0236..7e64ff1a 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
@@ -145,7 +145,6 @@ T.ComboBox {
implicitHeight: contentHeight
model: control.popup.visible ? control.delegateModel : null
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 420cf22d..75d6ba02 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 69b2cd9d..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,19 +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
- visible: control.text
- horizontalAlignment: Text.AlignLeft
- 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 35e2f2ba..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,27 +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
- visible: control.text
- horizontalAlignment: Text.AlignLeft
- 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 {
@@ -82,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..20a2932d 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
diff --git a/src/imports/controls/universal/RadioButton.qml b/src/imports/controls/universal/RadioButton.qml
index 5d778660..18cb8e92 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 e8b0216c..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,25 +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
- visible: control.text
- horizontalAlignment: Text.AlignLeft
- 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 2f30ebe5..3f0390f3 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 cec5c132..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,21 +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
- visible: control.text
- horizontalAlignment: Text.AlignLeft
- 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 ad07d0df..3d97f60d 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 a4ba85db..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,25 +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
- visible: control.text
- horizontalAlignment: Text.AlignLeft
- 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 45bcb6c8..c4fc9ea3 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/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