Ejemplo n.º 1
0
        private void Timeline_OnMouseUp(object sender, MouseButtonEventArgs e)
        {
            if (e.ChangedButton == MouseButton.Left)
            {
                if (editingElement != null)
                {
                    var newTime = editCalcNewTime(e);

                    if (!Keyboard.IsKeyDown(Key.LeftCtrl) && !Keyboard.IsKeyDown(Key.RightCtrl))
                    {
                        editingElement.Offset = newTime;
                    }

                    if (!Keyboard.IsKeyDown(Key.LeftAlt) && !Keyboard.IsKeyDown(Key.RightAlt))
                    {
                        var oldTrackNumber = Project.current.tracks.FindIndex(track => track.Elements.Contains(editingElement));
                        var trackNumber    = getTrackNumberByMouse(e);
                        if (oldTrackNumber != trackNumber)
                        {
                            Project.current.tracks[oldTrackNumber].Elements.Remove(editingElement);
                            Project.current.tracks[trackNumber].Elements.Add(editingElement);
                        }
                    }
                    editingVisualElement = null;
                    editingElement       = null;
                }
            }
        }
Ejemplo n.º 2
0
 private void Current_loadEnd()
 {
     this.original = Project.current[oryginalName] as ISoundElement;
     if (this?.original == null)
     {
         throw new Exception("Bad File");
     }
 }
Ejemplo n.º 3
0
 private void Track_SoundElementAdded(Track arg1, ISoundElement arg2)
 {
     Dispatcher.Invoke(() =>
     {
         var index          = Project.current.tracks.IndexOf(arg1);
         var trackContainer = (Grid)tracksContentStack.Children[index];
         project_soundElementAdded(trackContainer, arg2);
     });
 }
Ejemplo n.º 4
0
 public SoundElementClone(ISoundElement soundElement)
 {
     if (soundElement is SoundElementClone)
     {
         this.original = (soundElement as SoundElementClone).original;
     }
     else
     {
         this.original = soundElement;
     }
 }
Ejemplo n.º 5
0
 public void AddElement(ISoundElement ss)
 {
     if (ss is ISoundElementDirectOutput)
     {
         if ((ss as ISoundElementDirectOutput).SoundLine == null)
         {
             (ss as ISoundElementDirectOutput).SoundLine = Project.current.lines[0];
         }
     }
     Elements.Add(ss);
     SoundElementAdded?.Invoke(this, ss);
 }
Ejemplo n.º 6
0
 private void Element_positionChanged(ISoundElement obj)
 {
     Dispatcher.Invoke(() =>
     {
         foreach (var track in tracksContentStack.Children)
         {
             if (track is Grid)
             {
                 foreach (var elem in (track as Grid).Children)
                 {
                     if ((elem as Grid)?.Tag == obj)
                     {
                         (elem as Grid).Width  = obj.Length * scaleX;
                         (elem as Grid).Margin = new Thickness(obj.Offset * scaleX, 0, 0, 0);
                     }
                 }
             }
         }
     });
 }
Ejemplo n.º 7
0
 private void Track_SoundElementRemoved(Track track, ISoundElement element)
 {
     Dispatcher.Invoke(() =>
     {
         foreach (var trackUI in tracksContentStackGrid.Children)
         {
             if ((trackUI as FrameworkElement)?.Tag == track)
             {
                 foreach (var elem in (trackUI as Grid).Children)
                 {
                     if ((elem as Grid)?.Tag == element)
                     {
                         (trackUI as Grid).Children.Remove(elem as Grid);
                         break;
                     }
                 }
                 break;
             }
         }
     });
 }
Ejemplo n.º 8
0
 private void Element_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
 {
     editingStartposition = e.GetPosition(this);
     editingElement       = (ISoundElement)(sender as Grid).Tag;
     editingVisualElement = (FrameworkElement)sender;
 }
Ejemplo n.º 9
0
 internal void RemoveElement(ISoundElement soundElement)
 {
     Elements.Remove(soundElement);
     SoundElementRemoved?.Invoke(this, soundElement);
 }