Bug 22056 Show toolbars as text/icons/both

patch by neil@parkwaycc.co.uk r=timeless sr=bz
using xbl:inherits
This commit is contained in:
timeless%mac.com 2006-06-30 07:29:19 +00:00
parent 362a234a8b
commit 9655960ec4

View File

@ -165,6 +165,59 @@
</implementation>
</binding>
<binding id="toolbar-primary" extends="chrome://global/content/bindings/toolbar.xml#toolbar">
<implementation implements="nsIObserver">
<field name="domain" readonly="true">
"browser.chrome.toolbar_style"
</field>
<field name="prefs" readonly="true">
Components.classes["@mozilla.org/preferences-service;1"]
.getService(Components.interfaces.nsIPrefBranchInternal)
.QueryInterface(Components.interfaces.nsIPrefBranch)
</field>
<method name="observe">
<parameter name="subject"/>
<parameter name="topic"/>
<parameter name="name"/>
<body>
<![CDATA[
if (topic == "nsPref:changed" && name == this.domain) {
const styles = ["pictures", "text", null];
const style = styles[this.prefs.getIntPref(name)];
this.setAttribute("buttonstyle", style);
this.update("toolbarbutton", style);
this.update("button", style);
}
]]>
</body>
</method>
<method name="update">
<parameter name="tag"/>
<parameter name="style"/>
<body>
<![CDATA[
var elements = this.getElementsByTagName(tag);
for (var i = 0; i < elements.length; i++)
elements[i].setAttribute("buttonstyle", style);
]]>
</body>
</method>
<constructor>
this.prefs.addObserver(this.domain, this, false);
if (this.prefs.getIntPref(this.domain) != 2)
this.observe(this.prefs, "nsPref:changed", this.domain);
</constructor>
<destructor>
this.prefs.removeObserver(this.domain, this);
</destructor>
</implementation>
</binding>
<binding id="menubar" extends="xul:menubar">
<resources>
<stylesheet src="chrome://global/skin/toolbar.css"/>