From b5ee89459a701c788a2d7e4887618a62ca8338a6 Mon Sep 17 00:00:00 2001 From: Giovanni Campagna Date: Tue, 6 Jul 2010 09:51:53 +0200 Subject: [PATCH] Support setting the image after construction This patch allows the icon in PopupImageMenuItems to be changed at any time, while preserving the item and all other properties (style, signals) attached and without rebuilding the whole menu. This is useful for images reflecting a dynamic status (e.g. cellular strength indicator or battery level) https://bugzilla.gnome.org/show_bug.cgi?id=623652 --- js/ui/popupMenu.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/js/ui/popupMenu.js b/js/ui/popupMenu.js index e307d4e2a..33977e45e 100644 --- a/js/ui/popupMenu.js +++ b/js/ui/popupMenu.js @@ -221,7 +221,8 @@ PopupImageMenuItem.prototype = { this.actor.set_child(box); this._imageBin = new St.Bin({ width: this._size, height: this._size }); box.add(this._imageBin, { y_fill: false }); - box.add(new St.Label({ text: text }), { expand: true }); + this.label = new St.Label({ text: text }); + box.add(this.label, { expand: true }); if (!alwaysShowImage) { let settings = Gtk.Settings.get_default(); @@ -245,6 +246,11 @@ PopupImageMenuItem.prototype = { this._imageBin.set_child(img); this._imageBin.show(); } + }, + + setIcon: function(name) { + this._iconName = name; + this._onMenuImagesChanged(); } };