mirror of
https://github.com/yattee/yattee.git
synced 2026-10-23 13:12:53 +00:00
Add corner player layout on iPad and macOS
Preset-selected two-region layout: video in the top-left, a resizable side column, and an optional region below the video. Pages are assigned to regions per preset (Location picker in the page editor); the layout falls back to the stacked widescreen layout below 900pt width, so Split View and narrow windows degrade automatically. - CornerPlayerLayout hosts the shared playerAreaForWidescreen builder, so the MPV hosting path is identical to the stacked layout - Layout resolver in ExpandedPlayerSheet picks corner per layout pass; NavigationCoordinator.isCornerLayoutActive feeds the macOS window manager, which drops the aspect-ratio lock and auto-fit while corner is active (and restores them on exit, incl. fullscreen replay and window re-mounts) - Side column width persisted via new cornerPanelColumnWidth setting (280-560pt, video column kept >= 480pt) - Settings: layout mode picker (iPad/macOS) with automatic-fallback footer, per-page region picker when corner is on, region shown in the pages list
This commit is contained in:
@@ -819,6 +819,25 @@ final class PlayerControlsSettingsViewModel {
|
||||
}
|
||||
}
|
||||
|
||||
/// Current panel layout mode (iPad/macOS).
|
||||
var panelLayoutMode: PanelLayoutMode {
|
||||
panelSettings.effectiveLayoutMode
|
||||
}
|
||||
|
||||
/// Synchronously updates the panel layout mode.
|
||||
func syncPanelLayoutMode(_ mode: PanelLayoutMode) {
|
||||
updatePanelSettingsSync { settings in
|
||||
settings.layoutMode = mode
|
||||
}
|
||||
}
|
||||
|
||||
/// Synchronously updates a page's corner-layout region assignment.
|
||||
func setPanelPageRegion(_ region: PanelRegion, for pageType: PanelPageType) {
|
||||
updatePanelSettingsSync { settings in
|
||||
settings.setRegion(region, for: pageType)
|
||||
}
|
||||
}
|
||||
|
||||
/// Enables or disables a panel page. The last enabled page cannot be
|
||||
/// disabled — the panel always needs at least one page.
|
||||
func setPanelPageEnabled(_ pageType: PanelPageType, isEnabled: Bool) {
|
||||
|
||||
Reference in New Issue
Block a user