OverviewFilesCommitsIssuesDocsReleasesPeers

ifsrenderer-linux / WpfDisplay / Views / Animation / ChannelEditor.xaml

71 lines · xaml ref:
<UserControl x:Class="WpfDisplay.Views.Animation.ChannelEditor"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             xmlns:local="clr-namespace:WpfDisplay.Views.Animation"
             xmlns:common="clr-namespace:WpfDisplay.Views"
             xmlns:vm="clr-namespace:WpfDisplay.ViewModels"
             xmlns:md="http://materialdesigninxaml.net/winfx/xaml/themes"
             mc:Ignorable="d" 
             d:DesignHeight="300" d:DesignWidth="200"
             d:DataContext="{d:DesignInstance Type=vm:ChannelViewModel, IsDesignTimeCreatable=False}"
             >
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="auto"/>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>
        <StackPanel Grid.Row="0">
            <Grid>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="*"/>
                    <ColumnDefinition Width="auto"/>
                </Grid.ColumnDefinitions>
                <TextBox Text="{Binding Name}"  Grid.Column="0"
                         ToolTip="Name" md:HintAssist.Hint="Channel Name" Style="{StaticResource MaterialDesignFloatingHintTextBox}" TextAlignment="Center" d:Text="Channel Name"/>
                <Button Grid.Column="1" Style="{StaticResource MaterialDesignFlatButton}"
                        Command="{Binding CloseChannelEditorCommand}"
                        ToolTip="Close channel editor" Foreground="LightGreen"
                        >
                    ✓
                </Button>
            </Grid>
            <TextBox Text="{Binding Path, Mode=OneWay}" IsReadOnly="True" FontFamily="Consolas"
                ToolTip="The property in the data structure that is controlled by this channel." md:HintAssist.Hint="Controlled value" Style="{StaticResource MaterialDesignFloatingHintTextBox}" md:TextFieldAssist.DecorationVisibility="Hidden" d:Text="Channel.Path"/>
            <Grid>
                <TextBlock VerticalAlignment="Center">Channel Drivers</TextBlock>
                <Menu HorizontalAlignment="Right">
                    <MenuItem Header="+" Padding="8 0" FontSize="14" Height="26">
                        <MenuItem Icon="🎵" Header="Audio" Command="{Binding AddChannelDriverCommand}"/>
                    </MenuItem>
                </Menu>
            </Grid>
        </StackPanel>
        <!--TODO: ItemsControl for ChannelDrivers-->
        <ScrollViewer Grid.Row="1">
            <ScrollViewer.LayoutTransform>
                <ScaleTransform ScaleX="0.75" ScaleY="0.75"/>
            </ScrollViewer.LayoutTransform>
            <Expander Visibility="{Binding HasAudioDriver, Converter={StaticResource booleanToVisibilityConverter}}"
                        IsExpanded="True" 
                        VerticalAlignment="Top" md:ExpanderAssist.HorizontalHeaderPadding="0" Margin="4 0">
                <Expander.Header>
                    <Grid>
                        <CheckBox IsChecked="{Binding IsDriverEnabled}">Audio Driver</CheckBox>
                        <Button Command="{Binding RemoveChannelDriverCommand}" Padding="10 0" Style="{StaticResource MaterialDesignFlatButton}" FontSize="9" HorizontalAlignment="Right">🗑️</Button>
                    </Grid>
                </Expander.Header>
                    <StackPanel>
                        <ComboBox ItemsSource="{Binding AnimationVM.LoadedAudioChannels}" 
                                    SelectedItem="{Binding SelectedAudioChannelOption}"
                                    md:HintAssist.Hint="Audio channel"/>
                        <common:ValueSlider Value="{Binding EffectStrength}" SliderSettings="{Binding EffectSlider}"/>
                        <common:ValueSlider Value="{Binding MinFreq}" SliderSettings="{Binding MinFreqSlider}"/>
                        <common:ValueSlider Value="{Binding MaxFreq}" SliderSettings="{Binding MaxFreqSlider}"/>
                    </StackPanel>
            </Expander>
        </ScrollViewer>
    </Grid>
</UserControl>