Merge 1.0.x branch (#8)

* rewrite

* update submodule

* make width height configurable

* update dependency

* update

* update file

* update dep

* fix basic config layout

* update plugin management

* more stuff

* add blacklist

* fix todo

* fix windows gethandle

* update windows update guide

* update windows build guide

* include go mod tidy in script

* update todo

* fix source session

* fix text output

* add plugin play duration control

* fix id diange not working

* update todo

* update version number
This commit is contained in:
Aynakeya
2024-04-22 21:21:02 -07:00
committed by GitHub
parent 8d73a3c284
commit 5cc5948a85
184 changed files with 6772 additions and 7420 deletions

23
gui/xfyne/window.go Normal file
View File

@@ -0,0 +1,23 @@
package xfyne
import (
"fyne.io/fyne/v2"
"github.com/go-gl/glfw/v3.3/glfw"
"reflect"
"unsafe"
)
// getGlfwWindow returns the glfw.Window pointer from a fyne.Window.
// very unsafe and ugly hacks. but it works.
func getGlfwWindow(window fyne.Window) *glfw.Window {
rv := reflect.ValueOf(window)
if rv.Type().String() != "*glfw.window" {
return nil
}
rv = rv.Elem()
var glfwWindowPtr uintptr = rv.FieldByName("viewport").Pointer()
for glfwWindowPtr == 0 {
glfwWindowPtr = rv.FieldByName("viewport").Pointer()
}
return (*glfw.Window)(unsafe.Pointer(glfwWindowPtr))
}

View File

@@ -0,0 +1,12 @@
//go:build darwin
// +build darwin
package xfyne
func GetWindowHandle(window fyne.Window) uintptr {
glfwWindow := getGlfwWindow(window)
if glfwWindow == nil {
return 0
}
return uintptr(glfwWindow.GetCocoaWindow())
}

16
gui/xfyne/window_linux.go Normal file
View File

@@ -0,0 +1,16 @@
//go:build linux
// +build linux
package xfyne
import (
"fyne.io/fyne/v2"
)
func GetWindowHandle(window fyne.Window) uintptr {
glfwWindow := getGlfwWindow(window)
if glfwWindow == nil {
return 0
}
return uintptr(glfwWindow.GetX11Window())
}

10
gui/xfyne/window_other.go Normal file
View File

@@ -0,0 +1,10 @@
//go:build !darwin && !windows && !linux
// +build !darwin,!windows,!linux
package xfyne
import "fyne.io/fyne/v2"
func GetWindowHandle(window fyne.Window) uintptr {
return 0
}

View File

@@ -0,0 +1,17 @@
//go:build windows
// +build windows
package xfyne
import (
"fyne.io/fyne/v2"
"unsafe"
)
func GetWindowHandle(window fyne.Window) uintptr {
glfwWindow := getGlfwWindow(window)
if glfwWindow == nil {
return 0
}
return uintptr(unsafe.Pointer(glfwWindow.GetWin32Window()))
}