on daa5708 help sign in
unity8/qml/Components/InputMethod.qml
92 lines 2.4 kB history raw
1/*
2 * Copyright (C) 2014 Canonical, Ltd.
3 *
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.
7 *
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.
12 *
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/>.
15 */
17import QtQuick 2.0
18import Unity.Application 0.1
19import Ubuntu.Components 0.1
20import Ubuntu.Gestures 0.1
22Item {
23 id: root
25 property var surface: null
27 property int transitionDuration: UbuntuAnimation.FastDuration
29 Binding { target: surface; property: "z"; value: 0 }
31 TouchGate {
32 x: UbuntuKeyboardInfo.x
33 y: UbuntuKeyboardInfo.y
34 z: 1
35 width: UbuntuKeyboardInfo.width
36 height: UbuntuKeyboardInfo.height
38 targetItem: root.surface
39 }
41 state: {
42 if (surface && surface.state != MirSurfaceItem.Minimized) {
43 return "shown";
44 } else {
45 return "hidden";
46 }
47 }
49 states: [
50 State {
51 name: "shown"
52 PropertyChanges {
53 target: root
54 visible: true
55 y: 0
56 }
57 },
58 State {
59 name: "hidden"
60 PropertyChanges {
61 target: root
62 visible: false
63 // half-way down because the vkb occupies only the lower half of the surface
64 // TODO: consider keyboard rotation
65 y: root.parent.height / 2.0
66 }
67 }
68 ]
70 transitions: [
71 Transition {
72 from: "*"; to: "*"
73 PropertyAction { property: "visible"; value: true }
74 UbuntuNumberAnimation { property: "y"; duration: transitionDuration }
75 }
76 ]
78 onSurfaceChanged: {
79 if (surface) {
80 surface.parent = root;
81 surface.anchors.fill = root;
82 }
83 }
85 Component.onDestruction: {
86 if (surface) {
87 surface.parent = null;
88 surface.release();
89 surface = null;
90 }
91 }