コード例 #1
0
        private static void AssignTag(FolderTagName tag, RainbowFolder folder)
        {
            var icons = FolderTagsStorage.Instance.GetIconsByTag(tag);

            folder.SmallIcon = icons.SmallIcon;
            folder.LargeIcon = icons.LargeIcon;
        }
コード例 #2
0
        //---------------------------------------------------------------------
        // Helpers
        //---------------------------------------------------------------------

        private static void Colorize(FolderColorName color, RainbowFolder folder)
        {
            var icons = FolderColorsStorage.Instance.GetIconsByColor(color);

            folder.SmallIcon = icons.SmallIcon;
            folder.LargeIcon = icons.LargeIcon;
        }
コード例 #3
0
        private static void AssingPlatform(FolderPlatformName platform, RainbowFolder folder)
        {
            var icons = FolderPlatformsStorage.Instance.GetIconsByType(platform);

            folder.SmallIcon = icons.SmallIcon;
            folder.LargeIcon = icons.LargeIcon;
        }
コード例 #4
0
        private static void AssingType(FolderTypeName type, RainbowFolder folder)
        {
            var icons = FolderTypesStorage.Instance.GetIconsByType(type);

            folder.SmallIcon = icons.SmallIcon;
            folder.LargeIcon = icons.LargeIcon;
        }
コード例 #5
0
        public void ShowWithParams(Vector2 inPosition, List <string> paths, int pathIndex)
        {
            _paths    = paths;
            _settings = RainbowFoldersSettings.Instance;

            var size = paths.Count;

            _existingFolders = new RainbowFolder[size];
            _currentFolder   = new RainbowFolder(KeyType.Path, paths[pathIndex]);

            for (var i = 0; i < size; i++)
            {
                _existingFolders[i] = _settings.GetFolderByPath(paths[i]);
            }

            if (_existingFolders[pathIndex] != null)
            {
                _currentFolder.CopyFrom(_existingFolders[pathIndex]);
            }

            // Resize

            var customIconHeight       = (_currentFolder.IsIconCustom) ? LINE_HEIGHT * 2f : 0f;
            var customBackgroundHeight = (_currentFolder.IsBackgroundCustom) ? LINE_HEIGHT : 0f;

            var rect = new Rect(inPosition, WINDOW_SIZE)
            {
                height = WINDOW_HEIGHT + customIconHeight + customBackgroundHeight
            };

            _windowRect     = new Rect(Vector2.zero, rect.size);
            _backgroundRect = new Rect(Vector2.one, rect.size - new Vector2(2f, 2f));

            Show <RainbowFoldersPopup>(rect);
        }
コード例 #6
0
 private static void SelectNone(RainbowFolder folder)
 {
     folder.SmallIcon       = null;
     folder.LargeIcon       = null;
     folder.IsIconRecursive = false;
     folder.IsIconCustom    = false;
 }
コード例 #7
0
        //---------------------------------------------------------------------
        // Public
        //---------------------------------------------------------------------

        public static void ShowDropDown(Rect position, RainbowFolder folder)
        {
            var menu = new GenericMenu();

            // Colors
            menu.AddItem(COLOR_RED, false, RedCallback, folder);
            menu.AddItem(COLOR_VERMILION, false, VermilionCallback, folder);
            menu.AddItem(COLOR_ORANGE, false, OrangeCallback, folder);
            menu.AddItem(COLOR_YELLOW_ORANGE, false, YellowOrangeCallback, folder);
            menu.AddItem(COLOR_YELLOW, false, YellowCallback, folder);
            menu.AddItem(COLOR_LIME, false, LimeCallback, folder);
            menu.AddItem(COLOR_GREEN, false, GreenCallback, folder);
            menu.AddItem(COLOR_BONDI_BLUE, false, BondiBlueCallback, folder);
            menu.AddItem(COLOR_BLUE, false, BlueCallback, folder);
            menu.AddItem(COLOR_INDIGO, false, IndigoCallback, folder);
            menu.AddItem(COLOR_VIOLET, false, VioletCallback, folder);
            menu.AddItem(COLOR_MAGENTA, false, MagentaCallback, folder);

            // Tags
            menu.AddItem(TAG_RED, false, TagRedCallback, folder);
            menu.AddItem(TAG_VERMILION, false, TagVermilionCallback, folder);
            menu.AddItem(TAG_ORANGE, false, TagOrangeCallback, folder);
            menu.AddItem(TAG_YELLOW_ORANGE, false, TagYellowOrangeCallback, folder);
            menu.AddItem(TAG_YELLOW, false, TagYellowCallback, folder);
            menu.AddItem(TAG_LIME, false, TagLimeCallback, folder);
            menu.AddItem(TAG_GREEN, false, TagGreenCallback, folder);
            menu.AddItem(TAG_CYAN, false, TagCyanCallback, folder);
            menu.AddItem(TAG_BLUE, false, TagBlueCallback, folder);
            menu.AddItem(TAG_DARK_BLUE, false, TagDarkBlueCallback, folder);
            menu.AddItem(TAG_VIOLET, false, TagVioletCallback, folder);
            menu.AddItem(TAG_MAGENTA, false, TagMagentaCallback, folder);

            //Types
            menu.AddItem(TYPE_AUDIO, false, AudioCallback, folder);
            menu.AddItem(TYPE_BRACKETS, false, BracketsCallback, folder);
            menu.AddItem(TYPE_EDITOR, false, EditorCallback, folder);
            menu.AddItem(TYPE_EXTENSIONS, false, ExtensionsCallback, folder);
            menu.AddItem(TYPE_FONTS, false, FontsCallback, folder);
            menu.AddItem(TYPE_MATERIALS, false, MaterialsCallback, folder);
            menu.AddItem(TYPE_MESHES, false, MeshesCallback, folder);
            menu.AddItem(TYPE_PLUGINS, false, PluginsCallback, folder);
            menu.AddItem(TYPE_PREFABS, false, PrefabsCallback, folder);
            menu.AddItem(TYPE_RAINBOW, false, RainbowCallback, folder);
            menu.AddItem(TYPE_RESOURCES, false, ResourcesCallback, folder);
            menu.AddItem(TYPE_SCENES, false, ScenesCallback, folder);
            menu.AddItem(TYPE_SCRIPTS, false, ScriptsCallback, folder);
            menu.AddItem(TYPE_SHADERS, false, ShadersCallback, folder);
            menu.AddItem(TYPE_TERRAINS, false, TerrainsCallback, folder);
            menu.AddItem(TYPE_TEXTURES, false, TexturesCallback, folder);

            //Platfroms
            menu.AddItem(PLATFORM_ANDROID, false, AndroidCallback, folder);
            menu.AddItem(PLATFORM_IOS, false, IosCallback, folder);
            menu.AddItem(PLATFORM_MAC, false, MacCallback, folder);
            menu.AddItem(PLATFORM_WEBGL, false, WebGLCallback, folder);
            menu.AddItem(PLATFORM_WINDOWS, false, WindowsCallback, folder);

            menu.DropDown(position);
        }
コード例 #8
0
        private static void AssingPlatform(FolderPlatformName platform, RainbowFolder folder)
        {
            FolderIconPair icons = FolderPlatformsStorage.Instance.GetIconsByType(platform);

            folder.SmallIcon    = icons.SmallIcon;
            folder.LargeIcon    = icons.LargeIcon;
            folder.IsIconCustom = false;
        }
コード例 #9
0
        private static void AssignTag(FolderTagName tag, RainbowFolder folder)
        {
            FolderIconPair icons = FolderTagsStorage.Instance.GetIconsByTag(tag);

            folder.SmallIcon    = icons.SmallIcon;
            folder.LargeIcon    = icons.LargeIcon;
            folder.IsIconCustom = false;
        }
コード例 #10
0
        //---------------------------------------------------------------------
        // Helpers
        //---------------------------------------------------------------------

        private static void Colorize(FolderColorName color, RainbowFolder folder)
        {
            FolderIconPair icons = FolderColorsStorage.Instance.GetIconsByColor(color);

            folder.SmallIcon    = icons.SmallIcon;
            folder.LargeIcon    = icons.LargeIcon;
            folder.IsIconCustom = false;
        }
コード例 #11
0
        private static void AssingType(FolderTypeName type, RainbowFolder folder)
        {
            FolderIconPair icons = FolderTypesStorage.Instance.GetIconsByType(type);

            folder.SmallIcon    = icons.SmallIcon;
            folder.LargeIcon    = icons.LargeIcon;
            folder.IsIconCustom = false;
        }
コード例 #12
0
        private static void DrawIconPopupMenu(Rect rect, RainbowFolder folder)
        {
            string menuName;

            if (folder.IsIconCustom)
            {
                menuName = "Custom";
            }
            else
            {
                menuName = folder.SmallIcon != null ? folder.SmallIcon.name : "None";
            }
            if (GUI.Button(rect, new GUIContent(menuName), "popup"))
            {
                RainbowFoldersIconsMenu.ShowDropDown(rect, folder);
            }
        }
コード例 #13
0
        private static void DrawBackgroundPopupMenu(Rect rect, RainbowFolder folder)
        {
            string menuName;

            if (folder.IsBackgroundCustom)
            {
                menuName = "Custom";
            }
            else
            {
                menuName = folder.Background != null ? folder.Background.name : "None";
            }
            if (GUI.Button(rect, new GUIContent(menuName), "popup"))
            {
                RainbowFoldersBackgroundsMenu.ShowDropDown(rect, folder);
            }
        }
コード例 #14
0
        private static void ReplaceFolderIcon(string guid, Rect rect)
        {
            string path = AssetDatabase.GUIDToAssetPath(guid);

            if (!AssetDatabase.IsValidFolder(path))
            {
                return;
            }

            RainbowFoldersSettings setting = RainbowFoldersSettings.Instance;

            if (setting == null)
            {
                return;
            }
            RainbowFolder folder = RainbowFoldersSettings.Instance.GetFolderByPath(path, true);

            if (folder == null)
            {
                return;
            }

            bool isSmall = IsIconSmall(rect);

            // Backround
            Texture2D backgroundTex = folder.Background;

            if (backgroundTex != null)
            {
                Rect backgroundRect = GetBackgroundRect(rect, isSmall);
                DrawCustomBackground(backgroundRect, backgroundTex);
            }

            // Icon
            Texture2D iconTex = isSmall ? folder.SmallIcon : folder.LargeIcon;

            if (iconTex != null)
            {
                Rect iconRect = GetIconRect(rect, isSmall);
                DrawCustomIcon(guid, iconRect, iconTex, isSmall);
            }
        }
コード例 #15
0
        //---------------------------------------------------------------------
        // Public
        //---------------------------------------------------------------------

        public static void ShowDropDown(Rect position, RainbowFolder folder)
        {
            GenericMenu menu = new GenericMenu();

            // Colors
            menu.AddItem(COLOR_RED, false, RedCallback, folder);
            menu.AddItem(COLOR_VERMILION, false, VermilionCallback, folder);
            menu.AddItem(COLOR_ORANGE, false, OrangeCallback, folder);
            menu.AddItem(COLOR_AMBER, false, AmberCallback, folder);
            menu.AddItem(COLOR_YELLOW, false, YellowCallback, folder);
            menu.AddItem(COLOR_LIME, false, LimeCallback, folder);
            menu.AddItem(COLOR_CHARTREUSE, false, ChartreuseCallback, folder);
            menu.AddItem(COLOR_HARLEQUIN, false, HarlequinCallback, folder);
            menu.AddSeparator(MENU_COLORIZE);
            menu.AddItem(COLOR_GREEN, false, GreenCallback, folder);
            menu.AddItem(COLOR_EMERALD, false, EmeraldCallback, folder);
            menu.AddItem(COLOR_SPRING_GREEN, false, SpringGreenCallback, folder);
            menu.AddItem(COLOR_AQUAMARINE, false, AquamarineCallback, folder);
            menu.AddItem(COLOR_CYAN, false, CyanCallback, folder);
            menu.AddItem(COLOR_SKY_BLUE, false, SkyBlueCallback, folder);
            menu.AddItem(COLOR_AZURE, false, AzureCallback, folder);
            menu.AddItem(COLOR_CERULEAN, false, CeruleanCallback, folder);
            menu.AddSeparator(MENU_COLORIZE);
            menu.AddItem(COLOR_BLUE, false, BlueCallback, folder);
            menu.AddItem(COLOR_INDIGO, false, IndigoCallback, folder);
            menu.AddItem(COLOR_VIOLET, false, VioletCallback, folder);
            menu.AddItem(COLOR_PURPLE, false, PurpleCallback, folder);
            menu.AddItem(COLOR_MAGENTA, false, MagentaCallback, folder);
            menu.AddItem(COLOR_FUCHSIA, false, FuchsiaCallback, folder);
            menu.AddItem(COLOR_ROSE, false, RoseCallback, folder);
            menu.AddItem(COLOR_CRIMSON, false, CrimsonCallback, folder);
            // Separator
            menu.AddSeparator(string.Empty);
            // Custom
            menu.AddItem(SELECT_CUSTOM, false, SelectCustomCallback, folder);
            // None
            menu.AddItem(SELECT_NONE, false, SelectNoneCallback, folder);

            menu.DropDown(position);
        }
コード例 #16
0
        public void ShowWithParams(Vector2 position, string[] paths, int pathIndex)
        {
            _paths    = paths;
            _settings = RainbowFoldersSettings.Instance;

            var size = paths.Length;

            _existingFolders = new RainbowFolder[size];
            _currentFolder   = new RainbowFolder(KeyType.Path, paths[pathIndex]);

            for (var i = 0; i < size; i++)
            {
                _existingFolders[i] = _settings.GetFolderByPath(paths[i]);
            }

            if (_existingFolders[pathIndex] != null)
            {
                _currentFolder.CopyFrom(_existingFolders[pathIndex]);
            }

            var rect = new Rect(position, WINDOW_SIZE);

            Show <RainbowFoldersPopup>(rect);
        }
コード例 #17
0
        //---------------------------------------------------------------------
        // Helpers
        //---------------------------------------------------------------------

        private static void Colorize(FolderColorName color, RainbowFolder folder)
        {
            folder.Background         = FolderColorsStorage.Instance.GetBackgroundByColor(color);
            folder.IsBackgroundCustom = false;
        }
コード例 #18
0
 private static void SelectCustom(RainbowFolder folder)
 {
     folder.IsBackgroundCustom = true;
 }
コード例 #19
0
 private static void SelectNone(RainbowFolder folder)
 {
     folder.Background            = null;
     folder.IsBackgroundRecursive = false;
     folder.IsBackgroundCustom    = false;
 }
コード例 #20
0
        //---------------------------------------------------------------------
        // Public
        //---------------------------------------------------------------------

        public static void ShowDropDown(Rect position, RainbowFolder folder)
        {
            var menu = new GenericMenu();

            // Colors
            menu.AddItem(COLOR_RED, false, RedCallback, folder);
            menu.AddItem(COLOR_VERMILION, false, VermilionCallback, folder);
            menu.AddItem(COLOR_ORANGE, false, OrangeCallback, folder);
            menu.AddItem(COLOR_AMBER, false, AmberCallback, folder);
            menu.AddItem(COLOR_YELLOW, false, YellowCallback, folder);
            menu.AddItem(COLOR_LIME, false, LimeCallback, folder);
            menu.AddItem(COLOR_CHARTREUSE, false, ChartreuseCallback, folder);
            menu.AddItem(COLOR_HARLEQUIN, false, HarlequinCallback, folder);
            menu.AddSeparator(MENU_COLORIZE);
            menu.AddItem(COLOR_GREEN, false, GreenCallback, folder);
            menu.AddItem(COLOR_EMERALD, false, EmeraldCallback, folder);
            menu.AddItem(COLOR_SPRING_GREEN, false, SpringGreenCallback, folder);
            menu.AddItem(COLOR_AQUAMARINE, false, AquamarineCallback, folder);
            menu.AddItem(COLOR_CYAN, false, CyanCallback, folder);
            menu.AddItem(COLOR_SKY_BLUE, false, SkyBlueCallback, folder);
            menu.AddItem(COLOR_AZURE, false, AzureCallback, folder);
            menu.AddItem(COLOR_CERULEAN, false, CeruleanCallback, folder);
            menu.AddSeparator(MENU_COLORIZE);
            menu.AddItem(COLOR_BLUE, false, BlueCallback, folder);
            menu.AddItem(COLOR_INDIGO, false, IndigoCallback, folder);
            menu.AddItem(COLOR_VIOLET, false, VioletCallback, folder);
            menu.AddItem(COLOR_PURPLE, false, PurpleCallback, folder);
            menu.AddItem(COLOR_MAGENTA, false, MagentaCallback, folder);
            menu.AddItem(COLOR_FUCHSIA, false, FuchsiaCallback, folder);
            menu.AddItem(COLOR_ROSE, false, RoseCallback, folder);
            menu.AddItem(COLOR_CRIMSON, false, CrimsonCallback, folder);

            // Tags
            menu.AddItem(TAG_RED, false, TagRedCallback, folder);
            menu.AddItem(TAG_VERMILION, false, TagVermilionCallback, folder);
            menu.AddItem(TAG_ORANGE, false, TagOrangeCallback, folder);
            menu.AddItem(TAG_AMBER, false, TagAmberCallback, folder);
            menu.AddItem(TAG_YELLOW, false, TagYellowCallback, folder);
            menu.AddItem(TAG_LIME, false, TagLimeCallback, folder);
            menu.AddItem(TAG_CHARTREUSE, false, TagChartreuseCallback, folder);
            menu.AddItem(TAG_HARLEQUIN, false, TagHarlequinCallback, folder);
            menu.AddSeparator(MENU_TAG);
            menu.AddItem(TAG_GREEN, false, TagGreenCallback, folder);
            menu.AddItem(TAG_EMERALD, false, TagEmeraldCallback, folder);
            menu.AddItem(TAG_SPRING_GREEN, false, TagSpringGreenCallback, folder);
            menu.AddItem(TAG_AQUAMARINE, false, TagAquamarineCallback, folder);
            menu.AddItem(TAG_CYAN, false, TagCyanCallback, folder);
            menu.AddItem(TAG_SKY_BLUE, false, TagSkyBlueCallback, folder);
            menu.AddItem(TAG_AZURE, false, TagAzureCallback, folder);
            menu.AddItem(TAG_CERULEAN, false, TagCeruleanCallback, folder);
            menu.AddSeparator(MENU_TAG);
            menu.AddItem(TAG_BLUE, false, TagBlueCallback, folder);
            menu.AddItem(TAG_INDIGO, false, TagIndigoCallback, folder);
            menu.AddItem(TAG_VIOLET, false, TagVioletCallback, folder);
            menu.AddItem(TAG_PURPLE, false, TagPurpleCallback, folder);
            menu.AddItem(TAG_MAGENTA, false, TagMagentaCallback, folder);
            menu.AddItem(TAG_FUCHSIA, false, TagFuchsiaCallback, folder);
            menu.AddItem(TAG_ROSE, false, TagRoseCallback, folder);
            menu.AddItem(TAG_CRIMSON, false, TagCrimsonCallback, folder);

            //Types
            menu.AddItem(TYPE_ANIMATIONS, false, AnimationsCallback, folder);
            menu.AddItem(TYPE_AUDIO, false, AudioCallback, folder);
            menu.AddItem(TYPE_EDITOR, false, EditorCallback, folder);
            menu.AddItem(TYPE_EXTENSIONS, false, ExtensionsCallback, folder);
            menu.AddItem(TYPE_FLARES, false, FlaresCallback, folder);
            menu.AddItem(TYPE_FONTS, false, FontsCallback, folder);
            menu.AddItem(TYPE_MATERIALS, false, MaterialsCallback, folder);
            menu.AddItem(TYPE_MESHES, false, MeshesCallback, folder);
            menu.AddItem(TYPE_PLUGINS, false, PluginsCallback, folder);
            menu.AddItem(TYPE_PHYSICS, false, PhysicsCallback, folder);
            menu.AddItem(TYPE_PREFABS, false, PrefabsCallback, folder);
            menu.AddItem(TYPE_PROJECT, false, ProjectCallback, folder);
            menu.AddItem(TYPE_RAINBOW, false, RainbowCallback, folder);
            menu.AddItem(TYPE_RESOURCES, false, ResourcesCallback, folder);
            menu.AddItem(TYPE_SCENES, false, ScenesCallback, folder);
            menu.AddItem(TYPE_SCRIPTS, false, ScriptsCallback, folder);
            menu.AddItem(TYPE_SHADERS, false, ShadersCallback, folder);
            menu.AddItem(TYPE_TERRAINS, false, TerrainsCallback, folder);
            menu.AddItem(TYPE_TEXTURES, false, TexturesCallback, folder);

            //Platfroms
            menu.AddItem(PLATFORM_ANDROID, false, AndroidCallback, folder);
            menu.AddItem(PLATFORM_IOS, false, IosCallback, folder);
            menu.AddItem(PLATFORM_MAC, false, MacCallback, folder);
            menu.AddItem(PLATFORM_WEBGL, false, WebGLCallback, folder);
            menu.AddItem(PLATFORM_WINDOWS, false, WindowsCallback, folder);

            // Separator
            menu.AddSeparator(string.Empty);
            // Custom
            menu.AddItem(SELECT_CUSTOM, false, SelectCustomCallback, folder);
            // None
            menu.AddItem(SELECT_NONE, false, SelectNoneCallback, folder);

            menu.DropDown(position);
        }
コード例 #21
0
 private static void SelectCustom(RainbowFolder folder)
 {
     folder.IsIconCustom = true;
 }