public CurveTrackTreeViewItem(string name, CurveTrack curveTrack, BaseTrackBar trackBar, KeyType keyType) { this.CurveTrack = curveTrack; this.TrackBar = trackBar; this.KeyType = keyType; this.ColumnDefinitions.Add(22, GridUnitType.Pixel); this.ColumnDefinitions.Add(1, GridUnitType.Star); this.ColumnDefinitions.Add(20, GridUnitType.Pixel); _TbVisible = new Skill.Editor.UI.ToggleButton() { Column = 0, IsChecked = TrackBar.Visibility == Skill.Framework.UI.Visibility.Visible, Margin = new Thickness(2, 0, 0, 0) }; _LblName = new Label() { Column = 1, Text = name }; this.Controls.Add(_TbVisible); this.Controls.Add(_LblName); _TbVisible.Changed += _TbVisible_Changed; }
public void Add(BaseTrackBar trackBar) { // avoid edit same trackBar twice foreach (FolderView folder in _TreeView.Controls) { if ((BaseTrackBar)folder.UserData == trackBar) { return; } } Curve.CurveEditor.EditCurveInfo[] curves = Curve.CurveEditor.GetCurves(trackBar.Track); if (curves != null && curves.Length > 0) { trackBar.IsEditingCurves = true; FolderView folder = new FolderView(); folder.UserData = trackBar; folder.Foldout.Content.text = trackBar.Track.gameObject.name; folder.Foldout.IsOpen = true; folder.ContextMenu = new CurveGroupContextMenu(this); int keyTypeValue = 1; foreach (var c in curves) { CurveTrack track = _CurveEditor.AddCurve(c.GetCurve(), c.Attribute.Color); CurveTrackTreeViewItem item = new CurveTrackTreeViewItem(c.Attribute.Name, track, trackBar, (KeyType)keyTypeValue); folder.Controls.Add(item); _TreeView.Controls.Add(folder); keyTypeValue *= 2; } } }
protected override void updateHeaderControl3(UnityEngine.Rect position) { CurveTrack track = TargetTrack.Behaviour as CurveTrack; if (track == null) { return; } Color temp = GUI.color; GUI.color = (track.TimelineItems.Length > 0) ? Color.green : Color.red; if (GUI.Button(position, string.Empty, TrackGroupControl.styles.AddIcon)) { addNewCurveItem(track); } GUI.color = temp; }
internal static CinemaActorClipCurve CreateActorClipCurve(CurveTrack track) { string name = DirectorHelper.getCutsceneItemName(track.gameObject, CURVE_CLIP_NAME_DEFAULT, typeof(CinemaActorClipCurve)); GameObject item = new GameObject(name); item.transform.parent = track.transform; CinemaActorClipCurve clip = item.AddComponent <CinemaActorClipCurve>(); SortedDictionary <float, CinemaActorClipCurve> sortedItems = new SortedDictionary <float, CinemaActorClipCurve>(); foreach (CinemaActorClipCurve c in track.TimelineItems) { sortedItems.Add(c.Firetime, c); } float latestTime = 0; float length = DEFAULT_CURVE_LENGTH; foreach (CinemaActorClipCurve c in sortedItems.Values) { if (latestTime >= c.Firetime) { latestTime = Mathf.Max(latestTime, c.Firetime + c.Duration); } else { length = c.Firetime - latestTime; break; } } clip.Firetime = latestTime; clip.Duration = length; return(clip); }
protected override void showBodyContextMenu(Event evt) { CurveTrack itemTrack = TargetTrack.Behaviour as CurveTrack; if (itemTrack == null) { return; } Behaviour b = DirectorCopyPaste.Peek(); PasteContext pasteContext = new PasteContext(evt.mousePosition, itemTrack); GenericMenu createMenu = new GenericMenu(); if (b != null && DirectorHelper.IsTrackItemValidForTrack(b, itemTrack)) { createMenu.AddItem(new GUIContent("Paste"), false, pasteItem, pasteContext); } else { createMenu.AddDisabledItem(new GUIContent("Paste")); } createMenu.ShowAsContext(); }
private void addNewCurveItem(CurveTrack track) { Undo.RegisterCreatedObjectUndo(CutsceneItemFactory.CreateActorClipCurve(track), "Created Actor Clip Curve"); }
public PasteContext(Vector2 mousePosition, CurveTrack track) { this.mousePosition = mousePosition; this.track = track; }