5
0
mirror of https://github.com/wailsapp/wails.git synced 2025-05-21 11:29:29 +08:00
wails/v3/STATUS.md
2023-05-17 08:13:05 +10:00

20 KiB

Status

Status of features in v3. Incomplete - please add as you see fit.

Application

Application interface methods

Method Windows Linux Mac Notes
run() error Y
destroy() Y
setApplicationMenu(menu *Menu) Y
name() string Y
getCurrentWindowID() uint Y
showAboutDialog(name string, description string, icon []byte) Y
setIcon(icon []byte) Y
on(id uint) Y
dispatchOnMainThread(fn func()) Y Y
hide() Y Y
show() Y Y
getPrimaryScreen() (*Screen, error) Y
getScreens() ([]*Screen, error) Y

Webview Window

Webview Window Interface Methods

Method Windows Linux Mac Notes
center() Y Y
close() Y
destroy() Y
execJS(js string) Y
focus() Y Y
forceReload() Y
fullscreen() Y Y
getScreen() (*Screen, error) Y
getZoom() float64 Y
height() int Y Y
hide() Y Y
isFullscreen() bool Y Y
isMaximised() bool Y Y
isMinimised() bool Y Y
maximise() Y Y
minimise() Y Y
nativeWindowHandle() (uintptr, error) Y Y
on(eventID uint) Y
openContextMenu(menu *Menu, data *ContextMenuData) Y
position() (int, int) Y Y
reload() Y
run() Y Y
setAlwaysOnTop(alwaysOnTop bool) Y Y
setBackgroundColour(color RGBA) Y Y
setFrameless(bool) Y
setFullscreenButtonEnabled(enabled bool) - Y There is no fullscreen button in Windows
setHTML(html string) Y
setMaxSize(width, height int) Y Y
setMinSize(width, height int) Y Y
setPosition(x int, y int) Y Y
setResizable(resizable bool) Y Y
setSize(width, height int) Y Y
setTitle(title string) Y Y
setURL(url string) Y
setZoom(zoom float64) Y
show() Y Y
size() (int, int) Y Y
toggleDevTools() Y
unfullscreen() Y Y
unmaximise() Y Y
unminimise() Y Y
width() int Y Y
zoom() Y
zoomIn() Y
zoomOut() Y
zoomReset() Y

Runtime

Application

Feature Windows Linux Mac Notes
Quit Y
Hide Y Y
Show Y Y

Dialogs

Feature Windows Linux Mac Notes
Info Y
Warning Y
Error Y
Question Y
OpenFile Y
SaveFile Y

Clipboard

Feature Windows Linux Mac Notes
SetText Y
Text Y

ContextMenu

Feature Windows Linux Mac Notes
OpenContextMenu Y

Screens

Feature Windows Linux Mac Notes
GetAll Y Y
GetPrimary Y
GetCurrent Y

Window

Feature Windows Linux Mac Notes
SetTitle Y Y
SetSize Y Y
Size Y Y
SetPosition Y Y
Position Y Y
Focus Y Y
FullScreen Y Y
UnFullscreen Y Y
Minimise Y Y
UnMinimise Y Y
Maximise Y Y
UnMaximise Y Y
Show Y Y
Hide Y Y
Center Y Y
SetBackgroundColour Y Y https://github.com/MicrosoftEdge/WebView2Feedback/issues/1621#issuecomment-938234294
SetAlwaysOnTop Y Y
SetResizable Y Y
SetMinSize Y Y
SetMaxSize Y Y
Width Y Y
Height Y Y
ZoomIn Y Increase view scale
ZoomOut Y Decrease view scale
ZoomReset Y Reset view scale
GetZoom Y Get current view scale
SetZoom Y Set view scale
Screen Y Get screen for window

Window Options

A 'Y' in the table below indicates that the option has been tested and is applied when the window is created. An 'X' indicates that the option is not supported by the platform.

Feature Windows Linux Mac Notes
Name
Title Y
Width Y
Height Y
AlwaysOnTop Y
URL
DisableResize Y
Frameless Y
MinWidth Y
MinHeight Y
MaxWidth Y
MaxHeight Y
StartState Y
Mac - -
BackgroundType Acrylic seems to work but the others don't
BackgroundColour Y
HTML
JS
CSS
X
Y
HideOnClose Y
FullscreenButtonEnabled
Hidden Y
EnableFraudulentWebsiteWarnings
Zoom
EnableDragAndDrop
Windows Y - -
Focused Y

Log

To log or not to log? System logger vs custom logger.

Menu

Event Windows Linux Mac Notes
Default Application Menu Y

Tray Menus

Feature Windows Linux Mac Notes
Icon Y Y Windows has default icons for light/dark mode & supports PNG or ICO.
Label - Y
Label (ANSI Codes) -
Menu Y

Cross Platform Events

Mapping native events to cross-platform events.

Event Windows Linux Mac Notes
WindowWillClose WindowWillClose
WindowDidClose
WindowDidResize
WindowDidHide
ApplicationWillTerminate

... Add more

Bindings Generation

TBD

Models Generation

TBD

Task file

TBD

Theme

Mode Windows Linux Mac Notes
Dark Y
Light Y
System Y

NSIS Installer

TBD

Templates

TBD

Plugins

Built-in plugin support:

Plugin Windows Linux Mac Notes
Browser Y
KV Store Y
Log Y
Single Instance Y
SQLite Y
Start at login Y
Server

Packaging

Windows Linux Mac Notes
Icon Generation Y
Icon Embedding Y
Info.plist Y
NSIS Installer -
Mac bundle Y
Windows exe -

Frameless Windows

Feature Windows Linux Mac Notes
Resize
Drag

Mac Specific

  • Translucency

Mac Options

Feature Default Notes
Backdrop MacBackdropNormal Standard solid window
DisableShadow false
TitleBar Standard window decorations by default
Appearance DefaultAppearance
InvisibleTitleBarHeight 0 Creates an invisible title bar for frameless windows

Windows Specific

  • Translucency
  • Custom Themes

Windows Options

Feature Default Notes
BackdropType
DisableIcon
Theme
CustomTheme
DisableFramelessWindowDecorations
WindowMask nil Makes the window the contents of the bitmap

Linux Specific