Commit Graph

23 Commits

Author SHA1 Message Date
osy 5f7e11e161 display(visionOS): dynamic resolution from window resize 2024-02-25 00:16:27 -08:00
osy 4706e2280f project: rename preprocessor identifier for conditional features 2024-02-25 00:16:27 -08:00
osy d9db152430 display: implement multiple windows for visionOS
The current multi-window support for iOS uses UIWindowSceneDelegate and
requestSceneSessionActivation() to activate. For visionOS, we can use the
newer SwiftUI APIs with WindowGroups and openWindow(). While this can also
work on newer versions of iOS, for consistency we only use the new APIs on
visionOS.

Using the new APIs allow better handling of window states in visionOS.
Specifically, when we dynamically resize the VM window, the size does not
get saved and restored as the main window size on next launch.
2023-10-10 10:46:27 -07:00
osy 2cd0fc4cbf settings: swap primary and secondary buttons for destructive actions
This is more consistent with other apps and HIG.

Fixes #5599
2023-08-25 11:07:30 -07:00
osy 627633916a display(visionOS): add ornament toolbar 2023-08-08 07:23:04 -07:00
osy 37991d246f vm: rewrite UTMVirtualMachine in Swift 2023-06-28 19:45:05 -05:00
osy 6212edb070 display(iOS): save window state to registry 2022-08-28 19:49:47 -07:00
osy 98c468a3b3 display(iOS): show resume button on < iOS 16
Fixes #4264
2022-08-05 20:08:28 -07:00
osy d00c53394a display(iOS): moved background/foreground handling to SwiftUI 2022-08-02 20:13:53 -07:00
osy 680ea7bd85 display(iOS): move memory warning to SwiftUI
Prevent showing up on external display.
2022-08-02 19:39:23 -07:00
osy 1921a8b43d project: fix iOS TCI build 2022-07-31 16:24:27 -07:00
osy 73108cf324 display(iOS): add headless display 2022-07-29 17:15:30 -07:00
osy 19bafbec2e display(iOS): disable serial ports for external displays 2022-07-29 12:19:38 -07:00
osy 787e4691b0 display(iOS): improved session start/stop procedures 2022-07-28 23:19:13 -07:00
osy 97b3c7af96 toolbar: controls for external display 2022-07-28 23:00:12 -07:00
osy 97f9ee2233 display(iOS): support external monitor
Resolves #220
2022-07-28 20:36:59 -07:00
osy 1bf677a585 display(iOS): do not auto-terminate on fatal error 2022-07-28 16:39:57 -07:00
osy 4401d0aa81 display(iOS): prepare for multiple windows 2022-07-28 15:29:40 -07:00
osy 5c5d9e3ccc display(iOS): error alert use local message 2022-07-26 14:06:53 -07:00
osy d0fb4372b9 toolbar: add USB listing 2022-07-26 14:05:48 -07:00
osy fb2fac6340 home: make spinner size generic 2022-07-25 18:42:27 -07:00
osy 3dc1bd2cc7 toolbar: add drives menu in SwiftUI 2022-07-25 17:13:24 -07:00
osy f80002feac display(iOS): refactor VM display window to SwiftUI
In preparation for multiple-display support, the existing view controller is
decoupled from UTMVirtualMachine and UTMSpiceIO and now interfaces solely
with VMDisplayViewControllerDelegate. This allows us to then wrap the VC into
a UIViewControllerRepresentable and isolate much of the state into
VMWindowState (a single window) and VMSessionState (entire VM). Finally, the
loading screens are re-implemented in SwiftUI.
2022-07-24 20:24:34 -07:00