private static void AssignTag(FolderTagName tag, RainbowFolder folder) { var icons = FolderTagsStorage.Instance.GetIconsByTag(tag); folder.SmallIcon = icons.SmallIcon; folder.LargeIcon = icons.LargeIcon; }
//--------------------------------------------------------------------- // Helpers //--------------------------------------------------------------------- private static void Colorize(FolderColorName color, RainbowFolder folder) { var icons = FolderColorsStorage.Instance.GetIconsByColor(color); folder.SmallIcon = icons.SmallIcon; folder.LargeIcon = icons.LargeIcon; }
private static void AssingPlatform(FolderPlatformName platform, RainbowFolder folder) { var icons = FolderPlatformsStorage.Instance.GetIconsByType(platform); folder.SmallIcon = icons.SmallIcon; folder.LargeIcon = icons.LargeIcon; }
private static void AssingType(FolderTypeName type, RainbowFolder folder) { var icons = FolderTypesStorage.Instance.GetIconsByType(type); folder.SmallIcon = icons.SmallIcon; folder.LargeIcon = icons.LargeIcon; }
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); }
private static void SelectNone(RainbowFolder folder) { folder.SmallIcon = null; folder.LargeIcon = null; folder.IsIconRecursive = false; folder.IsIconCustom = false; }
//--------------------------------------------------------------------- // 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); }
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; }
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; }
//--------------------------------------------------------------------- // 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; }
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; }
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); } }
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); } }
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); } }
//--------------------------------------------------------------------- // 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); }
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); }
//--------------------------------------------------------------------- // Helpers //--------------------------------------------------------------------- private static void Colorize(FolderColorName color, RainbowFolder folder) { folder.Background = FolderColorsStorage.Instance.GetBackgroundByColor(color); folder.IsBackgroundCustom = false; }
private static void SelectCustom(RainbowFolder folder) { folder.IsBackgroundCustom = true; }
private static void SelectNone(RainbowFolder folder) { folder.Background = null; folder.IsBackgroundRecursive = false; folder.IsBackgroundCustom = false; }
//--------------------------------------------------------------------- // 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); }
private static void SelectCustom(RainbowFolder folder) { folder.IsIconCustom = true; }