def METHOD_NAME(self, *args, **kwargs):
    try:
        angle = float(self.angle)
    except ValueError:  # pragma: no cover
        # empty string, etc
        angle = 0
    # Rotate selected viewer canvas. This changes zoom too.
    self.app._viewer_item_by_id(self.viewer.selected_id)['canvas_angle'] = angle
    # broadcast message (used by compass, etc)
    self.hub.broadcast(CanvasRotationChangedMessage(self.viewer.selected_id,
                                                    angle, self.flip_horizontal, sender=self))