mirror of
https://github.com/wailsapp/wails.git
synced 2025-05-05 01:50:56 +08:00
[v3] Add some missing methods for darwin and windows
This commit is contained in:
parent
86a1de6788
commit
f4749db8b3
@ -3,11 +3,13 @@
|
|||||||
package application
|
package application
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/wailsapp/wails/v3/pkg/events"
|
"os"
|
||||||
"github.com/wailsapp/wails/v3/pkg/w32"
|
|
||||||
"syscall"
|
"syscall"
|
||||||
"unsafe"
|
"unsafe"
|
||||||
|
|
||||||
|
"github.com/wailsapp/wails/v3/pkg/events"
|
||||||
|
"github.com/wailsapp/wails/v3/pkg/w32"
|
||||||
|
|
||||||
"github.com/samber/lo"
|
"github.com/samber/lo"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -217,7 +219,6 @@ func newPlatformApp(app *App) *windowsApp {
|
|||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
result := &windowsApp{
|
result := &windowsApp{
|
||||||
parent: app,
|
parent: app,
|
||||||
instance: w32.GetModuleHandle(""),
|
instance: w32.GetModuleHandle(""),
|
||||||
|
@ -173,6 +173,8 @@ func newRole(role Role) *MenuItem {
|
|||||||
return newMinimizeMenuItem()
|
return newMinimizeMenuItem()
|
||||||
case Zoom:
|
case Zoom:
|
||||||
return newZoomMenuItem()
|
return newZoomMenuItem()
|
||||||
|
case FullScreen:
|
||||||
|
return newFullScreenMenuItem()
|
||||||
|
|
||||||
default:
|
default:
|
||||||
println("No support for role:", role)
|
println("No support for role:", role)
|
||||||
|
@ -606,7 +606,7 @@ func newMinimizeMenuItem() *MenuItem {
|
|||||||
OnClick(func(ctx *Context) {
|
OnClick(func(ctx *Context) {
|
||||||
currentWindow := globalApplication.CurrentWindow()
|
currentWindow := globalApplication.CurrentWindow()
|
||||||
if currentWindow != nil {
|
if currentWindow != nil {
|
||||||
currentWindow.Minimize()
|
currentWindow.Minimise()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@ -620,3 +620,13 @@ func newZoomMenuItem() *MenuItem {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func newFullScreenMenuItem() *MenuItem {
|
||||||
|
return newMenuItem("Fullscreen").
|
||||||
|
OnClick(func(ctx *Context) {
|
||||||
|
currentWindow := globalApplication.CurrentWindow()
|
||||||
|
if currentWindow != nil {
|
||||||
|
currentWindow.Fullscreen()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
@ -177,3 +177,7 @@ func newMinimizeMenuItem() *MenuItem {
|
|||||||
func newZoomMenuItem() *MenuItem {
|
func newZoomMenuItem() *MenuItem {
|
||||||
panic("implement me")
|
panic("implement me")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func newFullScreenMenuItem() *MenuItem {
|
||||||
|
panic("implement me")
|
||||||
|
}
|
||||||
|
@ -703,6 +703,12 @@ static bool isFullScreen(void *window) {
|
|||||||
return (mask & NSWindowStyleMaskFullScreen) == NSWindowStyleMaskFullScreen;
|
return (mask & NSWindowStyleMaskFullScreen) == NSWindowStyleMaskFullScreen;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static bool isVisible(void *window) {
|
||||||
|
// get main window
|
||||||
|
WebviewWindow* nsWindow = (WebviewWindow*)window;
|
||||||
|
return (nsWindow.occlusionState & NSWindowOcclusionStateVisible) == NSWindowOcclusionStateVisible;
|
||||||
|
}
|
||||||
|
|
||||||
// windowSetFullScreen
|
// windowSetFullScreen
|
||||||
static void windowSetFullScreen(void *window, bool fullscreen) {
|
static void windowSetFullScreen(void *window, bool fullscreen) {
|
||||||
if (isFullScreen(window)) {
|
if (isFullScreen(window)) {
|
||||||
@ -942,6 +948,14 @@ func (w *macosWebviewWindow) isFullscreen() bool {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (w *macosWebviewWindow) isNormal() bool {
|
||||||
|
return !w.isMinimised() && !w.isMaximised() && !w.isFullscreen()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (w *macosWebviewWindow) isVisible() bool {
|
||||||
|
return bool(C.isVisible(w.nsWindow))
|
||||||
|
}
|
||||||
|
|
||||||
func (w *macosWebviewWindow) syncMainThreadReturningBool(fn func() bool) bool {
|
func (w *macosWebviewWindow) syncMainThreadReturningBool(fn func() bool) bool {
|
||||||
var wg sync.WaitGroup
|
var wg sync.WaitGroup
|
||||||
wg.Add(1)
|
wg.Add(1)
|
||||||
@ -1147,10 +1161,12 @@ func (w *macosWebviewWindow) run() {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (w *macosWebviewWindow) nativeWindowHandle() uintptr {
|
||||||
|
return uintptr(w.nsWindow)
|
||||||
|
}
|
||||||
|
|
||||||
func (w *macosWebviewWindow) setBackgroundColour(colour RGBA) {
|
func (w *macosWebviewWindow) setBackgroundColour(colour RGBA) {
|
||||||
if colour == nil {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
C.windowSetBackgroundColour(w.nsWindow, C.int(colour.Red), C.int(colour.Green), C.int(colour.Blue), C.int(colour.Alpha))
|
C.windowSetBackgroundColour(w.nsWindow, C.int(colour.Red), C.int(colour.Green), C.int(colour.Blue), C.int(colour.Alpha))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user