diff options
author | obscuren <geffobscura@gmail.com> | 2014-09-19 19:33:15 +0800 |
---|---|---|
committer | obscuren <geffobscura@gmail.com> | 2014-09-19 19:34:37 +0800 |
commit | ae1de6593c31fbaa4429588cea2702dd5b01a722 (patch) | |
tree | d19c960d08524f0c5449ba87ab7ef4054b782b32 /mist/assets/ext/pre.js | |
parent | 723074e71bbe1638a5cec9b996b1eed07a76fd72 (diff) | |
download | go-tangerine-ae1de6593c31fbaa4429588cea2702dd5b01a722.tar go-tangerine-ae1de6593c31fbaa4429588cea2702dd5b01a722.tar.gz go-tangerine-ae1de6593c31fbaa4429588cea2702dd5b01a722.tar.bz2 go-tangerine-ae1de6593c31fbaa4429588cea2702dd5b01a722.tar.lz go-tangerine-ae1de6593c31fbaa4429588cea2702dd5b01a722.tar.xz go-tangerine-ae1de6593c31fbaa4429588cea2702dd5b01a722.tar.zst go-tangerine-ae1de6593c31fbaa4429588cea2702dd5b01a722.zip |
renamed
Diffstat (limited to 'mist/assets/ext/pre.js')
-rw-r--r-- | mist/assets/ext/pre.js | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/mist/assets/ext/pre.js b/mist/assets/ext/pre.js new file mode 100644 index 000000000..3e8a534e9 --- /dev/null +++ b/mist/assets/ext/pre.js @@ -0,0 +1,37 @@ +// Helper function for generating pseudo callbacks and sending data to the QML part of the application +function postData(data, cb) { + data._seed = Math.floor(Math.random() * 1000000) + if(cb) { + eth._callbacks[data._seed] = cb; + } + + if(data.args === undefined) { + data.args = []; + } + + navigator.qt.postMessage(JSON.stringify(data)); +} + +navigator.qt.onmessage = function(ev) { + var data = JSON.parse(ev.data) + + if(data._event !== undefined) { + eth.trigger(data._event, data.data); + } else { + if(data._seed) { + var cb = eth._callbacks[data._seed]; + if(cb) { + // Figure out whether the returned data was an array + // array means multiple return arguments (multiple params) + if(data.data instanceof Array) { + cb.apply(this, data.data) + } else { + cb.call(this, data.data) + } + + // Remove the "trigger" callback + delete eth._callbacks[ev._seed]; + } + } + } +} |