aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoranekos2015-03-19 09:58:29 +0900
committeranekos2015-03-19 09:58:29 +0900
commitebbd6efbe3ebd06e8ec5bfc8580dd66b611b327d (patch)
treed543a8185363ef07fcc11b1570803a7073c1639a
parentb0c8d8abcec5e68c7c2aa95bae32ed536ff73257 (diff)
parent709756a927e29d968fdd8b83724c2aad2efcc78f (diff)
downloadvimperator-plugins-ebbd6efbe3ebd06e8ec5bfc8580dd66b611b327d.tar.bz2
Merge pull request #76 from c0ffeeartc/patch-1
close all submenus on closing child, removed icon
-rw-r--r--tinymenu.js52
1 files changed, 8 insertions, 44 deletions
diff --git a/tinymenu.js b/tinymenu.js
index d25179b..0b4ae02 100644
--- a/tinymenu.js
+++ b/tinymenu.js
@@ -9,9 +9,7 @@ var PLUGIN_INFO = xml`
<license>MPL 1.1/GPL 2.0/LGPL 2.1</license>
<version>0.2</version>
<detail><![CDATA[
-append statusbar's menuicon like Tiny Menu [ https://addons.mozilla.org/firefox/addon/1455 ].
-
-thx icon id:tnx.
+open statusbar menu like Tiny Menu [ https://addons.mozilla.org/firefox/addon/1455 ] through ':opentinymenu' command.
== Commands ==
:opentinymenu:
@@ -20,63 +18,29 @@ thx icon id:tnx.
</VimperatorPlugin>`;
(function() {
- if (!liberator.plugins.tinymenu)
+ if (!liberator.plugins.tinymenu) {
liberator.plugins.tinymenu = {};
+ }
let tinymenu = liberator.plugins.tinymenu;
- if (tinymenu.menu) return;
- let p = function(msg) {
- Application.console.log(msg);
- };
+ if (tinymenu.popup) return;
- 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');
+ popup.setAttribute('id', 'vimperator-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);
+ popup.addEventListener( 'popuphidden' , function(event) { popup.hidePopup(); } , false);
commands.addUserCommand(
['opentinymenu'],
'Open the tiny menu ',
function () {
- popup.openPopup(menu, 'before_end', 0, 0, false, true);
+ popup.openPopup(document.getElementById('status-bar'), 'before_end', 0, 0, false, true);
},
- true
- );
+ true);
- //document.getElementById('status-bar').insertBefore(menu, document.getElementById('security-button').nextSibling);
document.getElementById('status-bar').appendChild(popup);
- document.getElementById('status-bar').appendChild(menu);
})();