diff options
author | Tomasz Olszak <olszak.tomasz@gmail.com> | 2013-06-19 17:56:50 +0000 |
---|---|---|
committer | Jarosław Staniek <staniek@kde.org> | 2013-06-20 00:22:51 +0200 |
commit | eb7fcb15dba665c546bc2f401bdfb2fe9c4a59d6 (patch) | |
tree | dcf65e3f7152d49e72963b36ae6e196e9facea4f | |
parent | 4b43c743f1f34090562f3a506a2e9647a44e2b66 (diff) | |
download | qtquickcontrols-tizen-eb7fcb15dba665c546bc2f401bdfb2fe9c4a59d6.tar.gz qtquickcontrols-tizen-eb7fcb15dba665c546bc2f401bdfb2fe9c4a59d6.tar.bz2 qtquickcontrols-tizen-eb7fcb15dba665c546bc2f401bdfb2fe9c4a59d6.zip |
Added Popup Control
Change-Id: I6e00775ea87bf891ccf8f281407a126507ee21c4
Reviewed-by: Jarosław Staniek <staniek@kde.org>
-rw-r--r-- | examples/touch/content/CheckBoxPage.qml | 35 | ||||
-rw-r--r-- | src/controls/Popup.qml | 62 | ||||
-rw-r--r-- | src/controls/controls.pro | 3 | ||||
-rw-r--r-- | src/controls/qmldir | 1 | ||||
-rw-r--r-- | src/styles/DefaultSettings.js | 15 | ||||
-rw-r--r-- | src/styles/PopupStyle.qml | 109 | ||||
-rw-r--r-- | src/styles/qmldir | 1 | ||||
-rw-r--r-- | src/styles/styles.pro | 3 |
8 files changed, 226 insertions, 3 deletions
diff --git a/examples/touch/content/CheckBoxPage.qml b/examples/touch/content/CheckBoxPage.qml index 179fef1..7930364 100644 --- a/examples/touch/content/CheckBoxPage.qml +++ b/examples/touch/content/CheckBoxPage.qml @@ -36,6 +36,40 @@ Item { width: parent.width height: parent.height + Popup { + id:popup + Text { + text:"Center" + font.pixelSize: 60 + anchors.centerIn: parent + } + Text { + text:"Left" + font.pixelSize: 60 + anchors.left: parent.left + anchors.verticalCenter: parent.verticalCenter + } + Text { + text:"Right" + font.pixelSize: 60 + anchors.right: parent.right + anchors.verticalCenter: parent.verticalCenter + } + Text { + text:"Top" + font.pixelSize: 60 + anchors.top: parent.top + anchors.horizontalCenter: parent.horizontalCenter + } + Button { + anchors.bottom: parent.bottom + text: "Close" + width: 200 + onClicked: popup.hide() + anchors.horizontalCenter: parent.horizontalCenter + } + } + Column { spacing: 40 anchors.centerIn: parent @@ -47,6 +81,7 @@ Item { id:detail anchors.left:parent.right anchors.verticalCenter: parent.verticalCenter + onClicked: popup.popup() } } CheckBox { diff --git a/src/controls/Popup.qml b/src/controls/Popup.qml new file mode 100644 index 0000000..4f0fe46 --- /dev/null +++ b/src/controls/Popup.qml @@ -0,0 +1,62 @@ +/* + * Copyright (C) 2013 Tomasz Olszak <olszak.tomasz@gmail.com> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public License + * along with this library; see the file COPYING.LIB. If not, write to + * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +import QtQuick 2.1 +import QtQuick.Controls.Private 1.0 +import QtQuick.Controls.Styles.Tizen 1.0 + +Floater { + id:root + + anchors.centerIn:parent + + /* shows Menu */ + onVisibleChanged: { + if (visible) { + popup() + } else { + hide() + } + } + + function popup(){ + prvStyleData.state = "shown" + } + + function hide() { + prvStyleData.state = "hidden" + } + + property Component style: Qt.createComponent(Settings.style + "/PopupStyle.qml", root) + + Loader { + id: styleLoader + property QtObject styleData: prvStyleData + QtObject { + id: prvStyleData + property string state: "hidden" + } + + property Item __control: root + sourceComponent: style + } + + content: styleLoader.item && styleLoader.item.lookAndFeel +} + diff --git a/src/controls/controls.pro b/src/controls/controls.pro index 1438a88..b932d8e 100644 --- a/src/controls/controls.pro +++ b/src/controls/controls.pro @@ -6,7 +6,8 @@ QML_FILES += \ DetailButton.qml\ ContextMenu.qml\ SplitView.qml\ - ScrollDecorator.qml + ScrollDecorator.qml\ + Popup.qml CONFIG += force_independent diff --git a/src/controls/qmldir b/src/controls/qmldir index dce7ace..d79980a 100644 --- a/src/controls/qmldir +++ b/src/controls/qmldir @@ -5,3 +5,4 @@ DetailButton 1.0 DetailButton.qml ContextMenu 1.0 ContextMenu.qml SplitView 1.0 SplitView.qml ScrollDecorator 1.0 ScrollDecorator.qml +Popup 1.0 Popup.qml diff --git a/src/styles/DefaultSettings.js b/src/styles/DefaultSettings.js index 7ba54db..82499d8 100644 --- a/src/styles/DefaultSettings.js +++ b/src/styles/DefaultSettings.js @@ -1170,4 +1170,17 @@ var scroll = { } - +var popup = { + color: colors.B061L1, + source: images.img_00_popup_bg_9, + effectSource: images.img_00_popup_bg_ef_9, + text: { + color: colors.B063L9 + }, + margins: { + top: 14+3, + bottom: 34+3, + left: 16+3, + right: 16+3 + } +} diff --git a/src/styles/PopupStyle.qml b/src/styles/PopupStyle.qml new file mode 100644 index 0000000..3a33f0a --- /dev/null +++ b/src/styles/PopupStyle.qml @@ -0,0 +1,109 @@ +/* + * Copyright (C) 2013 Tomasz Olszak <olszak.tomasz@gmail.com> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public License + * along with this library; see the file COPYING.LIB. If not, write to + * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +import QtQuick 2.1 +import QtQuick.Controls 1.0 +import QtQuick.Controls.Private 1.0 +import QtQuick.Controls.Tizen 1.0 +import "DefaultSettings.js" as Theme + +Style { + id: style + + property Popup control: __control + + property Component lookAndFeel: Item { + id: contentItem + anchors.fill: parent + implicitWidth: control.root.width - 100 + implicitHeight: 2*control.root.height/3 + Rectangle { + x: -(control.root.width-contentItem.width)/2 + y: -(control.root.height-contentItem.height)/2 + width:control.root.width + height:control.root.height + color:"#AA000000" + } + + TizenBorderImage { + id: contentOfControl + anchors.fill: parent + source: Theme.popup.source + effectSource: Theme.popup.effectSource + backgroundColor: Theme.popup.color + anchors.topMargin: -Theme.popup.margins.top + anchors.leftMargin: -Theme.popup.margins.left + anchors.rightMargin: -Theme.popup.margins.right + anchors.bottomMargin: -Theme.popup.margins.bottom + } + + state: styleData.state === "hidden" ? "contentHidden" : "contentShown" + + states: [ + State { + name:"contentHidden" + PropertyChanges { + target: control + opacity:0 + } + }, + State { + name:"contentShown" + PropertyChanges { + target: control + opacity:0 + } + } + ] + + transitions: [ + Transition { + to: "contentHidden" + SequentialAnimation { + NumberAnimation { + target: control + property: "opacity" + duration: 250 + } + PropertyAction { + target: control + property: "visible" + value:false + } + } + }, + Transition { + to: "contentShown" + SequentialAnimation { + PropertyAction { + target: control + property: "visible" + value:true + } + NumberAnimation { + target: control + property: "opacity" + to: 1 + duration: 250 + } + } + } + ] + } +} diff --git a/src/styles/qmldir b/src/styles/qmldir index 2eea0a8..be86051 100644 --- a/src/styles/qmldir +++ b/src/styles/qmldir @@ -11,5 +11,6 @@ SwitchStyle 1.0 SwitchStyle.qml DetailButtonStyle 1.0 DetailButtonStyle.qml ScrollDecoratorStyle 1.0 ScrollDecoratorStyle.qml ContextMenuStyle 1.0 ContextMenuStyle.qml +PopupStyle 1.0 PopupStyle.qml Theme 1.0 DefaultSettings.js diff --git a/src/styles/styles.pro b/src/styles/styles.pro index 8630d8b..269c319 100644 --- a/src/styles/styles.pro +++ b/src/styles/styles.pro @@ -13,7 +13,8 @@ QML_FILES = \ DetailButtonStyle.qml\ DefaultSettings.js\ ScrollDecoratorStyle.qml\ - ContextMenuStyle.qml + ContextMenuStyle.qml\ + PopupStyle.qml # Images QML_FILES += \ |