public void OnGUI()
    {
        GUILayout.BeginArea(
            m_screenRect,
            m_name,
            GUI.skin.window
            );
        GUILayout.BeginHorizontal();
        for (int parentIndex = 0; parentIndex < m_currentDirectoryParts.Length; ++parentIndex)
        {
            if (parentIndex == m_currentDirectoryParts.Length - 1)
            {
                GUILayout.Label(m_currentDirectoryParts[parentIndex], CentredText);
            }
            else if (GUILayout.Button(m_currentDirectoryParts[parentIndex]))
            {
                string parentDirectoryName = m_currentDirectory;
                for (int i = m_currentDirectoryParts.Length - 1; i > parentIndex; --i)
                {
                    parentDirectoryName = Path.GetDirectoryName(parentDirectoryName);
                }
                SetNewDirectory(parentDirectoryName);
            }
        }
        GUILayout.FlexibleSpace();
        GUILayout.EndHorizontal();
        m_scrollPosition = GUILayout.BeginScrollView(
            m_scrollPosition,
            false,
            true,
            GUI.skin.horizontalScrollbar,
            GUI.skin.verticalScrollbar,
            GUI.skin.box
            );
        m_selectedDirectory = GUILayoutx.SelectionList(
            m_selectedDirectory,
            m_directoriesWithImages,
            DirectoryDoubleClickCallback
            );
        if (m_selectedDirectory > -1)
        {
            m_selectedFile = m_selectedNonMatchingDirectory = -1;
        }
        m_selectedNonMatchingDirectory = GUILayoutx.SelectionList(
            m_selectedNonMatchingDirectory,
            m_nonMatchingDirectoriesWithImages,
            NonMatchingDirectoryDoubleClickCallback
            );
        if (m_selectedNonMatchingDirectory > -1)
        {
            m_selectedDirectory = m_selectedFile = -1;
        }
        GUI.enabled    = BrowserType == FileBrowserType.File;
        m_selectedFile = GUILayoutx.SelectionList(
            m_selectedFile,
            m_filesWithImages,
            FileDoubleClickCallback
            );
        GUI.enabled = true;
        if (m_selectedFile > -1)
        {
            m_selectedDirectory = m_selectedNonMatchingDirectory = -1;
        }
        GUI.enabled = false;
        GUILayoutx.SelectionList(
            -1,
            m_nonMatchingFilesWithImages
            );
        GUI.enabled = true;
        GUILayout.EndScrollView();
        GUILayout.BeginHorizontal();
        UIData.loadHireRNA = GUILayout.Toggle(UIData.loadHireRNA, "HiRERNA model");
        UIData.readHetAtom = GUILayout.Toggle(UIData.readHetAtom, "Read HetAtm?");
        UIData.readWater   = GUILayout.Toggle(UIData.readWater, "Read Water?");
        GUILayout.EndHorizontal();
        GUILayout.BeginHorizontal();
        GUILayout.FlexibleSpace();
        if (GUILayout.Button("Cancel", GUILayout.Width(buttonWidth)))
        {
            m_callback(null);
        }
        if (BrowserType == FileBrowserType.File)
        {
            GUI.enabled = m_selectedFile > -1;
        }
        else
        {
            if (SelectionPattern == null)
            {
                GUI.enabled = m_selectedDirectory > -1;
            }
            else
            {
                GUI.enabled = m_selectedDirectory > -1 ||
                              (
                    m_currentDirectoryMatches &&
                    m_selectedNonMatchingDirectory == -1 &&
                    m_selectedFile == -1
                              );
            }
        }
        if (GUILayout.Button("Select", GUILayout.Width(buttonWidth)))
        {
            if (BrowserType == FileBrowserType.File)
            {
                m_callback(Path.Combine(m_currentDirectory, m_files[m_selectedFile]));
            }
            else
            {
                if (m_selectedDirectory > -1)
                {
                    m_callback(Path.Combine(m_currentDirectory, m_directories[m_selectedDirectory]));
                }
                else
                {
                    m_callback(m_currentDirectory);
                }
            }
        }
        GUI.enabled = true;
        GUILayout.EndHorizontal();
        GUILayout.EndArea();

        if (Event.current.type == EventType.Repaint)
        {
            SwitchDirectoryNow();
        }
    }
예제 #2
0
    public void OnGUI()
    {
        GUILayout.BeginArea(m_screenRect, "", GUI.skin.window);
        GUILayout.BeginVertical();
        GUILayout.FlexibleSpace();

        GUILayout.Label("Select song", CentredText);
        GUILayout.EndVertical();
        GUILayout.BeginHorizontal();

        if (!selectDrive)
        {
            GameObject.Find("FolderButton").SetActive(true);
            selectDrive = true;

            for (int parentIndex = 0; parentIndex < m_currentDirectoryParts.Length; parentIndex++)
            {
                if (m_currentDirectoryParts.Length == 1)
                {
                    GUI.enabled = false;
                    GUILayout.Button(m_currentDirectoryParts[0]);
                    GUI.enabled = true;
                }
                else
                {
                    if (parentIndex == m_currentDirectoryParts.Length - 1)
                    {
                        GUI.enabled = false;
                        GUILayout.Button(m_currentDirectoryParts[parentIndex]);
                        GUI.enabled = true;
                    }
                    else if (GUILayout.Button(m_currentDirectoryParts[parentIndex]))
                    {
                        string parentDirectoryName = m_currentDirectory;

                        for (int i = m_currentDirectoryParts.Length - 1; i > parentIndex; --i)
                        {
                            parentDirectoryName = Path.GetDirectoryName(parentDirectoryName);
                        }

                        SetNewDirectory(parentDirectoryName);
                    }
                }
            }
        }
        else
        {
            GUI.enabled = false;
            GUILayout.Button("Computer");
            GUI.enabled = true;
        }

        GUILayout.FlexibleSpace();
        GUILayout.EndHorizontal();

        m_scrollPosition = GUILayout.BeginScrollView(m_scrollPosition, false, true, GUI.skin.horizontalScrollbar,
                                                     GUI.skin.verticalScrollbar, GUI.skin.box, GUILayout.Height(270));

        if (!selectDrive)
        {
            m_selectedDirectory = GUILayoutx.SelectionList(m_selectedDirectory, m_directoriesWithImages,
                                                           DirectoryDoubleClickCallback);
            if (m_selectedDirectory > -1)
            {
                m_selectedFile = m_selectedNonMatchingDirectory = -1;
            }

            m_selectedNonMatchingDirectory = GUILayoutx.SelectionList(m_selectedNonMatchingDirectory, m_nonMatchingDirectoriesWithImages,
                                                                      NonMatchingDirectoryDoubleClickCallback);
            if (m_selectedNonMatchingDirectory > -1)
            {
                m_selectedDirectory = m_selectedFile = -1;
            }

            GUI.enabled    = BrowserType == MusicBrowserType.File;
            m_selectedFile = GUILayoutx.SelectionList(m_selectedFile, m_filesWithImages,
                                                      FileDoubleClickCallback);
            GUI.enabled = true;
            if (m_selectedFile > -1)
            {
                m_selectedDirectory = m_selectedNonMatchingDirectory = -1;
            }

            if (m_filePattern == null)
            {
                GUI.enabled = false;
                GUILayoutx.SelectionList(-1, m_nonMatchingFilesWithImages);
                GUI.enabled = true;
            }
        }
        else
        {
            selectedDrive = GUILayoutx.SelectionList(selectedDrive, drivesContent, DrivesDoubleClickCallback);
            if (selectedDrive >= 0)
            {
                m_selectedFile = m_selectedNonMatchingDirectory = -1;
            }
        }

        GUILayout.EndScrollView();
        GUILayout.BeginHorizontal();
        GUILayout.FlexibleSpace();

        if (GUILayout.Button("Cancel", GUILayout.Width(150)))
        {
            m_callback("");
        }

        if (BrowserType == MusicBrowserType.File)
        {
            GUI.enabled = m_selectedFile > -1;
        }
        else
        {
            if (m_filePattern == null)
            {
                GUI.enabled = m_selectedDirectory > -1;
            }
            else
            {
                GUI.enabled = m_selectedDirectory > -1 ||
                              (m_currentDirectoryMatches && m_selectedNonMatchingDirectory == -1 && m_selectedFile == -1);
            }
        }

        if (GUILayout.Button("Select", GUILayout.Width(150)))
        {
            if (BrowserType == MusicBrowserType.File)
            {
                SaveLastD(CurrentDirectory);
                m_callback(Path.Combine(m_currentDirectory, m_files[m_selectedFile]));
            }
            else
            {
                if (m_selectedDirectory > -1)
                {
                    SaveLastD(CurrentDirectory);
                    m_callback(Path.Combine(m_currentDirectory, m_directories[m_selectedDirectory]));
                }
                else
                {
                    SaveLastD(CurrentDirectory);
                    m_callback(m_currentDirectory);
                }
            }
        }

        GUI.enabled = true;
        GUILayout.EndHorizontal();
        GUILayout.EndArea();

        if (Event.current.type == EventType.Repaint)
        {
            SwitchDirectoryNow();
        }
    }
예제 #3
0
    void DrawSaveLoadGUI(int WindowID)
    {
        if (Application.platform == RuntimePlatform.OSXWebPlayer ||
            Application.platform == RuntimePlatform.WindowsWebPlayer ||
            Application.platform == RuntimePlatform.NaCl)
        {
            GUI.Label(new Rect(10, 20, 500, 80), "Please download the desktop application to save and/or load. Save & load will, hopefully, be available later in the webplayer.");
        }
        else if (Application.platform == RuntimePlatform.WindowsPlayer ||
                 Application.platform == RuntimePlatform.OSXPlayer ||
                 Application.platform == RuntimePlatform.OSXEditor ||
                 Application.platform == RuntimePlatform.WindowsEditor)
        {
            if (_simpleSaveLoadMode)
            {
                if (_simpleSelectingFileToLoad == false)
                {
                    _saveDirectoryPath = Directory.GetCurrentDirectory() + "\\Maps";

                    //Name and description stuff
                    GUI.Label(new Rect(10, 15, 350, 20), "Name:");
                    _saveName = GUI.TextArea(new Rect(10, 35, 350, 20), _saveName, 50);
                    GUI.Label(new Rect(10, 55, 350, 20), "Description:");
                    _saveDescription = GUI.TextArea(new Rect(10, 75, 350, 60), _saveDescription, 150);

                    if (GUI.Button(new Rect(10, 145, 170, 30), "Save!"))
                    {
                        SaveMap();
                    }
                    if (GUI.Button(new Rect(190, 145, 170, 30), "Load!"))
                    {
                        string mapFolderPath = Directory.GetCurrentDirectory() + "\\Maps";
                        Directory.CreateDirectory(mapFolderPath);
                        _simpleLoadFilesArray = Directory.GetFiles(mapFolderPath, "*." + LevelFileExtension);
                        for (int i = 0, l = _simpleLoadFilesArray.Length; i < l; ++i)
                        {
                            int lastIndexOf = _simpleLoadFilesArray[i].LastIndexOf("\\");
                            _simpleLoadFilesArray[i] = _simpleLoadFilesArray[i].Remove(0, lastIndexOf + 1);
                            lastIndexOf = _simpleLoadFilesArray[i].LastIndexOf(".");
                            _simpleLoadFilesArray[i] = _simpleLoadFilesArray[i].Remove(lastIndexOf);
                        }
                        _simpleSelectingFileToLoad = true;
                    }
                }
                else
                {
                    GUI.Label(new Rect(10, 15, 350, 20), "Select Map to Load:");
                    if (_simpleLoadFilesArray.Length == 0)
                    {
                        GUI.Label(new Rect(10, 35, 350, 20), "No Maps Found :(");
                        if (GUI.Button(new Rect(10, 55, 350, 30), "Ok"))
                        {
                            _simpleSelectingFileToLoad = false;
                        }
                    }
                    else
                    {
                        _simpleLoadScrollPosition = GUI.BeginScrollView(new Rect(10, 35, 350, 190), _simpleLoadScrollPosition, new Rect(0, 0, 320, _simpleLoadFilesArray.Length * 20 + 40));
                        _simpleLoadFileID         = GUILayoutx.SelectionList(_simpleLoadFileID, _simpleLoadFilesArray, SimpleLoadMap);
                        GUI.EndScrollView();
                    }
                }
            }
            else
            {
                //Name and description stuff
                GUI.Label(new Rect(10, 15, 350, 20), "Name:");
                _saveName = GUI.TextArea(new Rect(10, 35, 350, 20), _saveName, 50);
                GUI.Label(new Rect(10, 55, 350, 20), "Description:");
                _saveDescription = GUI.TextArea(new Rect(10, 75, 350, 60), _saveDescription, 150);

                if (_saveDirectoryBrowser == null && _loadFileBrowser == null)
                {
                    _saveLoadWindowRect.width  = _nonBrowsingSize.width;
                    _saveLoadWindowRect.height = _nonBrowsingSize.height;

                    //SAVE
                    if (GUI.Button(new Rect(10, 145, 290, 30),
                                   _saveDirectoryPath == null ? "Select Save Directory..." : _saveDirectoryPath
                                   ))
                    {
                        _saveDirectoryBrowser             = new FileBrowser("Select Save Directory", SaveDirectorySelected);
                        _saveDirectoryBrowser.BrowserType = FileBrowserType.Directory;
                    }
                    if (GUI.Button(new Rect(310, 145, 50, 30), "Save!"))
                    {
                        SaveMap();
                    }

                    //LOAD
                    if (GUI.Button(new Rect(10, 185, 290, 30),
                                   _loadFilePath == null ? "Select File to Load..." : _loadFilePath
                                   ))
                    {
                        _loadFileBrowser                  = new FileBrowser("Select File To Load", LoadFileSelected);
                        _loadFileBrowser.BrowserType      = FileBrowserType.File;
                        _loadFileBrowser.SelectionPattern = "*." + LevelFileExtension;
                    }
                    if (GUI.Button(new Rect(310, 185, 50, 30), "Load!"))
                    {
                        LoadMap();
                    }
                }
                else
                {
                    _saveLoadWindowRect.width  = _browsingSize.width;
                    _saveLoadWindowRect.height = _browsingSize.height;

                    if (_saveDirectoryBrowser != null)
                    {
                        DrawSaveGUI();
                    }
                    else
                    {
                        _loadFileBrowser.OnGUI();
                    }
                }
            }
        }
        else
        {
            GUI.Label(new Rect(10, 20, 200, 50), "Please download the desktop application to save and/or load.");
        }

        DrawGUIWindowCloseButton(ref _drawSaveLoadWindow);
        GUI.DragWindow(new Rect(0, 0, 10000, 20));
    }
예제 #4
0
 protected void OnGUI()
 {
     GUI.skin         = skinWithListStyle;
     currentSelection = GUILayoutx.SelectionList(currentSelection, myList, DoubleClickItem);
 }
예제 #5
0
    public void OnGUI()
    {
        GUI.enabled = true;
        GUILayout.BeginArea(m_screenRect, m_name, GUI.skin.window);
        GUILayout.BeginHorizontal();
        if (m_currentDirectoryParts.Length == 0)                          // special case: drive selection
        {
            GUILayout.Label("PC", CentredText);
        }
        else
        {
            if (Directory.GetLogicalDrives().Length > 1)                              // go to drive selection if possible
            {
                if (GUILayout.Button("PC"))
                {
                    SetNewDirectory(string.Empty);
                }
            }
            for (int parentIndex = 0; parentIndex < m_currentDirectoryParts.Length; ++parentIndex)
            {
                if (parentIndex == m_currentDirectoryParts.Length - 1)
                {
                    GUILayout.Label(m_currentDirectoryParts[parentIndex], CentredText);
                }
                else if (GUILayout.Button(m_currentDirectoryParts[parentIndex]))
                {
                    string parentDirectoryName = m_currentDirectory;
                    for (int i = m_currentDirectoryParts.Length - 1; i > parentIndex; --i)
                    {
                        parentDirectoryName = Path.GetDirectoryName(parentDirectoryName);
                    }
                    SetNewDirectory(parentDirectoryName);
                }
            }
        }
        GUILayout.FlexibleSpace();
        GUILayout.EndHorizontal();
        m_scrollPosition = GUILayout.BeginScrollView(
            m_scrollPosition,
            false,
            true,
            GUI.skin.horizontalScrollbar,
            GUI.skin.verticalScrollbar,
            GUI.skin.box
            );

        m_selectedDirectory = GUILayoutx.SelectionList(
            m_selectedDirectory,
            m_directoriesWithImages,
            DirectoryDoubleClickCallback
            );
        if (m_selectedDirectory > -1)
        {
            m_selectedFile = m_selectedNonMatchingDirectory = -1;
        }
        m_selectedNonMatchingDirectory = GUILayoutx.SelectionList(
            m_selectedNonMatchingDirectory,
            m_nonMatchingDirectoriesWithImages,
            NonMatchingDirectoryDoubleClickCallback
            );
        if (m_selectedNonMatchingDirectory > -1)
        {
            m_selectedDirectory = m_selectedFile = -1;
        }
        GUI.enabled    = BrowserType == FileBrowserType.File;
        m_selectedFile = GUILayoutx.SelectionList(
            m_selectedFile,
            m_filesWithImages,
            FileDoubleClickCallback
            );
        GUI.enabled = true;
        if (m_selectedFile > -1)
        {
            m_selectedDirectory = m_selectedNonMatchingDirectory = -1;
        }
        GUI.enabled = false;
        GUILayoutx.SelectionList(
            -1,
            m_nonMatchingFilesWithImages
            );
        GUI.enabled = true;
        GUILayout.EndScrollView();
        GUILayout.BeginHorizontal();
        GUILayout.FlexibleSpace();
        if (GUILayout.Button("Cancel", GUILayout.Width(50)))
        {
            m_callback(null);
        }
        if (BrowserType == FileBrowserType.File)
        {
            GUI.enabled = m_selectedFile > -1;
        }
        else
        {
            if (SelectionPattern == null)
            {
                GUI.enabled = m_selectedDirectory > -1;
            }
            else
            {
                GUI.enabled = m_selectedDirectory > -1 ||
                              (
                    m_currentDirectoryMatches &&
                    m_selectedNonMatchingDirectory == -1 &&
                    m_selectedFile == -1
                              );
            }
        }
        if (GUILayout.Button("Select", GUILayout.Width(50)))
        {
            if (BrowserType == FileBrowserType.File)
            {
                m_callback(Path.Combine(m_currentDirectory, m_files[m_selectedFile]));
            }
            else
            {
                if (m_selectedDirectory > -1)
                {
                    m_callback(Path.Combine(m_currentDirectory, m_directories[m_selectedDirectory]));
                }
                else
                {
                    m_callback(m_currentDirectory);
                }
            }
        }
        GUI.enabled = true;
        GUILayout.EndHorizontal();
        GUILayout.EndArea();

        if (Event.current.type == EventType.Repaint)
        {
            SwitchDirectoryNow();
        }
    }