Esempio n. 1
0
        private static void FillContextAddFolders(FolderManagerInputInfo inputInfo, GenericMenu contextMenu)
        {
            var state = inputInfo.FolderTreeState;

            contextMenu.AddItem(new GUIContent("Add Folder"), false, CreateContextCallback,
                                new FolderManagerInputInfo("Test Message", state));
        }
Esempio n. 2
0
        public static void HandleLateInputEvents(FolderTreeViewState state)
        {
            if (ShouldIgnoreInput())
            {
                return;
            }
            var inputInfo = new FolderManagerInputInfo(state);

            CallEventHandlers(inputInfo, true);
        }
Esempio n. 3
0
        private static void DeleteFolder(FolderManagerInputInfo inputInfo)
        {
            foreach (var item in inputInfo.FolderTreeState.GetSelectedItems())
            {
                var element =
                    inputInfo.FolderTreeState.Cache.FolderTree.TreeElements.FirstOrDefault(s => s.Id == item.id);

                DeleteChildren(inputInfo, element);
            }

            inputInfo.InputEvent.Use();
        }
Esempio n. 4
0
 private static void DeleteChildren(FolderManagerInputInfo inputInfo, FolderTreeElement element)
 {
     if (element.HasChildren)
     {
         foreach (var treeElement in element.Children)
         {
             var el = treeElement as FolderTreeElement;
             inputInfo.FolderTreeState.Cache.FolderTree.RemoveElement(el);
             DeleteChildren(inputInfo, el);
         }
     }
     else
     {
         inputInfo.FolderTreeState.Cache.FolderTree.RemoveElement(element);
     }
     FolderManagerCallbacks.IssueOnDeleteElement(element);
 }
Esempio n. 5
0
 private static void CallEventHandlers(FolderManagerInputInfo inputInfo, bool late)
 {
     object[] parameter = { inputInfo };
     foreach (var eventHandler in _eventHandlers)
     {
         if ((eventHandler.Key.HandledEvent == null ||
              eventHandler.Key.HandledEvent == inputInfo.InputEvent.type) &&
             (late ? eventHandler.Key.Priority >= 100 : eventHandler.Key.Priority < 100))
         {
             // Event is happening and specified priority is ok with the late-state
             eventHandler.Value.DynamicInvoke(parameter);
             if (inputInfo.InputEvent.type == EventType.Used)
             {
                 return;
             }
         }
     }
 }
Esempio n. 6
0
        private static void HandleContextClicks(FolderManagerInputInfo inputInfo)
        {
            if (Event.current.button != 1)
            {
                return;
            }
            var contextMenu = new GenericMenu();

            if (inputInfo.FolderTreeState.SelectedItem != null)
            {
                FillContextMenu(inputInfo, contextMenu, ContextType.Folder);
            }
            else
            {
                FillContextMenu(inputInfo, contextMenu, ContextType.FolderTree);
            }

            contextMenu.Show(inputInfo.InputPos);
            Event.current.Use();
        }
Esempio n. 7
0
 private static void FillContextMenu(FolderManagerInputInfo inputInfo, GenericMenu contextMenu,
                                     ContextType contextType)
 {
     foreach (var contextEntry in _contextEntries)
     {
         if (contextEntry.Key.ContextType == contextType)
         {
             contextMenu.AddItem(new GUIContent(contextEntry.Key.ContextPath), false, contextEntry.Value,
                                 inputInfo);
         }
     }
     object[] fillerParams =
     {
         inputInfo, contextMenu
     };
     foreach (var contextFiller in _contextFillers)
     {
         if (contextFiller.Key.ContextType == contextType)
         {
             contextFiller.Value.DynamicInvoke(fillerParams);
         }
     }
 }