summaryrefslogtreecommitdiffstats
path: root/src/util.ts
diff options
context:
space:
mode:
authorMatthias Schiffer <mschiffer@universe-factory.net>2018-10-31 10:52:57 +0100
committerMatthias Schiffer <mschiffer@universe-factory.net>2018-10-31 10:52:57 +0100
commit1712352d1c72628a045300fe922c82cd3214070a (patch)
tree620bd559e2e8fb018d692cf10c20ecd7d108cb04 /src/util.ts
parenta86a80e402d5cc58bc2bf248ddbf82d5fafa88a1 (diff)
downloadrpgedit-1712352d1c72628a045300fe922c82cd3214070a.tar
rpgedit-1712352d1c72628a045300fe922c82cd3214070a.zip
view: add simple input handlers
Diffstat (limited to 'src/util.ts')
-rw-r--r--src/util.ts12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/util.ts b/src/util.ts
index 453966e..7129b2b 100644
--- a/src/util.ts
+++ b/src/util.ts
@@ -33,3 +33,15 @@ export function nextPowerOf2(n: number): number {
return i;
}
+
+export class Listenable<T extends any[]> {
+ private readonly listeners: Array<(...args: T) => void> = [];
+
+ public addListener(listener: (...args: T) => void): void {
+ this.listeners.push(listener);
+ }
+
+ protected runListeners(...args: T): void {
+ this.listeners.forEach((l) => l(...args));
+ }
+}