~eliasnaur/gio

eee497f22a3d738e954a83052bcd24c3bdfd6c17 — Elias Naur 10 months ago 28bd97f
ui/app: (wasm) create and add container div if one is not provided

Signed-off-by: Elias Naur <mail@eliasnaur.com>
1 files changed, 13 insertions(+), 7 deletions(-)

M ui/app/os_js.go
M ui/app/os_js.go => ui/app/os_js.go +13 -7
@@ 1,7 1,6 @@
package app

import (
	"errors"
	"image"
	"sync"
	"syscall/js"


@@ 32,14 31,11 @@ var mainDone = make(chan struct{})

func createWindow(win *Window, opts *WindowOptions) error {
	doc := js.Global().Get("document")
	parent := doc.Call("getElementById", "giowindow")
	if parent == js.Null() {
		return errors.New("app: #giowindow not found")
	}
	cont := getContainer(doc)
	cnv := createCanvas(doc)
	parent.Call("appendChild", cnv)
	cont.Call("appendChild", cnv)
	tarea := createTextArea(doc)
	parent.Call("appendChild", tarea)
	cont.Call("appendChild", tarea)
	w := &window{
		cnv:    cnv,
		tarea:  tarea,


@@ 64,6 60,16 @@ func createWindow(win *Window, opts *WindowOptions) error {
	return nil
}

func getContainer(doc js.Value) js.Value {
	cont := doc.Call("getElementById", "giowindow")
	if cont != js.Null() {
		return cont
	}
	cont = doc.Call("createElement", "DIV")
	doc.Get("body").Call("appendChild", cont)
	return cont
}

func createTextArea(doc js.Value) js.Value {
	tarea := doc.Call("createElement", "input")
	style := tarea.Get("style")