CallDelayed() static private method

static private CallDelayed ( CallbackFunction function, float timeFromNow ) : void
function CallbackFunction
timeFromNow float
return void
示例#1
0
        // Returns true if started renaming
        public bool BeginRename(string name, int userData, float delay)
        {
            if (m_IsRenaming)
            {
                return(false);
            }

            m_Name               = name;
            m_OriginalName       = name;
            m_UserData           = userData;
            m_UserAcceptedRename = false;
            m_IsWaitingForDelay  = delay > 0f;
            m_IsRenaming         = true;
            m_EditFieldRect      = new Rect(0, 0, 0, 0);
            m_ClientGUIView      = GUIView.current;

            if (delay > 0f)
            {
                EditorApplication.CallDelayed(BeginRenameInternalCallback, delay);
            }
            else
            {
                BeginRenameInternalCallback();
            }
            return(true);
        }
示例#2
0
 public bool BeginRename(string name, int userData, float delay)
 {
     if (EditorApplication.timeSinceStartup - this.s_RenameEndedTime < 0.2)
     {
         return(false);
     }
     if (this.m_IsRenaming)
     {
         Debug.Log("BeginRename fail: already renaming");
         return(false);
     }
     this.m_Name               = name;
     this.m_OriginalName       = name;
     this.m_UserData           = userData;
     this.m_UserAcceptedRename = false;
     this.m_IsWaitingForDelay  = (delay > 0f);
     this.m_IsRenaming         = true;
     this.m_EditFieldRect      = new Rect(0f, 0f, 0f, 0f);
     this.m_ClientGUIView      = GUIView.current;
     if (delay > 0f)
     {
         EditorApplication.CallDelayed(new EditorApplication.CallbackFunction(this.BeginRenameInternalCallback), delay);
     }
     else
     {
         this.BeginRenameInternalCallback();
     }
     return(true);
 }
        private void RestoreLockStateFromSerializedData()
        {
            if (m_Tracker == null)
            {
                return;
            }

            // try to retrieve all Objects from their stored instance ids in the list.
            // this is only used for non persistent objects (scene objects)

            if (m_InstanceIDsLockedBeforeSerialization.Count > 0)
            {
                for (int i = 0; i < m_InstanceIDsLockedBeforeSerialization.Count; i++)
                {
                    Object instance = EditorUtility.InstanceIDToObject(m_InstanceIDsLockedBeforeSerialization[i]);
                    //don't add null objects (i.e.
                    if (instance)
                    {
                        m_ObjectsLockedBeforeSerialization.Add(instance);
                    }
                }
            }

            for (int i = m_ObjectsLockedBeforeSerialization.Count - 1; i >= 0; i--)
            {
                if (m_ObjectsLockedBeforeSerialization[i] == null)
                {
                    m_ObjectsLockedBeforeSerialization.RemoveAt(i);
                }
            }

            // set the tracker to the serialized list. if it contains nulls or is empty, the tracker won't lock
            // this fixes case 775007
            m_Tracker.SetObjectsLockedByThisTracker(m_ObjectsLockedBeforeSerialization);
            // since this method likely got called during OnEnable, and rebuilding the tracker could call OnDisable on all Editors,
            // some of which might not have gotten their enable yet, the rebuilding needs to happen delayed in EditorApplication.update
            EditorApplication.CallDelayed(tracker.RebuildIfNecessary, 0f);
        }
 internal static void UpdateWindowMenuListing()
 {
     EditorApplication.CallDelayed(EditorWindow.BuildWindowMenuListing);
 }
示例#5
0
 public static void CloseToolbarWindows()
 {
     // Make sure browser-side code finishes executing before we kill the window
     EditorApplication.CallDelayed(CloseToolbarWindowsImmediately, 1f);
 }
示例#6
0
 private void DelayCheckProgressUnresponsive()
 {
     EditorApplication.update -= CheckProgressUnresponsive;
     EditorApplication.CallDelayed(CheckProgressUnresponsive, 0.250);
 }
示例#7
0
        internal void SearchFieldGUI(float maxWidth)
        {
            Rect rect = GUILayoutUtility.GetRect(EditorGUILayout.kLabelFloatMaxW * 0.2f, maxWidth, EditorGUI.kSingleLineHeight, EditorGUI.kSingleLineHeight, EditorStyles.toolbarSearchFieldWithJump);

            if (Event.current.type == EventType.MouseDown && rect.Contains(Event.current.mousePosition))
            {
                ClickedSearchField();
            }

            GUI.SetNextControlName("SearchFilter");
            if (m_FocusSearchField)
            {
                EditorGUI.FocusTextInControl("SearchFilter");
                if (Event.current.type == EventType.Repaint)
                {
                    m_FocusSearchField = false;
                }
            }

            int searchMode = (int)m_SearchMode;

            if (Event.current.type == EventType.KeyDown && Event.current.keyCode == KeyCode.Escape && GUI.GetNameOfFocusedControl() == "SearchFilter")
            {
                SetSearchFilter("", (SearchMode)searchMode, true, true);
            }

            string[] enumStrings          = System.Enum.GetNames(m_HierarchyType == HierarchyType.GameObjects ? typeof(SearchModeHierarchyWindow) : typeof(SearchMode));
            int      searchFieldControlId = GUIUtility.GetControlID(s_SearchableEditorWindowSearchField, FocusType.Keyboard, rect);

            EditorGUI.BeginChangeCheck();
            string searchFilter =
                EditorGUI.ToolbarSearchField(
                    searchFieldControlId,
                    rect,
                    enumStrings,
                    ref searchMode,
                    m_SearchFilter,
                    m_SyncSearch ? EditorStyles.toolbarSearchFieldWithJumpPopupSynced : EditorStyles.toolbarSearchFieldWithJumpPopup,
                    m_SyncSearch ? EditorStyles.toolbarSearchFieldWithJumpSynced : EditorStyles.toolbarSearchFieldWithJump,
                    string.IsNullOrEmpty(m_SearchFilter) ? EditorStyles.toolbarSearchFieldCancelButtonWithJumpEmpty : EditorStyles.toolbarSearchFieldCancelButtonWithJump);

            if (EditorGUI.EndChangeCheck())
            {
                m_SearchMode            = (SearchMode)searchMode;
                m_SearchStringDebounced = searchFilter;
                m_DeregisterDebounceCall?.Invoke();
                m_DeregisterDebounceCall = EditorApplication.CallDelayed(SetSearchFilterDebounced, SearchUtils.debounceThresholdMs / 1000f);
            }

            m_HasSearchFilterFocus = GUIUtility.keyboardControl == searchFieldControlId;

            if (Event.current.type == EventType.KeyDown && Event.current.keyCode == KeyCode.Escape && m_SearchFilter != "" && GUIUtility.hotControl == 0)
            {
                m_SearchFilter = "";
                SetSearchFilter("", (SearchMode)searchMode, true, true);
                Event.current.Use();
                m_HasSearchFilterFocus = false;
            }

            if (m_HasSearchFilterFocus)
            {
                SearchService.SearchService.HandleSearchEvent(this, Event.current, m_SearchFilter);
            }
            SearchService.SearchService.DrawOpenSearchButton(this, m_SearchFilter);
        }
示例#8
0
 internal static void UpdateWindowMenuListing()
 {
     s_UpdateWindowMenuListingOff?.Invoke();
     s_UpdateWindowMenuListingOff = EditorApplication.CallDelayed(BuildWindowMenuListing);
 }