manuskript/manuskript/data/links.py
TheJackiMonster 906d05e377
Implement world view: selection and simple changes
Signed-off-by: TheJackiMonster <thejackimonster@gmail.com>
2022-10-30 12:51:07 +01:00

34 lines
814 B
Python

#!/usr/bin/env python
# --!-- coding: utf8 --!--
from collections.abc import Callable
from enum import Enum, unique
from manuskript.data.unique_id import UniqueID
@unique
class LinkAction(Enum):
DELETE = 0
UPDATE = 1
RELOAD = 2
class Links:
def __init__(self):
self.callbacks = list()
def add(self, callback: Callable[[LinkAction, UniqueID, any], None]):
self.callbacks.append(callback)
def remove(self, callback: Callable[[LinkAction, UniqueID, any], None]):
if callback in self.callbacks:
self.callbacks.remove(callback)
def call(self, action: LinkAction, UID: UniqueID, host: any):
for callback in self.callbacks:
callback(action, UID, host)
if action == LinkAction.DELETE:
self.callbacks.clear()