diff --git a/mkdocs-website/docs/en/API/application.md b/mkdocs-website/docs/en/API/application.md
index 2d1a3c1cfbf..caddaf104a6 100644
--- a/mkdocs-website/docs/en/API/application.md
+++ b/mkdocs-website/docs/en/API/application.md
@@ -133,227 +133,19 @@ API: `Show()`
app.Show()
```
-### NewWebviewWindow
-
-API: `NewWebviewWindow() *WebviewWindow`
-
-`NewWebviewWindow()` creates a new Webview window with default options, and
-returns it.
-
-```go
- // Create a new webview window
- window := app.NewWebviewWindow()
-```
-
-### NewWebviewWindowWithOptions
-
-API:
-`NewWebviewWindowWithOptions(windowOptions WebviewWindowOptions) *WebviewWindow`
-
-`NewWebviewWindowWithOptions()` creates a new webview window with custom
-options. The newly created window is added to a map of windows managed by the
-application.
-
-```go
- // Create a new webview window with custom options
- window := app.NewWebviewWindowWithOptions(WebviewWindowOptions{
- Name: "Main",
- Title: "My Window",
- Width: 800,
- Height: 600,
- })
-```
-
-### OnWindowCreation
-
-API: `OnWindowCreation(callback func(window *WebviewWindow))`
-
-`OnWindowCreation()` registers a callback function to be called when a window is
-created.
-
-```go
- // Register a callback to be called when a window is created
- app.OnWindowCreation(func(window *WebviewWindow) {
- // Do something
- })
-```
-
-### GetWindowByName
-
-API: `GetWindowByName(name string) *WebviewWindow`
-
-`GetWindowByName()` fetches and returns a window with a specific name.
-
-```go
- // Get a window by name
- window := app.GetWindowByName("Main")
-```
-
-### CurrentWindow
-
-API: `CurrentWindow() *WebviewWindow`
-
-`CurrentWindow()` fetches and returns a pointer to the currently active window
-in the application. If there is no window, it returns nil.
-
-```go
- // Get the current window
- window := app.CurrentWindow()
-```
-
-### RegisterContextMenu
-
-API: `RegisterContextMenu(name string, menu *Menu)`
-
-`RegisterContextMenu()` registers a context menu with a given name. This menu
-can be used later in the application.
-
-```go
-
- // Create a new menu
- ctxmenu := app.NewMenu()
-
- // Register the menu as a context menu
- app.RegisterContextMenu("MyContextMenu", ctxmenu)
-```
-
-### SetMenu
-
-API: `SetMenu(menu *Menu)`
-
-`SetMenu()` sets the menu for the application. On Mac, this will be the global
-menu. For Windows and Linux, this will be the default menu for any new window
-created.
-
-```go
- // Create a new menu
- menu := app.NewMenu()
-
- // Set the menu for the application
- app.SetMenu(menu)
-```
-
-### ShowAboutDialog
-
-API: `ShowAboutDialog()`
-
-`ShowAboutDialog()` shows an "About" dialog box. It can show the application's
-name, description and icon.
-
-```go
- // Show the about dialog
- app.ShowAboutDialog()
-```
-
-### Info
-
-API: `InfoDialog()`
-
-`InfoDialog()` creates and returns a new instance of `MessageDialog` with an
-`InfoDialogType`. This dialog is typically used to display informational
-messages to the user.
-
-### Question
-
-API: `QuestionDialog()`
-
-`QuestionDialog()` creates and returns a new instance of `MessageDialog` with a
-`QuestionDialogType`. This dialog is often used to ask a question to the user
-and expect a response.
-
-### Warning
-
-API: `WarningDialog()`
-
-`WarningDialog()` creates and returns a new instance of `MessageDialog` with a
-`WarningDialogType`. As the name suggests, this dialog is primarily used to
-display warning messages to the user.
-
-### Error
-
-API: `ErrorDialog()`
-
-`ErrorDialog()` creates and returns a new instance of `MessageDialog` with an
-`ErrorDialogType`. This dialog is designed to be used when you need to display
-an error message to the user.
-
-### OpenFile
-
-API: `OpenFileDialog()`
-
-`OpenFileDialog()` creates and returns a new `OpenFileDialogStruct`. This dialog
-prompts the user to select one or more files from their file system.
-
-### SaveFile
-
-API: `SaveFileDialog()`
-
-`SaveFileDialog()` creates and returns a new `SaveFileDialogStruct`. This dialog
-prompts the user to choose a location on their file system where a file should
-be saved.
-
-### OpenDirectory
-
-API: `OpenDirectoryDialog()`
-
-`OpenDirectoryDialog()` creates and returns a new instance of `MessageDialog`
-with an `OpenDirectoryDialogType`. This dialog enables the user to choose a
-directory from their file system.
-
-### On
-
-API:
-`On(eventType events.ApplicationEventType, callback func(event *Event)) func()`
-
-`On()` registers an event listener for specific application events. The callback
-function provided will be triggered when the corresponding event occurs. The
-function returns a function that can be called to remove the listener.
-
-### RegisterHook
-
-API:
-`RegisterHook(eventType events.ApplicationEventType, callback func(event *Event)) func()`
-
-`RegisterHook()` registers a callback to be run as a hook during specific
-events. These hooks are run before listeners attached with `On()`. The function
-returns a function that can be called to remove the hook.
-
-### GetPrimaryScreen
-
-API: `GetPrimaryScreen() (*Screen, error)`
-
-`GetPrimaryScreen()` returns the primary screen of the system.
-
-### GetScreens
-
-API: `GetScreens() ([]*Screen, error)`
-
-`GetScreens()` returns information about all screens attached to the system.
-
-This is a brief summary of the exported methods in the provided `App` struct. Do
-note that for more detailed functionality or considerations, refer to the actual
-Go code or further internal documentation.
-
-## Options
-
-```go title="application_options.go"
--8<--
-../v3/pkg/application/options_application.go
+./docs/en/API/application_window.md
+./docs/en/API/application_menu.md
+./docs/en/API/application_dialogs.md
+./docs/en/API/application_events.md
+./docs/en/API/application_screens.md
--8<--
-```
-
-### Windows Options
-```go title="application_options_windows.go"
---8<--
-../v3/pkg/application/options_application_win.go
---8<--
-```
-### Mac Options
+## Options
-```go title="options_application_mac.go"
+```go title="pkg/application/application_options.go"
--8<--
-../v3/pkg/application/options_application_mac.go
+../v3/pkg/application/application_options.go
--8<--
```
diff --git a/mkdocs-website/docs/en/API/application_dialogs.md b/mkdocs-website/docs/en/API/application_dialogs.md
new file mode 100644
index 00000000000..9cd0980001d
--- /dev/null
+++ b/mkdocs-website/docs/en/API/application_dialogs.md
@@ -0,0 +1,67 @@
+
+### ShowAboutDialog
+
+API: `ShowAboutDialog()`
+
+`ShowAboutDialog()` shows an "About" dialog box. It can show the application's
+name, description and icon.
+
+```go
+ // Show the about dialog
+ app.ShowAboutDialog()
+```
+
+### Info
+
+API: `InfoDialog()`
+
+`InfoDialog()` creates and returns a new instance of `MessageDialog` with an
+`InfoDialogType`. This dialog is typically used to display informational
+messages to the user.
+
+### Question
+
+API: `QuestionDialog()`
+
+`QuestionDialog()` creates and returns a new instance of `MessageDialog` with a
+`QuestionDialogType`. This dialog is often used to ask a question to the user
+and expect a response.
+
+### Warning
+
+API: `WarningDialog()`
+
+`WarningDialog()` creates and returns a new instance of `MessageDialog` with a
+`WarningDialogType`. As the name suggests, this dialog is primarily used to
+display warning messages to the user.
+
+### Error
+
+API: `ErrorDialog()`
+
+`ErrorDialog()` creates and returns a new instance of `MessageDialog` with an
+`ErrorDialogType`. This dialog is designed to be used when you need to display
+an error message to the user.
+
+### OpenFile
+
+API: `OpenFileDialog()`
+
+`OpenFileDialog()` creates and returns a new `OpenFileDialogStruct`. This dialog
+prompts the user to select one or more files from their file system.
+
+### SaveFile
+
+API: `SaveFileDialog()`
+
+`SaveFileDialog()` creates and returns a new `SaveFileDialogStruct`. This dialog
+prompts the user to choose a location on their file system where a file should
+be saved.
+
+### OpenDirectory
+
+API: `OpenDirectoryDialog()`
+
+`OpenDirectoryDialog()` creates and returns a new instance of `MessageDialog`
+with an `OpenDirectoryDialogType`. This dialog enables the user to choose a
+directory from their file system.
diff --git a/mkdocs-website/docs/en/API/application_events.md b/mkdocs-website/docs/en/API/application_events.md
new file mode 100644
index 00000000000..3b2b73d073e
--- /dev/null
+++ b/mkdocs-website/docs/en/API/application_events.md
@@ -0,0 +1,18 @@
+
+### On
+
+API:
+`On(eventType events.ApplicationEventType, callback func(event *Event)) func()`
+
+`On()` registers an event listener for specific application events. The callback
+function provided will be triggered when the corresponding event occurs. The
+function returns a function that can be called to remove the listener.
+
+### RegisterHook
+
+API:
+`RegisterHook(eventType events.ApplicationEventType, callback func(event *Event)) func()`
+
+`RegisterHook()` registers a callback to be run as a hook during specific
+events. These hooks are run before listeners attached with `On()`. The function
+returns a function that can be called to remove the hook.
diff --git a/mkdocs-website/docs/en/API/application_menu.md b/mkdocs-website/docs/en/API/application_menu.md
new file mode 100644
index 00000000000..92242f9104a
--- /dev/null
+++ b/mkdocs-website/docs/en/API/application_menu.md
@@ -0,0 +1,31 @@
+### RegisterContextMenu
+
+API: `RegisterContextMenu(name string, menu *Menu)`
+
+`RegisterContextMenu()` registers a context menu with a given name. This menu
+can be used later in the application.
+
+```go
+
+ // Create a new menu
+ ctxmenu := app.NewMenu()
+
+ // Register the menu as a context menu
+ app.RegisterContextMenu("MyContextMenu", ctxmenu)
+```
+
+### SetMenu
+
+API: `SetMenu(menu *Menu)`
+
+`SetMenu()` sets the menu for the application. On Mac, this will be the global
+menu. For Windows and Linux, this will be the default menu for any new window
+created.
+
+```go
+ // Create a new menu
+ menu := app.NewMenu()
+
+ // Set the menu for the application
+ app.SetMenu(menu)
+```
diff --git a/mkdocs-website/docs/en/API/application_screens.md b/mkdocs-website/docs/en/API/application_screens.md
new file mode 100644
index 00000000000..af057fbeaeb
--- /dev/null
+++ b/mkdocs-website/docs/en/API/application_screens.md
@@ -0,0 +1,15 @@
+### GetPrimaryScreen
+
+API: `GetPrimaryScreen() (*Screen, error)`
+
+`GetPrimaryScreen()` returns the primary screen of the system.
+
+### GetScreens
+
+API: `GetScreens() ([]*Screen, error)`
+
+`GetScreens()` returns information about all screens attached to the system.
+
+This is a brief summary of the exported methods in the provided `App` struct. Do
+note that for more detailed functionality or considerations, refer to the actual
+Go code or further internal documentation.
\ No newline at end of file
diff --git a/mkdocs-website/docs/en/API/application_window.md b/mkdocs-website/docs/en/API/application_window.md
new file mode 100644
index 00000000000..7af553791b0
--- /dev/null
+++ b/mkdocs-website/docs/en/API/application_window.md
@@ -0,0 +1,67 @@
+### NewWebviewWindow
+
+API: `NewWebviewWindow() *WebviewWindow`
+
+`NewWebviewWindow()` creates a new Webview window with default options, and
+returns it.
+
+```go
+ // Create a new webview window
+ window := app.NewWebviewWindow()
+```
+
+### NewWebviewWindowWithOptions
+
+API:
+`NewWebviewWindowWithOptions(windowOptions WebviewWindowOptions) *WebviewWindow`
+
+`NewWebviewWindowWithOptions()` creates a new webview window with custom
+options. The newly created window is added to a map of windows managed by the
+application.
+
+```go
+ // Create a new webview window with custom options
+ window := app.NewWebviewWindowWithOptions(WebviewWindowOptions{
+ Name: "Main",
+ Title: "My Window",
+ Width: 800,
+ Height: 600,
+ })
+```
+
+### OnWindowCreation
+
+API: `OnWindowCreation(callback func(window *WebviewWindow))`
+
+`OnWindowCreation()` registers a callback function to be called when a window is
+created.
+
+```go
+ // Register a callback to be called when a window is created
+ app.OnWindowCreation(func(window *WebviewWindow) {
+ // Do something
+ })
+```
+
+### GetWindowByName
+
+API: `GetWindowByName(name string) *WebviewWindow`
+
+`GetWindowByName()` fetches and returns a window with a specific name.
+
+```go
+ // Get a window by name
+ window := app.GetWindowByName("Main")
+```
+
+### CurrentWindow
+
+API: `CurrentWindow() *WebviewWindow`
+
+`CurrentWindow()` fetches and returns a pointer to the currently active window
+in the application. If there is no window, it returns nil.
+
+```go
+ // Get the current window
+ window := app.CurrentWindow()
+```
diff --git a/mkdocs-website/docs/en/API/fullapi.md b/mkdocs-website/docs/en/API/fullapi.md
deleted file mode 100644
index 91663c6dc5e..00000000000
--- a/mkdocs-website/docs/en/API/fullapi.md
+++ /dev/null
@@ -1,4209 +0,0 @@
-# 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\) ToggleMaximise\(\)](#WebviewWindow.ToggleMaximise)
- - [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](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/logger_windows.go#L14)
-
-```go
-func DefaultLogger(level slog.Level) *slog.Logger
-```
-
-
-
-## func [Fatal](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/errors.go#L8)
-
-```go
-func Fatal(message string, args ...interface{})
-```
-
-
-
-## func [InvokeAsync](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/mainthread.go#L70)
-
-```go
-func InvokeAsync(fn func())
-```
-
-
-
-## func [InvokeSync](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/mainthread.go#L23)
-
-```go
-func InvokeSync(fn func())
-```
-
-
-
-## func [InvokeSyncWithError](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/mainthread.go#L46)
-
-```go
-func InvokeSyncWithError(fn func() error) (err error)
-```
-
-
-
-## func [InvokeSyncWithResult](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/mainthread.go#L34)
-
-```go
-func InvokeSyncWithResult[T any](fn func() T) (res T)
-```
-
-
-
-## func [InvokeSyncWithResultAndError](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/mainthread.go#L58)
-
-```go
-func InvokeSyncWithResultAndError[T any](fn func() (T, error)) (res T, err error)
-```
-
-
-
-## func [NewIconFromResource](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/webview_window_windows.go#L1603)
-
-```go
-func NewIconFromResource(instance w32.HINSTANCE, resId uint16) (w32.HICON, error)
-```
-
-
-
-## func [ScaleToDefaultDPI](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/webview_window_windows.go#L1599)
-
-```go
-func ScaleToDefaultDPI(pixels int, dpi uint) int
-```
-
-
-
-## func [ScaleWithDPI](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/webview_window_windows.go#L1595)
-
-```go
-func ScaleWithDPI(pixels int, dpi uint) int
-```
-
-
-
-## type [ActivationPolicy](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/options_application_mac.go#L4)
-
-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](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/application.go#L214-L269)
-
-```go
-type App struct {
-
- // The main application menu
- ApplicationMenu *Menu
-
- Events *EventProcessor
- Logger *slog.Logger
- // contains filtered or unexported fields
-}
-```
-
-
-
-### func [Get](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/application.go#L36)
-
-```go
-func Get() *App
-```
-
-
-
-### func [New](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/application.go#L40)
-
-```go
-func New(appOptions Options) *App
-```
-
-
-
-### func \(\*App\) [Capabilities](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/application.go#L300)
-
-```go
-func (a *App) Capabilities() capabilities.Capabilities
-```
-
-
-
-### func \(\*App\) [Clipboard](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/application.go#L639)
-
-```go
-func (a *App) Clipboard() *Clipboard
-```
-
-
-
-### func \(\*App\) [CurrentWindow](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/application.go#L563)
-
-```go
-func (a *App) CurrentWindow() *WebviewWindow
-```
-
-
-
-### func \(\*App\) [GetPID](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/application.go#L347)
-
-```go
-func (a *App) GetPID() int
-```
-
-
-
-### func \(\*App\) [GetPrimaryScreen](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/application.go#L631)
-
-```go
-func (a *App) GetPrimaryScreen() (*Screen, error)
-```
-
-
-
-### func \(\*App\) [GetScreens](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/application.go#L635)
-
-```go
-func (a *App) GetScreens() ([]*Screen, error)
-```
-
-
-
-### func \(\*App\) [GetWindowByName](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/application.go#L716)
-
-```go
-func (a *App) GetWindowByName(name string) *WebviewWindow
-```
-
-
-
-### func \(\*App\) [Hide](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/application.go#L686)
-
-```go
-func (a *App) Hide()
-```
-
-
-
-### func \(\*App\) [IsDarkMode](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/application.go#L679)
-
-```go
-func (a *App) IsDarkMode() bool
-```
-
-
-
-### func \(\*App\) [NewMenu](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/menu.go#L98)
-
-```go
-func (a *App) NewMenu() *Menu
-```
-
-
-
-### func \(\*App\) [NewSystemTray](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/application.go#L397)
-
-```go
-func (a *App) NewSystemTray() *SystemTray
-```
-
-
-
-### func \(\*App\) [NewWebviewWindow](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/application.go#L343)
-
-```go
-func (a *App) NewWebviewWindow() *WebviewWindow
-```
-
-
-
-### func \(\*App\) [NewWebviewWindowWithOptions](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/application.go#L379)
-
-```go
-func (a *App) NewWebviewWindowWithOptions(windowOptions WebviewWindowOptions) *WebviewWindow
-```
-
-
-
-### func \(\*App\) [On](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/application.go#L304)
-
-```go
-func (a *App) On(eventType events.ApplicationEventType, callback func(event *Event)) func()
-```
-
-
-
-### func \(\*App\) [OnWindowCreation](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/application.go#L712)
-
-```go
-func (a *App) OnWindowCreation(callback func(window *WebviewWindow))
-```
-
-
-
-### func \(\*App\) [Quit](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/application.go#L573)
-
-```go
-func (a *App) Quit()
-```
-
-
-
-### func \(\*App\) [RegisterContextMenu](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/application.go#L698)
-
-```go
-func (a *App) RegisterContextMenu(name string, menu *Menu)
-```
-
-
-
-### func \(\*App\) [RegisterHook](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/application.go#L327)
-
-```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](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/application.go#L410)
-
-```go
-func (a *App) Run() error
-```
-
-
-
-### func \(\*App\) [SetMenu](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/application.go#L591)
-
-```go
-func (a *App) SetMenu(menu *Menu)
-```
-
-
-
-### func \(\*App\) [Show](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/application.go#L692)
-
-```go
-func (a *App) Show()
-```
-
-
-
-### func \(\*App\) [ShowAboutDialog](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/application.go#L597)
-
-```go
-func (a *App) ShowAboutDialog()
-```
-
-
-
-## type [ApplicationEventContext](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/context_application_event.go#L10-L13)
-
-```go
-type ApplicationEventContext struct {
- // contains filtered or unexported fields
-}
-```
-
-
-
-### func \(ApplicationEventContext\) [IsDarkMode](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/context_application_event.go#L35)
-
-```go
-func (c ApplicationEventContext) IsDarkMode() bool
-```
-
-
-
-### func \(ApplicationEventContext\) [OpenedFiles](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/context_application_event.go#L15)
-
-```go
-func (c ApplicationEventContext) OpenedFiles() []string
-```
-
-
-
-## type [Args](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/messageprocessor_params.go#L109-L111)
-
-```go
-type Args struct {
- // contains filtered or unexported fields
-}
-```
-
-
-
-### func \(\*Args\) [Bool](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/messageprocessor_params.go#L178)
-
-```go
-func (a *Args) Bool(s string) *bool
-```
-
-
-
-### func \(\*Args\) [Float64](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/messageprocessor_params.go#L167)
-
-```go
-func (a *Args) Float64(s string) *float64
-```
-
-
-
-### func \(\*Args\) [Int](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/messageprocessor_params.go#L124)
-
-```go
-func (a *Args) Int(s string) *int
-```
-
-
-
-### func \(\*Args\) [String](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/messageprocessor_params.go#L113)
-
-```go
-func (a *Args) String(key string) *string
-```
-
-
-
-### func \(\*Args\) [UInt](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/messageprocessor_params.go#L157)
-
-```go
-func (a *Args) UInt(s string) *uint
-```
-
-
-
-### func \(\*Args\) [UInt8](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/messageprocessor_params.go#L148)
-
-```go
-func (a *Args) UInt8(s string) *uint8
-```
-
-
-
-## type [AssetOptions](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/options_application.go#L57-L87)
-
-AssetOptions defines the configuration of the AssetServer.
-
-```go
-type AssetOptions struct {
- // Handler which serves all the content to the WebView.
- Handler http.Handler
-
- // Middleware is a 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.
- //
- // This middleware injects itself before any of Wails internal middlewares.
- //
- // 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](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/options_webview_window_win.go#L5)
-
-```go
-type BackdropType int32
-```
-
-
-
-```go
-const (
- Auto BackdropType = 0
- None BackdropType = 1
- Mica BackdropType = 2
- Acrylic BackdropType = 3
- Tabbed BackdropType = 4
-)
-```
-
-
-
-## type [BackgroundType](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/options_webview_window.go#L137)
-
-```go
-type BackgroundType int
-```
-
-
-
-```go
-const (
- BackgroundTypeSolid BackgroundType = iota
- BackgroundTypeTransparent
- BackgroundTypeTranslucent
-)
-```
-
-
-
-## type [Bindings](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/bindings.go#L76-L80)
-
-```go
-type Bindings struct {
- // contains filtered or unexported fields
-}
-```
-
-
-
-### func [NewBindings](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/bindings.go#L82)
-
-```go
-func NewBindings(structs []any, aliases map[uint32]uint32) (*Bindings, error)
-```
-
-
-
-### func \(\*Bindings\) [Add](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/bindings.go#L98)
-
-```go
-func (b *Bindings) Add(structPtr interface{}) error
-```
-
-Add the given struct methods to the Bindings
-
-
-
-### func \(\*Bindings\) [AddPlugins](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/bindings.go#L123)
-
-```go
-func (b *Bindings) AddPlugins(plugins map[string]Plugin) error
-```
-
-
-
-### func \(\*Bindings\) [GenerateID](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/bindings.go#L190)
-
-```go
-func (b *Bindings) GenerateID(name string) (uint32, error)
-```
-
-GenerateID generates a unique ID for a binding
-
-
-
-### func \(\*Bindings\) [Get](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/bindings.go#L161)
-
-```go
-func (b *Bindings) Get(options *CallOptions) *BoundMethod
-```
-
-Get returns the bound method with the given name
-
-
-
-### func \(\*Bindings\) [GetByID](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/bindings.go#L178)
-
-```go
-func (b *Bindings) GetByID(id uint32) *BoundMethod
-```
-
-GetByID returns the bound method with the given ID
-
-
-
-## type [BoundMethod](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/bindings.go#L64-L74)
-
-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](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/bindings.go#L298)
-
-```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](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/bindings.go#L203)
-
-```go
-func (b *BoundMethod) String() string
-```
-
-
-
-## type [Button](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/dialogs.go#L47-L52)
-
-```go
-type Button struct {
- Label string
- IsCancel bool
- IsDefault bool
- Callback func()
-}
-```
-
-
-
-### func \(\*Button\) [OnClick](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/dialogs.go#L54)
-
-```go
-func (b *Button) OnClick(callback func()) *Button
-```
-
-
-
-### func \(\*Button\) [SetAsCancel](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/dialogs.go#L64)
-
-```go
-func (b *Button) SetAsCancel() *Button
-```
-
-
-
-### func \(\*Button\) [SetAsDefault](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/dialogs.go#L59)
-
-```go
-func (b *Button) SetAsDefault() *Button
-```
-
-
-
-## type [CallOptions](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/bindings.go#L13-L19)
-
-```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](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/bindings.go#L21)
-
-```go
-func (c CallOptions) Name() string
-```
-
-
-
-## type [Clipboard](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/clipboard.go#L8-L10)
-
-```go
-type Clipboard struct {
- // contains filtered or unexported fields
-}
-```
-
-
-
-### func \(\*Clipboard\) [SetText](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/clipboard.go#L18)
-
-```go
-func (c *Clipboard) SetText(text string) bool
-```
-
-
-
-### func \(\*Clipboard\) [Text](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/clipboard.go#L22)
-
-```go
-func (c *Clipboard) Text() (string, bool)
-```
-
-
-
-## type [Context](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/context.go#L3-L6)
-
-```go
-type Context struct {
- // contains filtered or unexported fields
-}
-```
-
-
-
-### func \(\*Context\) [ClickedMenuItem](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/context.go#L20)
-
-```go
-func (c *Context) ClickedMenuItem() *MenuItem
-```
-
-
-
-### func \(\*Context\) [ContextMenuData](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/context.go#L35)
-
-```go
-func (c *Context) ContextMenuData() any
-```
-
-
-
-### func \(\*Context\) [IsChecked](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/context.go#L28)
-
-```go
-func (c *Context) IsChecked() bool
-```
-
-
-
-## type [ContextMenuData](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/messageprocessor_contextmenu.go#L7-L12)
-
-```go
-type ContextMenuData struct {
- Id string `json:"id"`
- X int `json:"x"`
- Y int `json:"y"`
- Data any `json:"data"`
-}
-```
-
-
-
-## type [DialogType](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/dialogs.go#L8)
-
-```go
-type DialogType int
-```
-
-
-
-```go
-const (
- InfoDialogType DialogType = iota
- QuestionDialogType
- WarningDialogType
- ErrorDialogType
- OpenDirectoryDialogType
-)
-```
-
-
-
-## type [Event](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/events.go#L10-L14)
-
-```go
-type Event struct {
- Id uint
-
- Cancelled bool
- // contains filtered or unexported fields
-}
-```
-
-
-
-### func \(\*Event\) [Cancel](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/events.go#L27)
-
-```go
-func (w *Event) Cancel()
-```
-
-
-
-### func \(\*Event\) [Context](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/events.go#L16)
-
-```go
-func (w *Event) Context() *ApplicationEventContext
-```
-
-
-
-## type [EventListener](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/application.go#L32-L34)
-
-```go
-type EventListener struct {
- // contains filtered or unexported fields
-}
-```
-
-
-
-## type [EventProcessor](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/events.go#L77-L84)
-
-EventProcessor handles custom events
-
-```go
-type EventProcessor struct {
- // contains filtered or unexported fields
-}
-```
-
-
-
-### func [NewWailsEventProcessor](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/events.go#L86)
-
-```go
-func NewWailsEventProcessor(dispatchEventToWindows func(*WailsEvent)) *EventProcessor
-```
-
-
-
-### func \(\*EventProcessor\) [Emit](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/events.go#L110)
-
-```go
-func (e *EventProcessor) Emit(thisEvent *WailsEvent)
-```
-
-Emit sends an event to all listeners
-
-
-
-### func \(\*EventProcessor\) [Off](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/events.go#L131)
-
-```go
-func (e *EventProcessor) Off(eventName string)
-```
-
-
-
-### func \(\*EventProcessor\) [OffAll](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/events.go#L135)
-
-```go
-func (e *EventProcessor) OffAll()
-```
-
-
-
-### func \(\*EventProcessor\) [On](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/events.go#L95)
-
-```go
-func (e *EventProcessor) On(eventName string, callback func(event *WailsEvent)) func()
-```
-
-On is the equivalent of Javascript's \`addEventListener\`
-
-
-
-### func \(\*EventProcessor\) [OnMultiple](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/events.go#L100)
-
-```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](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/events.go#L105)
-
-```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](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/events.go#L167)
-
-```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](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/dialogs.go#L165-L168)
-
-```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](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/systemtray.go#L12)
-
-```go
-type IconPosition int
-```
-
-
-
-## type [MacAppearanceType](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/options_mac.go#L119)
-
-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](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/options_mac.go#L6)
-
-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](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/options_application_mac.go#L16-L22)
-
-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](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/options_mac.go#L54-L69)
-
-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
- // ShowToolbarWhenFullscreen will keep the toolbar visible when the window is in fullscreen mode
- ShowToolbarWhenFullscreen bool
- // ToolbarStyle is the style of toolbar to use
- ToolbarStyle MacToolbarStyle
-}
-```
-
-
-
-## type [MacToolbarStyle](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/options_mac.go#L18)
-
-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](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/options_mac.go#L34-L51)
-
-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](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/menu.go#L7-L12)
-
-```go
-type Menu struct {
- // contains filtered or unexported fields
-}
-```
-
-
-
-### func [NewMenu](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/menu.go#L14)
-
-```go
-func NewMenu() *Menu
-```
-
-
-
-### func \(\*Menu\) [Add](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/menu.go#L18)
-
-```go
-func (m *Menu) Add(label string) *MenuItem
-```
-
-
-
-### func \(\*Menu\) [AddCheckbox](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/menu.go#L29)
-
-```go
-func (m *Menu) AddCheckbox(label string, enabled bool) *MenuItem
-```
-
-
-
-### func \(\*Menu\) [AddRadio](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/menu.go#L35)
-
-```go
-func (m *Menu) AddRadio(label string, enabled bool) *MenuItem
-```
-
-
-
-### func \(\*Menu\) [AddRole](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/menu.go#L55)
-
-```go
-func (m *Menu) AddRole(role Role) *Menu
-```
-
-
-
-### func \(\*Menu\) [AddSeparator](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/menu.go#L24)
-
-```go
-func (m *Menu) AddSeparator()
-```
-
-
-
-### func \(\*Menu\) [AddSubmenu](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/menu.go#L49)
-
-```go
-func (m *Menu) AddSubmenu(s string) *Menu
-```
-
-
-
-### func \(\*Menu\) [SetLabel](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/menu.go#L88)
-
-```go
-func (m *Menu) SetLabel(label string)
-```
-
-
-
-### func \(\*Menu\) [Update](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/menu.go#L41)
-
-```go
-func (m *Menu) Update()
-```
-
-
-
-## type [MenuItem](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/menuitem.go#L45-L61)
-
-```go
-type MenuItem struct {
- // contains filtered or unexported fields
-}
-```
-
-
-
-### func \(\*MenuItem\) [Checked](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/menuitem.go#L273)
-
-```go
-func (m *MenuItem) Checked() bool
-```
-
-
-
-### func \(\*MenuItem\) [Enabled](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/menuitem.go#L310)
-
-```go
-func (m *MenuItem) Enabled() bool
-```
-
-
-
-### func \(\*MenuItem\) [Hidden](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/menuitem.go#L293)
-
-```go
-func (m *MenuItem) Hidden() bool
-```
-
-
-
-### func \(\*MenuItem\) [IsCheckbox](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/menuitem.go#L285)
-
-```go
-func (m *MenuItem) IsCheckbox() bool
-```
-
-
-
-### func \(\*MenuItem\) [IsRadio](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/menuitem.go#L289)
-
-```go
-func (m *MenuItem) IsRadio() bool
-```
-
-
-
-### func \(\*MenuItem\) [IsSeparator](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/menuitem.go#L277)
-
-```go
-func (m *MenuItem) IsSeparator() bool
-```
-
-
-
-### func \(\*MenuItem\) [IsSubmenu](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/menuitem.go#L281)
-
-```go
-func (m *MenuItem) IsSubmenu() bool
-```
-
-
-
-### func \(\*MenuItem\) [Label](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/menuitem.go#L302)
-
-```go
-func (m *MenuItem) Label() string
-```
-
-
-
-### func \(\*MenuItem\) [OnClick](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/menuitem.go#L297)
-
-```go
-func (m *MenuItem) OnClick(f func(*Context)) *MenuItem
-```
-
-
-
-### func \(\*MenuItem\) [SetAccelerator](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/menuitem.go#L220)
-
-```go
-func (m *MenuItem) SetAccelerator(shortcut string) *MenuItem
-```
-
-
-
-### func \(\*MenuItem\) [SetChecked](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/menuitem.go#L257)
-
-```go
-func (m *MenuItem) SetChecked(checked bool) *MenuItem
-```
-
-
-
-### func \(\*MenuItem\) [SetEnabled](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/menuitem.go#L249)
-
-```go
-func (m *MenuItem) SetEnabled(enabled bool) *MenuItem
-```
-
-
-
-### func \(\*MenuItem\) [SetHidden](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/menuitem.go#L265)
-
-```go
-func (m *MenuItem) SetHidden(hidden bool) *MenuItem
-```
-
-
-
-### func \(\*MenuItem\) [SetLabel](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/menuitem.go#L241)
-
-```go
-func (m *MenuItem) SetLabel(s string) *MenuItem
-```
-
-
-
-### func \(\*MenuItem\) [SetTooltip](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/menuitem.go#L233)
-
-```go
-func (m *MenuItem) SetTooltip(s string) *MenuItem
-```
-
-
-
-### func \(\*MenuItem\) [Tooltip](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/menuitem.go#L306)
-
-```go
-func (m *MenuItem) Tooltip() string
-```
-
-
-
-## type [MessageDialog](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/dialogs.go#L82-L87)
-
-```go
-type MessageDialog struct {
- MessageDialogOptions
- // contains filtered or unexported fields
-}
-```
-
-
-
-### func [ErrorDialog](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/application.go#L615)
-
-```go
-func ErrorDialog() *MessageDialog
-```
-
-
-
-### func [InfoDialog](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/application.go#L603)
-
-```go
-func InfoDialog() *MessageDialog
-```
-
-
-
-### func [OpenDirectoryDialog](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/application.go#L619)
-
-```go
-func OpenDirectoryDialog() *MessageDialog
-```
-
-
-
-### func [QuestionDialog](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/application.go#L607)
-
-```go
-func QuestionDialog() *MessageDialog
-```
-
-
-
-### func [WarningDialog](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/application.go#L611)
-
-```go
-func WarningDialog() *MessageDialog
-```
-
-
-
-### func \(\*MessageDialog\) [AddButton](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/dialogs.go#L122)
-
-```go
-func (d *MessageDialog) AddButton(s string) *Button
-```
-
-
-
-### func \(\*MessageDialog\) [AddButtons](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/dialogs.go#L130)
-
-```go
-func (d *MessageDialog) AddButtons(buttons []*Button) *MessageDialog
-```
-
-
-
-### func \(\*MessageDialog\) [AttachToWindow](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/dialogs.go#L135)
-
-```go
-func (d *MessageDialog) AttachToWindow(window *WebviewWindow) *MessageDialog
-```
-
-
-
-### func \(\*MessageDialog\) [SetCancelButton](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/dialogs.go#L148)
-
-```go
-func (d *MessageDialog) SetCancelButton(button *Button) *MessageDialog
-```
-
-
-
-### func \(\*MessageDialog\) [SetDefaultButton](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/dialogs.go#L140)
-
-```go
-func (d *MessageDialog) SetDefaultButton(button *Button) *MessageDialog
-```
-
-
-
-### func \(\*MessageDialog\) [SetIcon](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/dialogs.go#L117)
-
-```go
-func (d *MessageDialog) SetIcon(icon []byte) *MessageDialog
-```
-
-
-
-### func \(\*MessageDialog\) [SetMessage](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/dialogs.go#L156)
-
-```go
-func (d *MessageDialog) SetMessage(message string) *MessageDialog
-```
-
-
-
-### func \(\*MessageDialog\) [SetTitle](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/dialogs.go#L105)
-
-```go
-func (d *MessageDialog) SetTitle(title string) *MessageDialog
-```
-
-
-
-### func \(\*MessageDialog\) [Show](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/dialogs.go#L110)
-
-```go
-func (d *MessageDialog) Show()
-```
-
-
-
-## type [MessageDialogOptions](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/dialogs.go#L73-L80)
-
-```go
-type MessageDialogOptions struct {
- DialogType DialogType
- Title string
- Message string
- Buttons []*Button
- Icon []byte
- // contains filtered or unexported fields
-}
-```
-
-
-
-## type [MessageProcessor](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/messageprocessor.go#L26-L29)
-
-```go
-type MessageProcessor struct {
- // contains filtered or unexported fields
-}
-```
-
-
-
-### func [NewMessageProcessor](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/messageprocessor.go#L31)
-
-```go
-func NewMessageProcessor(logger *slog.Logger) *MessageProcessor
-```
-
-
-
-### func \(\*MessageProcessor\) [Error](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/messageprocessor.go#L147)
-
-```go
-func (m *MessageProcessor) Error(message string, args ...any)
-```
-
-
-
-### func \(\*MessageProcessor\) [HandleRuntimeCall](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/messageprocessor.go#L65)
-
-```go
-func (m *MessageProcessor) HandleRuntimeCall(rw http.ResponseWriter, r *http.Request)
-```
-
-
-
-### func \(\*MessageProcessor\) [HandleRuntimeCallWithIDs](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/messageprocessor.go#L104)
-
-```go
-func (m *MessageProcessor) HandleRuntimeCallWithIDs(rw http.ResponseWriter, r *http.Request)
-```
-
-
-
-### func \(\*MessageProcessor\) [Info](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/messageprocessor.go#L151)
-
-```go
-func (m *MessageProcessor) Info(message string, args ...any)
-```
-
-
-
-## type [Middleware](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/options_application.go#L92)
-
-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](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/options_application.go#L95)
-
-```go
-func ChainMiddleware(middleware ...Middleware) Middleware
-```
-
-ChainMiddleware allows chaining multiple middlewares to one middleware.
-
-
-
-## type [OpenFileDialogOptions](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/dialogs.go#L170-L188)
-
-```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](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/dialogs.go#L190-L211)
-
-```go
-type OpenFileDialogStruct struct {
- // contains filtered or unexported fields
-}
-```
-
-
-
-### func [OpenFileDialog](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/application.go#L623)
-
-```go
-func OpenFileDialog() *OpenFileDialogStruct
-```
-
-
-
-### func [OpenFileDialogWithOptions](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/application.go#L661)
-
-```go
-func OpenFileDialogWithOptions(options *OpenFileDialogOptions) *OpenFileDialogStruct
-```
-
-
-
-### func \(\*OpenFileDialogStruct\) [AddFilter](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/dialogs.go#L279)
-
-```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](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/dialogs.go#L228)
-
-```go
-func (d *OpenFileDialogStruct) AllowsOtherFileTypes(allowsOtherFileTypes bool) *OpenFileDialogStruct
-```
-
-
-
-### func \(\*OpenFileDialogStruct\) [AttachToWindow](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/dialogs.go#L248)
-
-```go
-func (d *OpenFileDialogStruct) AttachToWindow(window *WebviewWindow) *OpenFileDialogStruct
-```
-
-
-
-### func \(\*OpenFileDialogStruct\) [CanChooseDirectories](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/dialogs.go#L218)
-
-```go
-func (d *OpenFileDialogStruct) CanChooseDirectories(canChooseDirectories bool) *OpenFileDialogStruct
-```
-
-
-
-### func \(\*OpenFileDialogStruct\) [CanChooseFiles](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/dialogs.go#L213)
-
-```go
-func (d *OpenFileDialogStruct) CanChooseFiles(canChooseFiles bool) *OpenFileDialogStruct
-```
-
-
-
-### func \(\*OpenFileDialogStruct\) [CanCreateDirectories](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/dialogs.go#L223)
-
-```go
-func (d *OpenFileDialogStruct) CanCreateDirectories(canCreateDirectories bool) *OpenFileDialogStruct
-```
-
-
-
-### func \(\*OpenFileDialogStruct\) [CanSelectHiddenExtension](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/dialogs.go#L310)
-
-```go
-func (d *OpenFileDialogStruct) CanSelectHiddenExtension(canSelectHiddenExtension bool) *OpenFileDialogStruct
-```
-
-
-
-### func \(\*OpenFileDialogStruct\) [HideExtension](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/dialogs.go#L238)
-
-```go
-func (d *OpenFileDialogStruct) HideExtension(hideExtension bool) *OpenFileDialogStruct
-```
-
-
-
-### func \(\*OpenFileDialogStruct\) [PromptForMultipleSelection](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/dialogs.go#L287)
-
-```go
-func (d *OpenFileDialogStruct) PromptForMultipleSelection() ([]string, error)
-```
-
-
-
-### func \(\*OpenFileDialogStruct\) [PromptForSingleSelection](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/dialogs.go#L263)
-
-```go
-func (d *OpenFileDialogStruct) PromptForSingleSelection() (string, error)
-```
-
-
-
-### func \(\*OpenFileDialogStruct\) [ResolvesAliases](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/dialogs.go#L253)
-
-```go
-func (d *OpenFileDialogStruct) ResolvesAliases(resolvesAliases bool) *OpenFileDialogStruct
-```
-
-
-
-### func \(\*OpenFileDialogStruct\) [SetButtonText](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/dialogs.go#L300)
-
-```go
-func (d *OpenFileDialogStruct) SetButtonText(text string) *OpenFileDialogStruct
-```
-
-
-
-### func \(\*OpenFileDialogStruct\) [SetDirectory](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/dialogs.go#L305)
-
-```go
-func (d *OpenFileDialogStruct) SetDirectory(directory string) *OpenFileDialogStruct
-```
-
-
-
-### func \(\*OpenFileDialogStruct\) [SetMessage](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/dialogs.go#L295)
-
-```go
-func (d *OpenFileDialogStruct) SetMessage(message string) *OpenFileDialogStruct
-```
-
-
-
-### func \(\*OpenFileDialogStruct\) [SetOptions](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/dialogs.go#L315)
-
-```go
-func (d *OpenFileDialogStruct) SetOptions(options *OpenFileDialogOptions)
-```
-
-
-
-### func \(\*OpenFileDialogStruct\) [SetTitle](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/dialogs.go#L258)
-
-```go
-func (d *OpenFileDialogStruct) SetTitle(title string) *OpenFileDialogStruct
-```
-
-
-
-### func \(\*OpenFileDialogStruct\) [ShowHiddenFiles](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/dialogs.go#L233)
-
-```go
-func (d *OpenFileDialogStruct) ShowHiddenFiles(showHiddenFiles bool) *OpenFileDialogStruct
-```
-
-
-
-### func \(\*OpenFileDialogStruct\) [TreatsFilePackagesAsDirectories](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/dialogs.go#L243)
-
-```go
-func (d *OpenFileDialogStruct) TreatsFilePackagesAsDirectories(treatsFilePackagesAsDirectories bool) *OpenFileDialogStruct
-```
-
-
-
-## type [Options](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/options_application.go#L9-L54)
-
-```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](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/bindings.go#L38-L42)
-
-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](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/bindings.go#L58)
-
-```go
-func (p *Parameter) IsError() bool
-```
-
-IsError returns true if the parameter type is an error
-
-
-
-### func \(\*Parameter\) [IsType](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/bindings.go#L53)
-
-```go
-func (p *Parameter) IsType(typename string) bool
-```
-
-IsType returns true if the given
-
-
-
-## type [Plugin](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/plugins.go#L5-L11)
-
-```go
-type Plugin interface {
- Name() string
- Init() error
- Shutdown()
- CallableByJS() []string
- InjectJS() string
-}
-```
-
-
-
-## type [PluginCallOptions](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/bindings.go#L25-L28)
-
-```go
-type PluginCallOptions struct {
- Name string `json:"name"`
- Args []any `json:"args"`
-}
-```
-
-
-
-## type [PluginManager](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/plugins.go#L13-L17)
-
-```go
-type PluginManager struct {
- // contains filtered or unexported fields
-}
-```
-
-
-
-### func [NewPluginManager](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/plugins.go#L19)
-
-```go
-func NewPluginManager(plugins map[string]Plugin, assetServer *assetserver.AssetServer) *PluginManager
-```
-
-
-
-### func \(\*PluginManager\) [Init](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/plugins.go#L27)
-
-```go
-func (p *PluginManager) Init() error
-```
-
-
-
-### func \(\*PluginManager\) [Shutdown](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/plugins.go#L45)
-
-```go
-func (p *PluginManager) Shutdown()
-```
-
-
-
-## type [PositionOptions](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/systemtray.go#L41-L43)
-
-```go
-type PositionOptions struct {
- Buffer int
-}
-```
-
-
-
-## type [QueryParams](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/messageprocessor_params.go#L9)
-
-```go
-type QueryParams map[string][]string
-```
-
-
-
-### func \(QueryParams\) [Args](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/messageprocessor_params.go#L189)
-
-```go
-func (qp QueryParams) Args() (*Args, error)
-```
-
-
-
-### func \(QueryParams\) [Bool](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/messageprocessor_params.go#L77)
-
-```go
-func (qp QueryParams) Bool(key string) *bool
-```
-
-
-
-### func \(QueryParams\) [Float64](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/messageprocessor_params.go#L89)
-
-```go
-func (qp QueryParams) Float64(key string) *float64
-```
-
-
-
-### func \(QueryParams\) [Int](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/messageprocessor_params.go#L22)
-
-```go
-func (qp QueryParams) Int(key string) *int
-```
-
-
-
-### func \(QueryParams\) [String](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/messageprocessor_params.go#L11)
-
-```go
-func (qp QueryParams) String(key string) *string
-```
-
-
-
-### func \(QueryParams\) [ToStruct](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/messageprocessor_params.go#L101)
-
-```go
-func (qp QueryParams) ToStruct(str any) error
-```
-
-
-
-### func \(QueryParams\) [UInt](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/messageprocessor_params.go#L55)
-
-```go
-func (qp QueryParams) UInt(key string) *uint
-```
-
-
-
-### func \(QueryParams\) [UInt8](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/messageprocessor_params.go#L34)
-
-```go
-func (qp QueryParams) UInt8(key string) *uint8
-```
-
-
-
-## type [RGBA](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/options_webview_window.go#L133-L135)
-
-```go
-type RGBA struct {
- Red, Green, Blue, Alpha uint8
-}
-```
-
-
-
-## type [RadioGroup](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/popupmenu_windows.go#L17)
-
-```go
-type RadioGroup []*RadioGroupMember
-```
-
-
-
-### func \(\*RadioGroup\) [Add](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/popupmenu_windows.go#L19)
-
-```go
-func (r *RadioGroup) Add(id int, item *MenuItem)
-```
-
-
-
-### func \(\*RadioGroup\) [Bounds](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/popupmenu_windows.go#L26)
-
-```go
-func (r *RadioGroup) Bounds() (int, int)
-```
-
-
-
-### func \(\*RadioGroup\) [MenuID](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/popupmenu_windows.go#L31)
-
-```go
-func (r *RadioGroup) MenuID(item *MenuItem) int
-```
-
-
-
-## type [RadioGroupMember](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/popupmenu_windows.go#L12-L15)
-
-```go
-type RadioGroupMember struct {
- ID int
- MenuItem *MenuItem
-}
-```
-
-
-
-## type [Rect](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/screen.go#L16-L21)
-
-```go
-type Rect struct {
- X int
- Y int
- Width int
- Height int
-}
-```
-
-
-
-## type [Role](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/roles.go#L9)
-
-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](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/dialogs.go#L351-L365)
-
-```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](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/dialogs.go#L367-L385)
-
-```go
-type SaveFileDialogStruct struct {
- // contains filtered or unexported fields
-}
-```
-
-
-
-### func [SaveFileDialog](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/application.go#L627)
-
-```go
-func SaveFileDialog() *SaveFileDialogStruct
-```
-
-
-
-### func [SaveFileDialogWithOptions](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/application.go#L667)
-
-```go
-func SaveFileDialogWithOptions(s *SaveFileDialogOptions) *SaveFileDialogStruct
-```
-
-
-
-### func \(\*SaveFileDialogStruct\) [AddFilter](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/dialogs.go#L409)
-
-```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](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/dialogs.go#L464)
-
-```go
-func (d *SaveFileDialogStruct) AllowsOtherFileTypes(allowOtherFileTypes bool) *SaveFileDialogStruct
-```
-
-
-
-### func \(\*SaveFileDialogStruct\) [AttachToWindow](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/dialogs.go#L442)
-
-```go
-func (d *SaveFileDialogStruct) AttachToWindow(window *WebviewWindow) *SaveFileDialogStruct
-```
-
-
-
-### func \(\*SaveFileDialogStruct\) [CanCreateDirectories](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/dialogs.go#L417)
-
-```go
-func (d *SaveFileDialogStruct) CanCreateDirectories(canCreateDirectories bool) *SaveFileDialogStruct
-```
-
-
-
-### func \(\*SaveFileDialogStruct\) [CanSelectHiddenExtension](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/dialogs.go#L422)
-
-```go
-func (d *SaveFileDialogStruct) CanSelectHiddenExtension(canSelectHiddenExtension bool) *SaveFileDialogStruct
-```
-
-
-
-### func \(\*SaveFileDialogStruct\) [HideExtension](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/dialogs.go#L469)
-
-```go
-func (d *SaveFileDialogStruct) HideExtension(hideExtension bool) *SaveFileDialogStruct
-```
-
-
-
-### func \(\*SaveFileDialogStruct\) [PromptForSingleSelection](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/dialogs.go#L447)
-
-```go
-func (d *SaveFileDialogStruct) PromptForSingleSelection() (string, error)
-```
-
-
-
-### func \(\*SaveFileDialogStruct\) [SetButtonText](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/dialogs.go#L454)
-
-```go
-func (d *SaveFileDialogStruct) SetButtonText(text string) *SaveFileDialogStruct
-```
-
-
-
-### func \(\*SaveFileDialogStruct\) [SetDirectory](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/dialogs.go#L437)
-
-```go
-func (d *SaveFileDialogStruct) SetDirectory(directory string) *SaveFileDialogStruct
-```
-
-
-
-### func \(\*SaveFileDialogStruct\) [SetFilename](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/dialogs.go#L459)
-
-```go
-func (d *SaveFileDialogStruct) SetFilename(filename string) *SaveFileDialogStruct
-```
-
-
-
-### func \(\*SaveFileDialogStruct\) [SetMessage](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/dialogs.go#L432)
-
-```go
-func (d *SaveFileDialogStruct) SetMessage(message string) *SaveFileDialogStruct
-```
-
-
-
-### func \(\*SaveFileDialogStruct\) [SetOptions](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/dialogs.go#L391)
-
-```go
-func (d *SaveFileDialogStruct) SetOptions(options *SaveFileDialogOptions)
-```
-
-
-
-### func \(\*SaveFileDialogStruct\) [ShowHiddenFiles](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/dialogs.go#L427)
-
-```go
-func (d *SaveFileDialogStruct) ShowHiddenFiles(showHiddenFiles bool) *SaveFileDialogStruct
-```
-
-
-
-### func \(\*SaveFileDialogStruct\) [TreatsFilePackagesAsDirectories](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/dialogs.go#L474)
-
-```go
-func (d *SaveFileDialogStruct) TreatsFilePackagesAsDirectories(treatsFilePackagesAsDirectories bool) *SaveFileDialogStruct
-```
-
-
-
-## type [Screen](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/screen.go#L3-L14)
-
-```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](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/screen.go#L23-L26)
-
-```go
-type Size struct {
- Width int
- Height int
-}
-```
-
-
-
-## type [SystemTray](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/systemtray.go#L45-L66)
-
-```go
-type SystemTray struct {
- // contains filtered or unexported fields
-}
-```
-
-
-
-### func \(\*SystemTray\) [AttachWindow](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/systemtray.go#L247)
-
-```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](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/systemtray.go#L187)
-
-```go
-func (s *SystemTray) Destroy()
-```
-
-
-
-### func \(\*SystemTray\) [Label](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/systemtray.go#L93)
-
-```go
-func (s *SystemTray) Label() string
-```
-
-
-
-### func \(\*SystemTray\) [OnClick](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/systemtray.go#L194)
-
-```go
-func (s *SystemTray) OnClick(handler func()) *SystemTray
-```
-
-
-
-### func \(\*SystemTray\) [OnDoubleClick](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/systemtray.go#L204)
-
-```go
-func (s *SystemTray) OnDoubleClick(handler func()) *SystemTray
-```
-
-
-
-### func \(\*SystemTray\) [OnMouseEnter](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/systemtray.go#L214)
-
-```go
-func (s *SystemTray) OnMouseEnter(handler func()) *SystemTray
-```
-
-
-
-### func \(\*SystemTray\) [OnMouseLeave](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/systemtray.go#L219)
-
-```go
-func (s *SystemTray) OnMouseLeave(handler func()) *SystemTray
-```
-
-
-
-### func \(\*SystemTray\) [OnRightClick](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/systemtray.go#L199)
-
-```go
-func (s *SystemTray) OnRightClick(handler func()) *SystemTray
-```
-
-
-
-### func \(\*SystemTray\) [OnRightDoubleClick](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/systemtray.go#L209)
-
-```go
-func (s *SystemTray) OnRightDoubleClick(handler func()) *SystemTray
-```
-
-
-
-### func \(\*SystemTray\) [OpenMenu](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/systemtray.go#L290)
-
-```go
-func (s *SystemTray) OpenMenu()
-```
-
-
-
-### func \(\*SystemTray\) [PositionWindow](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/systemtray.go#L122)
-
-```go
-func (s *SystemTray) PositionWindow(window *WebviewWindow, offset int) error
-```
-
-
-
-### func \(\*SystemTray\) [SetDarkModeIcon](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/systemtray.go#L142)
-
-```go
-func (s *SystemTray) SetDarkModeIcon(icon []byte) *SystemTray
-```
-
-
-
-### func \(\*SystemTray\) [SetIcon](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/systemtray.go#L131)
-
-```go
-func (s *SystemTray) SetIcon(icon []byte) *SystemTray
-```
-
-
-
-### func \(\*SystemTray\) [SetIconPosition](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/systemtray.go#L164)
-
-```go
-func (s *SystemTray) SetIconPosition(iconPosition int) *SystemTray
-```
-
-
-
-### func \(\*SystemTray\) [SetLabel](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/systemtray.go#L83)
-
-```go
-func (s *SystemTray) SetLabel(label string)
-```
-
-
-
-### func \(\*SystemTray\) [SetMenu](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/systemtray.go#L153)
-
-```go
-func (s *SystemTray) SetMenu(menu *Menu) *SystemTray
-```
-
-
-
-### func \(\*SystemTray\) [SetTemplateIcon](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/systemtray.go#L175)
-
-```go
-func (s *SystemTray) SetTemplateIcon(icon []byte) *SystemTray
-```
-
-
-
-### func \(\*SystemTray\) [WindowDebounce](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/systemtray.go#L262)
-
-```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](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/systemtray.go#L253)
-
-```go
-func (s *SystemTray) WindowOffset(offset int) *SystemTray
-```
-
-WindowOffset sets the gap in pixels between the system tray and the window
-
-
-
-## type [Theme](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/options_webview_window_win.go#L79)
-
-```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](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/options_webview_window_win.go#L92-L105)
-
-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](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/events.go#L42-L47)
-
-```go
-type WailsEvent struct {
- Name string `json:"name"`
- Data any `json:"data"`
- Sender string `json:"sender"`
- Cancelled bool
-}
-```
-
-
-
-### func \(\*WailsEvent\) [Cancel](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/events.go#L49)
-
-```go
-func (e *WailsEvent) Cancel()
-```
-
-
-
-## type [WebviewWindow](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/webview_window.go#L97-L116)
-
-```go
-type WebviewWindow struct {
- // contains filtered or unexported fields
-}
-```
-
-
-
-### func \(\*WebviewWindow\) [AbsolutePosition](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/webview_window.go#L679)
-
-```go
-func (w *WebviewWindow) AbsolutePosition() (int, int)
-```
-
-AbsolutePosition returns the absolute position of the window to the screen
-
-
-
-### func \(\*WebviewWindow\) [Center](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/webview_window.go#L580)
-
-```go
-func (w *WebviewWindow) Center()
-```
-
-Center centers the window on the screen
-
-
-
-### func \(\*WebviewWindow\) [Close](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/webview_window.go#L770)
-
-```go
-func (w *WebviewWindow) Close()
-```
-
-Close closes the window
-
-
-
-### func \(\*WebviewWindow\) [Destroy](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/webview_window.go#L690)
-
-```go
-func (w *WebviewWindow) Destroy()
-```
-
-
-
-### func \(\*WebviewWindow\) [ExecJS](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/webview_window.go#L434)
-
-```go
-func (w *WebviewWindow) ExecJS(js string)
-```
-
-ExecJS executes the given javascript in the context of the window.
-
-
-
-### func \(\*WebviewWindow\) [Flash](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/webview_window.go#L465)
-
-```go
-func (w *WebviewWindow) Flash(enabled bool)
-```
-
-Flash flashes the window's taskbar button/icon. Windows only.
-
-
-
-### func \(\*WebviewWindow\) [Focus](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/webview_window.go#L1004)
-
-```go
-func (w *WebviewWindow) Focus()
-```
-
-
-
-### func \(\*WebviewWindow\) [ForceReload](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/webview_window.go#L712)
-
-```go
-func (w *WebviewWindow) ForceReload()
-```
-
-ForceReload forces the window to reload the page assets
-
-
-
-### func \(\*WebviewWindow\) [Fullscreen](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/webview_window.go#L442)
-
-```go
-func (w *WebviewWindow) Fullscreen() *WebviewWindow
-```
-
-Fullscreen sets the window to fullscreen mode. Min/Max size constraints are
-disabled.
-
-
-
-### func \(\*WebviewWindow\) [GetScreen](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/webview_window.go#L916)
-
-```go
-func (w *WebviewWindow) GetScreen() (*Screen, error)
-```
-
-GetScreen returns the screen that the window is on
-
-
-
-### func \(\*WebviewWindow\) [GetZoom](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/webview_window.go#L346)
-
-```go
-func (w *WebviewWindow) GetZoom() float64
-```
-
-GetZoom returns the current zoom level of the window.
-
-
-
-### func \(\*WebviewWindow\) [Height](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/webview_window.go#L659)
-
-```go
-func (w *WebviewWindow) Height() int
-```
-
-Height returns the height of the window
-
-
-
-### func \(\*WebviewWindow\) [Hide](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/webview_window.go#L315)
-
-```go
-func (w *WebviewWindow) Hide() *WebviewWindow
-```
-
-Hide hides the window.
-
-
-
-### func \(\*WebviewWindow\) [IsFocused](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/webview_window.go#L511)
-
-```go
-func (w *WebviewWindow) IsFocused() bool
-```
-
-IsFocused returns true if the window is currently focused
-
-
-
-### func \(\*WebviewWindow\) [IsFullscreen](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/webview_window.go#L519)
-
-```go
-func (w *WebviewWindow) IsFullscreen() bool
-```
-
-IsFullscreen returns true if the window is fullscreen
-
-
-
-### func \(\*WebviewWindow\) [IsMaximised](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/webview_window.go#L491)
-
-```go
-func (w *WebviewWindow) IsMaximised() bool
-```
-
-IsMaximised returns true if the window is maximised
-
-
-
-### func \(\*WebviewWindow\) [IsMinimised](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/webview_window.go#L475)
-
-```go
-func (w *WebviewWindow) IsMinimised() bool
-```
-
-IsMinimised returns true if the window is minimised
-
-
-
-### func \(\*WebviewWindow\) [IsVisible](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/webview_window.go#L483)
-
-```go
-func (w *WebviewWindow) IsVisible() bool
-```
-
-IsVisible returns true if the window is visible
-
-
-
-### func \(\*WebviewWindow\) [Maximise](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/webview_window.go#L822)
-
-```go
-func (w *WebviewWindow) Maximise() *WebviewWindow
-```
-
-Maximise maximises the window. Min/Max size constraints are disabled.
-
-
-
-### func \(\*WebviewWindow\) [Minimise](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/webview_window.go#L809)
-
-```go
-func (w *WebviewWindow) Minimise() *WebviewWindow
-```
-
-Minimise minimises the window.
-
-
-
-### func \(\*WebviewWindow\) [Name](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/webview_window.go#L234)
-
-```go
-func (w *WebviewWindow) Name() string
-```
-
-Name returns the name of the window
-
-
-
-### func \(\*WebviewWindow\) [NativeWindowHandle](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/webview_window.go#L997)
-
-```go
-func (w *WebviewWindow) NativeWindowHandle() (uintptr, error)
-```
-
-NativeWindowHandle returns the platform native window handle for the window.
-
-
-
-### func \(\*WebviewWindow\) [On](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/webview_window.go#L589)
-
-```go
-func (w *WebviewWindow) On(eventType events.WindowEventType, callback func(event *WindowEvent)) func()
-```
-
-On registers a callback for the given window event
-
-
-
-### func \(\*WebviewWindow\) [Print](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/webview_window.go#L1027)
-
-```go
-func (w *WebviewWindow) Print() error
-```
-
-
-
-### func \(\*WebviewWindow\) [RegisterContextMenu](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/webview_window.go#L990)
-
-```go
-func (w *WebviewWindow) RegisterContextMenu(name string, menu *Menu)
-```
-
-RegisterContextMenu registers a context menu and assigns it the given name.
-
-
-
-### func \(\*WebviewWindow\) [RegisterHook](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/webview_window.go#L609)
-
-```go
-func (w *WebviewWindow) RegisterHook(eventType events.WindowEventType, callback func(event *WindowEvent)) func()
-```
-
-RegisterHook registers a hook for the given window event
-
-
-
-### func \(\*WebviewWindow\) [RelativePosition](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/webview_window.go#L667)
-
-```go
-func (w *WebviewWindow) RelativePosition() (int, int)
-```
-
-RelativePosition returns the relative position of the window to the screen
-
-
-
-### func \(\*WebviewWindow\) [Reload](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/webview_window.go#L704)
-
-```go
-func (w *WebviewWindow) Reload()
-```
-
-Reload reloads the page assets
-
-
-
-### func \(\*WebviewWindow\) [Resizable](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/webview_window.go#L365)
-
-```go
-func (w *WebviewWindow) Resizable() bool
-```
-
-Resizable returns true if the window is resizable.
-
-
-
-### func \(\*WebviewWindow\) [Restore](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/webview_window.go#L871)
-
-```go
-func (w *WebviewWindow) Restore()
-```
-
-Restore restores the window to its previous state if it was previously
-minimised, maximised or fullscreen.
-
-
-
-### func \(\*WebviewWindow\) [SetAbsolutePosition](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/webview_window.go#L1043)
-
-```go
-func (w *WebviewWindow) SetAbsolutePosition(x int, y int)
-```
-
-
-
-### func \(\*WebviewWindow\) [SetAlwaysOnTop](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/webview_window.go#L290)
-
-```go
-func (w *WebviewWindow) SetAlwaysOnTop(b bool) *WebviewWindow
-```
-
-SetAlwaysOnTop sets the window to be always on top.
-
-
-
-### func \(\*WebviewWindow\) [SetBackgroundColour](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/webview_window.go#L527)
-
-```go
-func (w *WebviewWindow) SetBackgroundColour(colour RGBA) *WebviewWindow
-```
-
-SetBackgroundColour sets the background colour of the window
-
-
-
-### func \(\*WebviewWindow\) [SetEnabled](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/webview_window.go#L1034)
-
-```go
-func (w *WebviewWindow) SetEnabled(enabled bool)
-```
-
-
-
-### func \(\*WebviewWindow\) [SetFrameless](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/webview_window.go#L924)
-
-```go
-func (w *WebviewWindow) SetFrameless(frameless bool) *WebviewWindow
-```
-
-SetFrameless removes the window frame and title bar
-
-
-
-### func \(\*WebviewWindow\) [SetFullscreenButtonEnabled](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/webview_window.go#L454)
-
-```go
-func (w *WebviewWindow) SetFullscreenButtonEnabled(enabled bool) *WebviewWindow
-```
-
-
-
-### func \(\*WebviewWindow\) [SetHTML](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/webview_window.go#L786)
-
-```go
-func (w *WebviewWindow) SetHTML(html string) *WebviewWindow
-```
-
-SetHTML sets the HTML of the window to the given html string.
-
-
-
-### func \(\*WebviewWindow\) [SetMaxSize](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/webview_window.go#L402)
-
-```go
-func (w *WebviewWindow) SetMaxSize(maxWidth, maxHeight int) *WebviewWindow
-```
-
-SetMaxSize sets the maximum size of the window.
-
-
-
-### func \(\*WebviewWindow\) [SetMinSize](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/webview_window.go#L370)
-
-```go
-func (w *WebviewWindow) SetMinSize(minWidth, minHeight int) *WebviewWindow
-```
-
-SetMinSize sets the minimum size of the window.
-
-
-
-### func \(\*WebviewWindow\) [SetRelativePosition](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/webview_window.go#L797)
-
-```go
-func (w *WebviewWindow) SetRelativePosition(x, y int) *WebviewWindow
-```
-
-SetRelativePosition sets the position of the window.
-
-
-
-### func \(\*WebviewWindow\) [SetResizable](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/webview_window.go#L354)
-
-```go
-func (w *WebviewWindow) SetResizable(b bool) *WebviewWindow
-```
-
-SetResizable sets whether the window is resizable.
-
-
-
-### func \(\*WebviewWindow\) [SetSize](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/webview_window.go#L239)
-
-```go
-func (w *WebviewWindow) SetSize(width, height int) *WebviewWindow
-```
-
-SetSize sets the size of the window
-
-
-
-### func \(\*WebviewWindow\) [SetTitle](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/webview_window.go#L223)
-
-```go
-func (w *WebviewWindow) SetTitle(title string) *WebviewWindow
-```
-
-SetTitle sets the title of the window
-
-
-
-### func \(\*WebviewWindow\) [SetURL](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/webview_window.go#L324)
-
-```go
-func (w *WebviewWindow) SetURL(s string) *WebviewWindow
-```
-
-
-
-### func \(\*WebviewWindow\) [SetZoom](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/webview_window.go#L335)
-
-```go
-func (w *WebviewWindow) SetZoom(magnification float64) *WebviewWindow
-```
-
-SetZoom sets the zoom level of the window.
-
-
-
-### func \(\*WebviewWindow\) [Show](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/webview_window.go#L301)
-
-```go
-func (w *WebviewWindow) Show() *WebviewWindow
-```
-
-Show shows the window.
-
-
-
-### func \(\*WebviewWindow\) [Size](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/webview_window.go#L499)
-
-```go
-func (w *WebviewWindow) Size() (int, int)
-```
-
-Size returns the size of the window
-
-
-
-### func \(\*WebviewWindow\) [ToggleDevTools](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/webview_window.go#L733)
-
-```go
-func (w *WebviewWindow) ToggleDevTools()
-```
-
-
-
-### func \(\*WebviewWindow\) [ToggleFullscreen](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/webview_window.go#L720)
-
-```go
-func (w *WebviewWindow) ToggleFullscreen()
-```
-
-ToggleFullscreen toggles the window between fullscreen and normal
-
-
-
-### func \(\*WebviewWindow\) [ToggleMaximise](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/webview_window.go#L720)
-
-```go
-func (w *WebviewWindow) ToggleMaximise()
-```
-
-ToggleMaximise toggles the window between maximised and normal
-
-
-
-### func \(\*WebviewWindow\) [UnFullscreen](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/webview_window.go#L859)
-
-```go
-func (w *WebviewWindow) UnFullscreen()
-```
-
-UnFullscreen un\-fullscreens the window.
-
-
-
-### func \(\*WebviewWindow\) [UnMaximise](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/webview_window.go#L847)
-
-```go
-func (w *WebviewWindow) UnMaximise()
-```
-
-UnMaximise un\-maximises the window.
-
-
-
-### func \(\*WebviewWindow\) [UnMinimise](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/webview_window.go#L836)
-
-```go
-func (w *WebviewWindow) UnMinimise()
-```
-
-UnMinimise un\-minimises the window. Min/Max size constraints are re\-enabled.
-
-
-
-### func \(\*WebviewWindow\) [Width](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/webview_window.go#L651)
-
-```go
-func (w *WebviewWindow) Width() int
-```
-
-Width returns the width of the window
-
-
-
-### func \(\*WebviewWindow\) [Zoom](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/webview_window.go#L777)
-
-```go
-func (w *WebviewWindow) Zoom()
-```
-
-
-
-### func \(\*WebviewWindow\) [ZoomIn](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/webview_window.go#L751)
-
-```go
-func (w *WebviewWindow) ZoomIn()
-```
-
-ZoomIn increases the zoom level of the webview content
-
-
-
-### func \(\*WebviewWindow\) [ZoomOut](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/webview_window.go#L761)
-
-```go
-func (w *WebviewWindow) ZoomOut()
-```
-
-ZoomOut decreases the zoom level of the webview content
-
-
-
-### func \(\*WebviewWindow\) [ZoomReset](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/webview_window.go#L741)
-
-```go
-func (w *WebviewWindow) ZoomReset() *WebviewWindow
-```
-
-ZoomReset resets the zoom level of the webview content to 100%
-
-
-
-## type [WebviewWindowOptions](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/options_webview_window.go#L12-L118)
-
-```go
-type WebviewWindowOptions struct {
- // Name is a unique identifier that can be given to a window.
- Name string
-
- // Title is the title of the window.
- Title string
-
- // Width is the starting width of the window.
- Width int
-
- // Height is the starting height of the window.
- Height int
-
- // AlwaysOnTop will make the window float above other windows.
- AlwaysOnTop bool
-
- // URL is the URL to load in the window.
- URL string
-
- // DisableResize will disable the ability to resize the window.
- DisableResize bool
-
- // Frameless will remove the window frame.
- Frameless bool
-
- // MinWidth is the minimum width of the window.
- MinWidth int
-
- // MinHeight is the minimum height of the window.
- MinHeight int
-
- // MaxWidth is the maximum width of the window.
- MaxWidth int
-
- // MaxHeight is the maximum height of the window.
- MaxHeight int
-
- // StartState indicates the state of the window when it is first shown.
- // Default: WindowStateNormal
- StartState WindowState
-
- // Centered will center the window on the screen.
- Centered bool
-
- // BackgroundType is the type of background to use for the window.
- // Default: BackgroundTypeSolid
- BackgroundType BackgroundType
-
- // BackgroundColour is the colour to use for the window background.
- BackgroundColour RGBA
-
- // HTML is the HTML to load in the window.
- HTML string
-
- // JS is the JavaScript to load in the window.
- JS string
-
- // CSS is the CSS to load in the window.
- CSS string
-
- // X is the starting X position of the window.
- X int
-
- // Y is the starting Y position of the window.
- Y int
-
- // TransparentTitlebar will make the titlebar transparent.
- // TODO: Move to mac window options
- FullscreenButtonEnabled bool
-
- // Hidden will hide the window when it is first created.
- Hidden bool
-
- // Zoom is the zoom level of the window.
- Zoom float64
-
- // ZoomControlEnabled will enable the zoom control.
- ZoomControlEnabled bool
-
- // EnableDragAndDrop will enable drag and drop.
- EnableDragAndDrop bool
-
- // OpenInspectorOnStartup will open the inspector when the window is first shown.
- OpenInspectorOnStartup bool
-
- // Mac options
- Mac MacWindow
-
- // Windows options
- Windows WindowsWindow
-
- // Focused indicates the window should be focused when initially shown
- Focused bool
-
- // ShouldClose is called when the window is about to close.
- // Return true to allow the window to close, or false to prevent it from closing.
- ShouldClose func(window *WebviewWindow) bool
-
- // If true, the window's devtools will be available (default true in builds without the `production` build tag)
- DevToolsEnabled bool
-
- // If true, the window's default context menu will be disabled (default false)
- DefaultContextMenuDisabled bool
-
- // KeyBindings is a map of key bindings to functions
- KeyBindings map[string]func(window *WebviewWindow)
-}
-```
-
-
-
-## type [Win32Menu](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/popupmenu_windows.go#L40-L51)
-
-```go
-type Win32Menu struct {
- // contains filtered or unexported fields
-}
-```
-
-
-
-### func [NewApplicationMenu](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/popupmenu_windows.go#L143)
-
-```go
-func NewApplicationMenu(parent w32.HWND, inputMenu *Menu) *Win32Menu
-```
-
-
-
-### func [NewPopupMenu](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/popupmenu_windows.go#L132)
-
-```go
-func NewPopupMenu(parent w32.HWND, inputMenu *Menu) *Win32Menu
-```
-
-
-
-### func \(\*Win32Menu\) [Destroy](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/popupmenu_windows.go#L200)
-
-```go
-func (p *Win32Menu) Destroy()
-```
-
-
-
-### func \(\*Win32Menu\) [OnMenuClose](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/popupmenu_windows.go#L241)
-
-```go
-func (p *Win32Menu) OnMenuClose(fn func())
-```
-
-
-
-### func \(\*Win32Menu\) [OnMenuOpen](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/popupmenu_windows.go#L237)
-
-```go
-func (p *Win32Menu) OnMenuOpen(fn func())
-```
-
-
-
-### func \(\*Win32Menu\) [ProcessCommand](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/popupmenu_windows.go#L185)
-
-```go
-func (p *Win32Menu) ProcessCommand(cmdMsgID int) bool
-```
-
-
-
-### func \(\*Win32Menu\) [ShowAt](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/popupmenu_windows.go#L154)
-
-```go
-func (p *Win32Menu) ShowAt(x int, y int)
-```
-
-
-
-### func \(\*Win32Menu\) [ShowAtCursor](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/popupmenu_windows.go#L176)
-
-```go
-func (p *Win32Menu) ShowAtCursor()
-```
-
-
-
-### func \(\*Win32Menu\) [Update](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/popupmenu_windows.go#L124)
-
-```go
-func (p *Win32Menu) Update()
-```
-
-
-
-### func \(\*Win32Menu\) [UpdateMenuItem](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/popupmenu_windows.go#L204)
-
-```go
-func (p *Win32Menu) UpdateMenuItem(item *MenuItem)
-```
-
-
-
-## type [WindowAttachConfig](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/systemtray.go#L224-L243)
-
-```go
-type WindowAttachConfig struct {
- // Window is the window to attach to the system tray. If it's null, the request to attach will be ignored.
- Window *WebviewWindow
-
- // Offset indicates the gap in pixels between the system tray and the window
- Offset int
-
- // Debounce is used by Windows to indicate how long to wait before responding to a mouse
- // up event on the notification icon. See https://stackoverflow.com/questions/4585283/alternate-showing-hiding-window-when-notify-icon-is-clicked
- Debounce time.Duration
- // contains filtered or unexported fields
-}
-```
-
-
-
-## type [WindowEvent](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/webview_window.go#L76-L79)
-
-```go
-type WindowEvent struct {
- Cancelled bool
- // contains filtered or unexported fields
-}
-```
-
-
-
-### func [NewWindowEvent](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/webview_window.go#L85)
-
-```go
-func NewWindowEvent() *WindowEvent
-```
-
-
-
-### func \(\*WindowEvent\) [Cancel](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/webview_window.go#L89)
-
-```go
-func (w *WindowEvent) Cancel()
-```
-
-
-
-### func \(\*WindowEvent\) [Context](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/webview_window.go#L81)
-
-```go
-func (w *WindowEvent) Context() *WindowEventContext
-```
-
-
-
-## type [WindowEventContext](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/context_window_event.go#L10-L13)
-
-```go
-type WindowEventContext struct {
- // contains filtered or unexported fields
-}
-```
-
-
-
-### func \(WindowEventContext\) [DroppedFiles](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/context_window_event.go#L15)
-
-```go
-func (c WindowEventContext) DroppedFiles() []string
-```
-
-
-
-## type [WindowEventListener](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/webview_window.go#L93-L95)
-
-```go
-type WindowEventListener struct {
- // contains filtered or unexported fields
-}
-```
-
-
-
-## type [WindowState](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/options_webview_window.go#L3)
-
-```go
-type WindowState int
-```
-
-
-
-```go
-const (
- WindowStateNormal WindowState = iota
- WindowStateMinimised
- WindowStateMaximised
- WindowStateFullscreen
-)
-```
-
-
-
-## type [WindowsOptions](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/options_application_win.go#L4-L21)
-
-WindowsOptions contains options for Windows applications.
-
-```go
-type WindowsOptions struct {
-
- // WndProcInterceptor is a function that will be called for every message sent in the application.
- // Use this to hook into the main message loop. This is useful for handling custom window messages.
- // If `shouldReturn` is `true` then `returnCode` will be returned by the main message loop.
- // If `shouldReturn` is `false` then returnCode will be ignored and the message will be processed by the main message loop.
- WndProcInterceptor func(hwnd uintptr, msg uint32, wParam, lParam uintptr) (returnCode uintptr, shouldReturn bool)
-
- // DisableQuitOnLastWindowClosed disables the auto quit of the application if the last window has been closed.
- DisableQuitOnLastWindowClosed bool
-
- // Path where the WebView2 stores the user data. If empty %APPDATA%\[BinaryName.exe] will be used.
- // If the path is not valid, a messagebox will be displayed with the error and the app will exit with error code.
- WebviewUserDataPath string
-
- // Path to the directory with WebView2 executables. If empty WebView2 installed in the system will be used.
- WebviewBrowserPath string
-}
-```
-
-
-
-## type [WindowsWindow](https://github.com/wailsapp/wails/blob/master/v3/pkg/application/options_webview_window_win.go#L15-L77)
-
-```go
-type WindowsWindow struct {
- // Select the type of translucent backdrop. Requires Windows 11 22621 or later.
- // Only used when window's `BackgroundType` is set to `BackgroundTypeTranslucent`.
- // Default: Auto
- BackdropType BackdropType
-
- // Disable the icon in the titlebar
- // Default: false
- DisableIcon bool
-
- // Theme (Dark / Light / SystemDefault)
- // Default: SystemDefault - The application will follow system theme changes.
- Theme Theme
-
- // Specify custom colours to use for dark/light mode
- // Default: nil
- CustomTheme *ThemeSettings
-
- // Disable all window decorations in Frameless mode, which means no "Aero Shadow" and no "Rounded Corner" will be shown.
- // "Rounded Corners" are only available on Windows 11.
- // Default: false
- DisableFramelessWindowDecorations bool
-
- // WindowMask is used to set the window shape. Use a PNG with an alpha channel to create a custom shape.
- // Default: nil
- WindowMask []byte
-
- // WindowMaskDraggable is used to make the window draggable by clicking on the window mask.
- // Default: false
- WindowMaskDraggable bool
-
- // WebviewGpuIsDisabled is used to enable / disable GPU acceleration for the webview
- // Default: false
- WebviewGpuIsDisabled bool
-
- // ResizeDebounceMS is the amount of time to debounce redraws of webview2
- // when resizing the window
- // Default: 0
- ResizeDebounceMS uint16
-
- // Disable the menu bar for this window
- // Default: false
- DisableMenu bool
-
- // Event mapping for the window. This allows you to define a translation from one event to another.
- // Default: nil
- EventMapping map[events.WindowEventType]events.WindowEventType
-
- // HiddenOnTaskbar hides the window from the taskbar
- // Default: false
- HiddenOnTaskbar bool
-
- // EnableSwipeGestures enables swipe gestures for the window
- // Default: false
- EnableSwipeGestures bool
-
- // EnableFraudulentWebsiteWarnings will enable warnings for fraudulent websites.
- // Default: false
- EnableFraudulentWebsiteWarnings bool
-
- // Menu is the menu to use for the window.
- Menu *Menu
-}
-```
diff --git a/mkdocs-website/docs/en/API/window.md b/mkdocs-website/docs/en/API/window.md
index aa73ec91a93..727604a5508 100644
--- a/mkdocs-website/docs/en/API/window.md
+++ b/mkdocs-website/docs/en/API/window.md
@@ -74,7 +74,7 @@ API: `GetScreen() (*Screen, error)`
`GetScreen` method returns the screen on which the window is displayed.
-#### SetFrameless
+### SetFrameless
API: `SetFrameless(frameless bool) *WebviewWindow`
@@ -82,32 +82,32 @@ This function is used to remove the window frame and title bar. It toggles the
framelessness of the window according to the boolean value provided (true for
frameless, false for framed).
-#### RegisterContextMenu
+### RegisterContextMenu
API: `RegisterContextMenu(name string, menu *Menu)`
This function is used to register a context menu and assigns it the given name.
-#### NativeWindowHandle
+### NativeWindowHandle
API: `NativeWindowHandle() (uintptr, error)`
This function is used to fetch the platform native window handle for the window.
-#### Focus
+### Focus
API: `Focus()`
This function is used to focus the window.
-#### SetEnabled
+### SetEnabled
API: `SetEnabled(enabled bool)`
This function is used to enable/disable the window based on the provided boolean
value.
-#### SetAbsolutePosition
+### SetAbsolutePosition
API: `SetAbsolutePosition(x int, y int)`
diff --git a/mkdocs-website/docs/en/development/changes.md b/mkdocs-website/docs/en/development/changes.md
index ba125147c91..a7d2f85783c 100644
--- a/mkdocs-website/docs/en/development/changes.md
+++ b/mkdocs-website/docs/en/development/changes.md
@@ -1,455 +1,22 @@
# Changes for v3
!!! note
- This is currently an unsorted brain dump of changes. It will be
-organised into a more readable format soon.
+ This is currently an unsorted brain dump of changes. It will be organised into a more readable format soon.
+
+--8<--
+./docs/en/development/changes_events.md
+./docs/en/development/changes_window.md
+./docs/en/development/changes_systray.md
+./docs/en/development/changes_bindings.md
+./docs/en/development/changes_dragndrop.md
+./docs/en/development/changes_context_menus.md
+./docs/en/development/changes_dialogs.md
+./docs/en/development/changes_clipboard.md
+./docs/en/development/changes_wml.md
+./docs/en/development/changes_plugins.md
+./docs/en/development/changes_enums.md
+./docs/en/development/changes_logging.md
+./docs/en/development/changes_misc.md
+--8<--
-## Options
-The application options have been revised since v2.
-
-## Events
-
-In v3, there are 3 types of events:
-
-- Application Events
-- Window Events
-- Custom Events
-
-### Application Events
-
-Application events are events that are emitted by the application. These events
-include native events such as `ApplicationDidFinishLaunching` on macOS.
-
-### Window Events
-
-Window events are events that are emitted by a window. These events include
-native events such as `WindowDidBecomeMain` on macOS. Common events are also
-defined, so they work cross-platform, e.g. `WindowClosing`.
-
-### Custom Events
-
-Events that the user defines are called `WailsEvents`. This is to differentiate
-them from the `Event` object that is used to communicate with the browser.
-WailsEvents are now objects that encapsulate all the details of an event. This
-includes the event name, the data, and the source of the event.
-
-The data associated with a WailsEvent is now a single value. If multiple values
-are required, then a struct can be used.
-
-### Event callbacks and `Emit` function signature
-
-The signatures events callbacks (as used by `On`, `Once` & `OnMultiple`) have
-changed. In v2, the callback function received optional data. In v3, the
-callback function receives a `WailsEvent` object that contains all data related
-to the event.
-
-Similarly, the `Emit` function has changed. Instead of taking a name and
-optional data, it now takes a single `WailsEvent` object that it will emit.
-
-### `Off` and `OffAll`
-
-In v2, `Off` and `OffAll` calls would remove events in both JS and Go. Due to
-the multi-window nature of v3, this has been changed so that these methods only
-apply to the context they are called in. For example, if you call `Off` in a
-window, it will only remove events for that window. If you use `Off` in Go, it
-will only remove events for Go.
-
-### Hooks
-
-Event Hooks are a new feature in v3. They allow you to hook into the event
-system and perform actions when certain events are emitted. For example, you can
-hook into the `WindowClosing` event and perform some cleanup before the window
-closes. Hooks can be registered at the application level or at the window level
-using `RegisterHook`. Application level are for application events. Window level
-hooks will only be called for the window they are registered with.
-
-### Logging
-
-Logging in v2 was confusing as both application logs and system (internal) logs
-were using the same logger. We have simplified this as follows:
-
-- Internal logs are now handled using the standard Go `slog` logger. This is
- configured using the `logger` option in the application options. By default,
- this uses the [tint](https://github.com/lmittmann/tint) logger.
-- Application logs can now be achieved through the new `log` plugin which
- utilises `slog` under the hood. This plugin provides a simple API for logging
- to the console. It is available in both Go and JS.
-
-### Developer notes
-
-When emitting an event in Go, it will dispatch the event to local Go listeners
-and also each window in the application. When emitting an event in JS, it now
-sends the event to the application. This will be processed as if it was emitted
-in Go, however the sender ID will be that of the window.
-
-## Window
-
-The Window API has largely remained the same, however the methods are now on an
-instance of a window rather than the runtime. Some notable differences are:
-
-- Windows now have a Name that identifies them. This is used to identify the
- window when emitting events.
-- Windows have even more methods on the that were previously unavailable, such
- as `AbsolutePosition` and `ToggleDevTools`.
-- Windows can now accept files via native drag and drop. See the Drag and Drop
- section for more details.
-
-## ClipBoard
-
-The clipboard API has been simplified. There is now a single `Clipboard` object
-that can be used to read and write to the clipboard. The `Clipboard` object is
-available in both Go and JS. `SetText()` to set the text and `Text()` to get the
-text.
-
-## Bindings
-
-Bindings work in a similar way to v2, by providing a means to bind struct
-methods to the frontend. These can be called in the frontend using the binding
-wrappers generated by the `wails3 generate bindings` command:
-
-```javascript
-// @ts-check
-// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
-// This file is automatically generated. DO NOT EDIT
-
-import { main } from "./models";
-
-window.go = window.go || {};
-window.go.main = {
- GreetService: {
- /**
- * GreetService.Greet
- * Greet greets a person
- * @param name {string}
- * @returns {Promise}
- **/
- Greet: function (name) {
- wails.CallByID(1411160069, ...Array.prototype.slice.call(arguments, 0));
- },
-
- /**
- * GreetService.GreetPerson
- * GreetPerson greets a person
- * @param person {main.Person}
- * @returns {Promise}
- **/
- GreetPerson: function (person) {
- wails.CallByID(4021313248, ...Array.prototype.slice.call(arguments, 0));
- },
- },
-};
-```
-
-Bound methods are obfuscated by default, and are identified using uint32 IDs,
-calculated using the
-[FNV hashing algorithm](https://en.wikipedia.org/wiki/Fowler%E2%80%93Noll%E2%80%93Vo_hash_function).
-This is to prevent the method name from being exposed in production builds. In
-debug mode, the method IDs are logged along with the calculated ID of the method
-to aid in debugging. If you wish to add an extra layer of obfuscation, you can
-use the `BindAliases` option. This allows you to specify a map of alias IDs to
-method IDs. When the frontend calls a method using an ID, the method ID will be
-looked up in the alias map first for a match. If it does not find it, it assumes
-it's a standard method ID and tries to find the method in the usual way.
-
-Example:
-
-```go
- app := application.New(application.Options{
- Bind: []any{
- &GreetService{},
- },
- BindAliases: map[uint32]uint32{
- 1: 1411160069,
- 2: 4021313248,
- },
- Assets: application.AssetOptions{
- Handler: application.AssetFileServerFS(assets),
- },
- Mac: application.MacOptions{
- ApplicationShouldTerminateAfterLastWindowClosed: true,
- },
- })
-```
-
-We can now call using this alias in the frontend: `wails.Call(1, "world!")`.
-
-### Insecure calls
-
-If you don't mind your calls being available in plain text in your binary and
-have no intention of using [garble](https://github.com/burrowers/garble), then
-you can use the insecure `wails.CallByName()` method. This method takes the
-fully qualified name of the method to call and the arguments to pass to it.
-Example:
-
- ```go
- wails.CallByName("main.GreetService.Greet", "world!")
- ```
-
-!!! danger
-
- This is only provided as a convenience method for development. It is not recommended to use this in production.
-
-## Dialogs
-
-Dialogs are now available in JavaScript!
-
-### Windows
-
-Dialog buttons in Windows are not configurable and are constant depending on the
-type of dialog. To trigger a callback when a button is pressed, create a button
-with the same name as the button you wish to have the callback attached to.
-Example: Create a button with the label `Ok` and use `OnClick()` to set the
-callback method:
-
-```go
- dialog := app.QuestionDialog().
- SetTitle("Update").
- SetMessage("The cancel button is selected when pressing escape")
- ok := dialog.AddButton("Ok")
- ok.OnClick(func() {
- // Do something
- })
- no := dialog.AddButton("Cancel")
- dialog.SetDefaultButton(ok)
- dialog.SetCancelButton(no)
- dialog.Show()
-```
-
-## Drag and Drop
-
-Native drag and drop can be enabled per-window. Simply set the
-`EnableDragAndDrop` window config option to `true` and the window will allow
-files to be dragged onto it. When this happens, the `events.FilesDropped` event
-will be emitted. The filenames can then be retrieved from the
-`WindowEvent.Context()` using the `DroppedFiles()` method. This returns a slice
-of strings containing the filenames.
-
-## Context Menus
-
-Context menus are contextual menus that are shown when the user right-clicks on
-an element. Creating a context menu is the same as creating a standard menu , by
-using `app.NewMenu()`. To make the context menu available to a window, call
-`window.RegisterContextMenu(name, menu)`. The name will be the id of the context
-menu and used by the frontend.
-
-To indicate that an element has a context menu, add the `data-contextmenu`
-attribute to the element. The value of this attribute should be the name of a
-context menu previously registered with the window.
-
-It is possible to register a context menu at the application level, making it
-available to all windows. This can be done using
-`app.RegisterContextMenu(name, menu)`. If a context menu cannot be found at the
-window level, the application context menus will be checked. A demo of this can
-be found in `v3/examples/contextmenus`.
-
-## Wails Markup Language (WML)
-
-The Wails Markup Language is a simple markup language that allows you to add
-functionality to standard HTML elements without the use of Javascript.
-
-The following tags are currently supported:
-
-### `data-wml-event`
-
-This specifies that a Wails event will be emitted when the element is clicked.
-The value of the attribute should be the name of the event to emit.
-
-Example:
-
-```html
-
-```
-
-Sometimes you need the user to confirm an action. This can be done by adding the
-`data-wml-confirm` attribute to the element. The value of this attribute will be
-the message to display to the user.
-
-Example:
-
-```html
-
-```
-
-### `data-wml-window`
-
-Any `wails.window` method can be called by adding the `data-wml-window`
-attribute to an element. The value of the attribute should be the name of the
-method to call. The method name should be in the same case as the method.
-
-```html
-
-```
-
-### `data-wml-trigger`
-
-This attribute specifies which javascript event should trigger the action. The
-default is `click`.
-
-```html
-
-```
-
-## Systray
-
-Wails 3 comes with a built-in systray. This is a fully featured systray that has
-been designed to be as simple as possible to use. It is possible to set the
-icon, tooltip and menu of the systray. It is possible to also "attach" a window
-to the systray. Doing this will provide the following functionality:
-
-- Clicking the systray icon with toggle the window visibility
-- Right-clicking the systray will open the menu, if there is one
-
-On macOS, if there is no attached window, the systray will use the default
-method of displaying the menu (any button). If there is an attached window but
-no menu, the systray will toggle the window regardless of the button pressed.
-
-## Plugins
-
-Plugins are a way to extend the functionality of your Wails application.
-
-### Creating a plugin
-
-Plugins are standard Go structure that adhere to the following interface:
-
-```go
-type Plugin interface {
- Name() string
- Init(*application.App) error
- Shutdown()
- CallableByJS() []string
- InjectJS() string
-}
-```
-
-The `Name()` method returns the name of the plugin. This is used for logging
-purposes.
-
-The `Init(*application.App) error` method is called when the plugin is loaded.
-The `*application.App` parameter is the application that the plugin is being
-loaded into. Any errors will prevent the application from starting.
-
-The `Shutdown()` method is called when the application is shutting down.
-
-The `CallableByJS()` method returns a list of exported functions that can be
-called from the frontend. These method names must exactly match the names of the
-methods exported by the plugin.
-
-The `InjectJS()` method returns JavaScript that should be injected into all
-windows as they are created. This is useful for adding custom JavaScript
-functions that complement the plugin.
-
-### Tips
-
-#### Enums
-
-In Go, enums are often defined as a type and a set of constants. For example:
-
-```go
-type MyEnum int
-
-const (
- MyEnumOne MyEnum = iota
- MyEnumTwo
- MyEnumThree
-)
-```
-
-Due to incompatibility between Go and JavaScript, custom types cannot be used in
-this way. The best strategy is to use a type alias for float64:
-
-```go
-type MyEnum = float64
-
-const (
- MyEnumOne MyEnum = iota
- MyEnumTwo
- MyEnumThree
-)
-```
-
-In Javascript, you can then use the following:
-
-```js
-const MyEnum = {
- MyEnumOne: 0,
- MyEnumTwo: 1,
- MyEnumThree: 2,
-};
-```
-
-- Why use `float64`? Can't we use `int`?
- - Because JavaScript doesn't have a concept of `int`. Everything is a
- `number`, which translates to `float64` in Go. There are also restrictions
- on casting types in Go's reflection package, which means using `int` doesn't
- work.
-
-### BackgroundColour
-
-In v2, this was a pointer to an `RGBA` struct. In v3, this is an `RGBA` struct
-value.
-
-### WindowIsTranslucent
-
-This flag has been removed. Now there is a `BackgroundType` flag that can be
-used to set the type of background the window should have. This flag can be set
-to any of the following values:
-
-- `BackgroundTypeSolid` - The window will have a solid background
-- `BackgroundTypeTransparent` - The window will have a transparent background
-- `BackgroundTypeTranslucent` - The window will have a translucent background
-
-On Windows, if the `BackgroundType` is set to `BackgroundTypeTranslucent`, the
-type of translucency can be set using the `BackdropType` flag in the
-`WindowsWindow` options. This can be set to any of the following values:
-
-- `Auto` - The window will use an effect determined by the system
-- `None` - The window will have no background
-- `Mica` - The window will use the Mica effect
-- `Acrylic` - The window will use the acrylic effect
-- `Tabbed` - The window will use the tabbed effect
-
-## Windows Application Options
-
-### WndProcInterceptor
-
-If this is set, the WndProc will be intercepted and the function will be called.
-This allows you to handle Windows messages directly. The function should have
-the following signature:
-
-```go
-func(hwnd uintptr, msg uint32, wParam, lParam uintptr) (returnValue uintptr, shouldReturn)
-```
-
-The `shouldReturn` value should be set to `true` if the returnValue should be
-returned by the main wndProc method. If it is set to `false`, the return value
-will be ignored and the message will continue to be processed by the main
-wndProc method.
-
-## Hide Window on Close + OnBeforeClose
-
-In v2, there was the `HideWindowOnClose` flag to hide the window when it closed.
-There was a logical overlap between this flag and the `OnBeforeClose` callback.
-In v3, the `HideWindowOnClose` flag has been removed and the `OnBeforeClose`
-callback has been renamed to `ShouldClose`. The `ShouldClose` callback is called
-when the user attempts to close a window. If the callback returns `true`, the
-window will close. If it returns `false`, the window will not close. This can be
-used to hide the window instead of closing it.
-
-## Window Drag
-
-In v2, the `--wails-drag` attribute was used to indicate that an element could
-be used to drag the window. In v3, this has been replaced with
-`--webkit-app-region` to be more in line with the way other frameworks handle
-this. The `--webkit-app-region` attribute can be set to any of the following
-values:
-
-- `drag` - The element can be used to drag the window
-- `no-drag` - The element cannot be used to drag the window
-
-We would have ideally liked to use `app-region`, however this is not supported
-by the `getComputedStyle` call on webkit on macOS.
diff --git a/mkdocs-website/docs/en/development/changes_bindings.md b/mkdocs-website/docs/en/development/changes_bindings.md
new file mode 100644
index 00000000000..92846f29f82
--- /dev/null
+++ b/mkdocs-website/docs/en/development/changes_bindings.md
@@ -0,0 +1,87 @@
+## Bindings
+
+Bindings work in a similar way to v2, by providing a means to bind struct
+methods to the frontend. These can be called in the frontend using the binding
+wrappers generated by the `wails3 generate bindings` command:
+
+```javascript
+// @ts-check
+// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
+// This file is automatically generated. DO NOT EDIT
+
+import { main } from "./models";
+
+window.go = window.go || {};
+window.go.main = {
+ GreetService: {
+ /**
+ * GreetService.Greet
+ * Greet greets a person
+ * @param name {string}
+ * @returns {Promise}
+ **/
+ Greet: function (name) {
+ wails.CallByID(1411160069, ...Array.prototype.slice.call(arguments, 0));
+ },
+
+ /**
+ * GreetService.GreetPerson
+ * GreetPerson greets a person
+ * @param person {main.Person}
+ * @returns {Promise}
+ **/
+ GreetPerson: function (person) {
+ wails.CallByID(4021313248, ...Array.prototype.slice.call(arguments, 0));
+ },
+ },
+};
+```
+
+Bound methods are obfuscated by default, and are identified using uint32 IDs,
+calculated using the
+[FNV hashing algorithm](https://en.wikipedia.org/wiki/Fowler%E2%80%93Noll%E2%80%93Vo_hash_function).
+This is to prevent the method name from being exposed in production builds. In
+debug mode, the method IDs are logged along with the calculated ID of the method
+to aid in debugging. If you wish to add an extra layer of obfuscation, you can
+use the `BindAliases` option. This allows you to specify a map of alias IDs to
+method IDs. When the frontend calls a method using an ID, the method ID will be
+looked up in the alias map first for a match. If it does not find it, it assumes
+it's a standard method ID and tries to find the method in the usual way.
+
+Example:
+
+```go
+ app := application.New(application.Options{
+ Bind: []any{
+ &GreetService{},
+ },
+ BindAliases: map[uint32]uint32{
+ 1: 1411160069,
+ 2: 4021313248,
+ },
+ Assets: application.AssetOptions{
+ Handler: application.AssetFileServerFS(assets),
+ },
+ Mac: application.MacOptions{
+ ApplicationShouldTerminateAfterLastWindowClosed: true,
+ },
+ })
+```
+
+We can now call using this alias in the frontend: `wails.Call(1, "world!")`.
+
+### Insecure calls
+
+If you don't mind your calls being available in plain text in your binary and
+have no intention of using [garble](https://github.com/burrowers/garble), then
+you can use the insecure `wails.CallByName()` method. This method takes the
+fully qualified name of the method to call and the arguments to pass to it.
+Example:
+
+ ```go
+ wails.CallByName("main.GreetService.Greet", "world!")
+ ```
+
+!!! danger
+
+ This is only provided as a convenience method for development. It is not recommended to use this in production.
diff --git a/mkdocs-website/docs/en/development/changes_clipboard.md b/mkdocs-website/docs/en/development/changes_clipboard.md
new file mode 100644
index 00000000000..bc17d8cbd50
--- /dev/null
+++ b/mkdocs-website/docs/en/development/changes_clipboard.md
@@ -0,0 +1,6 @@
+## ClipBoard
+
+The clipboard API has been simplified. There is now a single `Clipboard` object
+that can be used to read and write to the clipboard. The `Clipboard` object is
+available in both Go and JS. `SetText()` to set the text and `Text()` to get the
+text.
\ No newline at end of file
diff --git a/mkdocs-website/docs/en/development/changes_context_menus.md b/mkdocs-website/docs/en/development/changes_context_menus.md
new file mode 100644
index 00000000000..b8a333b50d1
--- /dev/null
+++ b/mkdocs-website/docs/en/development/changes_context_menus.md
@@ -0,0 +1,17 @@
+## Context Menus
+
+Context menus are contextual menus that are shown when the user right-clicks on
+an element. Creating a context menu is the same as creating a standard menu , by
+using `app.NewMenu()`. To make the context menu available to a window, call
+`window.RegisterContextMenu(name, menu)`. The name will be the id of the context
+menu and used by the frontend.
+
+To indicate that an element has a context menu, add the `data-contextmenu`
+attribute to the element. The value of this attribute should be the name of a
+context menu previously registered with the window.
+
+It is possible to register a context menu at the application level, making it
+available to all windows. This can be done using
+`app.RegisterContextMenu(name, menu)`. If a context menu cannot be found at the
+window level, the application context menus will be checked. A demo of this can
+be found in `v3/examples/contextmenus`.
\ No newline at end of file
diff --git a/mkdocs-website/docs/en/development/changes_dialogs.md b/mkdocs-website/docs/en/development/changes_dialogs.md
new file mode 100644
index 00000000000..f0b68a13590
--- /dev/null
+++ b/mkdocs-website/docs/en/development/changes_dialogs.md
@@ -0,0 +1,25 @@
+## Dialogs
+
+Dialogs are now available in JavaScript!
+
+### Windows
+
+Dialog buttons in Windows are not configurable and are constant depending on the
+type of dialog. To trigger a callback when a button is pressed, create a button
+with the same name as the button you wish to have the callback attached to.
+Example: Create a button with the label `Ok` and use `OnClick()` to set the
+callback method:
+
+```go
+ dialog := app.QuestionDialog().
+ SetTitle("Update").
+ SetMessage("The cancel button is selected when pressing escape")
+ ok := dialog.AddButton("Ok")
+ ok.OnClick(func() {
+ // Do something
+ })
+ no := dialog.AddButton("Cancel")
+ dialog.SetDefaultButton(ok)
+ dialog.SetCancelButton(no)
+ dialog.Show()
+```
\ No newline at end of file
diff --git a/mkdocs-website/docs/en/development/changes_dragndrop.md b/mkdocs-website/docs/en/development/changes_dragndrop.md
new file mode 100644
index 00000000000..5a6fbc95f4e
--- /dev/null
+++ b/mkdocs-website/docs/en/development/changes_dragndrop.md
@@ -0,0 +1,8 @@
+## Drag and Drop
+
+Native drag and drop can be enabled per-window. Simply set the
+`EnableDragAndDrop` window config option to `true` and the window will allow
+files to be dragged onto it. When this happens, the `events.FilesDropped` event
+will be emitted. The filenames can then be retrieved from the
+`WindowEvent.Context()` using the `DroppedFiles()` method. This returns a slice
+of strings containing the filenames.
diff --git a/mkdocs-website/docs/en/development/changes_enums.md b/mkdocs-website/docs/en/development/changes_enums.md
new file mode 100644
index 00000000000..570a15a9d7d
--- /dev/null
+++ b/mkdocs-website/docs/en/development/changes_enums.md
@@ -0,0 +1,42 @@
+#### Enums
+
+In Go, enums are often defined as a type and a set of constants. For example:
+
+```go
+type MyEnum int
+
+const (
+ MyEnumOne MyEnum = iota
+ MyEnumTwo
+ MyEnumThree
+)
+```
+
+Due to incompatibility between Go and JavaScript, custom types cannot be used in
+this way. The best strategy is to use a type alias for float64:
+
+```go
+type MyEnum = float64
+
+const (
+ MyEnumOne MyEnum = iota
+ MyEnumTwo
+ MyEnumThree
+)
+```
+
+In Javascript, you can then use the following:
+
+```js
+const MyEnum = {
+ MyEnumOne: 0,
+ MyEnumTwo: 1,
+ MyEnumThree: 2,
+};
+```
+
+- Why use `float64`? Can't we use `int`?
+ - Because JavaScript doesn't have a concept of `int`. Everything is a
+ `number`, which translates to `float64` in Go. There are also restrictions
+ on casting types in Go's reflection package, which means using `int` doesn't
+ work.
\ No newline at end of file
diff --git a/mkdocs-website/docs/en/development/changes_events.md b/mkdocs-website/docs/en/development/changes_events.md
new file mode 100644
index 00000000000..4ca0c0ee2e7
--- /dev/null
+++ b/mkdocs-website/docs/en/development/changes_events.md
@@ -0,0 +1,62 @@
+## Events
+
+In v3, there are 3 types of events:
+
+- Application Events
+- Window Events
+- Custom Events
+
+### Application Events
+
+Application events are events that are emitted by the application. These events
+include native events such as `ApplicationDidFinishLaunching` on macOS.
+
+### Window Events
+
+Window events are events that are emitted by a window. These events include
+native events such as `WindowDidBecomeMain` on macOS. Common events are also
+defined, so they work cross-platform, e.g. `WindowClosing`.
+
+### Custom Events
+
+Events that the user defines are called `WailsEvents`. This is to differentiate
+them from the `Event` object that is used to communicate with the browser.
+WailsEvents are now objects that encapsulate all the details of an event. This
+includes the event name, the data, and the source of the event.
+
+The data associated with a WailsEvent is now a single value. If multiple values
+are required, then a struct can be used.
+
+### Event callbacks and `Emit` function signature
+
+The signatures events callbacks (as used by `On`, `Once` & `OnMultiple`) have
+changed. In v2, the callback function received optional data. In v3, the
+callback function receives a `WailsEvent` object that contains all data related
+to the event.
+
+Similarly, the `Emit` function has changed. Instead of taking a name and
+optional data, it now takes a single `WailsEvent` object that it will emit.
+
+### `Off` and `OffAll`
+
+In v2, `Off` and `OffAll` calls would remove events in both JS and Go. Due to
+the multi-window nature of v3, this has been changed so that these methods only
+apply to the context they are called in. For example, if you call `Off` in a
+window, it will only remove events for that window. If you use `Off` in Go, it
+will only remove events for Go.
+
+### Hooks
+
+Event Hooks are a new feature in v3. They allow you to hook into the event
+system and perform actions when certain events are emitted. For example, you can
+hook into the `WindowClosing` event and perform some cleanup before the window
+closes. Hooks can be registered at the application level or at the window level
+using `RegisterHook`. Application level are for application events. Window level
+hooks will only be called for the window they are registered with.
+
+### Developer notes
+
+When emitting an event in Go, it will dispatch the event to local Go listeners
+and also each window in the application. When emitting an event in JS, it now
+sends the event to the application. This will be processed as if it was emitted
+in Go, however the sender ID will be that of the window.
diff --git a/mkdocs-website/docs/en/development/changes_logging.md b/mkdocs-website/docs/en/development/changes_logging.md
new file mode 100644
index 00000000000..04ce08055ad
--- /dev/null
+++ b/mkdocs-website/docs/en/development/changes_logging.md
@@ -0,0 +1,11 @@
+### Logging
+
+Logging in v2 was confusing as both application logs and system (internal) logs
+were using the same logger. We have simplified this as follows:
+
+- Internal logs are now handled using the standard Go `slog` logger. This is
+ configured using the `logger` option in the application options. By default,
+ this uses the [tint](https://github.com/lmittmann/tint) logger.
+- Application logs can now be achieved through the new `log` plugin which
+ utilises `slog` under the hood. This plugin provides a simple API for logging
+ to the console. It is available in both Go and JS.
diff --git a/mkdocs-website/docs/en/development/changes_misc.md b/mkdocs-website/docs/en/development/changes_misc.md
new file mode 100644
index 00000000000..fda52cf50fb
--- /dev/null
+++ b/mkdocs-website/docs/en/development/changes_misc.md
@@ -0,0 +1,42 @@
+### Misc
+
+## Windows Application Options
+
+### WndProcInterceptor
+
+If this is set, the WndProc will be intercepted and the function will be called.
+This allows you to handle Windows messages directly. The function should have
+the following signature:
+
+```go
+func(hwnd uintptr, msg uint32, wParam, lParam uintptr) (returnValue uintptr, shouldReturn)
+```
+
+The `shouldReturn` value should be set to `true` if the returnValue should be
+returned by the main wndProc method. If it is set to `false`, the return value
+will be ignored and the message will continue to be processed by the main
+wndProc method.
+
+## Hide Window on Close + OnBeforeClose
+
+In v2, there was the `HideWindowOnClose` flag to hide the window when it closed.
+There was a logical overlap between this flag and the `OnBeforeClose` callback.
+In v3, the `HideWindowOnClose` flag has been removed and the `OnBeforeClose`
+callback has been renamed to `ShouldClose`. The `ShouldClose` callback is called
+when the user attempts to close a window. If the callback returns `true`, the
+window will close. If it returns `false`, the window will not close. This can be
+used to hide the window instead of closing it.
+
+## Window Drag
+
+In v2, the `--wails-drag` attribute was used to indicate that an element could
+be used to drag the window. In v3, this has been replaced with
+`--webkit-app-region` to be more in line with the way other frameworks handle
+this. The `--webkit-app-region` attribute can be set to any of the following
+values:
+
+- `drag` - The element can be used to drag the window
+- `no-drag` - The element cannot be used to drag the window
+
+We would have ideally liked to use `app-region`, however this is not supported
+by the `getComputedStyle` call on webkit on macOS.
diff --git a/mkdocs-website/docs/en/development/changes_plugins.md b/mkdocs-website/docs/en/development/changes_plugins.md
new file mode 100644
index 00000000000..b32c18abe50
--- /dev/null
+++ b/mkdocs-website/docs/en/development/changes_plugins.md
@@ -0,0 +1,34 @@
+## Plugins
+
+Plugins are a way to extend the functionality of your Wails application.
+
+### Creating a plugin
+
+Plugins are standard Go structure that adhere to the following interface:
+
+```go
+type Plugin interface {
+ Name() string
+ Init(*application.App) error
+ Shutdown()
+ CallableByJS() []string
+ InjectJS() string
+}
+```
+
+The `Name()` method returns the name of the plugin. This is used for logging
+purposes.
+
+The `Init(*application.App) error` method is called when the plugin is loaded.
+The `*application.App` parameter is the application that the plugin is being
+loaded into. Any errors will prevent the application from starting.
+
+The `Shutdown()` method is called when the application is shutting down.
+
+The `CallableByJS()` method returns a list of exported functions that can be
+called from the frontend. These method names must exactly match the names of the
+methods exported by the plugin.
+
+The `InjectJS()` method returns JavaScript that should be injected into all
+windows as they are created. This is useful for adding custom JavaScript
+functions that complement the plugin.
diff --git a/mkdocs-website/docs/en/development/changes_systray.md b/mkdocs-website/docs/en/development/changes_systray.md
new file mode 100644
index 00000000000..32a51837c65
--- /dev/null
+++ b/mkdocs-website/docs/en/development/changes_systray.md
@@ -0,0 +1,13 @@
+## Systray
+
+Wails 3 comes with a built-in systray. This is a fully featured systray that has
+been designed to be as simple as possible to use. It is possible to set the
+icon, tooltip and menu of the systray. It is possible to also "attach" a window
+to the systray. Doing this will provide the following functionality:
+
+- Clicking the systray icon with toggle the window visibility
+- Right-clicking the systray will open the menu, if there is one
+
+On macOS, if there is no attached window, the systray will use the default
+method of displaying the menu (any button). If there is an attached window but
+no menu, the systray will toggle the window regardless of the button pressed.
\ No newline at end of file
diff --git a/mkdocs-website/docs/en/development/changes_window.md b/mkdocs-website/docs/en/development/changes_window.md
new file mode 100644
index 00000000000..f87962a82e9
--- /dev/null
+++ b/mkdocs-website/docs/en/development/changes_window.md
@@ -0,0 +1,36 @@
+## Window
+
+The Window API has largely remained the same, however the methods are now on an
+instance of a window rather than the runtime. Some notable differences are:
+
+- Windows now have a Name that identifies them. This is used to identify the
+ window when emitting events.
+- Windows have even more methods on the that were previously unavailable, such
+ as `AbsolutePosition` and `ToggleDevTools`.
+- Windows can now accept files via native drag and drop. See the Drag and Drop
+ section for more details.
+
+### BackgroundColour
+
+In v2, this was a pointer to an `RGBA` struct. In v3, this is an `RGBA` struct
+value.
+
+### WindowIsTranslucent
+
+This flag has been removed. Now there is a `BackgroundType` flag that can be
+used to set the type of background the window should have. This flag can be set
+to any of the following values:
+
+- `BackgroundTypeSolid` - The window will have a solid background
+- `BackgroundTypeTransparent` - The window will have a transparent background
+- `BackgroundTypeTranslucent` - The window will have a translucent background
+
+On Windows, if the `BackgroundType` is set to `BackgroundTypeTranslucent`, the
+type of translucency can be set using the `BackdropType` flag in the
+`WindowsWindow` options. This can be set to any of the following values:
+
+- `Auto` - The window will use an effect determined by the system
+- `None` - The window will have no background
+- `Mica` - The window will use the Mica effect
+- `Acrylic` - The window will use the acrylic effect
+- `Tabbed` - The window will use the tabbed effect
\ No newline at end of file
diff --git a/mkdocs-website/docs/en/development/changes_wml.md b/mkdocs-website/docs/en/development/changes_wml.md
new file mode 100644
index 00000000000..c06a214f360
--- /dev/null
+++ b/mkdocs-website/docs/en/development/changes_wml.md
@@ -0,0 +1,50 @@
+## Wails Markup Language (WML)
+
+The Wails Markup Language is a simple markup language that allows you to add
+functionality to standard HTML elements without the use of Javascript.
+
+The following tags are currently supported:
+
+### `data-wml-event`
+
+This specifies that a Wails event will be emitted when the element is clicked.
+The value of the attribute should be the name of the event to emit.
+
+Example:
+
+```html
+
+```
+
+Sometimes you need the user to confirm an action. This can be done by adding the
+`data-wml-confirm` attribute to the element. The value of this attribute will be
+the message to display to the user.
+
+Example:
+
+```html
+
+```
+
+### `data-wml-window`
+
+Any `wails.window` method can be called by adding the `data-wml-window`
+attribute to an element. The value of the attribute should be the name of the
+method to call. The method name should be in the same case as the method.
+
+```html
+
+```
+
+### `data-wml-trigger`
+
+This attribute specifies which javascript event should trigger the action. The
+default is `click`.
+
+```html
+
+```
diff --git a/mkdocs-website/docs/zh/API/application.md b/mkdocs-website/docs/zh/API/application.md
deleted file mode 100644
index 76f03663598..00000000000
--- a/mkdocs-website/docs/zh/API/application.md
+++ /dev/null
@@ -1,335 +0,0 @@
-# 应用程序
-
-应用程序 API 用于使用 Wails 框架创建应用程序。
-
-### New
-
-API:`New(appOptions Options) *App`
-
-`New(appOptions Options)` 使用给定的应用程序选项创建一个新的应用程序。它对未指定
-的选项应用默认值,将其与提供的选项合并,然后初始化并返回应用程序的实例。
-
-如果在初始化过程中出现错误,应用程序将停止,并显示提供的错误消息。
-
-需要注意的是,如果全局应用程序实例已经存在,将返回该实例,而不是创建新的实例。
-
-```go title="main.go" hl_lines="6-9"
-package main
-
-import "github.com/wailsapp/wails/v3/pkg/application"
-
-func main() {
- app := application.New(application.Options{
- Name: "WebviewWindow Demo",
- // 其他选项
- })
-
- // 其余的应用程序逻辑
-}
-```
-
-### Get
-
-`Get()` 返回全局应用程序实例。在代码的不同部分需要访问应用程序时非常有用。
-
-```go
- // 获取应用程序实例
- app := application.Get()
-```
-
-### Capabilities
-
-API:`Capabilities() capabilities.Capabilities`
-
-`Capabilities()` 返回应用程序当前具有的功能的映射。这些功能可以是操作系统提供的
-不同功能,如 webview 功能。
-
-```go
- // 获取应用程序的功能
- capabilities := app.Capabilities()
- if capabilities.HasNativeDrag {
- // 做一些事情
- }
-```
-
-### GetPID
-
-API:`GetPID() int`
-
-`GetPID()` 返回应用程序的进程 ID。
-
-```go
- pid := app.GetPID()
-```
-
-### Run
-
-API:`Run() error`
-
-`Run()` 启动应用程序及其组件的执行。
-
-```go
- app := application.New(application.Options{
- // 选项
- })
- // 运行应用程序
- err := application.Run()
- if err != nil {
- // 处理错误
- }
-```
-
-### Quit
-
-API:`Quit()`
-
-`Quit()` 通过销毁窗口和可能的其他组件退出应用程序。
-
-```go
- // 退出应用程序
- app.Quit()
-```
-
-### IsDarkMode
-
-API:`IsDarkMode() bool`
-
-`IsDarkMode()` 检查应用程序是否在暗模式下运行。它返回一个布尔值,指示是否启用了
-暗模式。
-
-```go
- // 检查是否启用了暗模式
- if app.IsDarkMode() {
- // 做一些事情
- }
-```
-
-### Hide
-
-API:`Hide()`
-
-`Hide()` 隐藏应用程序窗口。
-
-```go
- // 隐藏应用程序窗口
- app.Hide()
-```
-
-### Show
-
-API:`Show()`
-
-`Show()` 显示应用程序窗口。
-
-```go
- // 显示应用程序窗口
- app.Show()
-```
-
-### NewWebviewWindow
-
-API:`NewWebviewWindow() *WebviewWindow`
-
-`NewWebviewWindow()` 使用默认选项创建一个新的 Webview 窗口,并返回它。
-
-```go
- // 创建一个新的 Webview 窗口
- window := app.NewWebviewWindow()
-```
-
-### NewWebviewWindowWithOptions
-
-API:`NewWebviewWindowWithOptions(windowOptions WebviewWindowOptions) *WebviewWindow`
-
-`NewWebviewWindowWithOptions()` 使用自定义选项创建一个新的 Webview 窗口。新创建
-的窗口将添加到应用程序管理的窗口映射中。
-
-```go
- // 使用自定义选项创建一个新的 Webview 窗口
- window := app.NewWebviewWindowWithOptions(WebviewWindowOptions{
- Name: "Main",
- Title: "My Window",
- Width: 800,
- Height: 600,
- })
-```
-
-### OnWindowCreation
-
-API:`OnWindowCreation(callback func(window *WebviewWindow))`
-
-`OnWindowCreation()` 注册一个回调函数,当创建窗口时调用该函数。
-
-```go
- // 注册一个回调函数,当创建窗口时调用该函数
- app.OnWindowCreation(func(window *WebviewWindow) {
- // 做一些事情
- })
-```
-
-### GetWindowByName
-
-API:`GetWindowByName(name string) *WebviewWindow`
-
-`GetWindowByName()` 获取并返回具有特定名称的窗口。
-
-```go
- // 通过名称获取窗口
- window := app.GetWindowByName("Main")
-```
-
-### CurrentWindow
-
-API:`CurrentWindow() *WebviewWindow`
-
-`CurrentWindow()` 获取并返回应用程序中当前活动窗口的指针。如果没有窗口,则返回
-nil。
-
-```go
- // 获取当前窗口
- window := app.CurrentWindow()
-```
-
-### RegisterContextMenu
-
-API:`RegisterContextMenu(name string, menu *Menu)`
-
-`RegisterContextMenu()` 注册具有给定名称的上下文菜单。稍后可以在应用程序中使用该
-菜单。
-
-```go
-
- // 创建一个新的菜单
- ctxmenu := app.NewMenu()
-
- // 将菜单注册为上下文菜单
- app.RegisterContextMenu("MyContextMenu", ctxmenu)
-```
-
-### SetMenu
-
-API:`SetMenu(menu *Menu)`
-
-`SetMenu()` 设置应用程序的菜单。在 Mac 上,这将是全局菜单。对于 Windows 和
-Linux,这将是任何新窗口的默认菜单。
-
-```go
- // 创建一个新的菜单
- menu := app.NewMenu()
-
- // 设置应用程序的菜单
- app.SetMenu(menu)
-```
-
-### ShowAboutDialog
-
-API:`ShowAboutDialog()`
-
-`ShowAboutDialog()` 显示一个 "关于" 对话框。可以显示应用程序的名称、描述和图标。
-
-```go
- // 显示关于对话框
- app.ShowAboutDialog()
-```
-
-### Info
-
-API:`InfoDialog()`
-
-`InfoDialog()` 创建并返回一个具有 `InfoDialogType` 的 `MessageDialog` 的新实例。
-此对话框通常用于向用户显示信息消息。
-
-### Question
-
-API:`QuestionDialog()`
-
-`QuestionDialog()` 创建并返回一个具有 `QuestionDialogType` 的 `MessageDialog` 的
-新实例。此对话框通常用于向用户提问并期望回应。
-
-### Warning
-
-API:`WarningDialog()`
-
-`WarningDialog()` 创建并返回一个具有 `WarningDialogType` 的 `MessageDialog` 的新
-实例。如其名称所示,此对话框主要用于向用户显示警告消息。
-
-### Error
-
-API:`ErrorDialog()`
-
-`ErrorDialog()` 创建并返回一个具有 `ErrorDialogType` 的 `MessageDialog` 的新实
-例。此对话框设计用于在需要向用户显示错误消息时使用。
-
-### OpenFile
-
-API:`OpenFileDialog()`
-
-`OpenFileDialog()` 创建并返回一个新的 `OpenFileDialogStruct`。此对话框提示用户从
-其文件系统中选择一个或多个文件。
-
-### SaveFile
-
-API:`SaveFileDialog()`
-
-`SaveFileDialog()` 创建并返回一个新的 `SaveFileDialogStruct`。此对话框提示用户选
-择其文件系统上的位置以保存文件。
-
-### OpenDirectory
-
-API:`OpenDirectoryDialog()`
-
-`OpenDirectoryDialog()` 创建并返回一个具有 `OpenDirectoryDialogType` 的
-`MessageDialog` 的新实例。此对话框使用户能够从其文件系统中选择目录。
-
-### On
-
-API:`On(eventType events.ApplicationEventType, callback func(event *Event)) func()`
-
-`On()` 注册特定应用程序事件的事件侦听器。提供的回调函数将在相应事件发生时触发。
-该函数返回一个可调用的函数,用于删除侦听器。
-
-### RegisterHook
-
-API:`RegisterHook(eventType events.ApplicationEventType, callback func(event *Event)) func()`
-
-`RegisterHook()` 注册要在特定事件期间作为钩子运行的回调函数。这些钩子在使用
-`On()` 附加的侦听器之前运行。该函数返回一个可调用的函数,用于删除钩子。
-
-### GetPrimaryScreen
-
-API:`GetPrimaryScreen() (*Screen, error)`
-
-`GetPrimaryScreen()` 返回系统的主屏幕。
-
-### GetScreens
-
-API:`GetScreens() ([]*Screen, error)`
-
-`GetScreens()` 返回有关连接到系统的所有屏幕的信息。
-
-这是提供的 `App` 结构中导出的方法的简要摘要。请注意,有关更详细的功能或注意事
-项,请参考实际的 Go 代码或进一步的内部文档。
-
-## Options
-
-```go title="application_options.go"
---8<--
-../v3/pkg/application/options_application.go
---8<--
-```
-
-### Windows 选项
-
-```go title="application_options_windows.go"
---8<--
-../v3/pkg/application/options_application_win.go
---8<--
-```
-
-### Mac 选项
-
-```go title="options_application_mac.go"
---8<--
-../v3/pkg/application/options_application_mac.go
---8<--
-```
diff --git a/mkdocs-website/docs/zh/API/mainthread.md b/mkdocs-website/docs/zh/API/mainthread.md
deleted file mode 100644
index 0ddb768e6ae..00000000000
--- a/mkdocs-website/docs/zh/API/mainthread.md
+++ /dev/null
@@ -1,45 +0,0 @@
-# 主线程函数
-
-这些方法是在主线程上运行代码的实用函数。当您想要在UI线程上运行自定义代码时,这是
-必需的。
-
-### InvokeSync
-
-API: `InvokeSync(fn func())`
-
-此函数以同步方式运行传入的函数(`fn`)。它使用一个`WaitGroup`(`wg`)确保主线程
-在`fn`函数完成之前等待,然后才继续执行。如果在`fn`内部发生恐慌,它将传递给应用程
-序选项中定义的处理程序函数`PanicHandler`。
-
-### InvokeSyncWithResult
-
-API: `InvokeSyncWithResult[T any](fn func() T) (res T)`
-
-此函数与`InvokeSync(fn func())`类似,但它返回一个结果。可用于调用具有单个返回值
-的任何函数。
-
-### InvokeSyncWithError
-
-API: `InvokeSyncWithError(fn func() error) (err error)`
-
-此函数同步运行`fn`并返回`fn`产生的任何错误。请注意,如果在`fn`执行期间发生恐慌,
-此函数将从恢复。
-
-### InvokeSyncWithResultAndError
-
-API:
-`InvokeSyncWithResultAndError[T any](fn func() (T, error)) (res T, err error)`
-
-此函数同步运行`fn`并返回类型为`T`的结果和一个错误。
-
-### InvokeAsync
-
-API: `InvokeAsync(fn func())`
-
-此函数以异步方式运行`fn`。它在主线程上运行给定的函数。如果在`fn`内部发生恐慌,它
-将传递给应用程序选项中定义的处理程序函数`PanicHandler`。
-
----
-
-注意:这些函数将阻塞执行,直到`fn`完成。确保`fn`不会阻塞至关重要。如果需要运行阻
-塞函数,请改用`InvokeAsync`。
diff --git a/mkdocs-website/docs/zh/API/menu.md b/mkdocs-website/docs/zh/API/menu.md
deleted file mode 100644
index aefa5801c29..00000000000
--- a/mkdocs-website/docs/zh/API/menu.md
+++ /dev/null
@@ -1,66 +0,0 @@
-# 菜单
-
-可以创建菜单并添加到应用程序中。它们可以用于创建上下文菜单、系统托盘菜单和应用程
-序菜单。
-
-要创建一个新菜单,请调用:
-
-```go
- // 创建一个新菜单
- menu := app.NewMenu()
-```
-
-然后,`Menu` 类型上可用以下操作:
-
-### 添加
-
-API:`Add(label string) *MenuItem`
-
-此方法以 `string` 类型的 `label` 作为输入,并将具有给定标签的新 `MenuItem` 添加
-到菜单中。它返回添加的 `MenuItem`。
-
-### 添加分隔符
-
-API:`AddSeparator()`
-
-此方法将一个新的分隔符 `MenuItem` 添加到菜单中。
-
-### 添加复选框
-
-API:`AddCheckbox(label string, enabled bool) *MenuItem`
-
-此方法以 `string` 类型的 `label` 和 `bool` 类型的 `enabled` 作为输入,并将具有给
-定标签和启用状态的新复选框 `MenuItem` 添加到菜单中。它返回添加的 `MenuItem`。
-
-### 添加单选按钮
-
-API:`AddRadio(label string, enabled bool) *MenuItem`
-
-此方法以 `string` 类型的 `label` 和 `bool` 类型的 `enabled` 作为输入,并将具有给
-定标签和启用状态的新单选按钮 `MenuItem` 添加到菜单中。它返回添加的 `MenuItem`。
-
-### 更新
-
-API:`Update()`
-
-此方法处理任何单选按钮组,并在菜单未初始化时更新菜单。
-
-### 添加子菜单
-
-API:`AddSubmenu(s string) *Menu`
-
-此方法以 `string` 类型的 `s` 作为输入,并将具有给定标签的新子菜单 `MenuItem` 添
-加到菜单中。它返回添加的子菜单。
-
-### 添加角色
-
-API:`AddRole(role Role) *Menu`
-
-此方法以 `Role` 类型的 `role` 作为输入,如果不为 `nil`,则将其添加到菜单中,并返
-回 `Menu`。
-
-### 设置标签
-
-API:`SetLabel(label string)`
-
-此方法设置 `Menu` 的 `label`。
diff --git a/mkdocs-website/docs/zh/API/systray.md b/mkdocs-website/docs/zh/API/systray.md
deleted file mode 100644
index fde922e24a0..00000000000
--- a/mkdocs-website/docs/zh/API/systray.md
+++ /dev/null
@@ -1,103 +0,0 @@
-# 系统托盘
-
-系统托盘位于桌面环境的通知区域,可以包含当前运行应用程序的图标和特定系统通知。
-
-您可以通过调用 `app.NewSystemTray()` 来创建一个系统托盘:
-
-```go
- // 创建一个新的系统托盘
-tray := app.NewSystemTray()
-```
-
-`SystemTray` 类型上提供了以下方法:
-
-### SetLabel
-
-API:`SetLabel(label string)`
-
-`SetLabel` 方法设置托盘的标签。
-
-### Label
-
-API:`Label() string`
-
-`Label` 方法获取托盘的标签。
-
-### PositionWindow
-
-API:`PositionWindow(*WebviewWindow, offset int) error`
-
-`PositionWindow` 方法调用了 `AttachWindow` 和 `WindowOffset` 方法。
-
-### SetIcon
-
-API:`SetIcon(icon []byte) *SystemTray`
-
-`SetIcon` 方法设置系统托盘的图标。
-
-### SetDarkModeIcon
-
-API:`SetDarkModeIcon(icon []byte) *SystemTray`
-
-`SetDarkModeIcon` 方法设置暗黑模式下系统托盘的图标。
-
-### SetMenu
-
-API:`SetMenu(menu *Menu) *SystemTray`
-
-`SetMenu` 方法设置系统托盘的菜单。
-
-### Destroy
-
-API:`Destroy()`
-
-`Destroy` 方法销毁系统托盘实例。
-
-### OnClick
-
-API:`OnClick(handler func()) *SystemTray`
-
-`OnClick` 方法设置点击托盘图标时执行的函数。
-
-### OnRightClick
-
-API:`OnRightClick(handler func()) *SystemTray`
-
-`OnRightClick` 方法设置右键点击托盘图标时执行的函数。
-
-### OnDoubleClick
-
-API:`OnDoubleClick(handler func()) *SystemTray`
-
-`OnDoubleClick` 方法设置双击托盘图标时执行的函数。
-
-### OnRightDoubleClick
-
-API:`OnRightDoubleClick(handler func()) *SystemTray`
-
-`OnRightDoubleClick` 方法设置右键双击托盘图标时执行的函数。
-
-### AttachWindow
-
-API:`AttachWindow(window *WebviewWindow) *SystemTray`
-
-`AttachWindow` 方法将窗口附加到系统托盘。当点击系统托盘图标时,窗口将显示出来。
-
-### WindowOffset
-
-API:`WindowOffset(offset int) *SystemTray`
-
-`WindowOffset` 方法设置系统托盘与窗口之间的像素间隔。
-
-### WindowDebounce
-
-API:`WindowDebounce(debounce time.Duration) *SystemTray`
-
-`WindowDebounce` 方法设置防抖时间。在 Windows 上,它用于指定在响应通知图标上的鼠
-标松开事件之前等待多长时间。
-
-### OpenMenu
-
-API:`OpenMenu()`
-
-`OpenMenu` 方法打开与系统托盘关联的菜单。
diff --git a/mkdocs-website/docs/zh/API/window.md b/mkdocs-website/docs/zh/API/window.md
deleted file mode 100644
index 256ac490c0e..00000000000
--- a/mkdocs-website/docs/zh/API/window.md
+++ /dev/null
@@ -1,106 +0,0 @@
-# 窗口
-
-要创建一个窗口,可以使
-用[Application.NewWebviewWindow](application.md#newwebviewwindow)或[Application.NewWebviewWindowWithOptions](application.md#newwebviewwindowwithoptions)。
-前者创建一个具有默认选项的窗口,而后者允许您指定自定义选项。
-
-这些方法可在返回的WebviewWindow对象上调用:
-
-### SetTitle
-
-API: `SetTitle(title string) *WebviewWindow`
-
-此方法将窗口标题更新为提供的字符串。它返回WebviewWindow对象,允许进行方法链接。
-
-### Name
-
-API: `Name() string`
-
-此函数返回WebviewWindow的名称。
-
-### SetSize
-
-API: `SetSize(width, height int) *WebviewWindow`
-
-此方法将WebviewWindow的大小设置为提供的宽度和高度参数。如果提供的尺寸超过约束条
-件,它们将被相应调整。
-
-### SetAlwaysOnTop
-
-API: `SetAlwaysOnTop(b bool) *WebviewWindow`
-
-此函数根据提供的布尔标志设置窗口始终置顶。
-
-### Show
-
-API: `Show() *WebviewWindow`
-
-`Show`方法用于使窗口可见。如果窗口未运行,它首先调用`run`方法启动窗口,然后使其
-可见。
-
-### Hide
-
-API: `Hide() *WebviewWindow`
-
-`Hide`方法用于隐藏窗口。它将窗口的隐藏状态设置为true,并触发窗口隐藏事件。
-
-### SetURL
-
-API: `SetURL(s string) *WebviewWindow`
-
-`SetURL`方法用于将窗口的URL设置为给定的URL字符串。
-
-### SetZoom
-
-API: `SetZoom(magnification float64) *WebviewWindow`
-
-`SetZoom`方法将窗口内容的缩放级别设置为提供的放大倍数。
-
-### GetZoom
-
-API: `GetZoom() float64`
-
-`GetZoom`函数返回窗口内容的当前缩放级别。
-
-### GetScreen
-
-API: `GetScreen() (*Screen, error)`
-
-`GetScreen`方法返回窗口所显示的屏幕。
-
-#### SetFrameless
-
-API: `SetFrameless(frameless bool) *WebviewWindow`
-
-此函数用于移除窗口边框和标题栏。它根据提供的布尔值(true表示无边框,false表示有
-边框)切换窗口的无边框状态。
-
-#### RegisterContextMenu
-
-API: `RegisterContextMenu(name string, menu *Menu)`
-
-此函数用于注册上下文菜单并为其指定给定的名称。
-
-#### NativeWindowHandle
-
-API: `NativeWindowHandle() (uintptr, error)`
-
-此函数用于获取窗口的平台本机窗口句柄。
-
-#### Focus
-
-API: `Focus()`
-
-此函数用于将焦点设置到窗口。
-
-#### SetEnabled
-
-API: `SetEnabled(enabled bool)`
-
-此函数用于根据提供的布尔值启用/禁用窗口。
-
-#### SetAbsolutePosition
-
-API: `SetAbsolutePosition(x int, y int)`
-
-此函数设置窗口在屏幕上的绝对位置。
diff --git a/mkdocs-website/docs/zh/changelog.md b/mkdocs-website/docs/zh/changelog.md
deleted file mode 100644
index bcd1a9bb4ce..00000000000
--- a/mkdocs-website/docs/zh/changelog.md
+++ /dev/null
@@ -1,44 +0,0 @@
-# 更新日志
-
-
-
-## [未发布]
-
-### Added
-
-- [darwin] 添加Event ApplicationShouldHandleReopen以处理单击dock图标的功能
- @5aaee9 in [#2991](https://github.com/wailsapp/wails/pull/2991)
-- [darwin] 添加getPrimaryScreen/getScreens的实现 @tmclane in
- [#2618](https://github.com/wailsapp/wails/pull/2618)
-
-### Fixed
-
-- 修复Doctor apt软件包验证问题 [Atterpac](https://github.com/Atterpac) in
- [#2972](https://github.com/wailsapp/wails/pull/2972)。
-- 修复应用程序在退出时冻结的问题 (Darwin) @5aaee9 in
- [#2982](https://github.com/wailsapp/wails/pull/2982)
-- 修复Windows上示例的背景颜色问题 [mmgvh](https://github.com/mmghv) in
- [#2750](https://github.com/wailsapp/wails/pull/2750)。
-- 修复默认上下文菜单问题 [mmgvh](https://github.com/mmghv) in
- [#2753](https://github.com/wailsapp/wails/pull/2753)。
-
-### Changed
-
-### Removed
-
-### Deprecated
-
-### Security
diff --git a/mkdocs-website/docs/zh/development/changes.md b/mkdocs-website/docs/zh/development/changes.md
deleted file mode 100644
index f830d67ef32..00000000000
--- a/mkdocs-website/docs/zh/development/changes.md
+++ /dev/null
@@ -1,402 +0,0 @@
-# v3的更改
-
-!!! note这是当前的无序更改脑升级。很快它将组织成一个更易读的格式。
-
-## 选项
-
-自v2以来,应用程序选项已经进行了修订。
-
-## 事件
-
-在v3中,有3种类型的事件:
-
-- 应用程序事件
-- 窗口事件
-- 自定义事件
-
-### 应用程序事件
-
-应用程序事件是由应用程序发出的事件。这些事件包括macOS上
-的`ApplicationDidFinishLaunching`等本机事件。
-
-### 窗口事件
-
-窗口事件是由窗口发出的事件。这些事件包括macOS上的`WindowDidBecomeMain`等本机事
-件。还定义了常见事件,以便它们在跨平台上工作,例如`WindowClosing`。
-
-### 自定义事件
-
-用户定义的事件称为`WailsEvents`。这是为了将它们与用于与浏览器通信的`Event`对象区
-分开来。WailsEvents现在是封装事件的对象。这包括事件名称,数据和事件的源。
-
-与WailsEvent关联的数据现在是单个值。如果需要多个值,则可以使用struct。
-
-### 事件回调和`Emit`函数签名
-
-事件回调的签名(由`On`,`Once`和`OnMultiple`使用)已更改。在v2中,回调函数接收可
-选数据。在v3中,回调函数接收包含与事件相关的所有数据的`WailsEvent`对象。
-
-类似地,`Emit`函数已更改。它现在不再接受名称和可选数据,而是接受一
-个`WailsEvent`对象,它将发出该对象。
-
-### `Off`和`OffAll`
-
-在v2中,`Off`和`OffAll`调用将删除JS和Go中的事件。由于v3具有多窗口的特性,因此已
-更改为这些方法仅适用于调用它们的上下文。例如,如果你在一个窗口中调用`Off`,它仅
-会删除该窗口的事件。如果你在Go中使用`Off`,它只会删除Go的事件。
-
-### Hooks
-
-事件钩子是v3中的新功能。它们允许您钩入事件系统,并在发出某些事件时执行操作。例
-如,您可以钩入`WindowClosing`事件,在窗口关闭之前执行一些清理操作。钩子可以在应
-用程序级别或窗口级别使用`RegisterHook`进行注册。应用程序级别适用于应用程序事件。
-仅当窗口级别钩子与其注册的窗口一起调用。
-
-### 日志记录
-
-在v2中,日志记录会混淆,因为应用程序日志和系统(内部)日志都使用相同的记录器。我
-们已经对此进行了简化:
-
-- 内部日志现在使用标准的Go `slog`记录器处理。这是通过应用程序选项中的`logger`选
- 项进行配置的。默认情况下,这使用[tint](https://github.com/lmittmann/tint)记录
- 器。
-- 现在可以通过新的`log`插件进行应用程序日志记录,它在底层使用`slog`。此插件提供
- 了一个简单的用于记录到控制台的API。它在Go和JS中都可用。
-
-### 开发人员注意事项
-
-在Go中发出事件时,它会将事件分派到本地的Go侦听器以及应用程序中的每个窗口。在JS中
-发出事件时,它现在会将事件发送到应用程序。这将被处理,就好像它是在Go中发出的,但
-是发送者ID将是窗口的ID。
-
-## 窗口
-
-Window API在很大程度上保持不变,但方法现在是在窗口实例而不是运行时上。一些值得注
-意的变化是:
-
-- 窗口现在具有标识它们的名称。用于在发出事件时标识窗口。
-- 窗口上现在有更多以前不可用的方法,例如`AbsolutePosition`和`ToggleDevTools`。
-- 窗口现在可以通过本机拖放接受文件。有关详细信息,请参阅拖放部分。
-
-## 剪切板
-
-剪贴板API已经简化。现在有一个单独的`Clipboard`对象,可以用于读取和写入剪贴
-板。`Clipboard`对象在Go和JS中都可用。`SetText()`用于设置文本,`Text()`用于获取文
-本。
-
-## 绑定
-
-绑定的工作方式与v2类似,通过提供一种将结构方法绑定到前端的方式。这些可以在前端使
-用由`wails3 generate bindings`命令生成的绑定包装器来调用:
-
-```javascript
-// @ts-check
-// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
-// This file is automatically generated. DO NOT EDIT
-
-import { main } from "./models";
-
-window.go = window.go || {};
-window.go.main = {
- GreetService: {
- /**
- * GreetService.Greet
- * Greet greets a person
- * @param name {string}
- * @returns {Promise}
- **/
- Greet: function (name) {
- wails.CallByID(1411160069, ...Array.prototype.slice.call(arguments, 0));
- },
-
- /**
- * GreetService.GreetPerson
- * GreetPerson greets a person
- * @param person {main.Person}
- * @returns {Promise}
- **/
- GreetPerson: function (person) {
- wails.CallByID(4021313248, ...Array.prototype.slice.call(arguments, 0));
- },
- },
-};
-```
-
-默认情况下,绑定的方法是混淆的,并使用uint32 ID进行标识,该ID是使
-用[FNV哈希算法](https://en.wikipedia.org/wiki/Fowler%E2%80%93Noll%E2%80%93Vo_hash_function)计
-算的。这是为了防止方法名称在生产构建中被暴露出来。在调试模式下,方法ID与计算的方
-法ID一起记录,以帮助调试。如果您希望增加额外的混淆层,可以使用`BindAliases`选
-项。这允许您指定别名ID与方法ID的映射。当前端使用ID调用方法时,方法ID将首先在别名
-映射中查找匹配项。如果找不到,它将假定是标准方法ID,并尝试以通常的方式查找方法。
-
-示例:
-
-```go
- app := application.New(application.Options{
- Bind: []any{
- &GreetService{},
- },
- BindAliases: map[uint32]uint32{
- 1: 1411160069,
- 2: 4021313248,
- },
- Assets: application.AssetOptions{
- Handler: application.AssetFileServerFS(assets),
- },
- Mac: application.MacOptions{
- ApplicationShouldTerminateAfterLastWindowClosed: true,
- },
- })
-```
-
-现在我们可以使用此别名在前端调用:`wails.Call(1, "world!")`。
-
-### 不安全调用
-
-如果您不介意在二进制文件中以明文形式提供调用,并且不打算使
-用[garble](https://github.com/burrowers/garble),那么可以使用不安全
-的`wails.CallByName()`方法。此方法接受要调用的方法的完全限定名称和要传递给它的参
-数。示例:
-
- ```go
- wails.CallByName("main.GreetService.Greet", "world!")
- ```
-
-!!! danger
-
- 这仅作为开发的便利方法提供。不建议在生产中使用此方法。
-
-## 对话框
-
-对话框现在在JavaScript中可用!
-
-### Windows
-
-Windows中的对话框按钮是不可配置的,根据对话框的类型是恒定的。要在按下按钮时触发
-回调,请创建一个具有与您希望附加回调的按钮相同名称的按钮。示例:创建一个标签为“
-确定”的按钮,并使用`OnClick()`方法设置回调方法:
-
-```go
- dialog := app.QuestionDialog().
- SetTitle("Update").
- SetMessage("The cancel button is selected when pressing escape")
- ok := dialog.AddButton("Ok")
- ok.OnClick(func() {
- // Do something
- })
- no := dialog.AddButton("Cancel")
- dialog.SetDefaultButton(ok)
- dialog.SetCancelButton(no)
- dialog.Show()
-```
-
-## 拖放
-
-可以按窗口启用本机拖放。只需将`EnableDragAndDrop`窗口配置选项设置为`true`,窗口
-将允许将文件拖放到其上。当这种情况发生时,将发出`events.FilesDropped`事件。然后
-可以使用`WindowEvent.Context()`中的`DroppedFiles()`方法检索文件名。这将返回一个
-包含文件名的字符串切片。
-
-## 上下文菜单
-
-上下文菜单是当用户右键单击元素时显示的上下文菜单。创建上下文菜单与创建标准菜单相
-同,使用`app.NewMenu()`。要使上下文菜单对窗口可用,请调
-用`window.RegisterContextMenu(name, menu)`。名称将是上下文菜单的ID,并由前端使
-用。
-
-要指示元素具有上下文菜单,请将`data-contextmenu`属性添加到元素。此属性的值应为先
-前在窗口中注册的上下文菜单的名称。
-
-可以在应用程序级别注册上下文菜单,使其对所有窗口可用。可以使
-用`app.RegisterContextMenu(name, menu)`完成此操作。如果在窗口级别找不到上下文菜
-单,则将检查应用程序上下文菜单。`v3/examples/contextmenus`中可以找到此演示。
-
-## Wails标记语言(WML)
-
-Wails标记语言是一种简单的标记语言,允许您在没有JavaScript的情况下向标准HTML元素
-添加功能。
-
-当前支持以下标签:
-
-### `data-wml-event`
-
-这指定单击元素时将发出Wails事件。属性的值应为要发出的事件的名称。
-
-示例:
-
-```html
-
-```
-
-有时您需要用户确认操作。可以通过向元素添加`data-wml-confirm`属性来完成。此属性的
-值将是要显示给用户的消息。
-
-示例:
-
-```html
-
-```
-
-### `data-wml-window`
-
-可以通过将`data-wml-window`属性添加到元素中来调用任何`wails.window`方法。属性的
-值应为要调用的方法的名称。方法名称应与导出的方法的名称完全匹配。
-
-```html
-
-```
-
-### `data-wml-trigger`
-
-此属性指定应触发操作的javascript事件。默认为`click`。
-
-```html
-
-```
-
-## 系统托盘
-
-Wails 3附带了一个内置的系统托盘。这是一个完全功能的系统托盘,旨在尽可能简单地使
-用。可以设置托盘的图标、工具提示和菜单。还可以“附加”窗口到系统托盘。这样做将提供
-以下功能:
-
-- 单击托盘图标会切换窗口可见性
-- 右键单击托盘将打开菜单(如果有)
-
-在macOS上,如果没有附加的窗口,则托盘将使用显示菜单的默认方法(任何按钮)。如果
-有附加的窗口但没有菜单,则托盘将切换窗口,而不管按下的按钮如何。
-
-## 插件
-
-插件是扩展Wails应用程序功能的一种方式。
-
-### 创建插件
-
-插件是符合以下接口的标准Go结构:
-
-```go
-type Plugin interface {
- Name() string
- Init(*application.App) error
- Shutdown()
- CallableByJS() []string
- InjectJS() string
-}
-```
-
-`Name()`方法返回插件的名称。这用于记录目的。
-
-`Init(*application.App) error`方法在加载插件时调用。`*application.App`参数是加载
-插件的应用程序。任何错误都将阻止应用程序启动。
-
-`Shutdown()`方法在应用程序关闭时调用。
-
-`CallableByJS()`方法返回可以从前端调用的导出函数列表。这些方法名称必须与插件导出
-的方法名称完全匹配。
-
-`InjectJS()`方法返回应注入到创建的所有窗口中的JavaScript。这对于添加与插件补充的
-自定义JavaScript函数很有用。
-
-### 提示
-
-#### 枚举
-
-在Go中,枚举通常被定义为类型和一组常量。例如:
-
-```go
-type MyEnum int
-
-const (
- MyEnumOne MyEnum = iota
- MyEnumTwo
- MyEnumThree
-)
-```
-
-由于Go和JavaScript之间的不兼容性,无法以这种方式使用自定义类型。最好的策略是为
-float64使用类型别名:
-
-```go
-type MyEnum = float64
-
-const (
- MyEnumOne MyEnum = iota
- MyEnumTwo
- MyEnumThree
-)
-```
-
-在Javascript中,您可以使用以下代码:
-
-```js
-const MyEnum = {
- MyEnumOne: 0,
- MyEnumTwo: 1,
- MyEnumThree: 2,
-};
-```
-
-- 为什么使用`float64`?不能使用`int`吗?
- - 因为JavaScript没有“int”的概念。一切都是`number`,在Go中会转换为`float64`。Go
- 的反射包中还有类型转换的限制,这意味着使用`int`是行不通的。
-
-### BackgroundColour
-
-在v2中,这是指向`RGBA`结构的指针。在v3中,这是`RGBA`结构的值。
-
-### WindowIsTranslucent
-
-已删除此标志。现在有一个`BackgroundType`标志,可用于设置窗口应具有的背景类型。此
-标志可以设置为以下任何值:
-
-- `BackgroundTypeSolid` - 窗口将具有实心背景
-- `BackgroundTypeTransparent` - 窗口将具有透明背景
-- `BackgroundTypeTranslucent` - 窗口将具有半透明背景
-
-在Windows上,如果`BackgroundType`设置为`BackgroundTypeTranslucent`,则可以使
-用`WindowsWindow`选项中的`BackdropType`标志设置透明度的类型。这可以设置为以下任
-何值:
-
-- `Auto` - 窗口将使用系统确定的效果
-- `None` - 窗口没有背景
-- `Mica` - 窗口使用Mica效果
-- `Acrylic` - 窗口使用丙烯酸效果
-- `Tabbed` - 窗口使用选项卡效果
-
-## Windows Application Options
-
-### WndProcInterceptor
-
-如果设置了此标志,将拦截WndProc并调用该函数。这允许您直接处理Windows消息。该函数
-应具有以下签名:
-
-```go
-func(hwnd uintptr, msg uint32, wParam, lParam uintptr) (returnValue uintptr, shouldReturn)
-```
-
-如果`shouldReturn`值设置为`true`,则`returnValue`将由主wndProc方法返回。如果设置
-为`false`,将忽略返回值,并且消息将继续由主wndProc方法处理。
-
-## 在关闭时隐藏窗口+OnBeforeClose
-
-在v2中,有一个`HideWindowOnClose`标志,用于在关闭窗口时隐藏窗
-口。`HideWindowOnClose`标志与`OnBeforeClose`回调之间存在逻辑重叠。在v3中,已删
-除`HideWindowOnClose`标志,并将`OnBeforeClose`回调重命名为`ShouldClose`。当用户
-尝试关闭窗口时,将调用`ShouldClose`回调。如果回调返回`true`,窗口将关闭。如果返
-回`false`,窗口将不会关闭。这可以用于隐藏窗口而不是关闭窗口。
-
-## 窗口拖动
-
-在v2中,使用`--wails-drag`属性来指示可以使用元素拖动窗口。在v3中,已将其替换
-为`--webkit-app-region`,以更符合其他框架处理方式。`--webkit-app-region`属性可以
-设置为以下任何值:
-
-- `drag` - 可使用该元素拖动窗口
-- `no-drag` - 该元素无法用于拖动窗口
-
-我们本来希望使用`app-region`,但是在webkit在macOS上的`getComputedStyle`调用不支
-持它。
diff --git a/mkdocs-website/docs/zh/development/introduction.md b/mkdocs-website/docs/zh/development/introduction.md
deleted file mode 100644
index d0f8bf4063d..00000000000
--- a/mkdocs-website/docs/zh/development/introduction.md
+++ /dev/null
@@ -1,185 +0,0 @@
-# 介绍
-
-!!! note 这个指南仍在制作中。
-
-感谢您想要帮助开发Wails!本指南将帮助您入门。
-
-## 入门指南
-
-- Git 克隆此存储库。切换到 `v3-alpha` 分支。
-- 安装 CLI:`cd v3/cmd/wails3 && go install`
-
-- 可选:如果您想要使用构建系统构建前端代码,您需要安装
- [npm](https://nodejs.org/en/download)。
-
-## 构建
-
-对于简单的程序,您可以使用标准的 `go build` 命令。也可以使用 `go run`。
-
-Wails 还配备了一个构建系统,可用于构建更复杂的项目。它使用了强大的
-[Task](https://taskfile.dev) 构建系统。要了解更多信息,请查看任务主页或运行
-`wails task --help`。
-
-## 项目结构
-
-该项目具有以下结构:
-
- ```
- v3
- ├── cmd/wails3 // CLI
- ├── examples // Wails 应用示例
- ├── internal // 内部包
- | ├── runtime // Wails JS 运行时
- | └── templates // 支持的项目模板
- ├── pkg
- | ├── application // 核心 Wails 库
- | └── events // 事件定义
- | └── mac // 由插件使用的 macOS 特定代码
- | └── w32 // Windows 特定代码
- ├── plugins // 支持的插件
- ├── tasks // 通用任务
- └── Taskfile.yaml // 开发任务配置
- ```
-
-## 开发
-
-### 添加窗口功能
-
-添加窗口功能的首选方法是在 `pkg/application/webview_window.go` 文件中添加一个新
-函数。这应该实现所有平台所需的功能。任何特定于平台的代码都应通过
-`webviewWindowImpl` 接口方法调用。该接口由每个目标平台实现,以提供平台特定的功
-能。在某些情况下,这可能不执行任何操作。添加接口方法后,请确保每个平台都实现了
-它。一个很好的例子是 `SetMinSize` 方法。
-
-- Mac: `webview_window_darwin.go`
-- Windows: `webview_window_windows.go`
-- Linux: `webview_window_linux.go`
-
-大多数,如果不是全部,特定于平台的代码应在主线程上运行。为了简化这一点,在
-`application.go` 中定义了一些 `invokeSync` 方法。
-
-### 更新运行时
-
-运行时位于 `v3/internal/runtime`。更新运行时时,需要执行以下步骤:
-
-```shell
-wails3 task runtime:build
-```
-
-### 事件
-
-事件定义在 `v3/pkg/events` 中。当添加新事件时,需要执行以下步骤:
-
-- 将事件添加到 `events.txt` 文件中
-- 运行 `wails3 task events:generate`
-
-有几种类型的事件:特定于平台的应用程序和窗口事件 + 通用事件。通用事件对于跨平台
-事件处理很有用,但您不必局限于“最低公共分母”。如果需要,可以使用特定于平台的事
-件。
-
-添加通用事件时,请确保映射了特定于平台的事件。一个示例是在
-`window_webview_darwin.go` 中:
-
-```go
- // 将 ShouldClose 转化为通用的 WindowClosing 事件
- w.parent.On(events.Mac.WindowShouldClose, func(_ *WindowEventContext) {
- w.parent.emit(events.Common.WindowClosing)
- })
-```
-
-注意:我们可能会尝试通过将映射添加到事件定义中来自动化此过程。
-
-### 插件
-
-插件是扩展 Wails 应用功能的一种方式。
-
-#### 创建插件
-
-插件是符合以下接口的标准 Go 结构:
-
-```go
-type Plugin interface {
- Name() string
- Init(*application.App) error
- Shutdown()
- CallableByJS() []string
- InjectJS() string
-}
-```
-
-`Name()` 方法返回插件的名称。这用于日志记录。
-
-`Init(*application.App) error` 方法在加载插件时调用。`*application.App` 参数是加
-载插件的应用程序。任何错误都将阻止应用程序启动。
-
-`Shutdown()` 方法在应用程序关闭时调用。
-
-`CallableByJS()` 方法返回可以从前端调用的导出函数列表。这些方法的名称必须与插件
-导出的方法的名称完全匹配。
-
-`InjectJS()` 方法返回应注入到所有窗口中的 JavaScript。这对于添加与插件相补充的自
-定义 JavaScript 函数非常有用。
-
-内置插件可以在 `v3/plugins` 目录中找到。参考它们以获得灵感。
-
-## 任务
-
-Wails CLI 使用 [Task](https://taskfile.dev) 构建系统。它作为库导入并用于运行
-`Taskfile.yaml` 中定义的任务。与 Task 的主要交互发生在
-`v3/internal/commands/task.go` 中。
-
-### 升级 Taskfile
-
-要检查是否有 Taskfile 的升级,请运行 `wails3 task -version` 并检查 Task 网站。
-
-要升级使用的 Taskfile 版本,请运行:
-
-```shell
-wails3 task taskfile:upgrade
-```
-
-如果存在不兼容性,则应在 `v3/internal/commands/task.go` 文件中显示。
-
-通常,修复不兼容性的最佳方法是克隆 `https://github.com/go-task/task` 上的任务存
-储库,并查看 git 历史记录以确定发生了什么变化以及原因。
-
-要检查所有更改是否正确工作,请重新安装 CLI 并再次检查版本:
-
-```shell
-wails3 task cli:install
-wails3 task -version
-```
-
-## 打开 PR
-
-确保所有 PR 都有与之关联的工单,以提供更改的上下文。如果没有工单,请先创建一个。
-确保所有 PR 都已使用所做的更改更新了 CHANGELOG.md 文件。CHANGELOG.md 文件位于
-`mkdocs-website/docs` 目录中。
-
-## 其他任务
-
-### 升级 Taskfile
-
-Wails CLI 使用 [Task](https://taskfile.dev) 构建系统。它作为库导入并用于运行
-`Taskfile.yaml` 中定义的任务。与 Task 的主要交互发生在
-`v3/internal/commands/task.go` 中。
-
-要检查是否有 Taskfile 的升级,请运行 `wails3 task -version` 并检查 Task 网站。
-
-要升级使用的 Taskfile 版本,请运行:
-
-```shell
-wails3 task taskfile:upgrade
-```
-
-如果存在不兼容性,则应在 `v3/internal/commands/task.go` 文件中显示。
-
-通常,修复不兼容性的最佳方法是克隆 `https://github.com/go-task/task` 上的任务存
-储库,并查看 git 历史记录以确定发生了什么变化以及原因。
-
-要检查所有更改是否正确工作,请重新安装 CLI 并再次检查版本:
-
-```shell
-wails3 task cli:install
-wails3 task -version
-```
diff --git a/mkdocs-website/docs/zh/development/status.md b/mkdocs-website/docs/zh/development/status.md
deleted file mode 100644
index 75eed8a14f8..00000000000
--- a/mkdocs-website/docs/zh/development/status.md
+++ /dev/null
@@ -1,382 +0,0 @@
-将以下文本翻译为中文,并不要翻译 `!!! note` 或 `!!! tip` 或以此格式的字符串:
-
-# 状态
-
-v3版功能的状态。
-
-!!! note
-
- 此列表包含公有和内部API支持的混合内容。
- 它不完整且可能不是最新的。
-
-## 已知问题
-
-- Linux尚未与Windows/Mac达到功能平衡
-
-## 应用程序
-
-应用程序接口方法
-
-| 方法 | Windows | Linux | Mac | 备注 |
-| ------------------------------------------------------------- | ------- | ----- | --- | ---- |
-| run() error | Y | Y | Y | |
-| destroy() | | Y | Y | |
-| setApplicationMenu(menu \*Menu) | Y | Y | Y | |
-| name() string | | Y | Y | |
-| getCurrentWindowID() uint | Y | Y | Y | |
-| showAboutDialog(name string, description string, icon []byte) | | Y | Y | |
-| setIcon(icon []byte) | - | Y | Y | |
-| on(id uint) | | | Y | |
-| dispatchOnMainThread(fn func()) | Y | Y | Y | |
-| hide() | Y | Y | Y | |
-| show() | Y | Y | Y | |
-| getPrimaryScreen() (\*Screen, error) | | Y | Y | |
-| getScreens() ([]\*Screen, error) | | Y | Y | |
-
-## Webview 窗口
-
-Webview 窗口接口方法
-
-| 方法 | Windows | Linux | Mac | 备注 |
-| -------------------------------------------------- | ------- | ----- | --- | -------------------- |
-| center() | Y | Y | Y | |
-| close() | y | Y | Y | |
-| destroy() | | Y | Y | |
-| execJS(js string) | y | Y | Y | |
-| focus() | Y | Y | | |
-| forceReload() | | Y | Y | |
-| fullscreen() | Y | Y | Y | |
-| getScreen() (\*Screen, error) | y | Y | Y | |
-| getZoom() float64 | | Y | Y | |
-| height() int | Y | Y | Y | |
-| hide() | Y | Y | Y | |
-| isFullscreen() bool | Y | Y | Y | |
-| isMaximised() bool | Y | Y | Y | |
-| isMinimised() bool | Y | Y | Y | |
-| maximise() | Y | Y | Y | |
-| minimise() | Y | Y | Y | |
-| nativeWindowHandle() (uintptr, error) | Y | Y | | |
-| on(eventID uint) | y | | Y | |
-| openContextMenu(menu *Menu, data *ContextMenuData) | y | | Y | |
-| relativePosition() (int, int) | Y | Y | Y | |
-| reload() | y | Y | Y | |
-| run() | Y | Y | Y | |
-| setAlwaysOnTop(alwaysOnTop bool) | Y | Y | Y | |
-| setBackgroundColour(color RGBA) | Y | Y | Y | |
-| setEnabled(bool) | | Y | Y | |
-| setFrameless(bool) | | Y | Y | |
-| setFullscreenButtonEnabled(enabled bool) | - | Y | Y | Windows 没有全屏按钮 |
-| setHTML(html string) | Y | Y | Y | |
-| setMaxSize(width, height int) | Y | Y | Y | |
-| setMinSize(width, height int) | Y | Y | Y | |
-| setRelativePosition(x int, y int) | Y | Y | Y | |
-| setResizable(resizable bool) | Y | Y | Y | |
-| setSize(width, height int) | Y | Y | Y | |
-| setTitle(title string) | Y | Y | Y | |
-| setURL(url string) | Y | Y | Y | |
-| setZoom(zoom float64) | Y | Y | Y | |
-| show() | Y | Y | Y | |
-| size() (int, int) | Y | Y | Y | |
-| toggleDevTools() | Y | Y | Y | |
-| unfullscreen() | Y | Y | Y | |
-| unmaximise() | Y | Y | Y | |
-| unminimise() | Y | Y | Y | |
-| width() int | Y | Y | Y | |
-| zoom() | | Y | Y | |
-| zoomIn() | Y | Y | Y | |
-| zoomOut() | Y | Y | Y | |
-| zoomReset() | Y | Y | Y | |
-
-## 运行时
-
-### 应用程序
-
-| 功能 | Windows | Linux | Mac | 备注 |
-| ---- | ------- | ----- | --- | ---- |
-| 退出 | Y | Y | Y | |
-| 隐藏 | Y | | Y | |
-| 显示 | Y | | Y | |
-
-### 对话框
-
-| 功能 | Windows | Linux | Mac | 备注 |
-| -------- | ------- | ----- | --- | ---- |
-| 信息 | Y | Y | Y | |
-| 警告 | Y | Y | Y | |
-| 错误 | Y | Y | Y | |
-| 问题 | Y | Y | Y | |
-| 打开文件 | Y | | Y | |
-| 保存文件 | Y | | Y | |
-
-### 剪贴板
-
-| 功能 | Windows | Linux | Mac | 备注 |
-| -------- | ------- | ----- | --- | ---- |
-| 设置文本 | Y | | Y | |
-| 文本 | Y | | Y | |
-
-### 上下文菜单
-
-| 功能 | Windows | Linux | Mac | 备注 |
-| -------------- | ------- | ----- | --- | ---- |
-| 打开上下文菜单 | Y | | Y | |
-| 默认开启 | | | | |
-| 通过 HTML 控制 | Y | | | |
-
-默认上下文菜单默认对所有`contentEditable: true`、``或`