]> git.gir.st - VimFx.git/blob - docs/button.html
Use Firefox 24+ native console API
[VimFx.git] / docs / button.html
1 <!DOCTYPE html> <html> <head> <title>button.coffee</title> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <link rel="stylesheet" media="all" href="docco.css" /> </head> <body> <div id="container"> <div id="background"></div> <div id="jump_to"> Jump To &hellip; <div id="jump_wrapper"> <div id="jump_page"> <a class="source" href="bootstrap.html"> bootstrap.coffee </a> <a class="source" href="chrome.html"> chrome.coffee </a> <a class="source" href="console.html"> console.coffee </a> <a class="source" href="unload.html"> unload.coffee </a> <a class="source" href="window-utils.html"> window-utils.coffee </a> <a class="source" href="button.html"> button.coffee </a> <a class="source" href="commands.html"> commands.coffee </a> <a class="source" href="events.html"> events.coffee </a> <a class="source" href="help.html"> help.coffee </a> <a class="source" href="hints.html"> hints.coffee </a> <a class="source" href="marker.html"> marker.coffee </a> <a class="source" href="prefs.html"> prefs.coffee </a> <a class="source" href="utils.html"> utils.coffee </a> <a class="source" href="vim.html"> vim.coffee </a> </div> </div> </div> <table cellpadding="0" cellspacing="0"> <thead> <tr> <th class="docs"> <h1> button.coffee </h1> </th> <th class="code"> </th> </tr> </thead> <tbody> <tr id="section-1"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-1">&#182;</a> </div> </td> <td class="code"> <div class="highlight"><pre><span class="p">{</span> <span class="nx">getPref</span>
2 <span class="p">,</span> <span class="nx">setPref</span> <span class="p">}</span> <span class="o">=</span> <span class="nx">require</span> <span class="s">&#39;prefs&#39;</span>
3
4 <span class="nv">positions = </span><span class="p">{}</span>
5
6 <span class="nv">persist = </span><span class="nf">(document, toolbar, buttonID, beforeID) -&gt;</span>
7 <span class="nv">currentset = </span><span class="nx">tb</span><span class="p">.</span><span class="nx">getAttribute</span><span class="p">(</span><span class="s">&#39;currentset&#39;</span><span class="p">).</span><span class="nx">split</span><span class="p">(</span><span class="s">&#39;,&#39;</span><span class="p">)</span>
8 <span class="nv">idx = </span><span class="k">if</span> <span class="nx">beforeID</span> <span class="k">then</span> <span class="nx">currentset</span><span class="p">.</span><span class="nx">indexOf</span><span class="p">(</span><span class="nx">beforeID</span><span class="p">)</span> <span class="k">else</span> <span class="o">-</span><span class="mi">1</span><span class="p">;</span>
9 <span class="k">if</span> <span class="nx">idx</span> <span class="o">!=</span> <span class="o">-</span><span class="mi">1</span>
10 <span class="nx">currentset</span><span class="p">.</span><span class="nx">splice</span><span class="p">(</span><span class="nx">idx</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">buttonID</span><span class="p">);</span>
11 <span class="k">else</span>
12 <span class="nx">currentset</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">buttonID</span><span class="p">);</span>
13
14 <span class="nx">toolbar</span><span class="p">.</span><span class="nx">setAttribute</span> <span class="s">&quot;currentset&quot;</span><span class="p">,</span> <span class="nx">currentset</span><span class="p">.</span><span class="nx">join</span><span class="p">(</span><span class="s">&quot;,&quot;</span><span class="p">)</span>
15 <span class="nb">document</span><span class="p">.</span><span class="nx">persist</span> <span class="nx">toolbar</span><span class="p">.</span><span class="nx">id</span><span class="p">,</span> <span class="s">&quot;currentset&quot;</span>
16 <span class="k">return</span> <span class="p">[</span><span class="nx">currentset</span><span class="p">,</span> <span class="nx">idx</span><span class="p">]</span>
17
18 <span class="nv">setButtonDefaultPosition = </span><span class="nf">(buttonId, toolbarId, beforeId) -&gt;</span>
19 <span class="nx">positions</span><span class="p">[</span><span class="nx">buttonId</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="nx">toolbarId</span><span class="p">,</span> <span class="nx">beforeId</span><span class="p">]</span>
20
21 <span class="nv">restorePosition = </span><span class="nf">(doc, button) -&gt;</span>
22 <span class="nv">$ = </span><span class="nf">(sel, all) -&gt;</span> <span class="nx">doc</span><span class="p">[</span><span class="k">if</span> <span class="nx">all</span> <span class="k">then</span> <span class="s">&quot;querySelectorAll&quot;</span> <span class="k">else</span> <span class="s">&quot;getElementById&quot;</span><span class="p">](</span><span class="nx">sel</span><span class="p">)</span>
23
24 <span class="p">(</span><span class="nx">$</span><span class="p">(</span><span class="s">&quot;navigator-toolbox&quot;</span><span class="p">)</span> <span class="o">||</span> <span class="nx">$</span><span class="p">(</span><span class="s">&quot;mail-toolbox&quot;</span><span class="p">)).</span><span class="nx">palette</span><span class="p">.</span><span class="nx">appendChild</span><span class="p">(</span><span class="nx">button</span><span class="p">)</span>
25
26 <span class="k">for</span> <span class="nx">tb</span> <span class="k">in</span> <span class="nx">$</span><span class="p">(</span><span class="s">&quot;toolbar&quot;</span><span class="p">,</span> <span class="kc">true</span><span class="p">)</span>
27 <span class="nv">currentset = </span><span class="nx">tb</span><span class="p">.</span><span class="nx">getAttribute</span><span class="p">(</span><span class="s">&#39;currentset&#39;</span><span class="p">).</span><span class="nx">split</span><span class="p">(</span><span class="s">&#39;,&#39;</span><span class="p">)</span>
28 <span class="nv">idx = </span><span class="nx">currentset</span><span class="p">.</span><span class="nx">indexOf</span> <span class="nx">button</span><span class="p">.</span><span class="nx">id</span>
29 <span class="k">if</span> <span class="nx">idx</span> <span class="o">&gt;</span> <span class="o">-</span><span class="mi">1</span>
30 <span class="nv">toolbar = </span><span class="nx">tb</span>
31 <span class="k">break</span>
32 </pre></div> </td> </tr> <tr id="section-2"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-2">&#182;</a> </div> <p>Saved position not found, using the default one, after persisting it</p> </td> <td class="code"> <div class="highlight"><pre> <span class="k">if</span> <span class="o">!</span><span class="nx">toolbar</span> <span class="o">and</span> <span class="p">(</span><span class="nx">button</span><span class="p">.</span><span class="nx">id</span> <span class="k">in</span> <span class="nb">Object</span><span class="p">.</span><span class="nx">keys</span><span class="p">(</span><span class="nx">positions</span><span class="p">))</span>
33 <span class="p">[</span><span class="nx">tbID</span><span class="p">,</span> <span class="nx">beforeID</span><span class="p">]</span> <span class="o">=</span> <span class="nx">positions</span><span class="p">[</span><span class="nx">button</span><span class="p">.</span><span class="nx">id</span><span class="p">];</span>
34 <span class="nv">toolbar = </span><span class="nx">$</span><span class="p">(</span><span class="nx">tbID</span><span class="p">)</span>
35 <span class="p">[</span><span class="nx">currentset</span><span class="p">,</span> <span class="nx">idx</span><span class="p">]</span> <span class="o">=</span> <span class="nx">persist</span><span class="p">(</span><span class="nx">doc</span><span class="p">,</span> <span class="nx">toolbar</span><span class="p">,</span> <span class="nx">button</span><span class="p">.</span><span class="nx">id</span><span class="p">,</span> <span class="nx">beforeID</span><span class="p">)</span>
36
37 <span class="k">if</span> <span class="nx">toolbar</span>
38 <span class="k">if</span> <span class="nx">idx</span> <span class="o">&gt;</span> <span class="o">-</span><span class="mi">1</span></pre></div> </td> </tr> <tr id="section-3"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-3">&#182;</a> </div> <p>Inserting the button before the first item in <code>currentset</code>
39 after <code>idx</code> that is present in the document</p> </td> <td class="code"> <div class="highlight"><pre> <span class="k">for</span> <span class="nx">i</span> <span class="k">in</span> <span class="p">[</span><span class="nx">idx</span> <span class="o">+</span> <span class="mi">1</span> <span class="p">...</span> <span class="nx">currentset</span><span class="p">.</span><span class="nx">length</span><span class="p">]</span>
40 <span class="k">if</span> <span class="nv">before = </span><span class="nx">$</span><span class="p">(</span><span class="nx">currentset</span><span class="p">[</span><span class="nx">i</span><span class="p">])</span>
41 <span class="nx">toolbar</span><span class="p">.</span><span class="nx">insertItem</span> <span class="nx">button</span><span class="p">.</span><span class="nx">id</span><span class="p">,</span> <span class="nx">before</span>
42 <span class="k">return</span><span class="p">;</span>
43
44 <span class="nx">toolbar</span><span class="p">.</span><span class="nx">insertItem</span> <span class="nx">button</span><span class="p">.</span><span class="nx">id</span>
45
46 <span class="nv">iconUrl = </span><span class="nx">do</span> <span class="o">-&gt;</span>
47 <span class="nv">icon_normal = </span><span class="nx">getResourceURI</span><span class="p">(</span><span class="s">&#39;resources/icon.png&#39;</span><span class="p">).</span><span class="nx">spec</span>
48 <span class="nv">icon_grey = </span><span class="nx">getResourceURI</span><span class="p">(</span><span class="s">&#39;resources/icon-grey.png&#39;</span><span class="p">).</span><span class="nx">spec</span>
49
50 <span class="k">return</span> <span class="nf">(disabled) -&gt;</span> <span class="s">&quot;url(</span><span class="si">#{</span> <span class="k">if</span> <span class="nx">disabled</span> <span class="k">then</span> <span class="nx">icon_grey</span> <span class="k">else</span> <span class="nx">icon_normal</span> <span class="si">}</span><span class="s">)&quot;</span>
51
52 <span class="nv">addToolbarButton = </span><span class="nf">(window) -&gt;</span>
53 <span class="nv">buttonId = </span><span class="nx">getPref</span> <span class="s">&#39;button_id&#39;</span>
54 <span class="nv">disabled = </span><span class="nx">getPref</span> <span class="s">&#39;disabled&#39;</span>
55
56 <span class="nv">doc = </span><span class="nb">window</span><span class="p">.</span><span class="nb">document</span>
57 <span class="nv">button = </span><span class="nx">doc</span><span class="p">.</span><span class="nx">createElement</span> <span class="s">&#39;toolbarbutton&#39;</span>
58 <span class="nx">button</span><span class="p">.</span><span class="nx">setAttribute</span> <span class="s">&#39;id&#39;</span><span class="p">,</span> <span class="nx">buttonId</span>
59 <span class="nx">button</span><span class="p">.</span><span class="nx">setAttribute</span> <span class="s">&#39;type&#39;</span><span class="p">,</span> <span class="s">&#39;checkbox&#39;</span>
60 <span class="nx">button</span><span class="p">.</span><span class="nx">setAttribute</span> <span class="s">&#39;label&#39;</span><span class="p">,</span> <span class="s">&#39;Vim for Firefox&#39;</span>
61 <span class="nx">button</span><span class="p">.</span><span class="nx">setAttribute</span> <span class="s">&#39;class&#39;</span><span class="p">,</span> <span class="s">&#39;toolbarbutton-1 chromeclass-toolbar-additional&#39;</span>
62 <span class="nx">button</span><span class="p">.</span><span class="nx">setAttribute</span> <span class="s">&#39;tooltiptext&#39;</span><span class="p">,</span> <span class="s">&#39;Enable/Disable&#39;</span>
63 <span class="nv">button.checked = </span><span class="nx">disabled</span>
64 <span class="nv">button.style.listStyleImage = </span><span class="nx">iconUrl</span><span class="p">(</span><span class="nx">disabled</span><span class="p">)</span>
65
66 <span class="nv">onButtonCommand = </span><span class="nf">(event) -&gt;</span>
67 <span class="nv">dis = </span><span class="nx">button</span><span class="p">.</span><span class="nx">checked</span>
68 <span class="nx">setPref</span> <span class="s">&#39;disabled&#39;</span><span class="p">,</span> <span class="nx">dis</span>
69 <span class="nv">button.style.listStyleImage = </span><span class="nx">iconUrl</span><span class="p">(</span><span class="nx">dis</span><span class="p">)</span>
70
71 <span class="nx">button</span><span class="p">.</span><span class="nx">addEventListener</span> <span class="s">&#39;command&#39;</span><span class="p">,</span> <span class="nx">onButtonCommand</span><span class="p">,</span> <span class="kc">false</span>
72
73
74 <span class="nx">restorePosition</span> <span class="nx">doc</span><span class="p">,</span> <span class="nx">button</span><span class="p">,</span> <span class="s">&#39;nav-bar&#39;</span><span class="p">,</span> <span class="s">&#39;bookmarks-menu-button-container&#39;</span>
75
76 <span class="nx">unload</span> <span class="o">-&gt;</span> <span class="nx">button</span><span class="p">.</span><span class="nx">parentNode</span><span class="p">.</span><span class="nx">removeChild</span> <span class="nx">button</span>
77
78 <span class="nv">exports.addToolbarButton = </span><span class="nx">addToolbarButton</span>
79 <span class="nv">exports.setButtonDefaultPosition = </span><span class="nx">setButtonDefaultPosition</span>
80
81 </pre></div> </td> </tr> </tbody> </table> </div> </body> </html>
Imprint / Impressum