private static void ShowWindow(ReUniterMode mode)
        {
            if (PreviousWindow != null)
            {
                if (PreviousWindow.mode.SearchLabel == mode.SearchLabel) //reusing existing window
                {
                    return;
                }
                PreviousWindow.Close();
            }
            var reUniter = CreateInstance <ReUniterWindow>();

            reUniter.wantsMouseMove = true;
            reUniter.mode           = mode;
            if (mode.MoveWindowMode)
            {
                reUniter.minSize = new Vector2(WINDOW_WIDTH, MOVE_WINDOW_HEIGHT);
                reUniter.maxSize = new Vector2(WINDOW_WIDTH, MOVE_WINDOW_HEIGHT);
                reUniter.ShowUtility();
                reUniter.position = PositionRect(MOVE_WINDOW_HEIGHT);
            }
            else
            {
                var positionRect = PositionRect(WINDOW_HEIGHT);
                positionRect.y -= positionRect.height;
                reUniter.ShowAsDropDown(positionRect, new Vector2(WINDOW_WIDTH, WINDOW_HEIGHT - 1));
            }
            PreviousWindow = reUniter;
        }
        static void RecentItems()
        {
            var recentItemsMode = new ReUniterMode
            {
                RefreshAction = RefreshRecentItemInfos,
                SearchLabel   = "Enter Recent Item Name:",
                LoadItem      = LoadUnityObjects
            };

            if (PreviousWindow != null && PreviousWindow.mode.SearchLabel == recentItemsMode.SearchLabel)
            {
                PreviousWindow.selectAll = false;
                PreviousWindow.selectedIndex++;
                PreviousWindow.Repaint();
            }
            else
            {
                ShowWindow(recentItemsMode);
            }
        }