public void OpenClipsTransitionsModal(MVideoClip clip, MTransition transition) { var modalContent = this.ShowModalWindow("Transition"); // Create a new field and assign it its value. var TypeField = new EnumField("Type:", transition.Type); modalContent.Add(TypeField); var durationField = new FloatField("Duration:"); durationField.value = transition.duration; modalContent.Add(durationField); TypeField.RegisterCallback <ChangeEvent <System.Enum> >((evt) => { transition.Type = (MTransition.TransitionType)evt.newValue; }); durationField.RegisterCallback <ChangeEvent <float> >((evt) => { transition.duration = evt.newValue; }); }
private void InitPreviewTimeline(MVideoClip clip, VisualElement element) { var previewTimeline = element.Q <VisualElement>(null, "KeyFrameDraggerElement"); previewTimeline.RegisterCallback <MouseDownEvent>((MouseDownEvent evt) => { ToggleTimeline(clip.ID, true); }); element.RegisterCallback <MouseMoveEvent>((MouseMoveEvent evt) => { if (IsTimelineActive(clip.ID)) { float time = (evt.localMousePosition.x / previewTimeline.contentRect.width); this.ATVPivot.position = clip.GetPosition(time); this.ATVPivot.forward = clip.GetForward(time); this.keyFrameManager.UpdateSceneViewCameraTransform(this.ATVPivot); this.keyFrameManager.UpdateMainCameraTransform(clip.GetPosition(time), clip.GetForward(time)); } }); element.RegisterCallback <MouseUpEvent>((MouseUpEvent evt) => { ToggleTimeline(clip.ID, false); }); /*element.RegisterCallback<MouseOutEvent>((MouseOutEvent evt) => { * Debug.Log("MouseOut"); * ToggleTimeline(clip.ID, false); * },TrickleDown.TrickleDown); */ }
public void DeleteClip(MVideoClip clip) { if (clip != null) { this.currentSelectedProject.clips.Remove(clip); RefreshVideoClips(); } }
private void InitMoveButtonsBinding(MVideoClip clip, VisualElement element) { var leftMove = element.Q <Button>(null, "MoveLeftButton"); var rightMove = element.Q <Button>(null, "MoveRightButton"); leftMove.clicked += () => MoveClip(clip, true); rightMove.clicked += () => MoveClip(clip, false); }
private void InitTransitionsBinding(MVideoClip clip, VisualElement element) { var leftTransition = element.Q <Button>(null, "LeftTransitionButton"); var rightTransition = element.Q <Button>(null, "RightTransitionButton"); leftTransition.clicked += () => this.modalManager.OpenClipsTransitionsModal(clip, clip.LeftTransition); rightTransition.clicked += () => this.modalManager.OpenClipsTransitionsModal(clip, clip.RightTransition); }
private void InitSecondsUI(VisualElement DraggerContainer, MVideoClip clip) { DraggerContainer.Clear(); for (int i = 0; i < clip.Duration; i++) { var cm = new VisualElement(); cm.AddToClassList("SecondsTick"); DraggerContainer.Add(cm); } }
public virtual void StartClip(int clipToApply) { elapsedTime = 0; currentPercentage = 0; currentClip = mProject.clips[clipToApply]; if (OnChangeClip != null) { OnChangeClip(currentClip); } }
private void OnRuntimeUpdate(MVideoClip clip, float time, float percentage) { var clipEle = rootVisualElement.Q <VisualElement>(clip.ID); var pLine = clipEle.Q <VisualElement>(null, "PlayLine"); var width = clipEle.contentRect.width; percentage = Math.Min(1f, percentage); pLine.style.left = width * percentage; }
private void OnRuntimeChangeClip(MVideoClip clip) { var prevClip = rootVisualElement.Q <VisualElement>(null, "ActiveClip"); if (prevClip != null) { prevClip.RemoveFromClassList("ActiveClip"); } var clipEle = rootVisualElement.Q <VisualElement>(clip.ID); clipEle.AddToClassList("ActiveClip"); }
public void DeleteClipWithConfirm(MVideoClip clip) { this.ShowConfirmDialog("Delete Clip", "Are you sure?", (bool confirm) => { if (confirm) { this.m_MainWindow.DeleteClip(clip); } else { this.OpenClipSettingsModal(clip); } }); }
private void OnAddVideoClipButtonClick() { var clip = new MVideoClip(); clip.ID = GUID.Generate().ToString(); var kf = this.keyFrameManager.CreateKeyFrame(); kf.clipRef = clip; clip.KeyFrames.Add(kf); this.currentSelectedProject.clips.Add(clip); kf.clipRef.RefreshCurves(); EditorUtility.SetDirty(this.sceneContainer); AssetDatabase.SaveAssets(); RefreshVideoClips(); }
public void OpenClipSettingsModal(MVideoClip clip) { var ModalContent = this.ShowModalWindow("Clip Settings"); var NameField = new TextField("Clip Name: "); NameField.value = clip.Name; ModalContent.Add(NameField); NameField.RegisterCallback <ChangeEvent <string> >((evt) => { clip.Name = evt.newValue; }); var DeleteButton = new Button(); DeleteButton.text = "DELETE CLIP"; DeleteButton.clicked += () => { DeleteClipWithConfirm(clip); }; ModalContent.Add(DeleteButton); }
public void RefreshKeyFramesForClip(MVideoClip clip, VisualElement element) { var keyFramesContainer = element.Q <VisualElement>(null, "KeyFrameContainer"); keyFramesContainer.ClearClassList(); keyFramesContainer.AddToClassList("KeyFrameContainer"); keyFramesContainer.AddToClassList("KeyFrames_" + clip.KeyFrames.Count); keyFramesContainer.Clear(); foreach (var f in clip.KeyFrames) { var ele = MakeKeyFrameEle(); BindKeyFrameElement(f, ele); keyFramesContainer.Add(ele); } clip.RefreshCurves(); EditorUtility.SetDirty(this.m_MainWindow.sceneContainer); AssetDatabase.SaveAssets(); }
private void InitNameAndTimeBinding(MVideoClip clip, VisualElement element) { var timeField = element.Q <IntegerField>(null, "TimeField"); var secondsTickContainer = element.Q <VisualElement>(null, "KeyFrameSecondsTickContainer"); timeField.value = (int)clip.Duration; InitSecondsUI(secondsTickContainer, clip); timeField.RegisterValueChangedCallback <int>((ChangeEvent <int> evt) => { clip.Duration = evt.newValue; InitSecondsUI(secondsTickContainer, clip); }); var settingsButton = element.Q <Button>(null, "ClipSettingsButton"); settingsButton.clicked += () => this.modalManager.OpenClipSettingsModal(clip); var playButton = element.Q <Button>(null, "ClipPreviewButton"); playButton.clicked += () => this.StartVideo(false, this.currentSelectedProject.GetClipIndex(clip)); }
public void PlayTransition(MVideoClip clip, int clipIndex, MTransition transition) { if (transition.Type == MTransition.TransitionType.dipToBlack || transition.Type == MTransition.TransitionType.dipToWhite) { this.currentTime = 0; this.isPlaying = true; this.mTransition = transition; if (this.mTransition.isLeftTransition) { var color = this.getColor(); this.transitionColorMaterial.SetColor("_Color", new Color( color.r, color.g, color.b, 1)); } } else { this.ResetAll(); } }
private void MoveClip(MVideoClip clip, bool left) { int index = this.currentSelectedProject.clips.LastIndexOf(clip); int newIndex = index; if (left && index > 0) { newIndex = index - 1; } else if (!left && index < this.currentSelectedProject.clips.Count - 1) { newIndex = index + 1; } if (newIndex != index) { MVideoClip oldClip = this.currentSelectedProject.clips[newIndex]; this.currentSelectedProject.clips[newIndex] = clip; this.currentSelectedProject.clips[index] = oldClip; RefreshVideoClips(); } }