#include "Size.h" @implementation Size - (id) initWithComponents: (integer)w : (integer)h { self = [super init]; width = w; height = h; return self; } - (id) initWithSize: (Size)aSize { self = [super init]; if (!self || !aSize) return NIL; width = [aSize width]; height = [aSize height]; return self; } - (id) copy { local id myCopy = [super copy]; if (!myCopy) myCopy = [[self class] alloc]; return [myCopy initWithComponents: width : height]; } - (integer) width { return width; } - (integer) height { return height; } - (void) setSize: (Size)aSize { width = [aSize width]; height = [aSize height]; } - (void) setWidth: (integer) w { width = w; } - (void) setHeight: (integer) h { height = h; } - (void) addSize: (Size)aSize { width += [aSize width]; height += [aSize height]; } - (void) subtractSize: (Size)aSize { width += [aSize width]; height += [aSize height]; } @end