on 551c708 help sign in
unity8/plugins/Unity/Indicators/Messaging/qml/SimpleTextMessage.qml
108 lines 3.0 kB history raw
1/*
2 * Copyright 2013 Canonical Ltd.
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU Lesser 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 Lesser General Public License for more details.
12 *
13 * You should have received a copy of the GNU Lesser General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 *
16 * Authors:
17 * Renato Araujo Oliveira Filho <renato@canonical.com>
18 * Olivier Tilloy <olivier.tilloy@canonical.com>
19 */
21import QtQuick 2.0
22import Ubuntu.Components 0.1
23import Unity.Indicators 0.1
24import Utils 0.1 as Utils
26HeroMessage {
27 id: __heroMessage
29 property string title: ""
30 property var time
31 property string message: ""
33 property alias footer: footerLoader.sourceComponent
35 expandedHeight: fullMessage.y + fullMessage.height + units.gu(2)
36 heroMessageHeader.titleText.text: title
37 heroMessageHeader.subtitleText.text: timeFormatter.timeString
38 heroMessageHeader.bodyText.text: message
40 Item {
41 id: fullMessage
43 anchors {
44 left: parent.left
45 leftMargin: units.gu(2)
46 right: parent.right
47 rightMargin: units.gu(2)
48 top: heroMessageHeader.bottom
49 }
50 height: childrenRect.height
51 opacity: 0.0
52 enabled: false
54 Utils.TimeFormatter {
55 id: timeFormatter
56 time: __heroMessage.time
57 format: "hh:mm - MMM dd"
58 }
60 Label {
61 id: bodyText
62 anchors {
63 top: parent.top
64 left: parent.left
65 right: parent.right
66 }
67 wrapMode: Text.WordWrap
68 elide: Text.ElideRight
69 color: "#e8e1d0"
70 fontSize: "medium"
71 text: heroMessageHeader.bodyText.text
72 }
74 Loader {
75 id: footerLoader
77 anchors {
78 top: bodyText.bottom
79 topMargin: units.gu(2)
80 left: parent.left
81 right: parent.right
82 }
83 height: item != undefined ? units.gu(4) : 0
84 }
86 states: State {
87 name: "expanded"
88 when: __heroMessage.state === "expanded"
90 PropertyChanges {
91 target: heroMessageHeader.bodyText
92 opacity: 0.0
93 }
95 PropertyChanges {
96 target: fullMessage
97 opacity: 1.0
98 enabled: true
99 }
100 }
101 transitions: Transition {
102 NumberAnimation {
103 property: "opacity"
104 duration: 200
105 }
106 }
107 }