Esempio n. 1
0
 public static bool DoPlayButtonSmall(string title, bool isEditing, System.Action startAction, System.Action stopAction)
 {
     GUILayout.FlexibleSpace();
     ExGUI.Horizontal(delegate()
     {
         GUIStyle style = new GUIStyle(EditorStyles.miniButton);
         if (isEditing)
         {
             style.normal = style.active;
             ExGUI.Button(new GUIContent(title, EditorGUIUtility.FindTexture("PlayButton On"), "Stop editing"), style, delegate
             {
                 stopAction();
                 isEditing = false;
             }, GUILayout.Height(15));
         }
         else
         {
             //GUI.enabled = GUI.enabled && CallCanBeginEditingTool(compEditor.editor);
             ExGUI.Button(new GUIContent(title, EditorGUIUtility.FindTexture("PlayButton"), "Start editing"), style, delegate
             {
                 if (!isEditing)
                 {
                     stopAction();
                 }
                 startAction();
                 isEditing = true;
             }, GUILayout.Height(15));
         }
     });
     GUI.enabled = true;
     GUILayout.FlexibleSpace();
     return(isEditing);
 }
        void DrawManageStyles()
        {
            if (roorderList == null && _skinOriginal != null)
            {
                EnableList();
            }
            if (roorderList == null)
            {
                return;
            }

            ExGUI.Title("Add Buildt In Styles");
            DrawAddDefault();

            ExGUI.Title("Reorder");
            ExGUI.Horizontal(delegate()
            {
                script = (MonoScript)EditorGUILayout.ObjectField(script, typeof(MonoScript), false);
                if (GUILayout.Button("ReOrder", EditorStyles.miniButtonLeft))
                {
                    try
                    {
                        ReorderByEnum(script.GetClass());
                    }
                    catch (System.Exception ex)
                    {
                        Debug.Log(ex);
                    }
                }
                if (GUILayout.Button("Add From Enum", EditorStyles.miniButtonRight))
                {
                    try
                    {
                        AddFromEnum(script.GetClass());
                    }
                    catch (System.Exception ex)
                    {
                        Debug.Log(ex);
                    }
                }
            });


            EditorGUILayout.Space();
            roorderList.DoLayoutList();
        }
        void DrawMigration()
        {
            _skinTarget = EditorGUILayout.ObjectField("Target", _skinTarget, typeof(GUISkin), false) as GUISkin;
            if (_skinOriginal == null || _skinTarget == null)
            {
                return;
            }
            ExGUI.Group("Styles", delegate()
            {
                ExGUI.ButtonGo("Copy All:", delegate()
                {
                    CopyAllRegularStyles();
                    SaveSkin(_skinTarget);
                });

                ExGUI.Horizontal(delegate()
                {
                    EditorGUILayout.LabelField("Copy styles names to Clipboard");
                    GUILayout.FlexibleSpace();
                    ExGUI.Button("Original", EditorStyles.miniButtonLeft, delegate()
                    {
                        CopyAllNamesToClipboar(_skinOriginal);
                    });
                    ExGUI.Button("Target", EditorStyles.miniButtonRight, delegate()
                    {
                        CopyAllNamesToClipboar(_skinTarget);
                    });
                });
            });
            ExGUI.Group("Custom Styles", delegate()
            {
                ExGUI.ButtonGo("Copy All:", delegate()
                {
                    _skinTarget.customStyles = _skinOriginal.customStyles;
                    SaveSkin(_skinTarget);
                });
                ExGUI.ButtonGo("Update All:", delegate()
                {
                    ActionsToAll(true);
                    SaveSkin(_skinTarget);
                });

                ExGUIx.ScrollView("CustomStyles", delegate()
                {
                    for (int x = 0; x < _skinOriginal.customStyles.Length; x++)
                    {
                        ExGUI.Horizontal(delegate()
                        {
                            ExGUI.Button("X", EditorStyles.miniButtonLeft, delegate()
                            {
                                RemoveCustomStyle(_skinOriginal.customStyles[x].name);
                                SaveSkin(_skinTarget);
                            }, GUILayout.Width(30), GUILayout.Height(20));

                            if (_skinTarget.FindStyle(_skinOriginal.customStyles[x].name) == null)
                            {
                                ExGUI.Button(EditorGUIUtility.FindTexture("Animation.Play"), EditorStyles.miniButtonRight, delegate()
                                {
                                    AddCopyCustomStyle(_skinOriginal.customStyles[x].name);
                                    SaveSkin(_skinTarget);
                                }, GUILayout.Width(30), GUILayout.Height(20));
                            }
                            else
                            {
                                ExGUI.Button(EditorGUIUtility.FindTexture("RotateTool"), EditorStyles.miniButtonRight, delegate()
                                {
                                    ReplaceCustomStyle(_skinOriginal.customStyles[x].name);
                                    SaveSkin(_skinTarget);
                                }, GUILayout.Width(30), GUILayout.Height(20));
                            }

                            EditorGUILayout.LabelField(_skinOriginal.customStyles[x].name);
                        });
                    }
                });
            });
        }
        void DrawAddDefault()
        {
            ExGUI.Horizontal(delegate()
            {
                EditorGUI.BeginChangeCheck();
                _styleTarget = EditorGUILayout.TextField("BuiltIn Style", _styleTarget);
                if (EditorGUI.EndChangeCheck())
                {
                    _styleTarget = _styleTarget.Replace("(", "").Replace(")", "").Replace("GUIStyle", "");
                }
                if (GUILayout.Button("Paste", EditorStyles.miniButtonLeft))
                {
                    _styleTarget = GUIUtility.systemCopyBuffer.Replace("\"", "").Replace("(GUIStyle)", "");
                    GUI.FocusControl(null);
                }


                if (GUILayout.Button("Add", EditorStyles.miniButtonRight))
                {
                    GUIStyle style = new GUIStyle((GUIStyle)_styleTarget);
                    if (style != null && style.name != "")
                    {
                        AddCopyCustomStyle(_skinOriginal, style);
                    }
                }
            });
            ExGUI.Horizontal(delegate()
            {
                _styleEditorTarget = EditorGUILayout.TextField("Editor Style", _styleEditorTarget);

                GUI.enabled = _styleEditorTarget != "";
                if (GUILayout.Button("Add", EditorStyles.miniButton))
                {
                    System.Type editors = typeof(EditorStyles);
                    PropertyInfo[] fs   = typeof(EditorStyles).GetProperties(BindingFlags.Public | BindingFlags.Static);

                    fs = typeof(EditorStyles).GetProperties(BindingFlags.Public | BindingFlags.Static).Where(s => s.Name == _styleEditorTarget).ToArray();
                    PropertyInfo fields = typeof(EditorStyles).GetProperties(BindingFlags.Public | BindingFlags.Static).Where(s => s.Name == _styleEditorTarget).FirstOrDefault();
                    if (fields == null)
                    {
                        return;
                    }
                    GUIStyle st    = (GUIStyle)fields.GetValue(null, null);
                    GUIStyle style = new GUIStyle(st);
                    if (style != null)
                    {
                        AddCopyCustomStyle(_skinOriginal, style);
                    }
                }
                GUI.enabled = true;
            });

            ExGUI.Horizontal(delegate()
            {
                GUI.enabled = _selectedStyle != null;
                GUILayout.FlexibleSpace();
                if (GUILayout.Button(_selectedStyle != null ? "Replace " + _selectedStyle.name : "Replace", EditorStyles.miniButton))
                {
                    _styleTarget   = GUIUtility.systemCopyBuffer.Replace("\"", "").Replace("(GUIStyle)", "");
                    GUIStyle style = new GUIStyle((GUIStyle)_styleTarget);
                    CopyDataCustomStyle(_selectedStyleIndex, style);
                }
                GUI.enabled = true;
            });
        }