home *** CD-ROM | disk | FTP | other *** search
/ GameStar 2005 October / Gamestar_77_2005-10_dvd.iso / Programy / nsb-install-8-0.exe / chrome / toolkit.jar / content / mozapps / downloads / download.xml next >
Extensible Markup Language  |  2005-07-29  |  19KB  |  485 lines

  1. <?xml version="1.0"?>
  2.  
  3.  
  4.  
  5. <!DOCTYPE window [
  6.   <!ENTITY % downloadDTD SYSTEM "chrome://mozapps/locale/downloads/downloads.dtd" >
  7.   %downloadDTD;
  8.   <!ENTITY % browserDTD  SYSTEM "chrome://browser/locale/browser.dtd" >
  9.   %browserDTD;
  10. ]>
  11.  
  12. <bindings id="downloadBindings"
  13.           xmlns="http://www.mozilla.org/xbl"
  14.           xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
  15.           xmlns:xbl="http://www.mozilla.org/xbl"
  16.           xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
  17.  
  18.   <binding id="download-base">
  19.     <resources>
  20.       <stylesheet src="chrome://mozapps/skin/downloads/downloads.css"/>
  21.     </resources>
  22.     <implementation>
  23.       <method name="fireEvent">
  24.         <parameter name="aEventType"/>
  25.         <body>
  26.         <![CDATA[
  27.           var e = document.createEvent("Events");
  28.           e.initEvent("download-" + aEventType, false, true);
  29.           
  30.           this.dispatchEvent(e);
  31.         ]]>
  32.         </body>
  33.       </method>
  34.       <property name="paused">
  35.         <getter>
  36.         <![CDATA[
  37.           return parseInt(this.getAttribute("state")) == Components.interfaces.nsIDownloadManager.DOWNLOAD_PAUSED;
  38.         ]]>
  39.         </getter>
  40.       </property>
  41.       <property name="openable">
  42.         <getter>
  43.         <![CDATA[
  44.           return parseInt(this.getAttribute("state")) == Components.interfaces.nsIDownloadManager.DOWNLOAD_FINISHED;
  45.         ]]>
  46.         </getter>
  47.       </property>
  48.       <property name="inProgress">
  49.         <getter>
  50.         <![CDATA[
  51.           var state = parseInt(this.getAttribute("state"));
  52.           const dl = Components.interfaces.nsIDownloadManager;
  53.           const xpi = Components.interfaces.nsIXPInstallManagerUI;
  54.           return state == dl.DOWNLOAD_NOTSTARTED || 
  55.                  state == dl.DOWNLOAD_DOWNLOADING || 
  56.                  state == dl.DOWNLOAD_PAUSED ||
  57.                  state == xpi.INSTALL_DOWNLOADING ||
  58.                  state == xpi.INSTALL_INSTALLING;
  59.         ]]>
  60.         </getter>
  61.       </property>
  62.       <property name="removable">
  63.         <getter>
  64.         <![CDATA[
  65.           var state = parseInt(this.getAttribute("state"));
  66.           const dl = Components.interfaces.nsIDownloadManager;
  67.           const xpi = Components.interfaces.nsIXPInstallManagerUI;
  68.           return state == dl.DOWNLOAD_FINISHED || 
  69.                  state == dl.DOWNLOAD_CANCELED || 
  70.                  state == dl.DOWNLOAD_FAILED ||
  71.                  state == xpi.INSTALL_FINISHED;
  72.         ]]>
  73.         </getter>
  74.       </property>
  75.       <property name="canceledOrFailed">
  76.         <getter>
  77.         <![CDATA[
  78.           var state = parseInt(this.getAttribute("state"));
  79.           var dl = Components.interfaces.nsIDownloadManager;
  80.           return state == dl.DOWNLOAD_CANCELED || state == dl.DOWNLOAD_FAILED;
  81.         ]]>
  82.         </getter>
  83.       </property>
  84.       
  85.       <method name="pauseResume">
  86.         <body>
  87.         <![CDATA[
  88.           // Do nothing.
  89.         ]]>
  90.         </body>
  91.       </method>
  92.     </implementation>
  93.   </binding>
  94.   
  95.   <binding id="download-starting" extends="chrome://mozapps/content/downloads/download.xml#download-base">
  96.     <content>
  97.       <xul:hbox flex="1">
  98.         <xul:vbox pack="start">
  99.           <xul:image class="downloadTypeIcon" validate="always" style="width: 32px; max-width: 32px; height: 32px; max-height: 32px;" xbl:inherits="src=image"/>
  100.         </xul:vbox>
  101.         <xul:vbox pack="start" flex="1">
  102.           <xul:label xbl:inherits="value=target" crop="center"/>
  103.           <xul:label value="&starting.label;"/>
  104.         </xul:vbox>
  105.         <xul:vbox pack="start">
  106.           <xul:label value="&cmd.cancel.label;" class="link" 
  107.                      onclick="this.parentNode.parentNode.parentNode.fireEvent('cancel');"/>
  108.         </xul:vbox>
  109.       </xul:hbox>
  110.     </content>  
  111.   </binding>
  112.   
  113.   <binding id="download-downloading" extends="chrome://mozapps/content/downloads/download.xml#download-base">
  114.     <content>
  115.       <xul:hbox flex="1" class="downloadContentBox" xbl:inherits="animated,animated-temp">
  116.         <xul:vbox pack="start">
  117.           <xul:image class="downloadTypeIcon" validate="always" style="width: 32px; max-width: 32px; height: 32px; max-height: 32px;" xbl:inherits="src=image"/>
  118.         </xul:vbox>
  119.         <xul:vbox flex="1">
  120.           <xul:hbox flex="1">
  121.             <xul:vbox flex="1">
  122.               <xul:label xbl:inherits="value=target" crop="center"/>
  123.               <xul:progressmeter mode="normal" value="0" flex="1"
  124.                                 xbl:inherits="value=progress,mode=progressmode"/>
  125.             </xul:vbox>
  126.             <xul:vbox pack="start">
  127.               <xul:label value="&cmd.cancel.label;" class="link"
  128.                         onclick="this.parentNode.parentNode.parentNode.parentNode.parentNode.fireEvent('cancel');"/>          
  129.             </xul:vbox>
  130.           </xul:hbox>                              
  131.           <xul:hbox align="center">
  132.             <xul:label value="&cmd.pause.label;" class="link"
  133.                        onclick="this.parentNode.parentNode.parentNode.parentNode.fireEvent('pause');"/>
  134.             <xul:label xbl:inherits="value=status" flex="1" crop="right"/>
  135.           </xul:hbox>                            
  136.         </xul:vbox>
  137.       </xul:hbox>
  138.     </content>
  139.     <implementation>
  140.     
  141.       <!-- ANIMATE: Type Icon -->    
  142.       <property name="_ati_kTimeout" onget="return 50;"/>
  143.       <property name="_ati_kUpperBounds" onget="return 90;"/>
  144.       <property name="_ati_kLowerBounds" onget="return 30;"/>
  145.       <property name="_ati_kIncrement" onget="return 5;"/>
  146.       <field name="_atiStep">0</field>
  147.       <field name="_atiIsIncrementing">true</field>
  148.       <field name="_atiInterval">-1</field>
  149.       
  150.       <method name="_atiTimerCallback">
  151.         <parameter name="aDownload"/>
  152.         <parameter name="aIcon"/>
  153.         <body>
  154.         <![CDATA[
  155.           if (aDownload.getAttribute("state") != "0") {
  156.             clearInterval(aDownload._atiInterval)
  157.             return;
  158.           }
  159.             
  160.           if (aDownload._atiIsIncrementing)
  161.             aDownload._atiStep += aDownload._ati_kIncrement;
  162.           else
  163.             aDownload._atiStep -= aDownload._ati_kIncrement;
  164.  
  165.           if (aDownload._atiStep == aDownload._ati_kUpperBounds) 
  166.             aDownload._atiIsIncrementing = false;
  167.           else if (aDownload._atiStep  == aDownload._ati_kLowerBounds)
  168.             aDownload._atiIsIncrementing = true;
  169.  
  170.           aIcon.setAttribute("style", "-moz-opacity: 0." + aDownload._atiStep );
  171.         ]]>
  172.         </body>
  173.       </method>
  174.       <method name="_animateIcon">
  175.         <body>
  176.         <![CDATA[
  177.           this._atiStep = this._ati_kLowerBounds;
  178.           this._atiIsIncrementing = true;
  179.  
  180.           var icon = document.getAnonymousElementByAttribute(this, "class", "downloadTypeIcon");
  181.           this._atiInterval = setInterval(this._atiTimerCallback, this._ati_kTimeout, this, icon);
  182.         ]]>
  183.         </body>
  184.       </method>
  185.       
  186.       <!-- ANIMATE: Download -->
  187.       <property name="_adl_kTimeout" onget="return 50;"/>
  188.       <property name="_adl_kUpperBounds" onget="return 1.00;"/>
  189.       <property name="_adl_kLowerBounds" onget="return 0.00;"/>
  190.       <property name="_adl_kIncrement" onget="return 0.05;"/>
  191.       <field name="_adlStep">0</field>
  192.       
  193.       <method name="_adlTimerCallback">
  194.         <parameter name="aDownload"/>
  195.         <parameter name="aContent"/>
  196.         <body>
  197.         <![CDATA[
  198.           if (aDownload.getAttribute("state") != "0" || 
  199.               aDownload._adlStep > aDownload._adl_kUpperBounds) {
  200.             aDownload.fireEvent('animated');
  201.             return;
  202.           }
  203.  
  204.           // Don't even bother if we're going away. 
  205.           if (!aContent.ownerDocument)
  206.             return;
  207.             
  208.           aDownload._adlStep += aDownload._adl_kIncrement;
  209.           aContent.setAttribute("style", "-moz-opacity: " + aDownload._adlStep + "!important;");
  210.           
  211.           setTimeout(aDownload._adlTimerCallback, aDownload._adl_kTimeout, aDownload, aContent);
  212.         ]]>
  213.         </body>
  214.       </method>
  215.       <method name="_animateDownload">
  216.         <body>
  217.         <![CDATA[
  218.           this._adlStep = this._adl_kLowerBounds;
  219.  
  220.           var box = document.getAnonymousElementByAttribute(this, "class", "downloadContentBox");
  221.           setTimeout(this._adlTimerCallback, this._adl_kTimeout, this, box);
  222.         ]]>
  223.         </body>
  224.       </method>
  225.       
  226.       <method name="_shouldDownloadAnimate">
  227.         <body>
  228.         <![CDATA[
  229.           return this.getAttribute("animated") != "true";
  230.         ]]>
  231.         </body>
  232.       </method>
  233.       
  234.       <method name="pauseResume">
  235.         <body>
  236.         <![CDATA[
  237.           this.fireEvent("pause");
  238.         ]]>
  239.         </body>
  240.       </method>
  241.       
  242.       <constructor>
  243.       <![CDATA[
  244.         // this._animateIcon();
  245.         if (this._shouldDownloadAnimate())
  246.           this._animateDownload();
  247.       ]]>
  248.       </constructor>
  249.     </implementation>
  250.   </binding>
  251.   
  252.   <binding id="download-paused" extends="chrome://mozapps/content/downloads/download.xml#download-base">
  253.     <content>
  254.       <xul:hbox flex="1">
  255.         <xul:vbox pack="start">
  256.           <xul:image class="downloadTypeIcon" validate="always" style="width: 32px; max-width: 32px; height: 32px; max-height: 32px;" xbl:inherits="src=image"/>
  257.         </xul:vbox>
  258.         <xul:vbox flex="1">
  259.           <xul:hbox flex="1">
  260.             <xul:vbox flex="1">
  261.               <xul:label xbl:inherits="value=target" crop="center"/>
  262.               <xul:progressmeter mode="normal" value="0" flex="1"
  263.                                 xbl:inherits="value=progress,mode=progressmode"/>
  264.             </xul:vbox>
  265.             <xul:vbox pack="start">
  266.               <xul:label value="&cmd.cancel.label;" class="link"
  267.                         onclick="this.parentNode.parentNode.parentNode.parentNode.parentNode.fireEvent('cancel');"/>          
  268.             </xul:vbox>
  269.           </xul:hbox>                              
  270.           <xul:hbox align="center">
  271.             <xul:label value="&cmd.resume.label;" class="link"
  272.                        onclick="this.parentNode.parentNode.parentNode.parentNode.fireEvent('resume');"/>
  273.             <xul:label xbl:inherits="value=status" flex="1" crop="right"/>
  274.           </xul:hbox>                            
  275.         </xul:vbox>
  276.       </xul:hbox>
  277.     </content>
  278.     <implementation>
  279.       <method name="pauseResume">
  280.         <body>
  281.         <![CDATA[
  282.           this.fireEvent("resume");
  283.         ]]>
  284.         </body>
  285.       </method>
  286.     </implementation>
  287.   </binding>
  288.   
  289.   <binding id="download-done" extends="chrome://mozapps/content/downloads/download.xml#download-base">
  290.     <content>
  291.       <xul:hbox flex="1">
  292.         <xul:vbox pack="start">
  293.           <xul:image class="downloadTypeIcon" validate="always" style="width: 32px; max-width: 32px; height: 32px; max-height: 32px;" xbl:inherits="src=image"/>
  294.         </xul:vbox>
  295.         <xul:vbox pack="start" flex="1">
  296.           <xul:label xbl:inherits="value=target" crop="center"/>
  297.           <xul:label value="&done.label;"/>
  298.         </xul:vbox>
  299.         <xul:vbox pack="start">
  300.           <xul:label value="&cmd.open.label;" class="link" 
  301.                      onclick="this.parentNode.parentNode.parentNode.fireEvent('open');"/>
  302.           <xul:label value="&cmd.remove.label;" class="link" 
  303.                      onclick="this.parentNode.parentNode.parentNode.fireEvent('remove');"/>
  304.         </xul:vbox>
  305.       </xul:hbox>
  306.     </content>  
  307.   </binding>
  308.   
  309.   <binding id="download-canceled" extends="chrome://mozapps/content/downloads/download.xml#download-base">
  310.     <content>
  311.       <xul:hbox flex="1">
  312.         <xul:vbox pack="start"> 
  313.           <xul:image class="downloadTypeIcon" validate="always" style="width: 32px; max-width: 32px; height: 32px; max-height: 32px;" xbl:inherits="src=image"/>
  314.         </xul:vbox>
  315.         <xul:vbox pack="start" flex="1">
  316.           <xul:label xbl:inherits="value=target" crop="center"/>
  317.           <xul:label value="&canceled.label;"/>
  318.         </xul:vbox>
  319.         <xul:vbox pack="start">
  320.           <xul:label value="&cmd.retry.label;" class="link" 
  321.                      onclick="this.parentNode.parentNode.parentNode.fireEvent('retry');"/>
  322.           <xul:label value="&cmd.remove.label;" class="link" 
  323.                      onclick="this.parentNode.parentNode.parentNode.fireEvent('remove');"/>
  324.         </xul:vbox>
  325.       </xul:hbox>
  326.     </content>  
  327.   </binding>
  328.   
  329.   <binding id="download-failed" extends="chrome://mozapps/content/downloads/download.xml#download-base">
  330.     <content>
  331.       <xul:hbox flex="1">
  332.         <xul:vbox pack="start">
  333.           <xul:image class="downloadTypeIcon" validate="always" style="width: 32px; max-width: 32px; height: 32px; max-height: 32px;" xbl:inherits="src=image"/>
  334.         </xul:vbox>
  335.         <xul:vbox pack="start" flex="1">
  336.           <xul:label xbl:inherits="value=target" crop="center"/>
  337.           <xul:label value="&failed.label;"/>
  338.         </xul:vbox>
  339.         <xul:vbox pack="start">
  340.           <xul:label value="&cmd.retry.label;" class="link" 
  341.                      onclick="this.parentNode.parentNode.parentNode.fireEvent('retry');"/>
  342.           <xul:label value="&cmd.remove.label;" class="link" 
  343.                      onclick="this.parentNode.parentNode.parentNode.fireEvent('remove');"/>
  344.         </xul:vbox>
  345.       </xul:hbox>
  346.     </content>  
  347.   </binding>
  348.   
  349.   <binding id="install-downloading" extends="chrome://mozapps/content/downloads/download.xml#download-downloading">
  350.     <content>
  351.       <xul:hbox flex="1" class="downloadContentBox" xbl:inherits="animated,animated-temp">
  352.         <xul:vbox pack="start">
  353.           <xul:image class="downloadTypeIcon" validate="always" style="width: 32px; max-width: 32px; height: 32px; max-height: 32px;" xbl:inherits="src=image"/>
  354.         </xul:vbox>
  355.         <xul:vbox flex="1">
  356.           <xul:hbox flex="1">
  357.             <xul:vbox flex="1">
  358.               <xul:label xbl:inherits="value=target" crop="center"/>
  359.               <xul:progressmeter mode="normal" value="0" flex="1"
  360.                                 xbl:inherits="value=progress,mode=progressmode"/>
  361.             </xul:vbox>
  362.           </xul:hbox>                              
  363.           <xul:hbox align="center">
  364.             <xul:label xbl:inherits="value=status" flex="1" crop="right"/>
  365.           </xul:hbox>                            
  366.         </xul:vbox>
  367.       </xul:hbox>
  368.     </content>
  369.   </binding>
  370.   
  371.   <binding id="install-installing" extends="chrome://mozapps/content/downloads/download.xml#download-base">
  372.     <content>
  373.       <xul:hbox flex="1">
  374.         <xul:vbox pack="start">
  375.           <xul:image class="downloadTypeIcon" validate="always" style="width: 32px; max-width: 32px; height: 32px; max-height: 32px;" xbl:inherits="src=image"/>
  376.         </xul:vbox>
  377.         <xul:vbox pack="start" flex="1">
  378.           <xul:label xbl:inherits="value=target" crop="center"/>
  379.           <xul:label value="&installing.label;"/>
  380.         </xul:vbox>
  381.       </xul:hbox>
  382.     </content>  
  383.   </binding>
  384.   
  385.   <binding id="install-done" extends="chrome://mozapps/content/downloads/download.xml#download-base">
  386.     <content>
  387.       <xul:hbox flex="1">
  388.         <xul:vbox pack="start">
  389.           <xul:image class="downloadTypeIcon" validate="always" style="width: 32px; max-width: 32px; height: 32px; max-height: 32px;" xbl:inherits="src=image"/>
  390.         </xul:vbox>
  391.         <xul:vbox pack="start" flex="1">
  392.           <xul:label xbl:inherits="value=target" crop="center"/>
  393.           <xul:label value="&done.label;"/>
  394.         </xul:vbox>
  395.         <xul:vbox pack="start">
  396.           <xul:label value="&cmd.remove.label;" class="link" 
  397.                      onclick="this.parentNode.parentNode.parentNode.fireEvent('remove');"/>
  398.         </xul:vbox>
  399.       </xul:hbox>
  400.     </content>  
  401.   </binding>
  402.   
  403.   <binding id="download-view">
  404.     <implementation>
  405.       <field name="_selected">null</field>
  406.       <property name="selected">
  407.         <setter>
  408.         <![CDATA[
  409.           if (this._selected)
  410.             this._selected.removeAttribute("selected");
  411.           this._selected = val;
  412.           if (this._selected)
  413.             this._selected.setAttribute("selected", "true");
  414.         ]]>
  415.         </setter>
  416.         <getter>
  417.         <![CDATA[
  418.           return this._selected;
  419.         ]]>
  420.         </getter>
  421.       </property>
  422.       
  423.       <method name="selectionForward">
  424.         <parameter name="aEvent"/>
  425.         <body>
  426.         <![CDATA[
  427.           if (this.selected) {
  428.             if (this.selected.nextSibling &&
  429.                 this.selected.nextSibling.localName == "download")
  430.               this.selected = this.selected.nextSibling;
  431.           }
  432.           else {
  433.             if (this.hasChildNodes())
  434.               this.selected = this.firstChild.nextSibling;
  435.           }
  436.         ]]>
  437.         </body>
  438.       </method>
  439.  
  440.       <method name="selectionBackward">
  441.         <parameter name="aEvent"/>
  442.         <body>
  443.         <![CDATA[
  444.           if (this.selected) {
  445.             if (this.selected.previousSibling && 
  446.                 this.selected.previousSibling.localName == "download")
  447.               this.selected = this.selected.previousSibling;
  448.           }
  449.           else {
  450.             if (this.hasChildNodes())
  451.               this.selected = this.lastChild;
  452.           }
  453.         ]]>
  454.         </body>
  455.       </method>
  456.     </implementation>
  457.     <handlers>
  458.       <handler event="click">
  459.       <![CDATA[
  460.         if (event.ctrlKey) {
  461.           this.selected = null;
  462.           return;
  463.         }
  464.         
  465.         this.selected = event.target;
  466.       ]]>
  467.       </handler>
  468.       <handler event="keypress" keycode="vk_enter" action="if (this.selected) this.selected.fireEvent('open');"/>
  469.       <handler event="keypress" keycode="vk_return" action="if (this.selected) this.selected.fireEvent('open');"/>
  470.       <handler event="keypress" keycode="vk_up" action="this.selectionBackward(event);"/>
  471.       <handler event="keypress" keycode="vk_left" action="this.selectionBackward(event);"/>
  472.       <handler event="keypress" keycode="vk_down" action="this.selectionForward(event);"/>
  473.       <handler event="keypress" keycode="vk_right" action="this.selectionForward(event);"/>
  474.       <handler event="keypress" keycode="vk_up" modifiers="meta" action="this.selected = null"/>
  475.       <handler event="keypress" keycode="vk_down" modifiers="meta" action="this.selected = null"/>
  476.       <handler event="keypress" keycode="vk_left" modifiers="meta" action="this.selected = null"/>
  477.       <handler event="keypress" keycode="vk_right" modifiers="meta" action="this.selected = null"/>
  478.       <handler event="keypress" keycode="vk_delete" action="if (this.selected) this.selected.fireEvent('remove');"/>
  479.       <handler event="keypress" key=" " action="if (this.selected) { this.selected.pauseResume(); }"/>
  480.       <handler event="keypress" key="&newNavigatorCmd.key;" modifiers="control" action="parent.window.open('');"/>
  481.     </handlers>
  482.   </binding>
  483.   
  484. </bindings>
  485.