from sugar.graphics import canvasicon from sugar.graphics import units _ICON_NAME = 'device-battery' class DeviceView(canvasicon.CanvasIcon): def __init__(self, model): canvasicon.CanvasIcon.__init__(self, scale=units.MEDIUM_ICON_SCALE) self._model = model model.connect('notify::level', self._level_changed_cb) self._update_level() def _update_level(self): self.props.icon_name = canvasicon.get_icon_state( _ICON_NAME, self._model.props.level) def _level_changed_cb(self, pspec, param): self._update_level()