/// <summary>
        /// GUI for showing the image type and associated settings.
        /// </summary>
        protected void TypeGUI()
        {
            EditorGUILayout.PropertyField(m_PreImage, m_PreImageContent, new GUILayoutOption[0]);
            ImageMirror.PreImage preImg = (ImageMirror.PreImage)m_PreImage.enumValueIndex;
            bool flag = !m_Sliced.hasMultipleDifferentValues && m_Sliced.boolValue;

            if (flag && targets.Length > 1)
            {
                flag = (from obj in targets select obj as ImageMirror).All((ImageMirror img) => img.hasBorder);
            }
            EditorGUILayout.PropertyField(m_Sliced, m_SlicedContent);
            EditorGUI.indentLevel++;
            m_ShowSliced.target = (flag && !m_Sliced.hasMultipleDifferentValues && m_Sliced.boolValue);
            ImageMirror image = target as ImageMirror;

            if (EditorGUILayout.BeginFadeGroup(m_ShowSliced.faded))
            {
                if (image.hasBorder)
                {
                    EditorGUILayout.PropertyField(m_FillCenter);
                }
                else
                {
                    EditorGUILayout.HelpBox("This Image doesn't have a border.", MessageType.Warning);
                }
            }
            EditorGUILayout.EndFadeGroup();
            EditorGUI.indentLevel--;
        }
        /// <summary>
        /// A string cointaining the Image details to be used as a overlay on the component Preview.
        /// </summary>
        /// <returns>The Image details.</returns>
        public override string GetInfoString()
        {
            ImageMirror image  = target as ImageMirror;
            Sprite      sprite = image.sprite;
            int         num    = (sprite == null) ? 0 : Mathf.RoundToInt(sprite.rect.width);
            int         num2   = (sprite == null) ? 0 : Mathf.RoundToInt(sprite.rect.height);

            return(string.Format("Image Size: {0}x{1}", num, num2));
        }
        /// <summary>
        /// Custom preview for Image component.
        /// </summary>
        /// <param name="rect">Rectangle in which to draw the preview.</param>
        /// <param name="background">Background image.</param>
        public override void OnPreviewGUI(Rect rect, GUIStyle background)
        {
            ImageMirror image = target as ImageMirror;

            if (!(image == null))
            {
                Sprite sprite = image.sprite;
                if (!(sprite == null))
                {
                    GUISpriteDrawUtility.DrawSprite(sprite, rect, image.canvasRenderer.GetColor());
                }
            }
        }