diff --git a/.gitignore b/.gitignore
index eb92321..d194f34 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,2 @@
tmp/
-out/
*.exe
\ No newline at end of file
diff --git a/README.md b/README.md
index df9a27b..4833a3f 100644
--- a/README.md
+++ b/README.md
@@ -9,7 +9,7 @@ Build modern, cross-platform desktop apps in HTML + Go from one codebase. It use
- ⚡**Fast development**: Use *ANY* web framework for your UI. Tiramisu handles all the magic of making it work, for you.
## Installation
-`go install git.iwakura.rip/grng/tiramisu`
+`go get -u git.iwakura.rip/grng/tiramisu`
## Example
@@ -23,7 +23,7 @@ import (
func main() {
// create the webview instance
- app := tiramisu.New(tiramisu.Options{
+ app := tiramisu.New(tiramisu.TiramisuOptions{
Title: "Tiramisu Example",
Width: 800,
Height: 600,
diff --git a/examples/minimal/index.html b/examples/minimal/index.html
new file mode 100644
index 0000000..e1fd12b
--- /dev/null
+++ b/examples/minimal/index.html
@@ -0,0 +1,6 @@
+
+
+
+ hello tiramisu!
+
+
\ No newline at end of file
diff --git a/examples/minimal/main.go b/examples/minimal/main.go
new file mode 100644
index 0000000..fb114b0
--- /dev/null
+++ b/examples/minimal/main.go
@@ -0,0 +1,24 @@
+package main
+
+import (
+ _ "embed"
+
+ t "git.iwakura.rip/grng/tiramisu"
+ webview "github.com/webview/webview_go"
+)
+
+//go:embed index.html
+var html string
+
+func main() {
+ app := t.New(t.TiramisuOptions{
+ Debug: true,
+ Width: 800,
+ Height: 600,
+ Title: "Tiramisu",
+ Hints: webview.HintFixed,
+ })
+
+ app.HTML(html)
+ app.Run()
+}
diff --git a/runtime/out/preload.d.ts b/runtime/out/preload.d.ts
new file mode 100644
index 0000000..b55de9c
--- /dev/null
+++ b/runtime/out/preload.d.ts
@@ -0,0 +1,11 @@
+declare const tiramisu: {
+ invoke: (name: string, ...args: any[]) => Promise;
+ fs: {
+ readFile: (path: string) => Promise;
+ readDir: (path: string) => Promise;
+ exists: (path: string) => Promise;
+ };
+ notifications: {
+ notify: (message: string, ico?: string) => Promise;
+ };
+};
diff --git a/runtime/out/preload.js b/runtime/out/preload.js
new file mode 100644
index 0000000..bff5712
--- /dev/null
+++ b/runtime/out/preload.js
@@ -0,0 +1,12 @@
+const tiramisu = {
+ invoke: window.__TIRAMISU_INTERNAL_invoke,
+ fs: {
+ readFile: window.__TIRAMISU_FILESYSTEM_readFile,
+ readDir: window.__TIRAMISU_FILESYSTEM_readDir,
+ exists: window.__TIRAMISU_INTERNAL_exists,
+ },
+ notifications: {
+ notify: window.__TIRAMISU_NOTIFICATIONS_notify,
+ },
+};
+window.tiramisu = tiramisu;
diff --git a/tiramisu.go b/tiramisu.go
index 3292cc5..e51a7b1 100644
--- a/tiramisu.go
+++ b/tiramisu.go
@@ -40,14 +40,16 @@ func New(o TiramisuOptions) *Tiramisu {
return t
}
-func (t *Tiramisu) Run(fn func()) {
+func (t *Tiramisu) Run(fns ...func()) {
defer t.w.Destroy()
t.w.Dispatch(func() {
t.loadJSRuntime()
t.loadGoRuntime()
- if fn != nil {
- fn()
+ for _, fn := range fns {
+ if fn != nil {
+ fn()
+ }
}
})
t.w.Run()
@@ -95,6 +97,12 @@ func (t *Tiramisu) HTML(html string) {
t.loadGoRuntime()
}
+func (t *Tiramisu) Navigate(url string) {
+ t.w.Navigate(url)
+ t.loadJSRuntime()
+ t.loadGoRuntime()
+}
+
//go:embed runtime/out/*
var runtimeFS embed.FS