internal CursorState(Cursor cursor) { if (cursor == null) throw new ArgumentNullException("cursor"); Cursor = cursor; }
public void DeclareCursor(CursorInfo cursorInfo) { if (cursorInfo == null) throw new ArgumentNullException("cursorInfo"); lock (this) { var cursorName = cursorInfo.CursorName; if (cursors.Any(x => x.CursorInfo.CursorName.Equals(cursorName, StringComparison.OrdinalIgnoreCase))) throw new ArgumentException(String.Format("Cursor '{0}' was already declared.", cursorName)); var cursor = new Cursor(cursorInfo); cursors.Add(cursor); } }
internal void DisposeCursor(Cursor cursor) { var name = cursor.CursorInfo.CursorName; for (int i = cursors.Count - 1; i >= 0; i--) { var cursorName = cursors[i].CursorInfo.CursorName; if (cursorName.Equals(name, StringComparison.OrdinalIgnoreCase)) cursors.RemoveAt(i); } }