adam-gui/vendor/fyne.io/fyne/v2/test/testwindow.go
2024-04-29 19:13:50 +02:00

143 lines
2.5 KiB
Go

package test
import (
"fyne.io/fyne/v2"
)
type testWindow struct {
title string
fullScreen bool
fixedSize bool
focused bool
onClosed func()
onCloseIntercepted func()
canvas *testCanvas
clipboard fyne.Clipboard
driver *testDriver
menu *fyne.MainMenu
}
// NewWindow creates and registers a new window for test purposes
func NewWindow(content fyne.CanvasObject) fyne.Window {
window := fyne.CurrentApp().NewWindow("")
window.SetContent(content)
return window
}
func (w *testWindow) Canvas() fyne.Canvas {
return w.canvas
}
func (w *testWindow) CenterOnScreen() {
// no-op
}
func (w *testWindow) Clipboard() fyne.Clipboard {
return w.clipboard
}
func (w *testWindow) Close() {
if w.onClosed != nil {
w.onClosed()
}
w.focused = false
w.driver.removeWindow(w)
}
func (w *testWindow) Content() fyne.CanvasObject {
return w.Canvas().Content()
}
func (w *testWindow) FixedSize() bool {
return w.fixedSize
}
func (w *testWindow) FullScreen() bool {
return w.fullScreen
}
func (w *testWindow) Hide() {
w.focused = false
}
func (w *testWindow) Icon() fyne.Resource {
return fyne.CurrentApp().Icon()
}
func (w *testWindow) MainMenu() *fyne.MainMenu {
return w.menu
}
func (w *testWindow) Padded() bool {
return w.canvas.Padded()
}
func (w *testWindow) RequestFocus() {
for _, win := range w.driver.AllWindows() {
win.(*testWindow).focused = false
}
w.focused = true
}
func (w *testWindow) Resize(size fyne.Size) {
w.canvas.Resize(size)
}
func (w *testWindow) SetContent(obj fyne.CanvasObject) {
w.Canvas().SetContent(obj)
}
func (w *testWindow) SetFixedSize(fixed bool) {
w.fixedSize = fixed
}
func (w *testWindow) SetIcon(_ fyne.Resource) {
// no-op
}
func (w *testWindow) SetFullScreen(fullScreen bool) {
w.fullScreen = fullScreen
}
func (w *testWindow) SetMainMenu(menu *fyne.MainMenu) {
w.menu = menu
}
func (w *testWindow) SetMaster() {
// no-op
}
func (w *testWindow) SetOnClosed(closed func()) {
w.onClosed = closed
}
func (w *testWindow) SetCloseIntercept(callback func()) {
w.onCloseIntercepted = callback
}
func (w *testWindow) SetOnDropped(dropped func(fyne.Position, []fyne.URI)) {
}
func (w *testWindow) SetPadded(padded bool) {
w.canvas.SetPadded(padded)
}
func (w *testWindow) SetTitle(title string) {
w.title = title
}
func (w *testWindow) Show() {
w.RequestFocus()
}
func (w *testWindow) ShowAndRun() {
w.Show()
}
func (w *testWindow) Title() string {
return w.title
}