protected override void DrawChild(SerializedProperty parent, SerializedProperty child, Slices slices) { var childSlices = new SlicesImpl(); childSlices.AddBefore(new DrawableImpl(rect => DrawElementContextMenu(rect, parent, child))); base.DrawChild(parent, child, childSlices); slices.Add(childSlices); }
private void DrawChildWithDecorators(SerializedProperty parent, SerializedProperty child, Slices slices, bool isLast) { space.Draw(child, slices); var childSlices = new SlicesImpl(); DrawChild(parent, child, childSlices); if (NeedDrawHeader(parent, child)) { header.Draw(child, childSlices); } slices.Add(childSlices); }
private void DrawChildren(SerializedProperty property, Slices slices) { var childSlices = new SlicesImpl(); GetChildren(property) .ForEachExceptLast((child) => { DrawChildWithDecorators(property, child, childSlices, false); if (childSlices.CountPayload > 0 && NeedDrawSeparator(child)) { separator.Draw(child, childSlices); } }, child => DrawChildWithDecorators(property, child, childSlices, true) ); if (childSlices.CountPayload > 0) { slices.Add(childSlices); } }
public Slices this[SerializedProperty property] { get { if (!SettingsMenu.Value.CacheOptimization) { var slices = new SlicesImpl(); calculate(property, slices); return(slices); } lastId = GetId(property); if (cache.ContainsKey(lastId)) { return(cache[lastId]); } else { var slices = new SlicesImpl(); calculate(property, slices); cache.Add(lastId, slices); IsDirty = true; return(slices); } } }