aboutsummaryrefslogtreecommitdiff
path: root/src/Ryujinx/UI/Windows/SettingsWindow.axaml
blob: de3c2291af06c30e7004845f0c4a0a0ceae6d55c (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
129
130
<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: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"
                    IconSource="New" />
                <ui:NavigationViewItem
                    Content="{locale:Locale SettingsTabInput}"
                    Tag="InputPage"
                    IconSource="Games" />
                <ui:NavigationViewItem
                    Content="{locale:Locale SettingsTabHotkeys}"
                    Tag="HotkeysPage"
                    IconSource="Keyboard" />
                <ui:NavigationViewItem
                    Content="{locale:Locale SettingsTabSystem}"
                    Tag="SystemPage"
                    IconSource="Settings" />
                <ui:NavigationViewItem
                    Content="{locale:Locale SettingsTabCpu}"
                    Tag="CpuPage">
                    <ui:NavigationViewItem.IconSource>
                        <ui:FontIconSource
                            FontFamily="avares://Ryujinx/Assets/Fonts#Segoe Fluent Icons"
                            Glyph="{helpers:GlyphValueConverter Chip}" />
                    </ui:NavigationViewItem.IconSource>
                </ui:NavigationViewItem>
                <ui:NavigationViewItem
                    Content="{locale:Locale SettingsTabGraphics}"
                    Tag="GraphicsPage"
                    IconSource="Image" />
                <ui:NavigationViewItem
                    Content="{locale:Locale SettingsTabAudio}"
                    IconSource="Audio"
                    Tag="AudioPage" />
                <ui:NavigationViewItem
                    Content="{locale:Locale SettingsTabNetwork}"
                    Tag="NetworkPage"
                    IconSource="Globe" />
                <ui:NavigationViewItem
                    Content="{locale:Locale SettingsTabLogging}"
                    Tag="LoggingPage"
                    IconSource="Document" />
            </ui:NavigationView.MenuItems>
            <ui:NavigationView.Styles>
                <Style Selector="Grid#PlaceholderGrid">
                    <Setter Property="Height" Value="40" />
                </Style>
                <Style Selector="ui|NavigationViewItem ui|SymbolIcon">
                    <Setter Property="FlowDirection" Value="LeftToRight" />
                </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="{Binding OkButton}" />
            <Button
                HotKey="Escape"
                Content="{locale:Locale SettingsButtonCancel}"
                Command="{Binding CancelButton}" />
            <Button
                Content="{locale:Locale SettingsButtonApply}"
                Command="{Binding ApplyButton}" />
        </ReversibleStackPanel>
    </Grid>
</window:StyleableWindow>