public override bool CanBeUsedByView(View view, SetterContainer container) { var multipleSetterContainer = (MultipleSetterContainer)container; if (view.Parent == null) { return(false); } return(CanBeUsedByParent(view.Parent, multipleSetterContainer) && _viewSelector.CanBeUsedByView(view, multipleSetterContainer.Container)); }
private static void UpdateSetters(SelectorIndex selectorIndex, SetterContainer setterContainer) { var setters = GetSetters(selectorIndex, setterContainer); bool changed = false; foreach (var setter in setterContainer.GetSetters()) { if (UpdateSetter(setters, setter)) { changed = true; } } if (changed) { selectorIndex.OnSelectorChange(setterContainer.GetSelector().SelectorKey); } }
public override string GetContainerKey(SetterContainer container) { var multipleSetterContainer = (MultipleSetterContainer)container; return(GetParentContainerKey(multipleSetterContainer) + _viewSelector.GetContainerKey(multipleSetterContainer.Container)); }
private static Dictionary <string, Setter> GetSetters(SelectorIndex selectorIndex, SetterContainer setterContainer) { var key = setterContainer.GetSelector().GetContainerKey(setterContainer); Dictionary <string, Setter> result; if (selectorIndex.Setters.TryGetValue(key, out result)) { return(result); } result = new Dictionary <string, Setter>(); selectorIndex.Setters.Add(key, result); return(result); }
/// <summary> /// Get the key used by this container. /// </summary> /// <param name="container">The container.</param> /// <returns>Returns the unique key that represents this set of styles.</returns> public abstract string GetContainerKey(SetterContainer container);
/// <summary> /// Check if a view can use the styles in a gived container. /// </summary> /// <param name="view">The view to check.</param> /// <param name="container">The container to check.</param> /// <returns>true if the view can use the container or false if not.</returns> public abstract bool CanBeUsedByView(View view, SetterContainer container);