Пример #1
0
        public static void DrawFontAssetProperties(ThemeData themeData, int propertyIndex,
                                                   SerializedObject serializedObject, Object[] targets, ThemeTarget target,
                                                   ColorName componentColorName, Color initialGUIColor)
        {
            GUIStyle buttonStyleDisabled = Styles.GetStyle(Styles.StyleName.CheckBoxDisabled);
            GUIStyle buttonStyleEnabled  = Styles.GetStyle(Styles.StyleName.CheckBoxEnabled);

#if dUI_TextMeshPro
            if (themeData.FontAssetLabels.Count != themeData.ActiveVariant.FontAssets.Count)
            {
                foreach (LabelId labelId in themeData.FontAssetLabels.Where(labelId => !themeData.ActiveVariant.ContainsFontAsset(labelId.Id)))
                {
                    themeData.ActiveVariant.AddFontAssetProperty(labelId.Id);
                }
            }
#endif

            for (int i = 0; i < themeData.FontAssetLabels.Count; i++)
            {
                LabelId fontAssetProperty = themeData.FontAssetLabels[i];
                int     index             = i;
                bool    selected          = i == propertyIndex;
                GUILayout.BeginHorizontal();
                {
                    GUI.color = DGUI.Colors.PropertyColor(componentColorName);
                    if (GUILayout.Button(GUIContent.none, selected ? buttonStyleEnabled : buttonStyleDisabled))
                    {
                        if (serializedObject.isEditingMultipleObjects)
                        {
                            DoozyUtils.UndoRecordObjects(targets, UILabels.UpdateValue);
                            foreach (Object o in targets)
                            {
                                var themeTarget = (ThemeTarget)o;
                                if (themeTarget == null)
                                {
                                    continue;
                                }
                                themeTarget.PropertyId = themeData.FontAssetLabels[index].Id;
                                themeTarget.UpdateTarget(themeData);
                            }
                        }
                        else
                        {
                            DoozyUtils.UndoRecordObject(target, UILabels.UpdateValue);
                            target.PropertyId = themeData.FontAssetLabels[index].Id;
                            target.UpdateTarget(themeData);
                        }
                    }

                    GUI.color = initialGUIColor;
                    GUILayout.Space(DGUI.Properties.Space(2));
                    GUI.enabled = selected;
                    DGUI.Label.Draw(fontAssetProperty.Label, selected ? Size.L : Size.M);
                    GUI.enabled = true;
                }
                GUILayout.EndHorizontal();
                GUILayout.Space(DGUI.Properties.Space());
            }
        }
        private bool DrawGeneralPluginBox(string pluginName, bool hasPlugin, bool usePlugin, string pluginDefineSymbol, GUIStyle pluginIcon)
        {
            bool value = usePlugin;

            GUILayout.BeginVertical(DGUI.Background.Style(CornerType.Round), GUILayout.Height(PLUGIN_BOX_HEIGHT));
            {
                GUILayout.Space(PLUGIN_BOX_PADDING);
                GUI.enabled = !EditorApplication.isCompiling;
                {
                    GUILayout.BeginHorizontal();
                    {
                        GUILayout.Space(PLUGIN_BOX_PADDING);
                        DGUI.Icon.Draw(pluginIcon, PLUGIN_BOX_ICON_SIZE, Color.white);
                        GUILayout.Space(PLUGIN_BOX_PADDING);
                        GUILayout.BeginVertical();
                        {
                            DGUI.Label.Draw(pluginName, Size.XL, DGUI.Colors.DisabledTextColorName);
                            GUILayout.Space(2);
                            GUI.enabled = !EditorApplication.isCompiling && hasPlugin;
                            DGUI.Label.Draw(EditorApplication.isCompiling
                                                ? UILabels.Compiling + "..."
                                                : hasPlugin
                                                    ? UILabels.Installed
                                                    : UILabels.NotInstalled,
                                            Size.M,
                                            DGUI.Colors.DisabledTextColorName);
                        }
                        GUILayout.EndVertical();
                        GUILayout.FlexibleSpace();
                        if (DGUI.Button.Draw(usePlugin ? UILabels.Enabled : UILabels.Disabled, Size.M, usePlugin ? ColorName.Green : DGUI.Colors.DarkOrLightColorName, usePlugin ? ColorName.Green : DGUI.Colors.LightOrDarkColorName, usePlugin, PLUGIN_BOX_ICON_SIZE, 80))
                        {
                            if (DoozyUtils.DisplayDialog((usePlugin ? UILabels.Disable : UILabels.Enable) + " " + pluginName,
                                                         UILabels.ScriptingDefineSymbol + ": " + pluginDefineSymbol +
                                                         "\n\n" +
                                                         (usePlugin ? UILabels.RemoveSymbolFromAllBuildTargetGroups : UILabels.AddSymbolToAllBuildTargetGroups),
                                                         UILabels.Yes,
                                                         UILabels.No))
                            {
                                DoozySettings.Instance.UndoRecord(usePlugin ? UILabels.DisablePlugin : UILabels.EnablePlugin);
                                DoozySettings.Instance.SetDirty(false);
                                m_needsSave = true;
                                s_needsToUpdateScriptingDefineSymbols = true;
                                value = !value;
                            }
                        }

                        GUILayout.Space(PLUGIN_BOX_PADDING);
                    }
                    GUILayout.EndHorizontal();
                }
                GUI.enabled = true;
            }
            GUILayout.EndVertical();

            return(value);
        }
Пример #3
0
        private static void CreateComponent(MenuCommand menuCommand)
        {
            var go = new GameObject(MenuUtils.UIToggle_GameObject_Name, typeof(RectTransform), typeof(Toggle), typeof(UIToggle));

            GameObjectUtility.SetParentAndAlign(go, GetParent(menuCommand.context as GameObject));
            Undo.RegisterCreatedObjectUndo(go, "Create " + go.name); //undo option
            var uiToggle = go.GetComponent <UIToggle>();

            uiToggle.RectTransform.Center(true);
            uiToggle.RectTransform.sizeDelta = new Vector2(UIToggleSettings.DEFAULT_BUTTON_WIDTH, UIToggleSettings.DEFAULT_BUTTON_HEIGHT);

            GameObject background = DoozyUtils.CreateBackgroundImage(go);
            var        backgroundRectTransform = background.GetComponent <RectTransform>();

            backgroundRectTransform.anchorMin        = new Vector2(0, 1);
            backgroundRectTransform.anchorMax        = new Vector2(0, 1);
            backgroundRectTransform.anchoredPosition = new Vector2(10, -10);
            backgroundRectTransform.sizeDelta        = new Vector2(20, 20);
            var backgroundImage = background.GetComponent <Image>();

            backgroundImage.sprite     = UnityResources.UISprite;
            backgroundImage.type       = Image.Type.Sliced;
            backgroundImage.fillCenter = true;

            var checkmark = new GameObject("Checkmark", typeof(RectTransform), typeof(Image));

            GameObjectUtility.SetParentAndAlign(checkmark, background);
            var checkmarkRectTransform = checkmark.GetComponent <RectTransform>();

            checkmarkRectTransform.ResetLocalScaleToOne();
            checkmarkRectTransform.AnchorMinToZero();
            checkmarkRectTransform.AnchorMaxToOne();
            checkmarkRectTransform.anchoredPosition = new Vector2(0, 0);
            checkmarkRectTransform.SizeDeltaToZero();
            checkmarkRectTransform.CenterPivot();
            var checkmarkImage = checkmark.GetComponent <Image>();

            checkmarkImage.sprite     = UnityResources.Checkmark;
            checkmarkImage.type       = Image.Type.Simple;
            checkmarkImage.fillCenter = true;
            checkmarkImage.color      = DoozyUtils.CheckmarkColor;

#if dUI_TextMeshPro
            CreateTextMeshProLabel(uiToggle);
#else
            CreateTextLabel(uiToggle);
#endif

            uiToggle.Toggle.interactable  = true;
            uiToggle.Toggle.transition    = Selectable.Transition.ColorTint;
            uiToggle.Toggle.targetGraphic = backgroundImage;
            uiToggle.Toggle.graphic       = checkmarkImage;
            uiToggle.Toggle.isOn          = true;

            Selection.activeObject = go; //select the newly created gameObject
        }
Пример #4
0
 protected override void OnDestroy()
 {
     base.OnDestroy();
     if (!m_needsSave)
     {
         return;
     }
     Save();
     DoozyUtils.ClearProgressBar();
 }
 public virtual void UpdateNodeName(string newName)
 {
     if (string.IsNullOrEmpty(newName))
     {
         return;
     }
     DoozyUtils.UndoRecordObject(BaseNode, "Rename");
     BaseNode.SetName(newName);
     NodeUpdated = true;
 }
        public static void DrawColorProperties(ThemeData themeData, int propertyIndex,
                                               SerializedObject serializedObject, Object[] targets, ThemeTarget target,
                                               Color initialGUIColor)
        {
            GUIStyle colorButtonStyle         = Styles.GetStyle(Styles.StyleName.ColorButton);
            GUIStyle colorButtonSelectedStyle = Styles.GetStyle(Styles.StyleName.ColorButtonSelected);

            for (int i = 0; i < themeData.ColorLabels.Count; i++)
            {
                LabelId colorProperty = themeData.ColorLabels[i];
                int     index         = i;
                bool    selected      = i == propertyIndex;
                GUILayout.BeginHorizontal();
                {
                    if (!selected)
                    {
                        GUILayout.Space((colorButtonSelectedStyle.fixedWidth - colorButtonStyle.fixedWidth) / 2);
                    }
                    GUI.color = themeData.ActiveVariant.Colors[i].Color;
                    {
                        if (GUILayout.Button(GUIContent.none, selected ? colorButtonSelectedStyle : colorButtonStyle))
                        {
                            if (serializedObject.isEditingMultipleObjects)
                            {
                                DoozyUtils.UndoRecordObjects(targets, UILabels.UpdateValue);
                                foreach (Object o in targets)
                                {
                                    var themeTarget = (ThemeTarget)o;
                                    if (themeTarget == null)
                                    {
                                        continue;
                                    }
                                    themeTarget.PropertyId = themeData.ColorLabels[index].Id;
                                    themeTarget.UpdateTarget(themeData);
                                }
                            }
                            else
                            {
                                DoozyUtils.UndoRecordObject(target, UILabels.UpdateValue);
                                target.PropertyId = themeData.ColorLabels[index].Id;
                                target.UpdateTarget(themeData);
                            }
                        }
                    }
                    GUI.color = initialGUIColor;
                    GUILayout.Space(DGUI.Properties.Space(2));
                    GUI.enabled = selected;
                    DGUI.Label.Draw(colorProperty.Label, selected ? Size.L : Size.M, selected ? colorButtonSelectedStyle.fixedHeight : colorButtonStyle.fixedHeight);
                    GUI.enabled = true;
                }
                GUILayout.EndHorizontal();
                GUILayout.Space(DGUI.Properties.Space());
            }
        }
 protected override void OnDestroy()
 {
     base.OnDestroy();
     if (!m_needsSave)
     {
         return;
     }
     DoozySettings.Instance.AssetDatabaseSaveAssetsNeeded = true;
     DoozySettings.Instance.SaveAndRefreshAssetDatabase();
     DoozyUtils.ClearProgressBar();
 }
Пример #8
0
        /// <summary> [Editor Only] Performs a deep search through the project for any unregistered UIAnimationDatabase asset files and adds them to the corresponding Database </summary>
        /// <param name="saveAssets"> Write all unsaved asset changes to disk? </param>
        public void SearchForUnregisteredDatabases(bool saveAssets)
        {
            DoozyUtils.DisplayProgressBar("UIAnimations", "Initializing", 0.1f);
            Initialize();
            DoozyUtils.DisplayProgressBar("UIAnimations", "Searching for databases", 0.3f);

            bool foundUnregisteredDatabase = false;

            UIAnimationDatabase[] array = Resources.LoadAll <UIAnimationDatabase>("");
            if (array == null || array.Length == 0)
            {
                DoozyUtils.ClearProgressBar();
                return;
            }

            DoozyUtils.DisplayProgressBar("UIAnimations", "Updating databases", 0.5f);

            foreach (UIAnimationDatabase foundDatabase in array)
            {
                UIAnimationsDatabase database = Get(foundDatabase.DataType);
                if (database == null)
                {
                    continue;
                }
                if (database.Contains(foundDatabase))
                {
                    continue;
                }
                database.AddUIAnimationDatabase(foundDatabase);
                foundUnregisteredDatabase = true;
            }

            if (!foundUnregisteredDatabase)
            {
                DoozyUtils.ClearProgressBar();
                return;
            }

            DoozyUtils.DisplayProgressBar("UIAnimations", "Update Show", 0.6f);
            Show.Update();
            DoozyUtils.DisplayProgressBar("UIAnimations", "Update Hide", 0.6f);
            Hide.Update();
            DoozyUtils.DisplayProgressBar("UIAnimations", "Update Loop", 0.7f);
            Loop.Update();
            DoozyUtils.DisplayProgressBar("UIAnimations", "Update Punch", 0.8f);
            Punch.Update();
            DoozyUtils.DisplayProgressBar("UIAnimations", "Update State", 0.9f);
            State.Update();
            DoozyUtils.DisplayProgressBar("UIAnimations", "Saving database", 1f);
            SetDirty(saveAssets);
            DoozyUtils.ClearProgressBar();
        }
Пример #9
0
        public static void Run()
        {
            CreateSettingsAssets();
            CreateDatabaseAssets();
            RegenerateDatabaseAssets();

            ProcessorsSettings.Instance.RunDoozyAssetsProcessor = false;
            ProcessorsSettings.Instance.SetDirty(false);

            DoozyUtils.DisplayProgressBar("Hold On", "Saving Processor Settings...", 0.95f);
            DoozyUtils.SaveAssets();
            DoozyUtils.ClearProgressBar();
        }
Пример #10
0
        private void DrawRecentOpenedGraphs()
        {
            GUILayout.Label(UILabels.Recent, DGUI.Label.Style(Size.S, TextAlign.Center, DGUI.Colors.DisabledTextColorName), GUILayout.ExpandWidth(true), GUILayout.Height(DoozyWindowSettings.Instance.ToolbarHeaderHeight));
            GUILayout.BeginHorizontal();
            {
                GUILayout.Space(DGUI.Properties.Space(4));

                m_recentOpenedGraphsScroll = GUILayout.BeginScrollView(m_recentOpenedGraphsScroll);
                {
                    GUILayout.BeginVertical();
                    {
                        foreach (Graph recentlyOpenedGraph in NodyWindowSettings.Instance.RecentlyOpenedGraphs)
                        {
                            if (recentlyOpenedGraph == null)
                            {
                                continue;
                            }
                            GUILayout.BeginHorizontal();
                            {
                                if (DGUI.Button.Dynamic.DrawIconButton(Styles.GetStyle(recentlyOpenedGraph.IsSubGraph ? Styles.StyleName.IconSubGraph : Styles.StyleName.IconGraph),
                                                                       recentlyOpenedGraph.name,
                                                                       Size.S, TextAlign.Left,
                                                                       DGUI.Colors.DisabledBackgroundColorName,
                                                                       DGUI.Colors.DisabledTextColorName,
                                                                       DGUI.Properties.SingleLineHeight + DGUI.Properties.Space(4)))
                                {
                                    LoadGraph(recentlyOpenedGraph);
                                    break;
                                }

                                if (DGUI.Button.IconButton.Minus(DGUI.Properties.SingleLineHeight + DGUI.Properties.Space(4)))
                                {
                                    DoozyUtils.UndoRecordObject(NodyWindowSettings.Instance, "Remove Recent");
                                    NodyWindowSettings.Instance.RecentlyOpenedGraphs.Remove(recentlyOpenedGraph);
                                    NodyWindowSettings.Instance.SetDirty(false);
                                    break;
                                }
                            }
                            GUILayout.EndHorizontal();

                            GUILayout.Space(DGUI.Properties.Space(2));
                        }
                    }
                    GUILayout.EndVertical();
                }
                GUILayout.EndScrollView();

                GUILayout.Space(DGUI.Properties.Space(4));
            }
            GUILayout.EndHorizontal();
        }
        private void DrawDropZone()
        {
            GUILayout.Label(GUIContent.none, GUILayout.ExpandWidth(true), GUILayout.Height(0));
            Rect lastRect = GUILayoutUtility.GetLastRect();
            var  dropRect = new Rect(lastRect.x + DGUI.Properties.Space(), lastRect.y - 2, DGUI.Properties.DefaultFieldWidth * 5, DGUI.Properties.SingleLineHeight); //calculate rect

            bool containsMouse = dropRect.Contains(Event.current.mousePosition);

            if (containsMouse)
            {
                DGUI.Colors.SetNormalGUIColorAlpha();

                switch (Event.current.type)
                {
                case EventType.DragUpdated:
                    bool containsAudioClip = DragAndDrop.objectReferences.OfType <AudioClip>().Any();
                    DragAndDrop.visualMode = containsAudioClip ? DragAndDropVisualMode.Copy : DragAndDropVisualMode.Rejected;
                    Event.current.Use();
                    Repaint();
                    break;

                case EventType.DragPerform:
                    IEnumerable <AudioClip> audioClips = DragAndDrop.objectReferences.OfType <AudioClip>();
                    bool undoRecorded = false;
                    foreach (AudioClip audioClip in audioClips)
                    {
                        if (Target.Contains(audioClip))
                        {
                            continue;
                        }
                        if (!undoRecorded)
                        {
                            DoozyUtils.UndoRecordObject(Target, UILabels.AddSounds);
                            undoRecorded = true;
                        }

                        Target.Sounds.Add(new AudioData(audioClip));
                        Target.SetDirty(false);
                    }

                    Event.current.Use();
                    Repaint();
                    break;
                }
            }

            DGUI.Doozy.DrawDropZone(dropRect, containsMouse);
            GUILayout.Space(dropRect.width - DGUI.Properties.Space(2));
        }
        /// <summary> Adds GestureListener to scene and returns a reference to it </summary>
        private static GestureListener AddToScene(GameObject parent, bool selectGameObjectAfterCreation = false)
        {
            var result = DoozyUtils.AddToScene <GestureListener>(MenuUtils.GestureListener_GameObject_Name, false, selectGameObjectAfterCreation);

#if UNITY_EDITOR
            GameObjectUtility.SetParentAndAlign(result.gameObject, parent);
#endif
            if (result.transform.root.GetComponent <RectTransform>() == null)
            {
                return(result);                                                             //check to see if it was added to the UI or not
            }
            result.gameObject.AddComponent <RectTransform>();                               //was added to the UI -> add a RectTransform component
            result.GetComponent <RectTransform>().localScale = Vector3.one;                 //reset the RectTransform component
            return(result);
        }
        /// <summary> Refresh the entire database by removing empty, duplicate and unnamed entries, sorting the database and updating the names list </summary>
        /// <param name="showProgress"> Should a progress window be shown while executing the action </param>
        /// <param name="performUndo"> Record changes? </param>
        /// <param name="saveAssets"> Write all unsaved asset changes to disk? </param>
        public void RefreshThemeVariants(bool showProgress, bool performUndo, bool saveAssets)
        {
            if (showProgress)
            {
                DoozyUtils.DisplayProgressBar(UILabels.ThemeName + ": " + ThemeName, UILabels.RefreshDatabase, 0.1f);
            }
            if (performUndo)
            {
                UndoRecord(UILabels.RefreshDatabase);
            }
            if (showProgress)
            {
                DoozyUtils.DisplayProgressBar(UILabels.ThemeName + ": " + ThemeName, UILabels.RefreshDatabase, 0.2f);
            }
            bool addedDefaultColorLabels = ColorLabels.Count == 0; //if the color properties list is empty -> add the default color labels

            if (addedDefaultColorLabels)
            {
                AddDefaultColorLabels();
            }
            if (showProgress)
            {
                DoozyUtils.DisplayProgressBar(UILabels.ThemeName + ": " + ThemeName, UILabels.RefreshDatabase, 0.3f);
            }
            bool addedDefaultVariant = AddDefaultVariant();

            if (showProgress)
            {
                DoozyUtils.DisplayProgressBar(UILabels.ThemeName + ": " + ThemeName, UILabels.RefreshDatabase, 0.6f);
            }
            UpdateVariantsNames(false);
            if (showProgress)
            {
                DoozyUtils.DisplayProgressBar(UILabels.ThemeName + ": " + ThemeName, UILabels.RefreshDatabase, 0.7f);
            }
            if (addedDefaultColorLabels || addedDefaultVariant)
            {
                SetDirty(saveAssets);
            }
            if (showProgress)
            {
                DoozyUtils.DisplayProgressBar(UILabels.ThemeName + ": " + ThemeName, UILabels.RefreshDatabase, 1f);
            }
            if (showProgress)
            {
                DoozyUtils.ClearProgressBar();
            }
        }
Пример #14
0
        private static void RegenerateDatabaseAssets(bool saveAssets = true)
        {
            DoozyUtils.ClearProgressBar();

            //SOUNDY
            DoozyUtils.DisplayProgressBar("Hold on...", "Soundy - Search For Unregistered Databases", 0.1f);
            SoundySettings.Database.SearchForUnregisteredDatabases(false);
            DoozyUtils.DisplayProgressBar("Hold on...", "Soundy - Refresh", 0.15f);
            SoundySettings.Database.RefreshDatabase(false, true);

            //THEMES
            DoozyUtils.DisplayProgressBar("Hold on...", "Themes - Search For Unregistered Themes", 0.2f);
            ThemesSettings.Database.SearchForUnregisteredThemes(false);
            DoozyUtils.DisplayProgressBar("Hold on...", "Themes - Refresh", 0.25f);
            ThemesSettings.Database.RefreshDatabase(false, true);

            //UIAnimations
            DoozyUtils.DisplayProgressBar("Hold on...", "UIAnimations - Search For Unregistered Databases", 0.3f);
            UIAnimations.Instance.SearchForUnregisteredDatabases(true);

            //UIButtons
            DoozyUtils.DisplayProgressBar("Hold on...", "Buttons - Search For Unregistered Databases", 0.4f);
            UIButtonSettings.Database.SearchForUnregisteredDatabases(true);

            //UICanvases
            DoozyUtils.DisplayProgressBar("Hold on...", "Canvases - Search For Unregistered Databases", 0.6f);
            UICanvasSettings.Database.SearchForUnregisteredDatabases(true);

            //UIDrawers
            DoozyUtils.DisplayProgressBar("Hold on...", "Drawers - Search For Unregistered Databases", 0.7f);
            UIDrawerSettings.Database.SearchForUnregisteredDatabases(true);

            //UIViews
            DoozyUtils.DisplayProgressBar("Hold on...", "Views - Search For Unregistered Databases", 0.8f);
            UIViewSettings.Database.SearchForUnregisteredDatabases(true);

            //UIPopups
            DoozyUtils.DisplayProgressBar("Hold on...", "Popups - Search For Unregistered Databases", 0.9f);
            UIPopupSettings.Database.SearchForUnregisteredLinks(true);

            if (saveAssets)
            {
                DoozyUtils.DisplayProgressBar("Hold on...", "Saving Assets...", 0.95f);
                DoozyUtils.SaveAssets();
            }

            DoozyUtils.ClearProgressBar();
        }
        /// <summary> [Editor Only] Performs a deep search through the project for any unregistered ListOfNames asset files and adds them to the database. The search is done only in all the Resources folders. </summary>
        /// <param name="saveAssets"> Write all unsaved asset changes to disk? </param>
        public void SearchForUnregisteredDatabases(bool saveAssets)
        {
            string title = UILabels.Database + ": " + DatabaseType; // ProgressBar Title
            string info  = UILabels.Search;                         // ProgressBar Info

            DoozyUtils.DisplayProgressBar(title, info, 0.1f);
            bool foundUnregisteredDatabase = false;

            ListOfNames[] array = Resources.LoadAll <ListOfNames>("");
            if (array == null || array.Length == 0)
            {
                DoozyUtils.ClearProgressBar();
                return;
            }

            if (Categories == null)
            {
                Categories = new List <ListOfNames>();
            }
            for (int i = 0; i < array.Length; i++)
            {
                DoozyUtils.DisplayProgressBar(title, info, 0.1f + 0.8f * (i + 1) / array.Length);
                ListOfNames foundList = array[i];
                if (foundList.DatabaseType != DatabaseType)
                {
                    continue;
                }
                if (Categories.Contains(foundList))
                {
                    continue;
                }
                Categories.Add(foundList);
                foundUnregisteredDatabase = true;
            }

            DoozyUtils.DisplayProgressBar(title, info, 1f);
            if (!foundUnregisteredDatabase)
            {
                DoozyUtils.ClearProgressBar();
                return;
            }

            UpdateListOfCategoryNames();
            SetDirty(saveAssets);
            DoozyUtils.ClearProgressBar();
        }
Пример #16
0
        /// <summary>
        /// Refreshes the entire database by adding removing empty and null entries,
        /// sorting the database and updating the category names list.
        /// </summary>
        /// <param name="performUndo"> Record changes? </param>
        /// <param name="saveAssets"> Write all unsaved asset changes to disk? </param>
        public void RefreshDatabase(bool performUndo, bool saveAssets)
        {
            string title = UILabels.Database + ": UIPopup"; // ProgressBar Title
            string info  = UILabels.RefreshDatabase;        // ProgressBar Info

            DoozyUtils.DisplayProgressBar(title, info, 0.1f);
            if (performUndo)
            {
                UndoRecord(UILabels.RefreshDatabase);
            }
            DoozyUtils.DisplayProgressBar(title, info, 0.4f);
            RemoveUnreferencedData(false);
            DoozyUtils.DisplayProgressBar(title, info, 0.8f);
            Sort(false, false);
            UpdateListOfPopupNames();
            DoozyUtils.DisplayProgressBar(title, info, 1f);
            SetDirty(saveAssets);
            DoozyUtils.ClearProgressBar();
        }
Пример #17
0
        /// <summary> [Editor Only] Performs a deep search through the project for any unregistered UIPopupLink asset files and adds them to the database. The search is done only in all the Resources folders. </summary>
        /// <param name="saveAssets"> Write all unsaved asset changes to disk? </param>
        public void SearchForUnregisteredLinks(bool saveAssets)
        {
            string title = UILabels.Database + ": UIPopup"; // ProgressBar Title
            string info  = UILabels.Search;                 // ProgressBar Info

            DoozyUtils.DisplayProgressBar(title, info, 0.1f);
            bool foundUnregisteredLink = false;

            UIPopupLink[] array = Resources.LoadAll <UIPopupLink>("");
            if (array == null || array.Length == 0)
            {
                DoozyUtils.ClearProgressBar();
                return;
            }

            if (Popups == null)
            {
                Popups = new List <UIPopupLink>();
            }
            for (int i = 0; i < array.Length; i++)
            {
                DoozyUtils.DisplayProgressBar(title, info, 0.1f + 0.8f * (i + 1) / array.Length);
                UIPopupLink link = array[i];
                if (Popups.Contains(link))
                {
                    continue;
                }
                Popups.Add(link);
                foundUnregisteredLink = true;
            }

            DoozyUtils.DisplayProgressBar(title, info, 1f);
            if (!foundUnregisteredLink)
            {
                DoozyUtils.ClearProgressBar();
                return;
            }

            UpdateListOfPopupNames();
            SetDirty(saveAssets);
            DoozyUtils.ClearProgressBar();
        }
        /// <summary> Iterates through all the referenced UIAnimationDatabase databases and populates them with any UIAnimationData </summary>
        private void AddUnreferencedPresets()
        {
#if UNITY_EDITOR
            bool saveAssets = false;
            if (Databases == null)
            {
                Databases = new List <UIAnimationDatabase>();
            }
            foreach (UIAnimationDatabase database in Databases)
            {
                Object[] objects = AssetDatabase.LoadAllAssetsAtPath(AssetDatabase.GetAssetPath(database)); //load all sub assets
                if (objects == null)
                {
                    return;                                                                                 //make sure they are not null
                }
                List <UIAnimationData> foundData = objects.OfType <UIAnimationData>().ToList();             //create a list of all the found sub assets
                bool databaseUpdated             = false;                                                   //mark true if any changes were performed on the database
                foreach (UIAnimationData data in foundData)
                {
                    if (database.Contains(data))
                    {
                        continue;
                    }
                    database.Database.Add(data);
                    databaseUpdated = true;
                }

                if (!databaseUpdated)
                {
                    continue;
                }
                database.SetDirty(false);
                saveAssets = true;
            }

            if (saveAssets)
            {
                UpdateDatabaseNames();
                DoozyUtils.SaveAssets();
            }
#endif
        }
        /// <summary> [Editor Only] Renames an UIAnimationData animation name (including the asset filename). Returns TRUE if the operation was successful </summary>
        /// <param name="oldAnimationName"> The previous animation name</param>
        /// <param name="newAnimationName"> The new animation name </param>
        private void Rename(string oldAnimationName, string newAnimationName)
        {
            UIAnimationData data = Get(oldAnimationName);

            if (data == null)
            {
                return;
            }
            newAnimationName = newAnimationName.Trim();
            if (Contains(newAnimationName))
            {
                return;
            }
            DoozyUtils.UndoRecordObjects(new Object[] { data, this }, UILabels.Rename);
            data.Name = newAnimationName;
            data.name = data.Name;
            data.SetDirty(false);
            SetDirty(false);
            UpdateAnimationNames(true);
        }
        /// <summary> [Editor Only] Perform a deep search through the project for any unregistered ThemeData asset files and adds them to the database. The search is done only in all the Resources folders. </summary>
        /// <param name="saveAssets"> Write all unsaved asset changes to disk? </param>
        public void SearchForUnregisteredThemes(bool saveAssets)
        {
            DoozyUtils.DisplayProgressBar(UILabels.SearchForThemes, UILabels.Search, 0.1f);

            bool foundUnregisteredThemeData = false;

            ThemeData[] array = Resources.LoadAll <ThemeData>("");
            if (array == null || array.Length == 0)
            {
                DoozyUtils.ClearProgressBar();
                return;
            }

            if (Themes == null)
            {
                Themes = new List <ThemeData>();
            }
            for (int i = 0; i < array.Length; i++)
            {
                ThemeData foundThemeData = array[i];
                DoozyUtils.DisplayProgressBar(UILabels.SearchForThemes, UILabels.Search, 0.1f + 0.1f + 0.7f * (i + 1) / array.Length);
                if (Themes.Contains(foundThemeData))
                {
                    continue;
                }
                AddTheme(foundThemeData, false);
                foundUnregisteredThemeData = true;
            }

            if (!foundUnregisteredThemeData)
            {
                DoozyUtils.ClearProgressBar();
                return;
            }

            DoozyUtils.DisplayProgressBar(UILabels.SearchForThemes, UILabels.Search, 0.9f);
            UpdateThemesNames();
            SetDirty(saveAssets);
            DoozyUtils.ClearProgressBar();
        }
Пример #21
0
        private static void CreateDatabaseAssets()
        {
            DoozyUtils.ClearProgressBar();
            DoozyUtils.DisplayProgressBar("Hold On", "Creating Database Assets...", 0.1f);
            UIAnimations.Instance.SetDirty(false);
            DoozyUtils.DisplayProgressBar("Hold On", "Creating Database Assets...", 0.2f);
            SoundySettings.Database.SetDirty(false);
            DoozyUtils.DisplayProgressBar("Hold On", "Creating Database Assets...", 0.3f);
            UIButtonSettings.Database.SetDirty(false);
            DoozyUtils.DisplayProgressBar("Hold On", "Creating Database Assets...", 0.5f);
            UICanvasSettings.Database.SetDirty(false);
            DoozyUtils.DisplayProgressBar("Hold On", "Creating Database Assets...", 0.7f);
            UIDrawerSettings.Database.SetDirty(false);
            DoozyUtils.DisplayProgressBar("Hold On", "Creating Database Assets...", 0.8f);
            UIPopupSettings.Database.SetDirty(false);
            DoozyUtils.DisplayProgressBar("Hold On", "Creating Database Assets...", 0.9f);
            UIViewSettings.Database.SetDirty(false);

            DoozyUtils.DisplayProgressBar("Hold On", "Saving Database Assets...", 0.95f);
            DoozyUtils.SaveAssets();
            DoozyUtils.ClearProgressBar();
        }
Пример #22
0
 /// <summary> Adds ProgressorGroup to scene and returns a reference to it </summary>
 private static ProgressorGroup AddToScene(bool selectGameObjectAfterCreation = false)
 {
     return(DoozyUtils.AddToScene <ProgressorGroup>(MenuUtils.ProgressorGroup_GameObject_Name, false, selectGameObjectAfterCreation));
 }
 /// <summary> Records any changes done on the object after this function </summary>
 /// <param name="undoMessage"> The title of the action to appear in the undo history (i.e. visible in the undo menu) </param>
 public void UndoRecord(string undoMessage)
 {
     DoozyUtils.UndoRecordObject(this, undoMessage);
 }
 /// <summary> [Editor Only] Marks target object as dirty. (Only suitable for non-scene objects) </summary>
 /// <param name="saveAssets"> Write all unsaved asset changes to disk? </param>
 public void SetDirty(bool saveAssets)
 {
     DoozyUtils.SetDirty(this, saveAssets);
 }
Пример #25
0
 private static void CreateComponent(MenuCommand menuCommand)
 {
     DoozyUtils.AddToScene <ColorTargetTextMeshPro>(MenuUtils.ColorTargetTextMeshPro_GameObject_Name, false, true);
 }
Пример #26
0
 /// <summary> Adds TouchDetector to scene and returns a reference to it </summary>
 private static TouchDetector AddToScene(bool selectGameObjectAfterCreation = false)
 {
     return(DoozyUtils.AddToScene <TouchDetector>(MenuUtils.TouchDetector_GameObject_Name, true, selectGameObjectAfterCreation));
 }
Пример #27
0
 /// <summary> Adds GameEventsManager to scene and returns a reference to it </summary>
 public static GameEventManager AddToScene(bool selectGameObjectAfterCreation = false)
 {
     return(DoozyUtils.AddToScene <GameEventManager>(MenuUtils.GameEventManager_GameObject_Name, true, selectGameObjectAfterCreation));
 }
Пример #28
0
 private static void CreateComponent(MenuCommand menuCommand)
 {
     DoozyUtils.AddToScene <ColorTargetSelectable>(MenuUtils.ColorTargetSelectable_GameObject_Name, false, true);
 }
Пример #29
0
 // ReSharper disable once MemberCanBePrivate.Global
 /// <summary> Adds SceneDirector to scene and returns a reference to it </summary>
 public static SceneDirector AddToScene(bool selectGameObjectAfterCreation = false)
 {
     return(DoozyUtils.AddToScene <SceneDirector>(MenuUtils.SceneDirector_GameObject_Name, true, selectGameObjectAfterCreation));
 }
Пример #30
0
 /// <summary> Add ThemeManager to scene and get a reference to it </summary>
 private static ThemeManager AddToScene(bool selectGameObjectAfterCreation = false)
 {
     return(DoozyUtils.AddToScene <ThemeManager>(MenuUtils.ThemeManager_GameObject_Name, true, selectGameObjectAfterCreation));
 }