diff options
author | suVene | 2009-01-02 18:22:47 +0000 |
---|---|---|
committer | suVene | 2009-01-02 18:22:47 +0000 |
commit | fd596c870dbacce1f31bcf5cd58281931744c4a8 (patch) | |
tree | 86776653315a97367f41eea98cb8fd1375f5a9ea /notifier | |
parent | bb9f9df702dde21b8ec258121226c1abdfbf8589 (diff) | |
download | vimperator-plugins-fd596c870dbacce1f31bcf5cd58281931744c4a8.tar.bz2 |
add "subject_liberator_echomsg.js".
git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@27801 d0d07461-0603-4401-acd4-de1884942a52
Diffstat (limited to 'notifier')
-rwxr-xr-x | notifier/subject_liberator_echomsg.js | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/notifier/subject_liberator_echomsg.js b/notifier/subject_liberator_echomsg.js new file mode 100755 index 0000000..c435474 --- /dev/null +++ b/notifier/subject_liberator_echomsg.js @@ -0,0 +1,71 @@ +/*** BEGIN LICENSE BLOCK {{{ + Copyright (c) 2009 suVene<suvene@zeromemory.info> + + distributable under the terms of an MIT-style license. + http://www.opensource.jp/licenses/mit-license.html +}}} END LICENSE BLOCK ***/ +// PLUGIN_INFO//{{ +var PLUGIN_INFO = +<VimperatorPlugin> + <name>{NAME}</name> + <description>liberator.echomsg notice.</description> + <description lang="ja">liberator.echomsg 通知。</description> + <author mail="suvene@zeromemory.info" homepage="http://zeromemory.sblo.jp/">suVene</author> + <version>0.1.0</version> + <license>MIT</license> + <minVersion>2.0pre</minVersion> + <maxVersion>2.0pre</maxVersion> + <updateURL>http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk/notifier/subject_liberator_echomsg.js</updateURL> +</VimperatorPlugin>; +//}}} +(function() { + +var notifier = liberator.plugins.notifier; +if (!notifier) return; + +var libly = notifier.libly; +var $U = libly.$U; +var logger = $U.getLogger('subject_liberator_echomsg'); + +notifier.subject.register(notifier.Subject, { + interval: 5, + initialize: function() { + this.original = liberator.echomsg; + this.__updating__ = false; + this.messages = []; + + var self = this; + + liberator.echomsg = function(message) { + while (self.waiting) + liberator.sleep(100); + + logger.log('message: ' + message); + self.messages.push(message); + return self.original.apply(null, arguments); + }; + }, + check: function() { + try { + this.__updating__ = true; + if (!this.messages.length) return; + + var msg = '<ul><li>' + this.messages.join('</li><li>') + '</li></ul>'; + this.messages = []; + + this.notify(new notifier.Message('liberator.echomsg', msg)); + + } finally { + this.__updating__ = false; + } + }, + shutdown: function() { + liberator.echomsg = this.original; + this.__updating__ = false; + } + +}); + +})(); +// vim: set fdm=marker sw=4 ts=4 sts=0 et: + |