5
0
mirror of https://github.com/wailsapp/wails.git synced 2025-05-08 09:50:26 +08:00
Commit Graph

274 Commits

Author SHA1 Message Date
Lea Anthony
212f5c7270
Clean up footer 2024-07-30 07:57:25 +10:00
Lea Anthony
d61bb9c79b
[Windows] Handle menu accelerators 2024-07-27 16:04:26 +10:00
Mohamed Gharib
d5e289880f
[v3] Rename AbsolutePosition() to Position() (#3611) 2024-07-15 19:27:21 +10:00
Mohamed Gharib
e51a481219
[v3] Restore max size example (#3612) 2024-07-15 19:24:51 +10:00
Travis McLane
cfe2424f4d
WindowDidMove / WindowDidResize events for Linux and Windows
* [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
2024-06-30 16:11:45 -05:00
Lea Anthony
ed88987308
Added a new menu item to create window that listens to movement event. 2024-06-28 21:25:13 +10:00
Lea Anthony
ab06920e74 Fix non-windows build issues 2024-06-09 08:28:38 +10:00
Lea Anthony
9d488c97e0
Support raw messages from JS 2024-06-08 20:43:24 +10:00
Lea Anthony
bf9e17a6c8
[WEP] Customise Window Titlebars (#3508)
* 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
2024-06-08 13:42:27 +10:00
Fabio Massaioli
939d22d670
[v3] Enforce stricter typing for generated bindings (#3498)
* Subject generator output to stricter TS linting

* Fix runtime support code typing

* Relax tsconfig for templates

* Update test data

* Update binding example
2024-05-19 23:28:45 +10:00
Fabio Massaioli
90b7ea944d
[v3] New binding generator (#3468)
* 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>
2024-05-19 20:40:44 +10:00
Travis McLane
5a57ee99ac example: environment - change css
text was colored white and therefore invisible.
2024-05-03 12:52:15 -05:00
Lea Anthony
2cee1edcb5
Add window.GetBorderSizes 2024-04-25 15:22:01 +10:00
Travis McLane
1b288a0a1a removing experimental server plugin 2024-04-23 09:32:21 -05:00
Lea Anthony
c7ed7e72d4
Major plugin updates 2024-04-14 21:41:33 +10:00
Lea Anthony
238b9ede78 Update plugin example 2024-03-26 21:11:35 +11:00
Lea Anthony
c7bd39abc7 Update plugin example 2024-03-26 21:02:26 +11:00
Fabio Massaioli
45b2681dfc
[v3] Fix binding generator output and import paths (#3334)
* Fix relative import path computation

* Fix models output path

* Add option to generate bindings using bundled runtime

* Update binding example

* Fix testdata

* Update changelog

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2024-03-22 21:18:04 +11:00
Lea Anthony
f19cc528d4 Fix context menu example 2024-03-20 21:18:46 +11:00
Fabio Massaioli
2b9891da2c
[v3] Update and fix runtime JS API (#3295)
* Cleanup bundled runtime entry point

* Fix JS representation of Screen struct

* Expose IsFocused method in Window interface

* Update JS window API

* Fix cleanup of WML listeners

* Bundle runtime as ES module

* Update runtime dependencies

* Update runtime types and events

* Update bundled runtime

* Update changelog

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2024-03-20 20:30:14 +11:00
Lea Anthony
aba82cc527 Update system.Environment 2024-03-19 20:37:03 +11:00
Lea Anthony
98aff7778e Support ProgramName on linux 2024-03-17 21:09:20 +11:00
Lea Anthony
b325381ca0 Normalise app/webview options
Update deps
2024-03-17 20:57:46 +11:00
Lea Anthony
bc0a9b2e52 Add BundledAssetFileServer for bundled /wails/runtime.js. Update examples. 2024-03-17 15:08:30 +11:00
Lea Anthony
065ca5f6d3 Move to latest webkit2 and remove older code.
Fix screen demo.
Update examples.
2024-03-06 16:59:13 -06:00
Lea Anthony
ab9eec12eb Update status. Make wml demo non-drag 2024-03-06 16:59:13 -06:00
Lea Anthony
161444107a Support linux systrays, of sorts... 2024-03-06 16:59:13 -06:00
Lea Anthony
e39097a17e fix min/max 2024-03-06 16:59:13 -06:00
Lea Anthony
288a4757f8 WindowID now correctly passed with webview request. 2024-03-06 16:59:13 -06:00
Lea Anthony
b6c5d90c9d Window Flash for Linux
Set Min/Max window buttons
2024-03-06 11:43:16 -06:00
Lea Anthony
a34ccbff33 ToggleDevTools -> OpenDevTools
More refactor CGO methods.
2024-03-06 11:43:12 -06:00
Lea Anthony
3d93c83920 Added menu cloning.
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.
2024-03-06 11:42:19 -06:00
Lea Anthony
05b16f1d63 Improve Linux application events and refactor app method receivers
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.
2024-03-06 11:42:19 -06:00
stffabi
bfe9a9d015 [runtime] Add cancelation of bound method calls and context passing 2024-03-04 10:34:14 +01:00
Fabio Massaioli
7e687750b2
[v3] Add option for showing the toolbar in fullscreen mode on macOS (#3282)
* 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
2024-03-02 20:10:25 +11:00
Fabio Massaioli
b8537d1c96
[v3] Restore ToggleMaximise method in Window interface (#3281)
* Add JS Window API example

* Add ToggleMaximise button to Window API example

* Restore ToggleMaximise method in Window interface

* Update docs and changelog
2024-02-29 08:42:57 +11:00
stffabi
65251cdafa [v3, assetServer] Remove fs.FS from options and always use a http.Handler 2024-02-16 07:38:27 +01:00
Lea Anthony
471d626043
Add control to disable window buttons on Mac
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.
2024-02-08 08:31:58 +11:00
Lea Anthony
0b82968c0f
Add option to disable min/max windows buttons
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.
2024-02-07 10:06:07 +11:00
Lea Anthony
5670c1e655
Update compiled runtime 2024-01-31 21:39:46 +11:00
Lea Anthony
5115b294ee
Fixed runtime. cp tool. 2024-01-29 21:29:16 +11:00
Lea Anthony
c01bc4dbd7
Update runtime 2024-01-29 19:07:44 +11:00
Lea Anthony
7674f8eb2b Fixed dialogs on macOS. Update WML example to use compiled runtime. 2024-01-25 21:00:33 +11:00
Thomas Sénéchal
44bbce125b
[V3/macos] Fix systray click handling when no attached window (#3207)
* Fix systray click handling

* Open Menu if no window is attached in defaultClickHandler()

* Remove systemTraySetMenu function

* Fix a crash in hide-window example

* Update changelog
2024-01-17 22:36:22 +11:00
Lea Anthony
861ddea1b2
Add option to prevent application shutdown
This update allows the application shutdown to be cancelled. It implements the shouldQuit function, which can prevent the application from quitting if it returns false. Additional checks have been added to ensure cleanup and quit processes are performed only if required. The darwin delegate and linux and windows applications were modified to include this new functionality.
2024-01-17 20:45:30 +11:00
stffabi
b37d0f1cf4 [windows] Improved focus handling
Make sure the webview is focused on initial show if the window
is focused and make behaviour consistent with macOS
2023-12-30 23:34:53 +01:00
Lea Anthony
371e57588f
Update bindings example 2023-12-16 20:57:00 +11:00
Lea Anthony
ea409a2cb2
Improve documentation 2023-12-13 22:40:35 +11:00
Lea Anthony
9629b1414e Improve default taskfile 2023-11-16 22:59:04 +11:00
Lea Anthony
eefeadc018 [darwin] fix hiding in window example 2023-11-12 16:13:09 +11:00
Travis McLane
f787cf4bc2 [v3 linux] show dev tools if OpenInspectorAtStartup=true 2023-11-06 12:04:20 -06:00
Travis McLane
1a90b45f18 add linux status for examples 2023-11-06 10:49:14 -06:00
Travis McLane
e420900e55 [v3 examples] go.* update 2023-11-06 10:41:14 -06:00
Travis McLane
7f1706fc74 [v3 examples/build] Taskfile update
- add Linux production build
- remove OS X env from basic build
2023-11-06 10:41:14 -06:00
Travis McLane
c6ecbd56e5 [v3 examples/bindings] correct binding output + example
- disable output of `import <model> from models` line
- update README to generate bindings in usable location for HTML
- update HTML to reference bindings correctly
- update javascript to call and process the bound Greet function
2023-10-31 17:24:00 -05:00
Travis McLane
1b850662ed [v3 example/bindings] enable DevTools 2023-10-31 17:15:16 -05:00
Lea Anthony
985c5bf8e2 [darwin] Support Ignore mouse events
[darwin] Support applicationSupportsSecureRestorableState
Update video example
2023-10-29 20:29:45 +11:00
Lea Anthony
3b50e0cbc5
Update docs 2023-10-28 15:44:36 +11:00
Travis McLane
1a1e5b743a [v3 linux] dbus menu icon support 2023-10-26 16:56:06 -05:00
Lea Anthony
3422c40e19
[windows] ignore mouse events 2023-10-23 20:58:55 +11:00
Lea Anthony
ff08a5ca2b
[windows] html fullscreen support 2023-10-23 20:49:21 +11:00
5aaee9
f8250fb0d8
darwin: add event ApplicationShouldHandleReopen (#2991)
* darwin: add ApplicationShouldHandleReopen

* docs: update changelog with mr id

* events: update id

* feat: always return true

* Merge v3-alpha and regenerate events

* darwin: allow pass nsdirectory to processApplicationEvent

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2023-10-22 21:12:12 +11:00
Lea Anthony
d1c3f8af7a [darwin] Fix menu icon 2023-10-22 14:34:04 +11:00
Lea Anthony
36b4b3695b
Initial menu item bitmap support 2023-10-22 09:32:04 +11:00
Travis McLane
18746c7819
V3 alpha linux dbus (#2996)
* [v3 linux/systray] dbus generation

* [v3 linux] systemtray dbus implementation

* [v3] add 'id' for MenuSeparator

This is needed in order to have a unique value for all
menuItem(s) such that the Linux implementation doesn't have to
generate new identifiers.
Allowing the reuse keeps a 1-1 mapping in place without any extra effort.

* [v3 example/systray] add radio group to example

* [v3 linux] stub out ExportStatusNotifierItem callbacks

Can only seem to get the `SecondaryActivate` to fire when doing a
3-finger click!  I was expecting a right-click interaction to trigger it.
2023-10-21 11:39:46 +11:00
Lea Anthony
8463c01123
[windows] Drag-n-drop support 2023-10-21 11:21:10 +11:00
Lea Anthony
8e0671306a
Mac examples + readme updated 2023-10-17 20:25:36 +11:00
Lea Anthony
131a6da554
Fix resize on windows 2023-10-16 19:29:42 +11:00
Lea Anthony
7795a2a46f
Fix modifier processing on windows.
Move info logs to debug.
2023-10-15 13:53:31 +11:00
Lea Anthony
3a23ad1382
Fix example building. Update workflow 2023-10-15 10:43:39 +11:00
Lea Anthony
0577fefd75
Remove Browser plugin. Update plugin example 2023-10-12 08:41:18 +11:00
Lea Anthony
e6de878395
Move server plugin to experimental dir 2023-10-11 20:25:56 +11:00
Lea Anthony
4c75b288bb
Add BrowserOpenURL and BrowserOpenFile to App.
Better WML assets for demo
Fix dialog responses.
Add `wml-openurl`
Rename: data-wml -> wml
Fix Alpha Feedback URL
2023-10-11 20:23:59 +11:00
Lea Anthony
3d88bf8795
Fix context menu issues.
Fix WindowID for requests on windows.
Add `Windows.ApplicationStarted` event
2023-10-10 21:48:47 +11:00
Lea Anthony
740b2b0979
Fix windows icon for about box.
Add NewRGBA and NewRGB methods.
Added README.md to all examples.
Add roadmap.md to docs
2023-10-09 20:56:19 +11:00
Lea Anthony
2b843fc12e
Update contextmenus/dev example 2023-10-09 17:38:46 +11:00
Lea Anthony
473cf1cae3
Update window example 2023-10-09 17:38:22 +11:00
Lea Anthony
65d4266400
Update systray example 2023-10-09 17:38:11 +11:00
Lea Anthony
8d5b86fff7
Update dialogs example 2023-10-09 17:38:03 +11:00
Lea Anthony
92843c8237
Update clipboard example 2023-10-09 17:37:50 +11:00
Lea Anthony
13b588b555
Update build example 2023-10-09 17:37:40 +11:00
Lea Anthony
839a9ff498
Update bindings example 2023-10-09 17:37:21 +11:00
Lea Anthony
9ffc06d42e
Update Task to v3.31.0. Update deps. 2023-10-09 10:39:09 +11:00
Travis McLane
ccccea1e50 [v3] go mod tidy 2023-10-06 15:03:36 -05:00
Lea Anthony
ce6d587771
Fix multiple window weirdness. Update deps 2023-10-05 20:54:12 +11:00
Lea Anthony
2524f7b5a0
Remove old KitchenSink example 2023-09-30 21:09:10 +10:00
Travis McLane
74e2a7e225 [v3 examples] add server plugin to 'plugins' example 2023-09-28 12:14:54 -05:00
Travis McLane
ff2c92451d [v3] go.* update 2023-09-28 12:14:54 -05:00
Travis McLane
2a83402d4a [v3 example/server] initial implementation 2023-09-28 12:14:54 -05:00
Lea Anthony
fb820bcdad
Add some more API docs. Small refactors. 2023-09-24 17:23:24 +10:00
Lea Anthony
7cdab16ba9
Add API docs. Do small refactors 2023-09-24 08:57:40 +10:00
Lea Anthony
fe48b9d03d
[windows] Add systray.OpenMenu 2023-09-21 19:14:44 +10:00
Lea Anthony
af8ee6703e [darwin] Support keybindings 2023-09-20 21:34:50 +10:00
Lea Anthony
793191a479
Initial key binding support 2023-09-17 20:48:30 +10:00
Lea Anthony
86354e9fc0 Support IsDarkMode in application event context. Fix bug with event mapping. 2023-09-15 20:10:09 +10:00
Lea Anthony
b49f135e31
Add context to application/common events 2023-09-15 17:12:35 +10:00
Lea Anthony
ea3509d2e7
Add LogLevel application option. Update log plugin to have log levels. 2023-09-13 09:44:37 +10:00
Lea Anthony
00feccbb77
Add MACOSX_DEPLOYMENT_TARGET to taskfiles 2023-09-08 11:23:38 +10:00
Lea Anthony
8eb62fb483
Update bindings example 2023-09-04 21:01:00 +10:00
Lea Anthony
4a62b6a5c7 Support Mac in wails doctor 2023-09-03 10:30:31 +10:00