frontend

package
v2.12.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 26, 2026 License: MIT Imports: 3 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Calls

type Calls interface {
	Callback(message string)
}

type DialogType

type DialogType string
const (
	InfoDialog     DialogType = "info"
	WarningDialog  DialogType = "warning"
	ErrorDialog    DialogType = "error"
	QuestionDialog DialogType = "question"
)

type Dispatcher

type Dispatcher interface {
	ProcessMessage(message string, sender Frontend) (string, error)
}

type Events

type Events interface {
	On(eventName string, callback func(...interface{})) func()
	OnMultiple(eventName string, callback func(...interface{}), counter int) func()
	Once(eventName string, callback func(...interface{})) func()
	Emit(eventName string, data ...interface{})
	Off(eventName string)
	OffAll()
	Notify(sender Frontend, name string, data ...interface{})
}

type FileFilter

type FileFilter struct {
	DisplayName string // Filter information EG: "Image Files (*.jpg, *.png)"
	Pattern     string // semicolon separated list of extensions, EG: "*.jpg;*.png"
}

FileFilter defines a filter for dialog boxes

type Frontend

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

	// Notifications
	InitializeNotifications() error
	CleanupNotifications()
	IsNotificationAvailable() bool
	RequestNotificationAuthorization() (bool, error)
	CheckNotificationAuthorization() (bool, error)
	OnNotificationResponse(callback func(result NotificationResult))
	SendNotification(options NotificationOptions) error
	SendNotificationWithActions(options NotificationOptions) error
	RegisterNotificationCategory(category NotificationCategory) error
	RemoveNotificationCategory(categoryId string) error
	RemoveAllPendingNotifications() error
	RemovePendingNotification(identifier string) error
	RemoveAllDeliveredNotifications() error
	RemoveDeliveredNotification(identifier string) error
	RemoveNotification(identifier string) error
}

type MessageDialogOptions

type MessageDialogOptions struct {
	Type          DialogType
	Title         string
	Message       string
	Buttons       []string
	DefaultButton string
	CancelButton  string
	Icon          []byte
}

MessageDialogOptions contains the options for the Message dialogs, EG Info, Warning, etc runtime methods

type NotificationAction added in v2.12.0

type NotificationAction struct {
	ID          string `json:"id,omitempty"`
	Title       string `json:"title,omitempty"`
	Destructive bool   `json:"destructive,omitempty"` // (macOS-specific)
}

NotificationAction represents an action button for a notification.

type NotificationCategory added in v2.12.0

type NotificationCategory struct {
	ID               string               `json:"id,omitempty"`
	Actions          []NotificationAction `json:"actions,omitempty"`
	HasReplyField    bool                 `json:"hasReplyField,omitempty"`
	ReplyPlaceholder string               `json:"replyPlaceholder,omitempty"`
	ReplyButtonTitle string               `json:"replyButtonTitle,omitempty"`
}

NotificationCategory groups actions for notifications.

type NotificationOptions added in v2.12.0

type NotificationOptions struct {
	ID         string                 `json:"id"`
	Title      string                 `json:"title"`
	Subtitle   string                 `json:"subtitle,omitempty"` // (macOS and Linux only)
	Body       string                 `json:"body,omitempty"`
	CategoryID string                 `json:"categoryId,omitempty"`
	Data       map[string]interface{} `json:"data,omitempty"`
}

NotificationOptions contains configuration for a notification.

type NotificationResponse added in v2.12.0

type NotificationResponse struct {
	ID               string                 `json:"id,omitempty"`
	ActionIdentifier string                 `json:"actionIdentifier,omitempty"`
	CategoryID       string                 `json:"categoryId,omitempty"` // Consistent with NotificationOptions
	Title            string                 `json:"title,omitempty"`
	Subtitle         string                 `json:"subtitle,omitempty"` // (macOS and Linux only)
	Body             string                 `json:"body,omitempty"`
	UserText         string                 `json:"userText,omitempty"`
	UserInfo         map[string]interface{} `json:"userInfo,omitempty"`
}

NotificationResponse represents the response sent by interacting with a notification.

type NotificationResult added in v2.12.0

type NotificationResult struct {
	Response NotificationResponse
	Error    error
}

NotificationResult represents the result of a notification response, returning the response or any errors that occurred.

type OpenDialogOptions

type OpenDialogOptions struct {
	DefaultDirectory           string
	DefaultFilename            string
	Title                      string
	Filters                    []FileFilter
	ShowHiddenFiles            bool
	CanCreateDirectories       bool
	ResolvesAliases            bool
	TreatPackagesAsDirectories bool
}

OpenDialogOptions contains the options for the OpenDialogOptions runtime method

type SaveDialogOptions

type SaveDialogOptions struct {
	DefaultDirectory           string
	DefaultFilename            string
	Title                      string
	Filters                    []FileFilter
	ShowHiddenFiles            bool
	CanCreateDirectories       bool
	TreatPackagesAsDirectories bool
}

SaveDialogOptions contains the options for the SaveDialog runtime method

type Screen

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 added in v2.6.0

type ScreenSize struct {
	Width  int `json:"width"`
	Height int `json:"height"`
}

Directories

Path Synopsis
windows/winc
* Copyright (C) 2019 The Winc Authors.
* Copyright (C) 2019 The Winc Authors.
windows/winc/w32
* Copyright (C) 2019 The Winc Authors.
* Copyright (C) 2019 The Winc Authors.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL