Event hooks
wails3 provides an event system that allows for hooking into application and window events
// Notification of application start
application.RegisterApplicationEventHook(events.Common.ApplicationStarted, func(event *application.ApplicationEvent) {
app.Logger.Info("Application started!")
})
// Notification of system theme change
application.OnApplicationEvent(events.Common.ThemeChanged, func(event *application.ApplicationEvent) {
app.Logger.Info("System theme changed!")
if event.Context().IsDarkMode() {
app.Logger.Info("System is now using dark mode!")
} else {
app.Logger.Info("System is now using light mode!")
}
})
// Disable window closing by canceling the event
window.RegisterHook(events.Common.WindowClosing, func(e *application.WindowEvent) {
app.Logger.Info("Window 1 Closing? Nope! Not closing!")
e.Cancel()
})
// Notification of window focus
window.OnWindowEvent(events.Common.WindowFocus, func(e *application.WindowEvent) {
app.Logger.Info("[ApplicationEvent] Window focus!")
})
Application Events#
Application events are hookable events that can be registered with application.RegisterApplicationEventHook()
and application.OnApplicationEvent()
. These events are based on events.ApplicationEventType
.
events.Common.ApplicationStarted
- Triggered when the application starts
events.Common.ThemeChanged
- Triggered when the application theme changes
Window Events#
events.Common.WindowMaximised
- Triggered when the window is maximised
events.Common.WindowUnmaximised
- Triggered when the window is unmaximised
events.Common.WindowMinimised
- Triggered when the window is minimised
events.Common.WindowUnminimised
- Triggered when the window is unminimised
events.Common.WindowFullscreen
- Triggered when the window is set to fullscreen
events.Common.WindowUnfullscreen
- Triggered when the window is unfullscreened
events.Common.WindowRestored
- Triggered when the window is restored
events.Common.WindowClosing
- Triggered before the window closes
events.Common.WindowZoom
- Triggered when the window is zoomed
events.Common.WindowZoomOut
- Triggered when the window is zoomed out
events.Common.WindowZoomIn
- Triggered when the window is zoomed in
events.Common.WindowZoomReset
- Triggered when the window zoom is reset
events.Common.WindowFocus
- Triggered when the window gains focus
events.Common.WindowLostFocus
- Triggered when the window loses focus
events.Common.WindowShow
- Triggered when the window is shown
events.Common.WindowHide
- Triggered when the window is hidden
events.Common.WindowDPIChanged
- Triggered when the window DPI changes
events.Common.WindowFilesDropped
- Triggered when files are dropped on the window
events.Common.WindowRuntimeReady
- Triggered when the window runtime is ready
events.Common.WindowDidMove
- Triggered when the window is moved
events.Common.WindowDidResize
- Triggered when the window is resized
OS-Specific Events#
Linux Events#
Application Events#
events.Linux.ApplicationStartup
- Triggered when the application starts
events.Linux.SystemThemeChanged
- Triggered when the system theme changes
Window Events#
events.Linux.WindowLoadChanged
- Triggered when the window load changes
events.Linux.WindowDeleteEvent
- Triggered when the window is deleted
events.Linux.WindowDidMove
- Triggered when the window is moved
events.Linux.WindowDidResize
- Triggered when the window is resized
events.Linux.WindowFocusIn
- Triggered when the window gains focus
events.Linux.WindowFocusOut
- Triggered when the window loses focus
Windows Events#
Application Events#
events.Windows.ApplicationStarted
- Triggered when the application starts
events.Windows.SystemThemeChanged
- Triggered when the system theme changes
events.Windows.APMPowerStatusChange
- Triggered when the system power status changes
events.Windows.APMSuspend
- Triggered when the system suspends
events.Windows.APMResumeAutomatic
- Triggered when the system resumes after a sleep
events.Windows.APMResumeSuspend
- Triggered when the system resumes after a suspend and resume was triggered by the user
Window Events#
events.Windows.WebviewNavigationCompleted
- Triggered when the webview navigation is completed
events.Windows.WindowInactive
- Triggered when the window is inactive
events.Windows.WindowActive
- Triggered when the window is active
events.Windows.ClickActive
- Triggered when the window is activated via a click
events.Windows.MaximiseActive
- Triggered when the window is maximised
events.Windows.UnMaximise
- Triggered when the window is unmaximised
events.Windows.Fullscreen
- Triggered when the window is set to fullscreen
events.Windows.UnFullscreen
- Triggered when the window is exited from fullscreene
events.Windows.WindowRestore
- Triggered when the window is restored
events.Windows.WindowMinimise
- Triggered when the window is minimised
events.Windows.WindowUnminimise
- Triggered when the window is unminimised
events.Windows.WindowClose
-
- Triggered before the window closes
events.Windows.WindowSetFocus
- Triggered when the window gains keyboard focus
events.Windows.WindowKillFocus
- Triggered when the window loses keyboard focus
events.Windows.WindowDragDrop
- Triggered when files are dropped on the window
events.Windows.WindowDragEnter
- Triggered when a drag enters the window
events.Windows.WindowDragLeave
- Triggered when a drag leaves the window
events.Windows.WindowDragOver
- Triggered when a drag is over the window
events.Windows.WindowDidMove
- Triggered after a window has moved
macOS Events#
Application Events#
events.Mac.ApplicationDidBecomeActive
- Triggered when the application becomes active
events.Mac.ApplicationDidChangeBackingProperties
- Triggered when the application changes backing properties
events.Mac.ApplicationDidChangeEffectiveAppearance
- Triggered when the application changes effective appearance
events.Mac.ApplicationDidChangeIcon
- Triggered when the application changes icon
events.Mac.ApplicationDidChangeOcclusionState
- Triggered when the application changes occlusion state
events.Mac.ApplicationDidChangeScreenParameters
- Triggered when the application changes screen parameters
events.Mac.ApplicationDidChangeStatusBarFrame
- Triggered when the application changes status bar frame
events.Mac.ApplicationDidChangeStatusBarOrientation
- Triggered when the application changes status bar orientation
events.Mac.ApplicationDidFinishLaunching
- Triggered when the application finishes launching
events.Mac.ApplicationDidResignActiveNotification
- Triggered when the application is no longer active
events.Mac.ApplicationDidHide
- Triggered when the application is hidden
events.Mac.ApplicationDidUpdate
- Triggered when the application updates
events.Mac.ApplicationWillBecomeActive
- Triggered when the application is about to become active
events.Mac.ApplicationWillFinishLaunching
- Triggered when the application is about to finish launching
events.Mac.ApplicationWillHide
- Triggered when the application is about to hide
events.Mac.ApplicationWillResignActive
- Triggered when the application is about to lose focus
events.Mac.ApplicationWillTerminate
- Triggered when the application is about to terminate
events.Mac.ApplicationWillUnhide
- Triggered when the application is about to unhide
events.Mac.ApplicationWillUpdate
- Triggered when the application is about to update
events.Mac.ApplicationDidChangeTheme
- Triggered when the application changes theme
events.Mac.MenuWillOpen
- Triggered when the menu is about to open
events.Mac.MenuDidOpen
- Triggered when the menu opens
events.Mac.MenuDidClose
- Triggered when the menu closes
events.Mac.MenuWillSendAction
- Triggered when the menu is about to send an action
events.Mac.MenuDidSendAction
- Triggered when the menu sends an action
events.Mac.MenuWillHighlightItem
- Triggered when the menu is about to highlight an item
events.Mac.MenuDidHighlightItem
- Triggered when the menu highlights an item
events.Mac.MenuWillDisplayItem
- Triggered when the menu is about to display an item
events.Mac.MenuDidDisplayItem
- Triggered when the menu displays an item
events.Mac.MenuWillAddItem
- Triggered when the menu is about to add an item
events.Mac.MenuDidAddItem
- Triggered when the menu adds an item
events.Mac.MenuWillRemoveItem
- Triggered when the menu is about to remove an item
events.Mac.MenuDidRemoveItem
- Triggered when the menu removes an item
events.Mac.MenuWillBeginTracking
- Triggered when the menu is about to begin tracking
events.Mac.MenuDidBeginTracking
- Triggered when the menu begins tracking
events.Mac.MenuWillEndTracking
- Triggered when the menu is about to end tracking
events.Mac.MenuDidEndTracking
- Triggered when the menu ends tracking
events.Mac.MenuWillUpdate
- Triggered when the menu is about to update
events.Mac.MenuDidUpdate
- Triggered when the menu updates
events.Mac.MenuWillPopUp
- Triggered when the menu is about to pop up
events.Mac.MenuDidPopUp
- Triggered when the menu pops up
events.Mac.MenuWillSendActionToItem
- Triggered when the menu is about to send an action to an item
events.Mac.MenuDidSendActionToItem
- Triggered when the menu sends an action to an item
Window Events#
events.Mac.WindowDidBecomeKey
- Triggered when the window becomes key
events.Mac.WindowDidBecomeMain
- Triggered when the window becomes main
events.Mac.WindowDidBeginSheet
- Triggered when the window begins a sheet
events.Mac.WindowDidChangeAlpha
- Triggered when the window alpha changes
events.Mac.WindowDidChangeBackingLocation
- Triggered when the window backing location changes
events.Mac.WindowDidChangeBackingProperties
- Triggered when the window backing properties change
events.Mac.WindowDidChangeCollectionBehavior
- Triggered when the window collection behavior changes
events.Mac.WindowDidChangeEffectiveAppearance
- Triggered when the window effective appearance changes
events.Mac.WindowDidChangeOcclusionState
- Triggered when the window occlusion state changes
events.Mac.WindowDidChangeOrderingMode
- Triggered when the window ordering mode changes
events.Mac.WindowDidChangeScreen
- Triggered when the window screen changes
events.Mac.WindowDidChangeScreenParameters
- Triggered when the window screen parameters change
events.Mac.WindowDidChangeScreenProfile
- Triggered when the window screen profile changes
events.Mac.WindowDidChangeScreenSpace
- Triggered when the window screen space changes
events.Mac.WindowDidChangeScreenSpaceProperties
- Triggered when the window screen space properties change
events.Mac.WindowDidChangeSharingType
- Triggered when the window sharing type changes
events.Mac.WindowDidChangeSpace
- Triggered when the window space changes
events.Mac.WindowDidChangeSpaceOrderingMode
- Triggered when the window space ordering mode changes
events.Mac.WindowDidChangeTitle
- Triggered when the window title changes
events.Mac.WindowDidChangeToolbar
- Triggered when the window toolbar changes
events.Mac.WindowDidChangeVisibility
- Triggered when the window visibility changes
events.Mac.WindowDidDeminiaturize
- Triggered when the window is deminiaturized
events.Mac.WindowDidEndSheet
- Triggered when the window ends a sheet
events.Mac.WindowDidEnterFullScreen
- Triggered when the window enters fullscreen
events.Mac.WindowDidEnterVersionBrowser
- Triggered when the window enters version browser
events.Mac.WindowDidExitFullScreen
- Triggered when the window exits fullscreen
events.Mac.WindowDidExitVersionBrowser
- Triggered when the window exits version browser
events.Mac.WindowDidExpose
- Triggered when the window is exposed
events.Mac.WindowDidFocus
- Triggered when the window is focused
events.Mac.WindowDidMiniaturize
- Triggered when the window is miniaturized
events.Mac.WindowDidMove
- Triggered when the window is moved
events.Mac.WindowDidOrderOffScreen
- Triggered when the window is ordered off-screen
events.Mac.WindowDidOrderOnScreen
- Triggered when the window is ordered on screen
events.Mac.WindowDidResignKey
- Triggered when the window resigns key
events.Mac.WindowDidResignMain
- Triggered when the window resigns main
events.Mac.WindowDidResize
- Triggered when the window is resized
events.Mac.WindowDidUpdate
- Triggered when the window updates
events.Mac.WindowDidUpdateAlpha
- Triggered when the window alpha updates
events.Mac.WindowDidUpdateCollectionBehavior
- Triggered when the window collection behavior updates
events.Mac.WindowDidUpdateCollectionProperties
- Triggered when the window collection properties update
events.Mac.WindowDidUpdateShadow
- Triggered when the window shadow updates
events.Mac.WindowDidUpdateTitle
- Triggered when the window title updates
events.Mac.WindowDidUpdateToolbar
- Triggered when the window toolbar updates
events.Mac.WindowDidUpdateVisibility
- Triggered when the window visibility updates
events.Mac.WindowShouldClose
- Triggered when the window should close
events.Mac.WindowWillBecomeKey
- Triggered when the window will become key
events.Mac.WindowWillBecomeMain
- Triggered when the window will become main
events.Mac.WindowWillBeginSheet
- Triggered when the window will begin a sheet
events.Mac.WindowWillChangeOrderingMode
- Triggered when the window will change ordering mode
events.Mac.WindowWillClose
- Triggered when the window will close
events.Mac.WindowWillDeminiaturize
- Triggered when the window will deminiaturize
events.Mac.WindowWillEnterFullScreen
- Triggered when the window will enter fullscreen
events.Mac.WindowWillEnterVersionBrowser
- Triggered when the window will enter version browser
events.Mac.WindowWillExitFullScreen
- Triggered when the window will exit fullscreen
events.Mac.WindowWillExitVersionBrowser
- Triggered when the window will exit version browser
events.Mac.WindowWillFocus
- Triggered when the window will focus
events.Mac.WindowWillMiniaturize
- Triggered when the window will miniaturize
events.Mac.WindowWillMove
- Triggered when the window will move
events.Mac.WindowWillOrderOffScreen
- Triggered when the window will order off-screen
events.Mac.WindowWillOrderOnScreen
- Triggered when the window will order on screen`
events.Mac.WindowWillResignMain
- Triggered when the window will resign main
events.Mac.WindowWillResize
- Triggered when the window will resize
events.Mac.WindowWillUnfocus
- Triggered when the window will unfocus`
events.Mac.WindowWillUpdate
- Triggered when the window will update
events.Mac.WindowWillUpdateAlpha
- Triggered when the window will update alpha
events.Mac.WindowWillUpdateCollectionBehavior
- Triggered when the window will update collection behavior
events.Mac.WindowWillUpdateCollectionProperties
- Triggered when the window will update collection properties
events.Mac.WindowWillUpdateShadow
- Triggered when the window will update shadow
events.Mac.WindowWillUpdateTitle
- Triggered when the window will update title
events.Mac.WindowWillUpdateToolbar
- Triggered when the window will update toolbar
events.Mac.WindowWillUpdateVisibility
- Triggered when the window will update visibility
events.Mac.WindowWillUseStandardFrame
- Triggered when the window will use standard frame
events.Mac.WebviewDidStartProvisionalNavigation
- Triggered when the webview starts a provisional navigation
events.Mac.WebviewDidReceiveServerRedirectForProvisionalNavigation
- Triggered when the webview receives a server redirect for a provisional navigation
events.Mac.WebviewDidFinishNavigation
- Triggered when the webview finishes navigation
events.Mac.WebviewDidCommitNavigation
- Triggered when the webview commits navigation
events.Mac.WindowFileDraggingEntered
- Triggered when files are dragged into the window`
events.Mac.WindowFileDraggingPerformed
- Triggered when files are dragged in the window
events.Mac.WindowFileDraggingExited
- Triggered when files are dragged out of the window