Example #1
0
        private void IconGUI()
        {
            EditorGUILayout.BeginVertical(EditorStyles.helpBox);

            EditorGUILayout.BeginHorizontal();
            EditorGUILayout.LabelField("Folder Icon", EditorStyles.boldLabel);
            if (GUILayout.Button("None", EditorStyles.miniButton, GUILayout.ExpandWidth(true), GUILayout.Width(40)))
            {
                selectedIcon = null;
                folderIcon24 = folderOriginalIcon24 = null;
                folderIcon10 = folderOriginalIcon10 = null;
                return;
            }
            EditorGUILayout.EndHorizontal();

            ButtonGrid.ButtonAction bA = iconsUi.DrawGrid();
            if (bA != null || initIconsTexture)
            {
                IconGrid.IconElement icon = null;
                if (initIconsTexture)
                {
                    icon = selectedIcon;
                }
                else if (bA != null)
                {
                    icon = (IconGrid.IconElement)bA.ClickedElement;

                    if (!nameEdited)
                    {
                        styleName = bA.ClickedElement.GetElementName().Substring(0, Mathf.Min(bA.ClickedElement.GetElementName().Length, 14));
                    }
                }

                selectedIcon = icon;

                // High res icon
                folderIcon24 = new Texture2D(icon.HighResTex.width, icon.HighResTex.height, TextureFormat.RGBA32, true);
                Graphics.CopyTexture(icon.HighResTex, 0, 0, folderIcon24, 0, 0);
                folderOriginalIcon24 = icon.HighResTex;

                // Low res icon
                folderIcon10 = new Texture2D(icon.LowResTex.width, icon.LowResTex.height, TextureFormat.RGBA32, true);
                Graphics.CopyTexture(icon.LowResTex, 0, 0, folderIcon10, 0, 0);
                folderOriginalIcon10 = icon.LowResTex;

                initIconsTexture = false;
            }

            if (selectedIcon != null)
            {
                GUILayout.Space(4);
                styleProperties.iconOffset = DisplayOffsetField("Icon Offset", 100, styleProperties.iconOffset);
            }

            EditorGUILayout.EndVertical();
        }
Example #2
0
        private void IconGUI()
        {
            EditorGUILayout.BeginHorizontal(FolderInspector.toolBarStyle);
            iconsOpen = EditorGUILayout.Foldout(iconsOpen, "Folder Icon", true);
            if (GUILayout.Button("Remove Icon", FolderInspector.toolBarButtonStyle, GUILayout.ExpandWidth(true), GUILayout.Width(80)))
            {
                selectedIcon = null;
                folderIcon48 = folderOriginalIcon48 = null;
                folderIcon24 = folderOriginalIcon24 = null;
                folderIcon10 = folderOriginalIcon10 = null;
                return;
            }
            EditorGUILayout.EndHorizontal();

            if (iconsOpen)
            {
                GUILayout.BeginVertical(FolderInspector.styleListBackgroundStyle);
                GUILayout.Space(6);
                ButtonGrid.ButtonAction bA = iconsUi.DrawGrid();
                if (bA != null || initIconsTexture)
                {
                    IconGrid.IconElement icon = null;
                    if (initIconsTexture)
                    {
                        icon = selectedIcon;
                    }
                    else if (bA != null)
                    {
                        icon = (IconGrid.IconElement)bA.ClickedElement;

                        if (!nameEdited)
                        {
                            styleName = bA.ClickedElement.GetElementName().Substring(0, Mathf.Min(bA.ClickedElement.GetElementName().Length, 14));
                        }
                    }

                    selectedIcon = icon;

                    // Very High res icon
                    folderIcon48 = new Texture2D(icon.VeryHighResTex.width, icon.VeryHighResTex.height, TextureFormat.RGBA32, true);
                    Graphics.CopyTexture(icon.VeryHighResTex, 0, 0, folderIcon48, 0, 0);
                    folderOriginalIcon48 = icon.VeryHighResTex;

                    // High res icon
                    folderIcon24 = new Texture2D(icon.HighResTex.width, icon.HighResTex.height, TextureFormat.RGBA32, true);
                    Graphics.CopyTexture(icon.HighResTex, 0, 0, folderIcon24, 0, 0);
                    folderOriginalIcon24 = icon.HighResTex;

                    // Low res icon
                    folderIcon10 = new Texture2D(icon.LowResTex.width, icon.LowResTex.height, TextureFormat.RGBA32, true);
                    Graphics.CopyTexture(icon.LowResTex, 0, 0, folderIcon10, 0, 0);
                    folderOriginalIcon10 = icon.LowResTex;

                    initIconsTexture = false;
                }

                EditorGUILayout.EndVertical();

                if (selectedIcon != null)
                {
                    GUILayout.BeginHorizontal(FolderInspector.toolBarStyle);
                    GUILayout.Label("Icon settings");
                    GUILayout.EndHorizontal();

                    GUILayout.Space(4);
                    styleProperties.iconOffset = DisplayOffsetField("Position", 100, styleProperties.iconOffset);
                    GUILayout.BeginHorizontal();
                    GUILayout.FlexibleSpace();
                    if (GUILayout.Button("Middle", GUILayout.Width(70.0f)))
                    {
                        styleProperties.iconOffset = new Vector2Int(-11, -2);
                    }
                    if (GUILayout.Button("Left", GUILayout.Width(70.0f)))
                    {
                        styleProperties.iconOffset = new Vector2Int(-24, -2);
                    }
                    if (GUILayout.Button("Reset", GUILayout.Width(70.0f)))
                    {
                        styleProperties.iconOffset = Vector2Int.zero;
                    }
                    GUILayout.EndHorizontal();
                    GUILayout.Space(6);
                }
            }
        }