Support EnableDevTools

This commit is contained in:
Lea Anthony 2022-12-07 23:52:16 +11:00
commit df1cc2ee0b
No known key found for this signature in database
GPG key ID: 33DAF7BB90A58405
4 changed files with 48 additions and 20 deletions

View file

@ -22,16 +22,17 @@ func main() {
println("TERMINATION!!")
})
myWindow := app.NewWindow(&options.Window{
Title: "Basic",
Width: 600,
Height: 400,
AlwaysOnTop: false,
URL: "https://google.com",
DisableResize: false,
MinWidth: 100,
MinHeight: 100,
MaxWidth: 1000,
MaxHeight: 1000,
Title: "Basic",
Width: 600,
Height: 400,
AlwaysOnTop: false,
URL: "https://google.com",
DisableResize: false,
MinWidth: 100,
MinHeight: 100,
MaxWidth: 1000,
MaxHeight: 1000,
EnableDevTools: true,
})
myWindow2 := app.NewWindow(&options.Window{
@ -47,6 +48,7 @@ func main() {
time.Sleep(5 * time.Second)
myWindow.SetTitle("Wooooo")
myWindow.SetAlwaysOnTop(true)
myWindow2.EnableDevTools()
myWindow2.SetTitle("OMFG")
myWindow2.NavigateToURL("https://wails.io")
myWindow.SetMinSize(600, 600)

View file

@ -11,6 +11,7 @@ type windowImpl interface {
setResizable(resizable bool)
setMinSize(width, height int)
setMaxSize(width, height int)
enableDevTools()
}
type Window struct {
@ -100,3 +101,11 @@ func (w *Window) SetMaxSize(maxWidth, maxHeight int) {
w.impl.setSize(w.options.Width, w.options.Height)
w.impl.setMaxSize(maxWidth, maxHeight)
}
func (w *Window) EnableDevTools() {
if w.impl == nil {
w.options.EnableDevTools = true
return
}
w.impl.enableDevTools()
}

View file

@ -126,6 +126,16 @@ void windowResetMaxSize(void* nsWindow) {
});
}
// Enable NSWindow devtools
void windowEnableDevTools(void* nsWindow) {
// Enable devtools on main thread
dispatch_async(dispatch_get_main_queue(), ^{
// Get window delegate
WindowDelegate* delegate = (WindowDelegate*)[(NSWindow*)nsWindow delegate];
// Enable devtools in webview
[delegate.webView.configuration.preferences setValue:@YES forKey:@"developerExtrasEnabled"];
});
}
*/
import "C"
import (
@ -173,6 +183,9 @@ func (w *macosWindow) setMaxSize(width, height int) {
func (w *macosWindow) setResizable(resizable bool) {
C.windowSetResizable(w.nsWindow, C.bool(resizable))
}
func (w *macosWindow) enableDevTools() {
C.windowEnableDevTools(w.nsWindow)
}
func (w *macosWindow) run() error {
w.nsWindow = C.windowNew(C.int(w.options.Width), C.int(w.options.Height))
@ -184,6 +197,9 @@ func (w *macosWindow) run() error {
if w.options.URL != "" {
w.navigateToURL(w.options.URL)
}
if w.options.EnableDevTools {
w.enableDevTools()
}
C.windowShow(w.nsWindow)
return nil
}

View file

@ -21,14 +21,15 @@ type Mac struct {
}
type Window struct {
Title string
Width, Height int
AlwaysOnTop bool
URL string
DisableResize bool
Resizable bool
MinWidth int
MinHeight int
MaxWidth int
MaxHeight int
Title string
Width, Height int
AlwaysOnTop bool
URL string
DisableResize bool
Resizable bool
MinWidth int
MinHeight int
MaxWidth int
MaxHeight int
EnableDevTools bool
}