<UserControl x:Class="WpfDisplay.Views.IteratorEditor"
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"
xmlns:vm="clr-namespace:WpfDisplay.ViewModels"
xmlns:md="http://materialdesigninxaml.net/winfx/xaml/themes"
d:DataContext="{d:DesignInstance Type=vm:IteratorViewModel}"
x:Name="iteratorEditor"
mc:Ignorable="d"
d:DesignHeight="450" d:DesignWidth="300">
<UserControl.Resources>
<BooleanToVisibilityConverter x:Key="conv1"/>
</UserControl.Resources>
<StackPanel>
<TextBlock Margin="0 8" FontWeight="Bold" Style="{DynamicResource MaterialDesignSubtitle1TextBlock}">
Selected Iterator
</TextBlock>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="auto"/>
</Grid.ColumnDefinitions>
<TextBox Grid.Column="0" VerticalAlignment="Top"
Text="{Binding IteratorName, UpdateSourceTrigger=PropertyChanged}"
md:HintAssist.Hint="Name"
Style="{StaticResource MaterialDesignFloatingHintTextBox}"/>
<Button Grid.Column="1"
Command="{Binding RemoveCommand}" CommandParameter="{Binding}"
ToolTip="Remove (Delete)"
Style="{StaticResource MaterialDesignFlatButton}"
Margin="4" Padding="6" >
🗑️
</Button>
</Grid>
<StackPanel>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="auto"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Button Grid.Column="0"
Command="{Binding FlipWeightCommand}"
Style="{StaticResource MaterialDesignFlatButton}"
ToolTip="Enable/Disable (Ctrl+W)"
Margin="4,4,4,0" Padding="6" VerticalAlignment="Bottom">
⚖
</Button>
<local:ValueSlider Grid.Column="1" Value="{Binding Iterator.StartWeight}" SliderSettings="{Binding StartWeightSlider}"/>
<local:ValueSlider Grid.Column="2" Value="{Binding BaseWeight}" SliderSettings="{Binding BaseWeightSlider}"/>
</Grid>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Button Grid.Column="0"
Command="{Binding FlipOpacityCommand}"
Style="{StaticResource MaterialDesignFlatButton}"
ToolTip="Show/Hide (Ctrl+O)"
Margin="4,4,4,0" Padding="6" VerticalAlignment="Bottom">
👁️
</Button>
<local:ValueSlider Grid.Column="1" Value="{Binding Opacity}" SliderSettings="{Binding OpacitySlider}"/>
</Grid>
<Separator Margin="10"/>
<StackPanel>
<Grid>
<Label>Coloring</Label>
<CheckBox IsChecked="{Binding DeltaColoring}"
HorizontalAlignment="Right" Foreground="LightGray">
<CheckBox.ToolTip>
<ToolTip Width="500">
<StackPanel Margin="8">
<TextBlock Style="{StaticResource MaterialDesignHeadline6TextBlock}">Alternative Coloring (Delta-P coloring mode)</TextBlock>
<TextBlock Style="{StaticResource MaterialDesignBody1TextBlock}" TextWrapping="Wrap">
An experimental coloring mode which makes hard-to-color structures (such as 1-iterator fractals, gnarl, ..) easier to color.
</TextBlock>
<Image Source="/IFSRenderer;component/Resources/deltap-tooltip.jpg" HorizontalAlignment="Center" />
</StackPanel>
</ToolTip>
</CheckBox.ToolTip>
Alternative Coloring
</CheckBox>
</Grid>
<local:ValueSlider Value="{Binding ColorIndex}" SliderSettings="{Binding ColorIndexSlider}"/>
<local:PaletteSlider Margin="0 4"
ToolTip="The color of the iterator."
ColorIndex="{Binding ColorIndex}"
Palette="{Binding Path=DataContext.Palette, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}}"/>
<local:ValueSlider Value="{Binding Iterator.ColorSpeed}" SliderSettings="{Binding ColorSpeedSlider}"/>
</StackPanel>
</StackPanel>
<Separator Margin="10"/>
<StackPanel>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<local:ValueSlider Grid.Column="0" Value="{Binding Iterator.Mix}" SliderSettings="{Binding MixSlider}"/>
<local:ValueSlider Grid.Column="1" Value="{Binding Iterator.Add}" SliderSettings="{Binding AddSlider}"/>
</Grid>
<TextBlock Text="{Binding TransformName}" Margin="0 8" FontWeight="Bold" Style="{DynamicResource MaterialDesignSubtitle1TextBlock}" />
<ItemsControl ItemsSource="{Binding Parameters}" IsTabStop="False">
<ItemsControl.Resources>
<!--real-->
<DataTemplate DataType="{x:Type vm:RealParamViewModel}">
<local:ValueSlider Value="{Binding RealParamValue}" SliderSettings="{Binding RealParamSlider}"/>
</DataTemplate>
<!--vec3-->
<DataTemplate DataType="{x:Type vm:Vec3ParamViewModel}">
<local:Vec3Control XValue="{Binding XValue}" YValue="{Binding YValue}" ZValue="{Binding ZValue}" Vec3Settings="{Binding}"/>
</DataTemplate>
</ItemsControl.Resources>
</ItemsControl>
</StackPanel>
</StackPanel>
</UserControl>