diff options
author | wlt_lain | 2013-05-09 03:28:06 -0700 |
---|---|---|
committer | wlt_lain | 2013-05-09 03:50:24 -0700 |
commit | 4101b2c7b7efedd9a12fb5097e4d960272a31d17 (patch) | |
tree | 14ecbfd88790e8aff1638c1547afb9c20f338d12 | |
parent | d85e6a3a1ff6f97644cfaaf395b629cd2ba30f9f (diff) | |
download | vimperator-plugins-4101b2c7b7efedd9a12fb5097e4d960272a31d17.tar.bz2 |
修正:statusbar_panel.jsからE4X削除対応完了。ダブり表示問題対応。
-rw-r--r-- | statusbar_panel.js | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/statusbar_panel.js b/statusbar_panel.js index fe2a52b..4720ff7 100644 --- a/statusbar_panel.js +++ b/statusbar_panel.js @@ -6,7 +6,7 @@ let INFO = xml` //{{{ xmlns="http://vimperator.org/namespaces/liberator"> <author href="http://d.hatena.ne.jp/wlt/" email="wltlain@gmail.com">wlt</author> <license href="http://www.opensource.org/licenses/mit-license.php">MIT License</license> - <project name="vimperator" minVersion="2.3.1"/> + <project name="vimperator" minVersion="3.6"/> <p> ステータスバー(アドオンバー)にあるパネル(アイコン)をクリックするコマンドを提供します。 </p> @@ -32,6 +32,7 @@ let INFO = xml` //{{{ </plugin>`; //}}} +// https://developer.mozilla.org/en-US/docs/DOM/event.button let MOUSE_BUTTON_LEFT = 0; let MOUSE_BUTTON_MIDDLE = 1; let MOUSE_BUTTON_RIGHT = 2; @@ -44,7 +45,7 @@ function getImages(panel) { var anonymousNodes = document.getAnonymousNodes(panel); for (let [k, anonymousNode] in Iterator(anonymousNodes)) { let node; - let result = document.evaluate('descendant-or-self::xul:image', anonymousNode, function() XUL.uri, XPathResult.ORDERED_NODE_ITERATOR_TYPE, null); + let result = document.evaluate('descendant-or-self::xul:image', anonymousNode, function() XUL, XPathResult.ORDERED_NODE_ITERATOR_TYPE, null); while ((node = result.iterateNext())) images.push(node); } @@ -52,27 +53,28 @@ function getImages(panel) { } function makeIcon(panel) { - var icon = xml`<image xmlns=${XUL.uri}/>`; + var icon = xml`<image xmlns=${XUL}/>`; var image = getImages(panel)[0]; if (image) { let style = window.getComputedStyle(image, null); let src = image.src || style.listStyleImage.replace(/^url\("(.+)"\)$/, '$1'); if (src != '') { - icon.setAttribute('style','list-style-image: url("' + src + '");' + '-moz-image-region: ' + style.MozImageRegion); + let style_attr = `list-style-image: url("${src}"); -moz-image-region: ${style.MozImageRegion}`; + icon = xml`<image xmlns=${XUL} style=${style_attr}/>`; } } return icon; } function generateStatusbarpaneIDlList(filter) { - var panels = document.getElementsByTagNameNS(XUL.uri, 'statusbarpanel'); - for ([k, p] in Iterator(panels)) { - if (p.hidden != true) { + var panels = document.getElementsByTagNameNS(XUL, 'statusbarpanel'); + for (let i = 0; i < panels.length; i++) { + if (panels[i].hidden != true) { yield { - text: p.id, + text: panels[i].id, desc: 'statusbarpanel', - icon: makeIcon(p) + icon: makeIcon(panels[i]) }; } } @@ -115,7 +117,7 @@ commands.addUserCommand(['statusbarpanel'],'click statusbar panel', liberator.echoerr('No such statusbar panel: ' + id); return; } - var button = MOUSE_BUTTON_LEFT; + var button; switch (args['-button']) { case 'm': button = MOUSE_BUTTON_MIDDLE; break; case 'r': button = MOUSE_BUTTON_RIGHT; break; @@ -139,7 +141,7 @@ commands.addUserCommand(['statusbarpanel'],'click statusbar panel', context.keys = { text: 'text', description: 'desc', icon: 'icon' }; context.compare = CompletionContext.Sort.unsorted; context.process = [function (item, text) { - return xml`<span highlight="CompIcon">{item.icon ? item.icon : ``}</span><span class="td-strut"/>{text}` + return xml`<span highlight="CompIcon">${item.icon ? item.icon : ``}</span><span class="td-strut"/>${text}` }]; var list = generateStatusbarpaneIDlList(arg); |