diff --git a/Artemis/Artemis/Artemis.csproj b/Artemis/Artemis/Artemis.csproj index 1d77f6b3f..e04b70f19 100644 --- a/Artemis/Artemis/Artemis.csproj +++ b/Artemis/Artemis/Artemis.csproj @@ -602,6 +602,7 @@ + @@ -674,6 +675,9 @@ VolumeDisplayView.xaml + + LayerTweenView.xaml + ProfileEditorView.xaml @@ -916,6 +920,10 @@ Designer MSBuild:Compile + + Designer + MSBuild:Compile + Designer MSBuild:Compile diff --git a/Artemis/Artemis/Profiles/Layers/Models/TweenModel.cs b/Artemis/Artemis/Profiles/Layers/Models/TweenModel.cs index 3d401159d..275f406f9 100644 --- a/Artemis/Artemis/Profiles/Layers/Models/TweenModel.cs +++ b/Artemis/Artemis/Profiles/Layers/Models/TweenModel.cs @@ -6,16 +6,16 @@ namespace Artemis.Profiles.Layers.Models public class TweenModel { private readonly LayerModel _layerModel; - private float _height; - private Tweener _heightTweener; - private float _opacity; - private Tweener _opacityTweener; - private float _width; - private Tweener _widthTweener; private float _x; private Tweener _xTweener; private float _y; private Tweener _yTweener; + private float _width; + private Tweener _widthTweener; + private float _height; + private Tweener _heightTweener; + private float _opacity; + private Tweener _opacityTweener; public TweenModel(LayerModel layerModel) { @@ -32,6 +32,7 @@ namespace Artemis.Profiles.Layers.Models public void Update() { + // TODO: Don't update if animation speed is 0 if (Math.Abs(_layerModel.X - _x) > 0.001) _xTweener = new Tweener(_x, (float) _layerModel.X, _layerModel.Properties.XEaseTime, GetEaseFunction(_layerModel.Properties.XEase)); @@ -80,7 +81,7 @@ namespace Artemis.Profiles.Layers.Models return Ease.Quint.In; case "Out": return Ease.Quint.Out; - case "InOut": + case "In/out": return Ease.Quint.InOut; default: return Ease.Linear; diff --git a/Artemis/Artemis/Profiles/Layers/Types/Keyboard/KeyboardPropertiesView.xaml b/Artemis/Artemis/Profiles/Layers/Types/Keyboard/KeyboardPropertiesView.xaml index 9e582617b..30e5c540d 100644 --- a/Artemis/Artemis/Profiles/Layers/Types/Keyboard/KeyboardPropertiesView.xaml +++ b/Artemis/Artemis/Profiles/Layers/Types/Keyboard/KeyboardPropertiesView.xaml @@ -23,6 +23,7 @@ + + VerticalAlignment="Top" Height="Auto" TextWrapping="Wrap" > @@ -98,5 +98,7 @@ + + \ No newline at end of file diff --git a/Artemis/Artemis/Profiles/Layers/Types/Keyboard/KeyboardPropertiesViewModel.cs b/Artemis/Artemis/Profiles/Layers/Types/Keyboard/KeyboardPropertiesViewModel.cs index 478b482b9..c84b3c3aa 100644 --- a/Artemis/Artemis/Profiles/Layers/Types/Keyboard/KeyboardPropertiesViewModel.cs +++ b/Artemis/Artemis/Profiles/Layers/Types/Keyboard/KeyboardPropertiesViewModel.cs @@ -20,6 +20,7 @@ namespace Artemis.Profiles.Layers.Types.Keyboard HeightProperties = new LayerDynamicPropertiesViewModel("Height", editorVm); WidthProperties = new LayerDynamicPropertiesViewModel("Width", editorVm); OpacityProperties = new LayerDynamicPropertiesViewModel("Opacity", editorVm); + LayerTweenViewModel = new LayerTweenViewModel(editorVm); SelectedLayerAnimation = LayerAnimations.FirstOrDefault(l => l.Name == editorVm.ProposedLayer.LayerAnimation?.Name) ?? @@ -33,6 +34,7 @@ namespace Artemis.Profiles.Layers.Types.Keyboard public LayerDynamicPropertiesViewModel HeightProperties { get; set; } public LayerDynamicPropertiesViewModel WidthProperties { get; set; } public LayerDynamicPropertiesViewModel OpacityProperties { get; set; } + public LayerTweenViewModel LayerTweenViewModel { get; set; } public bool IsGif { diff --git a/Artemis/Artemis/ViewModels/Profiles/LayerTweenViewModel.cs b/Artemis/Artemis/ViewModels/Profiles/LayerTweenViewModel.cs new file mode 100644 index 000000000..9d9379a63 --- /dev/null +++ b/Artemis/Artemis/ViewModels/Profiles/LayerTweenViewModel.cs @@ -0,0 +1,18 @@ +using Artemis.Profiles.Layers.Models; +using Caliburn.Micro; + +namespace Artemis.ViewModels.Profiles +{ + public class LayerTweenViewModel : Screen + { + public LayerModel LayerModel { get; set; } + + public LayerTweenViewModel(LayerEditorViewModel editorViewModel) + { + LayerModel = editorViewModel.ProposedLayer; + EaseFunctions = new BindableCollection {"Linear", "In", "Out", "In/out"}; + } + + public BindableCollection EaseFunctions { get; set; } + } +} \ No newline at end of file diff --git a/Artemis/Artemis/Views/Profiles/LayerEditorView.xaml b/Artemis/Artemis/Views/Profiles/LayerEditorView.xaml index c29ada817..da882c4d0 100644 --- a/Artemis/Artemis/Views/Profiles/LayerEditorView.xaml +++ b/Artemis/Artemis/Views/Profiles/LayerEditorView.xaml @@ -11,99 +11,100 @@ xmlns:cal="http://www.caliburnproject.org" GlowBrush="{DynamicResource AccentColorBrush}" Icon="../../Resources/bow.png" ResizeMode="NoResize"> - - - - - - - - - - - - - - - - - - - - - - + + - + + + + + + + -