[windows] html fullscreen support

This commit is contained in:
Lea Anthony
2023-10-23 20:49:21 +11:00
parent f8250fb0d8
commit ff08a5ca2b
8 changed files with 303 additions and 51 deletions
+21 -50
View File
@@ -16,7 +16,7 @@ Status of features in v3.
Application interface methods
| Method | Windows | Linux | Mac | Notes |
| ------------------------------------------------------------- | ------- | ----- | --- | ----- |
|---------------------------------------------------------------|---------|-------|-----|-------|
| run() error | Y | Y | Y | |
| destroy() | | Y | Y | |
| setApplicationMenu(menu \*Menu) | Y | Y | Y | |
@@ -36,7 +36,7 @@ Application interface methods
Webview Window Interface Methods
| Method | Windows | Linux | Mac | Notes |
| -------------------------------------------------- | ------- | ----- | --- | ---------------------------------------- |
|----------------------------------------------------|---------|-------|-----|------------------------------------------|
| center() | Y | Y | Y | |
| close() | y | Y | Y | |
| destroy() | | Y | Y | |
@@ -90,7 +90,7 @@ Webview Window Interface Methods
### Application
| Feature | Windows | Linux | Mac | Notes |
| ------- | ------- | ----- | --- | ----- |
|---------|---------|-------|-----|-------|
| Quit | Y | Y | Y | |
| Hide | Y | | Y | |
| Show | Y | | Y | |
@@ -98,7 +98,7 @@ Webview Window Interface Methods
### Dialogs
| Feature | Windows | Linux | Mac | Notes |
| -------- | ------- | ----- | --- | ----- |
|----------|---------|-------|-----|-------|
| Info | Y | Y | Y | |
| Warning | Y | Y | Y | |
| Error | Y | Y | Y | |
@@ -109,14 +109,14 @@ Webview Window Interface Methods
### Clipboard
| Feature | Windows | Linux | Mac | Notes |
| ------- | ------- | ----- | --- | ----- |
|---------|---------|-------|-----|-------|
| SetText | Y | | Y | |
| Text | Y | | Y | |
### ContextMenu
| Feature | Windows | Linux | Mac | Notes |
| ---------------- | ------- | ----- | --- | ----- |
|------------------|---------|-------|-----|-------|
| OpenContextMenu | Y | | Y | |
| On By Default | | | | |
| Control via HTML | Y | | | |
@@ -134,7 +134,7 @@ show the context menu unless it is explicitly set with
### Screens
| Feature | Windows | Linux | Mac | Notes |
| ---------- | ------- | ----- | --- | ----- |
|------------|---------|-------|-----|-------|
| GetAll | Y | Y | Y | |
| GetPrimary | Y | Y | Y | |
| GetCurrent | Y | Y | Y | |
@@ -142,7 +142,7 @@ show the context menu unless it is explicitly set with
### System
| Feature | Windows | Linux | Mac | Notes |
| ---------- | ------- | ----- | --- | ----- |
|------------|---------|-------|-----|-------|
| IsDarkMode | | | Y | |
### Window
@@ -152,7 +152,7 @@ Y = Supported U = Untested
- = Not available
| Feature | Windows | Linux | Mac | Notes |
| ------------------- | ------- | ----- | --- | ------------------------------------------------------------------------------------ |
|---------------------|---------|-------|-----|--------------------------------------------------------------------------------------|
| Center | Y | Y | Y | |
| Focus | Y | Y | | |
| FullScreen | Y | Y | Y | |
@@ -165,7 +165,7 @@ Y = Supported U = Untested
| Screen | Y | Y | Y | Get screen for window |
| SetAlwaysOnTop | Y | Y | Y | |
| SetBackgroundColour | Y | Y | Y | https://github.com/MicrosoftEdge/WebView2Feedback/issues/1621#issuecomment-938234294 |
| SetEnabled | Y | U | U | Set the window to be enabled/disabled |
| SetEnabled | Y | U | - | Set the window to be enabled/disabled |
| SetMaxSize | Y | Y | Y | |
| SetMinSize | Y | Y | Y | |
| SetRelativePosition | Y | Y | Y | |
@@ -190,7 +190,7 @@ applied when the window is created. An 'X' indicates that the option is not
supported by the platform.
| Feature | Windows | Linux | Mac | Notes |
| ------------------------------- | ------- | ----- | --- | ------------------------------------------ |
|---------------------------------|---------|-------|-----|--------------------------------------------|
| AlwaysOnTop | Y | | | |
| BackgroundColour | Y | Y | | |
| BackgroundType | | | | Acrylic seems to work but the others don't |
@@ -230,13 +230,13 @@ To log or not to log? System logger vs custom logger.
## Menu
| Event | Windows | Linux | Mac | Notes |
| ------------------------ | ------- | ----- | --- | ----- |
|--------------------------|---------|-------|-----|-------|
| Default Application Menu | Y | Y | 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) | - | | | |
@@ -245,7 +245,7 @@ To log or not to log? System logger vs custom logger.
### Methods
| Method | Windows | Linux | Mac | Notes |
| ----------------------------- | ------- | ----- | --- | ----- |
|-------------------------------|---------|-------|-----|-------|
| setLabel(label string) | - | | Y | |
| run() | Y | | Y | |
| setIcon(icon []byte) | Y | | Y | |
@@ -260,7 +260,7 @@ To log or not to log? System logger vs custom logger.
Mapping native events to cross-platform events.
| Event | Windows | Linux | Mac | Notes |
| ------------------------ | ------- | ----- | --------------- | ----- |
|--------------------------|---------|-------|-----------------|-------|
| WindowWillClose | | | WindowWillClose | |
| WindowDidClose | | | | |
| WindowDidResize | | | | |
@@ -284,7 +284,7 @@ Contains a lot needed for development.
## Theme
| Mode | Windows | Linux | Mac | Notes |
| ------ | ------- | ----- | --- | ----- |
|--------|---------|-------|-----|-------|
| Dark | Y | | | |
| Light | Y | | | |
| System | Y | | | |
@@ -302,7 +302,7 @@ All templates are working.
Built-in plugin support:
| Plugin | Windows | Linux | Mac | Notes |
| --------------- | ------- | ----- | --- | ----- |
|-----------------|---------|-------|-----|-------|
| Browser | Y | | Y | |
| KV Store | Y | Y | Y | |
| Log | Y | Y | Y | |
@@ -318,7 +318,7 @@ TODO:
## Packaging
| | Windows | Linux | Mac | Notes |
| --------------- | ------- | ----- | --- | ----- |
|-----------------|---------|-------|-----|-------|
| Icon Generation | Y | | Y | |
| Icon Embedding | Y | | Y | |
| Info.plist | - | | Y | |
@@ -329,7 +329,7 @@ TODO:
## Frameless Windows
| Feature | Windows | Linux | Mac | Notes |
| ------- | ------- | ----- | --- | ---------------------------------------------- |
|---------|---------|-------|-----|------------------------------------------------|
| Resize | Y | | Y | |
| Drag | Y | Y | Y | Linux - can always drag with `Meta`+left mouse |
@@ -340,7 +340,7 @@ TODO:
### Mac Options
| Feature | Default | Notes |
| ----------------------- | ----------------- | ---------------------------------------------------- |
|-------------------------|-------------------|------------------------------------------------------|
| Backdrop | MacBackdropNormal | Standard solid window |
| DisableShadow | false | |
| TitleBar | | Standard window decorations by default |
@@ -356,7 +356,7 @@ TODO:
### Windows Options
| Feature | Default | Notes |
| --------------------------------- | ------------- | ------------------------------------------- |
|-----------------------------------|---------------|---------------------------------------------|
| BackdropType | Solid | |
| DisableIcon | false | |
| Theme | SystemDefault | |
@@ -386,32 +386,3 @@ The examples can be compiled using the following command:
Note: things are currently not working after the refactor
## Examples
| Example | Windows | Linux | Mac |
| ------------ | -------------------- | ----- | --- |
| binding | NO | | |
| build | Yes (Debug + Prod) | | |
| clipboard | Yes | | |
| contextmenus | Yes | | |
| dialogs | Almost | | |
| drag-n-drop | NO | | |
| events | NO | | |
| frameless | Yes | | |
| kitchensink | Yes | | |
| menu | Yes | | |
| plain | Yes | | |
| plugins | Yes | | |
| screen | Yes | | |
| systray | Yes | | Yes |
| window | Yes | | |
| windowjs | Example not complete | | |
| wml | Yes | | |
# Alpha Release TODO
- [ ] Check all runtime methods are available in the JS runtime
# Beta Release TODO
- [ ] Make better looking examples
+2 -1
View File
@@ -32,6 +32,7 @@ The main goal is to get most of the examples working on all platforms.
| plain | W | W | |
| screen | W | W | |
| systray | W | W | |
| video | | W | |
| window | P | W | |
| wml | | W | |
@@ -39,7 +40,7 @@ The main goal is to get most of the examples working on all platforms.
#### TODO:
- [ ] Fix `+[CATransaction synchronize] called within transaction` warnings on mac
- [ ] Fix `+[CATransaction synchronize] called within transaction` warnings on Mac
- [ ] When hiding window, application terminates
### Alpha 2