~thomas-moenicke/phablet-extras/maliit-plugins-url-layout

« back to all changes in this revision

Viewing changes to nemo-keyboard/qml/assets/FunctionKey.qml

  • Committer: Michael Hasselmann
  • Author(s): Jakub Pavelek
  • Date: 2011-12-07 15:41:47 UTC
  • Revision ID: git-v1:6f3e49eab01e931e2e3db359aac8235f8f7bf220
New: Nemo keyboard

RevBy: Jon Nordby, Michael Hasselmann
Added directory nemo-keyboard with implementation and modified
maliit-plugins.pro to build and install it.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * This file is part of Maliit plugins
 
3
 *
 
4
 * Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). All rights reserved.
 
5
 *
 
6
 * Contact: Jakub Pavelek <jpavelek@live.com>
 
7
 *
 
8
 * Redistribution and use in source and binary forms, with or without modification,
 
9
 * are permitted provided that the following conditions are met:
 
10
 *
 
11
 * Redistributions of source code must retain the above copyright notice, this list
 
12
 * of conditions and the following disclaimer.
 
13
 * Redistributions in binary form must reproduce the above copyright notice, this list
 
14
 * of conditions and the following disclaimer in the documentation and/or other materials
 
15
 * provided with the distribution.
 
16
 * Neither the name of Nokia Corporation nor the names of its contributors may be
 
17
 * used to endorse or promote products derived from this software without specific
 
18
 * prior written permission.
 
19
 *
 
20
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
 
21
 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
 
22
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
 
23
 * THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 
24
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 
25
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 
26
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
 
27
 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 
28
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
29
 *
 
30
 */
 
31
 
 
32
import Qt 4.7
 
33
import "KeyboardUiConstants.js" as UI
 
34
 
 
35
Item {
 
36
    id: aFunctKey
 
37
    property string icon: ""
 
38
    property string caption: ""
 
39
    property alias mouseArea: mouse_area
 
40
    property int fontSize: UI.FONT_SIZE
 
41
    property int sourceWidth: -1
 
42
    property int sourceHeight: -1
 
43
    property bool landscape: false
 
44
    signal clickedPass()
 
45
    signal released()
 
46
    signal pressedAndHoldPass()
 
47
 
 
48
 
 
49
    Image {
 
50
        id: leftBit
 
51
        source: (landscape) ? "meegotouch-keyboard-function-key-left-landscape.png" : "meegotouch-keyboard-function-key-left.png"
 
52
        anchors { left: parent.left; top: parent.top }
 
53
    }
 
54
    Image {
 
55
        id: midBit
 
56
        source: (landscape) ?  "meegotouch-keyboard-function-key-mid-landscape.png" :  "meegotouch-keyboard-function-key-mid.png"
 
57
        anchors { left: leftBit.right; top: parent.top; right: rightBit.left}
 
58
    }
 
59
    Image {
 
60
        id: rightBit
 
61
        source: (landscape) ?  "meegotouch-keyboard-function-key-right-landscape.png" : "meegotouch-keyboard-function-key-right.png"
 
62
        anchors { top: parent.top; right: parent.right }
 
63
    }
 
64
 
 
65
 
 
66
    MouseArea {
 
67
        id: mouse_area
 
68
        anchors.fill: parent
 
69
        onClicked: { clickedPass() }
 
70
        onPressed: aFunctKey.opacity = 0.6
 
71
        onCanceled: aFunctKey.opacity = 1
 
72
        onReleased: { parent.released(); aFunctKey.opacity = 1 }
 
73
        onPressAndHold: { pressedAndHoldPass() }
 
74
    }
 
75
 
 
76
    Image {
 
77
        anchors.centerIn: parent
 
78
        source: icon
 
79
        sourceSize.width: (sourceWidth == -1) ? width : sourceWidth
 
80
        sourceSize.height: (sourceHeight == -1) ? height : sourceHeight
 
81
    }
 
82
 
 
83
    Text {
 
84
        anchors.centerIn: parent
 
85
        horizontalAlignment: Text.AlignHCenter
 
86
        verticalAlignment: Text.AlignVCenter
 
87
        font.family: "sans"
 
88
        font.pixelSize: fontSize
 
89
        font.bold: true
 
90
        color: UI.TEXT_COLOR
 
91
        text: caption
 
92
    }
 
93
}