//gui function to be called during OnGUI
    public bool draw()
    {
        if (getFiles)
        {
            getFileList(currentDirectory);
            getFiles = false;
        }
        if (guiSkin)
        {
            oldSkin  = GUI.skin;
            GUI.skin = guiSkin;
        }
        GUILayout.BeginArea(guiSize);
        GUILayout.BeginVertical("box");
        switch (layout)
        {
        case 0:
            GUILayout.BeginHorizontal("box");
            GUILayout.FlexibleSpace();
            GUILayout.Label(currentDirectory.FullName);
            GUILayout.FlexibleSpace();
            if (showSearch)
            {
                drawSearchField();
                GUILayout.Space(10);
            }
            GUILayout.EndHorizontal();
            GUILayout.BeginHorizontal("box");
            GUILayout.BeginVertical(GUILayout.MaxWidth(300));
            folderScroll = GUILayout.BeginScrollView(folderScroll);
            if (showDrives)
            {
                foreach (DirectoryInformation di in drives)
                {
                    if (di.button())
                    {
                        getFileList(di.di);
                    }
                }
            }
            else
            {
                if ((backStyle != null)?parentDir.button(backStyle):parentDir.button())
                {
                    getFileList(parentDir.di);
                }
            }
            foreach (DirectoryInformation di in directories)
            {
                if (di.button())
                {
                    getFileList(di.di);
                }
            }
            GUILayout.EndScrollView();
            GUILayout.EndVertical();
            GUILayout.BeginVertical("box");
            if (isSearching)
            {
                drawSearchMessage();
            }
            else
            {
                fileScroll = GUILayout.BeginScrollView(fileScroll);
                for (int fi = 0; fi < files.Length; fi++)
                {
                    if (selectedFile == fi)
                    {
                        defaultColor = GUI.color;
                        GUI.color    = selectedColor;
                    }
                    if (files[fi].button())
                    {
                        outputFile   = files[fi].fi;
                        selectedFile = fi;
                    }
                    if (selectedFile == fi)
                    {
                        GUI.color = defaultColor;
                    }
                }
                GUILayout.EndScrollView();
            }
            GUILayout.BeginHorizontal("box");
            GUILayout.FlexibleSpace();
            if ((cancelStyle == null)?GUILayout.Button("Cancel"):GUILayout.Button("Cancel", cancelStyle))
            {
                outputFile = null;
                isSelect   = false;
                return(true);
            }
            GUILayout.FlexibleSpace();
            if ((selectStyle == null) ? GUILayout.Button("Select") : GUILayout.Button("Select", selectStyle))
            {
                isSelect = true;
                return(true);
            }
            GUILayout.FlexibleSpace();
            GUILayout.EndHorizontal();
            GUILayout.EndVertical();
            GUILayout.EndHorizontal();
            break;

        case 1:                 //mobile preferred layout
        default:
            if (showSearch)
            {
                GUILayout.BeginHorizontal("box");
                GUILayout.FlexibleSpace();
                drawSearchField();
                GUILayout.FlexibleSpace();
                GUILayout.EndHorizontal();
            }
            fileScroll = GUILayout.BeginScrollView(fileScroll);

            if (isSearching)
            {
                drawSearchMessage();
            }
            else
            {
                if (showDrives)
                {
                    GUILayout.BeginHorizontal();
                    foreach (DirectoryInformation di in drives)
                    {
                        if (di.button())
                        {
                            getFileList(di.di);
                        }
                    }
                    GUILayout.EndHorizontal();
                }
                else
                {
                    if ((backStyle != null)?parentDir.button(backStyle):parentDir.button())
                    {
                        getFileList(parentDir.di);
                    }
                }


                foreach (DirectoryInformation di in directories)
                {
                    if (di.button())
                    {
                        getFileList(di.di);
                    }
                }
                for (int fi = 0; fi < files.Length; fi++)
                {
                    if (selectedFile == fi)
                    {
                        defaultColor = GUI.color;
                        GUI.color    = selectedColor;
                    }
                    if (files[fi].button())
                    {
                        outputFile   = files[fi].fi;
                        selectedFile = fi;
                    }
                    if (selectedFile == fi)
                    {
                        GUI.color = defaultColor;
                    }
                }
            }
            GUILayout.EndScrollView();

            if ((selectStyle == null)?GUILayout.Button("Select"):GUILayout.Button("Select", selectStyle))
            {
                return(true);
            }
            if ((cancelStyle == null)?GUILayout.Button("Cancel"):GUILayout.Button("Cancel", cancelStyle))
            {
                outputFile = null;
                return(true);
            }
            break;
        }
        GUILayout.EndVertical();
        GUILayout.EndArea();
        if (guiSkin)
        {
            GUI.skin = oldSkin;
        }
        return(false);
    }
Beispiel #2
0
    //gui function to be called during OnGUI
    public bool draw()
    {
        if (getFiles)
        {
            getFileList(currentDirectory);
            getFiles = false;
        }
        if (guiSkin)
        {
            oldSkin  = GUI.skin;
            GUI.skin = guiSkin;
        }
        GUILayout.BeginArea(guiSize);
        GUILayout.BeginVertical("box");
        if (showSearch)
        {
            GUILayout.BeginHorizontal("box");
            GUILayout.FlexibleSpace();
            drawSearchField();
            GUILayout.FlexibleSpace();
            GUILayout.EndHorizontal();
        }
        fileScroll = GUILayout.BeginScrollView(fileScroll);


        if (showDrives)
        {
            GUILayout.BeginHorizontal();
            foreach (DirectoryInformation di in drives)
            {
                if (di.button())
                {
                    getFileList(di.di);
                }
            }
            GUILayout.EndHorizontal();
        }
        else
        {
            if ((backStyle != null) ? parentDir.button(backStyle) : parentDir.button())
            {
                getFileList(parentDir.di);
            }
        }


        foreach (DirectoryInformation di in directories)
        {
            if (di.button())
            {
                getFileList(di.di);
            }
        }
        for (int fi = 0; fi < files.Length; fi++)
        {
            if (selectedFile == fi)
            {
                defaultColor = GUI.color;
                GUI.color    = selectedColor;
            }
            if (files [fi].button())
            {
                outputFile   = files [fi].fi;
                selectedFile = fi;
                return(true);
            }
            if (selectedFile == fi)
            {
                GUI.color = defaultColor;
            }
        }

        GUILayout.EndScrollView();

        GUILayout.EndVertical();
        GUILayout.EndArea();
        if (guiSkin)
        {
            GUI.skin = oldSkin;
        }
        return(false);
    }
Beispiel #3
0
    //gui function to be called during OnGUI
    public int draw()
    {
        if (getFiles)
        {
            getFileList(currentDirectory);
            getFiles = false;
        }
        if (guiSkin)
        {
            oldSkin  = GUI.skin;
            GUI.skin = guiSkin;
        }
        GUILayout.BeginArea(guiSize);
        GUILayout.BeginVertical("box");
        switch (layout)
        {
        case 0:
            GUILayout.BeginHorizontal("box");
            GUILayout.FlexibleSpace();
            path = currentDirectory.FullName;
            GUILayout.Label(currentDirectory.FullName);
            GUILayout.FlexibleSpace();
            if (showSearch)
            {
                drawSearchField();
                GUILayout.Space(10);
            }
            GUILayout.EndHorizontal();
            GUILayout.BeginHorizontal("box");
            GUILayout.BeginVertical(GUILayout.MaxWidth(300));
            folderScroll = GUILayout.BeginScrollView(folderScroll);
            if (showDrives)
            {
                foreach (DirectoryInformation di in drives)
                {
                    if (di.button())
                    {
                        getFileList(di.di);
                    }
                }
            }
            else
            {
                if ((backStyle != null)?parentDir.button(backStyle):parentDir.button())
                {
                    getFileList(parentDir.di);
                }
            }
            foreach (DirectoryInformation di in directories)
            {
                if (di.button())
                {
                    getFileList(di.di);
                }
            }
            GUILayout.EndScrollView();
            GUILayout.EndVertical();
            GUILayout.BeginVertical("box");
            if (isSearching)
            {
                drawSearchMessage();
            }
            else
            {
                fileScroll = GUILayout.BeginScrollView(fileScroll);
                for (int fi = 0; fi < files.Length; fi++)
                {
                    if (selectedFile == fi)
                    {
                        defaultColor = GUI.color;
                        if (thisOne == fi)
                        {
                            GUI.color = selectedColor;
                        }
                    }
#if UNITY_EDITOR
                    if (files[fi].button())
                    {
                        outputFile   = files[fi].fi.ToString();
                        selectedFile = fi;
                        if (!one_click)     // first click no previous clicks
                        {
                            thisOne = -1;

                            one_click = true;
                            timer_for_double_click = Time.time;     // save the current time
                                                                    // do one click things;
                            which = fi;
                        }
                        else
                        {
                            one_click = false;     // found a double click, now reset
                            if (which == fi && (Time.time - timer_for_double_click) < delay)
                            {
                                thisOne = fi;
                                which   = -1;
                                return(1);
                            }
                            else if (which != fi)
                            {
                                thisOne   = -1;
                                which     = fi;
                                one_click = true;
                                timer_for_double_click = Time.time;
                            }
                        }
                    }
#else
                    if (files[fi].button())
                    {
#if UNITY_STANDALONE_OSX
                        outputFile = path + "/" + files[fi].fi.ToString();
#else
                        outputFile = path + "\\" + files[fi].fi.ToString();
#endif
                        selectedFile = fi;
                        if (!one_click)     // first click no previous clicks
                        {
                            thisOne = -1;

                            one_click = true;
                            timer_for_double_click = Time.time;     // save the current time
                                                                    // do one click things;
                            which = fi;
                        }
                        else
                        {
                            one_click = false;     // found a double click, now reset
                            if (which == fi && (Time.time - timer_for_double_click) < delay)
                            {
                                thisOne = fi;
                                which   = -1;
                                return(1);
                            }
                            else if (which != fi)
                            {
                                thisOne   = -1;
                                which     = fi;
                                one_click = true;
                                timer_for_double_click = Time.time;
                            }
                        }
                    }
#endif

                    if (selectedFile == fi)
                    {
                        GUI.color = defaultColor;
                    }
                }
                GUILayout.EndScrollView();
            }
            GUILayout.BeginHorizontal("box");
            GUILayout.FlexibleSpace();
            if ((cancelStyle == null)?GUILayout.Button("Odustani"):GUILayout.Button("Odustani", cancelStyle))
            {
                SceneManager.LoadScene("LoadObject");
                return(0);
            }
            GUILayout.FlexibleSpace();
            if ((selectStyle == null) ? GUILayout.Button("Završi odabir") : GUILayout.Button("Završi odabir", selectStyle))
            {
                return(2);
            }

            GUILayout.FlexibleSpace();
            GUILayout.EndHorizontal();
            GUILayout.EndVertical();
            GUILayout.EndHorizontal();
            break;

        case 1:                 //mobile preferred layout
        default:
            if (showSearch)
            {
                GUILayout.BeginHorizontal("box");
                GUILayout.FlexibleSpace();
                drawSearchField();
                GUILayout.FlexibleSpace();
                GUILayout.EndHorizontal();
            }
            fileScroll = GUILayout.BeginScrollView(fileScroll);

            if (isSearching)
            {
                drawSearchMessage();
            }
            else
            {
                if (showDrives)
                {
                    GUILayout.BeginHorizontal();
                    foreach (DirectoryInformation di in drives)
                    {
                        if (di.button())
                        {
                            getFileList(di.di);
                        }
                    }
                    GUILayout.EndHorizontal();
                }
                else
                {
                    if ((backStyle != null)?parentDir.button(backStyle):parentDir.button())
                    {
                        getFileList(parentDir.di);
                    }
                }


                foreach (DirectoryInformation di in directories)
                {
                    if (di.button())
                    {
                        getFileList(di.di);
                    }
                }
                for (int fi = 0; fi < files.Length; fi++)
                {
                    if (selectedFile == fi)
                    {
                        defaultColor = GUI.color;
                        GUI.color    = selectedColor;
                    }
#if UNITY_EDITOR
                    if (files[fi].button())
                    {
                        outputFile   = files[fi].fi.ToString();
                        selectedFile = fi;
                    }
#else
#if UNITY_STANDALONE_OSX
                    if (files[fi].button())
                    {
                        outputFile   = path + "/" + files[fi].fi.ToString();
                        selectedFile = fi;
                    }
#else
                    if (files[fi].button())
                    {
                        outputFile   = path + "\\" + files[fi].fi.ToString();
                        selectedFile = fi;
                    }
#endif
#endif
                    if (selectedFile == fi)
                    {
                        GUI.color = defaultColor;
                    }
                }
            }
            GUILayout.EndScrollView();

            //if((selectStyle == null)?GUILayout.Button("Odaberi"):GUILayout.Button("Odaberi",selectStyle)){	return 1;	}
            if ((cancelStyle == null)?GUILayout.Button("Odustani"):GUILayout.Button("Odustani", cancelStyle))
            {
                SceneManager.LoadScene("LoadObject");
                return(0);
            }
            if ((selectStyle == null) ? GUILayout.Button("Završi odabir") : GUILayout.Button("Završi odabir", selectStyle))
            {
                return(2);
            }
            break;
        }
        GUILayout.EndVertical();
        GUILayout.EndArea();
        if (guiSkin)
        {
            GUI.skin = oldSkin;
        }
        return(0);
    }