Skip to content

Commit

Permalink
v3.0.0-alpha.4
Browse files Browse the repository at this point in the history
  • Loading branch information
leaanthony committed Feb 1, 2024
1 parent 6e2bbe3 commit 1ec3b4e
Show file tree
Hide file tree
Showing 8 changed files with 109 additions and 26 deletions.
58 changes: 58 additions & 0 deletions mkdocs-website/docs/en/learn/runtime.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
# Runtime

The Wails runtime is the standard library for Wails applications. It provides a number of features that may
be used in your applications, including:

- Window management
- Dialogs
- Browser integration
- Clipboard
- Frameless dragging
- Tray icons
- Menu management
- System information
- Events
- Calling Go code
- Context Menus
- Screens
- WML (Wails Markup Language)

The runtime is required for integration between Go and the frontend. There are 2 ways to integrate the runtime:

- Using the `@wailsio/runtime` package
- Using a pre-built version of the runtime

## Using the `@wailsio/runtime` package

The `@wailsio/runtime` package is a JavaScript package that provides access to the Wails runtime. It is used in by all
the standard templates and is the recommended way to integrate the runtime into your application. By using the package,
you will only include the parts of the runtime that you use.

The package is available on npm and can be installed using:

```shell
npm install --save @wailsio/runtime
```

## Using a pre-built version of the runtime

Some projects will not use a Javascript bundler and may prefer to use a pre-built version of the runtime. This is
the default for the examples in `v3/examples`. The pre-built version of the runtime can be generated using the
following command:

```shell
wails3 generate runtime
```

This will generate a `runtime.js` (and `runtime.debug.js`) file in the `frontend` directory of your project.
This file can be included in your assets directory and used in your application by adding it to your assets
directory (normally `frontend/dist`) and then including it in your HTML:

```html
<html>
<head>
<script src="/runtime.js"></script>
</head>
<!--- ... -->
</>
```
36 changes: 17 additions & 19 deletions mkdocs-website/docs/en/roadmap.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,23 @@ we are aiming to achieve. These are subject to change.

## Alpha milestones

### Current: Alpha 4
### Current: Alpha 5

#### Goals

- [ ] Get Linux to Alpha 4 parity
- [ ] Keyboard shortcuts
- Window Level shortcuts
- Application Level shortcuts (applies to all windows)
- Ensure Keydown/Keyup events are sent to JS if not handled by Go

## Upcoming milestones

## Alpha 6

## Previous milestones

### Alpha 4 - Completed 2024-02-01

#### Goals

Expand Down Expand Up @@ -135,24 +151,6 @@ Examples:

- [ ] All examples working on Linux

## Upcoming milestones

### Alpha 4

#### Goals


### Alpha 5

#### Goals

- [ ] Keyboard shortcuts
- Window Level shortcuts
- Application Level shortcuts (applies to all windows)
- Ensure Keydown/Keyup events are sent to JS if not handled by Go

## Previous milestones

### Alpha 2

#### Goals
Expand Down
2 changes: 2 additions & 0 deletions mkdocs-website/mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -150,6 +150,8 @@ nav:
# - Links: community/links.md
- Your First Application: getting-started/your-first-app.md
- Next Steps: getting-started/next-steps.md
- Learn More:
- Runtime: getting-started/learn.md
- Feedback: getting-started/feedback.md
- Feedback: getting-started/feedback.md
- What's New in v3?: whats-new.md
Expand Down
6 changes: 5 additions & 1 deletion mkdocs-website/shared/alpha3-bindings-callbyname.csv
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
Scenario,Windows,Mac,Linux
Same package,:material-check-bold:,:material-check-bold:,:material-check-bold:
Same package,: clipboardLock.RLock()
defer clipboardLock.RUnlock()
clipboardText := C.getClipboardText()
result := C.GoString(clipboardText)
return result, true:,:material-check-bold:,:material-check-bold:
Different package,:material-check-bold:,:material-check-bold:,:material-check-bold:
Different package with same name,"on hold","on hold","on hold"
Containing another struct from same package,:material-check-bold:,:material-check-bold:,:material-check-bold:
Expand Down
7 changes: 3 additions & 4 deletions mkdocs-website/shared/alpha4-wails3-package.csv
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
" ",Mac,Windows,Linux
Standard Executable," "," "," "
macOS Application Bundle," ",:material-cancel:,:material-cancel:
NSIS," "," "," "
macOS DMG," ",:material-cancel:,:material-cancel:
Standard Executable,:material-check-bold:,:material-check-bold:,:material-check-bold:
macOS Application Bundle,:material-check-bold:,:material-cancel:,:material-cancel:
NSIS,:material-cancel:,:material-check-bold:,:material-cancel:
1 change: 1 addition & 0 deletions v3/cmd/wails3/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ func main() {
generate.NewSubCommandFunction("constants", "Generate JS constants from Go", commands.GenerateConstants)
generate.NewSubCommandFunction(".desktop", "Generate .desktop file", commands.GenerateDotDesktop)
generate.NewSubCommandFunction("appimage", "Generate Linux AppImage", commands.GenerateAppImage)
generate.NewSubCommandFunction("runtime", "Generate the latest compiled runtime", commands.GenerateRuntime)

plugin := app.NewSubCommand("plugin", "Plugin tools")
//plugin.NewSubCommandFunction("list", "List plugins", commands.PluginList)
Expand Down
4 changes: 2 additions & 2 deletions v3/internal/commands/build_assets/runtime/compiled.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ package runtime
import _ "embed"

//go:embed runtime.js
var runtimeJS []byte
var RuntimeJS []byte

//go:embed runtime.debug.js
var runtimeDebugJS []byte
var RuntimeDebugJS []byte
21 changes: 21 additions & 0 deletions v3/internal/commands/runtime.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package commands

import (
"github.com/wailsapp/wails/v3/internal/commands/build_assets/runtime"
"os"
)

type GenerateRuntimeOptions struct {
}

func GenerateRuntime(options *GenerateRuntimeOptions) error {
err := os.WriteFile("runtime.js", runtime.RuntimeJS, 0644)
if err != nil {
return err
}
err = os.WriteFile("runtime.debug.js", runtime.RuntimeDebugJS, 0644)
if err != nil {
return err
}
return nil
}

0 comments on commit 1ec3b4e

Please sign in to comment.