mirror of
https://github.com/wailsapp/wails.git
synced 2026-03-16 07:35:51 +01:00
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.
|
||
|---|---|---|
| .. | ||
| binding | ||
| build | ||
| clipboard | ||
| contextmenus | ||
| dev | ||
| dialogs | ||
| drag-n-drop | ||
| events | ||
| frameless | ||
| hide-window | ||
| jumplist | ||
| keybindings | ||
| menu | ||
| oauth | ||
| plain | ||
| plugins | ||
| screen | ||
| server | ||
| systray | ||
| video | ||
| window | ||
| wml | ||
| README.md | ||
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>