| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452 | using System;using System.Collections.Generic;using UnityEngine;namespace FairyGUI{    /// <summary>    /// Global configs. These options should be set before any UI construction.    /// </summary>    [AddComponentMenu("FairyGUI/UI Config")]    public class UIConfig : MonoBehaviour    {        /// <summary>        /// Dynamic Font Support.         /// 4.x: Put the xxx.ttf into /Resources or /Resources/Fonts, and set defaultFont="xxx".        /// 5.x: set defaultFont to system font name(or names joint with comma). e.g. defaultFont="Microsoft YaHei, SimHei"        /// </summary>        public static string defaultFont = "";        [Obsolete("No use anymore")]        public static bool renderingTextBrighterOnDesktop = true;        /// <summary>        /// Resource using in Window.ShowModalWait for locking the window.        /// </summary>        public static string windowModalWaiting;        /// <summary>        /// Resource using in GRoot.ShowModalWait for locking the screen.        /// </summary>        public static string globalModalWaiting;        /// <summary>        /// When a modal window is in front, the background becomes dark.        /// </summary>        public static Color modalLayerColor = new Color(0f, 0f, 0f, 0.4f);        /// <summary>        /// Default button click sound.        /// </summary>        public static NAudioClip buttonSound;        /// <summary>        /// Default button click sound volume.        /// </summary>        public static float buttonSoundVolumeScale = 1f;        /// <summary>        /// Resource url of horizontal scrollbar        /// </summary>        public static string horizontalScrollBar;        /// <summary>        /// Resource url of vertical scrollbar        /// </summary>        public static string verticalScrollBar;        /// <summary>        /// Scrolling step in pixels        /// 当调用ScrollPane.scrollUp/Down/Left/Right时,或者点击滚动条的上下箭头时,滑动的距离。        /// 鼠标滚轮触发一次滚动的距离设定为defaultScrollStep*2        /// </summary>        public static float defaultScrollStep = 25;        /// <summary>        /// Deceleration ratio of scrollpane when its in touch dragging.        /// 当手指拖动并释放滚动区域后,内容会滑动一定距离后停下,这个速率就是减速的速率。        /// 越接近1,减速越慢,意味着滑动的时间和距离更长。        /// 这个是全局设置,也可以通过ScrollPane.decelerationRate进行个性设置。        /// </summary>        public static float defaultScrollDecelerationRate = 0.967f;        /// <summary>        /// Scrollbar display mode. Recommended 'Auto' for mobile and 'Visible' for web.        /// </summary>        public static ScrollBarDisplayType defaultScrollBarDisplay = ScrollBarDisplayType.Default;        /// <summary>        /// Allow dragging anywhere in container to scroll.        /// </summary>        public static bool defaultScrollTouchEffect = true;        /// <summary>        /// The "rebound" effect in the scolling container.        /// </summary>         public static bool defaultScrollBounceEffect = true;        /// <summary>        /// Resources url of PopupMenu.        /// </summary>        public static string popupMenu;        /// <summary>        /// Resource url of menu seperator.        /// </summary>        public static string popupMenu_seperator;        /// <summary>        /// In case of failure of loading content for GLoader, use this sign to indicate an error.        /// </summary>        public static string loaderErrorSign;        /// <summary>        /// Resource url of tooltips.        /// </summary>        public static string tooltipsWin;        /// <summary>        /// The number of visible items in ComboBox.        /// </summary>        public static int defaultComboBoxVisibleItemCount = 10;        /// <summary>        /// Pixel offsets of finger to trigger scrolling        /// </summary>        public static int touchScrollSensitivity = 20;        /// <summary>        /// Pixel offsets of finger to trigger dragging        /// </summary>        public static int touchDragSensitivity = 10;        /// <summary>        /// Pixel offsets of mouse pointer to trigger dragging.        /// </summary>        public static int clickDragSensitivity = 2;        /// <summary>        /// Allow softness on top or left side for scrollpane.        /// </summary>        public static bool allowSoftnessOnTopOrLeftSide = true;        /// <summary>        /// When click the window, brings to front automatically.        /// </summary>        public static bool bringWindowToFrontOnClick = true;        /// <summary>        ///         /// </summary>        public static float inputCaretSize = 1;        /// <summary>        ///         /// </summary>        public static Color inputHighlightColor = new Color32(255, 223, 141, 128);        /// <summary>        ///         /// </summary>        public static float frameTimeForAsyncUIConstruction = 0.002f;        /// <summary>        /// if RenderTexture using in painting mode has depth support.        /// </summary>        public static bool depthSupportForPaintingMode = true;        /// <summary>        /// Indicates whether to draw extra 4 or 8 times to achieve stroke effect for textfield.        /// If it is true, that is the 8 times, otherwise it is the 4 times.        /// </summary>        public static bool enhancedTextOutlineEffect = false;        [Obsolete("No use anymore.")]        public static VertAlignType richTextRowVerticalAlign = VertAlignType.Bottom;        /// <summary>        /// Suggest to enable it on low dpi (e.g. 96dpi) screens.        /// </summary>        public static bool makePixelPerfect = false;        public enum ConfigKey        {            DefaultFont,            ButtonSound,            ButtonSoundVolumeScale,            HorizontalScrollBar,            VerticalScrollBar,            DefaultScrollStep,            DefaultScrollBarDisplay,            DefaultScrollTouchEffect,            DefaultScrollBounceEffect,            TouchScrollSensitivity,            WindowModalWaiting,            GlobalModalWaiting,            PopupMenu,            PopupMenu_seperator,            LoaderErrorSign,            TooltipsWin,            DefaultComboBoxVisibleItemCount,            TouchDragSensitivity,            ClickDragSensitivity,            ModalLayerColor,            RenderingTextBrighterOnDesktop,            AllowSoftnessOnTopOrLeftSide,            InputCaretSize,            InputHighlightColor,            EnhancedTextOutlineEffect,            DepthSupportForPaintingMode,            RichTextRowVerticalAlign,            Branch,            PleaseSelect = 100        }        [Serializable]        public class ConfigValue        {            public bool valid;            public string s;            public int i;            public float f;            public bool b;            public Color c;            public void Reset()            {                valid = false;                s = null;                i = 0;                f = 0;                b = false;                c = Color.black;            }        }        public List<ConfigValue> Items = new List<ConfigValue>();        public List<string> PreloadPackages = new List<string>();        void Awake()        {            if (Application.isPlaying)            {                foreach (string packagePath in PreloadPackages)                {                    UIPackage.AddPackage(packagePath);                }                Load();            }        }        public void Load()        {            int cnt = Items.Count;            for (int i = 0; i < cnt; i++)            {                ConfigValue value = Items[i];                if (!value.valid)                    continue;                switch ((UIConfig.ConfigKey)i)                {                    case ConfigKey.ButtonSound:                        if (Application.isPlaying)                            UIConfig.buttonSound = UIPackage.GetItemAssetByURL(value.s) as NAudioClip;                        break;                    case ConfigKey.ButtonSoundVolumeScale:                        UIConfig.buttonSoundVolumeScale = value.f;                        break;                    case ConfigKey.ClickDragSensitivity:                        UIConfig.clickDragSensitivity = value.i;                        break;                    case ConfigKey.DefaultComboBoxVisibleItemCount:                        UIConfig.defaultComboBoxVisibleItemCount = value.i;                        break;                    case ConfigKey.DefaultFont:                        UIConfig.defaultFont = value.s;                        break;                    case ConfigKey.DefaultScrollBarDisplay:                        UIConfig.defaultScrollBarDisplay = (ScrollBarDisplayType)value.i;                        break;                    case ConfigKey.DefaultScrollBounceEffect:                        UIConfig.defaultScrollBounceEffect = value.b;                        break;                    case ConfigKey.DefaultScrollStep:                        UIConfig.defaultScrollStep = value.i;                        break;                    case ConfigKey.DefaultScrollTouchEffect:                        UIConfig.defaultScrollTouchEffect = value.b;                        break;                    case ConfigKey.GlobalModalWaiting:                        UIConfig.globalModalWaiting = value.s;                        break;                    case ConfigKey.HorizontalScrollBar:                        UIConfig.horizontalScrollBar = value.s;                        break;                    case ConfigKey.LoaderErrorSign:                        UIConfig.loaderErrorSign = value.s;                        break;                    case ConfigKey.ModalLayerColor:                        UIConfig.modalLayerColor = value.c;                        break;                    case ConfigKey.PopupMenu:                        UIConfig.popupMenu = value.s;                        break;                    case ConfigKey.PopupMenu_seperator:                        UIConfig.popupMenu_seperator = value.s;                        break;                    case ConfigKey.TooltipsWin:                        UIConfig.tooltipsWin = value.s;                        break;                    case ConfigKey.TouchDragSensitivity:                        UIConfig.touchDragSensitivity = value.i;                        break;                    case ConfigKey.TouchScrollSensitivity:                        UIConfig.touchScrollSensitivity = value.i;                        break;                    case ConfigKey.VerticalScrollBar:                        UIConfig.verticalScrollBar = value.s;                        break;                    case ConfigKey.WindowModalWaiting:                        UIConfig.windowModalWaiting = value.s;                        break;                    case ConfigKey.AllowSoftnessOnTopOrLeftSide:                        UIConfig.allowSoftnessOnTopOrLeftSide = value.b;                        break;                    case ConfigKey.InputCaretSize:                        UIConfig.inputCaretSize = value.i;                        break;                    case ConfigKey.InputHighlightColor:                        UIConfig.inputHighlightColor = value.c;                        break;                    case ConfigKey.DepthSupportForPaintingMode:                        UIConfig.depthSupportForPaintingMode = value.b;                        break;                    case ConfigKey.EnhancedTextOutlineEffect:                        UIConfig.enhancedTextOutlineEffect = value.b;                        break;                    case ConfigKey.Branch:                        UIPackage.branch = value.s;                        break;                }            }        }        public static void SetDefaultValue(ConfigKey key, ConfigValue value)        {            switch (key)            {                case ConfigKey.ButtonSoundVolumeScale:                    value.f = 1;                    break;                case ConfigKey.ClickDragSensitivity:                    value.i = 2;                    break;                case ConfigKey.DefaultComboBoxVisibleItemCount:                    value.i = 10;                    break;                case ConfigKey.DefaultScrollBarDisplay:                    value.i = (int)ScrollBarDisplayType.Default;                    break;                case ConfigKey.DefaultScrollBounceEffect:                case ConfigKey.DefaultScrollTouchEffect:                    value.b = true;                    break;                case ConfigKey.DefaultScrollStep:                    value.i = 25;                    break;                case ConfigKey.ModalLayerColor:                    value.c = new Color(0f, 0f, 0f, 0.4f);                    break;                case ConfigKey.RenderingTextBrighterOnDesktop:                    value.b = true;                    break;                case ConfigKey.TouchDragSensitivity:                    value.i = 10;                    break;                case ConfigKey.TouchScrollSensitivity:                    value.i = 20;                    break;                case ConfigKey.InputCaretSize:                    value.i = 1;                    break;                case ConfigKey.InputHighlightColor:                    value.c = new Color32(255, 223, 141, 128);                    break;                case ConfigKey.DepthSupportForPaintingMode:                    value.b = false;                    break;                case ConfigKey.Branch:                    value.s = "";                    break;            }        }        public static void ClearResourceRefs()        {            UIConfig.defaultFont = "";            UIConfig.buttonSound = null;            UIConfig.globalModalWaiting = null;            UIConfig.horizontalScrollBar = null;            UIConfig.loaderErrorSign = null;            UIConfig.popupMenu = null;            UIConfig.popupMenu_seperator = null;            UIConfig.tooltipsWin = null;            UIConfig.verticalScrollBar = null;            UIConfig.windowModalWaiting = null;            UIPackage.branch = null;        }        public void ApplyModifiedProperties()        {            EMRenderSupport.Reload();        }        public delegate NAudioClip SoundLoader(string url);        /// <summary>        ///         /// </summary>        public static SoundLoader soundLoader = null;    }}
 |