wails/v3/examples
Lea Anthony 6d4900a832 ## Summary
I've successfully implemented Windows Jumplists for Wails v3 with the following features:

### 1. **Windows Implementation** (`jumplist_windows.go`)
- Full COM interface implementation for ICustomDestinationList, IShellLink, IPropertyStore, and IObjectCollection
- Support for custom categories and tasks
- Runtime configuration capabilities
- Proper error handling and cleanup

### 2. **Cross-Platform Stubs**
- Created stub implementations for macOS (`jumplist_darwin.go`) and Linux (`jumplist_linux.go`)
- These are no-ops that prevent compilation errors on non-Windows platforms

### 3. **API Integration**
- Added `CreateJumpList()` method to the main App struct
- Platform-specific dispatch to the correct implementation

### 4. **Example Application**
- Created a complete example in `v3/examples/jumplist/`
- Demonstrates custom categories, tasks, and runtime configuration
- Includes comprehensive documentation

### Key Features:
- **Custom Categories**: Applications can create named categories like "Recent Documents"
- **Tasks**: Common application tasks that appear at the bottom of the jump list
- **Runtime Configuration**: Jump lists can be updated at any time during application execution
- **Cross-Platform Safe**: The API gracefully handles non-Windows platforms

### Usage Example:
```go
jumpList := app.CreateJumpList()
jumpList.AddCategory(application.JumpListCategory{
    Name: "Recent Files",
    Items: []application.JumpListItem{
        {
            Type:        application.JumpListItemTypeTask,
            Title:       "Document.txt",
            FilePath:    "path/to/app.exe",
            Arguments:   "--open Document.txt",
        },
    },
})
jumpList.Apply()
```

The implementation follows Windows jumplist specifications and integrates seamlessly with the existing Wails v3 architecture.
2025-08-05 09:20:19 +10:00
..
binding [v3 examples/bindings] correct binding output + example 2023-10-31 17:24:00 -05:00
build Mac examples + readme updated 2023-10-17 20:25:36 +11:00
clipboard Mac examples + readme updated 2023-10-17 20:25:36 +11:00
contextmenus Mac examples + readme updated 2023-10-17 20:25:36 +11:00
dev [darwin] Fix menu icon 2023-10-22 14:34:04 +11:00
dialogs Mac examples + readme updated 2023-10-17 20:25:36 +11:00
drag-n-drop [windows] Drag-n-drop support 2023-10-21 11:21:10 +11:00
events Fix context menu issues. 2023-10-10 21:48:47 +11:00
frameless Update docs 2023-10-28 15:44:36 +11:00
hide-window darwin: add event ApplicationShouldHandleReopen (#2991) 2023-10-22 21:12:12 +11:00
jumplist ## Summary 2025-08-05 09:20:19 +10:00
keybindings Mac examples + readme updated 2023-10-17 20:25:36 +11:00
menu Initial menu item bitmap support 2023-10-22 09:32:04 +11:00
oauth Add BrowserOpenURL and BrowserOpenFile to App. 2023-10-11 20:23:59 +11:00
plain Mac examples + readme updated 2023-10-17 20:25:36 +11:00
plugins [darwin] Fix menu icon 2023-10-22 14:34:04 +11:00
screen Mac examples + readme updated 2023-10-17 20:25:36 +11:00
server [darwin] Fix menu icon 2023-10-22 14:34:04 +11:00
systray [v3 linux] dbus menu icon support 2023-10-26 16:56:06 -05:00
video [darwin] Support Ignore mouse events 2023-10-29 20:29:45 +11:00
window [darwin] Support Ignore mouse events 2023-10-29 20:29:45 +11:00
wml Mac examples + readme updated 2023-10-17 20:25:36 +11:00
README.md Mac examples + readme updated 2023-10-17 20:25:36 +11:00

v3

This directory is experimental. It probably won't work for you. There's no support for this directory. Dragons be here. You have been warned!

The examples in this directory may or may not compile / run at any given time. But the general method to try them out is as follows:

Running the examples

cd v3/examples/<example>
go mod tidy
go run .

Compiling the examples

cd v3/examples/<example>
go mod tidy
go build
./<example>