aboutsummaryrefslogtreecommitdiff
path: root/src/Ryujinx.Ava/UI/Windows/SettingsWindow.axaml
blob: a44cbfe7da6201328814f1d878210a02d46f8804 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
<window:StyleableWindow
    x:Class="Ryujinx.Ava.UI.Windows.SettingsWindow"
    xmlns="https://github.com/avaloniaui"
    xmlns:ui="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:locale="clr-namespace:Ryujinx.Ava.Common.Locale"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:window="clr-namespace:Ryujinx.Ava.UI.Windows"
    xmlns:viewModels="clr-namespace:Ryujinx.Ava.UI.ViewModels"
    xmlns:settings="clr-namespace:Ryujinx.Ava.UI.Views.Settings"
    xmlns:helpers="clr-namespace:Ryujinx.Ava.UI.Helpers"
    Width="1100"
    Height="768"
    MinWidth="800"
    MinHeight="480"
    WindowStartupLocation="CenterOwner"
    x:CompileBindings="True"
    x:DataType="viewModels:SettingsViewModel"
    mc:Ignorable="d"
    Focusable="True">
    <Design.DataContext>
        <viewModels:SettingsViewModel />
    </Design.DataContext>
    <Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch" MinWidth="600">
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto" />
            <RowDefinition />
            <RowDefinition Height="Auto" />
        </Grid.RowDefinitions>
        <ContentPresenter
            x:Name="ContentPresenter"
            Grid.Row="1"
            IsVisible="False"
            KeyboardNavigation.IsTabStop="False"/>
        <Grid Name="Pages" IsVisible="False" Grid.Row="2">
            <settings:SettingsUIView Name="UiPage" />
            <settings:SettingsInputView Name="InputPage" />
            <settings:SettingsHotkeysView Name="HotkeysPage" />
            <settings:SettingsSystemView Name="SystemPage" />
            <settings:SettingsCPUView Name="CpuPage" />
            <settings:SettingsGraphicsView Name="GraphicsPage" />
            <settings:SettingsAudioView Name="AudioPage" />
            <settings:SettingsNetworkView Name="NetworkPage" />
            <settings:SettingsLoggingView Name="LoggingPage" />
        </Grid>
        <ui:NavigationView
            Grid.Row="1"
            IsSettingsVisible="False"
            Name="NavPanel"
            IsBackEnabled="False"
            PaneDisplayMode="Left"
            Margin="2,10,10,0"
            VerticalAlignment="Stretch"
            HorizontalAlignment="Stretch"
            OpenPaneLength="200">
            <ui:NavigationView.MenuItems>
                <ui:NavigationViewItem
                    IsSelected="True"
                    Content="{locale:Locale SettingsTabGeneral}"
                    Tag="UiPage"
                    Icon="New" />
                <ui:NavigationViewItem
                    Content="{locale:Locale SettingsTabInput}"
                    Tag="InputPage"
                    Icon="Games" />
                <ui:NavigationViewItem
                    Content="{locale:Locale SettingsTabHotkeys}"
                    Tag="HotkeysPage"
                    Icon="Keyboard" />
                <ui:NavigationViewItem
                    Content="{locale:Locale SettingsTabSystem}"
                    Tag="SystemPage"
                    Icon="Settings" />
                <ui:NavigationViewItem
                    Content="{locale:Locale SettingsTabCpu}"
                    Tag="CpuPage">
                    <ui:NavigationViewItem.Icon>
                        <ui:FontIcon
                            FontFamily="avares://Ryujinx.Ava/Assets/Fonts#Segoe Fluent Icons"
                            Glyph="{helpers:GlyphValueConverter Chip}" />
                    </ui:NavigationViewItem.Icon>
                </ui:NavigationViewItem>
                <ui:NavigationViewItem
                    Content="{locale:Locale SettingsTabGraphics}"
                    Tag="GraphicsPage"
                    Icon="Image" />
                <ui:NavigationViewItem
                    Content="{locale:Locale SettingsTabAudio}"
                    Icon="Audio"
                    Tag="AudioPage" />
                <ui:NavigationViewItem
                    Content="{locale:Locale SettingsTabNetwork}"
                    Tag="NetworkPage"
                    Icon="Globe" />
                <ui:NavigationViewItem
                    Content="{locale:Locale SettingsTabLogging}"
                    Tag="LoggingPage"
                    Icon="Document" />
            </ui:NavigationView.MenuItems>
            <ui:NavigationView.Styles>
                <Style Selector="Grid#PlaceholderGrid">
                    <Setter Property="Height" Value="40" />
                </Style>
            </ui:NavigationView.Styles>
        </ui:NavigationView>
        <ReversibleStackPanel
            Grid.Row="2"
            Margin="10"
            Spacing="10"
            Orientation="Horizontal"
            HorizontalAlignment="Right"
            ReverseOrder="{Binding IsMacOS}">
            <Button
                HotKey="Enter"
                Classes="accent"
                Content="{locale:Locale SettingsButtonOk}"
                Command="{ReflectionBinding OkButton}" />
            <Button
                HotKey="Escape"
                Content="{locale:Locale SettingsButtonCancel}"
                Command="{ReflectionBinding CancelButton}" />
            <Button
                Content="{locale:Locale SettingsButtonApply}"
                Command="{ReflectionBinding ApplyButton}" />
        </ReversibleStackPanel>
    </Grid>
</window:StyleableWindow>