func testCall(w *window.Window) { // test sciter call v, err := w.Call("gFunc", sciter.NewValue("kkk"), sciter.NewValue(555)) if err != nil { log.Println("sciter call failed:", err) } else { log.Println("sciter call successfully:", v.String()) } // test method call root, err := w.GetRootElement() if err != nil { log.Fatalf("get root element failed: %s", err.Error()) } v, err = root.CallMethod("mfn", sciter.NewValue("method call"), sciter.NewValue(10300)) if err != nil { log.Println("method call failed:", err) } else { log.Println("method call successfully:", v.String()) } // test function call v, err = root.CallFunction("gFunc", sciter.NewValue("function call"), sciter.NewValue(10300)) if err != nil { log.Println("function call failed:", err) } else { log.Println("function call successfully:", v.String()) } }
func setCallbackHandlers(w *window.Window) { h := &sciter.CallbackHandler{ OnDataLoaded: func(ld *sciter.ScnDataLoaded) int { log.Println("loaded", ld.Uri()) return sciter.LOAD_OK }, OnLoadData: func(ld *sciter.ScnLoadData) int { log.Println("loading", ld.Uri()) return sciter.LOAD_OK }, } w.SetCallback(h) }
func load(w *window.Window, url string) { root, err := w.GetRootElement() if err != nil { log.Panic(err) } els, err := root.Select("#url") if err != nil { log.Fatal("select:", err) } log.Println("els:", els) span, _ := root.SelectById("url") if span == nil { log.Panic("span is nil") } content, _ := root.SelectById("content") if content == nil { log.Panic("content is nil") } text, err := span.Text() if err != nil { log.Panic(err) } log.Println("span:", text) err = span.SetText(url) if err != nil { log.Panic(err) } content.AttachEventHandler(&sciter.EventHandler{ OnDataArrived: func(he *sciter.Element, params *sciter.DataArrivedParams) bool { log.Println("uri:", params.Uri(), len(params.Data())) return false }, }) err = content.Load(url, sciter.RT_DATA_HTML) if err != nil { log.Panic(err) } }
func setEventHandler(w *window.Window) { w.DefineFunction("kkk", func(args ...*sciter.Value) *sciter.Value { log.Println("kkk called!") rval := sciter.NewValue() rval.Set("num", sciter.NewValue(1000)) rval.Set("str", sciter.NewValue("a string")) var fn sciter.NativeFunctor fn = func(args ...*sciter.Value) *sciter.Value { log.Printf("args[%d]:%v\n", len(args), args) return sciter.NewValue("native functor called") } rval.Set("f", sciter.NewValue(fn)) return rval }) w.DefineFunction("sumall", func(args ...*sciter.Value) *sciter.Value { sum := 0 for i := 0; i < len(args); i++ { sum += args[i].Int() } return sciter.NewValue(sum) }) w.DefineFunction("gprintln", func(args ...*sciter.Value) *sciter.Value { print("\t->") for _, arg := range args { print(arg.String(), "\t") } println() return sciter.NullValue() }) }