summaryrefslogtreecommitdiffstats
path: root/sample/app/main.qml
diff options
context:
space:
mode:
Diffstat (limited to 'sample/app/main.qml')
-rw-r--r--sample/app/main.qml104
1 files changed, 82 insertions, 22 deletions
diff --git a/sample/app/main.qml b/sample/app/main.qml
index b9f415b..b545c53 100644
--- a/sample/app/main.qml
+++ b/sample/app/main.qml
@@ -7,8 +7,8 @@ import AGL.Demo.Controls 1.0
ApplicationWindow {
id: root
visible: true
- width: 1080
- height: 1487
+ width: Screen.width
+ height: Screen.height
property string onsId: qsTr("onscreenapp")
property string onsTitle: qsTr("One Button title")
@@ -19,6 +19,15 @@ ApplicationWindow {
property string onsButton3: qsTr("")
property string postmsg: qsTr("")
property string btndata: qsTr("")
+ property int pid: -1
+ property bool onscreen_role_set: false
+
+ property string mapp_id: ''
+ property string mapp_data_msg: ''
+
+ // position of the pop-up
+ property int x: 200
+ property int y: 200
Label {
id: title
@@ -37,24 +46,24 @@ ApplicationWindow {
anchors.horizontalCenter: title.horizontalCenter
// show received reply information area
- Flickable {
- id: flickable
- width: 800
- height: 320
- Layout.alignment: Qt.AlignCenter
- flickableDirection: Flickable.VerticalFlick
- boundsBehavior: Flickable.StopAtBounds
-
- TextArea.flickable: TextArea {
- id: output
- text: "show received reply information area\n...\n...\n...\n...\n"
- font.pixelSize: 24
- wrapMode: TextArea.Wrap
- color: '#00ADDC'
- }
-
- ScrollBar.vertical: ScrollBar { }
- }
+ //Flickable {
+ // id: flickable
+ // width: 400
+ // height: 220
+ // Layout.alignment: Qt.AlignCenter
+ // flickableDirection: Flickable.VerticalFlick
+ // boundsBehavior: Flickable.StopAtBounds
+
+ // TextArea.flickable: TextArea {
+ // id: output
+ // text: "show received reply information area\n...\n...\n...\n...\n"
+ // font.pixelSize: 12
+ // wrapMode: TextArea.Wrap
+ // color: '#00ADDC'
+ // }
+
+ // ScrollBar.vertical: ScrollBar { }
+ // }
// select onscreen type area
GroupBox {
@@ -316,6 +325,26 @@ ApplicationWindow {
onsButton3 = qsTr("")
}
+ Timer {
+ id: activate_timer
+ interval: 500
+ running: false
+ repeat: false
+ onTriggered: {
+ console.log("calling eventHandler.showWindow for " + mapp_id + " and data msg " + mapp_data_msg)
+ eventHandler.showWindow(mapp_id, mapp_data_msg)
+ mapp_id = ''
+ mapp_data_msg = ''
+ }
+ }
+
+
+ function armTimer(app_id, msg) {
+ mapp_id = app_id
+ mapp_data_msg = msg
+ activate_timer.running = true
+ }
+
function postMessage() {
console.log("poster pressed")
btndata = ""
@@ -339,11 +368,42 @@ ApplicationWindow {
else
postmsg += "}"
- eventHandler.showWindow(onsId, postmsg);
+ if (!onscreen_role_set) {
+ console.log("onscreen_role_set is not set")
+ eventHandler.set_window_popup(onsId, x, y)
+ console.log("setting for popup for " + onsId)
+ onscreen_role_set = true
+ }
+
+ // if the application is not already started, start it
+ if (pid === -1) {
+ // if the application is not started, then the first time
+ // we start we also display it using the default policy engine
+ pid = eventHandler.start(onsId, postmsg)
+ console.log("calling eventHandler.start for " + onsId + " with pid " + pid)
+
+ // this is necessary jus the first time as we don't queue the
+ // 'activate_app' event and pass it over once onscreenapp is
+ // started. It is implementation detail in case it is required
+ console.log("calling armTimer for " + onsId)
+ armTimer(onsId, postmsg)
+ } else {
+ // onscreenapp is already start we just need to activate + pass the data
+ if (!eventHandler.is_running(onsId) && pid > 0) {
+ // this is mostly for testing, in case onscreenapp died
+ // unexpectedly
+ eventHandler.set_window_popup(onsId, x, y)
+ pid = eventHandler.start(onsId, postmsg)
+ armTimer(onsId, postmsg)
+ } else {
+ eventHandler.showWindow(onsId, postmsg)
+ }
+ }
+
}
function qmlOnReplyShowWindow(text) {
console.log("onstestapp received:",text);
- output.text = text;
+ //output.text = text;
}
}