示例#1
0
        ////////////////////////////////////////////////////////////////////////////
        ////////////////////////////////////////////////////////////////////////////

        public static void PrepareToggleSetting(ToggleSetting p_Setting, BSMLAction p_Action, bool p_Value, bool p_RemoveLabel)
        {
            p_Setting.gameObject.SetActive(false);

            p_Setting.Value = p_Value;

            if (p_Action != null)
            {
                p_Setting.onChange = p_Action;
            }

            if (p_RemoveLabel)
            {
                GameObject.Destroy(p_Setting.gameObject.GetComponentsInChildren <TextMeshProUGUI>().ElementAt(0).transform.gameObject);

                RectTransform l_RectTransform = p_Setting.gameObject.transform.GetChild(1) as RectTransform;
                l_RectTransform.anchorMin = Vector2.zero;
                l_RectTransform.anchorMax = Vector2.one;
                l_RectTransform.sizeDelta = Vector2.one;

                p_Setting.gameObject.GetComponent <LayoutElement>().preferredWidth = -1f;
            }

            p_Setting.gameObject.SetActive(true);
        }
示例#2
0
        public override GameObject CreateObject(Transform parent)
        {
            GameObject gameObject = Object.Instantiate(Resources.FindObjectsOfTypeAll <Toggle>().Select(x => x.transform.parent.gameObject).First(p => p.name == PrefabToggleName), parent, false);
            GameObject nameText   = gameObject.transform.Find("NameText").gameObject;

            GameObject.Destroy(gameObject.GetComponent <BoolSettingsController>());

            gameObject.name = "BSMLToggle";
            gameObject.SetActive(false);

            Object.Destroy(nameText.GetComponent <LocalizedTextMeshProUGUI>());

            ToggleSetting toggleSetting = gameObject.AddComponent <ToggleSetting>();

            toggleSetting.toggle = gameObject.GetComponentInChildren <Toggle>();
            toggleSetting.toggle.interactable = true;
            toggleSetting.toggle.onValueChanged.RemoveAllListeners();

            toggleSetting.text              = nameText.GetComponent <TextMeshProUGUI>();
            toggleSetting.text.text         = "Default Text";
            toggleSetting.text.richText     = true;
            toggleSetting.text.overflowMode = TextOverflowModes.Ellipsis;

            gameObject.AddComponent <ExternalComponents>().components.Add(toggleSetting.text);

            gameObject.GetComponent <LayoutElement>().preferredWidth = 90;

            gameObject.SetActive(true);

            return(gameObject);
        }
示例#3
0
        private static SettingSection BuildShootingSection()
        {
            var section = new SettingSection(SystemUtil.GetStringResource("SettingSection_Image"));

            section.Add(new ToggleSetting(
                            new AppSettingData <bool>(SystemUtil.GetStringResource("PostviewTransferSetting"), SystemUtil.GetStringResource("Guide_ReceiveCapturedImage"),
                                                      () => { return(ApplicationSettings.GetInstance().IsPostviewTransferEnabled); },
                                                      enabled => { ApplicationSettings.GetInstance().IsPostviewTransferEnabled = enabled; })));

            section.Add(new ToggleSetting(
                            new AppSettingData <bool>(SystemUtil.GetStringResource("ImmediatePostviewSetting"), SystemUtil.GetStringResource("Guide_ImmediatePostviewSetting"),
                                                      () => { return(ApplicationSettings.GetInstance().ImmediatePostViewEnabled); },
                                                      enabled => { ApplicationSettings.GetInstance().ImmediatePostViewEnabled = enabled; })));

            var limited = (Application.Current as App).IsFunctionLimited;

            var geoGuide = limited ? "TrialMessage" : "AddGeotag_guide";
            AppSettingData <bool> geoSetting = null;

            geoSetting = new AppSettingData <bool>(SystemUtil.GetStringResource("AddGeotag"), SystemUtil.GetStringResource(geoGuide),
                                                   () =>
            {
                if (limited)
                {
                    return(false);
                }
                else
                {
                    return(ApplicationSettings.GetInstance().GeotagEnabled);
                }
            },
                                                   enabled =>
            {
                ApplicationSettings.GetInstance().GeotagEnabled = enabled;
                if (enabled)
                {
                    RequestPermission(geoSetting);
                }
            });
            var geoToggle = new ToggleSetting(geoSetting);

            if (ApplicationSettings.GetInstance().GeotagEnabled)
            {
                RequestPermission(geoSetting);
            }

            if (limited)
            {
                ApplicationSettings.GetInstance().GeotagEnabled = false;
                geoSetting.IsActive = false;
            }
            section.Add(geoToggle);

            section.Add(new ToggleSetting(
                            new AppSettingData <bool>(SystemUtil.GetStringResource("QuickConnectionSetting"), SystemUtil.GetStringResource("Guide_QuickConnection"),
                                                      () => { return(ApplicationSettings.GetInstance().QuickConnectionEnabled); },
                                                      enabled => { ApplicationSettings.GetInstance().QuickConnectionEnabled = enabled; })));

            return(section);
        }
示例#4
0
        public void Awake()
        {
            _wrapper  = transform.Find("Wrapper");
            _formView = _wrapper.transform.Find("CreateServerFormView");

            _addToBrowserSetting = CreateToggle("Add to Server Browser", AddToBrowserValue, OnAddToBrowserChange);
            _serverNameSetting   = CreateTextInput("Server Name", ServerNameValue, OnServerNameChange);

            _firstEnable = true;
        }
示例#5
0
        public override GameObject CreateObject(Transform parent)
        {
            if (toggleTemplate == null)
            {
                toggleTemplate = Resources.FindObjectsOfTypeAll <Toggle>().Select(x => x.transform.parent.gameObject).First(p => p.name == PrefabToggleName);
            }

            GameObject gameObject = Object.Instantiate(toggleTemplate, parent, false);
            GameObject nameText   = gameObject.transform.Find("NameText").gameObject;
            GameObject switchView = gameObject.transform.Find("SwitchView").gameObject;

            Object.Destroy(gameObject.GetComponent <BoolSettingsController>());

            gameObject.name = "BSMLToggle";
            gameObject.SetActive(false);

            ToggleSetting      toggleSetting      = gameObject.AddComponent <ToggleSetting>();
            AnimatedSwitchView animatedSwitchView = switchView.GetComponent <AnimatedSwitchView>();

            toggleSetting.toggle = switchView.GetComponent <Toggle>();
            toggleSetting.toggle.onValueChanged.RemoveAllListeners();
            toggleSetting.toggle.onValueChanged.AddListener(animatedSwitchView.HandleOnValueChanged);
            toggleSetting.toggle.interactable = true;
            toggleSetting.toggle.isOn         = false;
            animatedSwitchView.enabled        = true; // force refresh the UI state

            LocalizedTextMeshProUGUI localizedText = ConfigureLocalizedText(nameText);

            toggleSetting.text              = nameText.GetComponent <TextMeshProUGUI>();
            toggleSetting.text.text         = "Default Text";
            toggleSetting.text.richText     = true;
            toggleSetting.text.overflowMode = TextOverflowModes.Ellipsis;

            List <Component> externalComponents = gameObject.AddComponent <ExternalComponents>().components;

            externalComponents.Add(toggleSetting.text);
            externalComponents.Add(localizedText);

            gameObject.GetComponent <LayoutElement>().preferredWidth = 90;

            gameObject.SetActive(true);

            return(gameObject);
        }
        public override GameObject CreateObject(Transform parent)
        {
            if (toggleTemplate == null)
            {
                toggleTemplate = Resources.FindObjectsOfTypeAll <GameplayModifierToggle>().First(x => x.name == "InstaFail");
            }
            GameplayModifierToggle baseModifier = Object.Instantiate(toggleTemplate, parent, false);

            baseModifier.name = "BSMLModifier";

            GameObject gameObject = baseModifier.gameObject;

            gameObject.SetActive(false);

            Object.Destroy(baseModifier);
            Object.Destroy(gameObject.GetComponent <HoverTextSetter>());
            Object.Destroy(gameObject.transform.Find("Multiplier").gameObject);

            GameObject      nameText = gameObject.transform.Find("Name").gameObject;
            TextMeshProUGUI text     = nameText.GetComponent <TextMeshProUGUI>();

            text.text = "Default Text";

            LocalizableText localizedText = CreateLocalizableText(nameText);

            localizedText.MaintainTextAlignment = true;

            List <Component> externalComponents = gameObject.AddComponent <ExternalComponents>().components;

            externalComponents.Add(text);
            externalComponents.Add(localizedText);
            externalComponents.Add(gameObject.transform.Find("Icon").GetComponent <Image>());

            ToggleSetting toggleSetting = gameObject.AddComponent <ToggleSetting>();

            toggleSetting.toggle = gameObject.GetComponent <Toggle>();
            toggleSetting.toggle.onValueChanged.RemoveAllListeners();

            gameObject.SetActive(true);

            return(gameObject);
        }
        public override GameObject CreateObject(Transform parent)
        {
            GameplayModifierToggle baseModifier = MonoBehaviour.Instantiate(Resources.FindObjectsOfTypeAll <GameplayModifierToggle>().First(x => (x.name == "InstaFail")), parent, false);

            baseModifier.name = "BSMLModifier";

            GameObject gameObject = baseModifier.gameObject;

            MonoBehaviour.Destroy(baseModifier);
            MonoBehaviour.Destroy(gameObject.GetComponent <HoverHint>());

            ExternalComponents externalComponents = gameObject.AddComponent <ExternalComponents>();

            externalComponents.components.Add(gameObject.GetComponentInChildren <TextMeshProUGUI>());
            externalComponents.components.Add(gameObject.transform.Find("Icon").GetComponent <Image>());

            ToggleSetting toggleSetting = gameObject.AddComponent <ToggleSetting>();

            toggleSetting.toggle = gameObject.GetComponent <Toggle>();

            return(gameObject);
        }
示例#8
0
        private static SettingSection BuildShootingSection()
        {
            var section = new SettingSection(SystemUtil.GetStringResource("SettingSection_Image"));

            section.Add(new ToggleSetting
            {
                SettingData = new AppSettingData <bool>()
                {
                    Title         = SystemUtil.GetStringResource("PostviewTransferSetting"),
                    Guide         = SystemUtil.GetStringResource("Guide_ReceiveCapturedImage"),
                    StateProvider = () => ApplicationSettings.GetInstance().IsPostviewTransferEnabled,
                    StateObserver = enabled => ApplicationSettings.GetInstance().IsPostviewTransferEnabled = enabled
                }
            });

            var limited = (Application.Current as App).IsFunctionLimited;

            var geoGuide = limited ? "TrialMessage" : "AddGeotag_guide";
            AppSettingData <bool> geoSetting = null;

            geoSetting = new AppSettingData <bool>()
            {
                Title         = SystemUtil.GetStringResource("AddGeotag"),
                Guide         = SystemUtil.GetStringResource(geoGuide),
                StateProvider = () =>
                {
                    if (limited)
                    {
                        return(false);
                    }
                    else
                    {
                        return(ApplicationSettings.GetInstance().GeotagEnabled);
                    }
                },
                StateObserver = enabled =>
                {
                    ApplicationSettings.GetInstance().GeotagEnabled = enabled;
                    if (enabled)
                    {
                        RequestPermission(geoSetting);
                    }
                }
            };
            var geoToggle = new ToggleSetting {
                SettingData = geoSetting
            };

            if (ApplicationSettings.GetInstance().GeotagEnabled)
            {
                RequestPermission(geoSetting);
            }

            if (limited)
            {
                ApplicationSettings.GetInstance().GeotagEnabled = false;
                geoSetting.IsActive = false;
            }
            section.Add(geoToggle);

            return(section);
        }
 public VModuleToggleSetting(ToggleSetting setting, VShelfItem parent) : base(setting.text, setting.value, parent)
 {
     this.setting = setting;
 }
示例#10
0
        private void LoadSettings(SettingsViewModel model)
        {
            // Load defaults

            // Load settings
            XmlDocument settingsDoc = App.settingsDoc;

            try { settingsDoc.Load(fileSettingsXMLPath); }
            catch (XmlException e)
            {
                System.Diagnostics.Debug.WriteLine("Error loading settings: " + e.Message);
                return;
            }
            catch (FileNotFoundException e)
            {
                System.Diagnostics.Debug.WriteLine("Error loading settings: " + e.Message);
                return;
            }

            IEnumerator docChildNodes = settingsDoc.ChildNodes.GetEnumerator();

            while (docChildNodes.MoveNext())
            {
                XmlNode currentNode = (docChildNodes.Current as XmlNode);
                if (currentNode.Name == "settings")
                {
                    IEnumerator docNodes = currentNode.ChildNodes.GetEnumerator();

                    while (docNodes.MoveNext())
                    {
                        XmlNode currentSubNode = (docNodes.Current as XmlNode);
                        Setting setting        = new Setting();
                        XmlAttributeCollection currentAttrib = currentSubNode.Attributes;

                        string name = currentAttrib.GetNamedItem("name").Value ?? "";
                        Debug.WriteLine(name);
                        string value = currentAttrib.GetNamedItem("value").Value ?? "";
                        Debug.WriteLine(value);
                        string description = currentAttrib.GetNamedItem("description").Value ?? "";
                        Debug.WriteLine(description);

                        IEnumerator attributes = currentAttrib.GetEnumerator();
                        while (attributes.MoveNext())
                        {
                            XmlAttribute attr = (attributes.Current as XmlAttribute);
                            Debug.WriteLine("Attribute");
                            Debug.WriteLine(attr.Name);
                            Debug.WriteLine(attr.Value);
                        }

                        switch (currentSubNode.Name)
                        {
                        case "string":
                        {
                            setting = new StringSetting(name, value, description);
                            break;
                        }

                        /*case "int":// TODO cast string to int
                         *  {
                         *      setting = new IntSetting(name, value, description);
                         *      break;
                         *  }*/
                        case "toggle":
                        {
                            setting = new ToggleSetting(name, (value == "true"), description);
                            break;
                        }

                        default:
                        {
                            Debug.WriteLine("DEFAULT");
                            Debug.WriteLine(name + value + description);
                            Debug.WriteLine(currentSubNode.Name);
                            Debug.WriteLine(setting.Name + setting.Value + setting.Description);
                            break;
                        }
                        }
                        Debug.WriteLine(setting.ToString());
                        model.Settings.Add(setting);
                    }
                }
            }
        }