You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
16 lines
571 B
Kotlin
16 lines
571 B
Kotlin
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 <reified T> EventDispatcher.trigger(event: Event<T>) =
|
|
trigger(EventNames.getEventName<T>(), event)
|
|
|
|
inline fun <reified T> EventDispatcher.trigger(target: INode<*>, event: Event<T>) =
|
|
trigger(EventNames.getEventName<T>(), target, event)
|