private void RemoveModelInternal(ModelChangeInfo deletedModel) { sortedModels.Remove(deletedModel.model); models.Remove(deletedModel.model.Index); deletedModel.PerformCallback(); deletedModel.model.Destroy(); }
private void AddModelInternal(ModelChangeInfo createdModel) { if (nextModelIndex == ModelReference.InvalidModelIndex) { ++nextModelIndex; } createdModel.model.Index.UpdateIndex(nextModelIndex); models.Add(nextModelIndex, createdModel.model); sortedModels.Add(createdModel.model, null); ++nextModelIndex; createdModel.PerformCallback(); }
public void RemoveModel(Model model, onModelChanged callback, object context) { ModelChangeInfo changeInfo = new ModelChangeInfo(model, callback, context); if (IsUpdating) { UpdateOperationChange(changeInfo, ref updateChanges.deletedModelsFromUpdate); } else { RemoveModelInternal(changeInfo); } }
public ModelReference AddModel(Model model, onModelChanged callback, object context) { ModelChangeInfo changeInfo = new ModelChangeInfo(model, callback, context); if (IsUpdating) { UpdateOperationChange(changeInfo, ref updateChanges.createdModelsFromUpdate); } else { AddModelInternal(changeInfo); } return(model.Index); }
public void ReorderModel(Model model, int newUpdatingOrder, onModelChanged callback, object context) { model.UpdatingOrder = newUpdatingOrder; ModelChangeInfo changeInfo = new ModelChangeInfo(model, callback, context); if (IsUpdating) { UpdateOperationChange(changeInfo, ref updateChanges.reorderedModelsFromUpdate); } else { ReorderModelInternal(changeInfo); } }
// Internal update change operation private void UpdateOperationChange(ModelChangeInfo modelInfo, ref List <ModelChangeInfo> list) { // Do not do updating operations outside of update cycles if (!updateChanges.IsUpdating) { return; } if (list == null) { list = new List <ModelChangeInfo>(); } list.Add(modelInfo); }
private void ReorderModelInternal(ModelChangeInfo sortedModel) { sortedModels.Remove(sortedModel.model); sortedModels.Add(sortedModel.model, null); sortedModel.PerformCallback(); }