// ------------------------------------------------------------------------- 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)); }
// ====================================================================== // 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)); }
// =================================================================== // 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(); }