示例#1
0
        void BottomBar(Rect bottomRect)
        {
            int currentID = m_TreeView.GetSelection().FirstOrDefault();   // 0 is none selected

            // Refresh cached string
            if (currentID != m_LastSelectedID)
            {
                m_LastSelectedID = currentID;
                m_SelectedPath   = "";
                var selected = m_TreeView.FindItem(currentID);
                if (selected != null)
                {
                    StringBuilder sb   = new StringBuilder();
                    var           item = selected;
                    while (item != null && item != m_TreeView.data.root)
                    {
                        if (item != selected)
                        {
                            sb.Insert(0, "/");
                        }
                        sb.Insert(0, item.displayName);
                        item = item.parent;
                    }
                    m_SelectedPath = sb.ToString();
                }
            }

            GUI.Label(bottomRect, GUIContent.none, s_Styles.bottomBarBg);
            if (!string.IsNullOrEmpty(m_SelectedPath))
            {
                GUI.Label(bottomRect, GUIContent.Temp(m_SelectedPath), EditorStyles.miniLabel);
            }
        }
        void ItemDoubleClickedCallback(int id)
        {
            var trackGUI = m_TreeView.FindItem(id) as TimelineTrackGUI;

            if (trackGUI == null)
            {
                return;
            }

            if (trackGUI.track == null || trackGUI.track.lockedInHierarchy)
            {
                return;
            }

            var selection      = SelectionManager.SelectedItems().ToList();
            var items          = ItemsUtils.GetItems(trackGUI.track).ToList();
            var addToSelection = !selection.SequenceEqual(items);

            foreach (var i in items)
            {
                if (addToSelection)
                {
                    SelectionManager.Add(i);
                }
                else
                {
                    SelectionManager.Remove(i);
                }
            }
        }
        internal void ItemDoubleClickedCallback(int id)
        {
            var gui      = m_TreeView.FindItem(id);
            var trackGUI = gui as TimelineTrackGUI;

            if (trackGUI != null)
            {
                if (trackGUI.track == null || trackGUI.track.lockedInHierarchy)
                {
                    return;
                }
                var selection      = SelectionManager.SelectedItems().ToList();
                var items          = ItemsUtils.GetItems(trackGUI.track).ToList();
                var addToSelection = !selection.SequenceEqual(items);

                foreach (var i in items)
                {
                    if (addToSelection)
                    {
                        SelectionManager.Add(i);
                    }
                    else
                    {
                        SelectionManager.Remove(i);
                    }
                }

                return;
            }

            if (gui is TimelineGroupGUI groupGUI)
            {
                KeyboardNavigation.ToggleCollapseGroup(new[] { groupGUI.track });
            }
        }
示例#4
0
        public void AddSiblingGroupPopupCallback(object obj)
        {
            AudioMixerGroupPopupContext context = (AudioMixerGroupPopupContext)obj;

            if (context.groups != null && context.groups.Length > 0)
            {
                var item = m_AudioGroupTree.FindItem(context.groups[0].GetInstanceID()) as AudioMixerTreeViewNode;
                if (item != null)
                {
                    var parent = item.parent as AudioMixerTreeViewNode;
                    AddAudioMixerGroup(parent.group);
                }
            }
        }
示例#5
0
 internal void TestSelectionCallback(int[] selected)
 {
     if (m_TestListTree != null && selected.Length == 1)
     {
         if (m_TestListTree != null)
         {
             var node = m_TestListTree.FindItem(selected[0]);
             if (node is TestTreeViewItem)
             {
                 var test = node as TestTreeViewItem;
                 m_ResultText       = test.GetResultText();
                 m_ResultStacktrace = test.result.stacktrace;
             }
         }
     }
     else if (selected.Length == 0)
     {
         m_ResultText = "";
     }
 }
        public void OnTreeViewContextClick(int index)
        {
            AudioMixerItem node = (AudioMixerItem)m_TreeView.FindItem(index);

            if (node != null)
            {
                GenericMenu pm = new GenericMenu();
                pm.AddItem(EditorGUIUtility.TrTextContent("Delete AudioMixer"), false, DeleteAudioMixerCallback, node.mixer);
                pm.ShowAsContext();
            }
        }
示例#7
0
        public void RefreshCurves()
        {
            if (m_ClipDataSource == null || m_Selection == null)
            {
                return;
            }

            var bindings = new List <EditorCurveBinding>();

            foreach (int s in m_Selection)
            {
                var item = (CurveTreeViewNode)m_TreeView.FindItem(s);
                if (item != null && item.bindings != null)
                {
                    bindings.AddRange(item.bindings);
                }
            }

            AnimationClip clip           = m_ClipDataSource.animationClip;
            var           wrappers       = new List <CurveWrapper>();
            int           curveWrapperId = 0;

            foreach (EditorCurveBinding b in bindings)
            {
                var wrapper = new CurveWrapper
                {
                    id       = curveWrapperId++,
                    binding  = b,
                    groupId  = -1,
                    color    = CurveUtility.GetPropertyColor(b.propertyName),
                    hidden   = false,
                    readOnly = false,
                    renderer = new NormalCurveRenderer(AnimationUtility.GetEditorCurve(clip, b)),
                    getAxisUiScalarsCallback = GetAxisScalars
                };

                wrapper.renderer.SetCustomRange(0.0f, clip.length);
                wrappers.Add(wrapper);
            }

            m_CurveEditor.animationCurves = wrappers.ToArray();
        }
        void HandleKeyboardEvents()
        {
            Event evt = Event.current;

            if (evt.type == EventType.KeyDown &&
                (evt.keyCode == KeyCode.Space ||
                 evt.keyCode == KeyCode.Return ||
                 evt.keyCode == KeyCode.KeypadEnter))
            {
                if (m_Selection != null && m_Selection.Length > 0)
                {
                    SketchUpNode node = m_TreeView.FindItem(m_Selection[0]) as SketchUpNode;
                    if (node != null && node != m_DataSource.root)
                    {
                        node.Enabled = !node.Enabled;
                        evt.Use();
                        Repaint();
                    }
                }
            }
        }
示例#9
0
        public void RefreshCurves()
        {
            if (m_CurveDataSource == null || m_Selection == null)
            {
                return;
            }

            var bindings = new HashSet <EditorCurveBinding>(AnimationPreviewUtilities.EditorCurveBindingComparer.Instance);

            foreach (int s in m_Selection)
            {
                var item = (CurveTreeViewNode)m_TreeView.FindItem(s);
                if (item != null && item.bindings != null)
                {
                    bindings.UnionWith(item.bindings);
                }
            }
            var wrappers = m_CurveDataSource.GenerateWrappers(bindings);

            m_CurveEditor.animationCurves = wrappers.ToArray();
        }
        public void RefreshCurves()
        {
            if (m_CurveDataSource == null || m_Selection == null)
            {
                return;
            }

            var bindings = new List <EditorCurveBinding>();

            foreach (int s in m_Selection)
            {
                var item = (CurveTreeViewNode)m_TreeView.FindItem(s);
                if (item != null && item.bindings != null)
                {
                    bindings.AddRange(item.bindings);
                }
            }

            var wrappers = m_CurveDataSource.GenerateWrappers(bindings);

            m_CurveEditor.animationCurves = wrappers.ToArray();
        }