public bool removeDelegate <T>(System.Object aDelegate, utList <T> list) where T : tDelegateEntry { utNode <T> entry; for ((entry) = (list.head); (entry != null); (entry) = entry.next) { if (entry.obj.aDelegate == aDelegate) { list.DL_DELETE(entry); return(true); } } return(false); }
public void removeAllDelegatesFromList(utList <tListEntry> list) { NSUtils.Assert(!_locked, "BUG. Open a ticket. Can't call this function when processing events."); lock (this) { utNode <tListEntry> entry, tmp; entry = list.head; while (entry != null) { tmp = entry.next; list.DL_DELETE(entry); entry = tmp; tmp = null; } } }
public void dispatchEvent(CCEventObject e) { lock (this) { NSEvent evt = e.evt; Action <NSEvent> selector = e.selector; // Dispatch events if (_dispatchEvents) { _locked = true; selector(evt); _locked = false; } // FIRST: Remove possible delegates utNode <tListDeletedEntry> dEntry, tTmp; dEntry = _delegatesToBeRemoved.head; while (dEntry != null) { tTmp = dEntry.next; removeDelegate(dEntry.obj.aDelegate, dEntry.obj.listToBeDeleted); _delegatesToBeRemoved.DL_DELETE(dEntry); dEntry = tTmp; } // LATER: Add possible delegates utNode <tListAddedEntry> entry, tmp; entry = _delegatesToBeAdded.head; while (entry != null) { tmp = entry.next; addDelegate(entry.obj.aDelegate, entry.obj.priority, entry.obj.listToBeAdded); _delegatesToBeAdded.DL_DELETE(entry); entry = tmp; } } }