bool removeDelegate(System.Object del, ArrayList fromQueue)
{
System.Object handlerToRemove = null;
var enumerator = fromQueue.GetEnumerator();
while (enumerator.MoveNext()) {
System.Object handlerOrDelegate = enumerator.Current;
if( handlerOrDelegate is CCTouchHandler ) {
// it is a handler
if (del == ((CCTouchHandler)handlerOrDelegate).delegate_) {
handlerToRemove = handlerOrDelegate;
break;
}
} else {
// it is a delegate
if (del == handlerOrDelegate) {
handlerToRemove = handlerOrDelegate;
break;
}
}
}
if( handlerToRemove!=null ) {
fromQueue.Remove(handlerToRemove);
return true;
}
return false;
}
#endregion