package runtime import ( "github.com/wailsapp/wails/v2/internal/servicebus" "github.com/wailsapp/wails/v2/pkg/menu" ) // Runtime is a means for the user to interact with the application at runtime type Runtime struct { Browser Browser Events Events Window Window Dialog Dialog System System Menu Menu ContextMenu ContextMenus Store *StoreProvider Log Log bus *servicebus.ServiceBus } // New creates a new runtime func New(serviceBus *servicebus.ServiceBus, contextMenus *menu.ContextMenus) *Runtime { result := &Runtime{ Browser: newBrowser(), Events: newEvents(serviceBus), Window: newWindow(serviceBus), Dialog: newDialog(serviceBus), System: newSystem(serviceBus), Menu: newMenu(serviceBus), ContextMenu: newContextMenus(serviceBus, contextMenus), Log: newLog(serviceBus), bus: serviceBus, } result.Store = newStore(result) return result } // Quit the application func (r *Runtime) Quit() { r.bus.Publish("quit", "runtime.Quit()") }