package me.eater.threedom.event import me.eater.threedom.dom.INode import me.eater.threedom.generated.EventNames interface EventDispatcher { fun trigger(eventName: String, event: Event<*>) = trigger(eventName, event.source, event) fun trigger(eventName: String, targetNode: INode<*>, event: Event<*>) } inline fun EventDispatcher.trigger(event: Event) = trigger(EventNames.getEventName(), event) inline fun EventDispatcher.trigger(target: INode<*>, event: Event) = trigger(EventNames.getEventName(), target, event)