internal void AddDrawable(DrawableBase item) { if(item == null) throw new ArgumentNullException(); if(Items.Contains(item)) throw new ArgumentException(); Items.Add(item); DrawEngine2d.SetRenderRequired(); }
internal void AddUser(String key, DrawableBase user) { if(String.IsNullOrWhiteSpace(key)) throw new ArgumentNullException(); if(user == null) throw new ArgumentNullException(); if(!Users.ContainsKey(key)) throw new ArgumentException("Attempt to add a user to an unknown key."); if(Users[key] == null) Users[key] = new List<DrawableBase>(); if(Users[key].Contains(user)) throw new ArgumentException("Attempt to register a duplicate user."); Users[key].Add(user); }
internal void RemoveUser(String key, DrawableBase user) { if(String.IsNullOrWhiteSpace(key)) throw new ArgumentNullException(); if(user == null) throw new ArgumentNullException(); if(!Users.ContainsKey(key)) throw new ArgumentException("Attempt to remove a user from an unknown key."); if(Users[key] == null) throw new ArgumentException("Attempt to remove an unknown user."); if(!Users[key].Contains(user)) throw new ArgumentException("Attempt to remove an unknown user."); Users[key].Remove(user); //Let the cache policy decide what to do. ApplyCachePolicyForRemovalOfUser(key); }