mirror of
https://github.com/wailsapp/wails.git
synced 2025-05-02 23:02:19 +08:00
188 lines
5.5 KiB
Go
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()
|
|
}
|