mirror of
https://github.com/Artemis-RGB/Artemis
synced 2025-12-13 05:48:35 +00:00
204 lines
12 KiB
XML
204 lines
12 KiB
XML
<UserControl
|
|
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:Artemis.UI.Screens.ProfileEditor.DisplayConditions.Event"
|
|
xmlns:converters="clr-namespace:Artemis.UI.Converters"
|
|
xmlns:s="https://github.com/canton7/Stylet"
|
|
xmlns:controls="clr-namespace:Artemis.VisualScripting.Editor.Controls;assembly=Artemis.VisualScripting"
|
|
xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
|
|
xmlns:core="clr-namespace:Artemis.Core;assembly=Artemis.Core"
|
|
xmlns:shared="clr-namespace:Artemis.UI.Shared.Controls;assembly=Artemis.UI.Shared"
|
|
xmlns:Shared="clr-namespace:Artemis.UI.Shared;assembly=Artemis.UI.Shared" x:Class="Artemis.UI.Screens.ProfileEditor.DisplayConditions.Event.EventConditionView"
|
|
mc:Ignorable="d"
|
|
d:DesignHeight="450" d:DesignWidth="800"
|
|
d:DataContext="{d:DesignInstance {x:Type local:EventConditionViewModel}}">
|
|
<UserControl.Resources>
|
|
<Shared:NullToVisibilityConverter x:Key="NullToVisibilityConverter" />
|
|
<converters:ComparisonConverter x:Key="ComparisonConverter" />
|
|
</UserControl.Resources>
|
|
<Grid>
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="*" />
|
|
<RowDefinition Height="22" />
|
|
<RowDefinition Height="Auto" />
|
|
</Grid.RowDefinitions>
|
|
|
|
<Grid Grid.Row="0" VerticalAlignment="Stretch">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="*" />
|
|
<ColumnDefinition Width="Auto" />
|
|
</Grid.ColumnDefinitions>
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="*" />
|
|
</Grid.RowDefinitions>
|
|
|
|
<shared:DataModelPicker Grid.Row="0"
|
|
Grid.Column="0"
|
|
Margin="0 0 0 5"
|
|
ButtonBrush="DarkGoldenrod"
|
|
DataModelPath="{Binding EventCondition.EventPath}"
|
|
DataModelPathSelected="{s:Action DataModelPathSelected}"
|
|
FilterTypes="{Binding FilterTypes}"
|
|
ShowFullPath="True"
|
|
Modules="{Binding Modules}" />
|
|
|
|
<CheckBox Grid.Row="0"
|
|
Grid.Column="1"
|
|
IsChecked="{Binding TriggerConditionally}"
|
|
Content="Conditional trigger"
|
|
VerticalAlignment="Center"
|
|
ToolTip="When enabled, the layer will only trigger if the script evaluates to true"
|
|
Style="{StaticResource MaterialDesignDarkCheckBox}" />
|
|
|
|
<Grid Grid.Row="1"
|
|
Grid.Column="0"
|
|
Grid.ColumnSpan="2"
|
|
MouseUp="{s:Action ScriptGridMouseUp}"
|
|
Cursor="Hand"
|
|
Visibility="{Binding EventCondition.Script, Converter={StaticResource NullToVisibilityConverter}, ConverterParameter=Normal, Mode=OneWay}">
|
|
<controls:VisualScriptPresenter Script="{Binding EventCondition.Script}" AutoFitScript="True" />
|
|
<Border VerticalAlignment="Stretch" HorizontalAlignment="Stretch">
|
|
<Border.Background>
|
|
<SolidColorBrush Color="{Binding Color, Source={StaticResource MaterialDesignCardBackground}}" Opacity="0.75" />
|
|
</Border.Background>
|
|
<Border.Style>
|
|
<Style>
|
|
<Style.Triggers>
|
|
<DataTrigger Binding="{Binding IsMouseOver, RelativeSource={RelativeSource AncestorType={x:Type Grid}, Mode=FindAncestor}}" Value="True">
|
|
<DataTrigger.EnterActions>
|
|
<BeginStoryboard>
|
|
<Storyboard>
|
|
<DoubleAnimation Storyboard.TargetProperty="Opacity" To="1" Duration="0:0:0.25" />
|
|
</Storyboard>
|
|
</BeginStoryboard>
|
|
</DataTrigger.EnterActions>
|
|
<DataTrigger.ExitActions>
|
|
<BeginStoryboard>
|
|
<Storyboard>
|
|
<DoubleAnimation Storyboard.TargetProperty="Opacity" To="0" Duration="0:0:0.25" />
|
|
</Storyboard>
|
|
</BeginStoryboard>
|
|
</DataTrigger.ExitActions>
|
|
</DataTrigger>
|
|
</Style.Triggers>
|
|
</Style>
|
|
</Border.Style>
|
|
|
|
<TextBlock Style="{StaticResource MaterialDesignHeadline5TextBlock}" VerticalAlignment="Center" TextAlignment="Center">
|
|
Click to edit script
|
|
<materialDesign:PackIcon Kind="OpenInNew" Margin="0 0 0 -6 " Width="30" Height="30" VerticalAlignment="Center" />
|
|
</TextBlock>
|
|
</Border>
|
|
</Grid>
|
|
|
|
<Grid Grid.Row="1"
|
|
Grid.Column="0"
|
|
Grid.ColumnSpan="2"
|
|
Visibility="{Binding EventCondition.Script, Converter={StaticResource NullToVisibilityConverter}, ConverterParameter=Inverted, Mode=OneWay}">
|
|
|
|
<StackPanel HorizontalAlignment="Center" VerticalAlignment="Center">
|
|
<TextBlock Style="{StaticResource MaterialDesignHeadline5TextBlock}" TextWrapping="Wrap" TextAlignment="Center" Margin="0 10">
|
|
Conditional trigger disabled
|
|
<materialDesign:PackIcon Kind="No" Margin="0 0 0 -6" Width="30" Height="30" VerticalAlignment="Center" />
|
|
</TextBlock>
|
|
<TextBlock Style="{StaticResource MaterialDesignSubtitle1TextBlock}" TextWrapping="Wrap" TextAlignment="Center">
|
|
When enabled, the layer will only trigger if the script evaluates to true
|
|
</TextBlock>
|
|
</StackPanel>
|
|
</Grid>
|
|
</Grid>
|
|
|
|
<!-- Trigger mode -->
|
|
<TextBlock Grid.Row="1" Grid.Column="0" Text="Trigger mode" VerticalAlignment="Center">
|
|
<TextBlock.ToolTip>
|
|
<ToolTip Placement="Center" VerticalOffset="-30">
|
|
<TextBlock>
|
|
<Run Text="Configure how the layer should act when the event(s) trigger" />
|
|
</TextBlock>
|
|
</ToolTip>
|
|
</TextBlock.ToolTip>
|
|
</TextBlock>
|
|
|
|
<materialDesign:ColorZone Grid.Row="2" Grid.Column="0" Mode="Standard" CornerRadius="3">
|
|
<Grid HorizontalAlignment="Stretch">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition />
|
|
<ColumnDefinition />
|
|
<ColumnDefinition />
|
|
<ColumnDefinition />
|
|
</Grid.ColumnDefinitions>
|
|
<RadioButton Grid.Column="0"
|
|
Style="{StaticResource MaterialDesignTabRadioButton}"
|
|
IsChecked="{Binding EventOverlapMode, ConverterParameter={x:Static core:TimeLineEventOverlapMode.Restart}, Converter={StaticResource ComparisonConverter}}">
|
|
<RadioButton.ToolTip>
|
|
<ToolTip Placement="Center" VerticalOffset="-40">
|
|
<TextBlock>
|
|
<Run Text="Stop the current run and restart the timeline" />
|
|
</TextBlock>
|
|
</ToolTip>
|
|
</RadioButton.ToolTip>
|
|
<TextBlock VerticalAlignment="Center" FontSize="12">
|
|
<InlineUIContainer>
|
|
<materialDesign:PackIcon Kind="Repeat" VerticalAlignment="Center" Margin="-3 0 0 -3" />
|
|
</InlineUIContainer>
|
|
<Run Text=" RESTART" />
|
|
</TextBlock>
|
|
</RadioButton>
|
|
<RadioButton Grid.Column="1"
|
|
Style="{StaticResource MaterialDesignTabRadioButton}"
|
|
IsChecked="{Binding EventOverlapMode, ConverterParameter={x:Static core:TimeLineEventOverlapMode.Toggle}, Converter={StaticResource ComparisonConverter}}">
|
|
<RadioButton.ToolTip>
|
|
<ToolTip Placement="Center" VerticalOffset="-40">
|
|
<TextBlock>
|
|
<Run Text="Repeat the timeline until the event fires again" />
|
|
</TextBlock>
|
|
</ToolTip>
|
|
</RadioButton.ToolTip>
|
|
<TextBlock VerticalAlignment="Center" FontSize="12">
|
|
<InlineUIContainer>
|
|
<materialDesign:PackIcon Kind="TrafficLight" VerticalAlignment="Center" Margin="-3 0 0 -3" />
|
|
</InlineUIContainer>
|
|
<Run Text=" TOGGLE" />
|
|
</TextBlock>
|
|
</RadioButton>
|
|
<RadioButton Grid.Column="2"
|
|
Style="{StaticResource MaterialDesignTabRadioButton}"
|
|
IsChecked="{Binding EventOverlapMode, ConverterParameter={x:Static core:TimeLineEventOverlapMode.Ignore}, Converter={StaticResource ComparisonConverter}}">
|
|
<RadioButton.ToolTip>
|
|
<ToolTip Placement="Center" VerticalOffset="-40">
|
|
<TextBlock>
|
|
<Run Text="Ignore subsequent event fires until the timeline finishes" />
|
|
</TextBlock>
|
|
</ToolTip>
|
|
</RadioButton.ToolTip>
|
|
<TextBlock VerticalAlignment="Center" FontSize="12">
|
|
<InlineUIContainer>
|
|
<materialDesign:PackIcon Kind="EarHearingOff" VerticalAlignment="Center" Margin="-3 0 0 -3" />
|
|
</InlineUIContainer>
|
|
<Run Text=" IGNORE" />
|
|
</TextBlock>
|
|
</RadioButton>
|
|
<RadioButton Grid.Column="3"
|
|
Style="{StaticResource MaterialDesignTabRadioButton}"
|
|
IsChecked="{Binding EventOverlapMode, ConverterParameter={x:Static core:TimeLineEventOverlapMode.Copy}, Converter={StaticResource ComparisonConverter}}">
|
|
<RadioButton.ToolTip>
|
|
<ToolTip Placement="Center" VerticalOffset="-40">
|
|
<TextBlock>
|
|
<Run Text="Play another copy of the timeline on top of the current run" />
|
|
</TextBlock>
|
|
</ToolTip>
|
|
</RadioButton.ToolTip>
|
|
<TextBlock VerticalAlignment="Center" FontSize="12">
|
|
<InlineUIContainer>
|
|
<materialDesign:PackIcon Kind="ContentCopy" VerticalAlignment="Center" Margin="-3 0 0 -3" />
|
|
</InlineUIContainer>
|
|
<Run Text=" COPY" />
|
|
</TextBlock>
|
|
</RadioButton>
|
|
</Grid>
|
|
</materialDesign:ColorZone>
|
|
</Grid>
|
|
</UserControl> |