Compare commits

..

313 Commits

Author SHA1 Message Date
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
529 changed files with 46605 additions and 13836 deletions
-12
View File
@@ -1,12 +0,0 @@
# These are supported funding model platforms
github: [leaanthony]
patreon: # Replace with a single Patreon username
open_collective: # Replace with a single Open Collective username
ko_fi: # Replace with a single Ko-fi username
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
liberapay: # Replace with a single Liberapay username
issuehunt: # Replace with a single IssueHunt username
otechie: # Replace with a single Otechie username
custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
+2 -2
View File
@@ -13,10 +13,10 @@ jobs:
os: [ubuntu-latest, windows-latest, macOS-latest]
steps:
- name: Set up Go 1.16
- name: Set up Go 1.13
uses: actions/setup-go@v1
with:
go-version: 1.16
go-version: 1.13
id: go
- name: Check out code into the Go module directory
+2 -2
View File
@@ -13,10 +13,10 @@ jobs:
os: [ubuntu-latest, windows-latest, macOS-latest]
steps:
- name: Set up Go 1.16
- name: Set up Go 1.13
uses: actions/setup-go@v1
with:
go-version: 1.16
go-version: 1.13
id: go
- name: Check out code into the Go module directory
+2 -2
View File
@@ -15,10 +15,10 @@ jobs:
os: [ubuntu-latest, windows-latest, macOS-latest]
steps:
- name: Set up Go 1.16
- name: Set up Go 1.13
uses: actions/setup-go@v1
with:
go-version: 1.16
go-version: 1.13
id: go
- name: Check out code into the Go module directory
+7 -2
View File
@@ -17,8 +17,13 @@ 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
+5 -1
View File
@@ -1,4 +1,8 @@
{
"go.formatTool": "goimports",
"eslint.alwaysShowStatus": true
"eslint.alwaysShowStatus": true,
"files.associations": {
"__locale": "c",
"ios": "c"
}
}
+1 -6
View File
@@ -40,9 +40,4 @@ 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)
* [SophieAu](https://github.com/SophieAu)
* [Alexander Matviychuk](https://github.com/alexmat)
* [RH12503](https://github.com/RH12503)
* [hi019](https://github.com/hi019)
* [Igor Minen](https://github.com/Igogrek)
* [Elie Grenon](https://github.com/DrunkenPoney)
+33 -172
View File
@@ -2,7 +2,7 @@
<img src="logo_cropped.png" width="40%"><br/>
</p>
<p align="center">
Build desktop applications using Go & Web Technologies.<br/><br/>
A framework for building desktop applications using Go & Web Technologies.<br/><br/>
<a href="https://github.com/wailsapp/wails/blob/master/LICENSE"><img src="https://img.shields.io/badge/License-MIT-blue.svg"></a>
<a href="https://goreportcard.com/report/github.com/wailsapp/wails"><img src="https://goreportcard.com/badge/github.com/wailsapp/wails"/></a>
<a href="http://godoc.org/github.com/wailsapp/wails"><img src="https://img.shields.io/badge/godoc-reference-blue.svg"/></a>
@@ -14,47 +14,13 @@
<a href="https://github.com/wailsapp/wails/workflows/release/badge.svg?branch=master" rel="nofollow"><img src="https://github.com/wailsapp/wails/workflows/release/badge.svg?branch=master" alt="Release Pipelines"></a>
</p>
<span id="nav-1"></span>
## Internationalization
English | [简体中文](README.zh_CN.md)
The traditional method of providing web interfaces to Go programs is via a built-in web server. Wails offers a different approach: it provides the ability to wrap both Go code and a web frontend into a single binary. Tools are provided to make this easy for you by handling project creation, compilation and bundling. All you have to do is get creative!
The official docs can be found at [https://wails.app](https://wails.app).
<span id="nav-2"></span>
## Contents
- [1. Internationalization](#nav-1)
- [2. Contents](#nav-2)
- [3. Features](#nav-3)
- [4. Sponsors](#nav-4)
- [5. Installation](#nav-5)
- [5.1 MacOS](#nav-5-1)
- [5.2 Linux](#nav-5-2)
- [5.2.1 Debian/Ubuntu](#nav-5-2-1)
- [5.2.2 Arch Linux / ArchLabs / Ctlos Linux](#nav-5-2-2)
- [5.2.3 Centos](#nav-5-2-3)
- [5.2.4 Fedora](#nav-5-2-4)
- [5.2.5 VoidLinux & VoidLinux-musl](#nav-5-2-5)
- [5.2.6 Gentoo](#nav-5-2-6)
- [5.3 Windows](#nav-5-3)
- [6. Installation](#nav-6)
- [7. Next Steps](#nav-7)
- [8. FAQ](#nav-8)
- [9. Contributors](#nav-9)
- [10. Special Mentions](#nav-10)
- [11. Licensing](#nav-11)
- [12. Special Thanks](#nav-12)
<span id="nav-3"></span>
## Features
- Use standard Go for the backend
- Use standard Go libraries/frameworks for the backend
- Use any frontend technology to build your UI
- Quickly create Vue, Vuetify or React frontends for your Go programs
- Expose Go methods/functions to the frontend via a single bind command
@@ -64,57 +30,22 @@ The official docs can be found at [https://wails.app](https://wails.app).
- Powerful cli tool
- Multiplatform
<span id="nav-4"></span>
## Sponsors
This project is supported by these kind people / companies:
<a href="https://github.com/matryer" style="width:100px"><img src="https://github.com/matryer.png" width="100"/></a>
<a href="https://www.jetbrains.com?from=Wails" style="width:100px"><img src="jetbrains-grayscale.png" width="100"/></a>
<a href="https://github.com/tc-hib" style="width:55px;border-radius: 50%">
<img src="https://github.com/tc-hib.png?size=55" width="55" style="border-radius: 50%"/>
</a>
<a href="https://github.com/picatz" style="width:50px;border-radius: 50%">
<img src="https://github.com/picatz.png?size=50" width="50" style="border-radius: 50%"/>
</a>
<a href="https://github.com/tylertravisty" style="width:50px;border-radius: 50%">
<img src="https://github.com/tylertravisty.png?size=50" width="50" style="border-radius: 50%"/>
</a>
<a href="https://github.com/akhudek" style="width:50px;border-radius: 50%">
<img src="https://github.com/akhudek.png?size=50" width="50" style="border-radius: 50%"/>
</a>
<a href="https://github.com/akhudek" style="width:50px;border-radius: 50%">
<img src="https://github.com/akhudek.png?size=50" width="50" style="border-radius: 50%"/>
</a>
<a href="https://github.com/trea" style="width:50px;border-radius: 50%">
<img src="https://github.com/trea.png?size=50" width="50" style="border-radius: 50%"/>
</a>
<a href="https://github.com/LanguageAgnostic" style="width:55px;border-radius: 50%">
<img src="https://github.com/LanguageAgnostic.png?size=55" width="55" style="border-radius: 50%"/>
</a>
## Installation
Wails uses cgo to bind to the native rendering engines so a number of platform dependent libraries are needed as well as an installation of Go. The basic requirements are:
- Go 1.16
- Go 1.13
- npm
<span id="nav-5-1"></span>
### MacOS
Make sure you have the xcode command line tools installed. This can be done by running:
`xcode-select --install`
<span id="nav-5-2"></span>
### Linux
<span id="nav-5-2-1"></span>
#### Debian/Ubuntu
`sudo apt install libgtk-3-dev libwebkit2gtk-4.0-dev`
@@ -123,9 +54,7 @@ _Debian: 8, 9, 10_
_Ubuntu: 16.04, 18.04, 19.04_
_Also succesfully tested on: Zorin 15, Parrot 4.7, Linuxmint 19, Elementary 5, Kali, Neon_, Pop!\_OS
<span id="nav-5-2-2"></span>
_Also succesfully tested on: Zorin 15, Parrot 4.7, Linuxmint 19, Elementary 5, Kali, Neon_, Pop!_OS
#### Arch Linux / ArchLabs / Ctlos Linux
@@ -133,42 +62,30 @@ _Also succesfully tested on: Zorin 15, Parrot 4.7, Linuxmint 19, Elementary 5, K
_Also succesfully test on: Manjaro & ArcoLinux_
<span id="nav-5-2-3"></span>
#### Centos
`sudo yum install webkitgtk3-devel gtk3-devel`
_CentOS 6, 7_
<span id="nav-5-2-4"></span>
#### Fedora
`sudo yum install webkit2gtk3-devel gtk3-devel`
_Fedora 29, 30_
<span id="nav-5-2-5"></span>
#### VoidLinux & VoidLinux-musl
`xbps-install gtk+3-devel webkit2gtk-devel`
<span id="nav-5-2-6"></span>
#### Gentoo
`sudo emerge gtk+:3 webkit-gtk`
<span id="nav-5-3"></span>
### Windows
Windows requires gcc and related tooling. The recommended download is from [http://tdm-gcc.tdragon.net/download](http://tdm-gcc.tdragon.net/download). Once this is installed, you are good to go.
<span id="nav-6"></span>
## Installation
**Ensure Go modules are enabled: GO111MODULE=on and go/bin is in your PATH variable.**
@@ -179,117 +96,61 @@ Installation is as simple as running the following command:
go get -u github.com/wailsapp/wails/cmd/wails
</pre>
<span id="nav-7"></span>
## Next Steps
It is recommended at this stage to read the comprehensive documentation at [https://wails.app](https://wails.app).
<span id="nav-8"></span>
## FAQ
- Is this an alternative to Electron?
* Is this an alternative to Electron?
Depends on your requirements. It's designed to make it easy for Go programmers to make lightweight desktop applications or add a frontend to their existing applications. Whilst Wails does not currently offer hooks into native elements such as menus, this may change in the future.
Depends on your requirements. It's designed to make it easy for Go programmers to make lightweight desktop applications or add a frontend to their existing applications. Whilst Wails does not currently offer hooks into native elements such as menus, this may change in the future.
- Who is this project aimed at?
* Who is this project aimed at?
Go programmers who want to bundle an HTML/JS/CSS frontend with their applications, without resorting to creating a server and opening a browser to view it.
Go programmers who want to bundle an HTML/JS/CSS frontend with their applications, without resorting to creating a server and opening a browser to view it.
- What's with the name?
* What's with the name?
When I saw WebView, I thought "What I really want is tooling around building a WebView app, a bit like Rails is to Ruby". So initially it was a play on words (Webview on Rails). It just so happened to also be a homophone of the English name for the [Country](https://en.wikipedia.org/wiki/Wales) I am from. So it stuck.
When I saw WebView, I thought "What I really want is tooling around building a WebView app, a bit like Rails is to Ruby". So initially it was a play on words (Webview on Rails). It just so happened to also be a homophone of the English name for the [Country](https://en.wikipedia.org/wiki/Wales) I am from. So it stuck.
<span id="nav-9"></span>
## Contributors
<a href="https://github.com/qaisjp"><img src="https://github.com/qaisjp.png?size=40" width="40"/></a>
<a href="https://github.com/alee792"><img src="https://github.com/alee792.png?size=40" width="40"/></a>
<a href="https://github.com/lanzafame"><img src="https://github.com/lanzafame.png?size=40" width="40"/></a>
<a href="https://github.com/mattn"><img src="https://github.com/mattn.png?size=40" width="40"/></a>
<a href="https://github.com/0xflotus"><img src="https://github.com/0xflotus.png?size=40" width="40"/></a>
<a href="https://github.com/mdhender"><img src="https://github.com/mdhender.png?size=40" width="40"/></a>
<a href="https://github.com/fishfishfish2104"><img src="https://github.com/fishfishfish2104.png?size=40" width="40"/></a>
<a href="https://github.com/intelwalk"><img src="https://github.com/intelwalk.png?size=40" width="40"/></a>
<a href="https://github.com/ocelotsloth"><img src="https://github.com/ocelotsloth.png?size=40" width="40"/></a>
<a href="https://github.com/bh90210"><img src="https://github.com/bh90210.png?size=40" width="40"/></a>
<a href="https://github.com/iceleo-com"><img src="https://github.com/iceleo-com.png?size=40" width="40"/></a>
<a href="https://github.com/fallendusk"><img src="https://github.com/fallendusk.png?size=40" width="40"/></a>
<a href="https://github.com/Chronophylos"><img src="https://github.com/Chronophylos.png?size=40" width="40"/></a>
<a href="https://github.com/Vaelatern"><img src="https://github.com/Vaelatern.png?size=40" width="40"/></a>
<a href="https://github.com/mewmew"><img src="https://github.com/mewmew.png?size=40" width="40"/></a>
<a href="https://github.com/kraney"><img src="https://github.com/kraney.png?size=40" width="40"/></a>
<a href="https://github.com/JackMordaunt"><img src="https://github.com/JackMordaunt.png?size=40" width="40"/></a>
<a href="https://github.com/MichaelHipp"><img src="https://github.com/MichaelHipp.png?size=40" width="40"/></a>
<a href="https://github.com/tmclane"><img src="https://github.com/tmclane.png?size=40" width="40"/></a>
<a href="https://github.com/Rested"><img src="https://github.com/Rested.png?size=40" width="40"/></a>
<a href="https://github.com/Jarek-SRT"><img src="https://github.com/Jarek-SRT.png?size=40" width="40"/></a>
<a href="https://github.com/konez2k"><img src="https://github.com/konez2k.png?size=40" width="40"/></a>
<a href="https://github.com/sayuthisobri"><img src="https://github.com/sayuthisobri.png?size=40" width="40"/></a>
<a href="https://github.com/dedo1911"><img src="https://github.com/dedo1911.png?size=40" width="40"/></a>
<a href="https://github.com/fdidron"><img src="https://github.com/fdidron.png?size=40" width="40"/></a>
<a href="https://github.com/Splode"><img src="https://github.com/Splode.png?size=40" width="40"/></a>
<a href="https://github.com/Lyimmi"><img src="https://github.com/Lyimmi.png?size=40" width="40"/></a>
<a href="https://github.com/Unix4ever"><img src="https://github.com/Unix4ever.png?size=40" width="40"/></a>
<a href="https://github.com/timkippdev"><img src="https://github.com/timkippdev.png?size=40" width="40"/></a>
<a href="https://github.com/kyoto44"><img src="https://github.com/kyoto44.png?size=40" width="40"/></a>
<a href="https://github.com/artooro"><img src="https://github.com/artooro.png?size=40" width="40"/></a>
<a href="https://github.com/ilgityildirim"><img src="https://github.com/ilgityildirim.png?size=40" width="40"/></a>
<a href="https://github.com/gelleson"><img src="https://github.com/gelleson.png?size=40" width="40"/></a>
<a href="https://github.com/kmuchmore"><img src="https://github.com/kmuchmore.png?size=40" width="40"/></a>
<a href="https://github.com/aayush420"><img src="https://github.com/aayush420.png?size=40" width="40"/></a>
<a href="https://github.com/Rezrazi"><img src="https://github.com/Rezrazi.png?size=40" width="40"/></a>
<a href="https://github.com/misitebao"><img src="https://github.com/misitebao.png?size=40" width="40"/></a>
<a href="https://github.com/DrunkenPoney"><img src="https://github.com/DrunkenPoney.png?size=40" width="40"/></a>
<a href="https://github.com/SophieAu"><img src="https://github.com/SophieAu.png?size=40" width="40"/></a>
<a href="https://github.com/alexmat"><img src="https://github.com/alexmat.png?size=40" width="40"/></a>
<a href="https://github.com/RH12503"><img src="https://github.com/RH12503.png?size=40" width="40"/></a>
<a href="https://github.com/hi019"><img src="https://github.com/hi019.png?size=40" width="40"/></a></a>
<a href="https://github.com/Igogrek"><img src="https://github.com/Igogrek.png?size=40" width="40"/></a></a>
<a href="https://github.com/aschey"><img src="https://github.com/aschey.png?size=40" width="40"/></a></a>
<a href="https://github.com/akhudek"><img src="https://github.com/akhudek.png?size=40" width="40"/></a></a>
<span id="nav-10"></span>
## Special Mentions
## Shoulders of Giants
Without the following people, this project would never have existed:
- [Dustin Krysak](https://wiki.ubuntu.com/bashfulrobot) - His support and feedback has been immense. More patience than you can throw a stick at (Not long now Dustin!).
- [Serge Zaitsev](https://github.com/zserge) - Creator of [Webview](https://github.com/zserge/webview) which Wails uses for the windowing.
- [Byron](https://github.com/bh90210) - At times, Byron has single handedly kept this project alive. Without his incredible input, we never would have got to v1.
* [Dustin Krysak](https://wiki.ubuntu.com/bashfulrobot) - His support and feedback has been immense. More patience than you can throw a stick at (Not long now Dustin!).
* [Serge Zaitsev](https://github.com/zserge) - Creator of [Webview](https://github.com/zserge/webview) which Wails uses for the windowing.
And without [these people](CONTRIBUTORS.md), it wouldn't be what it is today. A huge thank you to each and every one of you!
Special Mentions:
* [Byron](https://github.com/bh90210) - At times, Byron has single handedly kept this project alive. Without his incredible input, we never would have got to v1.
This project was mainly coded to the following albums:
- [Manic Street Preachers - Resistance Is Futile](https://open.spotify.com/album/1R2rsEUqXjIvAbzM0yHrxA)
- [Manic Street Preachers - This Is My Truth, Tell Me Yours](https://open.spotify.com/album/4VzCL9kjhgGQeKCiojK1YN)
- [The Midnight - Endless Summer](https://open.spotify.com/album/4Krg8zvprquh7TVn9OxZn8)
- [Gary Newman - Savage (Songs from a Broken World)](https://open.spotify.com/album/3kMfsD07Q32HRWKRrpcexr)
- [Steve Vai - Passion & Warfare](https://open.spotify.com/album/0oL0OhrE2rYVns4IGj8h2m)
- [Ben Howard - Every Kingdom](https://open.spotify.com/album/1nJsbWm3Yy2DW1KIc1OKle)
- [Ben Howard - Noonday Dream](https://open.spotify.com/album/6astw05cTiXEc2OvyByaPs)
- [Adwaith - Melyn](https://open.spotify.com/album/2vBE40Rp60tl7rNqIZjaXM)
- [Gwidaith Hen Fran - Cedors Hen Wrach](https://open.spotify.com/album/3v2hrfNGINPLuDP0YDTOjm)
- [Metallica - Metallica](https://open.spotify.com/album/2Kh43m04B1UkVcpcRa1Zug)
- [Bloc Party - Silent Alarm](https://open.spotify.com/album/6SsIdN05HQg2GwYLfXuzLB)
- [Maxthor - Another World](https://open.spotify.com/album/3tklE2Fgw1hCIUstIwPBJF)
- [Alun Tan Lan - Y Distawrwydd](https://open.spotify.com/album/0c32OywcLpdJCWWMC6vB8v)
<span id="nav-11"></span>
* [Manic Street Preachers - Resistance Is Futile](https://open.spotify.com/album/1R2rsEUqXjIvAbzM0yHrxA)
* [Manic Street Preachers - This Is My Truth, Tell Me Yours](https://open.spotify.com/album/4VzCL9kjhgGQeKCiojK1YN)
* [The Midnight - Endless Summer](https://open.spotify.com/album/4Krg8zvprquh7TVn9OxZn8)
* [Gary Newman - Savage (Songs from a Broken World)](https://open.spotify.com/album/3kMfsD07Q32HRWKRrpcexr)
* [Steve Vai - Passion & Warfare](https://open.spotify.com/album/0oL0OhrE2rYVns4IGj8h2m)
* [Ben Howard - Every Kingdom](https://open.spotify.com/album/1nJsbWm3Yy2DW1KIc1OKle)
* [Ben Howard - Noonday Dream](https://open.spotify.com/album/6astw05cTiXEc2OvyByaPs)
* [Adwaith - Melyn](https://open.spotify.com/album/2vBE40Rp60tl7rNqIZjaXM)
* [Gwidaith Hen Fran - Cedors Hen Wrach](https://open.spotify.com/album/3v2hrfNGINPLuDP0YDTOjm)
* [Metallica - Metallica](https://open.spotify.com/album/2Kh43m04B1UkVcpcRa1Zug)
* [Bloc Party - Silent Alarm](https://open.spotify.com/album/6SsIdN05HQg2GwYLfXuzLB)
* [Maxthor - Another World](https://open.spotify.com/album/3tklE2Fgw1hCIUstIwPBJF)
* [Alun Tan Lan - Y Distawrwydd](https://open.spotify.com/album/0c32OywcLpdJCWWMC6vB8v)
## Licensing
[![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)
<span id="nav-12"></span>
## Special Thanks
<p align="center" style="text-align: center">
<a href="https://pace.dev"><img src="pace.jpeg"/></a><br/>
A *huge* thanks to <a href="https://pace.dev">Pace</a> for sponsoring the project and helping the efforts to get Wails ported to Apple Silicon!<br/><br/>
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>
-297
View File
@@ -1,297 +0,0 @@
<p align="center" style="text-align: center">
<img src="logo_cropped.png" width="40%"><br/>
</p>
<p align="center">
使用 Go 和 Web 技术构建桌面应用程序。<br/><br/>
<a href="https://github.com/wailsapp/wails/blob/master/LICENSE"><img src="https://img.shields.io/badge/License-MIT-blue.svg"></a>
<a href="https://goreportcard.com/report/github.com/wailsapp/wails"><img src="https://goreportcard.com/badge/github.com/wailsapp/wails"/></a>
<a href="http://godoc.org/github.com/wailsapp/wails"><img src="https://img.shields.io/badge/godoc-reference-blue.svg"/></a>
<a href="https://www.codefactor.io/repository/github/wailsapp/wails"><img src="https://www.codefactor.io/repository/github/wailsapp/wails/badge" alt="CodeFactor" /></a>
<a href="https://github.com/wailsapp/wails/issues"><img src="https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat" alt="CodeFactor" /></a>
<a href="https://app.fossa.io/projects/git%2Bgithub.com%2Fwailsapp%2Fwails?ref=badge_shield" alt="FOSSA Status"><img src="https://app.fossa.io/api/projects/git%2Bgithub.com%2Fwailsapp%2Fwails.svg?type=shield"/></a>
<a href="https://houndci.com"><img src="https://img.shields.io/badge/Reviewed_by-Hound-8E64B0.svg"/></a>
<a href="https://github.com/avelino/awesome-go" rel="nofollow"><img src="https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg" alt="Awesome"></a>
<a href="https://github.com/wailsapp/wails/workflows/release/badge.svg?branch=master" rel="nofollow"><img src="https://github.com/wailsapp/wails/workflows/release/badge.svg?branch=master" alt="Release Pipelines"></a>
</p>
<span id="nav-1"></span>
## 国际化
[English](README.md) | 简体中文
向 Go 程序提供 Web 接口的传统方法是通过内置 Web 服务器。Wails 提供了一种不同的方法:它提供了将 Go 代码和 Web 前端都包装成单个二进制文件的能力。通过处理项目创建、编译和打包,可为您提供工具,使您轻松做到这一点。你所要做的就是发挥创造力!
官方文档可以在 [https://wails.app](https://wails.app)中找到。
国内镜像站点 [https://wails.top](https://wails.top)
<span id="nav-2"></span>
## 内容目录
- [1. 国际化](#nav-1)
- [2. 内容目录](#nav-2)
- [3. 特征](#nav-3)
- [4. 赞助商](#nav-4)
- [5. 安装](#nav-5)
- [5.1 MacOS](#nav-5-1)
- [5.2 Linux](#nav-5-2)
- [5.2.1 Debian/Ubuntu](#nav-5-2-1)
- [5.2.2 Arch Linux / ArchLabs / Ctlos Linux](#nav-5-2-2)
- [5.2.3 Centos](#nav-5-2-3)
- [5.2.4 Fedora](#nav-5-2-4)
- [5.2.5 VoidLinux & VoidLinux-musl](#nav-5-2-5)
- [5.2.6 Gentoo](#nav-5-2-6)
- [5.3 Windows](#nav-5-3)
- [6. 安装](#nav-6)
- [7. 下一步](#nav-7)
- [8. 常见问题](#nav-8)
- [9. 贡献者](#nav-9)
- [10. 特别提及](#nav-10)
- [11. 许可协议](#nav-11)
- [12. 特别感谢](#nav-12)
<span id="nav-3"></span>
## 特征
- 后端使用标准 Go
- 使用任意前端技术构建 UI 界面
- 快速为您的 Go 应用生成 Vue、Vuetify、React 前端代码
- 通过简单的绑定命令将 Go 方法暴露到前端
- 使用原生渲染引擎 - 无嵌入式浏览器
- 共享事件系统
- 原生文件系统对话框
- 强大的命令行工具
- 跨多个平台
<span id="nav-4"></span>
## 赞助商
这个项目由以下这些人或者公司支持:
<a href="https://github.com/matryer" style="width:100px"><img src="https://github.com/matryer.png" width="100"/></a>
<a href="https://www.jetbrains.com?from=Wails" style="width:100px"><img src="jetbrains-grayscale.png" width="100"/></a>
<a href="https://github.com/tc-hib" style="width:55px;border-radius: 50%">
<img src="https://github.com/tc-hib.png?size=55" width="55" style="border-radius: 50%"/>
</a>
<a href="https://github.com/picatz" style="width:50px;border-radius: 50%">
<img src="https://github.com/picatz.png?size=50" width="50" style="border-radius: 50%"/>
</a>
<a href="https://github.com/tylertravisty" style="width:50px;border-radius: 50%">
<img src="https://github.com/tylertravisty.png?size=50" width="50" style="border-radius: 50%"/>
</a>
<a href="https://github.com/akhudek" style="width:50px;border-radius: 50%">
<img src="https://github.com/akhudek.png?size=50" width="50" style="border-radius: 50%"/>
</a>
<a href="https://github.com/trea" style="width:50px;border-radius: 50%">
<img src="https://github.com/trea.png?size=50" width="50" style="border-radius: 50%"/>
</a>
<span id="nav-5"></span>
## 安装
Wails 使用 cgo 与原生渲染引擎结合,因此需要一些依赖平台的库以及 Go 的安装。基本要求是:
- Go 1.16
- npm
<span id="nav-5-1"></span>
### MacOS
请确保已安装 xcode 命令行工具。这可以通过运行下面的命令来完成:
`xcode-select --install`
<span id="nav-5-2"></span>
### Linux
<span id="nav-5-2-1"></span>
#### Debian/Ubuntu
`sudo apt install libgtk-3-dev libwebkit2gtk-4.0-dev`
_Debian: 8, 9, 10_
_Ubuntu: 16.04, 18.04, 19.04_
_Also succesfully tested on: Zorin 15, Parrot 4.7, Linuxmint 19, Elementary 5, Kali, Neon_, Pop!\_OS
<span id="nav-5-2-2"></span>
#### Arch Linux / ArchLabs / Ctlos Linux
`sudo pacman -S webkit2gtk gtk3`
_Also succesfully test on: Manjaro & ArcoLinux_
<span id="nav-5-2-3"></span>
#### Centos
`sudo yum install webkitgtk3-devel gtk3-devel`
_CentOS 6, 7_
<span id="nav-5-2-4"></span>
#### Fedora
`sudo yum install webkit2gtk3-devel gtk3-devel`
_Fedora 29, 30_
<span id="nav-5-2-5"></span>
#### VoidLinux & VoidLinux-musl
`xbps-install gtk+3-devel webkit2gtk-devel`
<span id="nav-5-2-6"></span>
#### Gentoo
`sudo emerge gtk+:3 webkit-gtk`
<span id="nav-5-3"></span>
### Windows
Windows 需要 GCC 和相关工具。 建议从 [http://tdm-gcc.tdragon.net/download](http://tdm-gcc.tdragon.net/download)下载, 安装完成,您就可以开始了。
<span id="nav-6"></span>
## 安装
**确保 Go modules 是开启的: GO111MODULE=on 并且 go/bin 在您的 PATH 变量中.**
安装很简单,运行以下命令:
<pre style='color:white'>
go get -u github.com/wailsapp/wails/cmd/wails
</pre>
<span id="nav-7"></span>
## 下一步
建议在此时阅读[https://wails.app](https://wails.app)上面的文档.
<span id="nav-8"></span>
## 常见问题
- 它是 Electron 的替代品吗?
取决于您的要求。它旨在使 Go 程序员可以轻松制作轻量级桌面应用程序或在其现有应用程序中添加前端。尽管 Wails 当前不提供对诸如菜单之类的本机元素的钩子,但将来可能会改变。
- 这个项目针对的是谁?
希望将 HTML / JS / CSS 前端与其应用程序捆绑在一起的程序员,而无需借助创建服务并打开浏览器进行查看的方式。
- 名字怎么来的?
当我看到 WebView 时,我想"我真正想要的是围绕构建 WebView 应用程序工作,有点像 Rails 对于 Ruby"。因此,最初它是一个文字游戏(Webview on Rails)。碰巧也是我来自的[国家](https://en.wikipedia.org/wiki/Wales)的英文名字的同音。所以就是他了。
<span id="nav-9"></span>
## 贡献者
<a href="https://github.com/qaisjp"><img src="https://github.com/qaisjp.png?size=40" width="40"/></a>
<a href="https://github.com/alee792"><img src="https://github.com/alee792.png?size=40" width="40"/></a>
<a href="https://github.com/lanzafame"><img src="https://github.com/lanzafame.png?size=40" width="40"/></a>
<a href="https://github.com/mattn"><img src="https://github.com/mattn.png?size=40" width="40"/></a>
<a href="https://github.com/0xflotus"><img src="https://github.com/0xflotus.png?size=40" width="40"/></a>
<a href="https://github.com/mdhender"><img src="https://github.com/mdhender.png?size=40" width="40"/></a>
<a href="https://github.com/fishfishfish2104"><img src="https://github.com/fishfishfish2104.png?size=40" width="40"/></a>
<a href="https://github.com/intelwalk"><img src="https://github.com/intelwalk.png?size=40" width="40"/></a>
<a href="https://github.com/ocelotsloth"><img src="https://github.com/ocelotsloth.png?size=40" width="40"/></a>
<a href="https://github.com/bh90210"><img src="https://github.com/bh90210.png?size=40" width="40"/></a>
<a href="https://github.com/iceleo-com"><img src="https://github.com/iceleo-com.png?size=40" width="40"/></a>
<a href="https://github.com/fallendusk"><img src="https://github.com/fallendusk.png?size=40" width="40"/></a>
<a href="https://github.com/Chronophylos"><img src="https://github.com/Chronophylos.png?size=40" width="40"/></a>
<a href="https://github.com/Vaelatern"><img src="https://github.com/Vaelatern.png?size=40" width="40"/></a>
<a href="https://github.com/mewmew"><img src="https://github.com/mewmew.png?size=40" width="40"/></a>
<a href="https://github.com/kraney"><img src="https://github.com/kraney.png?size=40" width="40"/></a>
<a href="https://github.com/JackMordaunt"><img src="https://github.com/JackMordaunt.png?size=40" width="40"/></a>
<a href="https://github.com/MichaelHipp"><img src="https://github.com/MichaelHipp.png?size=40" width="40"/></a>
<a href="https://github.com/tmclane"><img src="https://github.com/tmclane.png?size=40" width="40"/></a>
<a href="https://github.com/Rested"><img src="https://github.com/Rested.png?size=40" width="40"/></a>
<a href="https://github.com/Jarek-SRT"><img src="https://github.com/Jarek-SRT.png?size=40" width="40"/></a>
<a href="https://github.com/konez2k"><img src="https://github.com/konez2k.png?size=40" width="40"/></a>
<a href="https://github.com/sayuthisobri"><img src="https://github.com/sayuthisobri.png?size=40" width="40"/></a>
<a href="https://github.com/dedo1911"><img src="https://github.com/dedo1911.png?size=40" width="40"/></a>
<a href="https://github.com/fdidron"><img src="https://github.com/fdidron.png?size=40" width="40"/></a>
<a href="https://github.com/Splode"><img src="https://github.com/Splode.png?size=40" width="40"/></a>
<a href="https://github.com/Lyimmi"><img src="https://github.com/Lyimmi.png?size=40" width="40"/></a>
<a href="https://github.com/Unix4ever"><img src="https://github.com/Unix4ever.png?size=40" width="40"/></a>
<a href="https://github.com/timkippdev"><img src="https://github.com/timkippdev.png?size=40" width="40"/></a>
<a href="https://github.com/kyoto44"><img src="https://github.com/kyoto44.png?size=40" width="40"/></a>
<a href="https://github.com/artooro"><img src="https://github.com/artooro.png?size=40" width="40"/></a>
<a href="https://github.com/ilgityildirim"><img src="https://github.com/ilgityildirim.png?size=40" width="40"/></a>
<a href="https://github.com/gelleson"><img src="https://github.com/gelleson.png?size=40" width="40"/></a>
<a href="https://github.com/kmuchmore"><img src="https://github.com/kmuchmore.png?size=40" width="40"/></a>
<a href="https://github.com/aayush420"><img src="https://github.com/aayush420.png?size=40" width="40"/></a>
<a href="https://github.com/Rezrazi"><img src="https://github.com/Rezrazi.png?size=40" width="40"/></a>
<a href="https://github.com/misitebao"><img src="https://github.com/misitebao.png?size=40" width="40"/></a>
<a href="https://github.com/DrunkenPoney"><img src="https://github.com/DrunkenPoney.png?size=40" width="40"/></a>
<a href="https://github.com/SophieAu"><img src="https://github.com/SophieAu.png?size=40" width="40"/></a>
<a href="https://github.com/alexmat"><img src="https://github.com/alexmat.png?size=40" width="40"/></a>
<a href="https://github.com/RH12503"><img src="https://github.com/RH12503.png?size=40" width="40"/></a>
<a href="https://github.com/hi019"><img src="https://github.com/hi019.png?size=40" width="40"/></a></a>
<a href="https://github.com/Igogrek"><img src="https://github.com/Igogrek.png?size=40" width="40"/></a></a>
<a href="https://github.com/aschey"><img src="https://github.com/aschey.png?size=40" width="40"/></a></a>
<a href="https://github.com/akhudek"><img src="https://github.com/akhudek.png?size=40" width="40"/></a></a>
<span id="nav-10"></span>
## 特别提及
如果没有以下人员,此项目将永远不会存在:
- [Dustin Krysak](https://wiki.ubuntu.com/bashfulrobot) - His support and feedback has been immense. More patience than you can throw a stick at (Not long now Dustin!).
- [Serge Zaitsev](https://github.com/zserge) - Creator of [Webview](https://github.com/zserge/webview) which Wails uses for the windowing.
- [Byron](https://github.com/bh90210) - At times, Byron has single handedly kept this project alive. Without his incredible input, we never would have got to v1.
This project was mainly coded to the following albums:
- [Manic Street Preachers - Resistance Is Futile](https://open.spotify.com/album/1R2rsEUqXjIvAbzM0yHrxA)
- [Manic Street Preachers - This Is My Truth, Tell Me Yours](https://open.spotify.com/album/4VzCL9kjhgGQeKCiojK1YN)
- [The Midnight - Endless Summer](https://open.spotify.com/album/4Krg8zvprquh7TVn9OxZn8)
- [Gary Newman - Savage (Songs from a Broken World)](https://open.spotify.com/album/3kMfsD07Q32HRWKRrpcexr)
- [Steve Vai - Passion & Warfare](https://open.spotify.com/album/0oL0OhrE2rYVns4IGj8h2m)
- [Ben Howard - Every Kingdom](https://open.spotify.com/album/1nJsbWm3Yy2DW1KIc1OKle)
- [Ben Howard - Noonday Dream](https://open.spotify.com/album/6astw05cTiXEc2OvyByaPs)
- [Adwaith - Melyn](https://open.spotify.com/album/2vBE40Rp60tl7rNqIZjaXM)
- [Gwidaith Hen Fran - Cedors Hen Wrach](https://open.spotify.com/album/3v2hrfNGINPLuDP0YDTOjm)
- [Metallica - Metallica](https://open.spotify.com/album/2Kh43m04B1UkVcpcRa1Zug)
- [Bloc Party - Silent Alarm](https://open.spotify.com/album/6SsIdN05HQg2GwYLfXuzLB)
- [Maxthor - Another World](https://open.spotify.com/album/3tklE2Fgw1hCIUstIwPBJF)
- [Alun Tan Lan - Y Distawrwydd](https://open.spotify.com/album/0c32OywcLpdJCWWMC6vB8v)
<span id="nav-11"></span>
## 许可协议
[![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)
<span id="nav-12"></span>
## 特别感谢
<p align="center" style="text-align: center">
<a href="https://pace.dev"><img src="pace.jpeg"/></a><br/>
非常感谢<a href="https://pace.dev">Pace</a>对项目的赞助,并帮助将Wails移植到Apple Silicon<br/><br/>
如果您正在寻找一个强大的项目管理工具,并且快速和易于使用,可以看看他们!<br/><br/>
</p>
<p align="center" style="text-align: center">
特别感谢JetBrains向我们捐赠许可!<br/><br/>
请点击logo让他们知道你的感激之情!<br/><br/>
<a href="https://www.jetbrains.com?from=Wails"><img src="jetbrains-grayscale.png" width="30%"></a>
</p>
+10
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -24,7 +24,7 @@ func (g *GitHubHelper) GetVersionTags() ([]*SemanticVersion, error) {
result := []*SemanticVersion{}
var err error
resp, err := http.Get("https://api.github.com/repos/wailsapp/wails/releases")
resp, err := http.Get("https://api.github.com/repos/wailsapp/wails/tags")
if err != nil {
return result, err
}
+97 -42
View File
@@ -2,6 +2,7 @@ package cmd
import (
"fmt"
"io/ioutil"
"os"
"os/exec"
"os/user"
@@ -11,12 +12,13 @@ import (
"strings"
"time"
"github.com/leaanthony/mewn"
"github.com/leaanthony/mewn/lib"
"github.com/leaanthony/slicer"
"github.com/leaanthony/spinner"
wailsruntime "github.com/wailsapp/wails/runtime"
)
const xgoVersion = "1.16.3"
const xgoVersion = "1.0.1"
var fs = NewFSHelper()
@@ -46,7 +48,7 @@ func InstallGoDependencies(verbose bool) error {
depSpinner.SetSpinSpeed(50)
depSpinner.Start()
}
err := NewProgramHelper(verbose).RunCommand("go mod tidy")
err := NewProgramHelper(verbose).RunCommand("go get")
if err != nil {
if !verbose {
depSpinner.Error()
@@ -59,6 +61,30 @@ func InstallGoDependencies(verbose bool) error {
return nil
}
// EmbedAssets will embed the built frontend assets via mewn.
func EmbedAssets() ([]string, error) {
mewnFiles := lib.GetMewnFiles([]string{}, false)
referencedAssets, err := lib.GetReferencedAssets(mewnFiles)
if err != nil {
return []string{}, err
}
targetFiles := []string{}
for _, referencedAsset := range referencedAssets {
packfileData, err := lib.GeneratePackFileString(referencedAsset, false)
if err != nil {
return []string{}, err
}
targetFile := filepath.Join(referencedAsset.BaseDir, referencedAsset.PackageName+"-mewn.go")
targetFiles = append(targetFiles, targetFile)
ioutil.WriteFile(targetFile, []byte(packfileData), 0644)
}
return targetFiles, nil
}
func InitializeCrossCompilation(verbose bool) error {
// Check Docker
if err := CheckIfInstalled("docker"); err != nil {
@@ -101,16 +127,13 @@ func BuildDocker(binaryName string, buildMode string, projectOptions *ProjectOpt
// Check build directory
buildDirectory := filepath.Join(fs.Cwd(), "build")
if !fs.DirExists(buildDirectory) {
err := fs.MkDir(buildDirectory)
if err != nil {
return err
}
fs.MkDir(buildDirectory)
}
buildCommand := slicer.String()
userid := 1000
currentUser, _ := user.Current()
if i, err := strconv.Atoi(currentUser.Uid); err == nil {
user, _ := user.Current()
if i, err := strconv.Atoi(user.Uid); err == nil {
userid = i
}
for _, arg := range []string{
@@ -175,6 +198,11 @@ func BuildDocker(binaryName string, buildMode string, projectOptions *ProjectOpt
// BuildNative builds on the target platform itself.
func BuildNative(binaryName string, forceRebuild bool, buildMode string, projectOptions *ProjectOptions) error {
// Check Mewn is installed
if err := CheckMewn(projectOptions.Verbose); err != nil {
return err
}
if err := CheckWindres(); err != nil {
return err
}
@@ -247,6 +275,12 @@ func BuildNative(binaryName string, forceRebuild bool, buildMode string, project
func BuildApplication(binaryName string, forceRebuild bool, buildMode string, packageApp bool, projectOptions *ProjectOptions) error {
var err error
// embed resources
targetFiles, err := EmbedAssets()
if err != nil {
return err
}
if projectOptions.CrossCompile {
if err := InitializeCrossCompilation(projectOptions.Verbose); err != nil {
return err
@@ -262,6 +296,20 @@ func BuildApplication(binaryName string, forceRebuild bool, buildMode string, pa
}
}
// cleanup temporary embedded assets
defer func() {
for _, filename := range targetFiles {
if err := os.Remove(filename); err != nil {
fmt.Println(err)
}
}
// Removed by popular demand
// TODO: Potentially add a flag to cleanup
// if projectOptions.Platform == "windows" {
// helper.CleanWindows(projectOptions)
// }
}()
if projectOptions.CrossCompile {
err = BuildDocker(binaryName, buildMode, projectOptions)
} else {
@@ -326,6 +374,30 @@ func BuildFrontend(projectOptions *ProjectOptions) error {
return nil
}
// CheckMewn checks if mewn is installed and if not, attempts to fetch it
func CheckMewn(verbose bool) (err error) {
programHelper := NewProgramHelper(verbose)
if !programHelper.IsInstalled("mewn") {
var buildSpinner *spinner.Spinner
if !verbose {
buildSpinner = spinner.New()
buildSpinner.SetSpinSpeed(50)
buildSpinner.Start("Installing Mewn asset packer...")
}
err := programHelper.InstallGoPackage("github.com/leaanthony/mewn/cmd/mewn")
if err != nil {
if buildSpinner != nil {
buildSpinner.Error()
}
return err
}
if buildSpinner != nil {
buildSpinner.Success()
}
}
return nil
}
// CheckWindres checks if Windres is installed and if not, aborts
func CheckWindres() (err error) {
if runtime.GOOS != "windows" { // FIXME: Handle windows cross-compile for windows!
@@ -421,18 +493,11 @@ func InstallFrontendDeps(projectDir string, projectOptions *ProjectOptions, forc
}
// Update md5sum file
err := os.WriteFile(md5sumFile, []byte(packageJSONMD5), 0644)
if err != nil {
return err
}
ioutil.WriteFile(md5sumFile, []byte(packageJSONMD5), 0644)
}
// Install the runtime
if caller == "build" {
err = InstallProdRuntime(projectDir, projectOptions)
} else {
err = InstallBridge(projectDir, projectOptions)
}
err = InstallRuntime(caller, projectDir, projectOptions)
if err != nil {
return err
}
@@ -445,17 +510,28 @@ func InstallFrontendDeps(projectDir string, projectOptions *ProjectOptions, forc
return nil
}
// InstallRuntime installs the correct runtime for the type of build
func InstallRuntime(caller string, projectDir string, projectOptions *ProjectOptions) error {
if caller == "build" {
return InstallProdRuntime(projectDir, projectOptions)
}
return InstallBridge(projectDir, projectOptions)
}
// InstallBridge installs the relevant bridge javascript library
func InstallBridge(projectDir string, projectOptions *ProjectOptions) error {
bridgeFileData := mewn.String("../runtime/assets/bridge.js")
bridgeFileTarget := filepath.Join(projectDir, projectOptions.FrontEnd.Dir, "node_modules", "@wailsapp", "runtime", "init.js")
err := fs.CreateFile(bridgeFileTarget, wailsruntime.BridgeJS)
err := fs.CreateFile(bridgeFileTarget, []byte(bridgeFileData))
return err
}
// InstallProdRuntime installs the production runtime
func InstallProdRuntime(projectDir string, projectOptions *ProjectOptions) error {
prodInit := mewn.String("../runtime/js/runtime/init.js")
bridgeFileTarget := filepath.Join(projectDir, projectOptions.FrontEnd.Dir, "node_modules", "@wailsapp", "runtime", "init.js")
err := fs.CreateFile(bridgeFileTarget, wailsruntime.InitJS)
err := fs.CreateFile(bridgeFileTarget, []byte(prodInit))
return err
}
@@ -475,22 +551,7 @@ func ServeProject(projectOptions *ProjectOptions, logger *Logger) error {
}
logger.Yellow("Serving Application: " + location)
var args []string
if len(os.Args) > 2 {
foundArgSep := false
for index, arg := range os.Args[2:] {
if arg == "--" {
foundArgSep = true
continue
}
if foundArgSep {
args = os.Args[index:]
break
}
}
logger.Yellow("Passing arguments: %+v", args)
}
cmd := exec.Command(location, args...)
cmd := exec.Command(location)
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
err = cmd.Run()
@@ -534,9 +595,3 @@ func ldFlags(po *ProjectOptions, buildMode string) string {
}
return ldflags
}
func getGitConfigValue(key string) (string, error) {
output, err := exec.Command("git", "config", "--get", "--null", key).Output()
// When using --null git appends a null character (\u0000) to the command output
return strings.TrimRight(string(output), "\u0000"), err
}
-19
View File
@@ -67,10 +67,6 @@ const (
Ctlos
// EndeavourOS linux distribution
EndeavourOS
// Crux linux distribution
Crux
// RHEL distribution
RHEL
)
// DistroInfo contains all the information relating to a linux distribution
@@ -133,8 +129,6 @@ func parseOsRelease(osRelease string) *DistroInfo {
result.Distribution = Fedora
case "centos":
result.Distribution = CentOS
case "rhel":
result.Distribution = RHEL
case "arch":
result.Distribution = Arch
case "archlabs":
@@ -181,8 +175,6 @@ func parseOsRelease(osRelease string) *DistroInfo {
result.Distribution = Solus
case "endeavouros":
result.Distribution = EndeavourOS
case "crux":
result.Distribution = Crux
default:
result.Distribution = Unknown
}
@@ -263,17 +255,6 @@ func RpmInstalled(packageName string) (bool, error) {
return exitCode == 0, nil
}
// PrtGetInstalled uses prt-get to see if a package is installed
func PrtGetInstalled(packageName string) (bool, error) {
program := NewProgramHelper()
prtget := program.FindProgram("prt-get")
if prtget == nil {
return false, fmt.Errorf("cannot check dependencies: prt-get not found")
}
_, _, exitCode, _ := prtget.Run("isinst", packageName)
return exitCode == 0, nil
}
// RequestSupportForDistribution promts the user to submit a request to support their
// currently unsupported distribution
func RequestSupportForDistribution(distroInfo *DistroInfo) error {
-38
View File
@@ -138,25 +138,6 @@ distributions:
help: Please install with `sudo yum install gtk3-devel` and try again
- name: webkitgtk3-devel
help: Please install with `sudo yum install webkitgtk3-devel` and try again
rhel:
id: rhel
releases:
default:
version: default
name: Red Hat Enterprise Linux
gccversioncommand: *gccdumpversion
programs:
- name: gcc
help: Please install with `sudo yum install gcc-c++ make` and try again
- name: pkg-config
help: Please install with `sudo yum install pkgconf-pkg-config` and try again
- name: npm
help: Please install with `sudo yum install epel-release && sudo yum install nodejs` and try again
libraries:
- name: gtk3-devel
help: Please install with `sudo yum install gtk3-devel` and try again
- name: webkitgtk3-devel
help: Please install with `sudo yum install webkitgtk3-devel` and try again
fedora:
id: fedora
releases:
@@ -326,22 +307,3 @@ distributions:
gccversioncommand: *gccdumpfullversion
programs: *opensusedefaultprograms
libraries: *opensusedefaultlibraries
crux:
id: crux
releases:
default:
version: default
name: Crux Linux
gccversioncommand: *gccdumpversion
programs:
- name: gcc
help: Please install with `sudo prt-get depinst gcc-c++ make` and try again
- name: pkg-config
help: Please install with `sudo prt-get depinst pkg-config` and try again
- name: npm
help: Please install with `sudo prt-get depinst nodejs` and try again
libraries:
- name: gtk3
help: Please install with `sudo prt-get depinst gtk3` and try again
- name: webkitgtk
help: Please install with `sudo prt-get depinst webkitgtk` and try again
+1 -1
View File
@@ -354,7 +354,7 @@ func (b *PackageHelper) PackageWindows(po *ProjectOptions, cleanUp bool) error {
"docker", "run", "--rm",
"-v", outputDir + ":/build",
"--entrypoint", "/bin/sh",
"wailsapp/xgo:1.16.3",
"wailsapp/xgo:latest",
"-c", "/usr/bin/x86_64-w64-mingw32-windres -o /build/" + basename + "-res.syso /build/" + basename + ".rc",
}
if err := NewProgramHelper().RunCommandArray(args); err != nil {
+2 -9
View File
@@ -99,16 +99,11 @@ func (s *SystemHelper) setup() error {
if config.Name != "" {
systemConfig["name"] = PromptRequired("What is your name", config.Name)
} else if n, err := getGitConfigValue("user.name"); err == nil && n != "" {
systemConfig["name"] = PromptRequired("What is your name", n)
} else {
systemConfig["name"] = PromptRequired("What is your name")
}
if config.Email != "" {
systemConfig["email"] = PromptRequired("What is your email address", config.Email)
} else if e, err := getGitConfigValue("user.email"); err == nil && e != "" {
systemConfig["email"] = PromptRequired("What is your email address", e)
} else {
systemConfig["email"] = PromptRequired("What is your email address")
}
@@ -185,7 +180,7 @@ func (s *SystemHelper) Initialise() error {
return s.setup()
}
// SystemConfig - Defines system wide configuration data
// SystemConfig - Defines system wode configuration data
type SystemConfig struct {
Name string `json:"name"`
Email string `json:"email"`
@@ -283,7 +278,7 @@ func CheckDependencies(logger *Logger) (bool, error) {
libraryChecker = DpkgInstalled
case Arch, ArcoLinux, ArchLabs, Ctlos, Manjaro, ManjaroARM, EndeavourOS:
libraryChecker = PacmanInstalled
case CentOS, Fedora, Tumbleweed, Leap, RHEL:
case CentOS, Fedora, Tumbleweed, Leap:
libraryChecker = RpmInstalled
case Gentoo:
libraryChecker = EqueryInstalled
@@ -291,8 +286,6 @@ func CheckDependencies(logger *Logger) (bool, error) {
libraryChecker = XbpsInstalled
case Solus:
libraryChecker = EOpkgInstalled
case Crux:
libraryChecker = PrtGetInstalled
default:
return false, RequestSupportForDistribution(distroInfo)
}
@@ -3,7 +3,7 @@
"version": "0.0.0",
"scripts": {
"ng": "npx ng",
"serve": "npx ng serve --poll=2000 --host=0.0.0.0",
"start": "npx ng serve --poll=2000 --host=0.0.0.0",
"build": "npx ng build --single-bundle true --output-hashing none --prod --bundle-styles false",
"test": "npx ng test",
"lint": "npx ng lint",
@@ -1,7 +1,7 @@
package main
import (
_ "embed"
"github.com/leaanthony/mewn"
"github.com/wailsapp/wails"
)
@@ -9,14 +9,11 @@ func basic() string {
return "World!"
}
//go:embed frontend/dist/my-app/main.js
var js string
//go:embed frontend/dist/my-app/styles.css
var css string
func main() {
js := mewn.String("./frontend/dist/my-app/main.js")
css := mewn.String("./frontend/dist/my-app/styles.css")
app := wails.CreateApp(&wails.AppConfig{
Width: 1024,
Height: 768,
+1 -1
View File
@@ -14,7 +14,7 @@
"author": "bh90210 <ktc@pm.me>",
"created": "2019-06-15 18:23:48.666414555 +0300 EEST m=+223.934866008",
"frontenddir": "frontend",
"serve": "npm run serve",
"serve": "npx ng serve --poll=2000",
"bridge": "src",
"wailsdir": ""
}
@@ -12,7 +12,7 @@
"@wailsapp/runtime": "^1.0.10"
},
"scripts": {
"serve": "react-scripts start",
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"

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