aboutsummaryrefslogtreecommitdiffstats
path: root/stylechanger.js
AgeCommit message (Collapse)Author
2008-11-27Follow CVS Head.anekos
etc git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@25172 d0d07461-0603-4401-acd4-de1884942a52
2008-11-03 * cosmetic changes.drry
git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@22654 d0d07461-0603-4401-acd4-de1884942a52
2008-10-06vimp CVS Headに追従(bang[!])の仕様変更に対して)teramako
git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@20854 d0d07461-0603-4401-acd4-de1884942a52
2008-10-01getCSSFiles の返り血が入れ子になってしまっているのを修正anekos
git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@20388 d0d07461-0603-4401-acd4-de1884942a52
2008-09-26 * Array に対する `for each` を排除しました。drry
* ほか。 git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@19951 d0d07461-0603-4401-acd4-de1884942a52
2008-09-25CVS HEADに対応(set ↵trapezoid
runtimepathでの読み込み先ディレクトリの複数指定に対応) git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@19900 d0d07461-0603-4401-acd4-de1884942a52
2008-08-15highlightコマンドが動いていなかったのを修正teramako
git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@17677 d0d07461-0603-4401-acd4-de1884942a52
2008-04-28bug fix and something a littileteramako
git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@10692 d0d07461-0603-4401-acd4-de1884942a52
2008-04-25highlightコマンドの仕様変更: ↵teramako
一時的なstyleの適用/削除を可能にした altcolorschmeコマンドの追加: alternative styleの変更用に git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@10482 d0d07461-0603-4401-acd4-de1884942a52
2008-04-13lang/javascript/vimperator-plugins/trunk/stylechanger.js: teramako
・liberator.plugins.styleSheetsMangerへオブジェクト名を変更 ・その他 git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@9402 d0d07461-0603-4401-acd4-de1884942a52
2008-04-07lang/javascript/vimperator-plugins/trunk/stylechanger.js:drry
* 正規表現を修正しました。 git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@9101 d0d07461-0603-4401-acd4-de1884942a52
2008-04-05lang/javascript/vimperator-plugins/stylechanger.js : bug fix and comment addteramako
git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@8904 d0d07461-0603-4401-acd4-de1884942a52
2008-04-05lang/javascript/vimperator-plugins/trunk/stylechanger.js:drry
* fixed a missing `,`. git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@8900 d0d07461-0603-4401-acd4-de1884942a52
2008-04-05lang/javascript/vimperator-plugins/stylechanger.js : addteramako
git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@8899 d0d07461-0603-4401-acd4-de1884942a52
createTooltip(){ var tooltip = document.createElement('tooltip'); tooltip.setAttribute('style','padding:0;margin:0;'); var label = document.createElement('label'); label.setAttribute('value',tooltipbox.childNodes.length+1); label.setAttribute('style','padding:0;margin:0 2px;'); tooltip.appendChild(label); tooltipbox.appendChild(tooltip); return tooltip; } function clearTooltips(){ while (tooltipbox.hasChildNodes()){ tooltipbox.firstChild.hidePopup(); tooltipbox.removeChild(tooltipbox.firstChild); } } function getToolbar() toolbar || (toolbar = document.getElementById('bookmarksBarContent')); function onKeyPress(event){ manager.onEvent(event); event.stopPropagation(); event.preventDefault(); } function updateSelector(){ for (let i=0; i<tooltipbox.childNodes.length; i++){ tooltipbox.childNodes[i].style.color = (i+1).toString().indexOf(currentNum+1) == 0 ? "red" : "black"; } } function itemOpen(target){ if (target.hasAttribute('oncommand')){ let fn = new Function("event", target.getAttribute("oncommand")); if (where == liberator.CURRENT_TAB) fn.call(target, {button:0, ctrlKey:false}); else fn.call(target, {button:1, ctrlKey:true}); } else { liberator.open(target.node.uri, where); } closeMenus(target); liberator.modules.options.guioptions = manager.go; } function folderOpen(target){ target.firstChild.showPopup(); manager.quit(); manager.show(target.firstChild); } function toolbarOpen(target){ if (target.getAttribute('container') == 'true'){ folderOpen(target); return true; } else { itemOpen(target); } return false; } var hints = []; var toolbar; var current; var currentNum = 0; var useShift = false; var where = liberator.CURERNT_TAB; var manager = { get toolbar() getToolbar(), go: null, get where(){ return where; }, set where(value){ where = value; }, startup: function(where){ this.go = options.guioptions; options.guioptions += "b"; this.where = where; liberator.modules.modes.setCustomMode('BookmarksToolbar-Hint', function(){return;}, this.quit); this.show(); }, show:function(node){ liberator.modules.modes.set(liberator.modules.modes.CUSTOM,liberator.modules.modes.QUICK_HINT); hints = []; window.addEventListener('keypress',onKeyPress,true); current = node || getToolbar(); for (let i=0,l=current.childNodes.length; i<l; i++){ let button = current.childNodes[i]; if (button.localName == "menuseparator") continue; hints.push(button); let tooltip = createTooltip(); tooltip.showPopup(button, -1, -1,"tooltip","topleft","topright"); } updateSelector(); }, onEvent: function(event){ var key = liberator.modules.events.toString(event); switch(key){ case "<Esc>": case "<C-[>": closeMenus(current); liberator.modules.options.guioptions = this.go; break; case "<Return>": case "<Right>": if (toolbarOpen(hints[currentNum])) return; break; case "f": this.where = liberator.CURRENT_TAB; return; case "F": case "t": this.where = liberator.NEW_TAB; return; case "<Tab>": case "j": case "<Down>": case "<S-Tab>": case "k": case "<Up>": if (key == "j" || key == "<Tab>" || key == "<Down>"){ currentNum = hints.length -1 == currentNum ? 0 : currentNum + 1; } else { currentNum = currentNum == 0 ? hints.length -1 : currentNum - 1; } useShift = true; updateSelector(); return; case "l": if (hints[currentNum].getAttribute("container") == "true"){ folderOpen(hints[currentNum]); } return; case "<BS>": if (key == "<BS>" && currentNum > 0){ currentNum = Math.floor(currentNum / 10); updateSelector(); return; } case "h": if (current == this.toolbar){ closeMenus(current); liberator.modules.options.guioptions = this.go; this.quit(); } else { current.hidePopup(); clearTooltips(); this.show(current.parentNode.parentNode); } return; default: if (/^[0-9]$/.test(key)){ let num = parseInt(key,10); if (!useShift && currentNum) num += currentNum * 10; if (hints.length >= num*10){ currentNum = num - 1; updateSelector(); return; } if (hints[num-1]){ if (toolbarOpen(hints[num-1])) return; } } } liberator.plugins.bookmarkToolbarHints.quit(); }, quit: function(){ currentNum = 0; useShift = false; window.removeEventListener('keypress',onKeyPress,true); liberator.modules.modes.reset(true); while (tooltipbox.hasChildNodes()){ tooltipbox.firstChild.hidePopup(); tooltipbox.removeChild(tooltipbox.firstChild); } } }; var tooltipbox = document.createElement('box'); tooltipbox.setAttribute('id','liberator-tooltip-container'); //document.getElementById('liberator-container').appendChild(tooltipbox); document.getElementById('browser').appendChild(tooltipbox); return manager; })(); liberator.modules.mappings.addUserMap([liberator.modules.modes.NORMAL], ['<Leader>f'], 'Start Toolbar-HINTS (open current tab)', function(){ liberator.plugins.bookmarkToolbarHints.startup(liberator.CURRENT_TAB); }, { rhs: 'Bookmarks Toolbar-HINTS (current-tab)'} ); liberator.modules.mappings.addUserMap([liberator.modules.modes.NORMAL], ['<Leader>F'], 'Start Toolbar-HINTS (open new tab)', function(){ liberator.plugins.bookmarkToolbarHints.startup(liberator.NEW_TAB); }, { rhs: 'Bookmarks Toolbar-HINTS (new-tab)' } );