From 0591adeb5a0122efb2a2f21793e2b549d33ed61a Mon Sep 17 00:00:00 2001 From: secondlife Date: Tue, 17 Feb 2009 12:48:22 +0000 Subject: vimerator's tinymenu plugin git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@30194 d0d07461-0603-4401-acd4-de1884942a52 --- tinymenu.js | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 tinymenu.js (limited to 'tinymenu.js') 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 = + +{NAME} +Tiny Menu for Vimperator +2.0 +2.0 +http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk/tinymenu.js +Yuichi Tateno +MPL 1.1/GPL 2.0/LGPL 2.1 +0.1 + +; + +(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); +})(); -- cgit v1.2.3