[linux] STATUS.md

This commit is contained in:
Travis McLane
2023-05-10 09:10:03 -05:00
parent 281f6335c1
commit 3784746ddb
+155 -153
View File
@@ -6,74 +6,74 @@ Status of features in v3. Incomplete - please add as you see fit.
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 | |
| Method | Windows | Linux | Mac | Notes |
|---------------------------------------------------------------|---------|-------|-----|------------------------------|
| run() error | | Y | Y | |
| destroy() | | Y | Y | |
| setApplicationMenu(menu *Menu) | | | Y | |
| name() string | | | Y | |
| getCurrentWindowID() uint | | Y | Y | |
| showAboutDialog(name string, description string, icon []byte) | | Y | Y | [linux] No icon possible yet |
| setIcon(icon []byte) | | | Y | |
| on(id uint) | | | Y | |
| dispatchOnMainThread(fn func()) | Y | Y | Y | |
| hide() | Y | | Y | |
| show() | Y | | Y | |
| getPrimaryScreen() (*Screen, error) | | Y | Y | |
| getScreens() ([]*Screen, error) | | Y | 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 | | | |
| 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 | | | |
| Method | Windows | Linux | Mac | Notes |
|----------------------------------------------------|---------|-------|-----|------------------------------------------|
| center() | Y | Y | Y | |
| close() | | Y | Y | |
| destroy() | | Y | Y | |
| execJS(js string) | | Y | Y | |
| focus() | Y | Y | | |
| forceReload() | | Y | Y | |
| fullscreen() | Y | Y | Y | |
| getScreen() (*Screen, error) | | Y | Y | |
| getZoom() float64 | | Y | Y | |
| height() int | Y | Y | Y | |
| hide() | Y | Y | Y | |
| isFullscreen() bool | Y | Y | Y | |
| isMaximised() bool | Y | Y | Y | |
| isMinimised() bool | Y | Y | Y | |
| maximise() | Y | Y | Y | |
| minimise() | Y | 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 | |
| position() (int, int) | Y | Y | Y | |
| reload() | | Y | Y | |
| run() | Y | Y | Y | |
| setAlwaysOnTop(alwaysOnTop bool) | Y | Y | Y | |
| setBackgroundColour(color RGBA) | Y | Y | Y | |
| setFrameless(bool) | | Y | Y | |
| setFullscreenButtonEnabled(enabled bool) | - | Y | Y | There is no fullscreen button in Windows |
| setHTML(html string) | | Y | Y | |
| setMaxSize(width, height int) | Y | Y | Y | |
| setMinSize(width, height int) | Y | Y | Y | |
| setPosition(x int, y int) | Y | Y | Y | |
| setResizable(resizable bool) | Y | Y | Y | |
| setSize(width, height int) | Y | Y | Y | |
| setTitle(title string) | Y | Y | Y | |
| setURL(url string) | | Y | Y | |
| setZoom(zoom float64) | | Y | Y | |
| show() | Y | Y | Y | |
| size() (int, int) | Y | Y | Y | |
| toggleDevTools() | | Y | Y | |
| unfullscreen() | Y | Y | Y | |
| unmaximise() | Y | Y | Y | |
| unminimise() | Y | Y | Y | |
| width() int | Y | Y | Y | |
| zoom() | | Y | Y | |
| zoomIn() | | Y | Y | |
| zoomOut() | | Y | Y | |
| zoomReset() | | Y | Y | |
## Runtime
@@ -81,7 +81,7 @@ Webview Window Interface Methods
| Feature | Windows | Linux | Mac | Notes |
|---------|---------|-------|-----|-------|
| Quit | | | Y | |
| Quit | | Y | Y | |
| Hide | Y | | Y | |
| Show | Y | | Y | |
@@ -113,79 +113,80 @@ Webview Window Interface Methods
| Feature | Windows | Linux | Mac | Notes |
|------------|---------|-------|-----|-------|
| GetAll | Y | | Y | |
| GetPrimary | | | Y | |
| GetCurrent | | | Y | |
| GetAll | | Y | Y | |
| GetPrimary | | Y | Y | |
| GetCurrent | | Y | Y | |
### Window
| Feature | Windows | Linux | Mac | Notes |
|---------------------|---------|-------|-----|--------------------------------------------------------------------------------------|
| SetTitle | Y | | Y | |
| SetSize | Y | | Y | |
| Size | Y | | Y | |
| SetPosition | Y | | Y | |
| Position | Y | | Y | |
| Focus | 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 |
| | | | | |
| SetTitle | Y | Y | Y | |
| SetSize | Y | Y | Y | |
| Size | Y | Y | Y | |
| SetPosition | Y | Y | Y | |
| Position | Y | Y | Y | |
| Focus | Y | Y | | |
| FullScreen | Y | Y | Y | |
| UnFullscreen | Y | Y | Y | |
| Minimise | Y | Y | Y | |
| UnMinimise | Y | Y | Y | |
| Maximise | Y | Y | Y | |
| UnMaximise | Y | Y | Y | |
| Show | Y | Y | Y | |
| Hide | Y | Y | Y | |
| Center | Y | Y | Y | |
| SetBackgroundColour | Y | Y | Y | https://github.com/MicrosoftEdge/WebView2Feedback/issues/1621#issuecomment-938234294 |
| SetAlwaysOnTop | Y | Y | Y | |
| SetResizable | Y | Y | Y | |
| SetMinSize | Y | Y | Y | |
| SetMaxSize | Y | Y | Y | |
| Width | Y | Y | Y | |
| Height | Y | Y | Y | |
| ZoomIn | | Y | Y | Increase view scale |
| ZoomOut | | Y | Y | Decrease view scale |
| ZoomReset | | Y | Y | Reset view scale |
| GetZoom | | Y | Y | Get current view scale |
| SetZoom | | Y | Y | Set view scale |
| Screen | | Y | 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 | | | | |
| 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 | | | | |
| FullscreenButtonEnabled | | | | |
| Hidden | Y | | | |
| EnableFraudulentWebsiteWarnings | | | | |
| Zoom | | | | |
| EnableDragAndDrop | | | | |
| Windows | Y | - | - | |
| Focused | Y | | | |
| Feature | Windows | Linux | Mac | Notes |
|---------------------------------|---------|-------|-----|---------------------------------------------------|
| Name | | | | |
| Title | Y | | | |
| Width | Y | Y | | |
| Height | Y | Y | | |
| AlwaysOnTop | Y | Y | | |
| URL | | | | |
| DisableResize | Y | Y | | |
| Frameless | | Y | | |
| MinWidth | Y | Y | | |
| MinHeight | Y | Y | | |
| MaxWidth | Y | Y | | |
| MaxHeight | Y | Y | | |
| StartState | Y | | | |
| Mac | - | - | | |
| BackgroundType | | | | Acrylic seems to work but the others don't |
| BackgroundColour | Y | Y | | |
| HTML | | Y | | |
| JS | | Y | | |
| CSS | | Y | | |
| X | | Y | | |
| Y | | Y | | |
| HideOnClose | | Y | | |
| FullscreenButtonEnabled | | ? | | [linux] How is this different from DisableResize? |
| Hidden | Y | | | |
| EnableFraudulentWebsiteWarnings | | | | |
| Zoom | | Y | | |
| EnableDragAndDrop | | Y | | |
| Windows | Y | - | - | |
| Focused | Y | | | |
### Log
@@ -195,7 +196,7 @@ To log or not to log? System logger vs custom logger.
| Event | Windows | Linux | Mac | Notes |
|--------------------------|---------|-------|-----|-------|
| Default Application Menu | | | Y | |
| Default Application Menu | | Y | Y | |
## Tray Menus
@@ -255,30 +256,31 @@ Built-in plugin support:
| Plugin | Windows | Linux | Mac | Notes |
|-----------------|---------|-------|-----|-------|
| Browser | | | Y | |
| KV Store | | | Y | |
| Log | | | Y | |
| KV Store | | Y | Y | |
| Log | | Y | Y | |
| Single Instance | | | Y | |
| SQLite | | | Y | |
| SQLite | | Y | 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 | | | - | |
| | 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 | | | | |
| Feature | Windows | Linux | Mac | Notes |
|---------|---------|-------|-----|-----------------------------------------------|
| Resize | | | | |
| Drag | | Y | | Linux - can always drag with `Alt`+left mouse |
## Mac Specific
@@ -300,20 +302,20 @@ Built-in plugin support:
| DisableFramelessWindowDecorations | | |
| WindowMask | nil | Makes the window the contents of the bitmap |
// Select the type of translucent backdrop. Requires Windows 11 22621 or later.
BackdropType BackdropType
// Disable the icon in the titlebar
DisableIcon bool
// Theme. Defaults to SystemDefault which will use whatever the system theme is. The application will follow system theme changes.
Theme Theme
// Custom colours for dark/light mode
CustomTheme *ThemeSettings
// Select the type of translucent backdrop. Requires Windows 11 22621 or later.
BackdropType BackdropType
// Disable the icon in the titlebar
DisableIcon bool
// Theme. Defaults to SystemDefault which will use whatever the system theme is. The application will follow system theme changes.
Theme Theme
// Custom colours for dark/light mode
CustomTheme *ThemeSettings
// Disable all window decorations in Frameless mode, which means no "Aero Shadow" and no "Rounded Corner" will be shown.
// "Rounded Corners" are only available on Windows 11.
DisableFramelessWindowDecorations bool
// Disable all window decorations in Frameless mode, which means no "Aero Shadow" and no "Rounded Corner" will be shown.
// "Rounded Corners" are only available on Windows 11.
DisableFramelessWindowDecorations bool
// WindowMask is used to set the window shape. Use a PNG with an alpha channel to create a custom shape.
WindowMask []byte
// WindowMask is used to set the window shape. Use a PNG with an alpha channel to create a custom shape.
WindowMask []byte
## Linux Specific