* plugin handler and lifecycle
* rebase
* remove reflect
s
* remove Config and NewPlugin from plugin template
* Remove plugin manager, generation of plugin interface
* implement http handlers for services
remove log
trim path
prefix wails/services
* update plugine example
* Misc updates
* Ported plugins to services, rewritten example
* Added fileserver
* Update OnStartup and use a context for the application
* Rename PathPrefix to Route. Create docs.
* Use service config copy. Add Name to Service Options. Improve service generation.
* Use service config copy. Add Name to Service Options. Improve service generation. Update README
* Remove rogue db
* Update changelog.md
---------
Co-authored-by: Lea O'Anthony <lea.anthony@gmail.com>
* [linux] emit system specific event for theme change
Code was incorrectly emitting the `events.Common.ThemeChanged` event
instead of the OS Specific `events.Linux.SystemThemeChanged` event.
It is the reponsibility of the code in events_common_linux.go to map
it to the common variety.
* [linux] implement WindowDidMove
* [linux] implement debounce for WindowDidMove
* [example] listen for events.Common.WindowDidMove
* [windows] move WindowDidMove mapper outside of DnD guard
* WindowDidResize implementation
* windows: WindowDidResize
* chore: changelog update
* events.Common.WindowDidMove and events.Common.WindowDidResize
* Add proposal.
Reference Mac implementation
* Add windows support. Update proposal.
* Update example
* Rename Active->Enable,Inactive->Disabled. Ensure window can get controls back after hiding close on windows. Added guide. Updated example.
* Add ExStyle option for setting titlebar style.
* Fix linux builds
* Tidy up
* Expose `DefaultApplicationMenu`.
Add `FindByLabel` and `ItemAt` for finding menu items in a menu
* Add `Menu.RemoveMenuItem()`, `MneuItem.GetAccelerator()` and `MenuItem.RemoveAccelerator()`
* Remove `Update`
* Iterate when removing menu items
* Add `GetSubmenu()`
* Subject generator output to stricter TS linting
* Fix runtime support code typing
* Relax tsconfig for templates
* Update test data
* Update binding example
* Support variadic arguments and slice, pointer types
* Fix computation of type namespaces
* Improve comments and general formatting
* Set default values correctly for composite types
* Add templates for bindings
Additionally:
* fixes generation of tuple return type
* improves imports and namespacing in JS mode
* general cleanup of generated code
* Simplify import list construction
* Refactor type generation code
Improves support for unknown types (encoded as any) and maps (using
Typescript index signatures)
* Support slices with pointer elements
* Match encoding/json behaviour in struct parser
* Update tests and example
* Add tests for complex method signatures and json tag parsing
* Add test `function_multiple_files`
* Attempt looking up idents with missing denotation
* Update test data
* fix quoted bool field
* Test quoted booleans
* Delete old parser code
* Remove old test data
* Update bindgen flags
* Makes call by ID the default
* Add package loading code
* Add static analyser
* Temporarily ignore binding generation code
* Add complex slice expressions test
* Fix variable reference analysis
* Unwrap casts to interface types
* Complete code comments
* Refactor static analyser
* Restrict options struct usage
* Update tests
* Fix method selector sink and source processing
* Improve Set API
* Add package info collector
* Rename analyser package to analyse
* Improve template functions
* Add index file templates
* Add glue code for binding generation
* Refactor collection and rendering code
* Implement binding generator
* Implement global index generation
* Improve marshaler and alias handling
* Use package path in binding calls by name
* Implement model collection and rendering
* Fix wrong exit condition in analyser
* Fix enum rendering
* Generate shortcuts for all packages.
* Implement generator tests
* Ignore non-pointer bound types
* Treat main package specially
* Compute stats
* Plug new API into generate command
* Support all named types
* Update JS runtime
* Report dual role types
* Remove go1.22 syntax
* Fix type assertion in TS bindings
* encoding/json compliance for arrays and slices
* Ignore got files in testdata
* Cleanup type rendering mechanism
* Update JS runtime
* Implement generic models
* Add missing field in renderer initialisation
* Improve generic creation code
* Add generic model test
* Add error reporting infrastructure
* Support configurable file names
* Detect file naming collisions
* Print final error report
* New shortcut file structure + collision detection
* Update test layout and data
* Autoconfiguration for analyser tests
* Live progress reporting
* Update code comments
* Fix model doc rendering
* Simplify name resolution
* Add test for out of tree types
* Fix generic creation code
* Fix potential collisions between methods and models
* Fix generic class alias rendering
* Report model discovery in debug mode
* Add interface mode for JS
* Collect interface method comments
* Add interface methods test
* Unwrap generic instantiations in method receivers
* Fix rendering of nullable types in interface mode
* Fix rendering of class aliases
* Expose promise cancel method to typescript
* Update test data
* Update binding example
* Fix rendering of aliased quoted type params
* Move to strongly typed bindings
* Implement lightweight analyser
* Update test cases
* Update binding example
* Add complex instantiation test
* Load full dependency tree
* Rewrite collector
* Update renderer to match new collector
* Update generator to match new collector
* Update test data
* Update binding example
* Configure includes and injections by language
* Improve system path resolution
* Support rich conditions in inject/include directives
* Fix error handling in Generator.Generate
* Retrieve compiled go file paths from fileset
* Do not rely on struct info in struct flattening algorithm
* Fix doc comment for findDeclaraion
* Fix bugs in embedded field handling
* Fix bugs and comments in package collection
* Remove useless fields from ServiceInfo
* Fix empty line at the beginning of TS indexes
* Remove global index and shortcuts
* Remove generation tests for individual packages
* Enforce lower-case file names
* Update test data
* Improve error reporting
* Update binding example
* Reintroduce go1.22 syntax
* Improve relative import path computation
* Improve alias support
* Add alias test
* Update test data
* Remove no services error
* Rename global analyser test
* Add workaround and test for bug in typeutil.Map
* Update test data
* Do not split fully qualified names
* Update typeutil package and remove workaround
* Unify alias/named type handling
* Fix rendering of generic named class aliases
* Fix rendering of array types
* Minor tweaks and cleanups
* Rmove namespaced export construct
* Update test data
* Update binding example
* Break type cycles
* Fix typo in comment
* Fix creation code for cyclic types
* Fix type of variadic params in interface mode
* Update test data
* Fix bad whitespace
* Refactor type assertions inside bound methods
* Update test data
* Rename field application.Options.Bind to Services
* Rename parser package to generator
* Update binding example
* Update test data
* Update generator readme
* Add typescript test harness
* Move test output to new subfolder
* Fix code generation bugs
* Use .js extensions in TS mode imports
* Update test data
* Revert default generator output dir to frontend/bindings
* Bump runtime package version
* Update templates
* Update changelog
* Improve newline handling
---------
Co-authored-by: Andreas Bichinger <andreas.bichinger@gmail.com>
* webkitgtk4.0->webkitgtk4.1
changelog
* Update mkdocs-website/docs/en/changelog.md
* Update deps in pipeline
* Update deps in pipeline
* Install 4.1 only when v3
* Install 4.1 only when v3
---------
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
* Add `port` flag to dev command, ...
Add support for environment variable WAILS_VITE_PORT
* Check if port is already in use
* Update changelog
---------
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
* Unmarshal arguments to appropriate type in binding calls
* Marshal multiple return values to arrays in binding calls
* Improve logging of remote method calls
* Add tests for `BoundMethod.Call`
* Fix return value if error is nil
* Update changelog
---------
Co-authored-by: Andreas Bichinger <andreas.bichinger@gmail.com>
* allow for non-Window WailsEvent listeners
- adds a RegisterListener function on the App struct such
that code can listen for WailsEvent(s) even if it isn't a Window
- rename dispatchEventToWindows -> dispatchEventToListeners
- add all windows and WailsEventListeners to slice before emitting
* Update v3/pkg/application/application.go
---------
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
* Fix: #3270
removes an unnessecary check which returned a double nil wich in turned causes a crash if systray doesn't have an attached window.
* Add iconIsInFlyout method to systray_windows
and use it to determine if the icon is in the
flyout or not when positioning an attached window.
* optimize the windows systray window positioning
we only need to get the systray bounds if
the icon is in the flyout area.
* Use correct behavior for placing the window
if the systray icon is visible in the taskbar the
window should be centered on the systray icon
otherwise the icon is in a flyout are and the
window should be placed in the corner.
Added comments to explain placement logic
* consistent placing of systray menu on right vs left click
* add PR info in changelog
---------
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
* Fix appimage file sourcing
Add findGTKFiles to source webkit files for appimage generation
s
* Update refresh version to fix CPU usage
s
* update changelong
* refresh version up
---------
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
* Fix appimage file sourcing
Add findGTKFiles to source webkit files for appimage generation
s
* Update refresh version to fix CPU usage
s
* update changelong
`linux` suffix means it won't compile on non-Linux platforms.
Shorten the name to avoid:
../../pkg/application/options_webview_window.go:104:8: undefined: LinuxWindow
../../pkg/application/options_application.go:28:8: undefined: LinuxOptions
../../pkg/application/options_webview_window.go:104:8: undefined: LinuxWindow
* Fix computing 'startURL' when 'FRONTEND_DEVSERVER_URL' is present.
* Respect provided URL when computing 'startURL' and 'FRONTEND_DEVSERVER_URL' is present.
* Update changelog.
* Correctly produce absolute URI in 'GetStartURL' when input is provided.
Introduced the ability to clone a menu, along with its submenus, in Linux-based web applications to create a full deep copy. This fixes reusing the application menu for window menus.
This update introduces a LinuxOptions struct for Linux-specific application configurations and refines webview for Linux. The 'windows' map has been renamed to 'windowMap' to avoid confusion. Moreover, a method to unregister Windows has been added to ensure the Linux application automatically quits when the last window closes, unless explicitly disabled in the new LinuxOptions structure. Reset Window position after hiding. Some debug output has been removed.
The commit introduces a set of webview GPU policies to control hardware acceleration. These policies define when hardware acceleration is enabled on the webview. An option for this has been added to the LinuxWindow struct for Linux specific windows. Additional code modification was carried out to use this new GPU policy option when calling `windowNew` function. Finally, the sequence of the GPU Policies in the const declaration has been updated for better readability.
This commit includes the addition of common events for the Linux platform. Refactored and standardized the method receivers for the application from 'm' to 'l'. Also, the application startup events in the window example have been updated according to the new naming scheme.
Introduced the ability to clone a menu, along with its submenus, in Linux-based web applications to create a full deep copy. This fixes reusing the application menu for window menus.
This update introduces a LinuxOptions struct for Linux-specific application configurations and refines webview for Linux. The 'windows' map has been renamed to 'windowMap' to avoid confusion. Moreover, a method to unregister Windows has been added to ensure the Linux application automatically quits when the last window closes, unless explicitly disabled in the new LinuxOptions structure. Reset Window position after hiding. Some debug output has been removed.
The commit introduces a set of webview GPU policies to control hardware acceleration. These policies define when hardware acceleration is enabled on the webview. An option for this has been added to the LinuxWindow struct for Linux specific windows. Additional code modification was carried out to use this new GPU policy option when calling `windowNew` function. Finally, the sequence of the GPU Policies in the const declaration has been updated for better readability.
This commit includes the addition of common events for the Linux platform. Refactored and standardized the method receivers for the application from 'm' to 'l'. Also, the application startup events in the window example have been updated according to the new naming scheme.
* Add option for showing the toolbar in fullscreen mode on macOS
* Add an example demonstrating the ShowToolbarWhenFullscreen option
* Update docs
* Add changelog entry
* Run go mod tidy
* Add JS Window API example
* Add ToggleMaximise button to Window API example
* Restore ToggleMaximise method in Window interface
* Update docs and changelog
Three new options have been introduced in the application options for MacOS to disable the minimize, maximize, and close buttons on the window. Corresponding functionality has been added in the webview window for darwin to handle these new options. These changes have been showcased in the window example main.go file.
This commit introduces the functionality to disable the minimise and maximise buttons on windows. These options have been added to the `application.WebviewWindowOptions` and integrated in the Windows application logic. Effectively, developers can now control the availability of these buttons in their windows applications.