[InfoBar] Allow to optionally change the button label

Currently the infoBar's button will always read "Undo" - sometimes
a different label makes more sense, so allow to optionally set the
label to something else.

https://bugzilla.gnome.org/show_bug.cgi?id=612200
This commit is contained in:
Florian Müllner 2010-03-10 15:14:56 +01:00
parent 744bc996db
commit d1108e1e7d

View File

@ -89,8 +89,7 @@ InfoBar.prototype = {
x_fill: true, x_fill: true,
y_fill: false }); y_fill: false });
this._label = new St.Label(); this._label = new St.Label();
this._undo = new St.Button({ label: _("Undo"), this._undo = new St.Button({ style_class: 'info-bar-link-button' });
style_class: 'info-bar-link-button' });
let bin = new St.Bin({ x_fill: false, let bin = new St.Bin({ x_fill: false,
y_fill: false, y_fill: false,
@ -153,7 +152,7 @@ InfoBar.prototype = {
this._overviewWasHidden = true; this._overviewWasHidden = true;
}, },
setMessage: function(text, undoCallback) { setMessage: function(text, undoCallback, undoLabel) {
if (this._timeoutId) if (this._timeoutId)
Mainloop.source_remove(this._timeoutId); Mainloop.source_remove(this._timeoutId);
@ -177,6 +176,11 @@ InfoBar.prototype = {
this._timeoutId = Mainloop.timeout_add_seconds(INFO_BAR_HIDE_TIMEOUT, Lang.bind(this, this._onTimeout)); this._timeoutId = Mainloop.timeout_add_seconds(INFO_BAR_HIDE_TIMEOUT, Lang.bind(this, this._onTimeout));
if (undoLabel)
this._undo.label = undoLabel;
else
this._undo.label = _("Undo");
this._undoCallback = undoCallback; this._undoCallback = undoCallback;
if (undoCallback) if (undoCallback)
this._undo.show(); this._undo.show();