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