143 lines
3.6 KiB
Go
143 lines
3.6 KiB
Go
|
package frontend
|
||
|
|
||
|
import (
|
||
|
"context"
|
||
|
|
||
|
"github.com/wailsapp/wails/v2/pkg/menu"
|
||
|
"github.com/wailsapp/wails/v2/pkg/options"
|
||
|
)
|
||
|
|
||
|
// FileFilter defines a filter for dialog boxes
|
||
|
type FileFilter struct {
|
||
|
DisplayName string // Filter information EG: "Image Files (*.jpg, *.png)"
|
||
|
Pattern string // semicolon separated list of extensions, EG: "*.jpg;*.png"
|
||
|
}
|
||
|
|
||
|
// OpenDialogOptions contains the options for the OpenDialogOptions runtime method
|
||
|
type OpenDialogOptions struct {
|
||
|
DefaultDirectory string
|
||
|
DefaultFilename string
|
||
|
Title string
|
||
|
Filters []FileFilter
|
||
|
ShowHiddenFiles bool
|
||
|
CanCreateDirectories bool
|
||
|
ResolvesAliases bool
|
||
|
TreatPackagesAsDirectories bool
|
||
|
}
|
||
|
|
||
|
// SaveDialogOptions contains the options for the SaveDialog runtime method
|
||
|
type SaveDialogOptions struct {
|
||
|
DefaultDirectory string
|
||
|
DefaultFilename string
|
||
|
Title string
|
||
|
Filters []FileFilter
|
||
|
ShowHiddenFiles bool
|
||
|
CanCreateDirectories bool
|
||
|
TreatPackagesAsDirectories bool
|
||
|
}
|
||
|
|
||
|
type DialogType string
|
||
|
|
||
|
const (
|
||
|
InfoDialog DialogType = "info"
|
||
|
WarningDialog DialogType = "warning"
|
||
|
ErrorDialog DialogType = "error"
|
||
|
QuestionDialog DialogType = "question"
|
||
|
)
|
||
|
|
||
|
type Screen struct {
|
||
|
IsCurrent bool `json:"isCurrent"`
|
||
|
IsPrimary bool `json:"isPrimary"`
|
||
|
|
||
|
// Deprecated: Please use Size and PhysicalSize
|
||
|
Width int `json:"width"`
|
||
|
// Deprecated: Please use Size and PhysicalSize
|
||
|
Height int `json:"height"`
|
||
|
|
||
|
// Size is the size of the screen in logical pixel space, used when setting sizes in Wails
|
||
|
Size ScreenSize `json:"size"`
|
||
|
// PhysicalSize is the physical size of the screen in pixels
|
||
|
PhysicalSize ScreenSize `json:"physicalSize"`
|
||
|
}
|
||
|
|
||
|
type ScreenSize struct {
|
||
|
Width int `json:"width"`
|
||
|
Height int `json:"height"`
|
||
|
}
|
||
|
|
||
|
// MessageDialogOptions contains the options for the Message dialogs, EG Info, Warning, etc runtime methods
|
||
|
type MessageDialogOptions struct {
|
||
|
Type DialogType
|
||
|
Title string
|
||
|
Message string
|
||
|
Buttons []string
|
||
|
DefaultButton string
|
||
|
CancelButton string
|
||
|
Icon []byte
|
||
|
}
|
||
|
|
||
|
type Frontend interface {
|
||
|
Run(ctx context.Context) error
|
||
|
RunMainLoop()
|
||
|
ExecJS(js string)
|
||
|
Hide()
|
||
|
Show()
|
||
|
Quit()
|
||
|
|
||
|
// Dialog
|
||
|
OpenFileDialog(dialogOptions OpenDialogOptions) (string, error)
|
||
|
OpenMultipleFilesDialog(dialogOptions OpenDialogOptions) ([]string, error)
|
||
|
OpenDirectoryDialog(dialogOptions OpenDialogOptions) (string, error)
|
||
|
SaveFileDialog(dialogOptions SaveDialogOptions) (string, error)
|
||
|
MessageDialog(dialogOptions MessageDialogOptions) (string, error)
|
||
|
|
||
|
// Window
|
||
|
WindowSetTitle(title string)
|
||
|
WindowShow()
|
||
|
WindowHide()
|
||
|
WindowCenter()
|
||
|
WindowToggleMaximise()
|
||
|
WindowMaximise()
|
||
|
WindowUnmaximise()
|
||
|
WindowMinimise()
|
||
|
WindowUnminimise()
|
||
|
WindowSetAlwaysOnTop(b bool)
|
||
|
WindowSetPosition(x int, y int)
|
||
|
WindowGetPosition() (int, int)
|
||
|
WindowSetSize(width int, height int)
|
||
|
WindowGetSize() (int, int)
|
||
|
WindowSetMinSize(width int, height int)
|
||
|
WindowSetMaxSize(width int, height int)
|
||
|
WindowFullscreen()
|
||
|
WindowUnfullscreen()
|
||
|
WindowSetBackgroundColour(col *options.RGBA)
|
||
|
WindowReload()
|
||
|
WindowReloadApp()
|
||
|
WindowSetSystemDefaultTheme()
|
||
|
WindowSetLightTheme()
|
||
|
WindowSetDarkTheme()
|
||
|
WindowIsMaximised() bool
|
||
|
WindowIsMinimised() bool
|
||
|
WindowIsNormal() bool
|
||
|
WindowIsFullscreen() bool
|
||
|
WindowClose()
|
||
|
WindowPrint()
|
||
|
|
||
|
// Screen
|
||
|
ScreenGetAll() ([]Screen, error)
|
||
|
|
||
|
// Menus
|
||
|
MenuSetApplicationMenu(menu *menu.Menu)
|
||
|
MenuUpdateApplicationMenu()
|
||
|
|
||
|
// Events
|
||
|
Notify(name string, data ...interface{})
|
||
|
|
||
|
// Browser
|
||
|
BrowserOpenURL(url string)
|
||
|
|
||
|
// Clipboard
|
||
|
ClipboardGetText() (string, error)
|
||
|
ClipboardSetText(text string) error
|
||
|
}
|