home *** CD-ROM | disk | FTP | other *** search
/ Chip 2002 January / 01_02.iso / software / netscape62win / browser.xpi / bin / chrome / toolkit.jar / content / global / bindings / menubutton.xml < prev    next >
Encoding:
Extensible Markup Language  |  2001-08-04  |  8.4 KB  |  213 lines

  1. <?xml version="1.0"?>
  2.  
  3. <bindings id="menubuttonBindings"
  4.    xmlns="http://www.mozilla.org/xbl"
  5.    xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
  6.  
  7.   <binding id="menubutton-base">
  8.     <resources>
  9.       <stylesheet src="chrome://global/skin/menubutton.css"/>
  10.     </resources>
  11.   </binding>
  12.  
  13.   <binding id="menubutton-single-right" extends="chrome://global/content/bindings/menubutton.xml#menubutton-base">
  14.     <content>
  15.       <xul:hbox class="menubutton-internal-box" align="center">
  16.         <xul:text class="menubutton-single-text" inherits="value=label,crop,accesskey"/>
  17.         <xul:image class="menubutton-single-icon"/>
  18.       </xul:hbox>
  19.       <children includes="menupopup|template"/>
  20.     </content>
  21.   </binding>
  22.  
  23.   <binding id="menubutton-single-left" extends="chrome://global/content/bindings/menubutton.xml#menubutton-base">
  24.     <content>
  25.       <xul:hbox class="menubutton-internal-box" align="center">
  26.         <xul:image class="menubutton-single-icon"/>
  27.         <xul:text class="menubutton-single-text" inherits="value=label,crop,accesskey"/>
  28.       </xul:hbox>
  29.       <children includes="menupopup|template"/>
  30.     </content>
  31.   </binding>
  32.   
  33.   <binding id="menubutton-single-top" extends="chrome://global/content/bindings/menubutton.xml#menubutton-base">
  34.     <content>
  35.       <xul:vbox class="button-internal-box" align="center" flex="1">
  36.         <xul:image class="menubutton-single-icon"/>
  37.         <xul:text class="menubutton-single-text" inherits="value=label,crop,accesskey"/>
  38.       </xul:vbox>
  39.       <children includes="menupopup"/>
  40.     </content>
  41.   </binding>
  42.  
  43.   <binding id="menubutton-single-bottom" extends="chrome://global/content/bindings/menubutton.xml#menubutton-base">
  44.     <content>
  45.       <xul:vbox class="button-internal-box" align="center" flex="1">
  46.         <xul:text class="menubutton-single-text" inherits="value=label,crop,accesskey"/>
  47.         <xul:image class="menubutton-single-icon"/>
  48.       </xul:vbox>
  49.       <children includes="menupopup"/>
  50.     </content>
  51.   </binding>
  52.  
  53.   <binding id="menubutton-icon" extends="chrome://global/content/bindings/menubutton.xml#menubutton-base">
  54.     <content>
  55.       <xul:hbox class="menubutton-icon-internal-box" align="center">
  56.         <xul:image class="menubutton-icon-icon" inherits="src"/>
  57.       </xul:hbox>
  58.       <children includes="menupopup"/>
  59.     </content>
  60.   </binding>
  61.   
  62.   <binding id="menubutton-dual-top" extends="chrome://global/content/bindings/menubutton.xml#menubutton-base">
  63.     <content>
  64.       <xul:vbox class="menubutton-internal-box">
  65.         <xul:button class="menubutton-dual-button top" allowevents="true" 
  66.                     inherits="tooltiptext=buttontooltiptext,oncommand=buttonaction,src,label,crop,accesskey"/>
  67.         <xul:hbox class="menubutton-dual-dropmarker-box" align="center" pack="center">
  68.           <xul:image class="menubutton-dropmarker"/>
  69.         </xul:hbox>
  70.       </xul:vbox>
  71.       <children includes="menupopup"/>
  72.     </content>
  73.   </binding>
  74.  
  75.   <binding id="menubutton-dual-left" extends="chrome://global/content/bindings/menubutton.xml#menubutton-base">
  76.     <content>
  77.       <xul:hbox class="menubutton-internal-box">
  78.         <xul:button class="menubutton-dual-button left" allowevents="true" 
  79.                     inherits="tooltiptext=buttontooltiptext,oncommand=buttonaction,src,label,crop,accesskey"/>
  80.         <xul:hbox class="menubutton-dual-dropmarker-box" align="center" pack="center">
  81.           <xul:image class="menubutton-dropmarker"/>
  82.         </xul:hbox>
  83.       </xul:hbox>
  84.       <children includes="menupopup"/>
  85.     </content>
  86.   </binding>
  87.  
  88.   <binding id="menubutton-dual-right" extends="chrome://global/content/bindings/menubutton.xml#menubutton-base">
  89.     <content>
  90.       <xul:hbox class="menubutton-internal-box">
  91.         <xul:button class="menubutton-dual-button right" allowevents="true" 
  92.                     inherits="tooltiptext=buttontooltiptext,oncommand=buttonaction,src,label,crop,accesskey"/>
  93.         <xul:hbox class="menubutton-dual-dropmarker-box" align="center" pack="center">
  94.           <xul:image class="menubutton-dropmarker"/>
  95.         </xul:hbox>
  96.       </xul:hbox>
  97.       <children includes="menupopup"/>
  98.     </content>
  99.   </binding>
  100.  
  101.   <binding id="menubutton-dual-bottom" extends="chrome://global/content/bindings/menubutton.xml#menubutton-base">
  102.     <content>
  103.       <xul:vbox class="menubutton-internal-box">
  104.         <xul:button class="menubutton-dual-button bottom" allowevents="true" 
  105.                     inherits="tooltiptext=buttontooltiptext,oncommand=buttonaction,src,label,crop,accesskey"/>
  106.         <xul:hbox class="menubutton-dual-dropmarker-box" align="center" pack="center">
  107.           <xul:image class="menubutton-dropmarker"/>
  108.         </xul:hbox>
  109.       </xul:vbox>
  110.       <children includes="menupopup"/>
  111.     </content>
  112.   </binding>
  113.  
  114.   <binding id="menubutton-dual-ex" extends="chrome://global/content/bindings/menubutton.xml#menubutton-dual-top">
  115.     <content>
  116.       <xul:button class="menubutton-dual-ex-button top" allowevents="true"
  117.                   inherits="tooltiptext=buttontooltiptext,oncommand=buttonaction,src,label,crop,accesskey,disabled"
  118.                   onmouseover="this.parentNode.buttonover = true;"
  119.                   onmouseout="this.parentNode.buttonover = false;"
  120.                   onmousedown="this.parentNode.buttondown = true; this.parentNode.captureMouseUp();"/>
  121.       <xul:hbox class="menubutton-dual-dropmarker-box" align="center" inherits="disabled">
  122.         <xul:image class="menubutton-dropmarker" inherits="disabled"/>
  123.       </xul:hbox>
  124.       <children includes="menupopup"/>
  125.     </content>
  126.     
  127.     <implementation>
  128.       <property name="buttonover">
  129.         <getter>
  130.           return this.getAttribute("buttonover");
  131.         </getter>
  132.         <setter>
  133.         <![CDATA[
  134.           if (!val && this.getAttribute("buttondown") == "true") { 
  135.             this.removeAttribute("buttondown");
  136.             this._pendingActive = true;
  137.           } 
  138.           else {
  139.             if (this._pendingActive) {
  140.               this.setAttribute("buttondown", "true");
  141.               this._pendingActive = false;
  142.             }
  143.           }
  144.           this.setAttribute("buttonover", val);
  145.           return val;
  146.         ]]>
  147.         </setter>
  148.       </property>
  149.       
  150.       <property name="buttondown">
  151.         <getter>
  152.           return this.getAttribute("buttondown");
  153.         </getter>
  154.         <setter>
  155.           this.setAttribute("buttondown", val);
  156.           return val;
  157.         </setter>
  158.       </property>
  159.       
  160.       <property name="_pendingActive">false</property>
  161.       <property name="_buttonIsDown">false</property>
  162.       
  163.       <property name="_globalMouseUpHandler" readonly="true">
  164.       <![CDATA[
  165.           var fn = function(aEvent)
  166.           {
  167.             var btn = document.__MenubuttonDualExMouseDown__;
  168.             btn.onMouseReallyUp();
  169.             document.removeEventListener("mouseup", btn._globalMouseUpHandler, true);
  170.             document.__MenubuttonDualExMouseDown__ = null;
  171.           };
  172.           fn;
  173.       ]]>
  174.       </property>
  175.       
  176.       <method name="captureMouseUp">
  177.         <body>
  178.         <![CDATA[
  179.           document.__MenubuttonDualExMouseDown__ = this;
  180.           document.addEventListener("mouseup", this._globalMouseUpHandler, true);
  181.         ]]>
  182.         </body>
  183.       </method>
  184.       
  185.       <method name="onMouseReallyUp">
  186.         <body>
  187.         <![CDATA[
  188.           this._pendingActive = false;
  189.           this.buttondown = false;
  190.         ]]>
  191.         </body>
  192.       </method>
  193.       
  194.     </implementation>
  195.   </binding>
  196.   
  197.   <binding id="menubutton-dual-ex-left" extends="chrome://global/content/bindings/menubutton.xml#menubutton-dual-ex">
  198.     <content>
  199.       <xul:button class="menubutton-dual-ex-button left" allowevents="true"
  200.                   inherits="tooltiptext=buttontooltiptext,oncommand=buttonaction,src,label,crop,accesskey,disabled"
  201.                   onmouseover="this.parentNode.buttonover = true;"
  202.                   onmouseout="this.parentNode.buttonover = false;"
  203.                   onmousedown="this.parentNode.buttondown = true;"
  204.                   onmouseup="this.parentNode.buttondown = false;"/>
  205.       <xul:hbox class="menubutton-dual-dropmarker-box" align="center" inherits="disabled">
  206.         <xul:image class="menubutton-dropmarker" inherits="disabled"/>
  207.       </xul:hbox>
  208.       <children includes="menupopup"/>
  209.     </content>
  210.   </binding>
  211.  
  212. </bindings>
  213.