Пример #1
0
        // -------------------------------------------------------------------------
        public static Texture2D GetIconFor(iCS_EditorObject obj)
        {
            // No default icon for null object.
            if (obj == null)
            {
                return(null);
            }
            // Product icons cannot be changed.
            Texture2D icon = null;

            if (obj.IsOnStateEntryPackage)
            {
                icon = TextureCache.GetIcon(kOnStateEntryIcon);
                if (icon != null)
                {
                    return(icon);
                }
            }
            else if (obj.IsOnStateUpdatePackage)
            {
                icon = TextureCache.GetIcon(kOnStateUpdateIcon);
                if (icon != null)
                {
                    return(icon);
                }
            }
            else if (obj.IsOnStateExitPackage)
            {
                icon = TextureCache.GetIcon(kOnStateExitIcon);
                if (icon != null)
                {
                    return(icon);
                }
            }
            // Use user defined icon if it exists ... otherwise use default for the
            // given type of node.
            if (obj.IconGUID != null)
            {
                icon = TextureCache.GetIconFromGUID(obj.IconGUID);
                if (icon != null)
                {
                    return(icon);
                }
            }
            return(GetDefaultNodeIconFor(obj));
        }
Пример #2
0
        // ======================================================================
        // Maximize icon functionality
        // ----------------------------------------------------------------------
        public static Vector2 GetMaximizeIconSize(iCS_EditorObject node)
        {
            Texture2D icon = null;

            if (node != null && node.IconGUID != null)
            {
                icon = TextureCache.GetIconFromGUID(node.IconGUID);
                if (icon != null)
                {
                    return(new Vector2(icon.width, icon.height));
                }
            }
            // Avoid null exception of first layout.
            if (maximizeIcon == null)
            {
                Init(node.IStorage);
            }
            return(new Vector2(maximizeIcon.width, maximizeIcon.height));
        }
Пример #3
0
        // ===================================================================
        // EDITOR ENTRY POINT
        // -------------------------------------------------------------------
        /// Edit node specific information.
        public void OnGUI()
        {
            var node = vsObject;

            // Display node name.
            EditName("Node Name");

            // Show parent type.
            var parentTypeName = iCS_Types.TypeName(vsObject.RuntimeType);

            EditorGUILayout.LabelField("Member of Type", NameUtility.ToTypeName(parentTypeName));

            // Show function name (if it exists).
            if (vsObject.IsKindOfFunction)
            {
                var functionName = vsObject.MethodName;
                if (!string.IsNullOrEmpty(functionName))
                {
                    EditorGUILayout.LabelField("Function", functionName);
                }
            }

            // Node specific editor
            OnNodeSpecificGUI();

            // Show Iconic image configuration.
            Texture2D iconicTexture = TextureCache.GetIconFromGUID(node.IconGUID);
            Texture2D newTexture    = EditorGUILayout.ObjectField("Iconic Texture", iconicTexture, typeof(Texture2D), false) as Texture2D;

            if (newTexture != iconicTexture)
            {
                iCS_UserCommands.ChangeIcon(node, newTexture);
            }

            EditDescription();
        }