/ src / Ryujinx / UI / Views / Input / InputView.axaml
InputView.axaml
  1  <UserControl
  2      xmlns="https://github.com/avaloniaui"
  3      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  4      xmlns:ui="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
  5      xmlns:locale="clr-namespace:Ryujinx.Ava.Common.Locale"
  6      xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  7      xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  8      xmlns:models="clr-namespace:Ryujinx.Ava.UI.Models"
  9      xmlns:views="clr-namespace:Ryujinx.Ava.UI.Views.Input"
 10      xmlns:viewModels="clr-namespace:Ryujinx.Ava.UI.ViewModels.Input"
 11      HorizontalAlignment="Stretch"
 12      VerticalAlignment="Stretch"
 13      d:DesignHeight="800"
 14      d:DesignWidth="800"
 15      x:Class="Ryujinx.Ava.UI.Views.Input.InputView"
 16      x:DataType="viewModels:InputViewModel"
 17      x:CompileBindings="True"
 18      mc:Ignorable="d"
 19      Focusable="True">
 20      <Design.DataContext>
 21          <viewModels:InputViewModel />
 22      </Design.DataContext>
 23      <UserControl.Styles>
 24          <Style Selector="ToggleButton">
 25              <Setter Property="Width" Value="90" />
 26              <Setter Property="Height" Value="27" />
 27              <Setter Property="HorizontalAlignment" Value="Stretch" />
 28          </Style>
 29      </UserControl.Styles>
 30      <StackPanel
 31          HorizontalAlignment="Stretch"
 32          VerticalAlignment="Stretch"
 33          Orientation="Vertical">
 34          <StackPanel
 35              Margin="0 0 0 5"
 36              Orientation="Vertical"
 37              Spacing="5">
 38              <Grid>
 39                  <Grid.ColumnDefinitions>
 40                      <ColumnDefinition Width="*" />
 41                      <ColumnDefinition Width="10" />
 42                      <ColumnDefinition Width="*" />
 43                  </Grid.ColumnDefinitions>
 44                  <!-- Player Selection -->
 45                  <Grid
 46                      Grid.Column="0"
 47                      Margin="2"
 48                      HorizontalAlignment="Stretch"
 49                      VerticalAlignment="Center">
 50                      <Grid.ColumnDefinitions>
 51                          <ColumnDefinition Width="Auto"/>
 52                          <ColumnDefinition Width="*" />
 53                      </Grid.ColumnDefinitions>
 54                      <TextBlock
 55                          Margin="5,0,10,0"
 56                          Width="90"
 57                          HorizontalAlignment="Left"
 58                          VerticalAlignment="Center"
 59                          Text="{locale:Locale ControllerSettingsPlayer}" />
 60                      <ComboBox
 61                          Grid.Column="1"
 62                          Name="PlayerIndexBox"
 63                          HorizontalAlignment="Stretch"
 64                          VerticalAlignment="Center"
 65                          SelectionChanged="PlayerIndexBox_OnSelectionChanged"
 66                          ItemsSource="{Binding PlayerIndexes}"
 67                          SelectedIndex="{Binding PlayerId}">
 68                          <ComboBox.ItemTemplate>
 69                              <DataTemplate>
 70                                  <TextBlock Text="{Binding Name}" />
 71                              </DataTemplate>
 72                          </ComboBox.ItemTemplate>
 73                      </ComboBox>
 74                  </Grid>
 75                  <!-- Profile Selection -->
 76                  <Grid
 77                      Grid.Column="2"
 78                      Margin="2"
 79                      HorizontalAlignment="Stretch"
 80                      VerticalAlignment="Center">
 81                      <Grid.ColumnDefinitions>
 82                          <ColumnDefinition Width="Auto"/>
 83                          <ColumnDefinition Width="*" />
 84                          <ColumnDefinition Width="Auto"/>
 85                          <ColumnDefinition Width="Auto"/>
 86                          <ColumnDefinition Width="Auto"/>
 87                      </Grid.ColumnDefinitions>
 88                      <TextBlock
 89                          Margin="5,0,10,0"
 90                          Width="90"
 91                          HorizontalAlignment="Left"
 92                          VerticalAlignment="Center"
 93                          Text="{locale:Locale ControllerSettingsProfile}" />
 94                      <ui:FAComboBox
 95                          Grid.Column="1"
 96                          IsEditable="True"
 97                          Name="ProfileBox"
 98                          HorizontalAlignment="Stretch"
 99                          VerticalAlignment="Center"
100                          SelectedIndex="0"
101                          ItemsSource="{Binding ProfilesList}"
102                          Text="{Binding ProfileName, Mode=TwoWay}" />
103                      <Button
104                          Grid.Column="2"
105                          MinWidth="0"
106                          Margin="5,0,0,0"
107                          VerticalAlignment="Center"
108                          ToolTip.Tip="{locale:Locale ControllerSettingsLoadProfileToolTip}"
109                          Command="{Binding LoadProfile}">
110                          <ui:SymbolIcon
111                              Symbol="Upload"
112                              FontSize="15"
113                              Height="20" />
114                      </Button>
115                      <Button
116                          Grid.Column="3"
117                              MinWidth="0"
118                              Margin="5,0,0,0"
119                              VerticalAlignment="Center"
120                              ToolTip.Tip="{locale:Locale ControllerSettingsSaveProfileToolTip}"
121                              Command="{Binding SaveProfile}">
122                          <ui:SymbolIcon
123                              Symbol="Save"
124                              FontSize="15"
125                              Height="20" />
126                      </Button>
127                      <Button
128                          Grid.Column="4"
129                              MinWidth="0"
130                              Margin="5,0,0,0"
131                              VerticalAlignment="Center"
132                              ToolTip.Tip="{locale:Locale ControllerSettingsRemoveProfileToolTip}"
133                              Command="{Binding RemoveProfile}">
134                          <ui:SymbolIcon
135                              Symbol="Delete"
136                              FontSize="15"
137                              Height="20" />
138                      </Button>
139                  </Grid>
140              </Grid>
141              <Separator />
142              <Grid>
143                  <Grid.ColumnDefinitions>
144                      <ColumnDefinition Width="*" />
145                      <ColumnDefinition Width="10" />
146                      <ColumnDefinition Width="*" />
147                  </Grid.ColumnDefinitions>
148                  <!-- Input Device -->
149                  <Grid
150                      Grid.Column="0"
151                      Margin="2"
152                      HorizontalAlignment="Stretch">
153                      <Grid.ColumnDefinitions>
154                          <ColumnDefinition Width="Auto"/>
155                          <ColumnDefinition Width="*"/>
156                          <ColumnDefinition Width="Auto" />
157                      </Grid.ColumnDefinitions>
158                      <TextBlock
159                          Grid.Column="0"
160                          Margin="5,0,10,0"
161                          Width="90"
162                          HorizontalAlignment="Left"
163                          VerticalAlignment="Center"
164                          Text="{locale:Locale ControllerSettingsInputDevice}" />
165                      <ComboBox
166                          Grid.Column="1"
167                          Name="DeviceBox"
168                          HorizontalAlignment="Stretch"
169                          VerticalAlignment="Center"
170                          ItemsSource="{Binding DeviceList}"
171                          SelectedIndex="{Binding Device}" />
172                      <Button
173                          Grid.Column="2"
174                          MinWidth="0"
175                          Margin="5,0,0,0"
176                          VerticalAlignment="Center"
177                          Command="{Binding LoadDevices}">
178                          <ui:SymbolIcon
179                              Symbol="Refresh"
180                              FontSize="15"
181                              Height="20"/>
182                      </Button>
183                  </Grid>
184                  <!-- Controller Type -->
185                  <Grid
186                      Grid.Column="2"
187                      Margin="2"
188                      HorizontalAlignment="Stretch"
189                      VerticalAlignment="Center">
190                      <Grid.ColumnDefinitions>
191                          <ColumnDefinition Width="Auto"/>
192                          <ColumnDefinition Width="*" />
193                      </Grid.ColumnDefinitions>
194                      <TextBlock
195                          Margin="5,0,10,0"
196                          Width="90"
197                          HorizontalAlignment="Left"
198                          VerticalAlignment="Center"
199                          Text="{locale:Locale ControllerSettingsControllerType}" />
200                      <ComboBox
201                          Grid.Column="1"
202                          HorizontalAlignment="Stretch"
203                          ItemsSource="{Binding Controllers}"
204                          SelectedIndex="{Binding Controller}">
205                          <ComboBox.ItemTemplate>
206                              <DataTemplate DataType="models:ControllerModel">
207                                  <TextBlock Text="{Binding Name}" />
208                              </DataTemplate>
209                          </ComboBox.ItemTemplate>
210                      </ComboBox>
211                  </Grid>
212              </Grid>
213          </StackPanel>
214          <ContentControl Content="{Binding ConfigViewModel}" IsVisible="{Binding ShowSettings}">
215              <ContentControl.DataTemplates>
216                  <DataTemplate DataType="viewModels:ControllerInputViewModel">
217                      <views:ControllerInputView />
218                  </DataTemplate>
219                  <DataTemplate DataType="viewModels:KeyboardInputViewModel">
220                      <views:KeyboardInputView />
221                  </DataTemplate>
222              </ContentControl.DataTemplates>
223          </ContentControl>
224      </StackPanel>
225  </UserControl>