31 lines
1010 B
Python
31 lines
1010 B
Python
from sims.services.screenrec import ScreenrecService
|
|
|
|
from .base import FuzzyMenu, StaticActionProvider
|
|
|
|
|
|
def _idle_actions(service: ScreenrecService):
|
|
return [
|
|
("Monitor → Videos", lambda: service.start_monitor("videos")),
|
|
("Region → Videos", lambda: service.start_region("videos")),
|
|
("Monitor → Clipboard", lambda: service.start_monitor("clipboard")),
|
|
("Region → Clipboard", lambda: service.start_region("clipboard")),
|
|
]
|
|
|
|
|
|
def ScreenrecProvider(service: ScreenrecService) -> StaticActionProvider:
|
|
def items():
|
|
if service.recording:
|
|
return [("Stop Recording", service.stop)]
|
|
return _idle_actions(service)
|
|
|
|
return StaticActionProvider(items_factory=items)
|
|
|
|
|
|
def ScreenrecMenu(service: ScreenrecService, monitor: int = 0) -> FuzzyMenu:
|
|
return FuzzyMenu(
|
|
provider=ScreenrecProvider(service),
|
|
monitor=monitor,
|
|
placeholder="Screen Recording...",
|
|
window_name="screenrec-menu",
|
|
)
|