toolkit/content/widgets/general.xml

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     1 <?xml version="1.0"?>
     2 <!-- This Source Code Form is subject to the terms of the Mozilla Public
     3    - License, v. 2.0. If a copy of the MPL was not distributed with this
     4    - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
     7 <bindings id="generalBindings"
     8    xmlns="http://www.mozilla.org/xbl"
     9    xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
    10    xmlns:xbl="http://www.mozilla.org/xbl">
    12   <binding id="basecontrol">
    13     <implementation implements="nsIDOMXULControlElement">
    14       <!-- public implementation -->
    15       <property name="disabled" onset="if (val) this.setAttribute('disabled', 'true');
    16                                        else this.removeAttribute('disabled');
    17                                        return val;"
    18                                 onget="return this.getAttribute('disabled') == 'true';"/>
    19       <property name="tabIndex" onget="return parseInt(this.getAttribute('tabindex')) || 0"
    20                                 onset="if (val) this.setAttribute('tabindex', val);
    21                                        else this.removeAttribute('tabindex'); return val;"/>
    22     </implementation>
    23   </binding>
    25   <binding id="basetext" extends="chrome://global/content/bindings/general.xml#basecontrol">
    26     <implementation implements="nsIDOMXULLabeledControlElement">
    27       <!-- public implementation -->
    28       <property name="label"      onset="this.setAttribute('label',val); return val;"
    29                                   onget="return this.getAttribute('label');"/>
    30       <property name="crop"       onset="this.setAttribute('crop',val); return val;"
    31                                   onget="return this.getAttribute('crop');"/>
    32       <property name="image"      onset="this.setAttribute('image',val); return val;"
    33                                   onget="return this.getAttribute('image');"/>
    34       <property name="command"    onset="this.setAttribute('command',val); return val;"
    35                                   onget="return this.getAttribute('command');"/>
    36       <property name="accessKey">
    37         <getter>
    38           <![CDATA[
    39             return this.labelElement ? this.labelElement.accessKey : this.getAttribute('accesskey');
    40           ]]>
    41         </getter>
    42         <setter>
    43           <![CDATA[
    44             // Always store on the control
    45             this.setAttribute('accesskey', val);
    46             // If there is a label, change the accesskey on the labelElement
    47             // if it's also set there
    48             if (this.labelElement) {
    49               this.labelElement.accessKey = val;
    50             }
    51             return val;
    52           ]]>
    53         </setter>
    54       </property>
    56       <field name="labelElement"/>
    57     </implementation>      
    58   </binding>
    60   <binding id="control-item" extends="chrome://global/content/bindings/general.xml#basetext">
    61     <implementation>
    62       <property name="value"      onset="this.setAttribute('value', val); return val;"
    63                                   onget="return this.getAttribute('value');"/>
    64     </implementation>
    65   </binding>
    67   <binding id="root-element">
    68     <implementation>
    69       <field name="_lightweightTheme">null</field>
    70       <constructor><![CDATA[
    71         if (this.hasAttribute("lightweightthemes")) {
    72           let temp = {};
    73           Components.utils.import("resource://gre/modules/LightweightThemeConsumer.jsm", temp);
    74           this._lightweightTheme = new temp.LightweightThemeConsumer(this.ownerDocument);
    75         }
    76       ]]></constructor>
    77       <destructor><![CDATA[
    78         if (this._lightweightTheme) {
    79           this._lightweightTheme.destroy();
    80           this._lightweightTheme = null;
    81         }
    82       ]]></destructor>
    83     </implementation>
    84   </binding>
    86   <binding id="iframe" role="outerdoc">
    87     <implementation>
    88       <property name="docShell"
    89                 readonly="true"
    90                 onget="return this.boxObject.QueryInterface(Components.interfaces.nsIContainerBoxObject).docShell"/>
    91       <property name="contentWindow"
    92                 readonly="true"
    93                 onget="return this.docShell.QueryInterface(Components.interfaces.nsIInterfaceRequestor).getInterface(Components.interfaces.nsIDOMWindow);"/>
    94       <property name="webNavigation"
    95                 onget="return this.docShell.QueryInterface(Components.interfaces.nsIWebNavigation);"
    96                 readonly="true"/>
    97       <property name="contentDocument" readonly="true"
    98                 onget="return this.webNavigation.document;"/>
    99     </implementation>
   100   </binding>
   102   <binding id="statusbarpanel" display="xul:button">
   103     <content>
   104       <children>
   105         <xul:label class="statusbarpanel-text" xbl:inherits="value=label,crop" crop="right" flex="1"/>
   106       </children>
   107     </content>
   109     <implementation>
   110       <property name="label"
   111                 onget="return this.getAttribute('label');"
   112                 onset="this.setAttribute('label',val); return val;"/>
   113       <property name="image"
   114                 onget="return this.getAttribute('image');"
   115                 onset="this.setAttribute('image',val); return val;"/>
   116       <property name="src"
   117                 onget="return this.getAttribute('src');"
   118                 onset="this.setAttribute('src',val); return val;"/>
   119     </implementation>
   120   </binding>
   122   <binding id="statusbarpanel-menu-iconic" display="xul:menu"
   123            extends="chrome://global/content/bindings/general.xml#statusbarpanel">
   124     <content>
   125       <xul:image class="statusbarpanel-icon" xbl:inherits="src,src=image"/>
   126       <children/>
   127     </content>
   128   </binding>
   130   <binding id="statusbar" role="xul:statusbar">
   131     <content>
   132       <children/>
   133       <xul:statusbarpanel class="statusbar-resizerpanel">
   134         <xul:resizer dir="bottomend"/>
   135       </xul:statusbarpanel>
   136     </content>
   137   </binding>
   139   <binding id="statusbar-drag"
   140            extends="chrome://global/content/bindings/general.xml#statusbar">
   141     <implementation>
   142       <field name="_dragBindingAlive">true</field>
   143       <constructor>
   144         if (!this._draggableStarted) {
   145           this._draggableStarted = true;
   146           try {
   147             let tmp = {};
   148             Components.utils.import("resource://gre/modules/WindowDraggingUtils.jsm", tmp);
   149             let draghandle = new tmp.WindowDraggingElement(this);
   150             draghandle.mouseDownCheck = function () this._dragBindingAlive;
   151           } catch (e) {}
   152         }
   153       </constructor>
   154     </implementation>
   155   </binding>
   157   <binding id="statusbarpanel-iconic" display="xul:button" role="xul:button"
   158            extends="chrome://global/content/bindings/general.xml#statusbarpanel">
   159     <content>
   160       <xul:image class="statusbarpanel-icon" xbl:inherits="src,src=image"/>
   161     </content>
   162   </binding>
   164   <binding id="statusbarpanel-iconic-text" display="xul:button" role="xul:button"
   165            extends="chrome://global/content/bindings/general.xml#statusbarpanel">
   166     <content>
   167       <xul:image class="statusbarpanel-icon" xbl:inherits="src,src=image"/>
   168       <xul:label class="statusbarpanel-text" xbl:inherits="value=label,crop"/>
   169     </content>
   170   </binding>
   172   <binding id="image" role="xul:image">
   173     <implementation implements="nsIDOMXULImageElement">
   174       <property name="src"
   175                 onget="return this.getAttribute('src');"
   176                 onset="this.setAttribute('src',val); return val;"/>
   177     </implementation>
   178   </binding>
   180   <binding id="deck">
   181     <implementation>
   182       <property name="selectedIndex"
   183                 onget="return this.getAttribute('selectedIndex') || '0'">
   184         <setter>
   185         <![CDATA[
   186           if (this.selectedIndex == val)
   187             return val;
   188           this.setAttribute("selectedIndex", val);
   189           var event = document.createEvent('Events');
   190           event.initEvent('select', true, true);
   191           this.dispatchEvent(event);
   192           return val;
   193         ]]>
   194         </setter>
   195       </property>
   197       <property name="selectedPanel">
   198         <getter>
   199           <![CDATA[
   200             return this.childNodes[this.selectedIndex];
   201           ]]>
   202         </getter>
   204         <setter>
   205           <![CDATA[
   206             var selectedIndex = -1;
   207             for (var panel = val; panel != null; panel = panel.previousSibling)
   208               ++selectedIndex;
   209             this.selectedIndex = selectedIndex;
   210             return val;
   211           ]]>
   212         </setter>
   213       </property>
   214     </implementation>
   215   </binding>
   217   <binding id="dropmarker" extends="xul:button" role="xul:dropmarker">
   218     <resources>
   219       <stylesheet src="chrome://global/skin/dropmarker.css"/>
   220     </resources>
   222     <content>
   223       <xul:image class="dropmarker-icon"/>
   224     </content>
   225   </binding>
   227   <binding id="windowdragbox">
   228     <implementation>
   229       <field name="_dragBindingAlive">true</field>
   230       <constructor>
   231         if (!this._draggableStarted) {
   232           this._draggableStarted = true;
   233           try {
   234             let tmp = {};
   235             Components.utils.import("resource://gre/modules/WindowDraggingUtils.jsm", tmp);
   236             let draghandle = new tmp.WindowDraggingElement(this);
   237             draghandle.mouseDownCheck = function () this._dragBindingAlive;
   238           } catch (e) {}
   239         }
   240       </constructor>
   241     </implementation>
   242   </binding>
   244 </bindings>

mercurial