//////////////////////////////////////////////////////////////////////////////////////////////// /*--------------------------------------------------------------------------------------------*/ protected override Type GetRendererForNavItemTypeInner(NavItem.ItemType pNavItemType) { switch (pNavItemType) { case NavItem.ItemType.Parent: return(typeof(UiParentRenderer)); case NavItem.ItemType.Selector: return(typeof(UiSelectRenderer)); case NavItem.ItemType.Sticky: return(typeof(UiStickyRenderer)); case NavItem.ItemType.Checkbox: return(typeof(UiCheckboxRenderer)); case NavItem.ItemType.Radio: return(typeof(UiRadioRenderer)); case NavItem.ItemType.Slider: return(typeof(UiSliderRenderer)); } return(typeof(UiSelectRenderer)); }
//////////////////////////////////////////////////////////////////////////////////////////////// /*--------------------------------------------------------------------------------------------*/ public Type GetRendererForNavItemType(NavItem.ItemType pNavItemType) { Type type = GetRendererForNavItemTypeInner(pNavItemType); if (type == null) { throw new Exception(GetErrorPrefix(pNavItemType) + "cannot be null."); } if (!type.GetInterfaces().Contains(typeof(IUiSegmentRenderer))) { throw new Exception(GetErrorPrefix(pNavItemType) + "must implement the " + typeof(IUiSegmentRenderer).Name + " interface."); } return(type); }
//////////////////////////////////////////////////////////////////////////////////////////////// /*--------------------------------------------------------------------------------------------*/ private static string GetErrorPrefix(NavItem.ItemType pNavItemType) { return("Hovercast | The 'Segment' Renderer for '" + pNavItemType + "' NavItems "); }
/*--------------------------------------------------------------------------------------------*/ protected abstract Type GetRendererForNavItemTypeInner(NavItem.ItemType pNavItemType);
//////////////////////////////////////////////////////////////////////////////////////////////// /*--------------------------------------------------------------------------------------------*/ public static bool IsItemWithin(NavItem pItem, NavItemParent pParent, NavItem.ItemType pType) { VerifyParent(pParent); return(pItem.Type == pType && pParent.ChildLevel.Items.Contains(pItem)); }
/*--------------------------------------------------------------------------------------------*/ protected override Type GetRendererForNavItemTypeInner(NavItem.ItemType pNavItemType) { return(typeof(UiSliderRenderer)); }