public WrappedReflexiveEntry GetTopLevelWrapper(ReflexiveData reflexive, WrappedReflexiveEntry wrapper) { FlattenedReflexive flattened; if (_flattenInfo.TryGetValue(reflexive, out flattened)) return flattened.GetTopLevelWrapper(wrapper); return null; }
public WrappedReflexiveEntry GetTopLevelWrapper(ReflexiveData reflexive, WrappedReflexiveEntry wrapper) { FlattenedReflexive flattened; if (_flattenInfo.TryGetValue(reflexive, out flattened)) { return(flattened.GetTopLevelWrapper(wrapper)); } return(null); }
public WrappedReflexiveEntry WrapField(MetaField field, double width, bool last) { _loadedFields.Add(field); _fieldVisibility.Add(true); _tracker.AttachTo(field); var wrapper = new WrappedReflexiveEntry(_loadedFields, _wrappers.Count, width, last); _wrappers.Add(wrapper); return wrapper; }
public WrappedReflexiveEntry WrapField(MetaField field, double width, bool last) { _loadedFields.Add(field); _fieldVisibility.Add(true); _tracker.AttachTo(field); var wrapper = new WrappedReflexiveEntry(_loadedFields, _wrappers.Count, width, last); _wrappers.Add(wrapper); return(wrapper); }
public WrappedReflexiveEntry GetTopLevelWrapper(WrappedReflexiveEntry wrapper) { WrappedReflexiveEntry result = wrapper; FlattenedReflexive reflexive = _parent; while (reflexive != null) { int index = reflexive._template.Template.IndexOf(result); result = reflexive._wrappers[index]; reflexive = reflexive._parent; } return(result); }
public void VisitReflexiveEntry(WrappedReflexiveEntry field) { // Save our state and recurse into it double oldTotal = _totalWidth; _totalWidth = 0; Add(field.WrappedField); double entryWidth = _totalWidth; _totalWidth = oldTotal; AddWidth(entryWidth + ReflexiveSubEntryExtraWidth); }
public void VisitReflexive(ReflexiveData field) { // Create flatten information for the reflexive and attach event handlers to it var flattened = new FlattenedReflexive(_flatParent, field, _topLevelFields, _tracker, _changes); AttachTo(field, flattened); FlattenedReflexive oldParent = _flatParent; _flatParent = flattened; Flatten(field.Template); field.UpdateWidth(); _flatParent = oldParent; for (int i = 0; i < field.Template.Count; i++) { WrappedReflexiveEntry wrapper = flattened.WrapField(field.Template[i], field.Width, i == field.Template.Count - 1); _index++; _fields.Insert(_index, wrapper); } }
public void VisitReflexiveEntry(WrappedReflexiveEntry field) { }
// Passed as the callback to ReflexiveFlattener.EnumWrappers in VisitReflexive private void ReflexiveFlattener_HandleWrapper(WrappedReflexiveEntry wrapper) { _topLevelField = _flattener.GetTopLevelWrapper(_currentReflexive, wrapper); _highlighter(wrapper, _highlightLevel > 0); wrapper.WrappedField.Accept(this); }
public void VisitReflexiveEntry(WrappedReflexiveEntry field) { // Ignore - wrapper handling is done inside VisitReflexive/HandleWrapper to ensure that // closed reflexives aren't skipped over }
public void VisitReflexiveEntry(WrappedReflexiveEntry field) { }
public WrappedReflexiveEntry GetTopLevelWrapper(WrappedReflexiveEntry wrapper) { WrappedReflexiveEntry result = wrapper; FlattenedReflexive reflexive = _parent; while (reflexive != null) { int index = reflexive._template.Template.IndexOf(result); result = reflexive._wrappers[index]; reflexive = reflexive._parent; } return result; }
public void VisitReflexiveEntry(WrappedReflexiveEntry field) { // Save our state and recurse into it double oldTotal = _totalWidth; _totalWidth = 0; Add(field.WrappedField); double entryWidth = _totalWidth; _totalWidth = oldTotal; AddWidth(entryWidth + ReflexiveSubEntryExtraWidth); }
// Passed as the callback to ReflexiveFlattener.EnumWrappers in VisitReflexive private void ReflexiveFlattener_HandleWrapper(WrappedReflexiveEntry wrapper) { _topLevelField = _flattener.GetTopLevelWrapper(_currentReflexive, wrapper); _highlighter(wrapper, _highlightLevel > 0); wrapper.WrappedField.Accept(this); }
public void VisitReflexiveEntry(WrappedReflexiveEntry field) { // Ignore - wrapper handling is done inside VisitReflexive/HandleWrapper to ensure that // closed reflexives aren't skipped over }