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">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
-
-
-
-
-
-
-
+
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
\ No newline at end of file
diff --git a/Artemis/Artemis/Views/Profiles/LayerTweenView.xaml b/Artemis/Artemis/Views/Profiles/LayerTweenView.xaml
new file mode 100644
index 000000000..9d871bace
--- /dev/null
+++ b/Artemis/Artemis/Views/Profiles/LayerTweenView.xaml
@@ -0,0 +1,62 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Artemis/Artemis/Views/Profiles/LayerTweenView.xaml.cs b/Artemis/Artemis/Views/Profiles/LayerTweenView.xaml.cs
new file mode 100644
index 000000000..b015b079d
--- /dev/null
+++ b/Artemis/Artemis/Views/Profiles/LayerTweenView.xaml.cs
@@ -0,0 +1,28 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+
+namespace Artemis.Views.Profiles
+{
+ ///
+ /// Interaction logic for LayerTweenView.xaml
+ ///
+ public partial class LayerTweenView : UserControl
+ {
+ public LayerTweenView()
+ {
+ InitializeComponent();
+ }
+ }
+}