5
0
mirror of https://github.com/wailsapp/wails.git synced 2025-05-02 23:02:19 +08:00
wails/v2/test/runtime/runtime.go
2020-12-06 21:15:23 +11:00

188 lines
5.5 KiB
Go

package main
import (
"time"
"github.com/wailsapp/wails/v2"
"github.com/wailsapp/wails/v2/pkg/options"
)
// RuntimeTest to test the runtimes
type RuntimeTest struct {
runtime *wails.Runtime
}
// WailsInit is an initialisation method
func (r *RuntimeTest) WailsInit(runtime *wails.Runtime) error {
r.runtime = runtime
println("Woohoo I'm here!")
// Set title!
// runtime.Window.SetTitle("My App!")
r.runtime.Events.On("testevent", func(optionalParams ...interface{}) {
println("Wooohoooo! I got called!")
})
r.runtime.Events.Once("testeventonce", func(optionalParams ...interface{}) {
println("I only get called once!")
})
r.runtime.Events.OnMultiple("testeventmultiple", func(optionalParams ...interface{}) {
println("I only get called 3 times!")
}, 3)
return nil
}
// WailsShutdown is called during shutdown
func (r *RuntimeTest) WailsShutdown() {
// This is a test
println("WOOOOOOOOOOOOOO WailsShutdown CALLED")
}
// EmitSingleEventNoParams will emit a single event with the given name and no params
func (r *RuntimeTest) EmitSingleEventNoParams(name string) {
r.runtime.Events.Emit(name)
}
// EmitSingleEventWithOneParam will emit a single event with the given name
func (r *RuntimeTest) EmitSingleEventWithOneParam(name string) {
r.runtime.Events.Emit(name, 1)
}
// RuntimeQuit will call the Runtime.Quit method
func (r *RuntimeTest) RuntimeQuit() {
r.runtime.Quit()
}
// Fullscreen will call the Runtime.Fullscreen method
func (r *RuntimeTest) Fullscreen() {
r.runtime.Window.Fullscreen()
}
// SetTitle will call the SetTitle method
func (r *RuntimeTest) SetTitle(title string) {
r.runtime.Window.SetTitle(title)
}
// UnFullscreen will call the Runtime.UnFullscreen method
func (r *RuntimeTest) UnFullscreen() {
r.runtime.Window.UnFullscreen()
}
// SetColour will call the Runtime.UnFullscreen method
func (r *RuntimeTest) SetColour(colour int) {
r.runtime.Window.SetColour(colour)
}
// OpenFileDialog will call the Runtime.Dialog.OpenDialog method requesting File selection
func (r *RuntimeTest) OpenFileDialog(title string, filter string) []string {
dialogOptions := &options.OpenDialog{
Title: title,
Filters: filter,
AllowFiles: true,
}
return r.runtime.Dialog.Open(dialogOptions)
}
// OpenDirectoryDialog will call the Runtime.Dialog.OpenDialog method requesting File selection
func (r *RuntimeTest) OpenDirectoryDialog(title string, filter string) []string {
dialogOptions := &options.OpenDialog{
Title: title,
Filters: filter,
AllowDirectories: true,
}
return r.runtime.Dialog.Open(dialogOptions)
}
// OpenDialog will call the Runtime.Dialog.OpenDialog method requesting both Files and Directories
func (r *RuntimeTest) OpenDialog(title string, filter string) []string {
dialogOptions := &options.OpenDialog{
Title: title,
Filters: filter,
AllowDirectories: true,
AllowFiles: true,
}
return r.runtime.Dialog.Open(dialogOptions)
}
// OpenDialogMultiple will call the Runtime.Dialog.OpenDialog method allowing multiple selection
func (r *RuntimeTest) OpenDialogMultiple(title string, filter string) []string {
dialogOptions := &options.OpenDialog{
Title: title,
Filters: filter,
AllowDirectories: true,
AllowFiles: true,
AllowMultiple: true,
}
return r.runtime.Dialog.Open(dialogOptions)
}
// OpenDialogAllOptions will call the Runtime.Dialog.OpenDialog method allowing multiple selection
func (r *RuntimeTest) OpenDialogAllOptions(filter string, defaultDir string, defaultFilename string) []string {
dialogOptions := &options.OpenDialog{
DefaultDirectory: defaultDir,
DefaultFilename: defaultFilename,
Filters: filter,
AllowFiles: true,
AllowDirectories: true,
ShowHiddenFiles: true,
CanCreateDirectories: true,
TreatPackagesAsDirectories: true,
ResolveAliases: true,
}
return r.runtime.Dialog.Open(dialogOptions)
}
// SaveFileDialog will call the Runtime.Dialog.SaveDialog method requesting a File selection
func (r *RuntimeTest) SaveFileDialog(title string, filter string) string {
dialogOptions := &options.SaveDialog{
Title: title,
Filters: filter,
}
return r.runtime.Dialog.Save(dialogOptions)
}
// SaveDialogAllOptions will call the Runtime.Dialog.SaveDialog method allowing multiple selection
func (r *RuntimeTest) SaveDialogAllOptions(filter string, defaultDir string, defaultFilename string) string {
dialogOptions := &options.SaveDialog{
DefaultDirectory: defaultDir,
DefaultFilename: defaultFilename,
Filters: filter,
ShowHiddenFiles: true,
CanCreateDirectories: true,
TreatPackagesAsDirectories: true,
}
return r.runtime.Dialog.Save(dialogOptions)
}
// HideWindow will call the Runtime.Window.Hide method and then call
// Runtime.Window.Show 3 seconds later.
func (r *RuntimeTest) HideWindow() {
time.AfterFunc(3*time.Second, func() { r.runtime.Window.Show() })
r.runtime.Window.Hide()
}
// Maximise the Window
func (r *RuntimeTest) Maximise() {
r.runtime.Window.Maximise()
}
// Unmaximise the Window
func (r *RuntimeTest) Unmaximise() {
r.runtime.Window.Unmaximise()
}
// Minimise the Window
func (r *RuntimeTest) Minimise() {
r.runtime.Window.Minimise()
}
// Unminimise the Window
func (r *RuntimeTest) Unminimise() {
r.runtime.Window.Unminimise()
}
// Check is system is running in dark mode
func (r *RuntimeTest) IsDarkMode() bool {
return r.runtime.System.IsDarkMode()
}