Exemplo n.º 1
0
        void onContextMenu_MoveToTop(object userData)
        {
            FavorityItem item = (FavorityItem)userData;

            items.Remove(item);
            items.Insert(0, item);
        }
Exemplo n.º 2
0
        void onContextMenu_MoveToBottom(object userData)
        {
            FavorityItem item = (FavorityItem)userData;

            items.Remove(item);
            items.Add(item);
        }
Exemplo n.º 3
0
        void removeItem(FavorityItem item)
        {
            items.Remove(item);
            highlightedItem = null;

            save();
        }
Exemplo n.º 4
0
        void onContextMenu_MoveDown(object userData)
        {
            FavorityItem item = (FavorityItem)userData;

            int index = items.IndexOf(item);

            if (index < items.Count - 1)
            {
                items.RemoveAt(index);
                items.Insert(index + 1, item);
            }
        }
Exemplo n.º 5
0
        void onContextMenu_MoveUp(object userData)
        {
            FavorityItem item = (FavorityItem)userData;

            int index = items.IndexOf(item);

            if (index > 0)
            {
                items.RemoveAt(index);
                items.Insert(index - 1, item);
            }
        }
Exemplo n.º 6
0
        void onNameChanged(string newName)
        {
            //Debug.Log("onNameChanged");

            if (editedItem != null)
            {
                editedItem.customName = newName;
                editedItem            = null;

                save();
                Repaint();
            }
        }
Exemplo n.º 7
0
        void open(FavorityItem item)
        {
            if (item.isAsset)
            {
                //AssetDatabase.OpenAsset(item.unityObject);

                // maybe less direct, but will also open folders in explorer... nice!
                string path = AssetDatabase.GetAssetPath(item.unityObject);
                EditorUtility.OpenWithDefaultApp(path);
            }
            else
            {
                Selection.activeObject = item.unityObject;
                SceneView.FrameLastActiveSceneView();
            }
        }
Exemplo n.º 8
0
        void showContextMenu(FavorityItem item)
        {
            GenericMenu menu = new GenericMenu();

            menu.AddItem(new GUIContent("Rename shortcut"), false, onContextMenu_Rename, item);
            menu.AddItem(new GUIContent("Delete shortcut"), false, onContextMenu_Delete, item);
            menu.AddSeparator("");
            menu.AddItem(new GUIContent("Move up"), false, onContextMenu_MoveUp, item);
            menu.AddItem(new GUIContent("Move down"), false, onContextMenu_MoveDown, item);
            menu.AddItem(new GUIContent("Move to top"), false, onContextMenu_MoveToTop, item);
            menu.AddItem(new GUIContent("Move to bottom"), false, onContextMenu_MoveToBottom, item);
            menu.AddSeparator("");
            menu.AddItem(new GUIContent("Select"), false, onContextMenu_Select, item);
            menu.AddItem(new GUIContent("Open"), false, onContextMenu_Open, item);

            menu.ShowAsContext();
        }
Exemplo n.º 9
0
        void select(FavorityItem item)
        {
            Selection.activeObject = item.unityObject;
            EditorGUIUtility.PingObject(item.unityObject);

            //Object[] windows = Resources.FindObjectsOfTypeAll(typeof(EditorWindow));
            //foreach (EditorWindow window in windows)
            //{
            //	Debug.Log(window.title + " - " + window.GetType().Name);
            //}

            /*if (AssetDatabaseExt.IsDirectory(item.unityObject))
             * {
             *      Debug.Log("dir");
             *      AssetDatabase.OpenAsset(item.unityObject);
             * }
             * else
             * {
             *      Selection.activeObject = item.unityObject;
             * }*/
        }
Exemplo n.º 10
0
 void startRename(FavorityItem item)
 {
     editedItem = item;
     TextInputDialog.show(item.name, onNameChanged);
 }
Exemplo n.º 11
0
        void onContextMenu_Delete(object userData)
        {
            FavorityItem item = (FavorityItem)userData;

            removeItem(item);
        }
Exemplo n.º 12
0
        void onContextMenu_Rename(object userData)
        {
            FavorityItem item = (FavorityItem)userData;

            startRename(item);
        }
Exemplo n.º 13
0
        void onContextMenu_Open(object userData)
        {
            FavorityItem item = (FavorityItem)userData;

            open(item);
        }
Exemplo n.º 14
0
        void onContextMenu_Select(object userData)
        {
            FavorityItem item = (FavorityItem)userData;

            select(item);
        }
Exemplo n.º 15
0
        Rect drawItem(int _itemIndex, bool _isDragged, Rect _dragRect)
        {
            var item = items[_itemIndex];

            GUIStyle style;

            if (item.unityObject)
            {
                itemContent.text  = item.name;
                itemContent.image = item.icon;

                style = (item == highlightedItem) ? Styles.itemHighlight : Styles.itemNormal;
            }
            else
            {
                itemContent.text  = "'{0}' (missing)".format(item.unityObjectName);
                itemContent.image = null;

                style = Styles.itemMissing;
            }

            // reserve the rect even if dragged
            var rect = GUILayoutUtility.GetRect(itemContent, style);             // lazy but this gets the whole width for some reason, yay!

            if (_isDragged)
            {
                var size = Styles.itemDragged.CalcSize(itemContent);
                _dragRect = new Rect(_dragRect.x, _dragRect.y, size.x, size.y);
                GUI.Box(_dragRect, itemContent, Styles.itemDragged);

                return(rect);
            }


            GUI.Label(rect, itemContent, style);

            switch (@event.type)
            {
            // highlight & select on click / open on double-click
            case EventType.MouseDown:
            {
                Rect labelRect = GUILayoutUtility.GetLastRect();
                if (labelRect.Contains(Event.current.mousePosition))
                {
                    highlightedItem = item;

                    switch (Event.current.clickCount)
                    {
                    case 1:
                        select(item);
                        Event.current.Use();
                        break;

                    case 2:
                        open(item);
                        Event.current.Use();
                        break;
                    }
                }
            }
            break;

            // context menu
            case EventType.ContextClick:
            {
                Rect labelRect = GUILayoutUtility.GetLastRect();
                if (labelRect.Contains(Event.current.mousePosition))
                {
                    showContextMenu(item);
                    Event.current.Use();
                }
            }
            break;
            }

            return(rect);
        }