Ejemplo n.º 1
0
        /*--------------------------------------------------------------------------------------------*/
        public IList <IRadioItem> GetRadioSiblings(IRadioItem pSelectedItem)
        {
            var    siblings = new List <IRadioItem>();         //GC_ALLOC
            string id       = pSelectedItem.GroupId;

            for (int panelI = 0; panelI < FullPanels.Length; panelI++)
            {
                IHoverboardPanelState panel = FullPanels[panelI];

                for (int layoutI = 0; layoutI < panel.Layouts.Count; layoutI++)
                {
                    IHoverboardLayoutState layout = panel.Layouts[layoutI];

                    for (int itemI = 0; itemI < layout.Items.Count; itemI++)
                    {
                        IRadioItem radItem = (layout.Items[itemI].Item as IRadioItem);

                        if (radItem == null || radItem == pSelectedItem || radItem.GroupId != id)
                        {
                            continue;
                        }

                        siblings.Add(radItem);
                    }
                }
            }

            return(siblings);
        }
        /*--------------------------------------------------------------------------------------------*/
        public IRadioItem[] GetRadioSiblings(IRadioItem pSelectedItem)
        {
            var    siblings = new List <IRadioItem>();
            string id       = pSelectedItem.GroupId;

            foreach (IHoverboardPanelState panel in Panels)
            {
                foreach (IHoverboardLayoutState layout in panel.Layouts)
                {
                    foreach (IBaseItemState item in layout.Items)
                    {
                        IRadioItem radItem = (item.Item as IRadioItem);

                        if (radItem == null || radItem == pSelectedItem || radItem.GroupId != id)
                        {
                            continue;
                        }

                        siblings.Add(radItem);
                    }
                }
            }

            return(siblings.ToArray());
        }
Ejemplo n.º 3
0
        /*--------------------------------------------------------------------------------------------*/
        private void DeselectRadioSiblings(IRadioItem pSelectedRadioItem)
        {
            IList <IRadioItem> siblings;

            if (vRadioSiblingsFunc != null)
            {
                siblings = vRadioSiblingsFunc(pSelectedRadioItem);
            }
            else
            {
                siblings = new List <IRadioItem>();

                foreach (IBaseItem item in vActiveItems)
                {
                    IRadioItem radItem = (item as IRadioItem);

                    if (radItem != null && radItem != pSelectedRadioItem)
                    {
                        siblings.Add(radItem);
                    }
                }
            }

            for (int i = 0; i < siblings.Count; i++)
            {
                siblings[i].Value = false;
            }
        }
Ejemplo n.º 4
0
        ////////////////////////////////////////////////////////////////////////////////////////////////
        /*--------------------------------------------------------------------------------------------*/
        private void HandleItemSelected(ISelectableItem pItem)
        {
            IRadioItem radItem = (pItem as IRadioItem);

            if (radItem != null)
            {
                DeselectRadioSiblings(radItem);
            }

            LastSelectedItem = pItem;
            OnItemSelected(this, pItem);
        }
        ////////////////////////////////////////////////////////////////////////////////////////////////
        /*--------------------------------------------------------------------------------------------*/
        private void DeselectRemainingRadioGroupMembers(IRadioItem pRadioData)
        {
            HoverItemsManager itemsMan = GetComponent<HoverItemsManager>();
            string groupId = pRadioData.GroupId;

            Func<HoverItem, bool> filter = (tryItem => {
                IRadioItem match = (tryItem.Data as IRadioItem);
                return (match != null && match != pRadioData && match.GroupId == groupId);
            });

            itemsMan.FillListWithMatchingItems(vItemsBuffer, filter);

            for ( int i = 0 ; i < vItemsBuffer.Count ; i++ ) {
                ((IRadioItem)vItemsBuffer[i].Data).Value = false;
            }
        }
Ejemplo n.º 6
0
        /*--------------------------------------------------------------------------------------------*/
        private void DeselectRadioSiblings(IRadioItem pSelectedRadioItem)
        {
            foreach (IBaseItem item in vActiveItems)
            {
                if (item == pSelectedRadioItem)
                {
                    continue;
                }

                IRadioItem radItem = (item as IRadioItem);

                if (radItem == null)
                {
                    continue;
                }

                radItem.Value = false;
            }
        }
        ////////////////////////////////////////////////////////////////////////////////////////////////
        /*--------------------------------------------------------------------------------------------*/
        public void Awake()
        {
            vHoverHierarchy       = gameObject.AddComponent <HovercastItemHierarchy>();
            vHoverHierarchy.Title = "Hovercast VR";

            vHoverItems = new HovercastItem[4];

            for (int i = 0; i < vHoverItems.Length; ++i)
            {
                var itemObj = new GameObject("Item " + i);
                itemObj.transform.SetParent(gameObject.transform, false);

                HovercastItem hoverItem = itemObj.AddComponent <HovercastItem>();
                hoverItem.Label      = "Item " + i;
                hoverItem.Type       = HovercastItem.HovercastItemType.Radio;
                hoverItem.RadioValue = (i == 0);
                vHoverItems[i]       = hoverItem;

                IRadioItem radioItem = (IRadioItem)hoverItem.GetItem();
                radioItem.OnSelected += HandleRadioItemSelected;
            }
        }
Ejemplo n.º 8
0
        /*--------------------------------------------------------------------------------------------*/
        private void DeselectRadioSiblings(IRadioItem pSelectedRadioItem)
        {
            IRadioItem[] siblings;

            if (vRadioSiblingsFunc != null)
            {
                siblings = vRadioSiblingsFunc(pSelectedRadioItem);
            }
            else
            {
                siblings = vActiveItems
                           .Where(x => x != pSelectedRadioItem)
                           .Select(x => (x as IRadioItem))
                           .Where(x => x != null)
                           .ToArray();
            }

            foreach (IRadioItem radItem in siblings)
            {
                radItem.Value = false;
            }
        }
		/*--------------------------------------------------------------------------------------------*/
		public IList<IRadioItem> GetRadioSiblings(IRadioItem pSelectedItem) {
			var siblings = new List<IRadioItem>(); //GC_ALLOC
			string id = pSelectedItem.GroupId;

			for ( int panelI = 0 ; panelI < FullPanels.Length ; panelI++ ) {
				IHoverboardPanelState panel = FullPanels[panelI];

				for ( int layoutI = 0 ; layoutI < panel.Layouts.Count ; layoutI++ ) {
					IHoverboardLayoutState layout = panel.Layouts[layoutI];

					for ( int itemI = 0 ; itemI < layout.Items.Count ; itemI++ ) {
						IRadioItem radItem = (layout.Items[itemI].Item as IRadioItem);

						if ( radItem == null || radItem == pSelectedItem || radItem.GroupId != id ) {
							continue;
						}

						siblings.Add(radItem);
					}
				}
			}

			return siblings;
		}