Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/html/sugar.js
diff options
context:
space:
mode:
Diffstat (limited to 'html/sugar.js')
-rw-r--r--html/sugar.js46
1 files changed, 46 insertions, 0 deletions
diff --git a/html/sugar.js b/html/sugar.js
new file mode 100644
index 0000000..164839a
--- /dev/null
+++ b/html/sugar.js
@@ -0,0 +1,46 @@
+// Enyo interface for Sugar
+
+enyo.Sugar = {};
+enyo.Sugar.component = null;
+enyo.Sugar.sendMessage = function(name, args) {
+ if (enyo.Sugar.component) {
+ enyo.Sugar.component.signal(name, JSON.parse(args));
+ }
+};
+
+enyo.kind({
+ name: "Sugar",
+
+ // Constructor, init component
+ create: function() {
+ this.inherited(arguments);
+ this.handlers = [];
+ enyo.Sugar.component = this;
+ },
+
+ // Connect a callback to a message
+ connect: function(name, callback) {
+ this.handlers[name] = callback;
+ },
+
+ // Send a message to Sugar
+ sendMessage: function(name, args) {
+ var msg = "";
+ msg = msg + "enyo://"+name.length+"/"+name;
+ if (!args)
+ msg = msg + "/0/";
+ else {
+ var value = JSON.stringify(args);
+ msg = msg + "/"+value.length+"/"+value;
+ }
+ console.log(msg);
+ },
+
+ // A message was sent by Sugar
+ signal: function(name, args) {
+ var callback = this.handlers[name];
+ if (callback) {
+ callback(args);
+ }
+ }
+});