# application
```go
import "github.com/wailsapp/wails/v3/pkg/application"
```
## Index
- [Constants](<#constants>)
- [Variables](<#variables>)
- [func DefaultLogger\(level slog.Level\) \*slog.Logger](<#DefaultLogger>)
- [func Fatal\(message string, args ...interface\{\}\)](<#Fatal>)
- [func InvokeAsync\(fn func\(\)\)](<#InvokeAsync>)
- [func InvokeSync\(fn func\(\)\)](<#InvokeSync>)
- [func InvokeSyncWithError\(fn func\(\) error\) \(err error\)](<#InvokeSyncWithError>)
- [func InvokeSyncWithResult\[T any\]\(fn func\(\) T\) \(res T\)](<#InvokeSyncWithResult>)
- [func InvokeSyncWithResultAndError\[T any\]\(fn func\(\) \(T, error\)\) \(res T, err error\)](<#InvokeSyncWithResultAndError>)
- [func NewIconFromResource\(instance w32.HINSTANCE, resId uint16\) \(w32.HICON, error\)](<#NewIconFromResource>)
- [func ScaleToDefaultDPI\(pixels int, dpi uint\) int](<#ScaleToDefaultDPI>)
- [func ScaleWithDPI\(pixels int, dpi uint\) int](<#ScaleWithDPI>)
- [type ActivationPolicy](<#ActivationPolicy>)
- [type App](<#App>)
- [func Get\(\) \*App](<#Get>)
- [func New\(appOptions Options\) \*App](<#New>)
- [func \(a \*App\) Capabilities\(\) capabilities.Capabilities](<#App.Capabilities>)
- [func \(a \*App\) Clipboard\(\) \*Clipboard](<#App.Clipboard>)
- [func \(a \*App\) CurrentWindow\(\) \*WebviewWindow](<#App.CurrentWindow>)
- [func \(a \*App\) GetPID\(\) int](<#App.GetPID>)
- [func \(a \*App\) GetPrimaryScreen\(\) \(\*Screen, error\)](<#App.GetPrimaryScreen>)
- [func \(a \*App\) GetScreens\(\) \(\[\]\*Screen, error\)](<#App.GetScreens>)
- [func \(a \*App\) GetWindowByName\(name string\) \*WebviewWindow](<#App.GetWindowByName>)
- [func \(a \*App\) Hide\(\)](<#App.Hide>)
- [func \(a \*App\) IsDarkMode\(\) bool](<#App.IsDarkMode>)
- [func \(a \*App\) NewMenu\(\) \*Menu](<#App.NewMenu>)
- [func \(a \*App\) NewSystemTray\(\) \*SystemTray](<#App.NewSystemTray>)
- [func \(a \*App\) NewWebviewWindow\(\) \*WebviewWindow](<#App.NewWebviewWindow>)
- [func \(a \*App\) NewWebviewWindowWithOptions\(windowOptions WebviewWindowOptions\) \*WebviewWindow](<#App.NewWebviewWindowWithOptions>)
- [func \(a \*App\) On\(eventType events.ApplicationEventType, callback func\(event \*Event\)\) func\(\)](<#App.On>)
- [func \(a \*App\) OnWindowCreation\(callback func\(window \*WebviewWindow\)\)](<#App.OnWindowCreation>)
- [func \(a \*App\) Quit\(\)](<#App.Quit>)
- [func \(a \*App\) RegisterContextMenu\(name string, menu \*Menu\)](<#App.RegisterContextMenu>)
- [func \(a \*App\) RegisterHook\(eventType events.ApplicationEventType, callback func\(event \*Event\)\) func\(\)](<#App.RegisterHook>)
- [func \(a \*App\) Run\(\) error](<#App.Run>)
- [func \(a \*App\) SetMenu\(menu \*Menu\)](<#App.SetMenu>)
- [func \(a \*App\) Show\(\)](<#App.Show>)
- [func \(a \*App\) ShowAboutDialog\(\)](<#App.ShowAboutDialog>)
- [type ApplicationEventContext](<#ApplicationEventContext>)
- [func \(c ApplicationEventContext\) IsDarkMode\(\) bool](<#ApplicationEventContext.IsDarkMode>)
- [func \(c ApplicationEventContext\) OpenedFiles\(\) \[\]string](<#ApplicationEventContext.OpenedFiles>)
- [type Args](<#Args>)
- [func \(a \*Args\) Bool\(s string\) \*bool](<#Args.Bool>)
- [func \(a \*Args\) Float64\(s string\) \*float64](<#Args.Float64>)
- [func \(a \*Args\) Int\(s string\) \*int](<#Args.Int>)
- [func \(a \*Args\) String\(key string\) \*string](<#Args.String>)
- [func \(a \*Args\) UInt\(s string\) \*uint](<#Args.UInt>)
- [func \(a \*Args\) UInt8\(s string\) \*uint8](<#Args.UInt8>)
- [type AssetOptions](<#AssetOptions>)
- [type BackdropType](<#BackdropType>)
- [type BackgroundType](<#BackgroundType>)
- [type Bindings](<#Bindings>)
- [func NewBindings\(structs \[\]any, aliases map\[uint32\]uint32\) \(\*Bindings, error\)](<#NewBindings>)
- [func \(b \*Bindings\) Add\(structPtr interface\{\}\) error](<#Bindings.Add>)
- [func \(b \*Bindings\) AddPlugins\(plugins map\[string\]Plugin\) error](<#Bindings.AddPlugins>)
- [func \(b \*Bindings\) GenerateID\(name string\) \(uint32, error\)](<#Bindings.GenerateID>)
- [func \(b \*Bindings\) Get\(options \*CallOptions\) \*BoundMethod](<#Bindings.Get>)
- [func \(b \*Bindings\) GetByID\(id uint32\) \*BoundMethod](<#Bindings.GetByID>)
- [type BoundMethod](<#BoundMethod>)
- [func \(b \*BoundMethod\) Call\(args \[\]interface\{\}\) \(returnValue interface\{\}, err error\)](<#BoundMethod.Call>)
- [func \(b \*BoundMethod\) String\(\) string](<#BoundMethod.String>)
- [type Button](<#Button>)
- [func \(b \*Button\) OnClick\(callback func\(\)\) \*Button](<#Button.OnClick>)
- [func \(b \*Button\) SetAsCancel\(\) \*Button](<#Button.SetAsCancel>)
- [func \(b \*Button\) SetAsDefault\(\) \*Button](<#Button.SetAsDefault>)
- [type CallOptions](<#CallOptions>)
- [func \(c CallOptions\) Name\(\) string](<#CallOptions.Name>)
- [type Clipboard](<#Clipboard>)
- [func \(c \*Clipboard\) SetText\(text string\) bool](<#Clipboard.SetText>)
- [func \(c \*Clipboard\) Text\(\) \(string, bool\)](<#Clipboard.Text>)
- [type Context](<#Context>)
- [func \(c \*Context\) ClickedMenuItem\(\) \*MenuItem](<#Context.ClickedMenuItem>)
- [func \(c \*Context\) ContextMenuData\(\) any](<#Context.ContextMenuData>)
- [func \(c \*Context\) IsChecked\(\) bool](<#Context.IsChecked>)
- [type ContextMenuData](<#ContextMenuData>)
- [type DialogType](<#DialogType>)
- [type Event](<#Event>)
- [func \(w \*Event\) Cancel\(\)](<#Event.Cancel>)
- [func \(w \*Event\) Context\(\) \*ApplicationEventContext](<#Event.Context>)
- [type EventListener](<#EventListener>)
- [type EventProcessor](<#EventProcessor>)
- [func NewWailsEventProcessor\(dispatchEventToWindows func\(\*WailsEvent\)\) \*EventProcessor](<#NewWailsEventProcessor>)
- [func \(e \*EventProcessor\) Emit\(thisEvent \*WailsEvent\)](<#EventProcessor.Emit>)
- [func \(e \*EventProcessor\) Off\(eventName string\)](<#EventProcessor.Off>)
- [func \(e \*EventProcessor\) OffAll\(\)](<#EventProcessor.OffAll>)
- [func \(e \*EventProcessor\) On\(eventName string, callback func\(event \*WailsEvent\)\) func\(\)](<#EventProcessor.On>)
- [func \(e \*EventProcessor\) OnMultiple\(eventName string, callback func\(event \*WailsEvent\), counter int\) func\(\)](<#EventProcessor.OnMultiple>)
- [func \(e \*EventProcessor\) Once\(eventName string, callback func\(event \*WailsEvent\)\) func\(\)](<#EventProcessor.Once>)
- [func \(e \*EventProcessor\) RegisterHook\(eventName string, callback func\(\*WailsEvent\)\) func\(\)](<#EventProcessor.RegisterHook>)
- [type FileFilter](<#FileFilter>)
- [type IconPosition](<#IconPosition>)
- [type MacAppearanceType](<#MacAppearanceType>)
- [type MacBackdrop](<#MacBackdrop>)
- [type MacOptions](<#MacOptions>)
- [type MacTitleBar](<#MacTitleBar>)
- [type MacToolbarStyle](<#MacToolbarStyle>)
- [type MacWindow](<#MacWindow>)
- [type Menu](<#Menu>)
- [func NewMenu\(\) \*Menu](<#NewMenu>)
- [func \(m \*Menu\) Add\(label string\) \*MenuItem](<#Menu.Add>)
- [func \(m \*Menu\) AddCheckbox\(label string, enabled bool\) \*MenuItem](<#Menu.AddCheckbox>)
- [func \(m \*Menu\) AddRadio\(label string, enabled bool\) \*MenuItem](<#Menu.AddRadio>)
- [func \(m \*Menu\) AddRole\(role Role\) \*Menu](<#Menu.AddRole>)
- [func \(m \*Menu\) AddSeparator\(\)](<#Menu.AddSeparator>)
- [func \(m \*Menu\) AddSubmenu\(s string\) \*Menu](<#Menu.AddSubmenu>)
- [func \(m \*Menu\) SetLabel\(label string\)](<#Menu.SetLabel>)
- [func \(m \*Menu\) Update\(\)](<#Menu.Update>)
- [type MenuItem](<#MenuItem>)
- [func \(m \*MenuItem\) Checked\(\) bool](<#MenuItem.Checked>)
- [func \(m \*MenuItem\) Enabled\(\) bool](<#MenuItem.Enabled>)
- [func \(m \*MenuItem\) Hidden\(\) bool](<#MenuItem.Hidden>)
- [func \(m \*MenuItem\) IsCheckbox\(\) bool](<#MenuItem.IsCheckbox>)
- [func \(m \*MenuItem\) IsRadio\(\) bool](<#MenuItem.IsRadio>)
- [func \(m \*MenuItem\) IsSeparator\(\) bool](<#MenuItem.IsSeparator>)
- [func \(m \*MenuItem\) IsSubmenu\(\) bool](<#MenuItem.IsSubmenu>)
- [func \(m \*MenuItem\) Label\(\) string](<#MenuItem.Label>)
- [func \(m \*MenuItem\) OnClick\(f func\(\*Context\)\) \*MenuItem](<#MenuItem.OnClick>)
- [func \(m \*MenuItem\) SetAccelerator\(shortcut string\) \*MenuItem](<#MenuItem.SetAccelerator>)
- [func \(m \*MenuItem\) SetChecked\(checked bool\) \*MenuItem](<#MenuItem.SetChecked>)
- [func \(m \*MenuItem\) SetEnabled\(enabled bool\) \*MenuItem](<#MenuItem.SetEnabled>)
- [func \(m \*MenuItem\) SetHidden\(hidden bool\) \*MenuItem](<#MenuItem.SetHidden>)
- [func \(m \*MenuItem\) SetLabel\(s string\) \*MenuItem](<#MenuItem.SetLabel>)
- [func \(m \*MenuItem\) SetTooltip\(s string\) \*MenuItem](<#MenuItem.SetTooltip>)
- [func \(m \*MenuItem\) Tooltip\(\) string](<#MenuItem.Tooltip>)
- [type MessageDialog](<#MessageDialog>)
- [func ErrorDialog\(\) \*MessageDialog](<#ErrorDialog>)
- [func InfoDialog\(\) \*MessageDialog](<#InfoDialog>)
- [func OpenDirectoryDialog\(\) \*MessageDialog](<#OpenDirectoryDialog>)
- [func QuestionDialog\(\) \*MessageDialog](<#QuestionDialog>)
- [func WarningDialog\(\) \*MessageDialog](<#WarningDialog>)
- [func \(d \*MessageDialog\) AddButton\(s string\) \*Button](<#MessageDialog.AddButton>)
- [func \(d \*MessageDialog\) AddButtons\(buttons \[\]\*Button\) \*MessageDialog](<#MessageDialog.AddButtons>)
- [func \(d \*MessageDialog\) AttachToWindow\(window \*WebviewWindow\) \*MessageDialog](<#MessageDialog.AttachToWindow>)
- [func \(d \*MessageDialog\) SetCancelButton\(button \*Button\) \*MessageDialog](<#MessageDialog.SetCancelButton>)
- [func \(d \*MessageDialog\) SetDefaultButton\(button \*Button\) \*MessageDialog](<#MessageDialog.SetDefaultButton>)
- [func \(d \*MessageDialog\) SetIcon\(icon \[\]byte\) \*MessageDialog](<#MessageDialog.SetIcon>)
- [func \(d \*MessageDialog\) SetMessage\(message string\) \*MessageDialog](<#MessageDialog.SetMessage>)
- [func \(d \*MessageDialog\) SetTitle\(title string\) \*MessageDialog](<#MessageDialog.SetTitle>)
- [func \(d \*MessageDialog\) Show\(\)](<#MessageDialog.Show>)
- [type MessageDialogOptions](<#MessageDialogOptions>)
- [type MessageProcessor](<#MessageProcessor>)
- [func NewMessageProcessor\(logger \*slog.Logger\) \*MessageProcessor](<#NewMessageProcessor>)
- [func \(m \*MessageProcessor\) Error\(message string, args ...any\)](<#MessageProcessor.Error>)
- [func \(m \*MessageProcessor\) HandleRuntimeCall\(rw http.ResponseWriter, r \*http.Request\)](<#MessageProcessor.HandleRuntimeCall>)
- [func \(m \*MessageProcessor\) HandleRuntimeCallWithIDs\(rw http.ResponseWriter, r \*http.Request\)](<#MessageProcessor.HandleRuntimeCallWithIDs>)
- [func \(m \*MessageProcessor\) Info\(message string, args ...any\)](<#MessageProcessor.Info>)
- [type Middleware](<#Middleware>)
- [func ChainMiddleware\(middleware ...Middleware\) Middleware](<#ChainMiddleware>)
- [type OpenFileDialogOptions](<#OpenFileDialogOptions>)
- [type OpenFileDialogStruct](<#OpenFileDialogStruct>)
- [func OpenFileDialog\(\) \*OpenFileDialogStruct](<#OpenFileDialog>)
- [func OpenFileDialogWithOptions\(options \*OpenFileDialogOptions\) \*OpenFileDialogStruct](<#OpenFileDialogWithOptions>)
- [func \(d \*OpenFileDialogStruct\) AddFilter\(displayName, pattern string\) \*OpenFileDialogStruct](<#OpenFileDialogStruct.AddFilter>)
- [func \(d \*OpenFileDialogStruct\) AllowsOtherFileTypes\(allowsOtherFileTypes bool\) \*OpenFileDialogStruct](<#OpenFileDialogStruct.AllowsOtherFileTypes>)
- [func \(d \*OpenFileDialogStruct\) AttachToWindow\(window \*WebviewWindow\) \*OpenFileDialogStruct](<#OpenFileDialogStruct.AttachToWindow>)
- [func \(d \*OpenFileDialogStruct\) CanChooseDirectories\(canChooseDirectories bool\) \*OpenFileDialogStruct](<#OpenFileDialogStruct.CanChooseDirectories>)
- [func \(d \*OpenFileDialogStruct\) CanChooseFiles\(canChooseFiles bool\) \*OpenFileDialogStruct](<#OpenFileDialogStruct.CanChooseFiles>)
- [func \(d \*OpenFileDialogStruct\) CanCreateDirectories\(canCreateDirectories bool\) \*OpenFileDialogStruct](<#OpenFileDialogStruct.CanCreateDirectories>)
- [func \(d \*OpenFileDialogStruct\) CanSelectHiddenExtension\(canSelectHiddenExtension bool\) \*OpenFileDialogStruct](<#OpenFileDialogStruct.CanSelectHiddenExtension>)
- [func \(d \*OpenFileDialogStruct\) HideExtension\(hideExtension bool\) \*OpenFileDialogStruct](<#OpenFileDialogStruct.HideExtension>)
- [func \(d \*OpenFileDialogStruct\) PromptForMultipleSelection\(\) \(\[\]string, error\)](<#OpenFileDialogStruct.PromptForMultipleSelection>)
- [func \(d \*OpenFileDialogStruct\) PromptForSingleSelection\(\) \(string, error\)](<#OpenFileDialogStruct.PromptForSingleSelection>)
- [func \(d \*OpenFileDialogStruct\) ResolvesAliases\(resolvesAliases bool\) \*OpenFileDialogStruct](<#OpenFileDialogStruct.ResolvesAliases>)
- [func \(d \*OpenFileDialogStruct\) SetButtonText\(text string\) \*OpenFileDialogStruct](<#OpenFileDialogStruct.SetButtonText>)
- [func \(d \*OpenFileDialogStruct\) SetDirectory\(directory string\) \*OpenFileDialogStruct](<#OpenFileDialogStruct.SetDirectory>)
- [func \(d \*OpenFileDialogStruct\) SetMessage\(message string\) \*OpenFileDialogStruct](<#OpenFileDialogStruct.SetMessage>)
- [func \(d \*OpenFileDialogStruct\) SetOptions\(options \*OpenFileDialogOptions\)](<#OpenFileDialogStruct.SetOptions>)
- [func \(d \*OpenFileDialogStruct\) SetTitle\(title string\) \*OpenFileDialogStruct](<#OpenFileDialogStruct.SetTitle>)
- [func \(d \*OpenFileDialogStruct\) ShowHiddenFiles\(showHiddenFiles bool\) \*OpenFileDialogStruct](<#OpenFileDialogStruct.ShowHiddenFiles>)
- [func \(d \*OpenFileDialogStruct\) TreatsFilePackagesAsDirectories\(treatsFilePackagesAsDirectories bool\) \*OpenFileDialogStruct](<#OpenFileDialogStruct.TreatsFilePackagesAsDirectories>)
- [type Options](<#Options>)
- [type Parameter](<#Parameter>)
- [func \(p \*Parameter\) IsError\(\) bool](<#Parameter.IsError>)
- [func \(p \*Parameter\) IsType\(typename string\) bool](<#Parameter.IsType>)
- [type Plugin](<#Plugin>)
- [type PluginCallOptions](<#PluginCallOptions>)
- [type PluginManager](<#PluginManager>)
- [func NewPluginManager\(plugins map\[string\]Plugin, assetServer \*assetserver.AssetServer\) \*PluginManager](<#NewPluginManager>)
- [func \(p \*PluginManager\) Init\(\) error](<#PluginManager.Init>)
- [func \(p \*PluginManager\) Shutdown\(\)](<#PluginManager.Shutdown>)
- [type PositionOptions](<#PositionOptions>)
- [type QueryParams](<#QueryParams>)
- [func \(qp QueryParams\) Args\(\) \(\*Args, error\)](<#QueryParams.Args>)
- [func \(qp QueryParams\) Bool\(key string\) \*bool](<#QueryParams.Bool>)
- [func \(qp QueryParams\) Float64\(key string\) \*float64](<#QueryParams.Float64>)
- [func \(qp QueryParams\) Int\(key string\) \*int](<#QueryParams.Int>)
- [func \(qp QueryParams\) String\(key string\) \*string](<#QueryParams.String>)
- [func \(qp QueryParams\) ToStruct\(str any\) error](<#QueryParams.ToStruct>)
- [func \(qp QueryParams\) UInt\(key string\) \*uint](<#QueryParams.UInt>)
- [func \(qp QueryParams\) UInt8\(key string\) \*uint8](<#QueryParams.UInt8>)
- [type RGBA](<#RGBA>)
- [type RadioGroup](<#RadioGroup>)
- [func \(r \*RadioGroup\) Add\(id int, item \*MenuItem\)](<#RadioGroup.Add>)
- [func \(r \*RadioGroup\) Bounds\(\) \(int, int\)](<#RadioGroup.Bounds>)
- [func \(r \*RadioGroup\) MenuID\(item \*MenuItem\) int](<#RadioGroup.MenuID>)
- [type RadioGroupMember](<#RadioGroupMember>)
- [type Rect](<#Rect>)
- [type Role](<#Role>)
- [type SaveFileDialogOptions](<#SaveFileDialogOptions>)
- [type SaveFileDialogStruct](<#SaveFileDialogStruct>)
- [func SaveFileDialog\(\) \*SaveFileDialogStruct](<#SaveFileDialog>)
- [func SaveFileDialogWithOptions\(s \*SaveFileDialogOptions\) \*SaveFileDialogStruct](<#SaveFileDialogWithOptions>)
- [func \(d \*SaveFileDialogStruct\) AddFilter\(displayName, pattern string\) \*SaveFileDialogStruct](<#SaveFileDialogStruct.AddFilter>)
- [func \(d \*SaveFileDialogStruct\) AllowsOtherFileTypes\(allowOtherFileTypes bool\) \*SaveFileDialogStruct](<#SaveFileDialogStruct.AllowsOtherFileTypes>)
- [func \(d \*SaveFileDialogStruct\) AttachToWindow\(window \*WebviewWindow\) \*SaveFileDialogStruct](<#SaveFileDialogStruct.AttachToWindow>)
- [func \(d \*SaveFileDialogStruct\) CanCreateDirectories\(canCreateDirectories bool\) \*SaveFileDialogStruct](<#SaveFileDialogStruct.CanCreateDirectories>)
- [func \(d \*SaveFileDialogStruct\) CanSelectHiddenExtension\(canSelectHiddenExtension bool\) \*SaveFileDialogStruct](<#SaveFileDialogStruct.CanSelectHiddenExtension>)
- [func \(d \*SaveFileDialogStruct\) HideExtension\(hideExtension bool\) \*SaveFileDialogStruct](<#SaveFileDialogStruct.HideExtension>)
- [func \(d \*SaveFileDialogStruct\) PromptForSingleSelection\(\) \(string, error\)](<#SaveFileDialogStruct.PromptForSingleSelection>)
- [func \(d \*SaveFileDialogStruct\) SetButtonText\(text string\) \*SaveFileDialogStruct](<#SaveFileDialogStruct.SetButtonText>)
- [func \(d \*SaveFileDialogStruct\) SetDirectory\(directory string\) \*SaveFileDialogStruct](<#SaveFileDialogStruct.SetDirectory>)
- [func \(d \*SaveFileDialogStruct\) SetFilename\(filename string\) \*SaveFileDialogStruct](<#SaveFileDialogStruct.SetFilename>)
- [func \(d \*SaveFileDialogStruct\) SetMessage\(message string\) \*SaveFileDialogStruct](<#SaveFileDialogStruct.SetMessage>)
- [func \(d \*SaveFileDialogStruct\) SetOptions\(options \*SaveFileDialogOptions\)](<#SaveFileDialogStruct.SetOptions>)
- [func \(d \*SaveFileDialogStruct\) ShowHiddenFiles\(showHiddenFiles bool\) \*SaveFileDialogStruct](<#SaveFileDialogStruct.ShowHiddenFiles>)
- [func \(d \*SaveFileDialogStruct\) TreatsFilePackagesAsDirectories\(treatsFilePackagesAsDirectories bool\) \*SaveFileDialogStruct](<#SaveFileDialogStruct.TreatsFilePackagesAsDirectories>)
- [type Screen](<#Screen>)
- [type Size](<#Size>)
- [type SystemTray](<#SystemTray>)
- [func \(s \*SystemTray\) AttachWindow\(window \*WebviewWindow\) \*SystemTray](<#SystemTray.AttachWindow>)
- [func \(s \*SystemTray\) Destroy\(\)](<#SystemTray.Destroy>)
- [func \(s \*SystemTray\) Label\(\) string](<#SystemTray.Label>)
- [func \(s \*SystemTray\) OnClick\(handler func\(\)\) \*SystemTray](<#SystemTray.OnClick>)
- [func \(s \*SystemTray\) OnDoubleClick\(handler func\(\)\) \*SystemTray](<#SystemTray.OnDoubleClick>)
- [func \(s \*SystemTray\) OnMouseEnter\(handler func\(\)\) \*SystemTray](<#SystemTray.OnMouseEnter>)
- [func \(s \*SystemTray\) OnMouseLeave\(handler func\(\)\) \*SystemTray](<#SystemTray.OnMouseLeave>)
- [func \(s \*SystemTray\) OnRightClick\(handler func\(\)\) \*SystemTray](<#SystemTray.OnRightClick>)
- [func \(s \*SystemTray\) OnRightDoubleClick\(handler func\(\)\) \*SystemTray](<#SystemTray.OnRightDoubleClick>)
- [func \(s \*SystemTray\) OpenMenu\(\)](<#SystemTray.OpenMenu>)
- [func \(s \*SystemTray\) PositionWindow\(window \*WebviewWindow, offset int\) error](<#SystemTray.PositionWindow>)
- [func \(s \*SystemTray\) SetDarkModeIcon\(icon \[\]byte\) \*SystemTray](<#SystemTray.SetDarkModeIcon>)
- [func \(s \*SystemTray\) SetIcon\(icon \[\]byte\) \*SystemTray](<#SystemTray.SetIcon>)
- [func \(s \*SystemTray\) SetIconPosition\(iconPosition int\) \*SystemTray](<#SystemTray.SetIconPosition>)
- [func \(s \*SystemTray\) SetLabel\(label string\)](<#SystemTray.SetLabel>)
- [func \(s \*SystemTray\) SetMenu\(menu \*Menu\) \*SystemTray](<#SystemTray.SetMenu>)
- [func \(s \*SystemTray\) SetTemplateIcon\(icon \[\]byte\) \*SystemTray](<#SystemTray.SetTemplateIcon>)
- [func \(s \*SystemTray\) WindowDebounce\(debounce time.Duration\) \*SystemTray](<#SystemTray.WindowDebounce>)
- [func \(s \*SystemTray\) WindowOffset\(offset int\) \*SystemTray](<#SystemTray.WindowOffset>)
- [type Theme](<#Theme>)
- [type ThemeSettings](<#ThemeSettings>)
- [type WailsEvent](<#WailsEvent>)
- [func \(e \*WailsEvent\) Cancel\(\)](<#WailsEvent.Cancel>)
- [type WebviewWindow](<#WebviewWindow>)
- [func \(w \*WebviewWindow\) AbsolutePosition\(\) \(int, int\)](<#WebviewWindow.AbsolutePosition>)
- [func \(w \*WebviewWindow\) Center\(\)](<#WebviewWindow.Center>)
- [func \(w \*WebviewWindow\) Close\(\)](<#WebviewWindow.Close>)
- [func \(w \*WebviewWindow\) Destroy\(\)](<#WebviewWindow.Destroy>)
- [func \(w \*WebviewWindow\) ExecJS\(js string\)](<#WebviewWindow.ExecJS>)
- [func \(w \*WebviewWindow\) Flash\(enabled bool\)](<#WebviewWindow.Flash>)
- [func \(w \*WebviewWindow\) Focus\(\)](<#WebviewWindow.Focus>)
- [func \(w \*WebviewWindow\) ForceReload\(\)](<#WebviewWindow.ForceReload>)
- [func \(w \*WebviewWindow\) Fullscreen\(\) \*WebviewWindow](<#WebviewWindow.Fullscreen>)
- [func \(w \*WebviewWindow\) GetScreen\(\) \(\*Screen, error\)](<#WebviewWindow.GetScreen>)
- [func \(w \*WebviewWindow\) GetZoom\(\) float64](<#WebviewWindow.GetZoom>)
- [func \(w \*WebviewWindow\) Height\(\) int](<#WebviewWindow.Height>)
- [func \(w \*WebviewWindow\) Hide\(\) \*WebviewWindow](<#WebviewWindow.Hide>)
- [func \(w \*WebviewWindow\) IsFocused\(\) bool](<#WebviewWindow.IsFocused>)
- [func \(w \*WebviewWindow\) IsFullscreen\(\) bool](<#WebviewWindow.IsFullscreen>)
- [func \(w \*WebviewWindow\) IsMaximised\(\) bool](<#WebviewWindow.IsMaximised>)
- [func \(w \*WebviewWindow\) IsMinimised\(\) bool](<#WebviewWindow.IsMinimised>)
- [func \(w \*WebviewWindow\) IsVisible\(\) bool](<#WebviewWindow.IsVisible>)
- [func \(w \*WebviewWindow\) Maximise\(\) \*WebviewWindow](<#WebviewWindow.Maximise>)
- [func \(w \*WebviewWindow\) Minimise\(\) \*WebviewWindow](<#WebviewWindow.Minimise>)
- [func \(w \*WebviewWindow\) Name\(\) string](<#WebviewWindow.Name>)
- [func \(w \*WebviewWindow\) NativeWindowHandle\(\) \(uintptr, error\)](<#WebviewWindow.NativeWindowHandle>)
- [func \(w \*WebviewWindow\) On\(eventType events.WindowEventType, callback func\(event \*WindowEvent\)\) func\(\)](<#WebviewWindow.On>)
- [func \(w \*WebviewWindow\) Print\(\) error](<#WebviewWindow.Print>)
- [func \(w \*WebviewWindow\) RegisterContextMenu\(name string, menu \*Menu\)](<#WebviewWindow.RegisterContextMenu>)
- [func \(w \*WebviewWindow\) RegisterHook\(eventType events.WindowEventType, callback func\(event \*WindowEvent\)\) func\(\)](<#WebviewWindow.RegisterHook>)
- [func \(w \*WebviewWindow\) RelativePosition\(\) \(int, int\)](<#WebviewWindow.RelativePosition>)
- [func \(w \*WebviewWindow\) Reload\(\)](<#WebviewWindow.Reload>)
- [func \(w \*WebviewWindow\) Resizable\(\) bool](<#WebviewWindow.Resizable>)
- [func \(w \*WebviewWindow\) Restore\(\)](<#WebviewWindow.Restore>)
- [func \(w \*WebviewWindow\) SetAbsolutePosition\(x int, y int\)](<#WebviewWindow.SetAbsolutePosition>)
- [func \(w \*WebviewWindow\) SetAlwaysOnTop\(b bool\) \*WebviewWindow](<#WebviewWindow.SetAlwaysOnTop>)
- [func \(w \*WebviewWindow\) SetBackgroundColour\(colour RGBA\) \*WebviewWindow](<#WebviewWindow.SetBackgroundColour>)
- [func \(w \*WebviewWindow\) SetEnabled\(enabled bool\)](<#WebviewWindow.SetEnabled>)
- [func \(w \*WebviewWindow\) SetFrameless\(frameless bool\) \*WebviewWindow](<#WebviewWindow.SetFrameless>)
- [func \(w \*WebviewWindow\) SetFullscreenButtonEnabled\(enabled bool\) \*WebviewWindow](<#WebviewWindow.SetFullscreenButtonEnabled>)
- [func \(w \*WebviewWindow\) SetHTML\(html string\) \*WebviewWindow](<#WebviewWindow.SetHTML>)
- [func \(w \*WebviewWindow\) SetMaxSize\(maxWidth, maxHeight int\) \*WebviewWindow](<#WebviewWindow.SetMaxSize>)
- [func \(w \*WebviewWindow\) SetMinSize\(minWidth, minHeight int\) \*WebviewWindow](<#WebviewWindow.SetMinSize>)
- [func \(w \*WebviewWindow\) SetRelativePosition\(x, y int\) \*WebviewWindow](<#WebviewWindow.SetRelativePosition>)
- [func \(w \*WebviewWindow\) SetResizable\(b bool\) \*WebviewWindow](<#WebviewWindow.SetResizable>)
- [func \(w \*WebviewWindow\) SetSize\(width, height int\) \*WebviewWindow](<#WebviewWindow.SetSize>)
- [func \(w \*WebviewWindow\) SetTitle\(title string\) \*WebviewWindow](<#WebviewWindow.SetTitle>)
- [func \(w \*WebviewWindow\) SetURL\(s string\) \*WebviewWindow](<#WebviewWindow.SetURL>)
- [func \(w \*WebviewWindow\) SetZoom\(magnification float64\) \*WebviewWindow](<#WebviewWindow.SetZoom>)
- [func \(w \*WebviewWindow\) Show\(\) \*WebviewWindow](<#WebviewWindow.Show>)
- [func \(w \*WebviewWindow\) Size\(\) \(int, int\)](<#WebviewWindow.Size>)
- [func \(w \*WebviewWindow\) ToggleDevTools\(\)](<#WebviewWindow.ToggleDevTools>)
- [func \(w \*WebviewWindow\) ToggleFullscreen\(\)](<#WebviewWindow.ToggleFullscreen>)
- [func \(w \*WebviewWindow\) UnFullscreen\(\)](<#WebviewWindow.UnFullscreen>)
- [func \(w \*WebviewWindow\) UnMaximise\(\)](<#WebviewWindow.UnMaximise>)
- [func \(w \*WebviewWindow\) UnMinimise\(\)](<#WebviewWindow.UnMinimise>)
- [func \(w \*WebviewWindow\) Width\(\) int](<#WebviewWindow.Width>)
- [func \(w \*WebviewWindow\) Zoom\(\)](<#WebviewWindow.Zoom>)
- [func \(w \*WebviewWindow\) ZoomIn\(\)](<#WebviewWindow.ZoomIn>)
- [func \(w \*WebviewWindow\) ZoomOut\(\)](<#WebviewWindow.ZoomOut>)
- [func \(w \*WebviewWindow\) ZoomReset\(\) \*WebviewWindow](<#WebviewWindow.ZoomReset>)
- [type WebviewWindowOptions](<#WebviewWindowOptions>)
- [type Win32Menu](<#Win32Menu>)
- [func NewApplicationMenu\(parent w32.HWND, inputMenu \*Menu\) \*Win32Menu](<#NewApplicationMenu>)
- [func NewPopupMenu\(parent w32.HWND, inputMenu \*Menu\) \*Win32Menu](<#NewPopupMenu>)
- [func \(p \*Win32Menu\) Destroy\(\)](<#Win32Menu.Destroy>)
- [func \(p \*Win32Menu\) OnMenuClose\(fn func\(\)\)](<#Win32Menu.OnMenuClose>)
- [func \(p \*Win32Menu\) OnMenuOpen\(fn func\(\)\)](<#Win32Menu.OnMenuOpen>)
- [func \(p \*Win32Menu\) ProcessCommand\(cmdMsgID int\) bool](<#Win32Menu.ProcessCommand>)
- [func \(p \*Win32Menu\) ShowAt\(x int, y int\)](<#Win32Menu.ShowAt>)
- [func \(p \*Win32Menu\) ShowAtCursor\(\)](<#Win32Menu.ShowAtCursor>)
- [func \(p \*Win32Menu\) Update\(\)](<#Win32Menu.Update>)
- [func \(p \*Win32Menu\) UpdateMenuItem\(item \*MenuItem\)](<#Win32Menu.UpdateMenuItem>)
- [type WindowAttachConfig](<#WindowAttachConfig>)
- [type WindowEvent](<#WindowEvent>)
- [func NewWindowEvent\(\) \*WindowEvent](<#NewWindowEvent>)
- [func \(w \*WindowEvent\) Cancel\(\)](<#WindowEvent.Cancel>)
- [func \(w \*WindowEvent\) Context\(\) \*WindowEventContext](<#WindowEvent.Context>)
- [type WindowEventContext](<#WindowEventContext>)
- [func \(c WindowEventContext\) DroppedFiles\(\) \[\]string](<#WindowEventContext.DroppedFiles>)
- [type WindowEventListener](<#WindowEventListener>)
- [type WindowState](<#WindowState>)
- [type WindowsOptions](<#WindowsOptions>)
- [type WindowsWindow](<#WindowsWindow>)
## Constants
```go
const (
ApplicationHide = 0
ApplicationShow = 1
ApplicationQuit = 2
)
```
```go
const (
ClipboardSetText = 0
ClipboardText = 1
)
```
```go
const (
DialogInfo = 0
DialogWarning = 1
DialogError = 2
DialogQuestion = 3
DialogOpenFile = 4
DialogSaveFile = 5
)
```
```go
const (
ScreensGetAll = 0
ScreensGetPrimary = 1
ScreensGetCurrent = 2
)
```
```go
const (
WindowCenter = 0
WindowSetTitle = 1
WindowFullscreen = 2
WindowUnFullscreen = 3
WindowSetSize = 4
WindowSize = 5
WindowSetMaxSize = 6
WindowSetMinSize = 7
WindowSetAlwaysOnTop = 8
WindowSetRelativePosition = 9
WindowRelativePosition = 10
WindowScreen = 11
WindowHide = 12
WindowMaximise = 13
WindowUnMaximise = 14
WindowToggleMaximise = 15
WindowMinimise = 16
WindowUnMinimise = 17
WindowRestore = 18
WindowShow = 19
WindowClose = 20
WindowSetBackgroundColour = 21
WindowSetResizable = 22
WindowWidth = 23
WindowHeight = 24
WindowZoomIn = 25
WindowZoomOut = 26
WindowZoomReset = 27
WindowGetZoomLevel = 28
WindowSetZoomLevel = 29
)
```
```go
const (
NSImageNone = iota
NSImageOnly
NSImageLeft
NSImageRight
NSImageBelow
NSImageAbove
NSImageOverlaps
NSImageLeading
NSImageTrailing
)
```
```go
const (
CallBinding = 0
)
```
```go
const (
ContextMenuOpen = 0
)
```
```go
const (
EventsEmit = 0
)
```
```go
const (
MenuItemMsgID = w32.WM_APP + 1024
)
```
```go
const (
SystemIsDarkMode = 0
)
```
```go
const (
WM_USER_SYSTRAY = w32.WM_USER + 1
)
```
## Variables
BuildInfo contains the build info for the application
```go
var BuildInfo *debug.BuildInfo
```
BuildSettings contains the build settings for the application
```go
var BuildSettings map[string]string
```
MacTitleBarDefault results in the default Mac MacTitleBar
```go
var MacTitleBarDefault = MacTitleBar{
AppearsTransparent: false,
Hide: false,
HideTitle: false,
FullSizeContent: false,
UseToolbar: false,
HideToolbarSeparator: false,
}
```
MacTitleBarHidden results in a hidden title bar and a full size content window, yet the title bar still has the standard window controls \(“traffic lights”\) in the top left.
```go
var MacTitleBarHidden = MacTitleBar{
AppearsTransparent: true,
Hide: false,
HideTitle: true,
FullSizeContent: true,
UseToolbar: false,
HideToolbarSeparator: false,
}
```
MacTitleBarHiddenInset results in a hidden title bar with an alternative look where the traffic light buttons are slightly more inset from the window edge.
```go
var MacTitleBarHiddenInset = MacTitleBar{
AppearsTransparent: true,
Hide: false,
HideTitle: true,
FullSizeContent: true,
UseToolbar: true,
HideToolbarSeparator: true,
}
```
MacTitleBarHiddenInsetUnified results in a hidden title bar with an alternative look where the traffic light buttons are even more inset from the window edge.
```go
var MacTitleBarHiddenInsetUnified = MacTitleBar{
AppearsTransparent: true,
Hide: false,
HideTitle: true,
FullSizeContent: true,
UseToolbar: true,
HideToolbarSeparator: true,
ToolbarStyle: MacToolbarStyleUnified,
}
```
```go
var VirtualKeyCodes = map[uint]string{
0x01: "lbutton",
0x02: "rbutton",
0x03: "cancel",
0x04: "mbutton",
0x05: "xbutton1",
0x06: "xbutton2",
0x08: "back",
0x09: "tab",
0x0C: "clear",
0x0D: "return",
0x10: "shift",
0x11: "control",
0x12: "menu",
0x13: "pause",
0x14: "capital",
0x15: "kana",
0x17: "junja",
0x18: "final",
0x19: "hanja",
0x1B: "escape",
0x1C: "convert",
0x1D: "nonconvert",
0x1E: "accept",
0x1F: "modechange",
0x20: "space",
0x21: "prior",
0x22: "next",
0x23: "end",
0x24: "home",
0x25: "left",
0x26: "up",
0x27: "right",
0x28: "down",
0x29: "select",
0x2A: "print",
0x2B: "execute",
0x2C: "snapshot",
0x2D: "insert",
0x2E: "delete",
0x2F: "help",
0x30: "0",
0x31: "1",
0x32: "2",
0x33: "3",
0x34: "4",
0x35: "5",
0x36: "6",
0x37: "7",
0x38: "8",
0x39: "9",
0x41: "a",
0x42: "b",
0x43: "c",
0x44: "d",
0x45: "e",
0x46: "f",
0x47: "g",
0x48: "h",
0x49: "i",
0x4A: "j",
0x4B: "k",
0x4C: "l",
0x4D: "m",
0x4E: "n",
0x4F: "o",
0x50: "p",
0x51: "q",
0x52: "r",
0x53: "s",
0x54: "t",
0x55: "u",
0x56: "v",
0x57: "w",
0x58: "x",
0x59: "y",
0x5A: "z",
0x5B: "lwin",
0x5C: "rwin",
0x5D: "apps",
0x5F: "sleep",
0x60: "numpad0",
0x61: "numpad1",
0x62: "numpad2",
0x63: "numpad3",
0x64: "numpad4",
0x65: "numpad5",
0x66: "numpad6",
0x67: "numpad7",
0x68: "numpad8",
0x69: "numpad9",
0x6A: "multiply",
0x6B: "add",
0x6C: "separator",
0x6D: "subtract",
0x6E: "decimal",
0x6F: "divide",
0x70: "f1",
0x71: "f2",
0x72: "f3",
0x73: "f4",
0x74: "f5",
0x75: "f6",
0x76: "f7",
0x77: "f8",
0x78: "f9",
0x79: "f10",
0x7A: "f11",
0x7B: "f12",
0x7C: "f13",
0x7D: "f14",
0x7E: "f15",
0x7F: "f16",
0x80: "f17",
0x81: "f18",
0x82: "f19",
0x83: "f20",
0x84: "f21",
0x85: "f22",
0x86: "f23",
0x87: "f24",
0x88: "navigation_view",
0x89: "navigation_menu",
0x8A: "navigation_up",
0x8B: "navigation_down",
0x8C: "navigation_left",
0x8D: "navigation_right",
0x8E: "navigation_accept",
0x8F: "navigation_cancel",
0x90: "numlock",
0x91: "scroll",
0x92: "oem_nec_equal",
0x93: "oem_fj_masshou",
0x94: "oem_fj_touroku",
0x95: "oem_fj_loya",
0x96: "oem_fj_roya",
0xA0: "lshift",
0xA1: "rshift",
0xA2: "lcontrol",
0xA3: "rcontrol",
0xA4: "lmenu",
0xA5: "rmenu",
0xA6: "browser_back",
0xA7: "browser_forward",
0xA8: "browser_refresh",
0xA9: "browser_stop",
0xAA: "browser_search",
0xAB: "browser_favorites",
0xAC: "browser_home",
0xAD: "volume_mute",
0xAE: "volume_down",
0xAF: "volume_up",
0xB0: "media_next_track",
0xB1: "media_prev_track",
0xB2: "media_stop",
0xB3: "media_play_pause",
0xB4: "launch_mail",
0xB5: "launch_media_select",
0xB6: "launch_app1",
0xB7: "launch_app2",
0xBA: "oem_1",
0xBB: "oem_plus",
0xBC: "oem_comma",
0xBD: "oem_minus",
0xBE: "oem_period",
0xBF: "oem_2",
0xC0: "oem_3",
0xC3: "gamepad_a",
0xC4: "gamepad_b",
0xC5: "gamepad_x",
0xC6: "gamepad_y",
0xC7: "gamepad_right_shoulder",
0xC8: "gamepad_left_shoulder",
0xC9: "gamepad_left_trigger",
0xCA: "gamepad_right_trigger",
0xCB: "gamepad_dpad_up",
0xCC: "gamepad_dpad_down",
0xCD: "gamepad_dpad_left",
0xCE: "gamepad_dpad_right",
0xCF: "gamepad_menu",
0xD0: "gamepad_view",
0xD1: "gamepad_left_thumbstick_button",
0xD2: "gamepad_right_thumbstick_button",
0xD3: "gamepad_left_thumbstick_up",
0xD4: "gamepad_left_thumbstick_down",
0xD5: "gamepad_left_thumbstick_right",
0xD6: "gamepad_left_thumbstick_left",
0xD7: "gamepad_right_thumbstick_up",
0xD8: "gamepad_right_thumbstick_down",
0xD9: "gamepad_right_thumbstick_right",
0xDA: "gamepad_right_thumbstick_left",
0xDB: "oem_4",
0xDC: "oem_5",
0xDD: "oem_6",
0xDE: "oem_7",
0xDF: "oem_8",
0xE1: "oem_ax",
0xE2: "oem_102",
0xE3: "ico_help",
0xE4: "ico_00",
0xE5: "processkey",
0xE6: "ico_clear",
0xE7: "packet",
0xE9: "oem_reset",
0xEA: "oem_jump",
0xEB: "oem_pa1",
0xEC: "oem_pa2",
0xED: "oem_pa3",
0xEE: "oem_wsctrl",
0xEF: "oem_cusel",
0xF0: "oem_attn",
0xF1: "oem_finish",
0xF2: "oem_copy",
0xF3: "oem_auto",
0xF4: "oem_enlw",
0xF5: "oem_backtab",
0xF6: "attn",
0xF7: "crsel",
0xF8: "exsel",
0xF9: "ereof",
0xFA: "play",
0xFB: "zoom",
0xFC: "noname",
0xFD: "pa1",
0xFE: "oem_clear",
}
```
```go
var WebviewWindowDefaults = &WebviewWindowOptions{
Title: "",
Width: 800,
Height: 600,
URL: "",
BackgroundColour: RGBA{
Red: 255,
Green: 255,
Blue: 255,
Alpha: 255,
},
}
```
## func [DefaultLogger]()
```go
func DefaultLogger(level slog.Level) *slog.Logger
```
## func [Fatal]()
```go
func Fatal(message string, args ...interface{})
```
## func [InvokeAsync]()
```go
func InvokeAsync(fn func())
```
## func [InvokeSync]()
```go
func InvokeSync(fn func())
```
## func [InvokeSyncWithError]()
```go
func InvokeSyncWithError(fn func() error) (err error)
```
## func [InvokeSyncWithResult]()
```go
func InvokeSyncWithResult[T any](fn func() T) (res T)
```
## func [InvokeSyncWithResultAndError]()
```go
func InvokeSyncWithResultAndError[T any](fn func() (T, error)) (res T, err error)
```
## func [NewIconFromResource]()
```go
func NewIconFromResource(instance w32.HINSTANCE, resId uint16) (w32.HICON, error)
```
## func [ScaleToDefaultDPI]()
```go
func ScaleToDefaultDPI(pixels int, dpi uint) int
```
## func [ScaleWithDPI]()
```go
func ScaleWithDPI(pixels int, dpi uint) int
```
## type [ActivationPolicy]()
ActivationPolicy is the activation policy for the application.
```go
type ActivationPolicy int
```
```go
const (
// ActivationPolicyRegular is used for applications that have a user interface,
ActivationPolicyRegular ActivationPolicy = iota
// ActivationPolicyAccessory is used for applications that do not have a main window,
// such as system tray applications or background applications.
ActivationPolicyAccessory
ActivationPolicyProhibited
)
```
## type [App]()
```go
type App struct {
// The main application menu
ApplicationMenu *Menu
Events *EventProcessor
Logger *slog.Logger
// contains filtered or unexported fields
}
```
### func [Get]()
```go
func Get() *App
```
### func [New]()
```go
func New(appOptions Options) *App
```
### func \(\*App\) [Capabilities]()
```go
func (a *App) Capabilities() capabilities.Capabilities
```
### func \(\*App\) [Clipboard]()
```go
func (a *App) Clipboard() *Clipboard
```
### func \(\*App\) [CurrentWindow]()
```go
func (a *App) CurrentWindow() *WebviewWindow
```
### func \(\*App\) [GetPID]()
```go
func (a *App) GetPID() int
```
### func \(\*App\) [GetPrimaryScreen]()
```go
func (a *App) GetPrimaryScreen() (*Screen, error)
```
### func \(\*App\) [GetScreens]()
```go
func (a *App) GetScreens() ([]*Screen, error)
```
### func \(\*App\) [GetWindowByName]()
```go
func (a *App) GetWindowByName(name string) *WebviewWindow
```
### func \(\*App\) [Hide]()
```go
func (a *App) Hide()
```
### func \(\*App\) [IsDarkMode]()
```go
func (a *App) IsDarkMode() bool
```
### func \(\*App\) [NewMenu]()
```go
func (a *App) NewMenu() *Menu
```
### func \(\*App\) [NewSystemTray]()
```go
func (a *App) NewSystemTray() *SystemTray
```
### func \(\*App\) [NewWebviewWindow]()
```go
func (a *App) NewWebviewWindow() *WebviewWindow
```
### func \(\*App\) [NewWebviewWindowWithOptions]()
```go
func (a *App) NewWebviewWindowWithOptions(windowOptions WebviewWindowOptions) *WebviewWindow
```
### func \(\*App\) [On]()
```go
func (a *App) On(eventType events.ApplicationEventType, callback func(event *Event)) func()
```
### func \(\*App\) [OnWindowCreation]()
```go
func (a *App) OnWindowCreation(callback func(window *WebviewWindow))
```
### func \(\*App\) [Quit]()
```go
func (a *App) Quit()
```
### func \(\*App\) [RegisterContextMenu]()
```go
func (a *App) RegisterContextMenu(name string, menu *Menu)
```
### func \(\*App\) [RegisterHook]()
```go
func (a *App) RegisterHook(eventType events.ApplicationEventType, callback func(event *Event)) func()
```
RegisterHook registers a hook for the given event type. Hooks are called before the event listeners and can cancel the event. The returned function can be called to remove the hook.
### func \(\*App\) [Run]()
```go
func (a *App) Run() error
```
### func \(\*App\) [SetMenu]()
```go
func (a *App) SetMenu(menu *Menu)
```
### func \(\*App\) [Show]()
```go
func (a *App) Show()
```
### func \(\*App\) [ShowAboutDialog]()
```go
func (a *App) ShowAboutDialog()
```
## type [ApplicationEventContext]()
```go
type ApplicationEventContext struct {
// contains filtered or unexported fields
}
```
### func \(ApplicationEventContext\) [IsDarkMode]()
```go
func (c ApplicationEventContext) IsDarkMode() bool
```
### func \(ApplicationEventContext\) [OpenedFiles]()
```go
func (c ApplicationEventContext) OpenedFiles() []string
```
## type [Args]()
```go
type Args struct {
// contains filtered or unexported fields
}
```
### func \(\*Args\) [Bool]()
```go
func (a *Args) Bool(s string) *bool
```
### func \(\*Args\) [Float64]()
```go
func (a *Args) Float64(s string) *float64
```
### func \(\*Args\) [Int]()
```go
func (a *Args) Int(s string) *int
```
### func \(\*Args\) [String]()
```go
func (a *Args) String(key string) *string
```
### func \(\*Args\) [UInt]()
```go
func (a *Args) UInt(s string) *uint
```
### func \(\*Args\) [UInt8]()
```go
func (a *Args) UInt8(s string) *uint8
```
## type [AssetOptions]()
AssetOptions defines the configuration of the AssetServer.
```go
type AssetOptions struct {
// FS defines the static assets to be used. A GET request is first tried to be served from this FS. If the FS returns
// `os.ErrNotExist` for that file, the request handling will fallback to the Handler and tries to serve the GET
// request from it.
//
// If set to nil, all GET requests will be forwarded to Handler.
FS fs.FS
// Handler will be called for every GET request that can't be served from FS, due to `os.ErrNotExist`. Furthermore all
// non GET requests will always be served from this Handler.
//
// If not defined, the result is the following in cases where the Handler would have been called:
// GET request: `http.StatusNotFound`
// Other request: `http.StatusMethodNotAllowed`
Handler http.Handler
// Middleware is HTTP Middleware which allows to hook into the AssetServer request chain. It allows to skip the default
// request handler dynamically, e.g. implement specialized Routing etc.
// The Middleware is called to build a new `http.Handler` used by the AssetSever and it also receives the default
// handler used by the AssetServer as an argument.
//
// If not defined, the default AssetServer request chain is executed.
//
// Multiple Middlewares can be chained together with:
// ChainMiddleware(middleware ...Middleware) Middleware
Middleware Middleware
// External URL can be set to a development server URL so that all requests are forwarded to it. This is useful
// when using a development server like `vite` or `snowpack` which serves the assets on a different port.
ExternalURL string
}
```
## type [BackdropType]()
```go
type BackdropType int32
```
```go
const (
Auto BackdropType = 0
None BackdropType = 1
Mica BackdropType = 2
Acrylic BackdropType = 3
Tabbed BackdropType = 4
)
```
## type [BackgroundType]()
```go
type BackgroundType int
```
```go
const (
BackgroundTypeSolid BackgroundType = iota
BackgroundTypeTransparent
BackgroundTypeTranslucent
)
```
## type [Bindings]()
```go
type Bindings struct {
// contains filtered or unexported fields
}
```
### func [NewBindings]()
```go
func NewBindings(structs []any, aliases map[uint32]uint32) (*Bindings, error)
```
### func \(\*Bindings\) [Add]()
```go
func (b *Bindings) Add(structPtr interface{}) error
```
Add the given struct methods to the Bindings
### func \(\*Bindings\) [AddPlugins]()
```go
func (b *Bindings) AddPlugins(plugins map[string]Plugin) error
```
### func \(\*Bindings\) [GenerateID]()
```go
func (b *Bindings) GenerateID(name string) (uint32, error)
```
GenerateID generates a unique ID for a binding
### func \(\*Bindings\) [Get]()
```go
func (b *Bindings) Get(options *CallOptions) *BoundMethod
```
Get returns the bound method with the given name
### func \(\*Bindings\) [GetByID]()
```go
func (b *Bindings) GetByID(id uint32) *BoundMethod
```
GetByID returns the bound method with the given ID
## type [BoundMethod]()
BoundMethod defines all the data related to a Go method that is bound to the Wails application
```go
type BoundMethod struct {
ID uint32 `json:"id"`
Name string `json:"name"`
Inputs []*Parameter `json:"inputs,omitempty"`
Outputs []*Parameter `json:"outputs,omitempty"`
Comments string `json:"comments,omitempty"`
Method reflect.Value `json:"-"`
PackageName string
StructName string
PackagePath string
}
```
### func \(\*BoundMethod\) [Call]()
```go
func (b *BoundMethod) Call(args []interface{}) (returnValue interface{}, err error)
```
Call will attempt to call this bound method with the given args
### func \(\*BoundMethod\) [String]()
```go
func (b *BoundMethod) String() string
```
## type [Button]()
```go
type Button struct {
Label string
IsCancel bool
IsDefault bool
Callback func()
}
```
### func \(\*Button\) [OnClick]()
```go
func (b *Button) OnClick(callback func()) *Button
```
### func \(\*Button\) [SetAsCancel]()
```go
func (b *Button) SetAsCancel() *Button
```
### func \(\*Button\) [SetAsDefault]()
```go
func (b *Button) SetAsDefault() *Button
```
## type [CallOptions]()
```go
type CallOptions struct {
MethodID uint32 `json:"methodID"`
PackageName string `json:"packageName"`
StructName string `json:"structName"`
MethodName string `json:"methodName"`
Args []any `json:"args"`
}
```
### func \(CallOptions\) [Name]()
```go
func (c CallOptions) Name() string
```
## type [Clipboard]()
```go
type Clipboard struct {
// contains filtered or unexported fields
}
```
### func \(\*Clipboard\) [SetText]()
```go
func (c *Clipboard) SetText(text string) bool
```
### func \(\*Clipboard\) [Text]()
```go
func (c *Clipboard) Text() (string, bool)
```
## type [Context]()
```go
type Context struct {
// contains filtered or unexported fields
}
```
### func \(\*Context\) [ClickedMenuItem]()
```go
func (c *Context) ClickedMenuItem() *MenuItem
```
### func \(\*Context\) [ContextMenuData]()
```go
func (c *Context) ContextMenuData() any
```
### func \(\*Context\) [IsChecked]()
```go
func (c *Context) IsChecked() bool
```
## type [ContextMenuData]()
```go
type ContextMenuData struct {
Id string `json:"id"`
X int `json:"x"`
Y int `json:"y"`
Data any `json:"data"`
}
```
## type [DialogType]()
```go
type DialogType int
```
```go
const (
InfoDialogType DialogType = iota
QuestionDialogType
WarningDialogType
ErrorDialogType
OpenDirectoryDialogType
)
```
## type [Event]()
```go
type Event struct {
Id uint
Cancelled bool
// contains filtered or unexported fields
}
```
### func \(\*Event\) [Cancel]()
```go
func (w *Event) Cancel()
```
### func \(\*Event\) [Context]()
```go
func (w *Event) Context() *ApplicationEventContext
```
## type [EventListener]()
```go
type EventListener struct {
// contains filtered or unexported fields
}
```
## type [EventProcessor]()
EventProcessor handles custom events
```go
type EventProcessor struct {
// contains filtered or unexported fields
}
```
### func [NewWailsEventProcessor]()
```go
func NewWailsEventProcessor(dispatchEventToWindows func(*WailsEvent)) *EventProcessor
```
### func \(\*EventProcessor\) [Emit]()
```go
func (e *EventProcessor) Emit(thisEvent *WailsEvent)
```
Emit sends an event to all listeners
### func \(\*EventProcessor\) [Off]()
```go
func (e *EventProcessor) Off(eventName string)
```
### func \(\*EventProcessor\) [OffAll]()
```go
func (e *EventProcessor) OffAll()
```
### func \(\*EventProcessor\) [On]()
```go
func (e *EventProcessor) On(eventName string, callback func(event *WailsEvent)) func()
```
On is the equivalent of Javascript's \`addEventListener\`
### func \(\*EventProcessor\) [OnMultiple]()
```go
func (e *EventProcessor) OnMultiple(eventName string, callback func(event *WailsEvent), counter int) func()
```
OnMultiple is the same as \`On\` but will unregister after \`count\` events
### func \(\*EventProcessor\) [Once]()
```go
func (e *EventProcessor) Once(eventName string, callback func(event *WailsEvent)) func()
```
Once is the same as \`On\` but will unregister after the first event
### func \(\*EventProcessor\) [RegisterHook]()
```go
func (e *EventProcessor) RegisterHook(eventName string, callback func(*WailsEvent)) func()
```
RegisterHook provides a means of registering methods to be called before emitting the event
## type [FileFilter]()
```go
type FileFilter struct {
DisplayName string // Filter information EG: "Image Files (*.jpg, *.png)"
Pattern string // semicolon separated list of extensions, EG: "*.jpg;*.png"
}
```
## type [IconPosition]()
```go
type IconPosition int
```
## type [MacAppearanceType]()
MacAppearanceType is a type of Appearance for Cocoa windows
```go
type MacAppearanceType string
```
```go
const (
// DefaultAppearance uses the default system value
DefaultAppearance MacAppearanceType = ""
// NSAppearanceNameAqua - The standard light system appearance.
NSAppearanceNameAqua MacAppearanceType = "NSAppearanceNameAqua"
// NSAppearanceNameDarkAqua - The standard dark system appearance.
NSAppearanceNameDarkAqua MacAppearanceType = "NSAppearanceNameDarkAqua"
// NSAppearanceNameVibrantLight - The light vibrant appearance
NSAppearanceNameVibrantLight MacAppearanceType = "NSAppearanceNameVibrantLight"
// NSAppearanceNameAccessibilityHighContrastAqua - A high-contrast version of the standard light system appearance.
NSAppearanceNameAccessibilityHighContrastAqua MacAppearanceType = "NSAppearanceNameAccessibilityHighContrastAqua"
// NSAppearanceNameAccessibilityHighContrastDarkAqua - A high-contrast version of the standard dark system appearance.
NSAppearanceNameAccessibilityHighContrastDarkAqua MacAppearanceType = "NSAppearanceNameAccessibilityHighContrastDarkAqua"
// NSAppearanceNameAccessibilityHighContrastVibrantLight - A high-contrast version of the light vibrant appearance.
NSAppearanceNameAccessibilityHighContrastVibrantLight MacAppearanceType = "NSAppearanceNameAccessibilityHighContrastVibrantLight"
// NSAppearanceNameAccessibilityHighContrastVibrantDark - A high-contrast version of the dark vibrant appearance.
NSAppearanceNameAccessibilityHighContrastVibrantDark MacAppearanceType = "NSAppearanceNameAccessibilityHighContrastVibrantDark"
)
```
## type [MacBackdrop]()
MacBackdrop is the backdrop type for macOS
```go
type MacBackdrop int
```
```go
const (
// MacBackdropNormal - The default value. The window will have a normal opaque background.
MacBackdropNormal MacBackdrop = iota
// MacBackdropTransparent - The window will have a transparent background, with the content underneath it being visible
MacBackdropTransparent
// MacBackdropTranslucent - The window will have a translucent background, with the content underneath it being "fuzzy" or "frosted"
MacBackdropTranslucent
)
```
## type [MacOptions]()
MacOptions contains options for macOS applications.
```go
type MacOptions struct {
// ActivationPolicy is the activation policy for the application. Defaults to
// applicationActivationPolicyRegular.
ActivationPolicy ActivationPolicy
// If set to true, the application will terminate when the last window is closed.
ApplicationShouldTerminateAfterLastWindowClosed bool
}
```
## type [MacTitleBar]()
MacTitleBar contains options for the Mac titlebar
```go
type MacTitleBar struct {
// AppearsTransparent will make the titlebar transparent
AppearsTransparent bool
// Hide will hide the titlebar
Hide bool
// HideTitle will hide the title
HideTitle bool
// FullSizeContent will extend the window content to the full size of the window
FullSizeContent bool
// UseToolbar will use a toolbar instead of a titlebar
UseToolbar bool
// HideToolbarSeparator will hide the toolbar separator
HideToolbarSeparator bool
// ToolbarStyle is the style of toolbar to use
ToolbarStyle MacToolbarStyle
}
```
## type [MacToolbarStyle]()
MacToolbarStyle is the style of toolbar for macOS
```go
type MacToolbarStyle int
```
```go
const (
// MacToolbarStyleAutomatic - The default value. The style will be determined by the window's given configuration
MacToolbarStyleAutomatic MacToolbarStyle = iota
// MacToolbarStyleExpanded - The toolbar will appear below the window title
MacToolbarStyleExpanded
// MacToolbarStylePreference - The toolbar will appear below the window title and the items in the toolbar will attempt to have equal widths when possible
MacToolbarStylePreference
// MacToolbarStyleUnified - The window title will appear inline with the toolbar when visible
MacToolbarStyleUnified
// MacToolbarStyleUnifiedCompact - Same as MacToolbarStyleUnified, but with reduced margins in the toolbar allowing more focus to be on the contents of the window
MacToolbarStyleUnifiedCompact
)
```
## type [MacWindow]()
MacWindow contains macOS specific options for Webview Windows
```go
type MacWindow struct {
// Backdrop is the backdrop type for the window
Backdrop MacBackdrop
// DisableShadow will disable the window shadow
DisableShadow bool
// TitleBar contains options for the Mac titlebar
TitleBar MacTitleBar
// Appearance is the appearance type for the window
Appearance MacAppearanceType
// InvisibleTitleBarHeight defines the height of an invisible titlebar which responds to dragging
InvisibleTitleBarHeight int
// Maps events from platform specific to common event types
EventMapping map[events.WindowEventType]events.WindowEventType
// EnableFraudulentWebsiteWarnings will enable warnings for fraudulent websites.
// Default: false
EnableFraudulentWebsiteWarnings bool
}
```
## type [Menu]()
```go
type Menu struct {
// contains filtered or unexported fields
}
```
### func [NewMenu]()
```go
func NewMenu() *Menu
```
### func \(\*Menu\) [Add]()
```go
func (m *Menu) Add(label string) *MenuItem
```
### func \(\*Menu\) [AddCheckbox]()
```go
func (m *Menu) AddCheckbox(label string, enabled bool) *MenuItem
```
### func \(\*Menu\) [AddRadio]()
```go
func (m *Menu) AddRadio(label string, enabled bool) *MenuItem
```
### func \(\*Menu\) [AddRole]()
```go
func (m *Menu) AddRole(role Role) *Menu
```
### func \(\*Menu\) [AddSeparator]()
```go
func (m *Menu) AddSeparator()
```
### func \(\*Menu\) [AddSubmenu]()
```go
func (m *Menu) AddSubmenu(s string) *Menu
```
### func \(\*Menu\) [SetLabel]()
```go
func (m *Menu) SetLabel(label string)
```
### func \(\*Menu\) [Update]()
```go
func (m *Menu) Update()
```
## type [MenuItem]()
```go
type MenuItem struct {
// contains filtered or unexported fields
}
```
### func \(\*MenuItem\) [Checked]()
```go
func (m *MenuItem) Checked() bool
```
### func \(\*MenuItem\) [Enabled]()
```go
func (m *MenuItem) Enabled() bool
```
### func \(\*MenuItem\) [Hidden]()
```go
func (m *MenuItem) Hidden() bool
```
### func \(\*MenuItem\) [IsCheckbox]()
```go
func (m *MenuItem) IsCheckbox() bool
```
### func \(\*MenuItem\) [IsRadio]()
```go
func (m *MenuItem) IsRadio() bool
```
### func \(\*MenuItem\) [IsSeparator]()
```go
func (m *MenuItem) IsSeparator() bool
```
### func \(\*MenuItem\) [IsSubmenu]()
```go
func (m *MenuItem) IsSubmenu() bool
```
### func \(\*MenuItem\) [Label]()
```go
func (m *MenuItem) Label() string
```
### func \(\*MenuItem\) [OnClick]()
```go
func (m *MenuItem) OnClick(f func(*Context)) *MenuItem
```
### func \(\*MenuItem\) [SetAccelerator]()
```go
func (m *MenuItem) SetAccelerator(shortcut string) *MenuItem
```
### func \(\*MenuItem\) [SetChecked]()
```go
func (m *MenuItem) SetChecked(checked bool) *MenuItem
```
### func \(\*MenuItem\) [SetEnabled]()
```go
func (m *MenuItem) SetEnabled(enabled bool) *MenuItem
```
### func \(\*MenuItem\) [SetHidden]()
```go
func (m *MenuItem) SetHidden(hidden bool) *MenuItem
```
### func \(\*MenuItem\) [SetLabel]()
```go
func (m *MenuItem) SetLabel(s string) *MenuItem
```
### func \(\*MenuItem\) [SetTooltip]()
```go
func (m *MenuItem) SetTooltip(s string) *MenuItem
```
### func \(\*MenuItem\) [Tooltip]()
```go
func (m *MenuItem) Tooltip() string
```
## type [MessageDialog]()
```go
type MessageDialog struct {
MessageDialogOptions
// contains filtered or unexported fields
}
```
### func [ErrorDialog]()
```go
func ErrorDialog() *MessageDialog
```
### func [InfoDialog]()
```go
func InfoDialog() *MessageDialog
```
### func [OpenDirectoryDialog]()
```go
func OpenDirectoryDialog() *MessageDialog
```
### func [QuestionDialog]()
```go
func QuestionDialog() *MessageDialog
```
### func [WarningDialog]()
```go
func WarningDialog() *MessageDialog
```
### func \(\*MessageDialog\) [AddButton]()
```go
func (d *MessageDialog) AddButton(s string) *Button
```
### func \(\*MessageDialog\) [AddButtons]()
```go
func (d *MessageDialog) AddButtons(buttons []*Button) *MessageDialog
```
### func \(\*MessageDialog\) [AttachToWindow]()
```go
func (d *MessageDialog) AttachToWindow(window *WebviewWindow) *MessageDialog
```
### func \(\*MessageDialog\) [SetCancelButton]()
```go
func (d *MessageDialog) SetCancelButton(button *Button) *MessageDialog
```
### func \(\*MessageDialog\) [SetDefaultButton]()
```go
func (d *MessageDialog) SetDefaultButton(button *Button) *MessageDialog
```
### func \(\*MessageDialog\) [SetIcon]()
```go
func (d *MessageDialog) SetIcon(icon []byte) *MessageDialog
```
### func \(\*MessageDialog\) [SetMessage]()
```go
func (d *MessageDialog) SetMessage(message string) *MessageDialog
```
### func \(\*MessageDialog\) [SetTitle]()
```go
func (d *MessageDialog) SetTitle(title string) *MessageDialog
```
### func \(\*MessageDialog\) [Show]()
```go
func (d *MessageDialog) Show()
```
## type [MessageDialogOptions]()
```go
type MessageDialogOptions struct {
DialogType DialogType
Title string
Message string
Buttons []*Button
Icon []byte
// contains filtered or unexported fields
}
```
## type [MessageProcessor]()
```go
type MessageProcessor struct {
// contains filtered or unexported fields
}
```
### func [NewMessageProcessor]()
```go
func NewMessageProcessor(logger *slog.Logger) *MessageProcessor
```
### func \(\*MessageProcessor\) [Error]()
```go
func (m *MessageProcessor) Error(message string, args ...any)
```
### func \(\*MessageProcessor\) [HandleRuntimeCall]()
```go
func (m *MessageProcessor) HandleRuntimeCall(rw http.ResponseWriter, r *http.Request)
```
### func \(\*MessageProcessor\) [HandleRuntimeCallWithIDs]()
```go
func (m *MessageProcessor) HandleRuntimeCallWithIDs(rw http.ResponseWriter, r *http.Request)
```
### func \(\*MessageProcessor\) [Info]()
```go
func (m *MessageProcessor) Info(message string, args ...any)
```
## type [Middleware]()
Middleware defines HTTP middleware that can be applied to the AssetServer. The handler passed as next is the next handler in the chain. One can decide to call the next handler or implement a specialized handling.
```go
type Middleware func(next http.Handler) http.Handler
```
### func [ChainMiddleware]()
```go
func ChainMiddleware(middleware ...Middleware) Middleware
```
ChainMiddleware allows chaining multiple middlewares to one middleware.
## type [OpenFileDialogOptions]()
```go
type OpenFileDialogOptions struct {
CanChooseDirectories bool
CanChooseFiles bool
CanCreateDirectories bool
ShowHiddenFiles bool
ResolvesAliases bool
AllowsMultipleSelection bool
HideExtension bool
CanSelectHiddenExtension bool
TreatsFilePackagesAsDirectories bool
AllowsOtherFileTypes bool
Filters []FileFilter
Window *WebviewWindow
Title string
Message string
ButtonText string
Directory string
}
```
## type [OpenFileDialogStruct]()
```go
type OpenFileDialogStruct struct {
// contains filtered or unexported fields
}
```
### func [OpenFileDialog]()
```go
func OpenFileDialog() *OpenFileDialogStruct
```
### func [OpenFileDialogWithOptions]()
```go
func OpenFileDialogWithOptions(options *OpenFileDialogOptions) *OpenFileDialogStruct
```
### func \(\*OpenFileDialogStruct\) [AddFilter]()
```go
func (d *OpenFileDialogStruct) AddFilter(displayName, pattern string) *OpenFileDialogStruct
```
AddFilter adds a filter to the dialog. The filter is a display name and a semicolon separated list of extensions. EG: AddFilter\("Image Files", "\*.jpg;\*.png"\)
### func \(\*OpenFileDialogStruct\) [AllowsOtherFileTypes]()
```go
func (d *OpenFileDialogStruct) AllowsOtherFileTypes(allowsOtherFileTypes bool) *OpenFileDialogStruct
```
### func \(\*OpenFileDialogStruct\) [AttachToWindow]()
```go
func (d *OpenFileDialogStruct) AttachToWindow(window *WebviewWindow) *OpenFileDialogStruct
```
### func \(\*OpenFileDialogStruct\) [CanChooseDirectories]()
```go
func (d *OpenFileDialogStruct) CanChooseDirectories(canChooseDirectories bool) *OpenFileDialogStruct
```
### func \(\*OpenFileDialogStruct\) [CanChooseFiles]()
```go
func (d *OpenFileDialogStruct) CanChooseFiles(canChooseFiles bool) *OpenFileDialogStruct
```
### func \(\*OpenFileDialogStruct\) [CanCreateDirectories]()
```go
func (d *OpenFileDialogStruct) CanCreateDirectories(canCreateDirectories bool) *OpenFileDialogStruct
```
### func \(\*OpenFileDialogStruct\) [CanSelectHiddenExtension]()
```go
func (d *OpenFileDialogStruct) CanSelectHiddenExtension(canSelectHiddenExtension bool) *OpenFileDialogStruct
```
### func \(\*OpenFileDialogStruct\) [HideExtension]()
```go
func (d *OpenFileDialogStruct) HideExtension(hideExtension bool) *OpenFileDialogStruct
```
### func \(\*OpenFileDialogStruct\) [PromptForMultipleSelection]()
```go
func (d *OpenFileDialogStruct) PromptForMultipleSelection() ([]string, error)
```
### func \(\*OpenFileDialogStruct\) [PromptForSingleSelection]()
```go
func (d *OpenFileDialogStruct) PromptForSingleSelection() (string, error)
```
### func \(\*OpenFileDialogStruct\) [ResolvesAliases]()
```go
func (d *OpenFileDialogStruct) ResolvesAliases(resolvesAliases bool) *OpenFileDialogStruct
```
### func \(\*OpenFileDialogStruct\) [SetButtonText]()
```go
func (d *OpenFileDialogStruct) SetButtonText(text string) *OpenFileDialogStruct
```
### func \(\*OpenFileDialogStruct\) [SetDirectory]()
```go
func (d *OpenFileDialogStruct) SetDirectory(directory string) *OpenFileDialogStruct
```
### func \(\*OpenFileDialogStruct\) [SetMessage]()
```go
func (d *OpenFileDialogStruct) SetMessage(message string) *OpenFileDialogStruct
```
### func \(\*OpenFileDialogStruct\) [SetOptions]()
```go
func (d *OpenFileDialogStruct) SetOptions(options *OpenFileDialogOptions)
```
### func \(\*OpenFileDialogStruct\) [SetTitle]()
```go
func (d *OpenFileDialogStruct) SetTitle(title string) *OpenFileDialogStruct
```
### func \(\*OpenFileDialogStruct\) [ShowHiddenFiles]()
```go
func (d *OpenFileDialogStruct) ShowHiddenFiles(showHiddenFiles bool) *OpenFileDialogStruct
```
### func \(\*OpenFileDialogStruct\) [TreatsFilePackagesAsDirectories]()
```go
func (d *OpenFileDialogStruct) TreatsFilePackagesAsDirectories(treatsFilePackagesAsDirectories bool) *OpenFileDialogStruct
```
## type [Options]()
```go
type Options struct {
// Name is the name of the application
Name string
// Description is the description of the application (used in the default about box)
Description string
// Icon is the icon of the application (used in the default about box)
Icon []byte
// Mac is the Mac specific configuration for Mac builds
Mac MacOptions
// Windows is the Windows specific configuration for Windows builds
Windows WindowsOptions
// Bind allows you to bind Go methods to the frontend.
Bind []any
// BindAliases allows you to specify alias IDs for your bound methods.
// Example: `BindAliases: map[uint32]uint32{1: 1411160069}` states that alias ID 1 maps to the Go method with ID 1411160069.
BindAliases map[uint32]uint32
// Logger i a slog.Logger instance used for logging Wails system messages (not application messages).
// If not defined, a default logger is used.
Logger *slog.Logger
// LogLevel defines the log level of the Wails system logger.
LogLevel slog.Level
// Assets are the application assets to be used.
Assets AssetOptions
// Plugins is a map of plugins used by the application
Plugins map[string]Plugin
// Flags are key value pairs that are available to the frontend.
// This is also used by Wails to provide information to the frontend.
Flags map[string]any
// PanicHandler is a way to register a custom panic handler
PanicHandler func(any)
// KeyBindings is a map of key bindings to functions
KeyBindings map[string]func(window *WebviewWindow)
}
```
## type [Parameter]()
Parameter defines a Go method parameter
```go
type Parameter struct {
Name string `json:"name,omitempty"`
TypeName string `json:"type"`
ReflectType reflect.Type
}
```
### func \(\*Parameter\) [IsError]()
```go
func (p *Parameter) IsError() bool
```
IsError returns true if the parameter type is an error
### func \(\*Parameter\) [IsType]()
```go
func (p *Parameter) IsType(typename string) bool
```
IsType returns true if the given
## type [Plugin]()
```go
type Plugin interface {
Name() string
Init() error
Shutdown()
CallableByJS() []string
InjectJS() string
}
```
## type [PluginCallOptions]()
```go
type PluginCallOptions struct {
Name string `json:"name"`
Args []any `json:"args"`
}
```
## type [PluginManager]()
```go
type PluginManager struct {
// contains filtered or unexported fields
}
```
### func [NewPluginManager]()
```go
func NewPluginManager(plugins map[string]Plugin, assetServer *assetserver.AssetServer) *PluginManager
```
### func \(\*PluginManager\) [Init]()
```go
func (p *PluginManager) Init() error
```
### func \(\*PluginManager\) [Shutdown]()
```go
func (p *PluginManager) Shutdown()
```
## type [PositionOptions]()
```go
type PositionOptions struct {
Buffer int
}
```
## type [QueryParams]()
```go
type QueryParams map[string][]string
```
### func \(QueryParams\) [Args]()
```go
func (qp QueryParams) Args() (*Args, error)
```
### func \(QueryParams\) [Bool]()
```go
func (qp QueryParams) Bool(key string) *bool
```
### func \(QueryParams\) [Float64]()
```go
func (qp QueryParams) Float64(key string) *float64
```
### func \(QueryParams\) [Int]()
```go
func (qp QueryParams) Int(key string) *int
```
### func \(QueryParams\) [String]()
```go
func (qp QueryParams) String(key string) *string
```
### func \(QueryParams\) [ToStruct]()
```go
func (qp QueryParams) ToStruct(str any) error
```
### func \(QueryParams\) [UInt]()
```go
func (qp QueryParams) UInt(key string) *uint
```
### func \(QueryParams\) [UInt8]()
```go
func (qp QueryParams) UInt8(key string) *uint8
```
## type [RGBA]()
```go
type RGBA struct {
Red, Green, Blue, Alpha uint8
}
```
## type [RadioGroup]()
```go
type RadioGroup []*RadioGroupMember
```
### func \(\*RadioGroup\) [Add]()
```go
func (r *RadioGroup) Add(id int, item *MenuItem)
```
### func \(\*RadioGroup\) [Bounds]()
```go
func (r *RadioGroup) Bounds() (int, int)
```
### func \(\*RadioGroup\) [MenuID]()
```go
func (r *RadioGroup) MenuID(item *MenuItem) int
```
## type [RadioGroupMember]()
```go
type RadioGroupMember struct {
ID int
MenuItem *MenuItem
}
```
## type [Rect]()
```go
type Rect struct {
X int
Y int
Width int
Height int
}
```
## type [Role]()
Role is a type to identify menu roles
```go
type Role uint
```
These constants need to be kept in sync with \`v2/internal/frontend/desktop/darwin/Role.h\`
```go
const (
NoRole Role = iota
AppMenu Role = iota
EditMenu Role = iota
ViewMenu Role = iota
WindowMenu Role = iota
ServicesMenu Role = iota
HelpMenu Role = iota
Hide Role = iota
HideOthers Role = iota
UnHide Role = iota
About Role = iota
Undo Role = iota
Redo Role = iota
Cut Role = iota
Copy Role = iota
Paste Role = iota
PasteAndMatchStyle Role = iota
SelectAll Role = iota
Delete Role = iota
SpeechMenu Role = iota
Quit Role = iota
FileMenu Role = iota
Close Role = iota
Reload Role = iota
ForceReload Role = iota
ToggleDevTools Role = iota
ResetZoom Role = iota
ZoomIn Role = iota
ZoomOut Role = iota
ToggleFullscreen Role = iota
Minimize Role = iota
Zoom Role = iota
FullScreen Role = iota
)
```
## type [SaveFileDialogOptions]()
```go
type SaveFileDialogOptions struct {
CanCreateDirectories bool
ShowHiddenFiles bool
CanSelectHiddenExtension bool
AllowOtherFileTypes bool
HideExtension bool
TreatsFilePackagesAsDirectories bool
Title string
Message string
Directory string
Filename string
ButtonText string
Filters []FileFilter
Window *WebviewWindow
}
```
## type [SaveFileDialogStruct]()
```go
type SaveFileDialogStruct struct {
// contains filtered or unexported fields
}
```
### func [SaveFileDialog]()
```go
func SaveFileDialog() *SaveFileDialogStruct
```
### func [SaveFileDialogWithOptions]()
```go
func SaveFileDialogWithOptions(s *SaveFileDialogOptions) *SaveFileDialogStruct
```
### func \(\*SaveFileDialogStruct\) [AddFilter]()
```go
func (d *SaveFileDialogStruct) AddFilter(displayName, pattern string) *SaveFileDialogStruct
```
AddFilter adds a filter to the dialog. The filter is a display name and a semicolon separated list of extensions. EG: AddFilter\("Image Files", "\*.jpg;\*.png"\)
### func \(\*SaveFileDialogStruct\) [AllowsOtherFileTypes]()
```go
func (d *SaveFileDialogStruct) AllowsOtherFileTypes(allowOtherFileTypes bool) *SaveFileDialogStruct
```
### func \(\*SaveFileDialogStruct\) [AttachToWindow]()
```go
func (d *SaveFileDialogStruct) AttachToWindow(window *WebviewWindow) *SaveFileDialogStruct
```
### func \(\*SaveFileDialogStruct\) [CanCreateDirectories]()
```go
func (d *SaveFileDialogStruct) CanCreateDirectories(canCreateDirectories bool) *SaveFileDialogStruct
```
### func \(\*SaveFileDialogStruct\) [CanSelectHiddenExtension]()
```go
func (d *SaveFileDialogStruct) CanSelectHiddenExtension(canSelectHiddenExtension bool) *SaveFileDialogStruct
```
### func \(\*SaveFileDialogStruct\) [HideExtension]()
```go
func (d *SaveFileDialogStruct) HideExtension(hideExtension bool) *SaveFileDialogStruct
```
### func \(\*SaveFileDialogStruct\) [PromptForSingleSelection]()
```go
func (d *SaveFileDialogStruct) PromptForSingleSelection() (string, error)
```
### func \(\*SaveFileDialogStruct\) [SetButtonText]()
```go
func (d *SaveFileDialogStruct) SetButtonText(text string) *SaveFileDialogStruct
```
### func \(\*SaveFileDialogStruct\) [SetDirectory]()
```go
func (d *SaveFileDialogStruct) SetDirectory(directory string) *SaveFileDialogStruct
```
### func \(\*SaveFileDialogStruct\) [SetFilename]()
```go
func (d *SaveFileDialogStruct) SetFilename(filename string) *SaveFileDialogStruct
```
### func \(\*SaveFileDialogStruct\) [SetMessage]()
```go
func (d *SaveFileDialogStruct) SetMessage(message string) *SaveFileDialogStruct
```
### func \(\*SaveFileDialogStruct\) [SetOptions]()
```go
func (d *SaveFileDialogStruct) SetOptions(options *SaveFileDialogOptions)
```
### func \(\*SaveFileDialogStruct\) [ShowHiddenFiles]()
```go
func (d *SaveFileDialogStruct) ShowHiddenFiles(showHiddenFiles bool) *SaveFileDialogStruct
```
### func \(\*SaveFileDialogStruct\) [TreatsFilePackagesAsDirectories]()
```go
func (d *SaveFileDialogStruct) TreatsFilePackagesAsDirectories(treatsFilePackagesAsDirectories bool) *SaveFileDialogStruct
```
## type [Screen]()
```go
type Screen struct {
ID string // A unique identifier for the display
Name string // The name of the display
Scale float32 // The scale factor of the display
X int // The x-coordinate of the top-left corner of the rectangle
Y int // The y-coordinate of the top-left corner of the rectangle
Size Size // The size of the display
Bounds Rect // The bounds of the display
WorkArea Rect // The work area of the display
IsPrimary bool // Whether this is the primary display
Rotation float32 // The rotation of the display
}
```
## type [Size]()
```go
type Size struct {
Width int
Height int
}
```
## type [SystemTray]()
```go
type SystemTray struct {
// contains filtered or unexported fields
}
```
### func \(\*SystemTray\) [AttachWindow]()
```go
func (s *SystemTray) AttachWindow(window *WebviewWindow) *SystemTray
```
AttachWindow attaches a window to the system tray. The window will be shown when the system tray icon is clicked. The window will be hidden when the system tray icon is clicked again, or when the window loses focus.
### func \(\*SystemTray\) [Destroy]()
```go
func (s *SystemTray) Destroy()
```
### func \(\*SystemTray\) [Label]()
```go
func (s *SystemTray) Label() string
```
### func \(\*SystemTray\) [OnClick]()
```go
func (s *SystemTray) OnClick(handler func()) *SystemTray
```
### func \(\*SystemTray\) [OnDoubleClick]()
```go
func (s *SystemTray) OnDoubleClick(handler func()) *SystemTray
```
### func \(\*SystemTray\) [OnMouseEnter]()
```go
func (s *SystemTray) OnMouseEnter(handler func()) *SystemTray
```
### func \(\*SystemTray\) [OnMouseLeave]()
```go
func (s *SystemTray) OnMouseLeave(handler func()) *SystemTray
```
### func \(\*SystemTray\) [OnRightClick]()
```go
func (s *SystemTray) OnRightClick(handler func()) *SystemTray
```
### func \(\*SystemTray\) [OnRightDoubleClick]()
```go
func (s *SystemTray) OnRightDoubleClick(handler func()) *SystemTray
```
### func \(\*SystemTray\) [OpenMenu]()
```go
func (s *SystemTray) OpenMenu()
```
### func \(\*SystemTray\) [PositionWindow]()
```go
func (s *SystemTray) PositionWindow(window *WebviewWindow, offset int) error
```
### func \(\*SystemTray\) [SetDarkModeIcon]()
```go
func (s *SystemTray) SetDarkModeIcon(icon []byte) *SystemTray
```
### func \(\*SystemTray\) [SetIcon]()
```go
func (s *SystemTray) SetIcon(icon []byte) *SystemTray
```
### func \(\*SystemTray\) [SetIconPosition]()
```go
func (s *SystemTray) SetIconPosition(iconPosition int) *SystemTray
```
### func \(\*SystemTray\) [SetLabel]()
```go
func (s *SystemTray) SetLabel(label string)
```
### func \(\*SystemTray\) [SetMenu]()
```go
func (s *SystemTray) SetMenu(menu *Menu) *SystemTray
```
### func \(\*SystemTray\) [SetTemplateIcon]()
```go
func (s *SystemTray) SetTemplateIcon(icon []byte) *SystemTray
```
### func \(\*SystemTray\) [WindowDebounce]()
```go
func (s *SystemTray) WindowDebounce(debounce time.Duration) *SystemTray
```
WindowDebounce is used by Windows to indicate how long to wait before responding to a mouse up event on the notification icon. This prevents the window from being hidden and then immediately shown when the user clicks on the system tray icon. See https://stackoverflow.com/questions/4585283/alternate-showing-hiding-window-when-notify-icon-is-clicked
### func \(\*SystemTray\) [WindowOffset]()
```go
func (s *SystemTray) WindowOffset(offset int) *SystemTray
```
WindowOffset sets the gap in pixels between the system tray and the window
## type [Theme]()
```go
type Theme int
```
```go
const (
// SystemDefault will use whatever the system theme is. The application will follow system theme changes.
SystemDefault Theme = 0
// Dark Mode
Dark Theme = 1
// Light Mode
Light Theme = 2
)
```
## type [ThemeSettings]()
ThemeSettings defines custom colours to use in dark or light mode. They may be set using the hex values: 0x00BBGGRR
```go
type ThemeSettings struct {
DarkModeTitleBar int32
DarkModeTitleBarInactive int32
DarkModeTitleText int32
DarkModeTitleTextInactive int32
DarkModeBorder int32
DarkModeBorderInactive int32
LightModeTitleBar int32
LightModeTitleBarInactive int32
LightModeTitleText int32
LightModeTitleTextInactive int32
LightModeBorder int32
LightModeBorderInactive int32
}
```
## type [WailsEvent]()
```go
type WailsEvent struct {
Name string `json:"name"`
Data any `json:"data"`
Sender string `json:"sender"`
Cancelled bool
}
```
### func \(\*WailsEvent\) [Cancel]()
```go
func (e *WailsEvent) Cancel()
```
## type [WebviewWindow]()
```go
type WebviewWindow struct {
// contains filtered or unexported fields
}
```
### func \(\*WebviewWindow\) [AbsolutePosition]()
```go
func (w *WebviewWindow) AbsolutePosition() (int, int)
```
AbsolutePosition returns the absolute position of the window to the screen
### func \(\*WebviewWindow\) [Center]()
```go
func (w *WebviewWindow) Center()
```
Center centers the window on the screen
### func \(\*WebviewWindow\) [Close]()
```go
func (w *WebviewWindow) Close()
```
Close closes the window
### func \(\*WebviewWindow\) [Destroy]()
```go
func (w *WebviewWindow) Destroy()
```
### func \(\*WebviewWindow\) [ExecJS]()
```go
func (w *WebviewWindow) ExecJS(js string)
```
ExecJS executes the given javascript in the context of the window.
### func \(\*WebviewWindow\) [Flash]()
```go
func (w *WebviewWindow) Flash(enabled bool)
```
Flash flashes the window's taskbar button/icon. Windows only.
### func \(\*WebviewWindow\) [Focus]()
```go
func (w *WebviewWindow) Focus()
```
### func \(\*WebviewWindow\) [ForceReload]()
```go
func (w *WebviewWindow) ForceReload()
```
ForceReload forces the window to reload the page assets
### func \(\*WebviewWindow\) [Fullscreen]()
```go
func (w *WebviewWindow) Fullscreen() *WebviewWindow
```
Fullscreen sets the window to fullscreen mode. Min/Max size constraints are disabled.
### func \(\*WebviewWindow\) [GetScreen]()
```go
func (w *WebviewWindow) GetScreen() (*Screen, error)
```
GetScreen returns the screen that the window is on
### func \(\*WebviewWindow\) [GetZoom]()
```go
func (w *WebviewWindow) GetZoom() float64
```
GetZoom returns the current zoom level of the window.
### func \(\*WebviewWindow\) [Height]()
```go
func (w *WebviewWindow) Height() int
```
Height returns the height of the window
### func \(\*WebviewWindow\) [Hide]()
```go
func (w *WebviewWindow) Hide() *WebviewWindow
```
Hide hides the window.