mirror of
https://shylinux.com/x/ContextOS
synced 2025-04-25 16:58:06 +08:00
opt webview
This commit is contained in:
parent
2227a60b77
commit
027e6d3f95
6
go.mod
6
go.mod
@ -5,13 +5,17 @@ go 1.11
|
||||
require shylinux.com/x/ice v0.8.9
|
||||
|
||||
require (
|
||||
github.com/kr/pty v1.1.8 // indirect
|
||||
github.com/sqweek/dialog v0.0.0-20220227145630-7a1c9e333fcf
|
||||
github.com/webview/webview v0.0.0-20220407190137-85a0d5c36d07 // indirect
|
||||
golang.org/x/crypto v0.0.0-20220331220935-ae2d96664a29 // indirect
|
||||
shylinux.com/x/golang-story v0.3.8
|
||||
shylinux.com/x/icebergs v1.1.6
|
||||
shylinux.com/x/linux-story v0.3.6
|
||||
shylinux.com/x/mysql-story v0.3.9
|
||||
shylinux.com/x/nginx-story v0.3.9
|
||||
shylinux.com/x/redis-story v0.3.9
|
||||
shylinux.com/x/webview v0.0.1
|
||||
shylinux.com/x/webview v0.0.1 // indirect
|
||||
)
|
||||
|
||||
replace (
|
||||
|
20
go.sum
20
go.sum
@ -1,23 +1,3 @@
|
||||
github.com/TheTitanrain/w32 v0.0.0-20180517000239-4f5cfb03fabf/go.mod h1:peYoMncQljjNS6tZwI9WVyQB3qZS6u79/N3mBOcnd3I=
|
||||
github.com/creack/pty v1.1.7 h1:6pwm8kMQKCmgUg0ZHTm5+/YvRK0s3THD/28+T6/kk4A=
|
||||
github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY=
|
||||
github.com/kr/pty v1.1.8 h1:AkaSdXYQOWeaO3neb8EM634ahkXXe3jYbVh/F9lq+GI=
|
||||
github.com/kr/pty v1.1.8/go.mod h1:O1sed60cT9XZ5uDucP5qwvh+TE3NnUj51EiZO/lmSfw=
|
||||
github.com/sqweek/dialog v0.0.0-20220227145630-7a1c9e333fcf h1:ug6+uVJ1DgQznhPLlZGtndR/NNNadNAzhzhskHOem3Y=
|
||||
github.com/sqweek/dialog v0.0.0-20220227145630-7a1c9e333fcf/go.mod h1:/qNPSY91qTz/8TgHEMioAUc6q7+3SOybeKczHMXFcXw=
|
||||
github.com/webview/webview v0.0.0-20220407190137-85a0d5c36d07 h1:dKxptGWk9AWi4Ptx0p/+CYSdREre1fIF7FOqkOFJcxQ=
|
||||
github.com/webview/webview v0.0.0-20220407190137-85a0d5c36d07/go.mod h1:rpXAuuHgyEJb6kXcXldlkOjU6y4x+YcASKKXJNUhh0Y=
|
||||
golang.org/x/crypto v0.0.0-20220331220935-ae2d96664a29 h1:tkVvjkPTB7pnW3jnid7kNyAMPVWllTNOf/qKDze4p9o=
|
||||
golang.org/x/crypto v0.0.0-20220331220935-ae2d96664a29/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
|
||||
golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
||||
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1 h1:SrN+KX8Art/Sf4HNj6Zcz06G7VEz+7w9tdXTPOZ7+l4=
|
||||
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1 h1:v+OssWQX+hTHEmOBgwxdZxK4zHq3yOs8F9J7mk0PY8E=
|
||||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
||||
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||
shylinux.com/x/go-qrcode v0.0.1 h1:/eOGqMj1qtgs9Ymd12zTUa1gcJZs9S92kj2lb0QzKsE=
|
||||
shylinux.com/x/go-qrcode v0.0.1/go.mod h1:KAbtU+KwiiABMZ/CJ0zh9PI2AX82Uf9rRYcQ4ODm4po=
|
||||
shylinux.com/x/go-sql-mysql v0.0.1 h1:VX5SrwLBKzfkRouj39LgJ9reIXOWmMsScRpr+e0qdp0=
|
||||
|
@ -1,23 +1,3 @@
|
||||
github.com/TheTitanrain/w32 v0.0.0-20180517000239-4f5cfb03fabf/go.mod h1:peYoMncQljjNS6tZwI9WVyQB3qZS6u79/N3mBOcnd3I=
|
||||
github.com/creack/pty v1.1.7 h1:6pwm8kMQKCmgUg0ZHTm5+/YvRK0s3THD/28+T6/kk4A=
|
||||
github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY=
|
||||
github.com/kr/pty v1.1.8 h1:AkaSdXYQOWeaO3neb8EM634ahkXXe3jYbVh/F9lq+GI=
|
||||
github.com/kr/pty v1.1.8/go.mod h1:O1sed60cT9XZ5uDucP5qwvh+TE3NnUj51EiZO/lmSfw=
|
||||
github.com/sqweek/dialog v0.0.0-20220227145630-7a1c9e333fcf h1:ug6+uVJ1DgQznhPLlZGtndR/NNNadNAzhzhskHOem3Y=
|
||||
github.com/sqweek/dialog v0.0.0-20220227145630-7a1c9e333fcf/go.mod h1:/qNPSY91qTz/8TgHEMioAUc6q7+3SOybeKczHMXFcXw=
|
||||
github.com/webview/webview v0.0.0-20220407190137-85a0d5c36d07 h1:dKxptGWk9AWi4Ptx0p/+CYSdREre1fIF7FOqkOFJcxQ=
|
||||
github.com/webview/webview v0.0.0-20220407190137-85a0d5c36d07/go.mod h1:rpXAuuHgyEJb6kXcXldlkOjU6y4x+YcASKKXJNUhh0Y=
|
||||
golang.org/x/crypto v0.0.0-20220331220935-ae2d96664a29 h1:tkVvjkPTB7pnW3jnid7kNyAMPVWllTNOf/qKDze4p9o=
|
||||
golang.org/x/crypto v0.0.0-20220331220935-ae2d96664a29/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
|
||||
golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
||||
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1 h1:SrN+KX8Art/Sf4HNj6Zcz06G7VEz+7w9tdXTPOZ7+l4=
|
||||
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1 h1:v+OssWQX+hTHEmOBgwxdZxK4zHq3yOs8F9J7mk0PY8E=
|
||||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
||||
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||
shylinux.com/x/go-qrcode v0.0.1 h1:/eOGqMj1qtgs9Ymd12zTUa1gcJZs9S92kj2lb0QzKsE=
|
||||
shylinux.com/x/go-qrcode v0.0.1/go.mod h1:KAbtU+KwiiABMZ/CJ0zh9PI2AX82Uf9rRYcQ4ODm4po=
|
||||
shylinux.com/x/go-sql-mysql v0.0.1 h1:VX5SrwLBKzfkRouj39LgJ9reIXOWmMsScRpr+e0qdp0=
|
||||
|
@ -2,13 +2,54 @@ package main
|
||||
|
||||
import (
|
||||
"os"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"shylinux.com/x/ice"
|
||||
"shylinux.com/x/icebergs/base/nfs"
|
||||
kit "shylinux.com/x/toolkits"
|
||||
"shylinux.com/x/webview"
|
||||
)
|
||||
|
||||
type view struct{ w webview.WebView }
|
||||
|
||||
func (v view) Title(text string) { v.w.SetTitle(text) }
|
||||
func (v view) Webview(url string) { v.w.Navigate(url) }
|
||||
func (v view) Open(url string) { v.w.Navigate(url) }
|
||||
func (v view) Terminate() { v.w.Terminate() }
|
||||
func (v view) Close() {
|
||||
if !menu(v.w) {
|
||||
v.Terminate()
|
||||
}
|
||||
}
|
||||
|
||||
func menu(w webview.WebView) bool {
|
||||
kit.Reflect(view{w: w}, func(name string, value interface{}) { w.Bind(name, value) })
|
||||
list := []string{}
|
||||
ice.Pulse.Cmd(nfs.CAT, "src/webview.txt", func(ls []string, line string) {
|
||||
if len(ls) > 1 {
|
||||
list = append(list, kit.Format(`<button onclick=%s()>%s</button>`, ls[0], ls[0]))
|
||||
w.Bind(ls[0], func() {
|
||||
w.SetSize(1200, 800, webview.HintNone)
|
||||
w.Navigate(ls[1])
|
||||
})
|
||||
}
|
||||
})
|
||||
|
||||
if len(list) == 0 {
|
||||
return false
|
||||
}
|
||||
|
||||
w.SetTitle("contexts")
|
||||
w.SetSize(200, 60*len(list), webview.HintNone)
|
||||
w.Navigate(kit.Format(`data:text/html,
|
||||
<!doctype html>
|
||||
<html>
|
||||
<head><style>button { font-size:24px; margin:10px; width:-webkit-fill-available; display:block; clear:both; }</style></head>
|
||||
<body>%s</body>
|
||||
</html>`, strings.Join(list, "")))
|
||||
return true
|
||||
}
|
||||
func main() {
|
||||
os.Chdir(kit.HomePath("contexts"))
|
||||
go ice.Run("serve", "start")
|
||||
@ -16,9 +57,9 @@ func main() {
|
||||
|
||||
w := webview.New(true)
|
||||
defer w.Destroy()
|
||||
|
||||
w.SetTitle("contexts")
|
||||
w.SetSize(1200, 800, webview.HintNone)
|
||||
w.Navigate("http://localhost:9020")
|
||||
w.Run()
|
||||
defer w.Run()
|
||||
if !menu(w) {
|
||||
w.SetSize(1200, 800, webview.HintNone)
|
||||
w.Navigate("http://localhost:9020")
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user