blob: 881ee9bf3973cd74eff39271329740d83dea55ae (
plain)
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
73
|
// Copyright (C) 2018 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import QtQuick
import QtQuick.Window
import QtQuick.Layouts
import QtWayland.Compositor
import QtWayland.Compositor.XdgShell
WaylandCompositor {
// The output defines the screen.
WaylandOutput {
sizeFollowsWindow: true
window: Window {
width: 1024
height: 768
visible: true
Rectangle {
anchors.fill: parent
gradient: "MorpheusDen"
}
Repeater {
model: shellSurfaces
// ![decoration]
Column {
id: chrome
width: shellSurfaceItem.implicitWidth
Rectangle {
visible: modelData.toplevel.decorationMode === XdgToplevel.ServerSideDecoration
width: parent.width
height: 30
gradient: "HeavyRain";
Text {
text: modelData.toplevel.title
anchors.centerIn: parent
}
Item {
anchors.right: parent.right
width: 30
height: 30
Text { text: "X"; anchors.centerIn: parent }
TapHandler {
onTapped: modelData.toplevel.sendClose()
}
}
DragHandler {
target: chrome
}
}
ShellSurfaceItem {
id: shellSurfaceItem
moveItem: parent
shellSurface: modelData
onSurfaceDestroyed: shellSurfaces.remove(index)
}
}
// ![decoration]
}
}
}
// ![XdgShell]
XdgShell {
onToplevelCreated: shellSurfaces.append({shellSurface: xdgSurface});
}
XdgDecorationManagerV1 {
preferredMode: XdgToplevel.ServerSideDecoration
}
// ![XdgShell]
ListModel { id: shellSurfaces }
}
|