diff options
author | secondlife | 2009-02-17 12:48:22 +0000 |
---|---|---|
committer | secondlife | 2009-02-17 12:48:22 +0000 |
commit | 0591adeb5a0122efb2a2f21793e2b549d33ed61a (patch) | |
tree | 93a2532c4d1ec599233f0d518cca17f2f9d849c3 /tinymenu.js | |
parent | 49fce3bf0d9002bb89a356c0a986838bec8e6f4d (diff) | |
download | vimperator-plugins-0591adeb5a0122efb2a2f21793e2b549d33ed61a.tar.bz2 |
vimerator's tinymenu plugin
git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@30194 d0d07461-0603-4401-acd4-de1884942a52
Diffstat (limited to 'tinymenu.js')
-rw-r--r-- | tinymenu.js | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/tinymenu.js b/tinymenu.js new file mode 100644 index 0000000..d3a375b --- /dev/null +++ b/tinymenu.js @@ -0,0 +1,69 @@ +var PLUGIN_INFO = +<VimperatorPlugin> +<name>{NAME}</name> +<description>Tiny Menu for Vimperator </description> +<minVersion>2.0</minVersion> +<maxVersion>2.0</maxVersion> +<updateURL>http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk/tinymenu.js</updateURL> +<author mail="hotchpotch@gmail.com" homepage="http://d.hatena.ne.jp/secondlife/">Yuichi Tateno</author> +<license>MPL 1.1/GPL 2.0/LGPL 2.1</license> +<version>0.1</version> +<detail><![CDATA[ +append statusbar's menuicon like Tiny Menu [ https://addons.mozilla.org/en-US/firefox/addon/1455 ]. + +thx icon id:tnx. +]]></detail> +</VimperatorPlugin>; + +(function(){ + if (!liberator.plugins.tinymenu) + liberator.plugins.tinymenu = {}; + + let tinymenu = liberator.plugins.tinymenu; + if (tinymenu.menu) return; + + let p = function(msg) { + Application.console.log(msg); + } + + const ICON = 'data:image/png;base64,'+ + 'iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK'+ + '6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGiSURBVHja'+ + 'jFPLSsNQEJ30kZK+Nkk3zUoQuhKErK0gCHHlN5SCUFoImEU3LgVBiFAQhIIf4UIo'+ + 'CIJ/oO3KbWm7aLorJTQg9UxsYxKi7cDhPuaec+femRFqtRpFrAJcAMfA4XrvHXgD'+ + 'usBn8HAqQr4ErlVVlXK5HEmS5G06jqMtFgttPB43sLwC7qICIvCkKIpeKpUok8mE'+ + 'VLPZrIdisSjZtm3NZrNTbJ8D7kbgFkQdN5Miy/SfqeUyffT7OoRusDRZ4ABoleFg'+ + 'O6pWyTTNEMmyrNB6atsEAQPTRxao4+akIAg/zumU2u12mIC9oCUSCWIO/qTOAjre'+ + '5js1TYsNvdls/qapUqFCocBTnQX2RFEMHTYMI7TudDoeKWjpdNr7klTcbUzYZusn'+ + 'J1lg6LrufjB1cRFEDRwehizQm8/nraDALhGAw8MLC3RHo1FDlmU/E9siWK1WhAx8'+ + 'bdI4AB4mk0mLC2mXCHCWh3vmCutm8ksZNR9L4iwsl0suIEIp96KlzD9yBoffTPl8'+ + 'PthMHhFhO38108bY8YyD3M4nkXZ+jWvnbwEGAKqdlwtH3ubkAAAAAElFTkSuQmCC'; + + if (!tinymenu.popup) { + let menus = Array.slice(document.getElementById('main-menubar').childNodes); + let popup = document.createElement('menupopup'); + menus.reverse().forEach(function(elem) popup.appendChild(elem.cloneNode(true))); + popup.setAttribute('id', 'gimperator-tinymenu-popup'); + tinymenu.popup = popup; + } + + if (!tinymenu.menu) { + let menu = document.createElement('statusbarpanel'); + menu.setAttribute('id', 'vimperator-tinymenu'); + menu.setAttribute('class','statusbarpanel-iconic'); + menu.setAttribute('src', ICON); + tinymenu.menu = menu; + } + + let menu = tinymenu.menu; + let popup = tinymenu.popup; + + menu.addEventListener('click', function(event) { + if (popup.state == 'closed') + popup.openPopup(menu, 'before_end', 0, 0, false, true); + }, false); + + //document.getElementById('status-bar').insertBefore(menu, document.getElementById('security-button').nextSibling); + document.getElementById('status-bar').appendChild(popup); + document.getElementById('status-bar').appendChild(menu); +})(); |