Compare commits

..

33 Commits

Author SHA1 Message Date
Lea Anthony ee59205804 Add more documentation. 2024-03-31 20:48:25 +11:00
Lea Anthony bbcf387ed3 Add more documentation. 2024-03-31 20:43:32 +11:00
Lea Anthony eb69031304 Add new bindings guide.
Move to docker building.
Update README.
2024-03-31 16:19:00 +11:00
Lea Anthony 238b9ede78 Update plugin example 2024-03-26 21:11:35 +11:00
Lea Anthony c7bd39abc7 Update plugin example 2024-03-26 21:02:26 +11:00
Lea Anthony 85b1f909a7 Plugin updates 2024-03-26 20:56:58 +11:00
Calle Gustafsson 675f502802 wails3 alpha windows: fix crash when systray icon is clicked without an attached window (#3271)
* Fix: #3270

removes an unnessecary check which returned a double nil wich in turned causes a crash if systray doesn't have an attached window.

* Add iconIsInFlyout method to systray_windows

and use it to determine if the icon is in the
flyout or not when positioning an attached window.

* optimize the windows systray window positioning

we only need to get the systray bounds if
the icon is in the flyout area.

* Use correct behavior for placing the window

if the systray icon is visible in the taskbar the
window should be centered on the systray icon
otherwise the icon is in a flyout are and the
window should be placed in the corner.

Added comments to explain placement logic

* consistent placing of systray menu on right vs left click

* add PR info in changelog

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2024-03-24 17:04:40 +11:00
abichinger db5553ec75 [linux] fix closing of custom context menu #3329 (#3330)
* [linux] fix closing of custom context menu

* Update changelog

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2024-03-24 16:51:45 +11:00
Fabio Massaioli 413191411f Remove class fields (#3333) 2024-03-24 16:42:41 +11:00
Fabio Massaioli 45b2681dfc [v3] Fix binding generator output and import paths (#3334)
* Fix relative import path computation

* Fix models output path

* Add option to generate bindings using bundled runtime

* Update binding example

* Fix testdata

* Update changelog

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2024-03-22 21:18:04 +11:00
Travis McLane f0986a6441 chore: version.txt == v3.0.0-alpha.4 2024-03-21 14:16:39 -05:00
stffabi e6645136f9 [windows] Set HiDPI size scaling before setting up chromium 2024-03-21 09:42:23 +01:00
stffabi 189820135a [windows] Use options for window name 2024-03-21 09:42:23 +01:00
Lea Anthony f19cc528d4 Fix context menu example 2024-03-20 21:18:46 +11:00
Fabio Massaioli 2b9891da2c [v3] Update and fix runtime JS API (#3295)
* Cleanup bundled runtime entry point

* Fix JS representation of Screen struct

* Expose IsFocused method in Window interface

* Update JS window API

* Fix cleanup of WML listeners

* Bundle runtime as ES module

* Update runtime dependencies

* Update runtime types and events

* Update bundled runtime

* Update changelog

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2024-03-20 20:30:14 +11:00
Lea Anthony a5c843f5c6 Disable social plugin in docs 2024-03-20 08:32:24 +11:00
Lea Anthony aa8e74539c Rebuild docs 2024-03-20 07:52:31 +11:00
Lea Anthony d1968489b7 Don't build server plugin 2024-03-20 07:43:27 +11:00
Lea Anthony 33946a7aac Don't build server plugin 2024-03-19 21:56:54 +11:00
Lea Anthony ddf74d3793 Update go version in pipelines 2024-03-19 21:45:52 +11:00
Lea Anthony 1b3b8178ec Update node version in pipelines
(cherry picked from commit c451adc424)
2024-03-19 21:35:38 +11:00
Lea Anthony bf3bdadd90 Update changelog 2024-03-19 21:07:14 +11:00
Lea Anthony aba82cc527 Update system.Environment 2024-03-19 20:37:03 +11:00
atterpac e92994d2e7 Refresh Version Update (CPU Thread Leak Fix) (#3322)
* Fix appimage file sourcing

Add findGTKFiles to source webkit files for appimage generation

s

* Update refresh version to fix CPU usage

s

* update changelong

* refresh version up

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2024-03-19 08:41:47 +11:00
Lea Anthony 26d9b3a832 Update docs config 2024-03-19 08:36:57 +11:00
Lea Anthony bfabaa50bc Add Cymraeg 2024-03-18 21:52:39 +11:00
Lea Anthony 7fcd172387 Update first steps 2024-03-18 20:57:56 +11:00
Lea Anthony c5bb4c7405 Refactor docs 2024-03-18 20:47:33 +11:00
Lea Anthony 98aff7778e Support ProgramName on linux 2024-03-17 21:09:20 +11:00
Lea Anthony 4ab6352504 Set default size for linux windows 2024-03-17 20:57:46 +11:00
Lea Anthony b325381ca0 Normalise app/webview options
Update deps
2024-03-17 20:57:46 +11:00
Lea Anthony bc0a9b2e52 Add BundledAssetFileServer for bundled /wails/runtime.js. Update examples. 2024-03-17 15:08:30 +11:00
atterpac 75c0236a04 [v3] Fix Dev mode <defunct> processes (#3320)
* Fix appimage file sourcing

Add findGTKFiles to source webkit files for appimage generation

s

* Update refresh version to fix CPU usage

s

* update changelong
2024-03-17 14:17:21 +11:00
265 changed files with 11514 additions and 17278 deletions
+3 -3
View File
@@ -15,7 +15,7 @@ jobs:
strategy:
matrix:
os: [windows-latest, macos-latest, ubuntu-latest]
go-version: [1.21]
go-version: [1.22]
steps:
- name: Checkout code
@@ -58,7 +58,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [18.x]
node-version: [20.x]
steps:
- name: Checkout code
@@ -100,7 +100,7 @@ jobs:
vanilla,
vanilla-ts,
]
go-version: [1.21]
go-version: [1.22]
steps:
- name: Checkout
uses: actions/checkout@v3
+3 -3
View File
@@ -13,7 +13,7 @@ jobs:
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest, macos-11]
go-version: ['1.20']
go-version: ['1.22']
steps:
- name: Checkout code
@@ -47,7 +47,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [16.x]
node-version: [20.x]
steps:
- name: Checkout code
@@ -90,7 +90,7 @@ jobs:
vanilla-ts,
plain,
]
go-version: ['1.20']
go-version: ['1.22']
steps:
- name: Checkout
uses: actions/checkout@v4
+1 -1
View File
@@ -16,7 +16,7 @@ jobs:
- name: Set Node
uses: actions/setup-node@v2
with:
node-version: 16.x
node-version: 20.x
- name: Update Sponsors
run: cd scripts/sponsors && chmod 755 ./generate-sponsor-image.sh && ./generate-sponsor-image.sh
+1 -1
View File
@@ -56,7 +56,7 @@ jobs:
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
go-version: ['1.20']
go-version: ['1.22']
steps:
- name: Checkout code
@@ -15,7 +15,7 @@ jobs:
- name: Setup Nodejs
uses: actions/setup-node@v2
with:
node-version: 18.x
node-version: 20.x
- name: Install Task
uses: arduino/setup-task@v1
@@ -25,7 +25,7 @@ jobs:
- name: Setup Nodejs
uses: actions/setup-node@v2
with:
node-version: 18.x
node-version: 20.x
- name: Setup Task
uses: arduino/setup-task@v1
+5
View File
@@ -0,0 +1,5 @@
FROM squidfunk/mkdocs-material
RUN pip install mkdocs-macros-plugin
RUN pip install mkdocs-glightbox
RUN pip install mkdocs-table-reader-plugin
RUN pip install mkdocs-static-i18n
+23 -26
View File
@@ -5,39 +5,36 @@ This is the documentation for Wails v3. It is currently a work in progress.
If you do not wish to build it locally, it is available online at
[https://wailsapp.github.io/wails/](https://wailsapp.github.io/wails/).
## Recommended Setup Steps
## Setup Steps
Install the wails3 CLI if you haven't already:
1. Install the wails3 CLI if you haven't already:
```shell
go install github.com/wailsapp/wails/v3/cmd/wails3@latest
```
```shell
git clone https://github.com/wailsapp/wails.git
cd wails
git checkout v3-alpha
cd v3/cmd/wails3
go install
```
2. Install [docker](https://www.docker.com)
3. Run the following command to build the docker container:
The documentation uses mkdocs, so you will need to install
[Python](https://www.python.org/). Once installed, you can setup the
documentation by running the following command:
```shell
wails3 task docs:setup
```
4. Serve the documentation locally:
```bash
wails3 task docs:setup
```
```shell
wails3 task docs:serve
```
This will install the required dependencies for you.
5. Open your browser to [http://127.0.0.1:8000](http://127.0.0.1:8000)
If you have installed the wails3 CLI, you can run the following command to build
the documentation and serve it locally:
6. For a complete build, run:
```bash
wails3 task docs:serve
```
### Manual Setup
To install manually, you will need to do the following:
- Install [Python](https://www.python.org/)
- Run `pip install -r requirements.txt` to install the required dependencies
- Run `mkdocs serve` to serve the documentation locally
- Run `mkdocs build` to build the documentation
```shell
wails3 task docs:build
```
## Contributing
+45 -9
View File
@@ -7,10 +7,10 @@ tasks:
setup:
summary: Setup the project
preconditions:
- sh: python{{exeExt}} --version
msg: "Looks like Python isn't installed. Python is required to build the documentation: https://www.python.org/downloads/"
- sh: docker version
msg: "Looks like docker isn't installed. Visit https://www.docker.com to download and install."
cmds:
- python -m pip install -r requirements.txt --user
- docker build -t squidfunk/mkdocs-material .
setup:insiders:
summary: Setup the project (insiders)
@@ -31,18 +31,54 @@ tasks:
build:
summary: Builds the documentation
preconditions:
- sh: mkdocs --version
msg: "Looks like mkdocs isn't installed. Run `wails3 task setup` or `task setup` in the documentation directory to install it."
- sh: docker version
msg: "Looks like docker isn't installed. Visit https://www.docker.com to download and install."
cmds:
- mkdocs build
- build:windows
- build:unix
build:windows:
summary: Builds the documentation (Windows)
internal: true
platforms:
- windows
cmds:
- docker run --rm -v "%cd%":/docs squidfunk/mkdocs-material build
build:unix:
summary: Builds the documentation (Unix)
internal: true
platforms:
- darwin
- linux
cmds:
- docker run --rm -v "$(pwd)":/docs squidfunk/mkdocs-material build
serve:
summary: Builds the documentation and serves it locally
preconditions:
- sh: mkdocs --version
msg: "Looks like mkdocs isn't installed. Run `wails3 task setup` or `task setup` in the documentation directory to install it."
- sh: docker version
msg: "Looks like docker isn't installed. Visit https://www.docker.com to download and install."
cmds:
- mkdocs serve
- task: serve:windows
- task: serve:unix
serve:windows:
summary: Builds the documentation and serves it locally (Windows)
internal: true
platforms:
- windows
cmds:
- docker run --rm -it -p 8000:8000 -v "%cd%":/docs squidfunk/mkdocs-material
serve:unix:
summary: Builds the documentation and serves it locally (Unix)
internal: true
platforms:
- darwin
- linux
cmds:
- docker run --rm -it -p 8000:8000 -v "$(pwd)":/docs squidfunk/mkdocs-material
serve:insiders:
summary: Builds the documentation and serves it locally
+141
View File
@@ -0,0 +1,141 @@
# Cais
Mae'r API cais yn cynorthwyo i greu cais gan ddefnyddio fframwaith Wails.
### Newydd
API: `New(appOptions Options) *App`
`New(appOptions Options)` yn creu cais newydd gan ddefnyddio'r opsiynau cais a ddarperir. Mae'n cymhwyso gwerthoedd rhagosodedig ar gyfer opsiynau heb eu pennu, yn eu cyfuno â'r rhai a ddarparwyd, yn eu cychwyn a'n dychwelyd enghraifft o'r cais.
Os bydd gwall yn ystod y cychwyn, caiff y cais ei atal gyda'r neges gwall a ddarperir.
Dylid nodi, os oes enghraifft gyffredinol o gais yn bodoli eisoes, y bydd yr enghraifft honno'n cael ei dychwelyd yn hytrach na chreu un newydd.
```go title="main.go" hl_lines="6-9"
package main
import "github.com/wailsapp/wails/v3/pkg/application"
func main() {
app := application.New(application.Options{
Name: "Demo Ffenestr Gweddarlunydd",
// Opsiynau eraill
})
// Gweddill y cais
}
```
### Cael
`Get()` yn dychwelyd yr enghraifft gyffredinol o'r cais. Mae'n ddefnyddiol pan fydd angen mynediad i'r cais o wahanol rannau o'ch cod.
```go
// Cael enghraifft o'r cais
app := application.Get()
```
### Galluoedd
API: `Capabilities() capabilities.Capabilities`
`Capabilities()` yn adfer map o'r galluoedd sydd gan y cais ar hyn o bryd. Gall y galluoedd fod ynghylch y nodweddion gwahanol y system weithredu sy'n darparu, fel nodweddion gweddarlunydd.
```go
// Cael galluoedd y cais
capabilities := app.Capabilities()
if capabilities.HasNativeDrag {
// Gwneud rhywbeth
}
```
### GetPID
API: `GetPID() int`
`GetPID()` yn dychwelyd ID y Broses y cais.
```go
pid := app.GetPID()
```
### Rhedeg
API: `Run() error`
`Run()` yn dechrau gweithredu'r cais a'i gydrannau.
```go
app := application.New(application.Options{
//options
})
// Rhedeg y cais
err := application.Run()
if err != nil {
// Ymdrin â'r gwall
}
```
### Gadael
API: `Quit()`
`Quit()` yn gadael y cais trwy ddinistrio ffenestri a rhai cydrannau eraill o bosibl.
```go
// Gadael y cais
app.Quit()
```
### AydunDdyryslyd
API: `IsDarkMode() bool`
`IsDarkMode()` yn gwirio a yw'r cais yn rhedeg mewn modd tywyll. Mae'n dychwelyd gwerth boolean yn nodi a yw'r modd tywyll wedi'i alluogi.
```go
// Gwiriwch a yw'r modd tywyll wedi'i alluogi
if app.IsDarkMode() {
// Gwneud rhywbeth
}
```
### Cuddio
API: `Hide()`
`Hide()` yn cuddio ffenestr y cais.
```go
// Cuddio ffenestr y cais
app.Hide()
```
### Dangos
API: `Show()`
`Show()` yn dangos ffenestr y cais.
```go
// Dangos ffenestr y cais
app.Show()
```
--8<--
./docs/cy/API/application_window.md
./docs/cy/API/application_menu.md
./docs/cy/API/application_dialogs.md
./docs/cy/API/application_events.md
./docs/cy/API/application_screens.md
--8<--
## Opsiynau
```go title="pkg/application/application_options.go"
--8<--
../v3/pkg/application/application_options.go
--8<--
```
@@ -0,0 +1,67 @@
### Dangos Deialog Ynghylch
API: `ShowAboutDialog()`
Mae `ShowAboutDialog()` yn dangos blwch deialog "Ynghylch". Gall ddangos enw'r
cymhwysiad, disgrifiad ac eicon.
```go
// Dangos y deialog ynghylch
app.ShowAboutDialog()
```
### Gwybodaeth
API: `InfoDialog()`
Mae `InfoDialog()` yn creu ac yn dychwelyd esiampl newydd o `MessageDialog` gyda
`InfoDialogType`. Defnyddir y deialog hon fel arfer i ddangos negeseuon
gwybodaeth i'r defnyddiwr.
### Cwestiwn
API: `QuestionDialog()`
Mae `QuestionDialog()` yn creu ac yn dychwelyd esiampl newydd o `MessageDialog`
gyda `QuestionDialogType`. Defnyddir y deialog hon yn aml i ofyn cwestiwn i'r
defnyddiwr a disgwyl ymateb.
### Rhybudd
API: `WarningDialog()`
Mae `WarningDialog()` yn creu ac yn dychwelyd esiampl newydd o `MessageDialog`
gyda `WarningDialogType`. Fel y mae'r enw yn awgrymu, defnyddir y deialog hon yn
bennaf i ddangos negeseuon rhybudd i'r defnyddiwr.
### Gwall
API: `ErrorDialog()`
Mae `ErrorDialog()` yn creu ac yn dychwelyd esiampl newydd o `MessageDialog` gyda
`ErrorDialogType`. Cynlluniwyd y deialog hon i'w defnyddio pan fydd angen
dangos neges gwall i'r defnyddiwr.
### Agor Ffeil
API: `OpenFileDialog()`
Mae `OpenFileDialog()` yn creu ac yn dychwelyd esiampl newydd o
`OpenFileDialogStruct`. Mae'r deialog hon yn annog y defnyddiwr i ddewis un neu
ragor o ffeiliau o'u system ffeiliau.
### Cadw Ffeil
API: `SaveFileDialog()`
Mae `SaveFileDialog()` yn creu ac yn dychwelyd esiampl newydd o
`SaveFileDialogStruct`. Mae'r deialog hon yn annog y defnyddiwr i ddewis lleoliad
yn eu system ffeiliau lle y dylid cadw ffeil.
### Agor Cyfeiriadur
API: `OpenDirectoryDialog()`
Mae `OpenDirectoryDialog()` yn creu ac yn dychwelyd esiampl newydd o
`MessageDialog` gyda `OpenDirectoryDialogType`. Mae'r deialog hon yn galluogi'r
defnyddiwr i ddewis cyfeiriadur o'u system ffeiliau.
@@ -0,0 +1,13 @@
### Ar
API:
`Ar(eventType digwyddiadau.DdigwyddiadweithgangeningApplicationEventType, atebydd func(digwyddiad *Digwyddiad)) func()`
Mae `Ar()` yn cofrestru gwrandäwr digwyddiad ar gyfer digwyddiadau cymhwysiad penodol. Bydd y swyddogaeth atebydd a ddarperir yn cael ei sbarduno pan fydd y digwyddiad cysylltiedig yn digwydd. Mae'r swyddogaeth yn dychwelyd swyddogaeth y gellir ei galw i dynnu'r gwrandäwr.
### CofrestruArgraffwyr
API:
`CofrestruArgraffwyr(eventType digwyddiadau.DdigwyddiadweithgangeningApplicationEventType, atebydd func(digwyddiad *Digwyddiad)) func()`
Mae `CofrestruArgraffwyr()` yn cofrestru atebydd i'w redeg fel crocen yn ystod digwyddiadau penodol. Caiff y crocenau hyn eu rhedeg cyn gwrandawyr sy'n gysylltiedig ag `Ar()`. Mae'r swyddogaeth yn dychwelyd swyddogaeth y gellir ei galw i dynnu'r bâs.
@@ -0,0 +1,27 @@
### RegisterContextMenu
API: `RegisterContextMenu(name string, menu *Menu)`
Mae `RegisterContextMenu()` yn cofrestru dewislen cyd-destun gyda enw penodol. Gellir defnyddio'r dewislen hon yn ddiweddarach yn yr ap.
```go
// Creu dewislen newydd
ctxmenu := app.NewMenu()
// Cofrestru'r dewislen fel dewislen cyd-destun
app.RegisterContextMenu("MyContextMenu", ctxmenu)
```
### SetMenu
API: `SetMenu(menu *Menu)`
Mae `SetMenu()` yn gosod y ddewislen ar gyfer yr ap. Ar Mac, bydd hyn yn fod y ddewislen fyd-eang. Ar gyfer Windows a Linux, bydd hyn yn fod y ddewislen ddiofyn ar gyfer unrhyw ffenestr newydd a grëir.
```go
// Creu dewislen newydd
menu := app.NewMenu()
// Gosod y ddewislen ar gyfer yr ap
app.SetMenu(menu)
```
@@ -0,0 +1,13 @@
### GetPrimaryScreen
API: `GetPrimaryScreen() (*Sgrin, error)`
Mae `GetPrimaryScreen()` yn dychwelyd y sgrin brif y system.
### GetScreens
API: `GetScreens() ([]*Sgrin, error)`
Mae `GetScreens()` yn dychwelyd gwybodaeth am bob sgrin sydd wedi'i chysylltu â'r system.
Dyma grynodeb byr o'r dulliau allforio yn y `App` strwythur a ddarparwyd. Cofiwch, ar gyfer mwy o swyddogaethau neu ystyriaethau manwl, cyfeiriwch at y cod Go gwirioneddol neu ddogfennaeth fewnol bellach.
@@ -0,0 +1,64 @@
Dyma'r testun wedi'i gyfieithu i'r Gymraeg:
### NewWebviewWindow
API: `NewWebviewWindow() *WebviewWindow`
Mae `NewWebviewWindow()` yn creu ffenestr Webview newydd gyda'r opsiynau rhagosodedig, ac yn ei dychwelyd.
```go
// Creu ffenestr webview newydd
window := app.NewWebviewWindow()
```
### NewWebviewWindowWithOptions
API:
`NewWebviewWindowWithOptions(windowOptions WebviewWindowOptions) *WebviewWindow`
Mae `NewWebviewWindowWithOptions()` yn creu ffenestr webview newydd gydag opsiynau custom. Caiff y ffenestr newydd ei ychwanegu at fap o ffenestri a reolir gan y cymhwysiad.
```go
// Creu ffenestr webview newydd gydag opsiynau custom
window := app.NewWebviewWindowWithOptions(WebviewWindowOptions{
Name: "Main",
Title: "Fy Ffenestr",
Width: 800,
Height: 600,
})
```
### OnWindowCreation
API: `OnWindowCreation(callback func(window *WebviewWindow))`
Mae `OnWindowCreation()` yn cofrestru ffwythiant alw-nôl i'w alw pan grëir ffenestr.
```go
// Cofrestru ffwythiant alw-nôl i'w alw pan grëir ffenestr
app.OnWindowCreation(func(window *WebviewWindow) {
// Gwneud rhywbeth
})
```
### GetWindowByName
API: `GetWindowByName(name string) *WebviewWindow`
Mae `GetWindowByName()` yn nôl ac yn dychwelyd ffenestr gyda enw penodol.
```go
// Cael ffenestr drwy ei henw
window := app.GetWindowByName("Main")
```
### CurrentWindow
API: `CurrentWindow() *WebviewWindow`
Mae `CurrentWindow()` yn nôl ac yn dychwelyd cyfeiriad at y ffenestr weithredol yn y cymhwysiad. Os nad oes ffenestr, mae'n dychwelyd nil.
```go
// Cael y ffenestr gyfredol
window := app.CurrentWindow()
```
+50
View File
@@ -0,0 +1,50 @@
# Prif Swyddogaethau Trywydd
Mae'r dulliau hyn yn swyddogaethau cymorth i redeg cod ar y prif drywydd. Mae hyn yn
ofynnol pan fyddwch am redeg cod cyfaddas ar y llwyfan UI.
### InvokeSync
API: `InvokeSync(fn func())`
Mae'r swyddogaeth hon yn rhedeg y swyddogaeth a drosglwyddwyd (`fn`) yn ddilynebol. Mae'n defnyddio WaitGroup
(`wg`) i sicrhau bod y prif drywydd yn aros i `fn` swyddogaeth orffen
cyn iddo barhau. Os bydd panig yn digwydd o fewn `fn`, bydd yn cael ei drosglwyddo i'r
swyddogaeth trin panig `PanicHandler`, a ddiffinnir yn opsiynau'r cymhwysiad.
### InvokeSyncWithResult
API: `InvokeSyncWithResult[T any](fn func() T) (res T)`
Mae'r swyddogaeth hon yn gweithio'n debyg i `InvokeSync(fn func())`, fodd bynnag, mae'n rhoi
canlyniad. Defnyddiwch hyn ar gyfer galw unrhyw swyddogaeth gyda un canlyniad yn unig.
### InvokeSyncWithError
API: `InvokeSyncWithError(fn func() error) (err error)`
Mae'r swyddogaeth hon yn rhedeg `fn` yn ddilynebol ac yn dychwelyd unrhyw wall a gynhyrchir gan `fn`.
Sylwch y bydd y swyddogaeth hon yn adfer o banig os bydd un yn digwydd yn ystod
gweithrediad `fn`.
### InvokeSyncWithResultAndError
API:
`InvokeSyncWithResultAndError[T any](fn func() (T, error)) (res T, err error)`
Mae'r swyddogaeth hon yn rhedeg `fn` yn ddilynebol ac yn dychwelyd canlyniad o fath `T` a
gwall.
### InvokeAsync
API: `InvokeAsync(fn func())`
Mae'r swyddogaeth hon yn rhedeg `fn` yn asyng. Mae'n rhedeg y swyddogaeth a roddir ar y
prif drywydd. Os bydd panig yn digwydd o fewn `fn`, bydd yn cael ei drosglwyddo i'r
swyddogaeth trin panig `PanicHandler`, a ddiffinnir yn opsiynau'r cymhwysiad.
---
_Sylw_: Bydd y swyddogaethau hyn yn rhwystro gweithrediad nes bod `fn` wedi gorffen. Mae'n
hanfodol sicrhau nad yw `fn` yn rhwystro. Os bydd angen i chi redeg swyddogaeth sy'n
rhwystro, defnyddiwch `InvokeAsync` yn lle.
+73
View File
@@ -0,0 +1,73 @@
# Dewislen
Gellir creu a chynnwys dewislenni yn y rhaglen. Gellir eu defnyddio i greu
dewislenni cyd-destun, dwylo system a dewislenni rhaglen.
I greu dewislen newydd, galwch:
```go
// Creu dewislen newydd
dewislen := app.NewMenu()
```
Mae'r gweithrediadau canlynol ar gael ar y `Dewislen` math:
### Ychwanegu
API: `Ychwanegu(label string) *EitemDewislen`
Mae'r dull hwn yn cymryd `label` o fath `string` fel mewnbwn ac yn ychwanegu
`EitemDewislen` newydd gyda'r label a roddir at y ddewislen. Mae'n dychwelyd yr
`EitemDewislen` a ychwanegwyd.
### YchwaneguSeparwr
API: `YchwaneguSeparwr()`
Mae'r dull hwn yn ychwanegu `EitemDewislen` gwahanol newydd at y ddewislen.
### YchwaneguBlwch
API: `YchwaneguBlwch(label string, galluogedig bool) *EitemDewislen`
Mae'r dull hwn yn cymryd `label` o fath `string` a `galluogedig` o fath `bool`
fel mewnbwn ac yn ychwanegu `EitemDewislen` blwch ticio newydd gyda'r label a'r
cyflwr galluogedig a roddir at y ddewislen. Mae'n dychwelyd yr `EitemDewislen`
a ychwanegwyd.
### YchwaneguRadio
API: `YchwaneguRadio(label string, galluogedig bool) *EitemDewislen`
Mae'r dull hwn yn cymryd `label` o fath `string` a `galluogedig` o fath `bool`
fel mewnbwn ac yn ychwanegu `EitemDewislen` radio newydd gyda'r label a'r
cyflwr galluogedig a roddir at y ddewislen. Mae'n dychwelyd yr `EitemDewislen`
a ychwanegwyd.
### Diweddaru
API: `Diweddaru()`
Mae'r dull hwn yn prosesu unrhyw grwpiau radio ac yn diweddaru'r ddewislen os
na chaiff y rhyngwyneb dewislen ei gychwyn.
### YchwaneguIsddewislen
API: `YchwaneguIsddewislen(s string) *Dewislen`
Mae'r dull hwn yn cymryd `s` o fath `string` fel mewnbwn ac yn ychwanegu
`EitemDewislen` isddewislen newydd gyda'r label a roddir at y ddewislen. Mae'n
dychwelyd yr isddewislen a ychwanegwyd.
### YchwaneguRôl
API: `YchwaneguRôl(rôl Rôl) *Dewislen`
Mae'r dull hwn yn cymryd `rôl` o fath `Rôl` fel mewnbwn, yn ei ychwanegu at y
ddewislen os nad yw'n `nil` ac yn dychwelyd y `Dewislen`.
### SetLabel
API: `SetLabel(label string)`
Mae'r dull hwn yn gosod `label` y `Dewislen`.
+104
View File
@@ -0,0 +1,104 @@
# Ardal Hysbysu
Mae'r ardal hysbysu yn cynnwys ardal hysbysu ar amgylchedd bwrdd gwaith, a all
gynnwys eiconau o'r rhaglenni sy'n rhedeg ar hyn o bryd a hysbysiadau system
penodol.
Rydych yn creu ardal hysbysu trwy alw `app.NewSystemTray()`:
```go
// Creu ardal hysbysu newydd
tray := app.NewSystemTray()
```
Mae'r dulliau canlynol ar gael ar y `SystemTray` math:
### SetLabel
API: `SetLabel(label string)`
Mae'r dull `SetLabel` yn gosod label yr ardal hysbysu.
### Label
API: `Label() string`
Mae'r dull `Label` yn adfer label yr ardal hysbysu.
### PositionWindow
API: `PositionWindow(*WebviewWindow, offset int) error`
Mae'r dull `PositionWindow` yn galw'r dulliau `AttachWindow` a `WindowOffset`.
### SetIcon
API: `SetIcon(icon []byte) *SystemTray`
Mae'r dull `SetIcon` yn gosod eicon yr ardal hysbysu system.
### SetDarkModeIcon
API: `SetDarkModeIcon(icon []byte) *SystemTray`
Mae'r dull `SetDarkModeIcon` yn gosod eicon yr ardal hysbysu system pan mewn modd tywyll.
### SetMenu
API: `SetMenu(menu *Menu) *SystemTray`
Mae'r dull `SetMenu` yn gosod dewislen yr ardal hysbysu.
### Destroy
API: `Destroy()`
Mae'r dull `Destroy` yn dinistrio'r enghraifft ardal hysbysu.
### OnClick
API: `OnClick(handler func()) *SystemTray`
Mae'r dull `OnClick` yn gosod y swyddogaeth i'w gweithredu pan fo'r eicon ardal hysbysu wedi'i glicio.
### OnRightClick
API: `OnRightClick(handler func()) *SystemTray`
Mae'r dull `OnRightClick` yn gosod y swyddogaeth i'w gweithredu pan fo'r eicon ardal hysbysu wedi'i glicio â'r dde.
### OnDoubleClick
API: `OnDoubleClick(handler func()) *SystemTray`
Mae'r dull `OnDoubleClick` yn gosod y swyddogaeth i'w gweithredu pan fo'r eicon ardal hysbysu wedi'i glicio ddwywaith.
### OnRightDoubleClick
API: `OnRightDoubleClick(handler func()) *SystemTray`
Mae'r dull `OnRightDoubleClick` yn gosod y swyddogaeth i'w gweithredu pan fo'r eicon ardal hysbysu wedi'i glicio ddwywaith â'r dde.
### AttachWindow
API: `AttachWindow(window *WebviewWindow) *SystemTray`
Mae'r dull `AttachWindow` yn atodi ffenestr i'r ardal hysbysu system. Bydd y ffenestr yn cael ei dangos pan fo'r eicon ardal hysbysu wedi'i glicio.
### WindowOffset
API: `WindowOffset(offset int) *SystemTray`
Mae'r dull `WindowOffset` yn gosod y bwlch mewn picselau rhwng yr ardal hysbysu system a'r ffenestr.
### WindowDebounce
API: `WindowDebounce(debounce time.Duration) *SystemTray`
Mae'r dull `WindowDebounce` yn gosod amser diddymu. Yng nghyd-destun Windows, defnyddir hyn i bennu faint o amser i aros cyn ymateb i ddigwyddiad clic llygoden i fyny ar yr eicon hysbysu.
### OpenMenu
API: `OpenMenu()`
Mae'r dull `OpenMenu` yn agor y ddewislen sy'n gysylltiedig â'r ardal hysbysu system.
+116
View File
@@ -0,0 +1,116 @@
# Ffenestr
I greu ffenestr, defnyddiwch
[Application.NewWebviewWindow](application.md#newwebviewwindow) neu
[Application.NewWebviewWindowWithOptions](application.md#newwebviewwindowwithoptions).
Mae'r cyntaf yn creu ffenestr gyda nodweddion rhagosodedig, tra bod yr olaf yn
caniatáu i chi bennu opsiynau wedi'u haddasu.
Mae'r dulliau hyn yn galladwy ar y gwrthrych WebviewWindow a ddychwelir:
### SetTitle
API: `SetTitle(teitl string) *WebviewWindow`
Mae'r dull hwn yn diweddaru teitl y ffenestr i'r llinyn a ddarperir. Mae'n dychwelyd
y gwrthrych WebviewWindow, gan ganiatáu i ddulliau gael eu cadwyn.
### Enw
API: `Enw() string`
Mae'r swyddogaeth hon yn dychwelyd enw'r WebviewWindow.
### SetSize
API: `SetSize(lled, uchder int) *WebviewWindow`
Mae'r dull hwn yn gosod maint y WebviewWindow i'r lled a'r uchder a ddarperir. Os
yw'r dimensiynau a ddarparwyd yn rhagori ar y cyfyngiadau, mae'n eu haddasu'n briodol.
### SetAlwaysOnTop
API: `SetAlwaysOnTop(b bool) *WebviewWindow`
Mae'r swyddogaeth hon yn gosod y ffenestr i aros ar y brig yn seiliedig ar y blaen
llinyn a ddarperir.
### Dangos
API: `Dangos() *WebviewWindow`
Mae'r dull `Dangos` yn cael ei ddefnyddio i wneud y ffenestr yn weladwy. Os
nad yw'r ffenestr yn rhedeg, mae'n gwahodd y dull `rhedeg` i ddechrau'r ffenestr
ac yna'n ei gwneud yn weladwy.
### Cuddio
API: `Cuddio() *WebviewWindow`
Mae'r dull `Cuddio` yn cael ei ddefnyddio i guddio'r ffenestr. Mae'n gosod y
statws cudd o'r ffenestr i wir ac yn lledu'r digwyddiad cuddio ffenestr.
### SetURL
API: `SetURL(s string) *WebviewWindow`
Mae'r dull `SetURL` yn cael ei ddefnyddio i osod URL y ffenestr i'r llinyn URL a ddarparwyd.
### SetZoom
API: `SetZoom(mewnosod float64) *WebviewWindow`
Mae'r dull `SetZoom` yn gosod lefel swm cynnwys y ffenestr i'r lefel mewnosod a ddarparwyd.
### GetZoom
API: `GetZoom() float64`
Mae'r swyddogaeth `GetZoom` yn dychwelyd y lefel swm bresennol o gynnwys y ffenestr.
### GetScreen
API: `GetScreen() (*Screen, error)`
Mae'r dull `GetScreen` yn dychwelyd y sgrin lle mae'r ffenestr yn cael ei harddangos.
### SetFrameless
API: `SetFrameless(frameless bool) *WebviewWindow`
Mae'r swyddogaeth hon yn cael ei defnyddio i dynnu'r ffrâm a bar teitl y ffenestr.
Mae'n toglo'r framelessness o'r ffenestr yn unol â'r gwerth boolean a ddarperir
(gwir ar gyfer frameless, ffug ar gyfer ffrâm).
### RegisterContextMenu
API: `RegisterContextMenu(enw string, dewislen *Dewislen)`
Mae'r swyddogaeth hon yn cael ei defnyddio i gofrestru dewislen cyd-destun ac
yn ei neilltuo i'r enw a ddarparwyd.
### NativeWindowHandle
API: `NativeWindowHandle() (uintptr, error)`
Mae'r swyddogaeth hon yn cael ei defnyddio i nodi'r handlen ffenestr brodorol
ar gyfer y ffenestr.
### Ffocws
API: `Ffocws()`
Mae'r swyddogaeth hon yn cael ei defnyddio i ffocysu'r ffenestr.
### SetEnabled
API: `SetEnabled(galluogwyd bool)`
Mae'r swyddogaeth hon yn cael ei defnyddio i alluogi/analluogi'r ffenestr yn
seiliedig ar y gwerth boolean a ddarperir.
### SetAbsolutePosition
API: `SetAbsolutePosition(x int, y int)`
Mae'r swyddogaeth hon yn gosod y safle absoliwt o'r ffenestr yn y sgrin.
+55
View File
@@ -0,0 +1,55 @@
# Croniclau
<!--
Bydd pob newid sylweddol i'r prosiect hwn yn cael ei ddogfennu yn y ffeil hon.
Mae'r fformat yn seiliedig ar [Cadw Croniclau](https://keepachangelog.com/en/1.0.0/),
ac mae'r prosiect hwn yn cydymffurfio â [Fersiwneiddio Semantig](https://semver.org/spec/v2.0.0.html).
- `Ychwanegwyd` ar gyfer nodweddion newydd.
- `Newidiwyd` ar gyfer newidiadau mewn swyddogaeth bresennol.
- `Wedi Dibrisio` ar gyfer nodweddion a fydd yn cael eu dileu yn fuan.
- `Tynnwyd` ar gyfer nodweddion a gafodd eu tynnu yn awr.
- `Wedi Trwsio` ar gyfer unrhyw ddatrysiadau grwydro.
- `Diogelwch` os oes agoreiddiadau diamddiffyn.
-->
## [Heb ei ryddhau]
### Ychwanegwyd
- [darwin] ychwanegu Digwyddiad ApplicationShouldHandleReopen i fedru ymdrin â chlicio ar yr eicon doc gan @5aaee9 yn [#2991](https://github.com/wailsapp/wails/pull/2991)
- [darwin] ychwanegu getPrimaryScreen/getScreens i impl gan @tmclane yn [#2618](https://github.com/wailsapp/wails/pull/2618)
- [darwin] ychwanegu opsiwn ar gyfer dangos y bar offer mewn modd sgrin llawn ar macOS gan [@fbbdev](https://github.com/fbbdev) yn [#3282](https://github.com/wailsapp/wails/pull/3282)
- [linux] ychwanegu rhesymeg onKeyPress i drosi allwedd linux i gyflymydd gan @[Atterpac](https://github.com/Atterpac) yn [#3022](https://github.com/wailsapp/wails/pull/3022])
- [linux] ychwanegu tasg `rhedeg:linux` gan [@marcus-crane](https://github.com/marcus-crane) yn [#3146](https://github.com/wailsapp/wails/pull/3146)
- allforio dull `SetIcon` gan @almas1992 yn [PR](https://github.com/wailsapp/wails/pull/3147)
- Gwella `OnShutdown` gan @almas1992 yn [PR](https://github.com/wailsapp/wails/pull/3189)
- adfer dull `ToggleMaximise` yn y rhyngwyneb `Window` gan [@fbbdev](https://github.com/fbbdev) yn [#3281](https://github.com/wailsapp/wails/pull/3281)
### Wedi Trwsio
- Wedi trwsio prosesau zombie wrth weithio mewn modd datblygu drwy ddiweddaru i'r diweddaraf gan [Atterpac](https://github.com/atterpac) yn [#3320](https://github.com/wailsapp/wails/pull/3320).
- Wedi trwsio ffynhonnell ffeil webkit appimage gan [Atterpac](https://github.com/atterpac) yn [#3306](https://github.com/wailsapp/wails/pull/3306).
- Wedi trwsio Doctor fygythiad pecyn apt gan [Atterpac](https://github.com/Atterpac) yn [#2972](https://github.com/wailsapp/wails/pull/2972).
- Wedi trwsio'r cais wedi rhewi wrth ddod allan (Darwin) gan @5aaee9 yn [#2982](https://github.com/wailsapp/wails/pull/2982)
- Wedi trwsio lliwiau cefndir yr enghreifftiau ar Windows gan [mmgvh](https://github.com/mmghv) yn [#2750](https://github.com/wailsapp/wails/pull/2750).
- Wedi trwsio dewislenni cyd-destun rhagosodedig gan [mmgvh](https://github.com/mmghv) yn [#2753](https://github.com/wailsapp/wails/pull/2753).
- Wedi trwsio gwerth hecsadegol ar gyfer bysellau saeth ar Darwin gan [jaybeecave](https://github.com/jaybeecave) yn [#3052](https://github.com/wailsapp/wails/pull/3052).
- Gosod llusgo-a-gollwng ar gyfer Windows i weithio. Ychwanegwyd gan [@pylotlight](https://github.com/pylotlight) yn [PR](https://github.com/wailsapp/wails/pull/3039)
- Wedi trwsio bygiau ar gyfer linux yn y meddyg os nad oes gan y defnyddiwr y gyrwyr priodol wedi'u gosod. Ychwanegwyd gan [@pylotlight](https://github.com/pylotlight) yn [PR](https://github.com/wailsapp/wails/pull/3032)
- Trwsio graddio dpi wrth gychwyn (windows). Newidiwyd gan @almas1992 yn [PR](https://github.com/wailsapp/wails/pull/3145)
- Trwsio'r llinell amnewid yn `go.mod` i ddefnyddio llwybrau cymharol - Trwsio llwybrau Windows gyda gofodau gan @leaanthony.
- Trwsio gweithredu clicio Maclanwad system wrth ddim cysylltiedig â ffenestr gan [thomas-senechal](https://github.com/thomas-senechal) yn PR [#3207](https://github.com/wailsapp/wails/pull/3207)
- Trwsio adeiladu Windows yn methu oherwydd opsiwn anhysbys gan [thomas-senechal](https://github.com/thomas-senechal) yn PR [#3208](https://github.com/wailsapp/wails/pull/3208)
- Trwsio URL sylfaenol anghywir wrth agor ffenestr ddwywaith gan @5aaee9 yn PR [#3273](https://github.com/wailsapp/wails/pull/3273)
- Trwsio trefn brigiau os yn y dull `WebviewWindow.Restore` gan [@fbbdev](https://github.com/fbbdev) yn [#3279](https://github.com/wailsapp/wails/pull/3279)
- Cyfrifo `startURL` yn gywir ar draws galwadau lluosog `GetStartURL` pan fo `FRONTEND_DEVSERVER_URL` yn bresennol. [#3299](https://github.com/wailsapp/wails/pull/3299)
### Newidiwyd
### Tynnwyd
### Wedi Dibrisio
### Diogelwch

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