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
/
update
/
updates.xml
< prev
Wrap
Extensible Markup Language
|
2005-07-29
|
11KB
|
283 lines
<?xml version="1.0"?>
<!DOCTYPE bindings SYSTEM "chrome://mozapps/locale/update/update.dtd">
<bindings id="updatesBindings"
xmlns="http://www.mozilla.org/xbl"
xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
xmlns:xbl="http://www.mozilla.org/xbl">
<binding id="updateStatusbarNotification"
extends="chrome://global/content/bindings/toolbarbutton.xml#toolbarbutton-image">
<resources>
<stylesheet src="chrome://mozapps/skin/update/update.css"/>
</resources>
<implementation implements="nsIObserver">
<destructor>
<![CDATA[
var os = Components.classes["@mozilla.org/observer-service;1"]
.getService(Components.interfaces.nsIObserverService);
// MRR The reason for these failures should be determined and corrected.
try { os.removeObserver(this, "Update:Ended"); } catch(e) {}
try { os.removeObserver(this, "Update:Extension:Item-Ended"); } catch(e) {}
try { os.removeObserver(this, "Update:App:Ended"); } catch(e) {}
]]>
</destructor>
<method name="init">
<body>
<![CDATA[
var os = Components.classes["@mozilla.org/observer-service;1"]
.getService(Components.interfaces.nsIObserverService);
os.addObserver(this, "Update:Ended", false);
os.addObserver(this, "Update:Extension:Item-Ended", false);
os.addObserver(this, "Update:App:Ended", false);
this.refreshData();
]]>
</body>
</method>
<method name="observe">
<parameter name="aSubject"/>
<parameter name="aTopic"/>
<parameter name="aData"/>
<body>
<![CDATA[
switch (aTopic) {
case "Update:Extension:Item-Ended":
case "Update:App:Ended":
case "Update:Ended":
this.refreshData();
}
]]>
</body>
</method>
<method name="refreshData">
<body>
<![CDATA[
var updates = Components.classes["@mozilla.org/updates/update-service;1"]
.getService(Components.interfaces.nsIUpdateService);
this.severity = updates.updateSeverity;
this.updateCount = updates.updateCount;
var sbs = Components.classes["@mozilla.org/intl/stringbundle;1"]
.getService(Components.interfaces.nsIStringBundleService);
var updateStrings = sbs.createBundle("chrome://mozapps/locale/update/update.properties");
var key;
if (this.updateCount > 0)
key = "updatesAvailableTooltip-" + this.severity;
else
key = "updatesCheckForUpdatesTooltip";
var tooltip = updateStrings.GetStringFromName(key);
this.setAttribute("tooltiptext", tooltip);
]]>
</body>
</method>
<method name="showUpdates">
<body>
<![CDATA[
var updates = Components.classes["@mozilla.org/updates/update-service;1"]
.getService(Components.interfaces.nsIUpdateService);
updates.checkForUpdates([], 0, Components.interfaces.nsIUpdateItem.TYPE_ANY,
Components.interfaces.nsIUpdateService.SOURCE_EVENT_USER,
window);
]]>
</body>
</method>
<property name="severity" onset="this.setAttribute('severity', val); return val;"
onget="return this.getAttribute('severity');"/>
<property name="updateCount" onset="this.setAttribute('updateCount', val); return val;"
onget="return this.getAttribute('updateCount');"/>
</implementation>
<handlers>
<handler event="command">
<![CDATA[
this.showUpdates();
]]>
</handler>
</handlers>
</binding>
<binding id="updateCategorySet" extends="chrome://global/content/bindings/radio.xml#radiogroup">
<implementation>
<method name="computeSizes">
<body>
<![CDATA[
var kids = this._getRadioChildren();
for (var i = 0; i < kids.length; ++i)
kids[i].expandedHeight = kids[i]._content.boxObject.height;
this.removeAttribute("_uninitialized");
]]>
</body>
</method>
<field name="lastSelectedItem">null</field>
</implementation>
</binding>
<binding id="updateCategory" extends="chrome://global/content/bindings/radio.xml#radio">
<resources>
<stylesheet src="chrome://global/skin/radio.css"/>
<stylesheet src="chrome://mozapps/skin/update/update.css"/>
</resources>
<content>
<xul:hbox class="updateCategoryBox" xbl:inherits="selected,checked,disabled">
<xul:hbox class="radio-check-box1" xbl:inherits="selected,checked,disabled">
<xul:hbox class="radio-check-box2" flex="1">
<xul:image class="radio-check" xbl:inherits="selected,checked,disabled"/>
</xul:hbox>
</xul:hbox>
<xul:image class="updateCategoryIcon" xbl:inherits="src"/>
<xul:label class="updateCategoryLabel" xbl:inherits="xbl:text=label,accesskey,crop,selected" flex="1"/>
</xul:hbox>
<xul:vbox flex="1" class="updateCategoryContent">
<children/>
</xul:vbox>
</content>
<implementation implements="nsITimerCallback">
<property name="expandedHeight"
onget="return this.getAttribute('expandedHeight');"
onset="this.setAttribute('expandedHeight', val); return val;"/>
<method name="notify">
<parameter name="aTimer"/>
<body>
<![CDATA[
var newHeight;
if (this._destinationSize == 0) {
if (this._content.boxObject.height > 0) {
newHeight = this._content.boxObject.height - this._animateIncrement;
newHeight = newHeight < 0 ? 0 : newHeight;
this._content.style.height = newHeight + "px";
this._timer.initWithCallback(this, this._animateDelay,
Components.interfaces.nsITimer.TYPE_ONE_SHOT);
}
else {
this._timer.cancel();
this._content.style.visibility = "collapse";
}
}
else {
if (this._content.boxObject.height <= this._destinationSize) {
newHeight = this._content.boxObject.height + this._animateIncrement;
newHeight = newHeight > this.expandedHeight ? this.expandedHeight : newHeight;
this._content.style.height = newHeight + "px";
this._timer.initWithCallback(this, this._animateDelay,
Components.interfaces.nsITimer.TYPE_ONE_SHOT);
}
else
this._timer.cancel();
}
]]>
</body>
</method>
<method name="_setUpTimer">
<parameter name="aSelected"/>
<body>
<![CDATA[
if (!this._timer)
this._timer = Components.classes["@mozilla.org/timer;1"]
.createInstance(Components.interfaces.nsITimer);
else
this._timer.cancel();
this._content.style.visibility = "visible";
this._destinationSize = aSelected ? this.expandedHeight : 0;
this._timer.initWithCallback(this, this._animateDelay,
Components.interfaces.nsITimer.TYPE_ONE_SHOT);
]]>
</body>
</method>
<field name="_content">
document.getAnonymousElementByAttribute(this, "class", "updateCategoryContent");
</field>
<field name="_timer">null</field>
<field name="_animateDelay">50</field>
<field name="_animateIncrement">25</field>
<field name="_destinationSize">0</field>
</implementation>
<handlers>
<handler event="RadioStateChange">
<![CDATA[
/*
this._content.style.height = "0px";
if (this.radioGroup.lastSelectedItem)
this.radioGroup.lastSelectedItem._setUpTimer(false);
this.radioGroup.lastSelectedItem = this;
this._setUpTimer(true);*/
]]>
</handler>
</handlers>
</binding>
<binding id="updateItem" extends="chrome://global/content/bindings/checkbox.xml#checkbox">
<content>
<xul:image class="checkbox-check" xbl:inherits="checked,disabled"/>
<xul:hbox class="checkbox-label-box" flex="1">
<xul:label class="checkbox-label foundLabel" xbl:inherits="xbl:text=label,accesskey" flex="1"/>
<xul:label class="checkbox-label" value="&from.label;"/>
<xul:label class="checkbox-label foundSource" xbl:inherits="xbl:text=source,infoURL,accesskey,crop"/>
</xul:hbox>
</content>
<implementation>
<property name="type"
onget="return this.getAttribute('type');"
onset="this.setAttribute('type', val); return val;"/>
<property name="source"
onget="return this.getAttribute('source');"
onset="this.setAttribute('source', val); return val;"/>
<property name="URL"
onget="return this.getAttribute('URL');"
onset="this.setAttribute('URL', val); return val;"/>
<property name="infoURL"
onget="return this.getAttribute('infoURL');"
onset="this.setAttribute('infoURL', val); return val;"/>
<property name="internalName"
onget="return this.getAttribute('internalName');"
onset="this.setAttribute('internalName', val); return val;"/>
</implementation>
</binding>
<binding id="link" extends="chrome://global/content/bindings/text.xml#text-base">
<content>
<xul:label xbl:inherits="value=label,crop" class="linkLabel" flex="1"/>
</content>
<implementation>
<property name="href"
onget="return this.getAttribute('href');"
onset="this.setAttribute('href', val); return val;"/>
</implementation>
<handlers>
<handler event="keypress" keycode="VK_ENTER" action="this.click()" />
<handler event="keypress" keycode="VK_RETURN" action="this.click()" />
<handler event="click">
<![CDATA[
if (event.button != 0)
return;
var ww = Components.classes["@mozilla.org/embedcomp/window-watcher;1"]
.getService(Components.interfaces.nsIWindowWatcher);
var ary = Components.classes["@mozilla.org/supports-array;1"]
.createInstance(Components.interfaces.nsISupportsArray);
var url = Components.classes["@mozilla.org/supports-string;1"]
.createInstance(Components.interfaces.nsISupportsString);
url.data = this.getAttribute("href")
ary.AppendElement(url);
ww.openWindow(null, "chrome://browser/content/browser.xul",
"_blank", "chrome,all,dialog=no", ary);
]]>
</handler>
</handlers>
</binding>
</bindings>