示例#1
0
    protected override DropdownItem CreateItem(DropdownItem itemTemplate)
    {
        var item = base.CreateItem(itemTemplate);

        OnItemCreated?.Invoke(item.gameObject);
        return(item);
    }
示例#2
0
        // Add a new drop-down list item with the specified values.
        private DropdownItem AddItem(OptionData data, bool selected, DropdownItem itemTemplate, List <DropdownItem> items)
        {
            // Add a new item to the dropdown.
            DropdownItem item = CreateItem(itemTemplate);

            item.rectTransform.SetParent(itemTemplate.rectTransform.parent, false);

            item.gameObject.SetActive(true);
            item.gameObject.name = "Item " + items.Count + (data.text != null ? ": " + data.text : "");

            if (item.toggle != null)
            {
                item.toggle.isOn = false;
            }

            // Set the item's data
            if (item.text)
            {
                item.text.text = data.text;
            }
            if (item.image)
            {
                item.image.sprite  = data.image;
                item.image.enabled = (item.image.sprite != null);
            }

            items.Add(item);
            return(item);
        }
示例#3
0
    public override void OnPointerClick(PointerEventData eventData)
    {
        Transform dropdownT = transform.Find("Dropdown List");

        Show();

        if (!IsActive() || !IsInteractable() || dropdownT != null)
        {
            return;
        }

        dropdownT = transform.Find("Dropdown List");
        if (dropdownT != null && OnInitItem != null)
        {
            DropdownItem[] items = dropdownT.GetComponentsInChildren <DropdownItem>();
            for (int i = 0; i < items.Length; i++)
            {
                DropdownItem item = items[i];
                string       s_n  = item.name;

                int id = 0;
                s_n = s_n.Replace("item ", "");
                int pos_end = s_n.IndexOf(':');
                if (pos_end > -1)
                {
                    s_n = s_n.Substring(0, pos_end);
                    int.TryParse(s_n, out id);
                }
                OnInitItem(gameObject, item.gameObject, id);
            }

            //OnInitItems(dropdownT.gameObject);
        }
    }
示例#4
0
        protected override void OnInitialized()
        {
            base.OnInitialized();

            var male = new DropdownItem <GenderTypeEnum>
            {
                ItemObject  = GenderTypeEnum.Male,
                DisplayText = "Male"
            };

            var female = new DropdownItem <GenderTypeEnum>
            {
                ItemObject  = GenderTypeEnum.Female,
                DisplayText = "Female"
            };

            var neutral = new DropdownItem <GenderTypeEnum>
            {
                ItemObject  = GenderTypeEnum.Neutral,
                DisplayText = "others"
            };

            GenderTypeDropDownItems.Add(male);
            GenderTypeDropDownItems.Add(female);
            GenderTypeDropDownItems.Add(neutral);

            SelectedGenderTypeDropDownItem = female;

            TryGetUsernameFromUri();
        }
示例#5
0
        // Change the value and hide the dropdown.
        private void OnSelectItem(DropdownItem item)
        {
            if (item.blockerActive)
            {
                return;
            }

            Toggle toggle = item.toggle;

            int       selectedIndex = -1;
            Transform tr            = toggle.transform;
            Transform parent        = tr.parent;

            for (int i = 0; i < parent.childCount; i++)
            {
                if (parent.GetChild(i) == tr)
                {
                    // Subtract one to account for template child.
                    selectedIndex = i - 1;
                    break;
                }
            }

            if (selectedIndex < 0)
            {
                return;
            }

            value = selectedIndex;

            if (item.settingsToggleKey == string.Empty)
            {
                Hide();
            }
        }
示例#6
0
    protected override DropdownItem CreateItem(DropdownItem itemTemplate)
    {
        DropdownItem item = base.CreateItem(itemTemplate);

        BrocastItem(options[count], item);
        count++;
        return(item);
    }
示例#7
0
        protected override DropdownItem CreateItem(DropdownItem itemTemplate)
        {
            var    itemIns    = base.CreateItem(itemTemplate);
            Button itemButton = itemIns.GetComponentInChildren <Button>();

            buttons.Add(itemButton);
            return(itemIns);
        }
    protected override DropdownItem CreateItem(DropdownItem itemTemplate)
    {
        DropdownItem ddi = base.CreateItem(itemTemplate);

        ddi.transform.GetChild(3).GetComponentInChildren <BoundTooltipTrigger>().text = _i18NDropdown.getKeys()[count] + "_description";
        count++;
        return(ddi);
    }
示例#9
0
 void SetupGraphicsDropdown()
 {
     if (graphicsQualityDropdown == null)
     {
         GameObject newDropdown = Instantiate(dropdownItemPrefab, scrollViewContent);
         graphicsQualityDropdown = newDropdown.GetComponent <DropdownItem>();
     }
     graphicsQualityDropdown.Init("Quality", QualitySettings.GetQualityLevel(), QualitySettings.names.ToList(), SetQuality);
 }
示例#10
0
        protected override DropdownItem CreateItem(DropdownItem itemTemplate)
        {
            var item = base.CreateItem(itemTemplate);
            var toggle = item.GetComponent<ToggleButton>();

            toggle.Initialize(Context);

            return item;
        }
        private void SetupTemplate()
        {
            //IL_0164: Unknown result type (might be due to invalid IL or missing references)
            //IL_016e: Expected O, but got Unknown
            validTemplate = false;
            if (!Object.op_Implicit(m_Template))
            {
                Debug.LogError((object)"The dropdown template is not assigned. The template needs to be assigned and must have a child GameObject with a Toggle component serving as the item.", this);
                return;
            }
            GameObject gameObject = m_Template.get_gameObject();

            gameObject.SetActive(true);
            Toggle componentInChildren = m_Template.GetComponentInChildren <Toggle>();

            validTemplate = true;
            if (!Object.op_Implicit(componentInChildren) || componentInChildren.get_transform() == template)
            {
                validTemplate = false;
                Debug.LogError((object)"The dropdown template is not valid. The template must have a child GameObject with a Toggle component serving as the item.", template);
            }
            else if (!(componentInChildren.get_transform().get_parent() is RectTransform))
            {
                validTemplate = false;
                Debug.LogError((object)"The dropdown template is not valid. The child GameObject with a Toggle component (the item) must have a RectTransform on its parent.", template);
            }
            else if (itemText != null && !itemText.get_transform().IsChildOf(componentInChildren.get_transform()))
            {
                validTemplate = false;
                Debug.LogError((object)"The dropdown template is not valid. The Item Text must be on the item GameObject or children of it.", template);
            }
            else if (itemImage != null && !itemImage.get_transform().IsChildOf(componentInChildren.get_transform()))
            {
                validTemplate = false;
                Debug.LogError((object)"The dropdown template is not valid. The Item Image must be on the item GameObject or children of it.", template);
            }
            if (!validTemplate)
            {
                gameObject.SetActive(false);
                return;
            }
            DropdownItem dropdownItem = componentInChildren.get_gameObject().AddComponent <DropdownItem>();

            dropdownItem.text          = m_ItemText;
            dropdownItem.image         = m_ItemImage;
            dropdownItem.toggle        = componentInChildren;
            dropdownItem.rectTransform = componentInChildren.get_transform();
            Canvas orAddComponent = TextFieldDropdown.GetOrAddComponent <Canvas>(gameObject);

            orAddComponent.set_overrideSorting(true);
            orAddComponent.set_sortingOrder(30000);
            TextFieldDropdown.GetOrAddComponent <CustomGraphicRaycaster>(gameObject);
            TextFieldDropdown.GetOrAddComponent <CanvasGroup>(gameObject);
            gameObject.SetActive(false);
            validTemplate = true;
        }
示例#12
0
    /// <summary>
    /// 关闭列表时,销毁Item的Callback
    /// </summary>
    /// <param name="item"></param>
    protected override void DestroyItem(DropdownItem item)
    {
        // 如果包含Toggle,就删除
        if (m_ItemToggles.Contains(item.toggle))
        {
            m_ItemToggles.Remove(item.toggle);
        }

        base.DestroyItem(item);
    }
示例#13
0
 void SetupFullscreenDropdown()
 {
     if (fullScreenDropdown == null)
     {
         GameObject newDropdown = Instantiate(dropdownItemPrefab, scrollViewContent);
         fullScreenDropdown = newDropdown.GetComponent <DropdownItem>();
     }
     fullScreenDropdown.Init("Fullscreen", 0, new List <string> {
         "FullScreen", "Windowed"
     }, SetFullScreen);
 }
        protected override DropdownItem CreateItem(DropdownItem itemTemplate)
        {
            // Generate a DropdownItem
            DropdownItem itemToReplace = base.CreateItem(itemTemplate);

            allDropDownItems.Add(itemToReplace, itemToReplace.text);

            // Indicate items needs to change
            isItemsSetup = false;
            return(itemToReplace);
        }
示例#15
0
 private void BrocastItem(OptionData data, DropdownItem item)
 {
     if (data == null)
     {
         return;
     }
     if (brocast != null)
     {
         brocast.Call(data.text, item);
     }
 }
示例#16
0
    void SetupResolutionDropdown()
    {
        resolutions = GetBestResolutions();
        if (resolutionDropdown == null)
        {
            GameObject newDropdown = Instantiate(dropdownItemPrefab, scrollViewContent);
            resolutionDropdown = newDropdown.GetComponent <DropdownItem>();
        }

        resolutionDropdown.Init("Resolution", GetStartingResolution(), GetResolutionCapabilities(), SetResolution);
    }
        protected override void DestroyItem(DropdownItem item)
        {
            base.DestroyItem(item);
            if (allDropDownItems.ContainsKey(item) == true)
            {
                allDropDownItems.Remove(item);
            }

            // Indicate items needs to change
            isItemsSetup = false;
        }
示例#18
0
        public void SetValue(object value)
        {
            var          dropdownValue = value.CastTObject <DropdownValue <object> >();
            DropdownItem selectedItem  = this.Items.FirstOrDefault(a => a.Value.Equals(dropdownValue.Value));

            if (selectedItem != null)
            {
                var selectedPosition = this.Items.IndexOf(selectedItem);
                this.PickerView.Select(selectedPosition, 0, false);
            }
        }
示例#19
0
        private void SetupTemplate()
        {
            validTemplate = false;
            if (!m_Template)
            {
                Debug.LogError("The dropdown template is not assigned. The template needs to be assigned and must have a child GameObject with a Toggle component serving as the item.", this);
                return;
            }
            GameObject gameObject = m_Template.gameObject;

            gameObject.SetActive(value: true);
            Toggle componentInChildren = m_Template.GetComponentInChildren <Toggle>();

            validTemplate = true;
            if (!componentInChildren || componentInChildren.transform == template)
            {
                validTemplate = false;
                Debug.LogError("The dropdown template is not valid. The template must have a child GameObject with a Toggle component serving as the item.", template);
            }
            else if (!(componentInChildren.transform.parent is RectTransform))
            {
                validTemplate = false;
                Debug.LogError("The dropdown template is not valid. The child GameObject with a Toggle component (the item) must have a RectTransform on its parent.", template);
            }
            else if (itemText != null && !itemText.transform.IsChildOf(componentInChildren.transform))
            {
                validTemplate = false;
                Debug.LogError("The dropdown template is not valid. The Item Text must be on the item GameObject or children of it.", template);
            }
            else if (itemImage != null && !itemImage.transform.IsChildOf(componentInChildren.transform))
            {
                validTemplate = false;
                Debug.LogError("The dropdown template is not valid. The Item Image must be on the item GameObject or children of it.", template);
            }
            if (!validTemplate)
            {
                gameObject.SetActive(value: false);
                return;
            }
            DropdownItem dropdownItem = componentInChildren.gameObject.AddComponent <DropdownItem>();

            dropdownItem.text          = m_ItemText;
            dropdownItem.image         = m_ItemImage;
            dropdownItem.toggle        = componentInChildren;
            dropdownItem.rectTransform = (RectTransform)componentInChildren.transform;
            Canvas orAddComponent = GetOrAddComponent <Canvas>(gameObject);

            orAddComponent.overrideSorting = true;
            orAddComponent.sortingOrder    = 30000;
            GetOrAddComponent <GraphicRaycaster>(gameObject);
            GetOrAddComponent <CanvasGroup>(gameObject);
            gameObject.SetActive(value: false);
            validTemplate = true;
        }
        protected override DropdownItem CreateItem(DropdownItem itemTemplate)
        {
            var item          = base.CreateItem(itemTemplate);
            var rectTransform = item.GetComponent <RectTransform>();

            rectTransform.anchorMin = Vector2.zero;
            rectTransform.anchorMax = Vector2.one;
            rectTransform.offsetMin = Vector2.zero;
            rectTransform.offsetMax = Vector2.zero;

            return(item);
        }
示例#21
0
 protected void AddTags(DropdownItem tag)
 {
     if (model.Tags == null)
     {
         model.Tags = new Collection <ItemUuidValue>();
     }
     model.Tags.Add(new ItemUuidValue()
     {
         ref_id = tag.uid, name = tag.label, description = tag.description
     });
     CheckTagsData();
 }
    //Make disabled options half transparent
    protected override DropdownItem CreateItem(DropdownItem itemTemplate)
    {
        DropdownItem item = base.CreateItem(itemTemplate);

        item.toggle.interactable = ((CustomOptionData)options[index]).Interactable;
        Color color = item.text.color;

        color.a         = ((CustomOptionData)options[index]).Interactable ? 1f : 0.5f;
        item.text.color = color;
        index++;
        return(item);
    }
 protected void AddTags(DropdownItem tag)
 {
     if (model.Tags == null)
     {
         model.Tags = new Collection <ItemUuidValue>();
     }
     //SearchTagsData.Remove(tag);
     model.Tags.Add(new ItemUuidValue()
     {
         ref_id = tag.uid, name = tag.label
     });
     CheckTagsData();
 }
示例#24
0
            // ReSharper disable once MemberHidesStaticFromOuterClass
            public static DropdownItem ReadXml(XElement ele)
            {
                var i = new DropdownItem
                {
                    Description = ele.Element("Description")?.Value,
                    Fee         = ele.Attribute("Fee").ToDecimal(),
                    Limit       = ele.Attribute("Limit").ToInt2(),
                    MeetingTime = ele.Attribute("Time").ToDate()
                };

                i.SmallGroup = (ele.Element("SmallGroup")?.Value ?? i.Description)?.TrimEnd();
                return(i);
            }
示例#25
0
        void ExecSelectedIndexChanged(object parameter)
        {
            DropdownItem item = parameter as DropdownItem;

            if (item.ID == 0)
            {
                SelectRoleCanLogin = false;
            }
            else
            {
                SelectRoleCanLogin = true;
            }
        }
示例#26
0
        public new static AskDropdown ReadXml(XElement ele)
        {
            var dd = new AskDropdown {
                Label = ele.Element("Label")?.Value
            };

            foreach (var ee in ele.Elements("DropdownItem"))
            {
                dd.list.Add(DropdownItem.ReadXml(ee));
            }
            // todo: prevent duplicates
            return(dd);
        }
示例#27
0
        public new static AskDropdown ReadXml(XElement ele)
        {
            var dd = new AskDropdown {
                Label = ele.Element("Label")?.Value
            };

            foreach (var ee in ele.Elements("DropdownItem"))
            {
                if (ee.Element("Description")?.Value != null)
                {
                    dd.list.Add(DropdownItem.ReadXml(ee));
                }
            }
            return(dd);
        }
        public IActionResult ChildDropdown(string ParentId, string SubDropdownKey, int ParentValue)
        {
            List <DropdownItem> DropdownItems   = SelectListItemsRegistry.Get().GetFromDict(ParentId);
            DropdownItem        selectedDdlItem = DropdownItems.Where(x => x.DropdownValue() == ParentValue.ToString()).FirstOrDefault();

            if (!typeof(SubDropdownItemProviderFactory).IsAssignableFrom(selectedDdlItem.GetType()))
            {
                throw new InvalidParentDropdownException($"Unable to create SubDropdownFactory from parent dropdown {ParentId} (Class: {selectedDdlItem.GetType().FullName}), make sure {selectedDdlItem.GetType().FullName} implements SubDropdownItemProviderFactory");
            }

            SubDropdownItemProviderFactory subDropdownItemProviderFactory = (SubDropdownItemProviderFactory)selectedDdlItem;
            List <DropdownItem>            subDropdownItems = subDropdownItemProviderFactory?.GetSubDropdownItems(SubDropdownKey) ?? new List <DropdownItem>();
            List <SelectListItem>          selectListItems  = Dropdown.From(subDropdownItems);

            return(Json(selectListItems));
        }
示例#29
0
    public void TryMakeNext()
    { // Attempts creating the next dropdown item.  If not one, ends.
        currentDropdownIndex++;
        try
        {
            //print("Nearly equal - \na: " + percentageComplete + "\nb: " + (increment *(double)currentDropdownIndex));
            Image newDropdownImage = Instantiate(dropdownPrefab);
            Text  newText          = newDropdownImage.GetComponentInChildren <Text>();
            newText.text = newList[currentDropdownIndex - 1].mode;
            newDropdownImage.transform.SetParent(transform, false);
            newDropdownImage.gameObject.SetActive(true);
            Color color = newDropdownImage.color;
            color.a = 0;
            newDropdownImage.color = color;
            //RectTransform rect = newDropdownImage.GetComponent<RectTransform>();
            Vector2      initialPos      = new Vector2(0, -(currentDropdownIndex - 1) * (dropdownRect.rect.height - .65f)); // -.65f gets rid of line in between (causes slight overlap)
            DropdownItem newDropdownItem = newDropdownImage.gameObject.GetComponent <DropdownItem>();
            newDropdownItem.listMode = newList[currentDropdownIndex - 1];
            Button newButton = newDropdownItem.GetComponentInChildren <Button>();
            newDropdownImage.sprite = (newList[currentDropdownIndex - 1].selected) ? SpriteManager.selectedDropdownSprite : SpriteManager.defaultDropdownSprite;
            switch (dropdownType)
            {
            case DropdownType.SortBy:
                ListMode sortModeListener = newList[currentDropdownIndex - 1];
                newButton.onClick.RemoveAllListeners();
                newButton.onClick.AddListener(() => window.SetSortMode(sortModeListener));
                break;

            case DropdownType.Filter:
                ListMode filterModeListener = newList[currentDropdownIndex - 1];
                newButton.onClick.AddListener(() => window.FilterModeCallback(filterModeListener));
                break;

            case DropdownType.Location:
                ListMode locationModeListener = newList[currentDropdownIndex - 1];
                // newButton.onClick.AddListener(() => window.SetLocationMode(locationModeListener));
                break;
            }
            newDropdownItem.Open(initialPos);
            dropdownDisplayedItems.Add(newDropdownItem);
        }
        catch (ArgumentOutOfRangeException)
        {
            creatingDropdown     = false;
            currentDropdownIndex = 0;
        }
    }
示例#30
0
        public void DropdownTests_Style()
        {
            _drop.Position = new Point(10, 20);
            _drop.Size     = new Vector2(30, 40);

            var dropitem = new DropdownItem <string>("catpants", _drop);

            dropitem.Vertical   = VerticalAlignment.Top;
            dropitem.Horizontal = HorizontalAlignment.Left;
            dropitem.Size       = new Vector2(30, 40);
            _drop.AddDropdownItem(dropitem);

            _drop.SelectedItem = "catpants";

            Assert.AreEqual(false, dropitem.HasBackground);
            Assert.AreEqual(false, dropitem.HasOutline);
        }
示例#31
0
 public static DropdownItem Parse(Parser parser, int startindent)
 {
     var i = new DropdownItem();
     if (parser.curr.kw != Parser.RegKeywords.None)
         throw parser.GetException("unexpected line in Dropdown");
     i.Description = parser.GetLine();
     i.SmallGroup = i.Description;
     if (parser.curr.indent <= startindent)
         return i;
     var ind = parser.curr.indent;
     while (parser.curr.indent == ind)
     {
         switch (parser.curr.kw)
         {
             case Parser.RegKeywords.SmallGroup:
                 i.SmallGroup = parser.GetString(i.Description);
                 break;
             case Parser.RegKeywords.Fee:
                 i.Fee = parser.GetDecimal();
                 break;
             case Parser.RegKeywords.Limit:
                 i.Limit = parser.GetNullInt();
                 break;
             case Parser.RegKeywords.Time:
                 i.MeetingTime = parser.GetDateTime();
                 break;
             default:
                 throw parser.GetException("unexpected line in DropdownItem");
         }
     }
     return i;
 }
示例#32
0
		    // ReSharper disable once MemberHidesStaticFromOuterClass
		    public static DropdownItem ReadXml(XElement ele)
		    {
		        var i = new DropdownItem
		        {
		            Description = ele.Element("Description")?.Value,
		            Fee = ele.Attribute("Fee")?.Value?.ToDecimal(),
		            Limit = ele.Attribute("Limit")?.Value?.ToInt2(),
		            MeetingTime = ele.Attribute("Time")?.Value?.ToDate()
		        };
		        i.SmallGroup = ele.Element("SmallGroup")?.Value ?? i.Description;
				return i;
		    }