Compare commits

..

49 Commits

Author SHA1 Message Date
Travis McLane d14e4048aa [dialogs] remove default title
without this removal a user would have to call `SetTitle("")` in order to
erase the default if they desire a title-less dialog.
2023-05-10 10:57:25 -05:00
Lea Anthony 7fd627f169 [v3 windows] initial systray support 2023-05-10 19:35:40 +10:00
Lea Anthony b91468b6f2 [v3 mac] Update api. New template icon. 2023-05-09 21:55:17 +10:00
Lea Anthony 0b9cd4be5d [v3 windows] update status 2023-05-09 21:47:22 +10:00
Lea Anthony 4c587ee1b8 [v3 windows] New icons 2023-05-09 19:53:01 +10:00
Lea Anthony 19e1e8b8a6 [v3 windows] Move icons to own package, systray dark mode icon, window.Focus(), 2023-05-09 19:52:33 +10:00
Lea Anthony 67e9522c67 [v3 windows] Rename systray callback handlers 2023-05-08 20:16:25 +10:00
Lea Anthony a829b38a34 [v3 windows] Dialogs to use invokeSync 2023-05-08 20:11:51 +10:00
Lea Anthony c8dae94b5b [v3 windows] Systray callback handlers 2023-05-08 19:43:58 +10:00
stffabi 87267758ac [v3 windows] Fix wndproc default case with WMMessageToString 2023-05-07 22:17:43 +02:00
stffabi 5f72df81fb [v3 windows] Do not disable WndProc messaging for systray when updating icon 2023-05-07 21:40:40 +02:00
Lea Anthony 1ed270fe05 [v3 windows] Fix systray icon size 2023-05-07 20:19:37 +10:00
Lea Anthony 19a654a2b1 [v3 windows] Initial systray support 2023-05-07 19:13:07 +10:00
Lea Anthony f9bbc11711 [v3] Use invokeSync for systray methods 2023-05-07 10:34:08 +10:00
Lea Anthony 42b1807c36 [v3 windows] Support irregular shaped windows. Centered option. 2023-05-06 20:22:28 +10:00
Lea Anthony 647982de1a [v3 windows] Support irregular shaped windows 2023-05-06 15:05:00 +10:00
Lea Anthony f5557c612a Merge remote-tracking branch 'origin/v3-alpha' into v3-alpha 2023-05-05 06:41:04 +10:00
stffabi f4749db8b3 [v3] Add some missing methods for darwin and windows 2023-05-02 21:56:40 +02:00
Travis McLane 86a1de6788 [w32] move windows specific code to impl file 2023-05-02 10:52:21 -05:00
Travis McLane 792c5e2d95 [w32] add missing build constraint 2023-05-02 10:52:09 -05:00
Lea Anthony 6758580be9 [v3 windows] Add frameless resize 2023-05-02 23:18:22 +10:00
stffabi 6f246eed4a [v3 windows] Add HiDPI awareness 2023-05-02 09:45:21 +02:00
stffabi fc3725d3f4 [v3 windows] Add frameless support 2023-05-02 09:29:47 +02:00
Lea Anthony 00c6f0dfdb [v3 windows] Implement getScreen 2023-05-01 21:11:40 +10:00
Lea Anthony cf7b4e2458 [v3] Ensure impl calls from WebvieWindow are on the main thread. Support size. 2023-05-01 20:28:46 +10:00
Lea Anthony f682e44367 [v3] Fix examples 2023-05-01 18:24:24 +10:00
Lea Anthony 9d1f86c410 [v3] Update examples to use correct options. 2023-05-01 18:21:22 +10:00
Lea Anthony dac281ac32 [v3] Change WebviewWindow options to be a value, not a pointer. Support Un/Fullscreen. Remove main thread switching. Use parent options instead of local variables. 2023-05-01 18:20:28 +10:00
Lea Anthony 29a58086a3 [v3 Windows] Support application hide/show. Add WebviewWindow.IsVisible(). 2023-05-01 11:34:06 +10:00
Lea Anthony cb8eb755a7 [v3 Windows] Support setMin/MaxSize, setPosition 2023-05-01 10:52:46 +10:00
Lea Anthony 1e8fc29ee4 [v3 Windows] Add Support for SetTitle, Center, Un/Minimise/Maximise, IsMin/Maximised, IsNormal, Show/Hide 2023-04-30 20:55:51 +10:00
Lea Anthony 9a05b49e3d [v3 Breaking Change] Add NativeWindowHandle method to WebviewWindow. 2023-04-30 10:17:03 +10:00
Lea Anthony 79f8d92084 [v3 windows] Moved w32 from internal to pkg so it may be used by applications 2023-04-30 10:02:00 +10:00
Lea Anthony 6e56542586 [v3 windows] Add WndProcInterceptor for custom message processing 2023-04-30 09:49:50 +10:00
Lea Anthony c53443b62b [v3 windows] Rename options_windows.go -> options_win.go 2023-04-30 09:10:00 +10:00
Lea Anthony 1128662c89 [v3 windows] Add APM Events 2023-04-29 20:33:33 +10:00
Lea Anthony 676787417f [v3] Update application.On and window.On to return functions that unregister the listener. WebviewWindow.onApplicationEvent is a helper which will manage the unregistering for you on window destroy. 2023-04-29 19:39:05 +10:00
Lea Anthony 57422dccf3 [windows] Split out wndProc. Generate windows events, support per-window themes 2023-04-29 12:14:12 +10:00
Lea Anthony 7f3f51e36b [windows] Support AlwaysOnTop, EnableResize at runtime. Added Solid/Transparent/Translucent options. 2023-04-28 21:11:49 +10:00
stffabi ef184ec8bf [v3, windows] Add MainThread dispatching and fixes the blocking window 2023-04-26 21:06:54 +02:00
Lea Anthony 9bfe3094dd [windows] WIP 2023-04-26 21:07:04 +10:00
stffabi 3547b4d010 [v2, darwin] Add some missing default shortcuts (#2586)
* [v2, darwin] Add "Hide, Hide Others, Show All“ to appmenu

This also includes shortcuts support for those commands.
Arrange the menu items in the well known MacOS order.

* [v2, darwin] Add Window menu with well known shortcuts Minimize, Full-Screen and Zoom.
2023-04-26 21:07:04 +10:00
stffabi 1222e3aa1b [v2, dev] Use custom schemes for in-app dev mode (#2610)
This fixes some long-standing inconsistencies between
dev mode builds and production builds but is a breaking
change. Dev mode uses custom scheme for Vite versions >= 3.0.0
and for older it still behaves in the old way.
2023-04-26 21:07:03 +10:00
stffabi cff3ee5079 [assetServer] Improve release/close handling of webview requests (#2612) 2023-04-26 21:07:03 +10:00
Travis McLane c91aa462aa [darwin] add getPrimaryScreen/getScreens to impl (#2618) 2023-04-24 09:34:44 +10:00
Lea Anthony 62b3775e2f Fix module path for non-modified repo 2023-04-19 08:22:58 +10:00
Lea Anthony 54bf8c1142 [windows] Initial commit 2023-04-18 21:27:09 +10:00
Lea Anthony c4f613e4c5 [windows] Fix paths for wails init 2023-04-18 20:41:59 +10:00
Lea Anthony a66d9ab0b1 Intial STATUS.md commit 2023-04-18 18:53:39 +10:00
1125 changed files with 54501 additions and 45378 deletions
+1
View File
@@ -0,0 +1 @@
runtime/assets/default.html
+30
View File
@@ -0,0 +1,30 @@
{
"env": {
"browser": true,
"es6": true,
"node": true,
},
"extends": "eslint:recommended",
"parserOptions": {
"ecmaVersion": 2016,
"sourceType": "module",
},
"rules": {
"indent": [
"error",
"tab"
],
"linebreak-style": [
"error",
"unix"
],
"quotes": [
"error",
"single"
],
"semi": [
"error",
"always"
]
}
}
-4
View File
@@ -1,9 +1,5 @@
blank_issues_enabled: true
contact_links:
- name: Discord Chat
url: https://discord.gg/BrRSWTaxVK
about: Ask questions and discuss with other Wails users in real time.
- name: GitHub Community Discussions
url: https://github.com/wailsapp/wails/discussions
about: If your question is not a feature or a bug, please go to the discussion panel and retrieve if your question already exists before submitting.
-43
View File
@@ -1,43 +0,0 @@
# Description
Please include a summary of the change and which issue is fixed. Please also
include relevant motivation and context. List any dependencies that are required
for this change.
Fixes # (issue)
## Type of change
Please delete options that are not relevant.
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to
not work as expected)
- [ ] This change requires a documentation update
# How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide
instructions so we can reproduce. Please also list any relevant details for your
test configuration using `wails doctor`.
- [ ] Windows
- [ ] macOS
- [ ] Linux
## Test Configuration
Please paste the output of `wails doctor`. If you are unable to run this
command, please describe your environment in as much detail as possible.
# Checklist:
- [ ] I have updated `website/src/pages/changelog.mdx` with details of this PR
- [ ] My code follows the general coding style of this project
- [ ] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [ ] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my feature works
- [ ] New and existing unit tests pass locally with my changes
@@ -1,37 +0,0 @@
name: Format Markdown Files
on:
workflow_dispatch:
push:
branches: [master]
jobs:
format_markdown_files:
runs-on: ubuntu-latest
if: github.repository == 'wailsapp/wails'
steps:
- uses: actions/checkout@v3
- name: Setup Nodejs
uses: actions/setup-node@v2
with:
node-version: 18.x
- name: Install Task
uses: arduino/setup-task@v1
with:
version: 3.x
repo-token: ${{ secrets.GITHUB_TOKEN }}
- name: Format All Markdown Files
run: task format-all-md
- name: Create Pull Request
uses: peter-evans/create-pull-request@v4
with:
commit-message: "docs: format document"
title: "docs: format document"
body: "- [x] Format all Markdown(x) documents"
branch: chore/format-markdown-files
delete-branch: true
draft: false
@@ -2,8 +2,6 @@ name: Sync Translations
on:
workflow_dispatch:
schedule:
- cron: "0 0 * * *"
jobs:
sync-translated-documents:
+34
View File
@@ -0,0 +1,34 @@
# This is an example goreleaser.yaml file with some sane defaults.
# Make sure to check the documentation at http://goreleaser.com
builds:
- env:
- CGO_ENABLED=0
goos:
- windows
- linux
- darwin
goarch:
- 386
- amd64
ignore:
- goos: darwin
goarch: 386
main: ./cmd/wails/main.go
archive:
replacements:
darwin: Darwin
linux: Linux
windows: Windows
386: i386
amd64: x86_64
checksum:
name_template: 'checksums.txt'
snapshot:
name_template: "{{ .Tag }}-next"
changelog:
sort: asc
filters:
exclude:
- '^docs:'
- '^test:'
+6
View File
@@ -0,0 +1,6 @@
jshint:
config_file: .jshintrc
eslint:
enabled: true
config_file: .eslintrc
ignore_file: .eslintignore
+3
View File
@@ -0,0 +1,3 @@
{
"esversion": 6
}
-3
View File
@@ -1,3 +0,0 @@
website
v2
v3
-6
View File
@@ -1,6 +0,0 @@
overrides:
- files:
- "**/*.md"
options:
printWidth: 80
proseWrap: always
+1 -2
View File
@@ -1,2 +1 @@
The current Contribution Guidelines can be found at:
https://wails.io/community-guide
The current Contribution Guidelines can be found at: https://wails.io/community-guide
+2 -2
View File
@@ -1,2 +1,2 @@
The latest contributors list may be found at:
https://wails.io/credits#contributors
The latest contributors list may be found at: https://wails.io/credits#contributors
+22 -46
View File
@@ -26,8 +26,8 @@
<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://discord.gg/BrRSWTaxVK">
<img alt="Discord" src="https://dcbadge.vercel.app/api/server/BrRSWTaxVK?style=flat"/>
<a href="https://app.slack.com/client/T029RQSE6/CJ4P9F7MZ">
<img alt="Slack" src="https://img.shields.io/badge/slack-gophers%2Fwails%20-blue?logo=slack"/>
</a>
<br/>
<a href="https://github.com/wailsapp/wails/actions/workflows/build-and-test.yml" rel="nofollow">
@@ -42,8 +42,7 @@
<strong>
<samp>
[English](README.md) · [简体中文](README.zh-Hans.md) · [日本語](README.ja.md) ·
[한국어](README.ko.md)
[English](README.md) · [简体中文](README.zh-Hans.md) · [日本語](README.ja.md) · [한국어](README.ko.md)
</samp>
</strong>
@@ -59,7 +58,6 @@
- [スポンサー](#スポンサー)
- [始め方](#始め方)
- [FAQ](#faq)
- [スター数の推移](#スター数の推移)
- [コントリビューター](#コントリビューター)
- [特記事項](#特記事項)
- [スペシャルサンクス](#スペシャルサンクス)
@@ -67,46 +65,38 @@
## はじめに
Go プログラムにウェブインタフェースを提供する従来の方法は内蔵のウェブサーバを経
由するものですが、 Wails では異なるアプローチを提供します。 Wails では Go のコー
ドとウェブフロントエンドを単一のバイナリにまとめる機能を提供します。また、プロジ
ェクトの作成、コンパイル、ビルドを行うためのツールが提供されています。あなたがす
べきことは創造性を発揮することです!
Go プログラムにウェブインタフェースを提供する従来の方法は内蔵のウェブサーバを経由するものですが、 Wails では異なるアプローチを提供します。
Wails では Go のコードとウェブフロントエンドを単一のバイナリにまとめる機能を提供します。
また、プロジェクトの作成、コンパイル、ビルドを行うためのツールが提供されています。あなたがすべきことは創造性を発揮することです!
### 公式サイト
Version 2:
Wails v2 が 3 つのプラットフォームでベータ版としてリリースされました。興味のある
方は[新しいウェブサイト](https://wails.io)をご覧ください。
Wails v2 が 3 つのプラットフォームでベータ版としてリリースされました。興味のある方は[新しいウェブサイト](https://wails.io)をご覧ください。
レガシー版 v1:
レガシー版 v1 のドキュメントは[https://wails.app](https://wails.app)で見ることが
できます。
レガシー版 v1 のドキュメントは[https://wails.app](https://wails.app)で見ることができます。
### ロードマップ
プロジェクトのロードマップ
は[こちら](https://github.com/wailsapp/wails/discussions/1484)になります。
プロジェクトのロードマップは[こちら](https://github.com/wailsapp/wails/discussions/1484)になります。
機能拡張のリクエストを出す前にご覧ください。
## 特徴
- バックエンドには Go を利用しています
- 使い慣れたフロントエンド技術を利用して UI を構築できます
- あらかじめ用意されたテンプレートを利用することで、リッチなフロントエンドを備え
た Go プログラムを作成できます
- あらかじめ用意されたテンプレートを利用することで、リッチなフロントエンドを備えた Go プログラムを作成できます
- JavaScript から Go のメソッドを簡単に呼び出すことができます
- あなたの書いた Go の構造体やメソットに応じた TypeScript の定義が自動生成されま
- あなたの書いた Go の構造体やメソットに応じた TypeScript の定義が自動生成されま
- ネイティブのダイアログとメニューが利用できます
- モダンな半透明や「frosted window」エフェクトをサポートしています
- Go と JavaScript 間で統一されたイベント・システムを備えています
- プロジェクトを素早く生成して構築する強力な cli ツールを用意しています
- マルチプラットフォームに対応しています
- ネイティブなレンダリングエンジンを使用しています - _つまりブラウザを埋め込んで
いるわけではありません!_
- ネイティブなレンダリングエンジンを使用しています - _つまりブラウザを埋め込んでいるわけではありません!_
## スポンサー
@@ -115,34 +105,25 @@ Wails v2 が 3 つのプラットフォームでベータ版としてリリー
## 始め方
インストール方法
は[公式サイト](https://wails.io/docs/gettingstarted/installation)に掲載されてい
ます。
インストール方法は[公式サイト](https://wails.io/docs/gettingstarted/installation)に掲載されています。
## FAQ
- Electron の代替品になりますか?
それはあなたの求める要件によります。Wails は Go プログラマーが簡単に軽量のデス
クトップアプリケーションを作成したり、既存のアプリケーションにフロントエンドを
追加できるように設計されています。 Wails v2 ではメニューやダイアログといったネ
イティブな要素を提供するようになったため、軽量な Electron の代替となりつつあり
ます。
それはあなたの求める要件によります。Wails は Go プログラマーが簡単に軽量のデスクトップアプリケーションを作成したり、既存のアプリケーションにフロントエンドを追加できるように設計されています。
Wails v2 ではメニューやダイアログといったネイティブな要素を提供するようになったため、軽量な Electron の代替となりつつあります。
- このプロジェクトは誰に向けたものですか?
HTML/JS/CSS のフロントエンド技術をアプリケーションにバンドルさせることで、サー
バーを作成してブラウザ経由で表示させることなくアプリケーションを利用したい Go
プログラマにおすすめです。
HTML/JS/CSS のフロントエンド技術をアプリケーションにバンドルさせることで、サーバーを作成してブラウザ経由で表示させることなくアプリケーションを利用したい Go プログラマにおすすめです。
- 名前の由来を教えて下さい
WebView を見たとき、私はこう思いました。
「私が本当に欲しいのは、WebView アプリを構築するためのツールであり、Ruby に対
する Rails のようなものである」と。
「私が本当に欲しいのは、WebView アプリを構築するためのツールであり、Ruby に対する Rails のようなものである」と。
そのため、最初は言葉遊びのつもりでした(Webview on Rails)。
また、私の[出身国](https://en.wikipedia.org/wiki/Wales)の英語名と同音異義語で
もあります。そしてこの名前が定着しました。
また、私の[出身国](https://en.wikipedia.org/wiki/Wales)の英語名と同音異義語でもあります。そしてこの名前が定着しました。
## スター数の推移
@@ -151,20 +132,15 @@ Wails v2 が 3 つのプラットフォームでベータ版としてリリー
## コントリビューター
貢献してくれた方のリストが大きくなりすぎて、readme に入りきらなくなりました!
このプロジェクトに貢献してくれた素晴らしい方々のページ
は[こちら](https://wails.io/credits#contributors)です。
このプロジェクトに貢献してくれた素晴らしい方々のページは[こちら](https://wails.io/credits#contributors)です。
## 特記事項
このプロジェクトは以下の方々の協力がなければ、実現しなかったと思います。
- [Dustin Krysak](https://wiki.ubuntu.com/bashfulrobot) - 彼のサポートとフィード
バックはとても大きいものでした
- [Serge Zaitsev](https://github.com/zserge) - Wails のウィンドウで使用してい
る[Webview](https://github.com/zserge/webview)の作者です。
- [Byron](https://github.com/bh90210) - 時には Byron が一人でこのプロジェクトを
存続させてくれたこともありました。彼の素晴らしいインプットがなければ v1 に到達
することはなかったでしょう。
- [Dustin Krysak](https://wiki.ubuntu.com/bashfulrobot) - 彼のサポートとフィードバックはとても大きいものでした。
- [Serge Zaitsev](https://github.com/zserge) - Wails のウィンドウで使用している[Webview](https://github.com/zserge/webview)の作者です
- [Byron](https://github.com/bh90210) - 時には Byron が一人でこのプロジェクトを存続させてくれたこともありました。彼の素晴らしいインプットがなければ v1 に到達することはなかったでしょう。
プロジェクトを進める際に、以下のアルバムたちも支えてくれています。
+23 -28
View File
@@ -26,8 +26,8 @@
<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://discord.gg/BrRSWTaxVK">
<img alt="Discord" src="https://dcbadge.vercel.app/api/server/BrRSWTaxVK?style=flat"/>
<a href="https://app.slack.com/client/T029RQSE6/CJ4P9F7MZ">
<img alt="Slack" src="https://img.shields.io/badge/slack-gophers%2Fwails%20-blue?logo=slack"/>
</a>
<br/>
<a href="https://github.com/wailsapp/wails/actions/workflows/build-and-test.yml" rel="nofollow">
@@ -42,8 +42,7 @@
<strong>
<samp>
[English](README.md) · [简体中文](README.zh-Hans.md) · [日本語](README.ja.md) ·
[한국어](README.ko.md)
[English](README.md) · [简体中文](README.zh-Hans.md) · [日本語](README.ja.md) · [한국어](README.ko.md)
</samp>
</strong>
@@ -58,24 +57,22 @@
- [시작하기](#시작하기)
- [스폰서](#스폰서)
- [FAQ](#faq)
- [Stargazers 성장 추세](#stargazers-성장-추세)
- [기여자](#기여자)
- [라이센스](#라이센스)
- [영감](#영감)
## 소개
Go 프로그램에 웹 인터페이스를 제공하는 전통적인 방법은 내장 웹 서버를 이용하는
것입니다. Wails는 다르게 접근합니다: Go 코드와 웹 프론트엔드를 단일 바이너리로
래핑하는 기능을 제공합니다. 프로젝트 생성, 컴파일 및 번들링을 처리하여 이를 쉽게
수행할 수 있도록 도구가 제공됩니다. 창의력을 발휘하기만 하면 됩니다!
Go 프로그램에 웹 인터페이스를 제공하는 전통적인 방법은 내장 웹 서버를 이용하는 것입니다.
Wails는 다르게 접근합니다: Go 코드와 웹 프론트엔드를 단일 바이너리로 래핑하는 기능을 제공합니다.
프로젝트 생성, 컴파일 및 번들링을 처리하여 이를 쉽게 수행할 수 있도록 도구가 제공됩니다.
창의력을 발휘하기만 하면 됩니다!
## 기능
- 백엔드에 표준 Go 사용
- 이미 익숙한 프론트엔드 기술을 사용하여 UI 구축
- 사전 구축된 템플릿을 사용하여 Go 프로그램을 위한 풍부한 프론트엔드를 빠르게 생
- 사전 구축된 템플릿을 사용하여 Go 프로그램을 위한 풍부한 프론트엔드를 빠르게 생
- Javascript에서 Go 메서드를 쉽게 호출
- Go 구조체 및 메서드에 대한 자동 생성된 Typescript 정의
- 기본 대화 및 메뉴
@@ -88,13 +85,13 @@ Go 프로그램에 웹 인터페이스를 제공하는 전통적인 방법은
### 로드맵
프로젝트 로드맵은 [여기](https://github.com/wailsapp/wails/discussions/1484)에서
프로젝트 로드맵은 [여기](https://github.com/wailsapp/wails/discussions/1484)에서
확인할 수 있습니다. 개선 요청을 하기 전에 이것을 참조하십시오.
## 시작하기
설치 지침은 [공식 웹사이트](https://wails.io/docs/gettingstarted/installation)에
있습니다.
설치 지침은
[공식 웹사이트](https://wails.io/docs/gettingstarted/installation)에 있습니다.
## 스폰서
@@ -105,23 +102,22 @@ Go 프로그램에 웹 인터페이스를 제공하는 전통적인 방법은
- 이것은 Electron의 대안인가요?
요구 사항에 따라 다릅니다. Go 프로그래머가 쉽게 가벼운 데스크톱 애플리케이션을
만들거나 기존 애플리케이션에 프론트엔드를 추가할 수 있도록 설계되었습니다.
Wails는 메뉴 및 대화 상자와 같은 기본 요소를 제공하므로 가벼운 Electron 대안으
간주될 수 있습니다.
요구 사항에 따라 다릅니다. Go 프로그래머가 쉽게 가벼운 데스크톱 애플리케이션을
만들거나 기존 애플리케이션에 프론트엔드를 추가할 수 있도록 설계되었습니다.
Wails는 메뉴 및 대화 상자와 같은 기본 요소를 제공하므로 가벼운 Electron 대안으
간주될 수 있습니다.
- 이 프로젝트는 누구를 대상으로 하나요?
서버를 생성하고 이를 보기 위해 브라우저를 열 필요 없이 HTML/JS/CSS 프런트엔드
애플리케이션과 함께 묶고자 하는 프로그래머를 대상으로 합니다.
서버를 생성하고 이를 보기 위해 브라우저를 열 필요 없이 HTML/JS/CSS 프런트엔드
애플리케이션과 함께 묶고자 하는 프로그래머를 대상으로 합니다.
- Wails 이름의 의미는 무엇인가요?
WebView를 보았을 때 저는 "내가 정말로 원하는 것은 WebView 앱을 구축하기 위한
도구를 사용하는거야. 마치 Ruby on Rails 처럼 말이야."라고 생각했습니다. 그래서
처음에는 말장난(Webview on Rails)이었습니다.
[국가](https://en.wikipedia.org/wiki/Wales)에 대한 영어 이름의 동음이의어이기
도 하여 정했습니다.
WebView를 보았을 때 저는 "내가 정말로 원하는 것은 WebView 앱을 구축하기 위한
도구를 사용하는거야. 마치 Ruby on Rails 처럼 말이야."라고 생각했습니다.
그래서 처음에는 말장난(Webview on Rails)이었습니다.
[국가](https://en.wikipedia.org/wiki/Wales)에 대한 영어 이름의 동음이의어이기도 하여 정했습니다.
## Stargazers 성장 추세
@@ -129,9 +125,8 @@ Go 프로그램에 웹 인터페이스를 제공하는 전통적인 방법은
## 기여자
기여자 목록이 추가 정보에 비해 너무 커지고 있습니다! 이 프로젝트에 기여한 모든
놀라운 사람들은 [여기](https://wails.io/credits#contributors)에 자신의 페이지를
가지고 있습니다.
기여자 목록이 추가 정보에 비해 너무 커지고 있습니다! 이 프로젝트에 기여한 모든 놀라운 사람들은
[여기](https://wails.io/credits#contributors)에 자신의 페이지를 가지고 있습니다.
## 라이센스
+20 -31
View File
@@ -24,8 +24,8 @@
<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://discord.gg/BrRSWTaxVK">
<img alt="Discord" src="https://dcbadge.vercel.app/api/server/BrRSWTaxVK?style=flat"/>
<a href="https://app.slack.com/client/T029RQSE6/CJ4P9F7MZ">
<img alt="Slack" src="https://img.shields.io/badge/slack-gophers%2Fwails%20-blue?logo=slack"/>
</a>
<br/>
<a href="https://github.com/wailsapp/wails/actions/workflows/build-and-test.yml" rel="nofollow">
@@ -40,8 +40,7 @@
<strong>
<samp>
[English](README.md) · [简体中文](README.zh-Hans.md) · [日本語](README.ja.md) ·
[한국어](README.ko.md)
[English](README.md) · [简体中文](README.zh-Hans.md) · [日本語](README.ja.md) · [한국어](README.ko.md)
</samp>
</strong>
@@ -56,18 +55,15 @@
- [Getting Started](#getting-started)
- [Sponsors](#sponsors)
- [FAQ](#faq)
- [Stargazers over time](#stargazers-over-time)
- [Contributors](#contributors)
- [License](#license)
- [Inspiration](#inspiration)
## Introduction
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 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!
## Features
@@ -86,20 +82,18 @@ bundling. All you have to do is get creative!
### Roadmap
The project roadmap may be found
[here](https://github.com/wailsapp/wails/discussions/1484). Please consult this
before open up an enhancement request.
The project roadmap may be found [here](https://github.com/wailsapp/wails/discussions/1484). Please consult
this before open up an enhancement request.
## Getting Started
The installation instructions are on the
[official website](https://wails.io/docs/gettingstarted/installation).
The installation instructions are on the [official website](https://wails.io/docs/gettingstarted/installation).
## Sponsors
This project is supported by these kind people / companies:
<img src="website/static/img/sponsors.svg" style="width:100%;max-width:800px;"/>
<p align="center">
<img src="https://wails.io/img/sponsor/jetbrains-grayscale.webp" style="width: 100px"/>
</p>
@@ -108,24 +102,20 @@ This project is supported by these kind people / companies:
- 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. Wails does offer native elements such as menus and dialogs, so
it could be considered a lightweight electron alternative.
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. Wails does offer native elements such as menus
and dialogs, so it could be considered a lightweight electron alternative.
- 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?
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.
## Stargazers over time
@@ -133,9 +123,8 @@ This project is supported by these kind people / companies:
## Contributors
The contributors list is getting too big for the readme! All the amazing people
who have contributed to this project have their own page
[here](https://wails.io/credits#contributors).
The contributors list is getting too big for the readme! All the amazing people who have contributed to this
project have their own page [here](https://wails.io/credits#contributors).
## License
+11 -21
View File
@@ -26,8 +26,8 @@
<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://discord.gg/BrRSWTaxVK">
<img alt="Discord" src="https://dcbadge.vercel.app/api/server/BrRSWTaxVK?style=flat"/>
<a href="https://app.slack.com/client/T029RQSE6/CJ4P9F7MZ">
<img alt="Slack" src="https://img.shields.io/badge/slack-gophers%2Fwails%20-blue?logo=slack"/>
</a>
<br/>
<a href="https://github.com/wailsapp/wails/actions/workflows/build-and-test.yml" rel="nofollow">
@@ -42,8 +42,7 @@
<strong>
<samp>
[English](README.md) · [简体中文](README.zh-Hans.md) · [日本語](README.ja.md) ·
[한국어](README.ko.md)
[English](README.md) · [简体中文](README.zh-Hans.md) · [日本語](README.ja.md) · [한국어](README.ko.md)
</samp>
</strong>
@@ -58,16 +57,14 @@
- [快速入门](#快速入门)
- [赞助商](#赞助商)
- [常见问题](#常见问题)
- [星星增长趋势](#星星增长趋势)
- [贡献者](#贡献者)
- [许可证](#许可证)
- [灵感](#灵感)
## 项目介绍
为 Go 程序提供 Web 界面的传统方法是通过内置 Web 服务器。Wails 提供了一种不同的方
法:它提供了将 Go 代码和 Web 前端一起打包成单个二进制文件的能力。通过提供的工具
,可以很轻松的完成项目的创建、编译和打包。你所要做的就是发挥创造力!
为 Go 程序提供 Web 界面的传统方法是通过内置 Web 服务器。Wails 提供了一种不同的方法:它提供了将 Go 代码和 Web
前端一起打包成单个二进制文件的能力。通过提供的工具,可以很轻松的完成项目的创建、编译和打包。你所要做的就是发挥创造力!
## 功能
@@ -85,8 +82,7 @@
### 路线图
项目路线图可在 [此处](https://github.com/wailsapp/wails/discussions/1484) 找到。
在提出增强请求之前请查阅此内容。
项目路线图可在 [此处](https://github.com/wailsapp/wails/discussions/1484) 找到。在提出增强请求之前请查阅此内容。
## 快速入门
@@ -102,21 +98,16 @@
- 它是 Electron 的替代品吗?
取决于您的要求。它旨在使 Go 程序员可以轻松制作轻量级桌面应用程序或在其现有应用
程序中添加前端。尽管 Wails 当前不提供对诸如菜单之类的原生元素的钩子,但将来可
能会改变。
取决于您的要求。它旨在使 Go 程序员可以轻松制作轻量级桌面应用程序或在其现有应用程序中添加前端。尽管 Wails 当前不提供对诸如菜单之类的原生元素的钩子,但将来可能会改变。
- 这个项目针对的是哪些人?
希望将 HTML / JS / CSS 前端与其应用程序捆绑在一起的程序员,而不是借助创建服务
并打开浏览器进行查看的方式。
希望将 HTML / JS / CSS 前端与其应用程序捆绑在一起的程序员,而不是借助创建服务并打开浏览器进行查看的方式。
- 名字怎么来的?
当我看到 WebView 时,我想"我真正想要的是围绕构建 WebView 应用程序工作,有点像
Rails 对于 Ruby"。因此,最初它是一个文字游戏(Webview on Rails)。碰巧也是我来
自的 [国家](https://en.wikipedia.org/wiki/Wales) 的英文名字的同音。所以就是它
了。
当我看到 WebView 时,我想"我真正想要的是围绕构建 WebView 应用程序工作,有点像 Rails 对于 Ruby"。因此,最初它是一个文字游戏(Webview on
Rails)。碰巧也是我来自的 [国家](https://en.wikipedia.org/wiki/Wales) 的英文名字的同音。所以就是它了。
## 星星增长趋势
@@ -124,8 +115,7 @@
## 贡献者
贡献者列表对于 README 文件来说太大了!所有为这个项目做出贡献的了不起的人
在[这里](https://wails.io/credits#contributors)都有自己的页面。
贡献者列表对于 README 文件来说太大了!所有为这个项目做出贡献的了不起的人在[这里](https://wails.io/credits#contributors)都有自己的页面。
## 许可证
+5 -28
View File
@@ -2,19 +2,8 @@
version: "3"
includes:
website:
taskfile: website
dir: website
v2:
taskfile: v2
dir: v2
optional: true
v3:
taskfile: v3
dir: v3
optional: true
vars:
GREETING: Hello, World!
tasks:
contributors:check:
@@ -29,19 +18,7 @@ tasks:
cmds:
- npx -y all-contributors-cli generate
format:md:
release:
dir: v2/tools/release
cmds:
- npx prettier --write "**/*.md"
format:
cmds:
- task: format:md
format-all-md:
cmds:
- task: format:md
- task: website:format:md
- task: v2:format:md
# - task: v2:website:format
- task: v3:format:md
# - task: v3:website:format:md
- go run release.go
+174
View File
@@ -0,0 +1,174 @@
package wails
import (
"os"
"syscall"
"github.com/syossan27/tebata"
"github.com/wailsapp/wails/cmd"
"github.com/wailsapp/wails/lib/binding"
"github.com/wailsapp/wails/lib/event"
"github.com/wailsapp/wails/lib/interfaces"
"github.com/wailsapp/wails/lib/ipc"
"github.com/wailsapp/wails/lib/logger"
"github.com/wailsapp/wails/lib/renderer"
wailsruntime "github.com/wailsapp/wails/runtime"
)
// -------------------------------- Compile time Flags ------------------------------
// BuildMode indicates what mode we are in
var BuildMode = cmd.BuildModeProd
// Runtime is the Go Runtime struct
type Runtime = wailsruntime.Runtime
// Store is a state store used for syncing with
// the front end
type Store = wailsruntime.Store
// CustomLogger is a specialised logger
type CustomLogger = logger.CustomLogger
// ----------------------------------------------------------------------------------
// App defines the main application struct
type App struct {
config *AppConfig // The Application configuration object
cli *cmd.Cli // In debug mode, we have a cli
renderer interfaces.Renderer // The renderer is what we will render the app to
logLevel string // The log level of the app
ipc interfaces.IPCManager // Handles the IPC calls
log *logger.CustomLogger // Logger
bindingManager interfaces.BindingManager // Handles binding of Go code to renderer
eventManager interfaces.EventManager // Handles all the events
runtime interfaces.Runtime // The runtime object for registered structs
}
// CreateApp creates the application window with the given configuration
// If none given, the defaults are used
func CreateApp(optionalConfig ...*AppConfig) *App {
var userConfig *AppConfig
if len(optionalConfig) > 0 {
userConfig = optionalConfig[0]
}
result := &App{
logLevel: "debug",
renderer: renderer.NewWebView(),
ipc: ipc.NewManager(),
bindingManager: binding.NewManager(),
eventManager: event.NewManager(),
log: logger.NewCustomLogger("App"),
}
appconfig, err := newConfig(userConfig)
if err != nil {
result.log.Fatalf("Cannot use custom HTML: %s", err.Error())
}
result.config = appconfig
// Set up the CLI if not in release mode
if BuildMode != cmd.BuildModeProd {
result.cli = result.setupCli()
} else {
// Disable Inspector in release mode
result.config.DisableInspector = true
}
// Platform specific init
platformInit()
return result
}
// Run the app
func (a *App) Run() error {
if BuildMode != cmd.BuildModeProd {
return a.cli.Run()
}
a.logLevel = "error"
err := a.start()
if err != nil {
a.log.Error(err.Error())
}
return err
}
func (a *App) start() error {
// Set the log level
logger.SetLogLevel(a.logLevel)
// Log starup
a.log.Info("Starting")
// Check if we are to run in bridge mode
if BuildMode == cmd.BuildModeBridge {
a.renderer = renderer.NewBridge()
}
// Initialise the renderer
err := a.renderer.Initialise(a.config, a.ipc, a.eventManager)
if err != nil {
return err
}
// Start signal handler
t := tebata.New(os.Interrupt, os.Kill, syscall.SIGTERM, syscall.SIGINT, syscall.SIGKILL)
t.Reserve(func() {
a.log.Debug("SIGNAL CAUGHT! Starting Shutdown")
a.renderer.Close()
})
// Start event manager and give it our renderer
a.eventManager.Start(a.renderer)
// Start the IPC Manager and give it the event manager and binding manager
a.ipc.Start(a.eventManager, a.bindingManager)
// Create the runtime
a.runtime = wailsruntime.NewRuntime(a.eventManager, a.renderer)
// Start binding manager and give it our renderer
err = a.bindingManager.Start(a.renderer, a.runtime)
if err != nil {
return err
}
// Defer the shutdown
defer a.shutdown()
// Run the renderer
err = a.renderer.Run()
if err != nil {
return err
}
return nil
}
// shutdown the app
func (a *App) shutdown() {
// Make sure this is only called once
a.log.Debug("Shutting down")
// Shutdown Binding Manager
a.bindingManager.Shutdown()
// Shutdown IPC Manager
a.ipc.Shutdown()
// Shutdown Event Manager
a.eventManager.Shutdown()
a.log.Debug("Cleanly Shutdown")
}
// Bind allows the user to bind the given object
// with the application
func (a *App) Bind(object interface{}) {
a.bindingManager.Bind(object)
}
+8
View File
@@ -0,0 +1,8 @@
//go:build linux || darwin || !windows
// +build linux darwin !windows
package wails
func platformInit() {
}

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