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; } } }
private void Current_loadEnd() { this.original = Project.current[oryginalName] as ISoundElement; if (this?.original == null) { throw new Exception("Bad File"); } }
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); }); }
public SoundElementClone(ISoundElement soundElement) { if (soundElement is SoundElementClone) { this.original = (soundElement as SoundElementClone).original; } else { this.original = soundElement; } }
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); }
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); } } } } }); }
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; } } }); }
private void Element_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) { editingStartposition = e.GetPosition(this); editingElement = (ISoundElement)(sender as Grid).Tag; editingVisualElement = (FrameworkElement)sender; }
internal void RemoveElement(ISoundElement soundElement) { Elements.Remove(soundElement); SoundElementRemoved?.Invoke(this, soundElement); }