home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OpenStep 4.2J (Developer)
/
os42jdev.iso
/
NextDeveloper
/
Examples
/
AppKit
/
Draw
/
propertyList.h
< prev
next >
Wrap
C/C++ Source or Header
|
1996-04-05
|
2KB
|
59 lines
/* Convenience methods for Property List-izing */
typedef enum { FromPropertyList = 0, ToPropertyList = 1 } ConversionDirection;
/* The following functions return autoreleased objects. */
extern id propertyListFromArray(NSArray *array);
extern id propertyListFromFloat(float f);
extern id propertyListFromInt(int i);
extern id propertyListFromNSColor(NSColor *color);
extern id propertyListFromNSRect(NSRect rect);
extern id propertyListFromNSSize(NSSize size);
extern id propertyListFromNSPoint(NSPoint point);
/* The following functions return retained objects. */
extern NSMutableArray *arrayFromPropertyList(id plist, NSString *directory, NSZone *zone);
extern NSColor *colorFromPropertyList(id plist, NSZone *zone);
extern NSRect rectFromPropertyList(id plist);
extern NSSize sizeFromPropertyList(id plist);
extern NSPoint pointFromPropertyList(id plist);
#define PL_FLAG(plist, flag, key, direction) \
if (direction == ToPropertyList) { \
if (flag) [plist setObject:@"YES" forKey:key]; \
} else { \
flag = ([plist objectForKey:key] ? YES : NO); \
}
#define PL_INT(plist, value, key, direction) \
if (direction == ToPropertyList) { \
if (value) [plist setObject:propertyListFromInt(value) forKey:key]; \
} else { \
value = [[plist objectForKey:key] intValue]; \
if (![plist objectForKey:key]) value = 0; \
}
#define PL_FLOAT(plist, value, key, direction) \
if (direction == ToPropertyList) { \
if (value) [plist setObject:propertyListFromFloat(value) forKey:key]; \
} else { \
value = [[plist objectForKey:key] floatValue]; \
if (![plist objectForKey:key]) value = 0.0; \
}
#define PL_COLOR(plist, value, key, direction, zone) \
if (direction == ToPropertyList) { \
if (value) [plist setObject:propertyListFromNSColor(value) forKey:key]; \
} else { \
value = colorFromPropertyList([plist objectForKey:key], zone); \
}
#define PL_RECT(plist, value, key, direction) \
if (direction == ToPropertyList) { \
[plist setObject:propertyListFromNSRect(value) forKey:key]; \
} else { \
value = rectFromPropertyList([plist objectForKey:key]); \
}