2 * Copyright (C) 2015-2016 Canonical, Ltd.
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; version 3.
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
18 import Ubuntu.Components 1.3
24 // Controls to be set from outside
25 property QtObject applicationManager
26 property QtObject topLevelSurfaceList
27 property bool altTabPressed
28 property url background
29 property bool beingResized
30 property int dragAreaWidth
31 property real dragProgress // How far left the stage has been dragged, used externally by tutorial code
32 property bool interactive
33 property real inverseProgress // This is the progress for left edge drags, in pixels.
34 property bool keepDashRunning: true
35 property real maximizedAppTopMargin
36 property real nativeHeight
37 property real nativeWidth
38 property QtObject orientations
39 property int shellOrientation
40 property int shellOrientationAngle
41 property bool spreadEnabled: true // If false, animations and right edge will be disabled
42 property bool suspended
43 // A Stage should paint a wallpaper etc over its full size but not use the margins for window placement
44 property int leftMargin: 0
45 property alias paintBackground: background.visible
46 property bool oskEnabled: false
48 // To be read from outside
49 property var mainApp: null
50 property int mainAppWindowOrientationAngle: 0
51 property bool orientationChangesEnabled
52 property int supportedOrientations: Qt.PortraitOrientation
53 | Qt.LandscapeOrientation
54 | Qt.InvertedPortraitOrientation
55 | Qt.InvertedLandscapeOrientation
57 signal stageAboutToBeUnloaded
58 signal itemSnapshotRequested(Item item)
60 // Shared code for use in stage implementations
62 id: lifecycleExceptions
63 schema.id: "com.canonical.qtmir"
66 function isExemptFromLifecycle(appId) {
67 var shortAppId = appId.split('_')[0];
68 for (var i = 0; i < lifecycleExceptions.lifecycleExemptAppids.length; i++) {
69 if (shortAppId === lifecycleExceptions.lifecycleExemptAppids[i]) {