wanda: Update code to use Panel.Animation

This simplifies our code tremendously.
This commit is contained in:
Jasper St. Pierre 2012-11-27 13:14:30 -05:00
parent a46321baa0
commit 858694f4cc

View File

@ -9,6 +9,7 @@ const St = imports.gi.St;
const IconGrid = imports.ui.iconGrid; const IconGrid = imports.ui.iconGrid;
const Layout = imports.ui.layout; const Layout = imports.ui.layout;
const Main = imports.ui.main; const Main = imports.ui.main;
const Panel = imports.ui.panel;
const Search = imports.ui.search; const Search = imports.ui.search;
// we could make these gsettings // we could make these gsettings
@ -53,21 +54,9 @@ const WandaIcon = new Lang.Class({
icon_size: iconSize }); icon_size: iconSize });
} }
this._animations = St.TextureCache.get_default().load_sliced_image(this._imageFile, this._animations = new Panel.Animation(this._imageFile, this._imgWidth, this._imgHeight, FISH_SPEED);
this._imgWidth, this._imgHeight, Lang.bind(this, this._animations.play();
function() { return this._animations.actor;
if (this._animations.mapped && !this._timeoutId) {
this._timeoutId = GLib.timeout_add(GLib.PRIORITY_DEFAULT, FISH_SPEED, Lang.bind(this, this._update));
this._i = 0;
this._update();
} else if (!this._animations.mapped && this._timeoutId) {
GLib.source_remove(this._timeoutId);
this._timeoutId = 0;
}
}));
return this._animations;
}, },
_createIconTexture: function(size) { _createIconTexture: function(size) {
@ -75,20 +64,7 @@ const WandaIcon = new Lang.Class({
return; return;
this.parent(size); this.parent(size);
},
_update: function() {
let n = this._animations.get_n_children();
if (n == 0) {
return true;
} }
this._animations.get_child_at_index(this._i).hide();
this._i = (this._i + 1) % n;
this._animations.get_child_at_index(this._i).show();
return true;
},
}); });
const WandaIconBin = new Lang.Class({ const WandaIconBin = new Lang.Class({