mirror of
https://github.com/wailsapp/wails.git
synced 2025-05-16 17:09:28 +08:00
46 lines
1.1 KiB
Go
46 lines
1.1 KiB
Go
// +build !experimental
|
|
|
|
package runtime
|
|
|
|
import (
|
|
"context"
|
|
"github.com/wailsapp/wails/v2/internal/messagedispatcher/message"
|
|
"github.com/wailsapp/wails/v2/internal/servicebus"
|
|
)
|
|
|
|
// On registers a listener for a particular event
|
|
func On(ctx context.Context, eventName string, callback func(optionalData ...interface{})) {
|
|
|
|
bus := servicebus.ExtractBus(ctx)
|
|
|
|
eventMessage := &message.OnEventMessage{
|
|
Name: eventName,
|
|
Callback: callback,
|
|
Counter: -1,
|
|
}
|
|
bus.Publish("event:on", eventMessage)
|
|
}
|
|
|
|
// Once registers a listener for a particular event. After the first callback, the
|
|
// listener is deleted.
|
|
func Once(ctx context.Context, eventName string, callback func(optionalData ...interface{})) {
|
|
bus := servicebus.ExtractBus(ctx)
|
|
eventMessage := &message.OnEventMessage{
|
|
Name: eventName,
|
|
Callback: callback,
|
|
Counter: 1,
|
|
}
|
|
bus.Publish("event:on", eventMessage)
|
|
}
|
|
|
|
// Emit pass through
|
|
func Emit(ctx context.Context, eventName string, optionalData ...interface{}) {
|
|
bus := servicebus.ExtractBus(ctx)
|
|
eventMessage := &message.EventMessage{
|
|
Name: eventName,
|
|
Data: optionalData,
|
|
}
|
|
|
|
bus.Publish("event:emit:from:g", eventMessage)
|
|
}
|