Change parent object of some appwidget API
[platform/framework/web/web-provider.git] / src / Core / View / injection.js
1 // set javascript objects for Web APIs of Tizen appwidget
2 if (typeof window.tizen == 'undefined') {
3     console.log("window.tizen object not exists");
4     window.tizen = new Object();
5     window.tizen.appwidget = new Object();
6 }
7
8 // For future, only window.appwidget will be used
9 window.appwidget = new Object();
10
11 // these are functions for overriding standard javascript functions regarding event
12 var original_addEventListener = window.addEventListener;
13 var original_removeEventListener = window.removeEventListener;
14
15 // this variable is responsible to keep information of appwidget evetns
16 var appWidgetEvents = {};
17
18 // define event structure for appwidget
19 window.AppWidgetEventInfo = function(event, callback) {
20     this.event = event;
21     this.callback = callback;
22 };
23
24 window.addEventListener = function(event, callback, capture) {
25     var e = event.toLowerCase();
26     if (typeof appWidgetEvents[e] != 'undefined') {
27         appWidgetEvents[e].callback = callback;
28     } else {
29         original_addEventListener.call(window, event, callback, capture);
30     }
31 };
32
33 window.removeEventListener = function(event, callback, capture) {
34     var e = event.toLowerCase();
35     if (typeof appWidgetEvents[e] != "undefined") {
36         appWidgetEvents[e].callback = "null";
37     } else {
38         original_removeEventListener.call(window, event, callback, capture);
39     }
40 };
41
42 window.appwidget.reload = function() {
43     window.location.href = "box://reload";
44 }
45
46 window.appwidget.changePeriod = function(period) {
47     switch (arguments.length) {
48     case 0:
49         window.location.href = "box://change-period";
50         break;
51     case 1:
52         window.location.href = "box://change-period?period=" + period;
53         break;
54     default:
55         window.location.href = "box://change-period";
56         break;
57     }
58 }
59
60 window.appwidget.launchBrowser = function(url) {
61     window.location.href = "box://launch-browser?url=" + url;
62 }
63
64 window.appwidget.scrollStart = function() {
65     window.location.href = "box://scroll-start";
66 }
67
68 window.appwidget.scrollStop = function() {
69     window.location.href = "box://scroll-stop";
70 }
71
72 window.appwidget.sendMessageToBox = function(message) {
73     window.location.href = "box://send-message-to-box?message=" + message;
74 }
75
76 window.appwidget.sendMessageToPd = function(message) {
77     window.location.href = "box://send-message-to-pd?message=" + message;
78 }
79
80 var webprovider = {
81     // define specific function for registering appwidget event
82     registerAppWidgetEvent: function(event) {
83         return (appWidgetEvents[event] = new AppWidgetEventInfo(event, "null"));
84     },
85
86     // define specific function for firing registered appwidget event
87     fireAppWidgetEvent: function(event, data) {
88         // this is called by web-provider, which is native code
89         if (typeof appWidgetEvents[event] != 'undefined') {
90             setTimeout(function() {
91                 appWidgetEvents[event].callback(data);
92             }, 0);
93             console.log("fire appwidget event: " + event);
94         } else {
95             console.log("unknown appwidget event: " + event);
96         }
97     },
98 }
99
100 // register custom events for appwidget
101 webprovider.registerAppWidgetEvent("pdmessage");
102 webprovider.registerAppWidgetEvent("boxmessage");
103
104 // These objects will be deprecated soon
105 window.tizen.appwidget.reload = window.appwidget.reload;
106 window.tizen.appwidget.changePeriod = window.appwidget.changePeriod;
107 window.tizen.appwidget.launchBrowser = window.appwidget.launchBrowser;
108 window.tizen.appwidget.scrollStart = window.appwidget.scrollStart;
109 window.tizen.appwidget.scrollStop = window.appwidget.scrollStop;