1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
|
// Copyright (C) 2021 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import QtQuick
import QtWayland.Compositor
import QtQuick.Layouts
import QtQuick.Controls
import io.qt.examples 1.0
WaylandCompositor {
id: comp
ListModel { id: shellSurfaces }
WaylandOutput {
sizeFollowsWindow: true
window: Window {
width: 1024
height: 768
visible: true
ColumnLayout {
anchors.fill: parent
spacing: 0
Image {
fillMode: Image.Tile
source: "qrc:/images/background.png"
smooth: false
Layout.fillHeight: true
Layout.fillWidth: true
GridLayout {
columns: 3
Repeater {
model: shellSurfaces
ShellSurfaceItem {
id: chrome
shellSurface: modelData
visible: !shellSurface.minimized
onSurfaceDestroyed: shellSurfaces.remove(index)
}
}
}
}
Row {
id: taskbar
Layout.fillWidth: true
Repeater {
model: shellSurfaces
Button {
id: minimizeButton
checkable: true
text: modelData.windowTitle
onCheckedChanged: modelData.minimized = checked
checked: modelData.minimized
}
}
}
}
}
}
//! [ExampleShell]
ExampleShell {
id: shell
onShellSurfaceCreated: (shellSurface) => {
shellSurfaces.append({shellSurface: shellSurface});
}
}
//! [ExampleShell]
}
|