Bug 747668. (Av1a) XPFE autocomplete.xml: Regroup nsIAutoCompleteInput properties, Fix some nits. r=neil.

DONTBUILD (a=npotb).
This commit is contained in:
Serge Gautherie 2012-04-22 10:11:11 +02:00
parent 76d1d026bf
commit 7db3a7b38d

View File

@ -77,7 +77,96 @@
window.top.removeEventListener("DOMMenuBarActive", this.mMenuBarListener, true);
this.mInputElt.controllers.removeController(this.mPasteController);
]]></destructor>
<!-- =================== nsIAccessibleProvider =================== -->
<property name="accessibleType" readonly="true">
<getter>
<![CDATA[
// Will be exposed as nsIAccessible::ROLE_AUTOCOMPLETE
return Components.interfaces.nsIAccessibleProvider.XULCombobox;
]]>
</getter>
</property>
<!-- =================== nsIAutoCompleteInput =================== -->
<!-- XXX: This implementation is currently incomplete. -->
<!-- reference to the results popup element -->
<field name="popup"><![CDATA[
document.getAnonymousElementByAttribute(this, "anonid", "popup");
]]></field>
<!-- option to turn off autocomplete -->
<property name="disableAutoComplete"
onset="this.setAttribute('disableautocomplete', val); return val;"
onget="return this.getAttribute('disableautocomplete') == 'true';"/>
<!-- if the resulting match string is not at the beginning of the typed string,
this will optionally autofill like this "bar |>> foobar|" -->
<property name="completeDefaultIndex"
onset="this.setAttribute('completedefaultindex', val); return val;"
onget="return this.getAttribute('completedefaultindex') == 'true';"/>
<!-- option for completing to the default result whenever the user hits
enter or the textbox loses focus -->
<property name="forceComplete"
onset="this.setAttribute('forcecomplete', val); return val;"
onget="return this.getAttribute('forcecomplete') == 'true';"/>
<property name="minResultsForPopup"
onset="this.setAttribute('minresultsforpopup', val); return val;"
onget="var t = this.getAttribute('minresultsforpopup'); return t ? parseInt(t) : 1;"/>
<!-- maximum number of rows to display -->
<property name="maxRows"
onset="this.setAttribute('maxrows', val); return val;"
onget="return parseInt(this.getAttribute('maxrows')) || 0;"/>
<!-- toggles a second column in the results list which contains
the string in the comment field of each autocomplete result -->
<property name="showCommentColumn"
onget="return this.getAttribute('showcommentcolumn') == 'true';">
<setter><![CDATA[
this.popup.showCommentColumn = val;
this.setAttribute('showcommentcolumn', val);
return val;
]]></setter>
</property>
<!-- number of milliseconds after a keystroke before a search begins -->
<property name="timeout"
onset="this.setAttribute('timeout', val); return val;"
onget="return parseInt(this.getAttribute('timeout')) || 0;"/>
<!-- =================== nsIDOMXULMenuListElement =================== -->
<property name="editable" readonly="true"
onget="return true;" />
<property name="crop"
onset="this.setAttribute('crop', val); return val;"
onget="return this.getAttribute('crop');"/>
<property name="label" readonly="true"
onget="return this.mInputElt.value;"/>
<property name="open"
onget="return this.getAttribute('open') == 'true';">
<setter>
<![CDATA[
var historyPopup = document.getAnonymousElementByAttribute(this, "anonid", "historydropmarker");
if (val) {
this.setAttribute('open', true);
historyPopup.showPopup();
} else {
this.removeAttribute('open');
historyPopup.hidePopup();
}
]]>
</setter>
</property>
<!-- =================== PUBLIC PROPERTIES =================== -->
<property name="value"
@ -92,7 +181,7 @@
return val;
]]></setter>
</property>
<property name="focused"
onget="return this.getAttribute('focused') == 'true';"/>
@ -145,56 +234,23 @@
<!-- the number of sessions currently in use -->
<field name="sessionCount">0</field>
<!-- number of milliseconds after a keystroke before a search begins -->
<property name="timeout"
onset="this.setAttribute('timeout', val); return val;"
onget="var t = parseInt(this.getAttribute('timeout')); return t ? t : 0;"/>
<!-- number of milliseconds after a paste before a search begins -->
<property name="pasteTimeout"
onset="this.setAttribute('pastetimeout', val); return val;"
onget="var t = parseInt(this.getAttribute('pastetimeout')); return t ? t : 0;"/>
<!-- maximum number of rows to display -->
<property name="maxRows"
onset="this.setAttribute('maxrows', val); return val;"
onget="var t = parseInt(this.getAttribute('maxrows')); return t ? t : 0;"/>
<!-- option for filling the textbox with the best match while typing
and selecting the difference -->
<property name="autoFill"
onset="this.setAttribute('autofill', val); return val;"
onget="return this.getAttribute('autofill') == 'true';"/>
<!-- if the resulting match string is not at the beginning of the typed string,
this will optionally autofill like this "bar |>> foobar|" -->
<property name="completeDefaultIndex"
onset="this.setAttribute('completedefaultindex', val); return val;"
onget="return this.getAttribute('completedefaultindex') == 'true';"/>
<!-- if this attribute is set, allow different style for
non auto-completed lines -->
<property name="highlightNonMatches"
onset="this.setAttribute('highlightnonmatches', val); return val;"
onget="return this.getAttribute('highlightnonmatches') == 'true';"/>
<!-- toggles a second column in the results list which contains
the string in the comment field of each autocomplete result -->
<property name="showCommentColumn"
onget="return this.getAttribute('showcommentcolumn') == 'true';">
<setter><![CDATA[
this.popup.showCommentColumn = val;
this.setAttribute('showcommentcolumn', val); return val;
]]></setter>
</property>
<!-- option for completing to the default result whenever the user hits
enter or the textbox loses focus -->
<property name="forceComplete"
onset="this.setAttribute('forcecomplete', val); return val;"
onget="return this.getAttribute('forcecomplete') == 'true';"/>
<!-- option to show the popup containing the results -->
<property name="showPopup"
onset="this.setAttribute('showpopup', val); return val;"
@ -206,11 +262,6 @@
onset="return this.setAttribute('tabscrolling', val); return val;"
onget="return this.getAttribute('tabscrolling') == 'true';"/>
<!-- option to turn off autocomplete -->
<property name="disableAutoComplete"
onset="this.setAttribute('disableautocomplete', val); return val;"
onget="return this.getAttribute('disableautocomplete') == 'true';"/>
<!-- option to completely ignore any blur events while
searches are still going on. This is useful so that nothing
gets autopicked if the window is required to lose focus for
@ -221,16 +272,12 @@
onset="this.setAttribute('ignoreblurwhilesearching', val); return val;"
onget="return this.getAttribute('ignoreblurwhilesearching') == 'true';"/>
<property name="minResultsForPopup"
onset="this.setAttribute('minresultsforpopup', val); return val;"
onget="var t = this.getAttribute('minresultsforpopup'); return t ? parseInt(t) : 1;"/>
<!-- state which indicates the current action being performed by the user.
Possible values are : none, typing, scrolling -->
<property name="userAction"
onset="this.setAttribute('userAction', val); return val;"
onget="return this.getAttribute('userAction');"/>
<!-- state which indicates if the last search had no matches -->
<field name="noMatch">true</field>
@ -241,51 +288,6 @@
<property name="isWaiting"
onget="return this.mAutoCompleteTimer != 0;"/>
<!-- reference to the results popup element -->
<field name="popup"><![CDATA[
document.getAnonymousElementByAttribute(this, "anonid", "popup");
]]></field>
<!-- nsIAccessibleProvider -->
<property name="accessibleType" readonly="true">
<getter>
<![CDATA[
// Will be exposed as nsIAccessible::ROLE_AUTOCOMPLETE
return Components.interfaces.nsIAccessibleProvider.XULCombobox;
]]>
</getter>
</property>
<!-- nsIDOMXULMenuListElement properties -->
<property name="editable" readonly="true" onget="return true;" />
<property name="crop" onset="this.setAttribute('crop',val); return val;"
onget="return this.getAttribute('crop');"/>
<property name="label" readonly="true" onget="return this.mInputElt.value;"/>
<property name="open">
<getter>
<![CDATA[
return this.getAttribute('open') == 'true';
]]>
</getter>
<setter>
<![CDATA[
var historyPopup = document.getAnonymousElementByAttribute(this, "anonid", "historydropmarker");
if (val) {
this.setAttribute('open',true);
historyPopup.showPopup();
}
else {
this.removeAttribute('open');
historyPopup.hidePopup();
}
]]>
</setter>
</property>
<!-- =================== PRIVATE PROPERTIES =================== -->
<field name="mSessions">({})</field>
@ -510,7 +512,7 @@
return this.view.rowCount;
]]></body>
</method>
<!-- get a session object by index -->
<method name="getSession">
<parameter name="aIndex"/>
@ -608,7 +610,7 @@
</method>
<!-- =================== PRIVATE METHODS =================== -->
<!-- ::::::::::::: session searching ::::::::::::: -->
<!-- -->
@ -1493,7 +1495,7 @@
<handler event="mousedown" phase="capturing"
action="if ( !this.mMenuOpen ) this.finishAutoComplete(false, false, event);"/>
</handlers>
</binding>
</binding>
<binding id="autocomplete-result-popup" extends="chrome://global/content/bindings/popup.xml#popup">
<resources>
@ -1510,7 +1512,7 @@
<xul:treechildren anonid="treebody" class="autocomplete-treebody"/>
</xul:tree>
</content>
<implementation implements="nsIAutoCompletePopup">
<constructor><![CDATA[
if (this.textbox && this.textbox.view)
@ -1740,7 +1742,7 @@
<field name="mLastMoveTime">Date.now()</field>
</implementation>
<handlers>
<handler event="mouseout" action="this.popup.selectedIndex = -1;"/>
@ -1769,7 +1771,7 @@
<stylesheet src="chrome://global/content/autocomplete.css"/>
<stylesheet src="chrome://global/skin/autocomplete.css"/>
</resources>
<implementation>
<method name="removeOpenAttribute">
<parameter name="parentNode"/>
@ -1787,7 +1789,7 @@
</binding>
<binding id="history-dropmarker" extends="chrome://global/content/bindings/general.xml#dropmarker">
<implementation>
<method name="showPopup">
<body><![CDATA[
@ -1800,7 +1802,7 @@
]]></body>
</method>
</implementation>
<handlers>
<handler event="mousedown"><![CDATA[
this.showPopup();