on e507710 help sign in
115 lines 3.3 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 as Indicators
25Indicators.BasicMenuItem {
26 id: __heroMessage
28 property variant actionsDescription: null
29 property variant action: menu && menu.action!="" && actionGroup ? actionGroup.action(menu.action) : null
30 property alias heroMessageHeader: __heroMessageHeader
31 property real collapsedHeight: heroMessageHeader.y + heroMessageHeader.bodyBottom + units.gu(2)
32 property real expandedHeight: collapsedHeight
34 color: "#221e1c"
36 removable: state !== "expanded"
37 implicitHeight: collapsedHeight
39 HeroMessageHeader {
40 id: __heroMessageHeader
42 anchors.top: parent.top
43 anchors.left: parent.left
44 anchors.right: parent.right
46 avatar: menu && (menu.extra.canonical_icon.length > 0) ? "image://gicon/" + encodeURI(menu.extra.canonical_icon) : "qrc:/indicators/artwork/messaging/default_contact.png"
47 icon: menu && (menu.extra.canonical_app_icon.length > 0) ? "image://gicon/" + encodeURI(menu.extra.canonical_app_icon) : ""
48 appIcon: icon
50 state: __heroMessage.state
52 onAppIconClicked: {
53 if (action && action.valid) {
54 deactivateMenu();
55 action.activate(true);
56 }
57 }
58 }
60 onClicked: {
61 if (menuActivated) {
62 deactivateMenu();
63 } else {
64 activateMenu();
65 }
66 }
68 Indicators.HLine {
69 id: __topHLine
70 anchors.top: parent.top
71 color: "#403b37"
72 }
74 Indicators.HLine {
75 id: __bottomHLine
76 anchors.bottom: parent.bottom
77 color: "#060606"
78 }
80 states: State {
81 name: "expanded"
82 when: menuActivated
84 PropertyChanges {
85 target: __heroMessage
86 color: "#333130"
87 implicitHeight: __heroMessage.expandedHeight
88 }
89 PropertyChanges {
90 target: __topHLine
91 opacity: 0.0
92 }
93 PropertyChanges {
94 target: __bottomHLine
95 opacity: 0.0
96 }
97 }
99 transitions: Transition {
100 ParallelAnimation {
101 NumberAnimation {
102 properties: "opacity,implicitHeight"
103 duration: 200
104 easing.type: Easing.OutQuad
105 }
106 ColorAnimation {}
107 }
108 }
110 onItemRemoved: {
111 if (action && action.valid) {
112 action.activate(false);
113 }
114 }