Source code for camtasia.effects.cursor
"""Cursor effects: CursorMotionBlur, CursorShadow, CursorPhysics, LeftClickScaling."""
from __future__ import annotations
from camtasia.effects.base import Effect, register_effect
from camtasia.effects.visual import _color_rgba, _set_color_rgba
[docs]
@register_effect("CursorMotionBlur")
class CursorMotionBlur(Effect):
"""Cursor motion blur effect.
Parameters:
intensity
"""
@property
def intensity(self) -> float:
"""Blur intensity level."""
return float(self.get_parameter("intensity"))
@intensity.setter
def intensity(self, value: float) -> None:
"""Set the blur intensity level."""
self.set_parameter("intensity", value)
[docs]
@register_effect("CursorShadow")
class CursorShadow(Effect):
"""Cursor shadow effect.
Parameters:
angle, offset, blur, opacity, color (RGBA).
"""
@property
def angle(self) -> float:
"""Shadow angle in radians."""
return float(self.get_parameter("angle"))
@angle.setter
def angle(self, value: float) -> None:
"""Set the shadow angle in radians."""
self.set_parameter("angle", value)
@property
def offset(self) -> float:
"""Shadow offset distance in pixels."""
return float(self.get_parameter("offset"))
@offset.setter
def offset(self, value: float) -> None:
"""Set the shadow offset distance in pixels."""
self.set_parameter("offset", value)
@property
def blur(self) -> float:
"""Shadow blur radius."""
return float(self.get_parameter("blur"))
@blur.setter
def blur(self, value: float) -> None:
"""Set the shadow blur radius."""
self.set_parameter("blur", value)
@property
def opacity(self) -> float:
"""Shadow opacity from 0.0 (transparent) to 1.0 (opaque)."""
return float(self.get_parameter("opacity"))
@opacity.setter
def opacity(self, value: float) -> None:
"""Set the shadow opacity."""
self.set_parameter("opacity", value)
@property
def color(self) -> tuple[float, float, float, float]:
"""RGBA color as ``(red, green, blue, alpha)`` floats."""
return _color_rgba(self.parameters, "color")
@color.setter
def color(self, rgba: tuple[float, float, float, float]) -> None:
"""Set the RGBA shadow color."""
_set_color_rgba(self.parameters, "color", rgba)
[docs]
@register_effect("CursorPhysics")
class CursorPhysics(Effect):
"""Cursor physics effect.
Parameters:
intensity, tilt
"""
@property
def intensity(self) -> float:
"""Physics effect intensity."""
return float(self.get_parameter("intensity"))
@intensity.setter
def intensity(self, value: float) -> None:
"""Set the physics effect intensity."""
self.set_parameter("intensity", value)
@property
def tilt(self) -> float:
"""Cursor tilt amount."""
return float(self.get_parameter("tilt"))
@tilt.setter
def tilt(self, value: float) -> None:
"""Set the cursor tilt amount."""
self.set_parameter("tilt", value)
[docs]
@register_effect("LeftClickScaling")
class LeftClickScaling(Effect):
"""Left-click cursor scaling effect.
Parameters:
scale, speed
"""
@property
def scale(self) -> float:
"""Click scale factor."""
return float(self.get_parameter("scale"))
@scale.setter
def scale(self, value: float) -> None:
"""Set the click scale factor."""
self.set_parameter("scale", value)
@property
def speed(self) -> float:
"""Scaling animation speed."""
return float(self.get_parameter("speed"))
@speed.setter
def speed(self, value: float) -> None:
"""Set the scaling animation speed."""
self.set_parameter("speed", value)