summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTomasz Olszak <olszak.tomasz@gmail.com>2013-06-19 17:56:50 +0000
committerJarosław Staniek <staniek@kde.org>2013-06-20 00:22:51 +0200
commiteb7fcb15dba665c546bc2f401bdfb2fe9c4a59d6 (patch)
treedcf65e3f7152d49e72963b36ae6e196e9facea4f
parent4b43c743f1f34090562f3a506a2e9647a44e2b66 (diff)
Added Popup Control
Change-Id: I6e00775ea87bf891ccf8f281407a126507ee21c4 Reviewed-by: Jarosław Staniek <staniek@kde.org>
-rw-r--r--examples/touch/content/CheckBoxPage.qml35
-rw-r--r--src/controls/Popup.qml62
-rw-r--r--src/controls/controls.pro3
-rw-r--r--src/controls/qmldir1
-rw-r--r--src/styles/DefaultSettings.js15
-rw-r--r--src/styles/PopupStyle.qml109
-rw-r--r--src/styles/qmldir1
-rw-r--r--src/styles/styles.pro3
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 += \