wails/v3/pkg/application
Lea Anthony dd67cbefeb Perfect! I've successfully refactored the code to have a common jumplist.go file with all the shared structs and methods. This eliminates code duplication across platforms. Here's what the refactoring accomplished:
## Summary of Refactoring

### 1. **Common File** (`jumplist.go`)
- Contains all shared structs: `JumpListItemType`, `JumpListItem`, `JumpListCategory`, and `JumpList`
- Implements common methods: `AddCategory()`, `ClearCategories()`, and `Apply()`
- The `Apply()` method calls the platform-specific `applyPlatform()` method

### 2. **Platform-Specific Files**
- **Windows** (`jumplist_windows.go`): Contains only Windows-specific implementation
  - COM interface definitions and implementations
  - `CreateJumpList()` method for windowsApp
  - `applyPlatform()` method with the actual Windows jumplist logic
  
- **macOS** (`jumplist_darwin.go`): Minimal stub implementation
  - `CreateJumpList()` method for darwinApp
  - `applyPlatform()` method that returns nil (no-op)
  
- **Linux** (`jumplist_linux.go`): Minimal stub implementation
  - `CreateJumpList()` method for linuxApp
  - `applyPlatform()` method that returns nil (no-op)

### Benefits
- **No code duplication**: All common structs and logic are in one place
- **Cleaner platform files**: Platform-specific files only contain platform-specific code
- **Easier maintenance**: Changes to the API only need to be made in one place
- **Type safety**: The common interface ensures all platforms implement the required methods

The API remains exactly the same for users, but the implementation is now much cleaner and more maintainable.
2025-08-05 09:25:09 +10:00
..
assets/alpha Mac examples + readme updated 2023-10-17 20:25:36 +11:00
application.go ## Summary 2025-08-05 09:20:19 +10:00
application_darwin.go darwin: add event ApplicationShouldHandleReopen (#2991) 2023-10-22 21:12:12 +11:00
application_darwin.h [v3 darwin] Add darwin identifier to all C files of darwin 2023-05-30 16:32:00 +08:00
application_darwin_delegate.h [darwin] Support Ignore mouse events 2023-10-29 20:29:45 +11:00
application_darwin_delegate.m [darwin] Support Ignore mouse events 2023-10-29 20:29:45 +11:00
application_debug.go Fix version in debug build 2023-09-04 19:51:48 +10:00
application_linux.go Revert "[linux] Implement events" 2023-10-07 12:21:49 +11:00
application_production.go Fix production build 2023-09-01 22:06:43 +10:00
application_windows.go Fix context menu issues. 2023-10-10 21:48:47 +11:00
bindings.go Fix modifier processing on windows. 2023-10-15 13:53:31 +11:00
clipboard.go [linux] support clipboard 2023-10-02 20:47:04 +11:00
clipboard_darwin.go [v3 windows] Add clipboard support 2023-06-10 13:01:10 +10:00
clipboard_linux.go [v3] move linux clipboard logic to linux_cgo 2023-10-02 11:07:12 -05:00
clipboard_windows.go [v3 windows] Add clipboard support 2023-06-10 13:01:10 +10:00
context.go Support context menus 2023-02-10 08:25:52 +11:00
context_application_event.go darwin: add event ApplicationShouldHandleReopen (#2991) 2023-10-22 21:12:12 +11:00
context_window_event.go [windows] Drag-n-drop support 2023-10-21 11:21:10 +11:00
dialogs.go [v3] send dialog results over channels 2023-10-02 11:07:12 -05:00
dialogs_darwin.go [v3] send dialog results over channels 2023-10-02 11:07:12 -05:00
dialogs_darwin_delegate.h [v3 darwin] Add darwin identifier to all C files of darwin 2023-05-30 16:32:00 +08:00
dialogs_darwin_delegate.m [v3 darwin] Add darwin identifier to all C files of darwin 2023-05-30 16:32:00 +08:00
dialogs_linux.go [v3] send dialog results over channels 2023-10-02 11:07:12 -05:00
dialogs_windows.go Custom icon shows app icon 2023-10-11 21:29:40 +11:00
errors.go merge exp branch 2023-01-18 21:42:49 +11:00
events.go [v3] WailsEvent expose ToJSON 2023-09-28 11:39:44 -05:00
events_common_darwin.go Support IsDarkMode in application event context. Fix bug with event mapping. 2023-09-15 20:10:09 +10:00
events_common_windows.go Fix context menu issues. 2023-10-10 21:48:47 +11:00
events_test.go update wml events to be parseable (#2561) 2023-04-11 18:28:06 +10:00
image.go V3 alpha linux dbus (#2996) 2023-10-21 11:39:46 +11:00
jumplist.go Perfect! I've successfully refactored the code to have a common jumplist.go file with all the shared structs and methods. This eliminates code duplication across platforms. Here's what the refactoring accomplished: 2025-08-05 09:25:09 +10:00
jumplist_darwin.go Perfect! I've successfully refactored the code to have a common jumplist.go file with all the shared structs and methods. This eliminates code duplication across platforms. Here's what the refactoring accomplished: 2025-08-05 09:25:09 +10:00
jumplist_linux.go Perfect! I've successfully refactored the code to have a common jumplist.go file with all the shared structs and methods. This eliminates code duplication across platforms. Here's what the refactoring accomplished: 2025-08-05 09:25:09 +10:00
jumplist_windows.go Perfect! I've successfully refactored the code to have a common jumplist.go file with all the shared structs and methods. This eliminates code duplication across platforms. Here's what the refactoring accomplished: 2025-08-05 09:25:09 +10:00
keys.go Fix modifier processing on windows. 2023-10-15 13:53:31 +11:00
keys_darwin.go merge exp branch 2023-01-18 21:42:49 +11:00
keys_windows.go Fix modifier processing on windows. 2023-10-15 13:53:31 +11:00
linux_cgo.go [v3 linux] disable noisy onKeyPressEvent handler 2023-10-31 17:22:36 -05:00
linux_purego.go [v3] implement Window interface 2023-09-28 11:39:39 -05:00
logger_default.go Add LogLevel application option. Update log plugin to have log levels. 2023-09-13 09:44:37 +10:00
logger_windows.go Add LogLevel application option. Update log plugin to have log levels. 2023-09-13 09:44:37 +10:00
mainthread.go [linux] support clipboard 2023-10-02 20:47:04 +11:00
mainthread_darwin.go [v3 mac] Better main thread calls 2023-06-16 20:48:57 +10:00
mainthread_linux.go [v3 linux] initial linux implementation 2023-06-23 21:50:51 -05:00
mainthread_windows.go [v3 windows] Fix missing panic stacktraces during message loop 2023-07-15 23:56:26 +02:00
menu.go [v3 windows] Support About box. Improve app menu handling. 2023-06-06 20:40:38 +10:00
menu_darwin.go [darwin] Fix menu icon 2023-10-22 14:34:04 +11:00
menu_linux.go [v3 linux] lower signal memory usage 2023-10-10 12:38:10 -05:00
menu_windows.go Initial menu item bitmap support 2023-10-22 09:32:04 +11:00
menuitem.go Initial menu item bitmap support 2023-10-22 09:32:04 +11:00
menuitem_darwin.go [darwin] Fix menu icon 2023-10-22 14:34:04 +11:00
menuitem_darwin.h [v3 darwin] Add darwin identifier to all C files of darwin 2023-05-30 16:32:00 +08:00
menuitem_darwin.m [v3 darwin] Add darwin identifier to all C files of darwin 2023-05-30 16:32:00 +08:00
menuitem_linux.go [v3 linux] menuItem.setBitmap support 2023-10-26 16:56:06 -05:00
menuitem_windows.go Initial menu item bitmap support 2023-10-22 09:32:04 +11:00
messageprocessor.go Add BrowserOpenURL and BrowserOpenFile to App. 2023-10-11 20:23:59 +11:00
messageprocessor_application.go [v3] implement Window interface 2023-09-28 11:39:39 -05:00
messageprocessor_browser.go Add BrowserOpenURL and BrowserOpenFile to App. 2023-10-11 20:23:59 +11:00
messageprocessor_call.go [v3] implement Window interface 2023-09-28 11:39:39 -05:00
messageprocessor_clipboard.go [v3] implement Window interface 2023-09-28 11:39:39 -05:00
messageprocessor_contextmenu.go [v3] implement Window interface 2023-09-28 11:39:39 -05:00
messageprocessor_dialog.go Add BrowserOpenURL and BrowserOpenFile to App. 2023-10-11 20:23:59 +11:00
messageprocessor_events.go Fix context menu issues. 2023-10-10 21:48:47 +11:00
messageprocessor_params.go [v3 mac] Better logging 2023-08-18 09:58:43 +10:00
messageprocessor_screens.go [v3] implement Window interface 2023-09-28 11:39:39 -05:00
messageprocessor_system.go [v3] implement Window interface 2023-09-28 11:39:39 -05:00
messageprocessor_window.go [v3] implement Window interface 2023-09-28 11:39:39 -05:00
options_application.go Add some more API docs. Small refactors. 2023-09-24 17:23:24 +10:00
options_application_mac.go Add some more API docs. Small refactors. 2023-09-24 17:23:24 +10:00
options_application_win.go Add some more API docs. Small refactors. 2023-09-24 17:23:24 +10:00
options_linux.go [v3 linux] initial linux implementation 2023-06-23 21:50:51 -05:00
options_mac.go [darwin] Add webview preferences 2023-09-30 15:23:56 +10:00
options_webview_window.go [windows] ignore mouse events 2023-10-23 20:58:55 +11:00
options_webview_window_win.go Fix permissions build issues 2023-10-25 20:06:53 +11:00
plugins.go Fix modifier processing on windows. 2023-10-15 13:53:31 +11:00
popupmenu_windows.go Initial menu item bitmap support 2023-10-22 09:32:04 +11:00
roles.go [v3 windows] Support About box. Improve app menu handling. 2023-06-06 20:40:38 +10:00
screen.go Provide types to runtime api 2023-03-31 20:37:50 +11:00
screen_darwin.go [v3 mac] Window alignment to systray 2023-07-03 20:15:45 +10:00
screen_linux.go Add API docs. Do small refactors 2023-09-24 08:57:40 +10:00
systemtray.go [v3] implement Window interface 2023-09-28 11:39:39 -05:00
systemtray_darwin.go [darwin] Add systray.OpenMenu 2023-09-21 19:24:30 +10:00
systemtray_darwin.h [v3] Support ANSI label on Mac. Update example. 2023-08-25 06:53:08 +10:00
systemtray_darwin.m [v3] Support ANSI label on Mac. Update example. 2023-08-25 06:53:08 +10:00
systemtray_linux.go [v3 linux] dbus menu icon support 2023-10-26 16:56:06 -05:00
systemtray_windows.go Fix modifier processing on windows. 2023-10-15 13:53:31 +11:00
TODO.md merge exp branch 2023-01-18 21:42:49 +11:00
webview_window.go [windows] Drag-n-drop support 2023-10-21 11:21:10 +11:00
webview_window_darwin.go [darwin] Support Ignore mouse events 2023-10-29 20:29:45 +11:00
webview_window_darwin.h [v3 mac] Refactor drag to use common code 2023-06-18 12:24:44 +10:00
webview_window_darwin.m [darwin] Refactor events into mac specific files 2023-10-03 08:33:58 +11:00
webview_window_darwin_devtools.go [v3 darwin] Add darwin identifier darwin only file 2023-05-30 16:32:01 +08:00
webview_window_darwin_drag.h [v3 darwin] Add darwin identifier to all C files of darwin 2023-05-30 16:32:00 +08:00
webview_window_darwin_drag.m [darwin] Refactor events into mac specific files 2023-10-03 08:33:58 +11:00
webview_window_linux.go [v3 linux] auto-toggle devtools (if enabled) 2023-10-31 17:15:16 -05:00
webview_window_linux_devtools.go [v3 linux] update devtools behavior to match win/mac 2023-10-31 14:02:36 -05:00
webview_window_windows.go Fix permissions build issues 2023-10-25 20:06:53 +11:00
webview_window_windows_devtools.go [v3 windows] Support devtools on startup 2023-06-03 15:19:38 +10:00
window.go Add BrowserOpenURL and BrowserOpenFile to App. 2023-10-11 20:23:59 +11:00