Files
wails/v2/test/kitchensink/events.go
2020-10-18 11:49:27 +11:00

47 lines
1.1 KiB
Go

package main
import (
wails "github.com/wailsapp/wails/v2"
)
// Events struct
type Events struct {
runtime *wails.Runtime
}
// WailsInit is called at application startup
func (e *Events) WailsInit(runtime *wails.Runtime) error {
// Perform your setup here
e.runtime = runtime
return nil
}
// On will subscribe to the given event name
func (e *Events) On(eventName string) {
e.runtime.Events.On(eventName, func(args ...interface{}) {
type callbackData struct {
Name string
Data []interface{}
}
result := callbackData{Name: eventName, Data: args}
e.runtime.Events.Emit("event fired by go subscriber", result)
})
}
// Once will subscribe to the given event name
func (e *Events) Once(eventName string) {
e.runtime.Events.Once(eventName, func(args ...interface{}) {
type callbackData struct {
Name string
Data []interface{}
}
result := callbackData{Name: eventName, Data: args}
e.runtime.Events.Emit("once event fired by go subscriber", result)
})
}
// Emit will emit
func (e *Events) Emit(eventName string, data []interface{}) {
e.runtime.Events.Emit(eventName, data...)
}