aboutsummaryrefslogtreecommitdiffziptar.gz
path: root/src/Godosa.Desktop/DisplayMode.cs
blob: 527fa43ab78ec2ae7d2ac1a4f9a1de57912a2791 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
using Avalonia.Controls;
using Avalonia.Media;

namespace Godosa.Desktop;

/// <summary>Window fullscreen and a UI layer's scale (the 3D view stays outside that layer).</summary>
public static class DisplayMode
{
    public static void SetFullscreen(Window? window, bool fullscreen)
    {
        if (window is null) return;
        bool full = window.WindowState == WindowState.FullScreen;
        if (fullscreen && !full) window.WindowState = WindowState.FullScreen;
        else if (!fullscreen && full) window.WindowState = WindowState.Normal;
    }

    public static void SetUiScale(LayoutTransformControl layer, double factor) =>
        layer.LayoutTransform = factor == 1.0 ? null : new ScaleTransform(factor, factor);
}