mirror of
https://github.com/Artemis-RGB/Artemis
synced 2025-12-12 21:38:38 +00:00
119 lines
7.7 KiB
XML
119 lines
7.7 KiB
XML
<UserControl xmlns="https://github.com/avaloniaui"
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
|
xmlns:controls="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
|
|
xmlns:avalonia="clr-namespace:Material.Icons.Avalonia;assembly=Material.Icons.Avalonia"
|
|
xmlns:layout="clr-namespace:Artemis.UI.Screens.Device.Layout"
|
|
xmlns:layoutProviders="clr-namespace:Artemis.UI.Screens.Device.Layout.LayoutProviders"
|
|
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="800"
|
|
x:Class="Artemis.UI.Screens.Device.Layout.DeviceLayoutTabView"
|
|
x:DataType="layout:DeviceLayoutTabViewModel">
|
|
<Grid RowDefinitions="Auto,*">
|
|
<controls:InfoBar Grid.Row="0"
|
|
Title="Failed to apply layout"
|
|
IsOpen="{CompiledBinding Device.LayoutSelection.ErrorState, Converter={x:Static StringConverters.IsNotNullOrEmpty}}"
|
|
Message="{CompiledBinding Device.LayoutSelection.ErrorState}"
|
|
Severity="Error"
|
|
IsClosable="False"
|
|
Margin="5 0"/>
|
|
|
|
<ScrollViewer Grid.Row="1" HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto">
|
|
<Border Classes="card" Margin="5">
|
|
<Grid RowDefinitions="*,Auto">
|
|
<StackPanel Grid.Row="0">
|
|
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
|
|
<StackPanel Grid.Row="0" Grid.Column="0">
|
|
<TextBlock Text="Default layout file path" />
|
|
<TextBlock Classes="subtitle" FontSize="12" TextWrapping="Wrap" Text="{CompiledBinding DefaultLayoutPath}" />
|
|
</StackPanel>
|
|
<StackPanel Grid.Row="0" Grid.Column="1" VerticalAlignment="Center">
|
|
<Button
|
|
Classes="icon-button"
|
|
HorizontalAlignment="Right"
|
|
IsEnabled="{CompiledBinding !!DefaultLayoutPath}"
|
|
ToolTip.Tip="Copy layout file path to clipboard"
|
|
Click="LayoutPathButton_OnClick">
|
|
<avalonia:MaterialIcon Kind="ContentCopy" Width="18" Height="18" />
|
|
</Button>
|
|
</StackPanel>
|
|
</Grid>
|
|
|
|
<Border Classes="card-separator" />
|
|
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
|
|
<StackPanel Grid.Row="1" Grid.Column="0">
|
|
<TextBlock Text="Image file path" />
|
|
<TextBlock Classes="subtitle" FontSize="12" TextWrapping="Wrap" Text="{CompiledBinding ImagePath, TargetNullValue=None}" />
|
|
</StackPanel>
|
|
<StackPanel Grid.Row="1" Grid.Column="1" VerticalAlignment="Center">
|
|
<Button
|
|
Classes="icon-button"
|
|
HorizontalAlignment="Right"
|
|
IsEnabled="{CompiledBinding !!ImagePath}"
|
|
ToolTip.Tip="Copy image file path to clipboard"
|
|
Click="ImagePathButton_OnClick">
|
|
<avalonia:MaterialIcon Kind="ContentCopy" Width="18" Height="18" />
|
|
</Button>
|
|
</StackPanel>
|
|
</Grid>
|
|
|
|
<Border Classes="card-separator" />
|
|
<Grid RowDefinitions="*,*,*" ColumnDefinitions="*,Auto">
|
|
<StackPanel Grid.Row="1" Grid.Column="0">
|
|
<TextBlock Text="Layout provider" />
|
|
<TextBlock Classes="subtitle" FontSize="12" Text="Choose between different ways to load a layout for this device." />
|
|
</StackPanel>
|
|
<StackPanel Grid.Row="1" Grid.Column="1" VerticalAlignment="Center">
|
|
<StackPanel.Styles>
|
|
<Style Selector="ComboBox.layoutProvider /template/ ContentPresenter#ContentPresenter">
|
|
<Setter Property="ContentTemplate">
|
|
<Setter.Value>
|
|
<DataTemplate x:DataType="layoutProviders:ILayoutProviderViewModel">
|
|
<TextBlock Text="{CompiledBinding Name}" TextWrapping="Wrap" MaxWidth="350" />
|
|
</DataTemplate>
|
|
</Setter.Value>
|
|
</Setter>
|
|
</Style>
|
|
</StackPanel.Styles>
|
|
<ComboBox Classes="layoutProvider"
|
|
Width="150"
|
|
SelectedItem="{CompiledBinding SelectedLayoutProvider}"
|
|
ItemsSource="{CompiledBinding LayoutProviders}">
|
|
<ComboBox.ItemTemplate>
|
|
<DataTemplate x:DataType="layoutProviders:ILayoutProviderViewModel">
|
|
<StackPanel>
|
|
<TextBlock Text="{CompiledBinding Name}" TextWrapping="Wrap" MaxWidth="350" />
|
|
<TextBlock Classes="subtitle" Text="{CompiledBinding Description}" TextWrapping="Wrap" MaxWidth="350" />
|
|
</StackPanel>
|
|
</DataTemplate>
|
|
</ComboBox.ItemTemplate>
|
|
</ComboBox>
|
|
</StackPanel>
|
|
</Grid>
|
|
|
|
<ContentControl Content="{CompiledBinding SelectedLayoutProvider}" ClipToBounds="False" />
|
|
|
|
<Border Classes="card-separator" />
|
|
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
|
|
<StackPanel Grid.Row="1" Grid.Column="0">
|
|
<TextBlock Text="Export current layout" />
|
|
<TextBlock Classes="subtitle" FontSize="12" Text="If there is a layout used, export that. Otherwise, export the LEDs present." />
|
|
</StackPanel>
|
|
<StackPanel Grid.Row="1" Grid.Column="1" VerticalAlignment="Center" Orientation="Horizontal">
|
|
<Button HorizontalAlignment="Right" Content="Export" Command="{CompiledBinding ExportLayout}" />
|
|
</StackPanel>
|
|
</Grid>
|
|
</StackPanel>
|
|
<HyperlinkButton
|
|
Grid.Row="1"
|
|
Content="Learn more about layouts on the wiki"
|
|
NavigateUri="https://wiki.artemis-rgb.com/en/guides/developer/layouts?mtm_campaign=artemis&mtm_kwd=device-properties"
|
|
Margin="0 20"
|
|
HorizontalAlignment="Right"
|
|
VerticalAlignment="Bottom" />
|
|
</Grid>
|
|
</Border>
|
|
</ScrollViewer>
|
|
</Grid>
|
|
|
|
</UserControl> |