Compare commits

...

662 Commits

Author SHA1 Message Date
Lea Anthony f409dbdab1 [v2] v2.0.0-alpha.72 2021-07-11 14:15:05 +10:00
Lea Anthony 1748e8479f [windows] Fixes for window sizing 2021-07-11 11:29:34 +10:00
Lea Anthony 4f2788a294 [windows] Fixes for radiobox sync 2021-07-10 17:03:55 +10:00
Travis McLane 856b81ab04 add missing import 2021-07-09 15:08:59 -05:00
Lea Anthony 76aab2271c [windows] Menu checkboxes and radio groups now fully in sync when using Go menus mutltiple times. 2021-07-08 23:34:56 +10:00
Lea Anthony 3192026e6d [windows] Support updating application menu 2021-07-06 21:07:35 +10:00
Lea Anthony 90dd05e52e [windows] Support radio groups in menus 2021-07-06 07:30:48 +10:00
Lea Anthony e73cf44ddc [windows] Preliminary support for application menu. More work TBD. 2021-07-05 21:37:48 +10:00
Lea Anthony 4c2804eac9 [v2] Create default windows app menu 2021-07-04 13:59:21 +10:00
Lea Anthony e1dd77fd3f [v2] Remove SetTitle from templates 2021-07-04 09:51:19 +10:00
Lea Anthony b69f1e6c43 [v2] Put mac specific calls behind build tag 2021-07-04 09:35:45 +10:00
Lea Anthony 7661082d58 [v2] v2.0.0-alpha.71 2021-07-03 18:35:14 +10:00
Lea Anthony 34da4f056a [mac] Fix onTrayMenuOpen by being less aggressive with freeing memory 😀 2021-07-03 18:34:24 +10:00
Lea Anthony 642c1d5ec5 [v2] Target ARM on Apple Silicon, even if CLI is compiled for AMD64 2021-07-03 16:32:47 +10:00
Lea Anthony 1f3351ffa5 [v2] Get wails dev to compile again 2021-06-30 21:36:30 +10:00
Lea Anthony 30e96118b1 [v2] Remove debug statement 2021-06-30 21:00:09 +10:00
Lea Anthony efd768ac5d [v2] Remove wails debug (now a build flag) 2021-06-30 20:52:18 +10:00
Lea Anthony 6dbcd4fc45 [v2] New Svelte template. Updates to vanilla. Improved wails generate template 2021-06-30 20:50:39 +10:00
Lea Anthony 11cd51c9ca [v2] v2.0.0-alpha.70 2021-06-29 23:45:13 +10:00
Lea Anthony 3de38003bf [v2] ARM64 fixes 2021-06-29 23:45:05 +10:00
Lea Anthony 418438b762 [v2] v2.0.0-alpha.69 2021-06-29 23:30:16 +10:00
Lea Anthony 0a5c43435e [mac] Fix memory leak wrt base64 images 2021-06-29 23:29:20 +10:00
Lea Anthony d7bb831d7f [mac] Fix memory leak wrt updating menus 2021-06-29 22:52:32 +10:00
Lea Anthony 824256db6d [mac] Small memory leak fixes 2021-06-29 21:18:42 +10:00
Lea Anthony 2f311ee403 [mac] Fix memory leak with menu updates 2021-06-29 18:36:34 +10:00
Lea Anthony e04db8775f [mac] Fix memory leak with menu item callback data 2021-06-29 15:49:44 +10:00
Lea Anthony 2fbc63b458 [mac] Fix C warnings 2021-06-29 15:49:16 +10:00
Lea Anthony 8ac69d6afd [v2] Tidy generate module 2021-06-27 20:26:37 +10:00
Lea Anthony 6dec097184 [v2] Support remote templates 2021-06-27 20:15:05 +10:00
Lea Anthony c2015b1d72 [v2] Add wails generate template command 2021-06-27 20:15:05 +10:00
Lea Anthony 9c75e61704 [v2] Add CopyDirExtended 2021-06-27 20:15:05 +10:00
Lea Anthony 995d485a43 [v2] ldflags fix 2021-06-27 04:18:33 +10:00
Lea Anthony 9ac4990f89 [v2] v2.0.0-alpha.68 2021-06-26 18:20:58 +10:00
Lea Anthony 509c70a97c [v2] Dialog fixes 2021-06-26 18:20:24 +10:00
Lea Anthony 695f78861d [v2] v2.0.0-alpha.67 2021-06-21 19:28:51 +10:00
Lea Anthony 46ad4f4d18 [windows] Support SetPosition 2021-06-21 19:21:25 +10:00
Lea Anthony 2fc2d63e2d [v2] Remove SetColour 2021-06-21 18:05:45 +10:00
Lea Anthony d137859d12 [windows] Support fullscreen config + api & unfullscreen api 2021-06-21 16:54:33 +10:00
Lea Anthony 09cf223aa2 [windows] Workaround webview2 bug being blank. Reduced flashing at start. 2021-06-21 15:48:24 +10:00
Lea Anthony 909da72eb2 [windows] Support StartHidden flag 2021-06-21 15:39:26 +10:00
Lea Anthony 2a06e2e577 [windows] Change location of application data 2021-06-21 15:27:14 +10:00
Lea Anthony 7f841ab85b [windows] hideWindowOnClose partial solution 2021-06-21 15:08:52 +10:00
Lea Anthony a2d95e1b99 [v2] Update default template 2021-06-21 14:49:08 +10:00
Lea Anthony d06f563bfe [windows] Fix application shutdown 2021-06-21 14:44:07 +10:00
Lea Anthony c53d44b3ec [windows] Temporarily use common-dialog fork 2021-06-21 14:24:42 +10:00
Lea Anthony 5e51f426fa [windows] Fix app size, disable devtools in production build 2021-06-21 14:12:05 +10:00
Lea Anthony 193d9e8ed8 [windows] Better handle closing dialogs 2021-06-21 14:11:30 +10:00
Lea Anthony 2d03d355c2 [v2] Vanilla template fix (no drag) 2021-06-21 14:10:13 +10:00
Lea Anthony 185b7fed63 [windows] Lint fixes 2021-06-21 09:58:10 +10:00
Lea Anthony ee6ad0bb27 [windows] Support frameless 2021-06-21 09:44:45 +10:00
Lea Anthony 3644f4ae1e [windows] Support drag 2021-06-21 09:04:14 +10:00
Lea Anthony 28d87a8e58 [windows] Improve Save Dialog 2021-06-20 16:09:22 +10:00
Lea Anthony cf7d31e432 [windows] Improve Dialog Message API 2021-06-20 16:09:22 +10:00
Lea Anthony fd40faabe8 [v2] Update build directory template. Update vanilla template. 2021-06-20 15:09:03 +10:00
Lea Anthony d521f80dcd [windows] Improve Dialog API. Major refactor. 2021-06-20 13:48:30 +10:00
Lea Anthony 102a8cc5a6 [windows] Support Dialog API 2021-06-19 16:29:49 +10:00
Lea Anthony e90f5361be [windows] Support webview2 runtime installation strategies 2021-06-15 21:25:08 +10:00
Lea Anthony afe677d39d [windows] Update SDK scripts/files 2021-06-15 20:08:54 +10:00
Lea Anthony 58e6ce10ad [windows] Support disabling window icon 2021-06-14 12:00:47 +10:00
Lea Anthony b0c522a59a [windows] Support translucent windows 2021-06-14 11:36:41 +10:00
Lea Anthony 62fc489001 [windows] Remove default app title 2021-06-14 11:04:24 +10:00
Lea Anthony a269fc9e8c [windows] Support transparent webview 2021-06-13 20:47:01 +10:00
Lea Anthony 7cd6d109d4 [windows] Add missing files 2021-06-12 07:32:03 +10:00
Lea Anthony 1f8a2bb9b1 [windows] Update WebView2 to 1.0.864.35 2021-06-12 07:31:47 +10:00
Lea Anthony eb2ac99067 [mac] fix compilation bug 2021-06-12 06:56:15 +10:00
Lea Anthony 79147c612e [v2] Big tidy up! 2021-06-12 06:49:38 +10:00
Lea Anthony 3d75ba174b [v2] If using -compiler flag, add go version to filename. 2021-06-11 15:24:42 +10:00
Lea Anthony 3933c5ab02 [windows] Better error message 2021-06-09 12:13:27 +10:00
Lea Anthony aa5ff6ed2e [v2] Update vanilla template with @wails/runtime v1.3.20 2021-06-06 12:29:49 +10:00
Lea Anthony 407269b0d5 [v2] Update bridge assets. @wails/runtime v1.3.20 2021-06-06 12:21:26 +10:00
Lea Anthony 67a72cc693 [v2] Update debme for CopyFile() fix 2021-06-06 12:08:09 +10:00
Lea Anthony 955fe1d583 [v2] Better app icon 2021-06-06 11:35:35 +10:00
Lea Anthony 82bce89086 [mac] Update branding 2021-06-05 16:02:03 +10:00
Lea Anthony c13257b9e9 [v2] v2.0.0-alpha.66 2021-06-05 14:37:12 +10:00
Lea Anthony 3f773f80ac [linux] Fix header signatures 2021-06-05 14:22:37 +10:00
Lea Anthony 5b23122b35 [v2] Make user + email discovery optional 2021-06-05 14:18:42 +10:00
Lea Anthony d5cbfa6749 [linux] Support wails build and wails dev 2021-06-04 20:36:56 +10:00
Lea Anthony 3ad92192a9 [linux] Add linux runtime to wails dev 2021-06-04 20:34:55 +10:00
Lea Anthony 466676d99f [linux] Create Linux runtime 2021-06-04 20:32:40 +10:00
Lea Anthony a1d5412465 [v2] Remove redundant apps package 2021-06-03 21:32:19 +10:00
Lea Anthony 9fdd5148ca [mac] Update runtime to use window.wailsInvoke 2021-06-03 21:01:14 +10:00
Lea Anthony ac957b27cb [v1] Upgrade vanilla template to use runtime v1.3.19 2021-06-03 21:00:13 +10:00
Lea Anthony 20bc332720 [v1] Fix vanilla template package-lock.json 2021-06-03 20:33:25 +10:00
Lea Anthony d2507660c2 [linux] Get CLI working. yum->dnf. doctor improvements. 2021-06-02 20:02:45 +10:00
Lea Anthony 64264c6378 [v2] Add README to vanilla template 2021-06-01 21:40:35 +10:00
Lea Anthony ddadcdc18f [v2] Rebuild runtime 2021-05-31 20:09:04 +10:00
Lea Anthony 4738a0e0a8 [v2] Remove common.js 2021-05-31 20:08:11 +10:00
Lea Anthony d2e4a0b0d2 [windows] Support wails dev 2021-05-31 20:01:40 +10:00
Lea Anthony 9f365ed85e [windows] Support rollup in vanilla template 2021-05-30 20:05:07 +10:00
Lea Anthony 5e733657c2 [v2] Updated runtime 2021-05-30 20:03:28 +10:00
Lea Anthony 93d9b61366 [windows] Fix bridge payload for 'wails dev' 2021-05-30 20:03:01 +10:00
Lea Anthony b5d289bda9 [v2] Published @wails/runtime v1.3.14 2021-05-30 11:24:15 +10:00
Lea Anthony 319b7a3755 [v2] Change import to require for bridge for compatibility reasons 2021-05-30 11:22:40 +10:00
Lea Anthony 410d23b4d9 [windows] wails doctor docker support Better output 2021-05-30 11:06:38 +10:00
Lea Anthony 003e505c4a [mac] detect upx 2021-05-30 10:19:27 +10:00
Lea Anthony 22f09772d3 [mac] better wails doctor 2021-05-30 10:18:36 +10:00
Lea Anthony a300172adc [windows] Better wails doctor installation details 2021-05-30 09:41:47 +10:00
Lea Anthony 1eba408f64 [windows] Better wails doctor diagnostics 2021-05-30 09:34:07 +10:00
Lea Anthony be39b293b5 [mac] better wails doctor 2021-05-26 21:18:52 +10:00
Travis McLane 31cf04a944 fix shadowed err (#718) 2021-05-19 05:55:05 +10:00
Lea Anthony f5912d29b6 Updated README.md 2021-05-18 21:29:03 +10:00
Lea Anthony caad3a6b00 [windows] add icon to main window 2021-05-18 21:25:34 +10:00
Lea Anthony 08f4476087 Support for upx and more go:embed. 2021-05-18 21:25:16 +10:00
Lea Anthony 46ea3e6074 Better handling of process in wails dev 2021-05-18 21:22:52 +10:00
Lea Anthony 8be2a39daf [windows] Generate syso file for windows builds 2021-05-17 19:51:43 +10:00
Lea Anthony 7591b45ffa [windows] fix for no windows config 2021-05-17 19:50:12 +10:00
Travis McLane f5056e7232 hack: enable builds on non-Windows 2021-05-16 13:51:14 +10:00
Alexander Hudek 101d344303 Merge pull request #715
* Fixed multi-line tags being minified incorrectly. Fixed self closing …

* Improved html whitespace minification fix.
2021-05-16 13:22:44 +10:00
Lea Anthony 6ab1a4adb0 Support passing arguments when using wails dev 2021-05-14 14:22:25 +10:00
Lea Anthony 5a30425091 [windows] Fix broken WebView2Loader.dll 2021-05-14 09:09:52 +10:00
Lea Anthony e9deb248f9 Move assets -> build dir. Bundle assets in CLI binary. 2021-05-13 20:12:19 +10:00
Lea Anthony 7d0ff8b1a2 [windows] Updated webview.dll 2021-05-13 20:03:39 +10:00
Alexander Hudek 8399cc1e57 Fix width and height being set to zero when no max width and max height is set. (#709) 2021-05-13 18:49:53 +10:00
Alexander Hudek 6b8370daad Implement server to client notify support. (#700) 2021-05-02 13:13:18 +10:00
Alexander Hudek 3c4f874db5 Implement server to client notify support. (#700) 2021-05-02 13:12:29 +10:00
Alexander Hudek 0966c96ef0 Fixed generated typescript type for []byte. (#701) 2021-05-02 13:08:49 +10:00
Lea Anthony 6b919808c9 [windows] Added options, WindowBackgroundIsTranslucent 2021-05-02 12:04:29 +10:00
Lea Anthony 590d4fcdbb [windows] Updated WebView2 to Microsoft.Web.WebView2.1.0.818.41 2021-05-02 11:13:27 +10:00
Lea Anthony 4acb3f83bf [windows] Support Startup hook 2021-05-01 07:38:30 +10:00
Lea Anthony df32393215 [windows] Make initial loading a sync operation 2021-05-01 07:20:36 +10:00
Lea Anthony ff3e03220e [windows] Backend calls now working 2021-05-01 06:44:07 +10:00
Lea Anthony 5da198de7e [windows] App assets loading correctly 2021-04-30 21:14:09 +10:00
Lea Anthony 247df54ef0 update vanilla template css 2021-04-30 17:44:40 +10:00
Lea Anthony 161eeca62b [windows] update eslint ecmaversion 2021-04-30 16:05:29 +10:00
Lea Anthony 0b8056bcf4 [windows] Windows runtime 2021-04-30 16:04:24 +10:00
Lea Anthony 62bfe953a1 [windows] Add CGO_CXXFLAGS 2021-04-30 16:00:09 +10:00
Lea Anthony 67611d5ae7 [windows] Support -compress flag for UPX compression 2021-04-29 21:53:17 +10:00
Lea Anthony 77b5235c9f [windows] Compressed DLLs 2021-04-29 21:36:26 +10:00
Lea Anthony 09755d5bfe [windows] Adjust when resizing 2021-04-29 21:25:20 +10:00
Lea Anthony 0224228c46 [windows] Add DPI awareness 2021-04-29 21:25:03 +10:00
Lea Anthony 168cd96f56 Fix some warnings 2021-04-29 07:36:59 +10:00
Lea Anthony 6f6e810432 [windows] WebView2 component working 2021-04-29 07:36:40 +10:00
Lea Anthony 944e1c99ff [windows] Closer to webview2 integration 2021-04-28 15:45:36 +10:00
Lea Anthony 7f54f7bb7e fix frameless option 2021-04-28 15:44:55 +10:00
Lea Anthony 2881a5bc0d [windows] output required DLLs on build 2021-04-28 15:44:29 +10:00
Lea Anthony ee05884c9c [windows] ON_MAIN_THEAD macro. Misc updates 2021-04-27 21:09:04 +10:00
Lea Anthony 385988989b fix: min/max constraint logic 2021-04-27 19:32:25 +10:00
Lea Anthony b98c7dd49f [windows] Move to C++. Support unicode titles. Add test. 2021-04-26 20:21:11 +10:00
Lea Anthony b3c0cc86d3 Merge remote-tracking branch 'origin/v2-alpha' into v2-alpha 2021-04-26 19:09:04 +10:00
Lea Anthony ad34e55a67 [windows] wrap ffenestri.h for c++ 2021-04-26 18:55:04 +10:00
Lea Anthony 1bdbf68ca9 [windows] Main thread dispatcher. Small refactor. 2021-04-26 07:14:24 +10:00
Lea Anthony 84f37c66ba [windows] Center 2021-04-25 21:16:27 +10:00
Lea Anthony f7c65b1705 [windows] Show,Hide,Maximise,Minimise,Unmaximise,Unminimise,ToggleMaximise,ToggleMinimise 2021-04-25 15:53:48 +10:00
Lea Anthony 134b41e4be [windows] StartHidden 2021-04-25 15:27:09 +10:00
Lea Anthony df41e8eb3a [windows] DisableResize 2021-04-25 15:20:30 +10:00
Lea Anthony 0f668a9038 Min/Max size + setTitle 2021-04-25 15:03:14 +10:00
Lea Anthony dea6d261ad Ensure min/max window sizes are valid 2021-04-25 14:52:42 +10:00
Lea Anthony 97592fad5c [win] Initial window working 2021-04-24 20:59:00 +10:00
Lea Anthony 8caf277bf1 v2.0.0-alpha.65 2021-04-20 19:44:27 +10:00
Lea Anthony 4b480bb085 Move templates to CLI dir. Use go:embed 2021-04-18 17:10:12 +10:00
Lea Anthony c1d63aff34 Refactor vanilla template to work with wails dev out of the box 2021-04-18 07:25:02 +10:00
Lea Anthony 5fc89c4cad Fix Promise<void> return type. Tidy up. 2021-04-18 07:24:29 +10:00
Lea Anthony 5e96bb5a32 [windows] Improve wails doctor 2021-04-17 13:40:27 +10:00
Lea Anthony c5e76c50b0 v2.0.0-alpha.64 2021-04-13 21:07:24 +10:00
Lea Anthony e40226ff7a ANSI support for tray labels and submenus 2021-04-13 21:05:56 +10:00
Lea Anthony 53a3638fa8 ANSI support for tray labels 2021-04-13 05:43:37 +10:00
Lea Anthony 1344638c52 Add OS detection 2021-04-12 06:25:15 +10:00
Lea Anthony 6fdc87454a Initial support for desktop notifications 2021-04-07 06:32:21 +10:00
Lea Anthony c36f9501a9 Dialog warning on JS Error. Remove shutdown hack. Optional dialog callback. 2021-04-06 20:18:29 +10:00
Lea Anthony c23b43c352 Improve vanilla app JS 2021-04-04 15:47:03 +10:00
Lea Anthony a76851463b Font smoothing for vanilla app 2021-04-04 15:45:24 +10:00
Lea Anthony e17b432c8f Tidy up templates 2021-04-04 15:36:55 +10:00
Lea Anthony 5d444cd6dd Support user tags 2021-04-04 13:42:48 +10:00
Lea Anthony be43049fc6 Remove debug code 2021-04-04 05:25:21 +10:00
Lea Anthony 2e01710412 v2.0.0-alpha.63 2021-04-04 05:15:09 +10:00
Lea Anthony 1b0193161c Improvements for handling Info.plist 2021-04-04 05:14:16 +10:00
Lea Anthony 1b377fb575 Support enter as alias for return 2021-04-03 16:52:54 +11:00
Lea Anthony 1203ae64b8 v2.0.0-alpha.62 2021-03-31 15:44:28 +11:00
Lea Anthony 26ed8002b9 Menu bar font fix 2021-03-31 15:43:28 +11:00
Lea Anthony cf23bffc67 v2.0.0-alpha.61 2021-03-30 22:22:48 +11:00
Lea Anthony d70f6fffe7 Remove autorelease of colour. Fixes high sierra. 2021-03-30 22:21:49 +11:00
Lea Anthony 54c99fc386 Move some methods to main thread 2021-03-29 20:45:50 +11:00
Lea Anthony 86c1ea5e6a Initial support for compression 2021-03-27 20:59:14 +11:00
Lea Anthony b394c1914c v2.0.0-alpha.60 2021-03-26 20:54:42 +11:00
Lea Anthony 91c2ddf155 Allow styling of menu items that have submenus 2021-03-26 20:54:19 +11:00
Lea Anthony 712ad96d2a v2.0.0-alpha.59 2021-03-26 18:30:00 +11:00
Lea Anthony 86b4a4f2f5 Don't clean directory when doing universal builds 2021-03-26 18:29:28 +11:00
Lea Anthony 4b9786abc9 v2.0.0-alpha.58 2021-03-26 18:13:10 +11:00
Lea Anthony fd96ebc050 Better verbose output 2021-03-26 18:12:42 +11:00
Lea Anthony 939e0f5975 Use default broken image for invalid images 2021-03-26 17:51:49 +11:00
Lea Anthony 6a7a288a0f Limit StartsAtLogin to app bundles 2021-03-26 16:52:59 +11:00
Lea Anthony 0564d0aa98 v2.0.0-alpha.57 2021-03-26 16:32:10 +11:00
Lea Anthony 3a136a73ca Add package for mac functions 2021-03-26 15:57:30 +11:00
Lea Anthony 50c219307f Add clean flag 2021-03-26 14:10:25 +11:00
Lea Anthony de3038b302 v2.0.0-alpha.56 2021-03-25 21:13:40 +11:00
Lea Anthony 6eb4b0a419 Fix packaging universal builds 2021-03-25 21:12:29 +11:00
Lea Anthony 41d2158375 Support building arm64 & universal binaries. 2021-03-25 21:12:29 +11:00
Lea Anthony 5d7f57e80b Initial ARM support! 2021-03-25 21:12:29 +11:00
Lea Anthony 4ce3e1d1bf v2.0.0-alpha.55 2021-03-21 20:59:23 +11:00
Lea Anthony e5f2746810 Better font name support 2021-03-21 20:57:41 +11:00
Lea Anthony 92ebf506dd Get app compiling 2021-03-20 18:32:09 +11:00
Lea Anthony 9ab06152c5 Refactor doctor for windows 2021-03-20 16:27:35 +11:00
Lea Anthony bf36b6a59d Doctor working for Windows 2021-03-20 16:24:02 +11:00
Lea Anthony 4b9f6c4fb1 Update CONTRIBUTORS.md 2021-03-20 15:55:14 +11:00
Amaury Tobias Quiroz b1a42c8dea fix: support rel="modulepreload" on assetbundle as javascript (#621)
In some bundler enviroments like vite the output on index.html uses link
tag with rel="modulepreload" to load javascript, add support to handle
this files on assetbundle, more info
https://developer.mozilla.org/en-US/docs/Web/HTML/Link_types/modulepreload

fix #620

Co-authored-by: amaury-tobias <amaury.tobiasqr@gmai.com>
2021-03-20 15:51:57 +11:00
Travis McLane cbd98b5a1a update scripts/build.sh to run test only on v1 2021-03-20 15:01:09 +11:00
Lea Anthony c8e0aea69c v2.0.0-alpha.54 2021-03-19 09:17:18 +11:00
Lea Anthony 7c0b236eb0 Fix for hiding window on close 2021-03-19 09:14:49 +11:00
Lea Anthony 16debbd109 v2.0.0-alpha.53 2021-03-18 20:55:26 +11:00
Lea Anthony 39bfa5d910 Support disabling tray menu. Fix font sizing. Tooltip in tray menu support. 2021-03-18 20:54:53 +11:00
Lea Anthony 6424579a9e v2.0.0-alpha.52 2021-03-17 23:30:42 +11:00
Lea Anthony a962ae6f63 Support rich text in Tray labels 2021-03-17 23:30:08 +11:00
Lea Anthony c7dee158ba tray menu Icon->Image. Support template images. 2021-03-17 22:24:09 +11:00
Lea Anthony 237d25089d Update CLI banner 2021-03-17 21:59:31 +11:00
Lea Anthony 265328d648 v2.0.0-alpha.51 2021-03-15 06:13:51 +11:00
Lea Anthony 6f40e85a6e Support startup urls when app not running 2021-03-15 06:13:00 +11:00
Lea Anthony 96d8509da3 v2.0.0-alpha.50 2021-03-13 15:17:35 +11:00
Lea Anthony 598445ab0f v2.0.0-alpha.49 2021-03-13 15:00:19 +11:00
Lea Anthony 24788e2fd3 Fix template images 2021-03-13 14:59:12 +11:00
Lea Anthony bbf4dde43f Support upserting environment variables 2021-03-12 23:41:13 +11:00
Lea Anthony 0afd27ab45 Add FileLogger option 2021-03-12 23:40:35 +11:00
Lea Anthony d498423ec2 v2.0.0-alpha.48 2021-03-09 22:28:07 +11:00
Mat Ryer 66ce84973c fixes for machines running TouchBar addresses https://github.com/matryer/xbar/issues/610 2021-03-09 11:24:46 +00:00
Lea Anthony 55e6a0f312 v2.0.0-alpha.47 2021-03-07 16:24:20 +11:00
Lea Anthony 81e83fdf18 Ensure modifiers are lowercase when parsing 2021-03-07 16:21:30 +11:00
Lea Anthony f9b79d24f8 Guard against nil url messages 2021-03-06 15:51:06 +11:00
Lea Anthony 0599a47bfe v2.0.0-alpha.46 2021-03-06 15:43:44 +11:00
Lea Anthony 817c55d318 Support base64 images in tray 2021-03-06 15:43:11 +11:00
Lea Anthony 14146c8c0c v2.0.0-alpha.45 2021-03-06 00:29:00 +11:00
Lea Anthony 18adac20d4 Tray menu open/close events 2021-03-06 00:25:34 +11:00
Lea Anthony eb4bff89da v2.0.0-alpha.44 2021-03-04 06:18:31 +11:00
Lea Anthony c66dc777f3 Remove debug logging 2021-03-04 06:18:11 +11:00
Lea Anthony 9003462457 v2.0.0-alpha.43 2021-03-04 06:09:17 +11:00
Lea Anthony e124f0a220 Support Alternative menu items 2021-03-04 06:07:45 +11:00
Lea Anthony c6d3f57712 v2.0.0-alpha.42 2021-03-01 08:49:31 +11:00
Lea Anthony b4c669ff86 Support custom protocols 2021-02-28 22:08:23 +11:00
Lea Anthony 2d1b2c0947 Guard app signing 2021-02-28 15:29:15 +11:00
Lea Anthony 4a0c5aa785 v2.0.0-alpha.41 2021-02-27 20:33:42 +11:00
Lea Anthony f48d7f8f60 Add support for -sign 2021-02-27 20:32:29 +11:00
Lea Anthony 651f24f641 update vanilla template 2021-02-27 20:06:49 +11:00
Lea Anthony 8fd77148ca update vanilla template 2021-02-27 16:59:16 +11:00
Lea Anthony 0dc0762fdf update vanilla template 2021-02-27 16:45:30 +11:00
Lea Anthony 1a92550709 update vanilla template 2021-02-27 16:08:53 +11:00
Lea Anthony bffc15bc14 fix: terminate app on window close 2021-02-27 14:49:44 +11:00
Lea Anthony 198d206c46 Update basic template to new API 2021-02-27 14:07:27 +11:00
Lea Anthony bb8e848ef6 Run go mod tidy before compilation 2021-02-27 14:03:54 +11:00
Lea Anthony bac3e9e5c1 Fix asset dir perms 2021-02-27 13:54:39 +11:00
Lea Anthony bc5eddeb66 v2.0.0-alpha.40 2021-02-26 15:31:37 +11:00
Lea Anthony 8e7258d812 Add locking for tray operations 2021-02-26 15:23:39 +11:00
Lea Anthony 7118762cec v2.0.0-alpha.39 2021-02-25 22:05:38 +11:00
Lea Anthony 6af92cf0a4 Delete Tray for bridge 2021-02-25 19:57:36 +11:00
matryer 1bb91634f7 avoid fmt in happy path 2021-02-25 07:39:42 +00:00
Lea Anthony f71ce7913f v2.0.0-alpha.38 2021-02-24 21:50:39 +11:00
Lea Anthony 53db687a26 Support DeleteTrayMenuByID 2021-02-24 21:49:55 +11:00
Lea Anthony 13939d3d6b v2.0.0-alpha.37 2021-02-23 20:15:01 +11:00
Lea Anthony 552c6b8711 fix: modifiers 2021-02-23 18:57:59 +11:00
Lea Anthony feee2b3db2 v2.0.0-alpha.36 2021-02-23 08:53:26 +11:00
Lea Anthony 9889c2bdbb Support Activation Policy 2021-02-23 08:52:56 +11:00
Lea Anthony 2432fccf71 v2.0.0-alpha.35 2021-02-22 20:17:22 +11:00
Lea Anthony 70510fd180 @wails/runtime v1.3.10 2021-02-22 20:16:14 +11:00
Lea Anthony 17c6201469 Menu off by default in dev. Toggle with backtick. 2021-02-22 20:14:44 +11:00
Lea Anthony 0f209c8900 v2.0.0-alpha.34 2021-02-22 19:39:07 +11:00
Lea Anthony cbf043585c v2.0.0-alpha.33 2021-02-22 19:33:44 +11:00
Lea Anthony 5ae621ceaa Start signal handler a little later 2021-02-22 19:33:18 +11:00
Lea Anthony 1231b59443 better signal handling for shutdown 2021-02-22 17:39:33 +11:00
Lea Anthony b18d4fbf41 v2.0.0-alpha.32 2021-02-22 09:00:47 +11:00
Lea Anthony 9ec5605e63 fix: loglevel duplication 2021-02-22 09:00:09 +11:00
Lea Anthony 98a4de8878 v2.0.0-alpha.31 2021-02-21 20:38:14 +11:00
Lea Anthony 5fe709f558 Trigger clean shutdown on Quit 2021-02-21 20:37:42 +11:00
Lea Anthony 5231a6893b v2.0.0-alpha.30 2021-02-21 19:28:07 +11:00
Lea Anthony 74f3ce990f Support loglevel flag in dev mode 2021-02-21 19:26:20 +11:00
Lea Anthony 998a913853 Hide dev warnings by default 2021-02-21 16:36:56 +11:00
Lea Anthony 964844835c Better Wails update messaging 2021-02-21 06:12:19 +11:00
Lea Anthony 4e152bb849 v2.0.0-alpha.29 2021-02-21 05:56:11 +11:00
Lea Anthony 51133d098c Slight refactor of backend module generation 2021-02-21 05:52:42 +11:00
Lea Anthony d4191e7d1b Support parsing keyboard shortcuts 2021-02-20 21:32:32 +11:00
Lea Anthony 9c273bc745 v2.0.0-alpha.28 2021-02-20 16:04:42 +11:00
Lea Anthony c6f6ad6beb Improved dev reload. Early abort for bad app. Don't reload if bad build. 2021-02-20 16:04:03 +11:00
Lea Anthony 4362a14459 Dev colours 2021-02-20 15:25:40 +11:00
Lea Anthony 0080e9e311 Gimme some colour 2021-02-20 15:14:20 +11:00
Lea Anthony 83d9297cac v2.0.0-alpha.27 2021-02-20 14:51:38 +11:00
Lea Anthony d8ad250608 Template Image support 2021-02-19 05:25:23 +11:00
Lea Anthony eac8880f6d Initial support for tray menus 2021-02-13 20:26:21 +11:00
Lea Anthony f47100e71c Sort generated methods to appease git diff. 2021-02-13 18:04:00 +11:00
Lea Anthony 9a81a57d13 Revert bootstrapping. 2021-02-12 15:08:54 +11:00
Lea Anthony 354429bc28 Support UpdateTrayLabel in dev mode. Small refactor. 2021-02-12 14:52:47 +11:00
Lea Anthony 99d4d9490c Improved dialog support for dev mode 2021-02-12 14:50:58 +11:00
Lea Anthony 61afe711bd v2.0.0-alpha.26 2021-02-11 07:17:28 +11:00
Lea Anthony 6e3cfc157f Add bridge.js 2021-02-11 07:09:40 +11:00
Lea Anthony 30d762372f @wails/runtime v1.3.9 2021-02-11 07:04:01 +11:00
Lea Anthony 2dbaabb74c Keep package.json files 2021-02-11 07:02:57 +11:00
Lea Anthony f8bae0430f Add windowDrag shim for bridge 2021-02-11 06:52:07 +11:00
Lea Anthony 21c07497d7 Move bridge to Svelte build. Initial support for trays in dev mode 2021-02-10 22:53:14 +11:00
Lea Anthony 9b9bcd657f v2.0.0-alpha.25 2021-02-09 21:21:51 +11:00
Lea Anthony 02038aa543 Bugfix dialogs 2021-02-09 21:21:31 +11:00
Lea Anthony 9910d1127a v2.0.0-alpha.24 2021-02-09 21:11:11 +11:00
Lea Anthony 21a0245985 Generate bindings in package. Support dialogs in dev mode. 2021-02-09 21:10:06 +11:00
Lea Anthony e860f3a00e v2.0.0-alpha.23 2021-02-08 08:57:32 +11:00
Lea Anthony 2e480d2c52 Move to Go 1.16 2021-02-08 08:55:18 +11:00
Lea Anthony 2c0f93d647 v2.0.0-alpha.22 2021-02-08 06:52:21 +11:00
Lea Anthony 41f973c7d5 Update runtime package 2021-02-08 06:51:49 +11:00
Lea Anthony 2d1447d558 darwin bridge js 2021-02-08 06:37:57 +11:00
Lea Anthony 7c22cbcf38 Bridge working for calls. Notify TBD 2021-02-08 06:36:13 +11:00
Lea Anthony e4b03f510b First step to bridge support 2021-02-06 21:50:21 +11:00
Lea Anthony 8dfd206aa9 Updates for using the bridge 2021-02-06 13:36:56 +11:00
Lea Anthony 6dabab1d2e v2.0.0-alpha.21 2021-02-03 07:20:08 +11:00
Lea Anthony c3bd8b1a85 Remove debug info 2021-02-03 07:15:52 +11:00
Lea Anthony e1b7332c47 Graceful shutdown 2021-02-03 07:14:44 +11:00
Lea Anthony 5cd08e45f0 v2.0.0-alpha.20 2021-01-31 22:50:01 +11:00
Lea Anthony c2d03f0e6e Update NSFontWeightRegular to float const 2021-01-31 22:49:29 +11:00
Lea Anthony d3501f4cb7 v2.0.0-alpha.19 2021-01-31 21:59:16 +11:00
Lea Anthony ee82cd25b7 Menu Items default to 12 pt on Mac 2021-01-31 21:58:41 +11:00
Lea Anthony bbb07e17d9 v2.0.0-alpha.18 2021-01-31 21:20:40 +11:00
Lea Anthony e6b40b55c4 Add nil guard for binding 2021-01-31 21:10:30 +11:00
Lea Anthony 7573f68df3 Add argument guard for methods 2021-01-31 15:35:33 +11:00
Lea Anthony ceaacc7ba9 Re-added Store.Set() using deep copy 2021-01-30 21:36:59 +11:00
Lea Anthony 0e24f75753 Deep copy initial value in store 2021-01-30 21:29:36 +11:00
Lea Anthony 82b9deeee4 Unexport set 2021-01-30 20:47:10 +11:00
Lea Anthony cfa40b797f More race condition fixes 2021-01-29 13:03:05 +11:00
Lea Anthony 5aeb68acb7 Fix for calculating new window size 2021-01-28 19:26:26 +11:00
Lea Anthony b81101414f Support Min/Max Size in Window runtime 2021-01-28 18:48:07 +11:00
Lea Anthony 7ae89d04bb Fixed data race in store. Handle nils better 2021-01-28 07:15:29 +11:00
Lea Anthony 1c566f3802 Fixed data race in servicebus 2021-01-28 06:23:49 +11:00
Lea Anthony c9c3c9ab90 Don't bind startup/shutdown methods 2021-01-27 21:12:17 +11:00
Lea Anthony 56394ac50e Use mutex when doing a Store resync 2021-01-27 06:03:17 +11:00
Lea Anthony f7c2f12ab2 Added error handler for dealing with loading user js code 2021-01-26 16:01:06 +11:00
Lea Anthony a6bb6e0c93 v2.0.0-alpha.17 2021-01-26 12:30:45 +11:00
Lea Anthony 4a5863e6ac Ported update command 2021-01-26 12:30:14 +11:00
Lea Anthony 913fe8d184 v2.0.0-alpha.16 2021-01-26 11:11:23 +11:00
Lea Anthony 4ce8130cdf Replace CreateApp with single Run() method 2021-01-26 11:09:17 +11:00
Lea Anthony fe87463b78 Move Bind() into app config 2021-01-26 07:04:12 +11:00
Lea Anthony fe0f0e29e8 Update CreateApp API 2021-01-26 06:45:23 +11:00
Lea Anthony 83d6dac7cf Add appType to builds. Update server code to compile 2021-01-26 06:40:41 +11:00
Lea Anthony 02500e0930 Update vanilla template with new API 2021-01-26 06:40:18 +11:00
Lea Anthony 5e1187f437 Startup/Shutdown hook warnings 2021-01-26 06:39:54 +11:00
Lea Anthony 064ff3b65e Change build wording 2021-01-26 06:38:54 +11:00
Lea Anthony b5c7019bf0 Fix compile warnings 2021-01-26 06:37:33 +11:00
Lea Anthony e9d16e77a3 Add support for loglevel flag in debug builds 2021-01-25 21:42:31 +11:00
Lea Anthony 2415d4c531 v2.0.0-alpha.15 2021-01-25 21:21:44 +11:00
Lea Anthony 3f75213ce3 Small linting fixes 2021-01-25 21:05:20 +11:00
Lea Anthony 6120ceabf1 Support Fonts & Colours for menuitems 2021-01-25 21:04:57 +11:00
Lea Anthony 95a95d1750 Ensure store does initial resync 2021-01-25 21:02:36 +11:00
Lea Anthony d923e84456 v2.0.0-alpha.14 2021-01-23 21:00:04 +11:00
Lea Anthony 343f573e78 Fix menu tooltips 2021-01-23 20:59:02 +11:00
Lea Anthony c6d87da4f0 v2.0.0-alpha.13 2021-01-23 20:39:43 +11:00
Lea Anthony a9faebe51a MenuItem image support 2021-01-23 20:32:42 +11:00
Lea Anthony d436f5d1be v2.0.0-alpha.12 2021-01-23 16:22:00 +11:00
Lea Anthony f40899821f Support ToolTips 2021-01-23 16:14:48 +11:00
Lea Anthony 2a64ed19a3 v2.0.0-alpha.11 2021-01-22 14:57:50 +11:00
Lea Anthony 47bca0be88 Support updating tray labels in an efficient manner 2021-01-16 11:35:49 +11:00
Lea Anthony 7ac8cc6b8b Add Menu.Merge() to combine 2 menus 2021-01-15 11:53:55 +11:00
Lea Anthony b435ec1217 v2.0.0-alpha.10 2021-01-14 20:43:26 +11:00
Lea Anthony 688d4fee6a UpdateTrayMenu -> SetTrayMenu (upsert). Support no menus on trays. 2021-01-14 16:13:59 +11:00
Lea Anthony 29ffeaa9f3 Misc tidy up 2021-01-14 13:55:20 +11:00
Lea Anthony 742e4ba2cb Remove WailsInit and WailsShutdown methodsr 2021-01-14 11:07:06 +11:00
Lea Anthony 0a0063de1f bump version 2021-01-14 00:28:15 +11:00
Lea Anthony 1b7d1e61cc v2.0.0-alpha.8 2021-01-13 23:47:15 +11:00
Lea Anthony 15a273458e Ensure build directory exists when building 2021-01-13 23:46:47 +11:00
Lea Anthony eef8eb756f Bump version 2021-01-13 22:56:09 +11:00
Lea Anthony e65118e962 Fixed and refactored context menu support 2021-01-13 22:51:44 +11:00
Lea Anthony de06fc7dcc Remove a ton of unused code 2021-01-13 21:29:20 +11:00
Lea Anthony a86fbbb440 Removal of menu IDs. WARNING: context menus are currently broken 2021-01-13 21:14:44 +11:00
Lea Anthony 3045ec107f attempt at preventing menu flicker when removing an icon 2021-01-13 20:47:08 +11:00
Lea Anthony 3a9557ad30 Support removal of tray icons 2021-01-13 20:38:46 +11:00
Lea Anthony 583153383a Refactor, tidy up and trim the fat! 2021-01-13 20:19:01 +11:00
Lea Anthony 3f53e8fd5f Refactor, tidy up and trim the fat! 2021-01-13 11:47:54 +11:00
Lea Anthony 5c9402323a Initial support for multiple traymenus 2021-01-13 10:28:32 +11:00
Lea Anthony 1921862b53 Partially introduce context menu changes back 2021-01-12 21:20:08 +11:00
Lea Anthony 0f7acd39fc [WIP] Fix the madness 2021-01-12 20:39:19 +11:00
Lea Anthony 1a7507f524 [WIP] Add tray menu store + refactor 2021-01-12 16:55:30 +11:00
Lea Anthony db6dde3e50 [WIP] Support tray in menu manager 2021-01-12 15:55:28 +11:00
Lea Anthony 4e58b7697a Add context menu to menumanager. Slight refactor. 2021-01-11 14:19:01 +11:00
Lea Anthony 55d7d9693f Removed Menu GetByID / RemoveByID 2021-01-11 13:41:07 +11:00
Lea Anthony b4b7c9d306 Implemented MenuItem.Remove() to remove from the menu structures 2021-01-11 11:57:49 +11:00
Lea Anthony a4153fae57 Remove Menu.On() 2021-01-11 11:25:48 +11:00
Lea Anthony 8053357d99 Support Menu updates! 2021-01-11 11:21:28 +11:00
Lea Anthony 7347d2caa2 Add wails debug command 2021-01-11 11:20:25 +11:00
Lea Anthony e6491bcbb7 Fix bad deallocation of context menus 2021-01-11 07:03:59 +11:00
Lea Anthony 26a291dbee [WIP] Use json payload for click message 2021-01-11 06:40:00 +11:00
Lea Anthony 8ee8c9b07c [WIP] New menu processor 2021-01-10 21:31:13 +11:00
Lea Anthony 3a2d01813a Don't inline functions in debug builds 2021-01-10 20:32:25 +11:00
Lea Anthony d2dadc386f Add combo modifier to kitchen sink 2021-01-08 11:39:18 +11:00
Lea Anthony faa8f02b08 Bugfix for message dialog icons 2021-01-08 11:39:02 +11:00
Lea Anthony fbee9ba240 Support UpdateContextMenus. Submenus are now *menu.Menu. Tidy up++ 2021-01-08 06:28:51 +11:00
Lea Anthony 2a69786d7e Remove old code (woohoo!) 2021-01-07 21:36:39 +11:00
Lea Anthony f460bf91ef [WIP] Normalisation of context menus creation/callbacks.
TODO: UpdateContextMenu()
2021-01-07 21:34:04 +11:00
Lea Anthony bd74d45a91 Normalisation of callbacks for menus. App menu converted to new Menus. 2021-01-06 20:50:41 +11:00
Lea Anthony c65522f0b6 Huge refactor of menus. Start of normalisation of callbacks. 2021-01-06 17:36:59 +11:00
Lea Anthony 5f2c437136 Bugfix dealloc contextmenus. Create common.h. WIP: new menu handling 2021-01-06 12:53:11 +11:00
Lea Anthony 87e974e080 Refactor/Tidy up Ffenestri darwin 2021-01-06 11:56:01 +11:00
Lea Anthony f77729fc0b v2.0.0-alpha.6 2021-01-05 14:28:50 +11:00
Lea Anthony 2a8ce96830 Remove custom asset bundling. Use Go's embed instead! 2021-01-05 14:28:18 +11:00
Lea Anthony 9be539cfb8 Force rebuild each time to pick up .h changes Tidy up go.mod. Bump version. 2021-01-05 14:01:53 +11:00
Lea Anthony e44f2fe06d Moved version out of main. 2021-01-05 13:26:31 +11:00
Lea Anthony ad65d55abd Misc fixes for module build 2021-01-05 13:20:44 +11:00
Lea Anthony 2b5bbfd897 Script to rebuild runtime_*.c 2021-01-05 13:01:38 +11:00
Lea Anthony d2020fedda Move generated assets to build dir. Precompile platform runtime. 2021-01-05 13:01:03 +11:00
Lea Anthony 98789bd85a Fix rollup-plugin-svelte in KS 2021-01-04 22:23:07 +11:00
Lea Anthony e6ace2fafd Add Pace to Thanks 2021-01-04 19:52:12 +11:00
Lea Anthony a55fc4d0e9 Refactor TrayOptions to Tray. Add ID. 2021-01-04 15:58:28 +11:00
Lea Anthony a09e9d4586 Merge branch 'develop' into feature/v2-mac 2021-01-04 13:54:02 +11:00
Lea Anthony ba7c8cf0e0 Merge branch 'develop' into feature/v2-mac 2021-01-04 13:41:36 +11:00
Lea Anthony 60f67d4642 Remove old method 2021-01-03 22:07:05 +11:00
Lea Anthony 0dc6c20c65 Provide a better error message when trying to bind functions 2021-01-03 22:05:40 +11:00
Lea Anthony 5d41aad539 Misc lint fixes 2021-01-03 21:31:19 +11:00
Lea Anthony e9a0e45d5c Support js & css in link tags 2021-01-03 21:20:29 +11:00
Lea Anthony 2dedd0b702 Expose Store 2021-01-03 20:20:44 +11:00
Lea Anthony 1889973af1 Dedupe assetbundle 2021-01-03 20:06:07 +11:00
Lea Anthony 75e852451c Fix context menu bug 2021-01-03 09:56:45 +11:00
Lea Anthony cfee44b18b Fix typo 2021-01-03 05:31:05 +11:00
Lea Anthony f384fc7562 Add -k flag for debug purposes 2021-01-03 05:02:48 +11:00
Lea Anthony 44c55d06a6 Create dialog dir if missing 2021-01-02 13:37:58 +11:00
Lea Anthony f4ca9a6b9e Update svelte dependencies 2021-01-02 13:37:15 +11:00
Lea Anthony a54d875ceb Fix misc build issues 2021-01-01 13:00:38 +11:00
Lea Anthony 657df8bdda Use assets dir in project for all application assets 2021-01-01 12:53:06 +11:00
Lea Anthony c0fabc0bb7 Default dialog icon generation improvement 2021-01-01 12:43:21 +11:00
Lea Anthony 4fd476bb7d Default readme for assets directory 2021-01-01 12:42:52 +11:00
Lea Anthony be0a9ddf6b Handle WailsInit() errors 2021-01-01 12:39:59 +11:00
Lea Anthony f7db0b7373 Fix return values of default App method 2021-01-01 12:37:52 +11:00
Lea Anthony 5ca57e446a Extra guards during destroy 2021-01-01 12:37:16 +11:00
Lea Anthony 33a27b06a6 Add Message dialog to Kitchen Sink 2020-12-31 14:52:45 +11:00
Lea Anthony b50acaba91 Fix 'ResolvesAliases' typo 2020-12-31 11:04:10 +11:00
Lea Anthony 6253ac30b7 Support Message dialog in JS runtime 2020-12-31 11:02:32 +11:00
Lea Anthony 2a93e2694d Retina & theme aware dialog icons. Default icons + override ability 2020-12-30 22:36:23 +11:00
Lea Anthony 91fb3501c5 Support custom dialog icons. Move icons to new dir. 2020-12-30 08:27:00 +11:00
Lea Anthony c7d5e7de72 Add CopyDir 2020-12-30 08:25:16 +11:00
Lea Anthony 02ef02ec9e Support wails doctor for Mac 2020-12-30 00:18:59 +11:00
Lea Anthony f77626490f Support Tray.SetIcon in KitchenSink 2020-12-29 15:22:00 +11:00
Lea Anthony 6fd13fb4d4 Support Tray.SetIcon in runtime 2020-12-29 15:20:35 +11:00
Lea Anthony e18ba0eb81 Handle no tray icons 2020-12-28 14:49:15 +11:00
Lea Anthony 25f464c177 Refactor accelerator to keys package 2020-12-26 14:58:22 +11:00
Lea Anthony 57a9d5f472 Update server client API 2020-12-26 07:37:40 +11:00
Lea Anthony 3b0f852f37 Updated accelerators API 2020-12-26 06:11:22 +11:00
Lea Anthony a85c8ba894 Remove "WithAccellerator" methods. Now mandatory in base methods 2020-12-26 06:01:10 +11:00
Lea Anthony f0c932713b Support changing tray icon at runtime
Support both icon & text in tray
2020-12-24 10:05:55 +11:00
Lea Anthony 8625e99625 Add OnThemeChange
Refactor Theme change handling
2020-12-24 07:30:20 +11:00
Lea Anthony c79f86fd03 Remove old tray icon, add new 2020-12-23 06:56:56 +11:00
Lea Anthony a0774cf71c Support loading multiple tray icons 2020-12-23 06:55:45 +11:00
Lea Anthony 16b872352d Support Text label tray 2020-12-22 18:08:38 +11:00
Lea Anthony e414eda151 Fix race condition 2020-12-21 07:19:33 +11:00
Lea Anthony 719f4b5113 Remove debug output 2020-12-21 07:19:20 +11:00
Lea Anthony 8b75d57cff Use release instead of dealloc 2020-12-21 07:18:52 +11:00
Lea Anthony 7aea6980b5 Remove context menu debug log 2020-12-20 21:06:34 +11:00
Lea Anthony 99e790944f Merge branch 'v2-mac-fixes' into feature/v2-mac
# Conflicts:
#	v2/internal/ffenestri/ffenestri_darwin.c
#	v2/internal/ffenestri/ffenestri_darwin.go
#	v2/internal/ffenestri/ffenestri_darwin.h
2020-12-20 21:02:39 +11:00
Lea Anthony 937f0f77c2 Fix NPE 2020-12-20 21:00:32 +11:00
Lea Anthony c86aa7d3c8 Handle null modifiers 2020-12-20 17:55:14 +11:00
Lea Anthony d380a8d6a7 Bugfix for context menus
Proper releasing of NSMenus
2020-12-20 14:09:15 +11:00
Lea Anthony a8995c5377 Support context menu data
Support StartHidden
2020-12-18 15:50:25 +11:00
Lea Anthony 34ac62e4ac Updated tray icon 2020-12-16 08:59:01 +11:00
Lea Anthony a1f9d9ca06 Handle oncontext event 2020-12-16 08:54:24 +11:00
Lea Anthony e6fbd03346 Bugfix error message 2020-12-16 08:53:11 +11:00
Lea Anthony dd35f0119b Better error handling 2020-12-11 05:41:24 +11:00
Lea Anthony b837b1e131 Tray menu support
Bugfix move after tray use
Refactored options to handle default tray/menu
2020-12-10 07:16:10 +11:00
Lea Anthony 0802d0d57a Tray menu callbacks working 2020-12-07 07:08:33 +11:00
Lea Anthony 6fa2ebdd4f Lint fix & tidy up 2020-12-06 21:15:23 +11:00
Lea Anthony 11bf564b73 Preliminary Tray support 2020-12-06 21:05:21 +11:00
Lea Anthony 65bea04080 Pass radio callback through methods 2020-12-06 17:52:05 +11:00
Lea Anthony 4572b790c6 Pass checkbox callback through methods 2020-12-06 17:47:41 +11:00
Lea Anthony f419941065 Pass menuItemMap through methods instead of global 2020-12-06 17:32:19 +11:00
Lea Anthony d3d965ee1f more logger fixes 2020-12-06 07:14:19 +11:00
Lea Anthony 2a55983bc9 Fix logger 2020-12-05 14:44:28 +11:00
Lea Anthony 7e42052da0 InsertBefore/InsertAfter supported 2020-12-05 14:14:46 +11:00
Lea Anthony e8bb950e06 Updates for dynamic menus
Cleanup of logging
2020-12-05 07:52:59 +11:00
Lea Anthony 13dc0c78df Remove browser test 2020-12-04 15:06:01 +11:00
Lea Anthony a081c1e498 Support for dynamic menus.
Fixed bug in accelerator handling
2020-12-04 15:04:51 +11:00
Lea Anthony a3e50e760e Tidy Up dialog 2020-12-02 05:56:20 +11:00
Lea Anthony b6aa53175f Create Menu struct for kitchensink 2020-12-02 05:55:02 +11:00
Lea Anthony 094d8d4b75 fix bug with function key comparisons 2020-12-01 09:11:16 +11:00
Lea Anthony 0fa67c94c1 Graceful shudown - FINALLY! 2020-11-29 15:56:14 +11:00
Lea Anthony 083aee1588 Support F-keys & a couple more system keys 2020-11-29 15:24:27 +11:00
Lea Anthony 5c39467879 Support more accelerator keys 2020-11-29 14:18:53 +11:00
Lea Anthony fb1d4c6325 Support for Accelerators! 2020-11-28 20:57:07 +11:00
Lea Anthony a0fe2f1e13 UTF-8 test 2020-11-27 22:22:30 +11:00
Lea Anthony dbe6000632 Support for radio menu items 2020-11-27 22:07:44 +11:00
Lea Anthony 42dc96cf6b Support checkboxes 2020-11-25 08:10:27 +11:00
Lea Anthony 4fd3516f41 Support Hidden/Disabled. Normal->Text 2020-11-24 20:12:10 +11:00
Lea Anthony 6f218264ed Initial support for menus 2020-11-24 19:43:25 +11:00
Lea Anthony 810b3c7440 Add default menu for mac apps 2020-11-21 21:38:18 +11:00
Lea Anthony 40fdf75042 Disable context menu in production mode 2020-11-21 20:32:55 +11:00
Lea Anthony bc260b08b2 Better devtools handling 2020-11-21 12:40:19 +11:00
Lea Anthony b920f45f60 Formatting update. 2020-11-21 12:07:55 +11:00
Lea Anthony 7f02f6886f Improved project generation 2020-11-21 11:56:01 +11:00
Lea Anthony aa271d6498 Support git init. Get author details. 2020-11-21 11:43:13 +11:00
Lea Anthony 9e6ae4d762 Support building Mac package 2020-11-21 07:09:25 +11:00
Lea Anthony ef8b58b208 Set log level to ERROR for production build 2020-11-20 14:53:42 +11:00
Lea Anthony 0422921dc7 Misc documentation updates 2020-11-20 14:45:35 +11:00
Lea Anthony 5ba03937c3 Updated Dialog Examples 2020-11-19 08:56:57 +11:00
Lea Anthony cc4967d457 Add dialog to kitchensink 2020-11-19 07:04:42 +11:00
Lea Anthony eaeecbb180 Support Dialog in runtime 2020-11-19 07:04:08 +11:00
Lea Anthony 069de31003 Convert args to [] 2020-11-19 07:03:12 +11:00
Lea Anthony ae5c74b6cd ResolveAlias -> ResolvesAlias 2020-11-19 07:02:29 +11:00
Lea Anthony 716888dcb2 Disable module generation 2020-11-17 21:46:20 +11:00
Lea Anthony ca4e2b2391 Cosmetic changes 2020-11-17 21:44:48 +11:00
Lea Anthony 630abbd3c8 Rmoved v1 dep :/ 2020-11-17 21:36:10 +11:00
Lea Anthony 33f40c2eac relative replace in go.mod 2020-11-17 21:29:31 +11:00
Lea Anthony 7c7b6ba082 Runtime updates 2020-11-17 21:19:09 +11:00
Lea Anthony 205a6db9f1 Open link to website/github 2020-11-17 21:19:00 +11:00
Lea Anthony 659fe1b281 Disable set title if needed 2020-11-17 21:18:38 +11:00
Lea Anthony e86d622219 Add appconfig store 2020-11-17 07:02:58 +11:00
Lea Anthony ee3da60002 Sync new JS syncstores on creation 2020-11-17 06:58:14 +11:00
Lea Anthony 88643134c9 Add AppConfig to runtime.System 2020-11-17 06:57:43 +11:00
Lea Anthony 56553bb683 Remove logger from json encoded app config 2020-11-17 06:56:51 +11:00
Lea Anthony cd14f4221e Merge branch 'develop' into feature/v2-mac 2020-11-16 07:12:01 +11:00
Lea Anthony 108fcbb161 Comment about window title 2020-11-15 15:42:46 +11:00
Lea Anthony e12762a584 Un/Fullscreen, SetTitle in Kitchen Sink 2020-11-15 15:10:09 +11:00
Lea Anthony 98cc356b92 Un/Fullscreen, SetTitle in Runtime 2020-11-15 15:09:33 +11:00
Lea Anthony 32ba9e78fe Improved fullscreen support 2020-11-15 15:08:46 +11:00
Lea Anthony a737d85fa5 Fixd typos in runtime 2020-11-15 12:22:03 +11:00
Lea Anthony 435ac02647 Update runtime.Window 2020-11-15 12:18:37 +11:00
Lea Anthony 255b4e103a Add Window to kitchensink 2020-11-15 12:01:43 +11:00
Lea Anthony bd8771849b Support size/position in Go runtime 2020-11-15 12:01:15 +11:00
Lea Anthony b32349effe Improve min/maximise 2020-11-15 12:00:57 +11:00
Lea Anthony cd03b4b633 Merge branch 'feature/v2-mac' of github.com:wailsapp/wails into feature/v2-mac 2020-11-15 10:18:33 +11:00
Lea Anthony c45315d61d Add window to runtime 2020-11-15 10:16:56 +11:00
Lea Anthony 62374b9b53 Js package generation (#554)
* WIP

* Generation of index.js

* Add RelativeToCwd

* Add JSDoc comments

* Convert to ES6 syntax

* Fix typo

* Initial generation of typescript declarations

* Typescript improvements

* Improved @returns jsdoc

* Improved declaration files

* Simplified output

* Rename file

* Tidy up

* Revert "Simplified output"

This reverts commit 15cdf7382b21a15a36616adbca13c9b034a1907b.

* Now parsing actual code

* Support Array types

* Reimagined parser

* Wrap parsing in Parser

* Rewritten module generator (TS Only)

* Final touches

* Slight refactor to improve output

* Struct comments. External struct literal binding

* Reworked project parser *working*

* remove debug info

* Refactor of parser

* remove the spew

* Better Ts support

* Better project generation logic

* Support local functions in bind()

* JS Object generation. Linting.

* Support json tags in module generation

* Updated mod files

* Support vscode file generation

* Better global.d.ts

* add ts-check to templates

* Support TS declaration files

* improved 'generate' command for module
2020-11-15 09:25:38 +11:00
Lea Anthony ddb875f788 Dialog WIP 2020-10-24 14:06:57 +11:00
Lea Anthony 9a32852119 Add JS runtime Dialog 2020-10-23 23:56:33 +11:00
Lea Anthony e795283482 Huge improvement to calls: Now handles objects 2020-10-23 22:24:30 +11:00
Lea Anthony e6036d31cf Add System to kitchensink 2020-10-23 11:46:12 +11:00
Lea Anthony 5a85a6e4f9 Expose System methods in Go runtime 2020-10-23 11:24:52 +11:00
Lea Anthony 0113fbff4f Update runtime.System to make all methods 2020-10-23 11:19:38 +11:00
Lea Anthony 145656bc43 Improved runtime.System 2020-10-23 10:42:00 +11:00
Lea Anthony 6153c48c86 Update title 2020-10-21 06:52:52 +11:00
Lea Anthony 912c0125e5 Add Browser examples 2020-10-21 06:40:17 +11:00
Lea Anthony dc2ad3cd3e Remove debug line 2020-10-21 06:02:07 +11:00
Lea Anthony e3783c5480 Fix browser runtime export 2020-10-20 09:24:03 +11:00
Lea Anthony 440abbe3b6 JS Runtime v1.0.8 2020-10-20 09:10:54 +11:00
Lea Anthony 95369d7c3d Unify Browser runtime 2020-10-20 09:10:09 +11:00
Lea Anthony 9e0023961b Update Browser runtime API 2020-10-20 07:16:56 +11:00
Lea Anthony 307e07b4c8 Finish events page 2020-10-20 06:45:46 +11:00
Lea Anthony fb88eadb58 Tidy up events runtime 2020-10-20 06:45:21 +11:00
Lea Anthony 6fdf088531 Revert Fatal on JS Error 2020-10-20 06:45:02 +11:00
Lea Anthony 07b6fc0c52 Update runtime in kitchensink 2020-10-18 16:49:08 +11:00
Lea Anthony 1b466090e8 Remove old Event methods 2020-10-18 16:47:48 +11:00
Lea Anthony c990760f22 Remove old event methods 2020-10-18 16:44:32 +11:00
Lea Anthony aeb7d857ee Support Emit & Once. Improved On. 2020-10-18 11:49:27 +11:00
Lea Anthony 78f99c2697 update runtime definitions 2020-10-18 11:48:56 +11:00
Lea Anthony 7885718d42 Disable annoying smart quotes 2020-10-18 11:48:38 +11:00
Lea Anthony 288da8c147 Improved error handling? 2020-10-18 11:48:20 +11:00
Lea Anthony 7e31db809a Add Events.On 2020-10-17 21:07:00 +11:00
Lea Anthony fb0ccfc8e6 WIP Events.On 2020-10-17 15:10:13 +11:00
Lea Anthony c9bf4e3d48 refactor clilogger 2020-10-17 13:47:13 +11:00
Lea Anthony 2a59272b86 hook in windowWillClose 2020-10-16 14:02:49 +11:00
Lea Anthony ff5e2862b8 Fix change in logging levels 2020-10-13 07:49:47 +11:00
Lea Anthony 51678afdc7 @wails/runtime v1.0.4 2020-10-13 07:35:36 +11:00
Lea Anthony 3b6a3df03d Update logger constants to fix default values 2020-10-13 07:34:36 +11:00
Lea Anthony 1c97559151 logging: slight refactor 2020-10-13 06:43:38 +11:00
Lea Anthony 082e695c83 Fix log level reactivity.
Misc fixes and tweaks
2020-10-12 23:36:37 +11:00
Lea Anthony 4a5e4d3a5e Move preview for SetLogLevel 2020-10-12 20:55:47 +11:00
Lea Anthony 8988f29cea More Logging updates 2020-10-12 20:54:33 +11:00
Lea Anthony 6150010d17 Runtime defs update.
Slight System refactor
2020-10-12 20:01:37 +11:00
Lea Anthony c165b97d57 SetLogLevel fully supported 2020-10-12 06:56:51 +11:00
Lea Anthony 39c599d2de Link component 2020-10-12 06:56:32 +11:00
Lea Anthony be952ba2da Terminal output component 2020-10-12 06:56:22 +11:00
Lea Anthony 5a141d343e Better looking scrollbar 2020-10-12 06:55:42 +11:00
Lea Anthony 7e4ad307aa Fully refactored logging 2020-10-11 15:10:25 +11:00
Lea Anthony d8bb418851 Runtime refactor 2020-10-11 13:33:55 +11:00
Lea Anthony f1cd84d0c8 Support dynamic loglevel 2020-10-10 15:06:27 +11:00
Lea Anthony ba6538da7c Made go runtime package public.
Using loglevel store to keep loglevel in sync
2020-10-10 13:57:32 +11:00
Lea Anthony afea1cbb4c Support SetLogLevel() at runtime
Refactor of loglevel
2020-10-10 07:31:23 +11:00
Lea Anthony 19fbc884ae Fix number of methods in Log 2020-10-09 15:44:08 +11:00
Lea Anthony 67861e4f70 Updated Logger interface 2020-10-09 15:39:11 +11:00
Lea Anthony 228285f693 Support Print logging 2020-10-09 15:13:45 +11:00
Lea Anthony 9f62a08cd2 Move Info message to Trace 2020-10-09 14:59:12 +11:00
Lea Anthony d97cd1b75f Runtime v1.0.1 2020-10-09 14:52:07 +11:00
Lea Anthony 5fd8312f63 Support Print in JS runtime 2020-10-09 14:51:26 +11:00
Lea Anthony 90b7d5f519 Support log level 2020-10-09 14:36:42 +11:00
Lea Anthony 93f4549efa Support trace in go runtime 2020-10-09 14:36:28 +11:00
Lea Anthony b5c8dfac97 Support Trace in kitchensink 2020-10-09 14:36:15 +11:00
Lea Anthony ee01b7759e Migrate runtime to @wails 2020-10-09 14:35:43 +11:00
Lea Anthony 8dba591cda Add trace to JS runtime 2020-10-09 14:35:30 +11:00
Lea Anthony 302db87bec Debug refactor 2020-10-09 14:01:35 +11:00
Lea Anthony 161ff3b32a Make Ffenestri use logging subsystem. 2020-10-09 12:15:25 +11:00
Lea Anthony ffdfbb8ae5 Major logging refactor 2020-10-09 11:50:45 +11:00
Lea Anthony 53b54a8e52 Revert logger package 2020-10-09 10:33:11 +11:00
Lea Anthony 0403e0a783 Make logger a public package 2020-10-09 10:30:01 +11:00
Lea Anthony 8a2acacc37 Start Events. List styling moved to global scope. 2020-10-08 21:03:45 +11:00
Lea Anthony 256e84c4d4 Improved CodeBlock. Dark mode to store. 2020-10-08 20:51:14 +11:00
Lea Anthony c10e8788d8 Add logging to kitchen sink 2020-10-08 07:39:15 +11:00
Lea Anthony 6eb89f61b3 Add Log to Go runtime 2020-10-08 07:39:01 +11:00
Lea Anthony e3d2ff9ea1 Remove log package 2020-10-08 07:38:47 +11:00
Lea Anthony 665dfa6aee WIP 2020-10-07 21:09:05 +11:00
Lea Anthony 4f7e2128d1 Better drag support 2020-10-07 07:11:00 +11:00
Lea Anthony 8112facb4e Fix right click crash 2020-10-07 06:44:58 +11:00
Lea Anthony 944261b5e4 initial kitchen sink 2020-10-07 00:52:00 +11:00
Lea Anthony ba528d0534 Debugging 2020-10-07 00:51:22 +11:00
Lea Anthony a28afe86ce Remove unused event messages 2020-10-04 13:37:29 +11:00
Lea Anthony 5e0026e124 Update runtime to v1.0.3 2020-10-04 12:07:56 +11:00
Lea Anthony f23ed3c319 Add Store to go runtime 2020-10-04 12:07:42 +11:00
Lea Anthony 6aae2eb1df Support setting app state at startup 2020-10-04 12:07:10 +11:00
Lea Anthony f4943bc26c Remove generated files 2020-10-04 11:54:05 +11:00
Lea Anthony 1c6578e6ef Use IsDarkMode state store 2020-10-04 11:50:05 +11:00
Lea Anthony 5ef200f21c Refactor system. Add IsDarkMode state store 2020-10-04 11:42:42 +11:00
Lea Anthony b3822137f7 Refactor store. Add get(). 2020-10-04 11:41:39 +11:00
Lea Anthony 858789f442 Port Sync Store 2020-10-04 07:22:00 +11:00
Lea Anthony 3209b39488 Support System calls in Go Runtime 2020-10-03 20:46:18 +10:00
Lea Anthony 0c9f6edeb6 Add system calls to js runtime 2020-10-03 20:45:37 +10:00
Lea Anthony aabcef2958 Add System calls to runtime 2020-10-03 20:45:04 +10:00
Lea Anthony 10d68b2676 Small fixes to frontend events 2020-10-03 15:29:34 +10:00
Lea Anthony e960afe8f6 Support OnMultiple 2020-10-03 15:10:38 +10:00
Lea Anthony ae677ce9db Misc fixes for events 2020-10-03 15:03:14 +10:00
Lea Anthony 7f9c59a021 Support theme mode change event 2020-10-02 15:12:56 +10:00
Lea Anthony d8fdc96899 Add IsDarkMode
Updated runtime test
2020-10-02 11:41:46 +10:00
Lea Anthony c3280e8b60 Update runtime test 2020-10-02 07:45:41 +10:00
Lea Anthony 26a1f78d56 Support Translucent Window Background 2020-10-02 07:45:22 +10:00
Lea Anthony ee9c98c515 Refactor Part 2 2020-10-02 07:11:24 +10:00
Lea Anthony 29ec06fb0a Refactor part 1 2020-10-02 06:52:08 +10:00
Lea Anthony c1155e255b Add default appearance 2020-09-30 20:03:08 +10:00
Lea Anthony 4e39566118 Rename vibrancy to appearance 2020-09-30 19:54:41 +10:00
Lea Anthony 3f3094f0aa Support vibrancy and transparency for webview
Options Colour -> RGBA
2020-09-30 07:25:15 +10:00
Lea Anthony 84730d2f4d Tidy up 2020-09-29 20:36:38 +10:00
Lea Anthony b8bb891275 Frameless is calculated for Mac 2020-09-29 20:34:54 +10:00
Lea Anthony 7bcb5be1a5 Update tests 2020-09-29 07:44:02 +10:00
Lea Anthony 081c842149 Support window dragging 2020-09-29 07:33:16 +10:00
Lea Anthony 6bdcec8105 WIP: Basics of window drag 2020-09-28 22:08:53 +10:00
Lea Anthony 3c7937bff9 Tidy Up 2020-09-28 21:22:11 +10:00
Lea Anthony d7f832c00e Support SaveDialog 2020-09-28 21:13:57 +10:00
Lea Anthony 8cd39f6a9a Support default directory 2020-09-27 20:40:36 +10:00
Lea Anthony ac27137e5a Filter support 2020-09-27 20:26:16 +10:00
Lea Anthony 762632d55a Add comments 2020-09-27 15:15:25 +10:00
Lea Anthony 48c17dac87 Support all dialog properties 2020-09-27 15:05:55 +10:00
Lea Anthony 8666935caf Support multiple files in dialog 2020-09-27 14:49:38 +10:00
Lea Anthony 0ec6707263 Support selecting files+dirs 2020-09-27 14:46:30 +10:00
Lea Anthony d4224772b4 Initial support for OpenDialog 2020-09-27 14:32:08 +10:00
Lea Anthony cd99376da9 Use options struct for dialogs 2020-09-27 10:17:30 +10:00
Lea Anthony 02fd4ec477 Revert changes to v1 2020-09-27 07:58:30 +10:00
Lea Anthony 3b851e9a22 change service bus topics for dialogs 2020-09-26 16:21:18 +10:00
Lea Anthony 5ce5e129cf Remove old dialog code 2020-09-26 16:16:25 +10:00
Lea Anthony 9b0f58ddf5 Support OpenDialog 2020-09-26 16:08:55 +10:00
Lea Anthony bed5619d4e WIP: Support multiple value return 2020-09-25 07:09:55 +10:00
Lea Anthony 69c4e6ea28 Min/Max size supported 2020-09-24 21:43:37 +10:00
Lea Anthony ea7b593693 Fix minmax app 2020-09-24 21:29:26 +10:00
Lea Anthony 7ac833e396 Sample titlebars 2020-09-24 06:45:34 +10:00
Lea Anthony a5e909337e Support TitleBar Default
Fixed merging defaults
2020-09-24 06:39:08 +10:00
Lea Anthony 0c120eccc9 Support HiddenInset Titlebar 2020-09-24 06:22:49 +10:00
Lea Anthony e6addafcdd Support hidden titlebar 2020-09-24 06:19:00 +10:00
Lea Anthony ef11f45df8 Refactored mac titlebar options 2020-09-24 05:57:32 +10:00
Lea Anthony 72fc2204b4 Moved options to own package 2020-09-24 05:46:39 +10:00
Lea Anthony 15c08ef425 Support runtime colour change 2020-09-23 08:48:11 +10:00
Lea Anthony 52bb397105 Support colour 2020-09-22 20:46:36 +10:00
Lea Anthony 5572fccaf6 Add Toolbar support for Mac 2020-09-22 17:48:39 +10:00
Lea Anthony 65d591e2a6 Support more mac window options 2020-09-22 17:19:35 +10:00
Lea Anthony 4bf59301e5 Add HideTitleBar 2020-09-21 17:13:23 +10:00
Lea Anthony 629e8f73f4 Add Mac Application Options 2020-09-21 17:07:10 +10:00
Lea Anthony eb68ba5120 fix setsize and setposition 2020-09-19 23:19:34 +10:00
Lea Anthony a8bff7868b Got get frame working 2020-09-19 07:40:45 +10:00
Lea Anthony ae04b4fcc0 WIP [bugged] 2020-09-18 21:04:23 +10:00
Lea Anthony 5eb91dd3fa More refactoring 2020-09-16 21:23:35 +10:00
Lea Anthony 3ad537fdbb Tidy up 2020-09-16 21:14:18 +10:00
Lea Anthony 2c570bb4f6 Support tons of stuff! 2020-09-16 21:11:17 +10:00
Lea Anthony 461f3aec0a Get it compiling again! 2020-09-16 20:06:32 +10:00
Lea Anthony fd47122e39 Only show window when rendered 2020-09-15 19:57:34 -05:00
Lea Anthony 8de013f192 vscode stuff 2020-09-15 19:57:34 -05:00
Lea Anthony 1dd3a602d7 Support Un/Fullscreen 2020-09-15 19:57:34 -05:00
Lea Anthony a84a49a13f ignore test builds 2020-09-15 19:57:34 -05:00
Lea Anthony 64a6a69bbd Update packages 2020-09-15 19:57:33 -05:00
Lea Anthony d75b9f26f1 Callback hooks for MOAE 2020-09-15 19:57:33 -05:00
Lea Anthony 10cb7f830f Fix logger 2020-09-15 19:57:33 -05:00
Lea Anthony dd3e6de9b2 Add Center + refactor prefs 2020-09-15 19:57:33 -05:00
Lea Anthony d42b84abc1 Callbacks working 2020-09-15 19:57:33 -05:00
Lea Anthony b6c649041b Support sending messages to the backend 2020-09-15 19:57:33 -05:00
Lea Anthony 93ec65be6a More feature flag removal 2020-09-15 19:57:30 -05:00
Lea Anthony bfa8929c47 Remove feature flag code 2020-09-15 19:55:52 -05:00
Lea Anthony 360713c803 lint 2020-09-15 19:55:51 -05:00
Lea Anthony 26ce682824 Ignore favicon for desktop 2020-09-15 19:55:51 -05:00
Lea Anthony 65b546c0f9 Evaluation working correctly. Still WIP 2020-09-15 19:55:51 -05:00
Travis McLane 31494bba22 add darwin platform for server 2020-09-15 19:55:51 -05:00
Lea Anthony f25abb0b26 Semi runs 2020-09-15 19:55:51 -05:00
Lea Anthony e831bc75c6 Stubs in place to compile 2020-09-15 19:55:51 -05:00
Lea Anthony 852bbd148c Get it compiling 2020-09-15 19:55:50 -05:00
Travis McLane c158fd369a Merge commit 'a213e8bcd1d8e4e5c764978879d875d2d55dd400' as 'v2' 2020-09-15 19:52:54 -05:00
Travis McLane a213e8bcd1 Squashed 'v2/' content from commit 72ef153
git-subtree-dir: v2
git-subtree-split: 72ef15359e36e42b18d9407f74c762f83eb9a099
2020-09-15 19:52:54 -05:00
574 changed files with 80811 additions and 13 deletions
+11 -2
View File
@@ -17,8 +17,17 @@ cmd/wails/wails
.DS_Store
tmp
node_modules/
package.json.md5
v2/test/**/frontend/dist
v2/test/**/build/
v2/test/frameless/icon.png
v2/test/hidden/icon.png
v2/test/kitchensink/frontend/public/bundle.*
v2/pkg/parser/testproject/frontend/wails
v2/test/kitchensink/frontend/public
v2/internal/ffenestri/runtime.c
v2/internal/runtime/assets/desktop.js
v2/test/kitchensink/build/darwin/desktop/kitchensink
v2/test/kitchensink/frontend/package.json.md5
/v2/internal/ffenestri/windows/test/cmake-build-debug/
!v2/internal/ffenestri/windows/x64/webview2.dll
!v2/internal/ffenestri/windows/x64/WebView2Loader.dll
.idea/
+5 -1
View File
@@ -1,4 +1,8 @@
{
"go.formatTool": "goimports",
"eslint.alwaysShowStatus": true
"eslint.alwaysShowStatus": true,
"files.associations": {
"__locale": "c",
"ios": "c"
}
}
+2 -1
View File
@@ -40,4 +40,5 @@ Wails is what it is because of the time and effort given by these great people.
* [Balakrishna Prasad Ganne](https://github.com/aayush420)
* [Charaf Rezrazi](https://github.com/Rezrazi)
* [misitebao](https://github.com/misitebao)
* [Elie Grenon](https://github.com/DrunkenPoney)
* [Elie Grenon](https://github.com/DrunkenPoney)
* [Amaury Tobias Quiroz](https://github.com/amaury-tobias)
+6 -1
View File
@@ -147,7 +147,12 @@ This project was mainly coded to the following albums:
[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fwailsapp%2Fwails.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2Fwailsapp%2Fwails?ref=badge_large)
## Special Thank You
## Special Thanks
<p align="center" style="text-align: center">
A *huge* thanks to <a href="https://pace.dev"><img src="pace.jpeg"/> Pace</a> for sponsoring the project and helping the efforts to get Wails ported to Apple Silicon!<br/><br/>
If you are looking for a Project Management tool that's powerful but quick and easy to use, check them out!<br/><br/>
</p>
<p align="center" style="text-align: center">
A special thank you to JetBrains for donating licenses to us!<br/><br/>
+1 -1
View File
@@ -22,7 +22,7 @@ require (
github.com/syossan27/tebata v0.0.0-20180602121909-b283fe4bc5ba
golang.org/x/image v0.0.0-20200430140353-33d19683fad8
golang.org/x/net v0.0.0-20200625001655-4c5254603344 // indirect
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd
golang.org/x/sys v0.0.0-20200724161237-0e2f3a69832c
golang.org/x/text v0.3.0
gopkg.in/AlecAivazis/survey.v1 v1.8.4
gopkg.in/yaml.v3 v3.0.0-20190709130402-674ba3eaed22
+2
View File
@@ -81,6 +81,8 @@ golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5h
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd h1:xhmwyvizuTgC2qz7ZlMluP20uW+C3Rm0FD/WLDX8884=
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200724161237-0e2f3a69832c h1:UIcGWL6/wpCfyGuJnRFJRurA+yj8RrW7Q6x2YMCXt6c=
golang.org/x/sys v0.0.0-20200724161237-0e2f3a69832c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
gopkg.in/AlecAivazis/survey.v1 v1.8.4 h1:10xXXN3wgIhPheb5NI58zFgZv32Ana7P3Tl4shW+0Qc=
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

+2 -2
View File
@@ -3,12 +3,12 @@
"browser": true,
"es6": true,
"amd": true,
"node": true,
"node": true
},
"extends": "eslint:recommended",
"parserOptions": {
"ecmaVersion": 2016,
"sourceType": "module",
"sourceType": "module"
},
"rules": {
"indent": [
+1 -1
View File
@@ -26,7 +26,7 @@ export function OpenURL(url) {
* Opens the given filename using the system's default file handler
*
* @export
* @param {sting} filename
* @param {string} filename
* @returns
*/
export function OpenFile(filename) {
+1 -1
View File
@@ -62,7 +62,7 @@ if (window.crypto) {
export function Call(bindingName, data, timeout) {
// Timeout infinite by default
if (timeout == null || timeout == undefined) {
if (timeout == null) {
timeout = 0;
}
+1 -1
View File
@@ -45,7 +45,7 @@ function Invoke(message) {
*
* @export
* @param {string} type
* @param {string} payload
* @param {Object} payload
* @param {string=} callbackID
*/
export function SendMessage(type, payload, callbackID) {
+1 -1
View File
@@ -1 +1 @@
bridge.js
index.js
+1 -1
View File
@@ -1,7 +1,7 @@
#!/usr/bin/env bash
echo "**** Checking if Wails passes unit tests ****"
if ! go test ./...
if ! go test ./lib/... ./runtime/... ./cmd/...
then
echo ""
echo "ERROR: Unit tests failed!"
+40
View File
@@ -0,0 +1,40 @@
# Packing linux
* create app, app.desktop, app.png (512x512)
* chmod +x app!
* ./linuxdeploy-x86_64.AppImage --appdir AppDir -i react.png -d react.desktop -e react --output appimage
# Wails Doctor
Tested on:
* Debian 8
* Ubuntu 20.04
* Ubuntu 19.10
* Solus 4.1
* Centos 8
* Gentoo
* OpenSUSE/leap
* Fedora 31
### Development
Add a new package manager processor here: `v2/internal/system/packagemanager/`. IsAvailable should work even if the package is installed.
Add your new package manager to the list of package managers in `v2/internal/system/packagemanager/packagemanager.go`:
```
var db = map[string]PackageManager{
"eopkg": NewEopkg(),
"apt": NewApt(),
"yum": NewYum(),
"pacman": NewPacman(),
"emerge": NewEmerge(),
"zypper": NewZypper(),
}
```
## Gentoo
* Setup docker image using: emerge-webrsync -x -v
+5
View File
@@ -0,0 +1,5 @@
# Wails v2 ALPHA
This branch contains WORK IN PROGRESS! There are no guarantees. Use at your peril!
This document will be updated as progress is made.
@@ -0,0 +1,48 @@
# Build
The build command processes the Wails project and generates an application binary.
## Usage
`wails build <flags>`
### Flags
| Flag | Details | Default |
| :------------- | :----------- | :------ |
| -clean | Clean the bin directory before building | |
| -compiler path/to/compiler | Use a different go compiler, eg go1.15beta1 | go |
| -ldflags "custom ld flags" | Use given ldflags | |
| -o path/to/binary | Compile to given path/filename | |
| -k | Keep generated assets | |
| -package | Create a platform specific package | |
| -production | Compile in production mode: -ldflags="-w -s" + "-h windows" on Windows | |
| -tags | Build tags to pass to Go compiler (quoted and space separated) | |
| -upx | Compress final binary with UPX (if installed) | |
| -upxflags "custom flags" | Flags to pass to upx | |
| -v int | Verbosity level (0 - silent, 1 - default, 2 - verbose) | 1 |
| -delve | If true, runs delve on the compiled binary | false |
## The Build Process
The build process is as follows:
- The flags are processed, and an Options struct built containing the build context.
- The type of target is determined, and a custom build process is followed for target.
### Desktop Target
- The frontend dependencies are installed. The command is read from the project file `wails.json` under the key `frontend:install` and executed in the `frontend` directory. If this is not defined, it is ignored.
- The frontend is then built. This command is read from the project file `wails.json` under the key `frontend:install` and executed in the `frontend` directory. If this is not defined, it is ignored.
- The project directory is checked to see if the `build` directory exists. If not, it is created and default project assets are copied to it.
- An asset bundle is then created by reading the `html` key from `wails.json` and loading the referenced file. This is then parsed, looking for local Javascript and CSS references. Those files are in turn loaded into memory, converted to C data and saved into the asset bundle located at `build/assets.h`, which also includes the original HTML.
- The application icon is then processed: if there is no `build/appicon.png`, a default icon is copied. On Windows, an `app.ico` file is generated from this png. On Mac, `icons.icns` is generated.
- If there are icons in the `build/tray` directory, these are processed, converted to C data and saved as `build/trayicons.h`, ready for the compilation step.
- If there are icons in the `build/dialog` directory, these are processed, converted to C data and saved as `build/userdialogicons.h`, ready for the compilation step.
- If the `-package` flag is given for a Windows target, the Windows assets in the `build/windows` directory are processed: manifest + icons compiled to a `.syso` file (deleted after compilation).
- If we are building a universal binary for Mac, the application is compiled for both `arm64` and `amd64`. The `lipo` tool is then executed to create the universal binary.
- If we are not building a universal binary for Mac, the application is built using `go build`, using build tags to indicate type of application and build mode (debug/production).
- If the `-upx` flag was provided, `upx` is invoked to compress the binary. Custom flags may be provided using the `-upxflags` flag.
- If the `package` flag is given for a non Windows target, the application is bundled for the platform. On Mac, this creates a `.app` with the processed icons, the `Info.plist` in `build/darwin` and the compiled binary.
@@ -0,0 +1,284 @@
package build
import (
"fmt"
"io"
"os"
"os/exec"
"runtime"
"strings"
"text/tabwriter"
"time"
"github.com/wailsapp/wails/v2/internal/system"
"github.com/wailsapp/wails/v2/internal/shell"
"github.com/leaanthony/clir"
"github.com/leaanthony/slicer"
"github.com/wailsapp/wails/v2/pkg/clilogger"
"github.com/wailsapp/wails/v2/pkg/commands/build"
)
// AddBuildSubcommand adds the `build` command for the Wails application
func AddBuildSubcommand(app *clir.Cli, w io.Writer) {
outputType := "desktop"
validTargetTypes := slicer.String([]string{"desktop", "hybrid", "server"})
command := app.NewSubCommand("build", "Builds the application")
// Setup production flag
production := false
command.BoolFlag("production", "Build in production mode", &production)
// Setup pack flag
pack := false
command.BoolFlag("package", "Create a platform specific package", &pack)
compilerCommand := "go"
command.StringFlag("compiler", "Use a different go compiler to build, eg go1.15beta1", &compilerCommand)
compress := false
command.BoolFlag("upx", "Compress final binary with UPX (if installed)", &compress)
compressFlags := ""
command.StringFlag("upxflags", "Flags to pass to upx", &compressFlags)
// Setup Platform flag
platform := runtime.GOOS
command.StringFlag("platform", "Platform to target", &platform)
// Verbosity
verbosity := 1
command.IntFlag("v", "Verbosity level (0 - silent, 1 - default, 2 - verbose)", &verbosity)
// ldflags to pass to `go`
ldflags := ""
command.StringFlag("ldflags", "optional ldflags", &ldflags)
// tags to pass to `go`
tags := ""
command.StringFlag("tags", "tags to pass to Go compiler (quoted and space separated)", &tags)
// Retain assets
keepAssets := false
command.BoolFlag("k", "Keep generated assets", &keepAssets)
// Retain assets
outputFilename := ""
command.StringFlag("o", "Output filename", &outputFilename)
// Clean build directory
cleanBuildDirectory := false
command.BoolFlag("clean", "Clean the build directory before building", &cleanBuildDirectory)
webview2 := "download"
command.StringFlag("webview2", "WebView2 installer strategy: download,embed,browser,error.", &webview2)
runDelve := false
command.BoolFlag("delve", "Runs the built binary in delve for debugging", &runDelve)
command.Action(func() error {
quiet := verbosity == 0
// Create logger
logger := clilogger.New(w)
logger.Mute(quiet)
// Validate output type
if !validTargetTypes.Contains(outputType) {
return fmt.Errorf("output type '%s' is not valid", outputType)
}
if !quiet {
app.PrintBanner()
}
// Setup mode
mode := build.Debug
if production {
mode = build.Production
}
// Check platform
validPlatformArch := slicer.String([]string{
"darwin",
"darwin/amd64",
"darwin/arm64",
"darwin/universal",
"linux",
//"linux/amd64",
//"linux/arm-7",
"windows",
"windows/amd64",
})
if !validPlatformArch.Contains(platform) {
return fmt.Errorf("platform %s is not supported", platform)
}
if compress && platform == "darwin/universal" {
println("Warning: compress flag unsupported for universal binaries. Ignoring.")
compress = false
}
// Lookup compiler path
compilerPath, err := exec.LookPath(compilerCommand)
if err != nil {
return fmt.Errorf("unable to find compiler: %s", compilerCommand)
}
// Tags
userTags := []string{}
for _, tag := range strings.Split(tags, " ") {
thisTag := strings.TrimSpace(tag)
if thisTag != "" {
userTags = append(userTags, thisTag)
}
}
// Webview2 installer strategy (download by default)
wv2rtstrategy := ""
webview2 = strings.ToLower(webview2)
if webview2 != "" {
validWV2Runtime := slicer.String([]string{"download", "embed", "browser", "error"})
if !validWV2Runtime.Contains(webview2) {
return fmt.Errorf("invalid option for flag 'webview2': %s", webview2)
}
// These are the build tags associated with the strategies
switch webview2 {
case "embed":
wv2rtstrategy = "wv2runtime.embed"
case "error":
wv2rtstrategy = "wv2runtime.error"
case "browser":
wv2rtstrategy = "wv2runtime.browser"
}
}
// If we want to use delve we need to compile in DEBUG mode
if runDelve {
mode = build.Debug
}
// Create BuildOptions
buildOptions := &build.Options{
Logger: logger,
OutputType: outputType,
OutputFile: outputFilename,
CleanBuildDirectory: cleanBuildDirectory,
Mode: mode,
Pack: pack,
LDFlags: ldflags,
Compiler: compilerCommand,
KeepAssets: keepAssets,
Verbosity: verbosity,
Compress: compress,
CompressFlags: compressFlags,
UserTags: userTags,
WebView2Strategy: wv2rtstrategy,
RunDelve: runDelve,
}
// Calculate platform and arch
platformSplit := strings.Split(platform, "/")
buildOptions.Platform = platformSplit[0]
if system.IsAppleSilicon() {
buildOptions.Arch = "arm64"
} else {
buildOptions.Arch = runtime.GOARCH
}
if len(platformSplit) == 2 {
buildOptions.Arch = platformSplit[1]
}
println("Build arch =", buildOptions.Arch)
// Start a new tabwriter
w := new(tabwriter.Writer)
w.Init(os.Stdout, 8, 8, 0, '\t', 0)
buildModeText := "debug"
if production {
buildModeText = "production"
}
// Write out the system information
fmt.Fprintf(w, "\n")
fmt.Fprintf(w, "App Type: \t%s\n", buildOptions.OutputType)
fmt.Fprintf(w, "Platform: \t%s\n", buildOptions.Platform)
fmt.Fprintf(w, "Arch: \t%s\n", buildOptions.Arch)
fmt.Fprintf(w, "Compiler: \t%s\n", compilerPath)
fmt.Fprintf(w, "Compress: \t%t\n", buildOptions.Compress)
fmt.Fprintf(w, "Build Mode: \t%s\n", buildModeText)
fmt.Fprintf(w, "Package: \t%t\n", buildOptions.Pack)
fmt.Fprintf(w, "Clean Build Dir: \t%t\n", buildOptions.CleanBuildDirectory)
fmt.Fprintf(w, "KeepAssets: \t%t\n", buildOptions.KeepAssets)
fmt.Fprintf(w, "LDFlags: \t\"%s\"\n", buildOptions.LDFlags)
fmt.Fprintf(w, "Tags: \t[%s]\n", strings.Join(buildOptions.UserTags, ","))
if len(buildOptions.OutputFile) > 0 {
fmt.Fprintf(w, "Output File: \t%s\n", buildOptions.OutputFile)
}
fmt.Fprintf(w, "\n")
w.Flush()
return doBuild(buildOptions)
})
}
// doBuild is our main build command
func doBuild(buildOptions *build.Options) error {
// Start Time
start := time.Now()
outputFilename, err := build.Build(buildOptions)
if err != nil {
return err
}
// Output stats
elapsed := time.Since(start)
buildOptions.Logger.Println("")
buildOptions.Logger.Println(fmt.Sprintf("Built '%s' in %s.", outputFilename, elapsed.Round(time.Millisecond).String()))
buildOptions.Logger.Println("")
if buildOptions.RunDelve {
// Check delve exists
delveExists := shell.CommandExists("dlv")
if !delveExists {
return fmt.Errorf("cannot launch delve (Is it installed?)")
}
// Get cwd
cwd, err := os.Getwd()
if err != nil {
return err
}
// Launch delve
buildOptions.Logger.Println("Launching Delve on port 2345...")
cmdArgs := slicer.String([]string{"--listen=:2345", "--headless=true", "--api-version=2", "--accept-multiclient", "exec", outputFilename})
if buildOptions.Verbosity == build.VERBOSE {
buildOptions.Logger.Println("\tRunning: dlv %s", cmdArgs.Join(" "))
}
stdout, stderr, err := shell.RunCommand(cwd, "dlv", cmdArgs.AsSlice()...)
if buildOptions.Verbosity == build.VERBOSE || err != nil {
trimstdout := strings.TrimSpace(stdout)
if trimstdout != "" {
buildOptions.Logger.Println(trimstdout)
}
trimstderr := strings.TrimSpace(stderr)
if trimstderr != "" {
buildOptions.Logger.Println(trimstderr)
}
}
if err != nil {
return err
}
}
return nil
}
@@ -0,0 +1,22 @@
# Dev
The dev command allows you to develop your application through a standard browser.
## Usage
`wails dev <flags>`
### Flags
| Flag | Details | Default |
| :------------- | :----------- | :------ |
| -compiler path/to/compiler | Use a different go compiler, eg go1.15beta1 | go |
| -ldflags "custom ld flags" | Use given ldflags | |
| -e list,of,extensions | File extensions to trigger rebuilds | go |
| -w | Show warnings | false |
| -v int | Verbosity level (0 - silent, 1 - default, 2 - verbose) | 1 |
| -loglevel | Loglevel to pass to the application - Trace, Debug, Info, Warning, Error | Debug |
## How it works
The project is built using a special mode that starts a webserver and starts listening to port 34115. When the frontend project is run independently, so long as the JS is wrapped with the runtime method `ready`, then the frontend will connect to the backend code via websockets. The interface should be present in your browser, and you should be able to interact with the backend as you would in a desktop app.
+316
View File
@@ -0,0 +1,316 @@
package dev
import (
"fmt"
"io"
"log"
"os"
"os/signal"
"path/filepath"
"runtime"
"strings"
"syscall"
"time"
"github.com/wailsapp/wails/v2/internal/colour"
"github.com/fsnotify/fsnotify"
"github.com/leaanthony/clir"
"github.com/wailsapp/wails/v2/internal/fs"
"github.com/wailsapp/wails/v2/internal/process"
"github.com/wailsapp/wails/v2/pkg/clilogger"
"github.com/wailsapp/wails/v2/pkg/commands/build"
)
func LogGreen(message string, args ...interface{}) {
text := fmt.Sprintf(message, args...)
println(colour.Green(text))
}
func LogRed(message string, args ...interface{}) {
text := fmt.Sprintf(message, args...)
println(colour.Red(text))
}
func LogDarkYellow(message string, args ...interface{}) {
text := fmt.Sprintf(message, args...)
println(colour.DarkYellow(text))
}
// AddSubcommand adds the `dev` command for the Wails application
func AddSubcommand(app *clir.Cli, w io.Writer) error {
command := app.NewSubCommand("dev", "Development mode")
// Passthrough ldflags
ldflags := ""
command.StringFlag("ldflags", "optional ldflags", &ldflags)
// compiler command
compilerCommand := "go"
command.StringFlag("compiler", "Use a different go compiler to build, eg go1.15beta1", &compilerCommand)
// extensions to trigger rebuilds
extensions := "go"
command.StringFlag("e", "Extensions to trigger rebuilds (comma separated) eg go,js,css,html", &extensions)
// extensions to trigger rebuilds
showWarnings := false
command.BoolFlag("w", "Show warnings", &showWarnings)
// Verbosity
verbosity := 1
command.IntFlag("v", "Verbosity level (0 - silent, 1 - default, 2 - verbose)", &verbosity)
loglevel := ""
command.StringFlag("loglevel", "Loglevel to use - Trace, Debug, Info, Warning, Error", &loglevel)
command.Action(func() error {
// Create logger
logger := clilogger.New(w)
app.PrintBanner()
// TODO: Check you are in a project directory
watcher, err := fsnotify.NewWatcher()
if err != nil {
return err
}
defer func(watcher *fsnotify.Watcher) {
err := watcher.Close()
if err != nil {
log.Fatal(err)
}
}(watcher)
var debugBinaryProcess *process.Process = nil
var extensionsThatTriggerARebuild = strings.Split(extensions, ",")
// Setup signal handler
quitChannel := make(chan os.Signal, 1)
signal.Notify(quitChannel, os.Interrupt, os.Kill, syscall.SIGTERM)
debounceQuit := make(chan bool, 1)
var passthruArgs []string
//if len(os.Args) > 2 {
// passthruArgs = os.Args[2:]
//}
// Do initial build
logger.Println("Building application for development...")
newProcess, appBinary, err := restartApp(logger, ldflags, compilerCommand, debugBinaryProcess, loglevel, passthruArgs, verbosity)
if newProcess != nil {
debugBinaryProcess = newProcess
}
if err != nil {
return err
}
var newBinaryProcess *process.Process
go debounce(100*time.Millisecond, watcher.Events, debounceQuit, func(event fsnotify.Event) {
// logger.Println("event: %+v", event)
// Check for new directories
if event.Op&fsnotify.Create == fsnotify.Create {
// If this is a folder, add it to our watch list
if fs.DirExists(event.Name) {
if !strings.Contains(event.Name, "node_modules") {
err := watcher.Add(event.Name)
if err != nil {
logger.Fatal("%s", err.Error())
}
LogGreen("[New Directory] Watching new directory: %s", event.Name)
}
}
return
}
// Check for file writes
if event.Op&fsnotify.Write == fsnotify.Write {
var rebuild bool = false
// Iterate all file patterns
for _, pattern := range extensionsThatTriggerARebuild {
if strings.HasSuffix(event.Name, pattern) {
rebuild = true
break
}
}
if !rebuild {
if showWarnings {
LogDarkYellow("[File change] %s did not match extension list (%s)", event.Name, extensions)
}
return
}
LogGreen("[Attempting rebuild] %s updated", event.Name)
// Do a rebuild
// Try and build the app
newBinaryProcess, _, err = restartApp(logger, ldflags, compilerCommand, debugBinaryProcess, loglevel, passthruArgs, verbosity)
if err != nil {
fmt.Printf("Error during build: %s", err.Error())
return
}
// If we have a new process, save it
if newBinaryProcess != nil {
debugBinaryProcess = newBinaryProcess
}
}
})
// Get project dir
projectDir, err := os.Getwd()
if err != nil {
return err
}
// Get all subdirectories
dirs, err := fs.GetSubdirectories(projectDir)
if err != nil {
return err
}
LogGreen("Watching (sub)/directory: %s", projectDir)
// Setup a watcher for non-node_modules directories
dirs.Each(func(dir string) {
if strings.Contains(dir, "node_modules") {
return
}
// Ignore build directory
if strings.HasPrefix(dir, filepath.Join(projectDir, "build")) {
return
}
err = watcher.Add(dir)
if err != nil {
logger.Fatal(err.Error())
}
})
// Wait until we get a quit signal
quit := false
for quit == false {
select {
case <-quitChannel:
LogGreen("\nCaught quit")
// Notify debouncer to quit
debounceQuit <- true
quit = true
}
}
// Kill the current program if running
if debugBinaryProcess != nil {
err := debugBinaryProcess.Kill()
if err != nil {
return err
}
}
// Remove dev binary
err = os.Remove(appBinary)
if err != nil {
return err
}
LogGreen("Development mode exited")
return nil
})
return nil
}
// Credit: https://drailing.net/2018/01/debounce-function-for-golang/
func debounce(interval time.Duration, input chan fsnotify.Event, quitChannel chan bool, cb func(arg fsnotify.Event)) {
var item fsnotify.Event
timer := time.NewTimer(interval)
exit:
for {
select {
case item = <-input:
timer.Reset(interval)
case <-timer.C:
if item.Name != "" {
cb(item)
}
case <-quitChannel:
break exit
}
}
}
func restartApp(logger *clilogger.CLILogger, ldflags string, compilerCommand string, debugBinaryProcess *process.Process, loglevel string, passthruArgs []string, verbosity int) (*process.Process, string, error) {
appBinary, err := buildApp(logger, ldflags, compilerCommand, verbosity)
println()
if err != nil {
LogRed("Build error - continuing to run current version")
LogDarkYellow(err.Error())
return nil, "", nil
}
// Kill existing binary if need be
if debugBinaryProcess != nil {
killError := debugBinaryProcess.Kill()
if killError != nil {
logger.Fatal("Unable to kill debug binary (PID: %d)!", debugBinaryProcess.PID())
}
debugBinaryProcess = nil
}
// TODO: Generate `backend.js`
// Start up new binary with correct args
var args = []string{"-loglevel", loglevel}
if len(passthruArgs) > 0 {
args = append(args, passthruArgs...)
}
newProcess := process.NewProcess(logger, appBinary, args...)
err = newProcess.Start()
if err != nil {
// Remove binary
deleteError := fs.DeleteFile(appBinary)
if deleteError != nil {
logger.Fatal("Unable to delete app binary: " + appBinary)
}
logger.Fatal("Unable to start application: %s", err.Error())
}
return newProcess, appBinary, nil
}
func buildApp(logger *clilogger.CLILogger, ldflags string, compilerCommand string, verbosity int) (string, error) {
// Create random output file
outputFile := "wailsdev"
if runtime.GOOS == "windows" {
outputFile += ".exe"
}
// Create BuildOptions
buildOptions := &build.Options{
Logger: logger,
OutputType: "dev",
Mode: build.Debug,
Pack: false,
Platform: runtime.GOOS,
LDFlags: ldflags,
Compiler: compilerCommand,
OutputFile: outputFile,
IgnoreFrontend: true,
Verbosity: verbosity,
}
return build.Build(buildOptions)
}
@@ -0,0 +1,156 @@
package doctor
import (
"fmt"
"io"
"os"
"runtime"
"strings"
"text/tabwriter"
"github.com/leaanthony/clir"
"github.com/wailsapp/wails/v2/internal/system"
"github.com/wailsapp/wails/v2/internal/system/packagemanager"
"github.com/wailsapp/wails/v2/pkg/clilogger"
)
// AddSubcommand adds the `doctor` command for the Wails application
func AddSubcommand(app *clir.Cli, w io.Writer) error {
command := app.NewSubCommand("doctor", "Diagnose your environment")
command.Action(func() error {
logger := clilogger.New(w)
app.PrintBanner()
logger.Print("Scanning system - Please wait (this may take a long time)...")
// Get system info
info, err := system.GetInfo()
if err != nil {
logger.Println("Failed.")
return err
}
logger.Println("Done.")
// Start a new tabwriter
w := new(tabwriter.Writer)
w.Init(os.Stdout, 8, 8, 0, '\t', 0)
// Write out the system information
fmt.Fprintf(w, "System\n")
fmt.Fprintf(w, "------\n")
fmt.Fprintf(w, "%s\t%s\n", "OS:", info.OS.Name)
fmt.Fprintf(w, "%s\t%s\n", "Version: ", info.OS.Version)
fmt.Fprintf(w, "%s\t%s\n", "ID:", info.OS.ID)
// Output Go Information
fmt.Fprintf(w, "%s\t%s\n", "Go Version:", runtime.Version())
fmt.Fprintf(w, "%s\t%s\n", "Platform:", runtime.GOOS)
fmt.Fprintf(w, "%s\t%s\n", "Architecture:", runtime.GOARCH)
// Exit early if PM not found
if info.PM != nil {
fmt.Fprintf(w, "%s\t%s\n", "Package Manager: ", info.PM.Name())
}
// Output Dependencies Status
var dependenciesMissing = []string{}
var externalPackages = []*packagemanager.Dependancy{}
var dependenciesAvailableRequired = 0
var dependenciesAvailableOptional = 0
fmt.Fprintf(w, "\n")
fmt.Fprintf(w, "Dependency\tPackage Name\tStatus\tVersion\n")
fmt.Fprintf(w, "----------\t------------\t------\t-------\n")
hasOptionalDependencies := false
// Loop over dependencies
for _, dependency := range info.Dependencies {
name := dependency.Name
if dependency.Optional {
name = "*" + name
hasOptionalDependencies = true
}
packageName := "Unknown"
status := "Not Found"
// If we found the package
if dependency.PackageName != "" {
packageName = dependency.PackageName
// If it's installed, update the status
if dependency.Installed {
status = "Installed"
} else {
// Generate meaningful status text
status = "Available"
if dependency.Optional {
dependenciesAvailableOptional++
} else {
dependenciesAvailableRequired++
}
}
} else {
if !dependency.Optional {
dependenciesMissing = append(dependenciesMissing, dependency.Name)
}
if dependency.External {
externalPackages = append(externalPackages, dependency)
}
}
fmt.Fprintf(w, "%s\t%s\t%s\t%s\n", name, packageName, status, dependency.Version)
}
if hasOptionalDependencies {
fmt.Fprintf(w, "\n")
fmt.Fprintf(w, "* - Optional Dependency\n")
}
w.Flush()
logger.Println("")
logger.Println("Diagnosis")
logger.Println("---------")
// Generate an appropriate diagnosis
if len(dependenciesMissing) == 0 && dependenciesAvailableRequired == 0 {
logger.Println("Your system is ready for Wails development!")
} else {
logger.Println("Your system has missing dependencies!\n")
}
if dependenciesAvailableRequired != 0 {
logger.Println("Required package(s) installation details: \n" + info.Dependencies.InstallAllRequiredCommand())
}
if dependenciesAvailableOptional != 0 {
logger.Println("Optional package(s) installation details: \n" + info.Dependencies.InstallAllOptionalCommand())
}
//
//if len(externalPackages) > 0 {
// for _, p := range externalPackages {
// if p.Optional {
// print("[Optional] ")
// }
// logger.Println("Install " + p.Name + ": " + p.InstallCommand)
// }
//}
if len(dependenciesMissing) != 0 {
// TODO: Check if apps are available locally and if so, adjust the diagnosis
logger.Println("Fatal:")
logger.Println("Required dependencies missing: " + strings.Join(dependenciesMissing, " "))
logger.Println("Please read this article on how to resolve this: https://wails.app/guides/resolving-missing-packages")
}
logger.Println("")
return nil
})
return nil
}

Some files were not shown because too many files have changed in this diff Show More