on 00a2ef4 help sign in
unity8/qml/Components/InputMethod.qml
97 lines 2.5 kB history raw
1/*
2 * Copyright (C) 2014,2015 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.4
18import Unity.Application 0.1
19import Ubuntu.Components 1.3
20import Ubuntu.Gestures 0.1
22Item {
23 id: root
25 Connections {
26 target: SurfaceManager
27 onSurfaceCreated: {
28 if (surface.type == Mir.InputMethodType) {
29 surfaceItem.surface = surface;
30 }
31 }
32 }
34 property int transitionDuration: UbuntuAnimation.FastDuration
36 MirSurfaceItem {
37 id: surfaceItem
38 anchors.fill: parent
40 consumesInput: true
42 surfaceWidth: width
43 surfaceHeight: height
45 onLiveChanged: {
46 if (surface !== null && !live) {
47 surface = null;
48 }
49 }
50 }
52 TouchGate {
53 x: UbuntuKeyboardInfo.x
54 y: UbuntuKeyboardInfo.y
55 width: UbuntuKeyboardInfo.width
56 height: UbuntuKeyboardInfo.height
58 targetItem: surfaceItem
59 }
61 state: {
62 if (surfaceItem.surface && surfaceItem.surfaceState != Mir.MinimizedState) {
63 return "shown";
64 } else {
65 return "hidden";
66 }
67 }
69 states: [
70 State {
71 name: "shown"
72 PropertyChanges {
73 target: root
74 visible: true
75 y: 0
76 }
77 },
78 State {
79 name: "hidden"
80 PropertyChanges {
81 target: root
82 visible: false
83 // half-way down because the vkb occupies only the lower half of the surface
84 // TODO: consider keyboard rotation
85 y: root.parent.height / 2.0
86 }
87 }
88 ]
90 transitions: [
91 Transition {
92 from: "*"; to: "*"
93 PropertyAction { property: "visible"; value: true }
94 UbuntuNumberAnimation { property: "y"; duration: transitionDuration }
95 }
96 ]