mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2025-02-17 01:11:45 +00:00
[qwaq] Extend Array makeObjectsPerform methods
Added conditional message sending and reversed traversal of the array.
This commit is contained in:
parent
ad4cde15b5
commit
6bf2fd546d
2 changed files with 86 additions and 1 deletions
|
@ -1,9 +1,31 @@
|
|||
#ifndef __qwaq_group_h
|
||||
#define __qwaq_group_h
|
||||
|
||||
#include <Array.h>
|
||||
#include "qwaq-view.h"
|
||||
|
||||
@class Array;
|
||||
typedef BOOL condition_func (id object, void *data);
|
||||
typedef BOOL condition_func2 (id object, void *anObject, void *data);
|
||||
|
||||
@interface Array (Group)
|
||||
- (void) makeObjectsPerformSelector: (SEL)selector
|
||||
if: (condition_func)condition
|
||||
with: (void *)data;
|
||||
- (void) makeObjectsPerformSelector: (SEL)selector
|
||||
withObject: (void *)anObject
|
||||
if: (condition_func2)condition
|
||||
with: (void *)data;
|
||||
- (void) makeReversedObjectsPerformSelector: (SEL)selector;
|
||||
- (void) makeReversedObjectsPerformSelector: (SEL)selector
|
||||
withObject: (void *)anObject;
|
||||
- (void) makeReversedObjectsPerformSelector: (SEL)selector
|
||||
if: (condition_func)condition
|
||||
with: (void *)data;
|
||||
- (void) makeReversedObjectsPerformSelector: (SEL)selector
|
||||
withObject: (void *)anObject
|
||||
if: (condition_func2)condition
|
||||
with: (void *)data;
|
||||
@end
|
||||
|
||||
@interface Group : View
|
||||
{
|
||||
|
|
|
@ -2,6 +2,69 @@
|
|||
#include "event.h"
|
||||
#include "qwaq-group.h"
|
||||
|
||||
@implementation Array (Group)
|
||||
- (void) makeObjectsPerformSelector: (SEL)selector
|
||||
if: (condition_func)condition
|
||||
with: (void *)data
|
||||
{
|
||||
for (int i = 0; i < [self count]; i++) {
|
||||
if (condition (_objs[i], data)) {
|
||||
[_objs[i] performSelector: selector];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
- (void) makeObjectsPerformSelector: (SEL)selector
|
||||
withObject: (void *)anObject
|
||||
if: (condition_func2)condition
|
||||
with: (void *)data
|
||||
{
|
||||
for (int i = 0; i < [self count]; i++) {
|
||||
if (condition (_objs[i], anObject, data)) {
|
||||
[_objs[i] performSelector: selector withObject: anObject];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
- (void) makeReversedObjectsPerformSelector: (SEL)selector
|
||||
{
|
||||
for (int i = [self count]; i-->0; ) {
|
||||
[_objs[i] performSelector: selector];
|
||||
}
|
||||
}
|
||||
|
||||
- (void) makeReversedObjectsPerformSelector: (SEL)selector
|
||||
withObject: (void *)anObject
|
||||
{
|
||||
for (int i = [self count]; i-->0; ) {
|
||||
[_objs[i] performSelector: selector withObject: anObject];
|
||||
}
|
||||
}
|
||||
|
||||
- (void) makeReversedObjectsPerformSelector: (SEL)selector
|
||||
if: (condition_func)condition
|
||||
with: (void *)data
|
||||
{
|
||||
for (int i = [self count]; i-->0; ) {
|
||||
if (condition (_objs[i], data)) {
|
||||
[_objs[i] performSelector: selector];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
- (void) makeReversedObjectsPerformSelector: (SEL)selector
|
||||
withObject: (void *)anObject
|
||||
if: (condition_func2)condition
|
||||
with: (void *)data
|
||||
{
|
||||
for (int i = [self count]; i-->0; ) {
|
||||
if (condition (_objs[i], anObject, data)) {
|
||||
[_objs[i] performSelector: selector withObject: anObject];
|
||||
}
|
||||
}
|
||||
}
|
||||
@end
|
||||
|
||||
@implementation Group
|
||||
-init
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue