+ // Process the secondary lines
+ {
+ NSDictionary *secondaryLineAttributes = [NSDictionary dictionaryWithObjectsAndKeys:[NSFont systemFontOfSize:[NSFont smallSystemFontSize]], NSFontAttributeName, defaultColor, NSForegroundColorAttributeName, paragraphStyle, NSParagraphStyleAttributeName, nil];
+
+ NSMutableArray *tMArray = [NSMutableArray arrayWithArray:[self objectValue]];
+ [tMArray removeObjectAtIndex:0]; // Remove the first line string... already handled that above!
+
+ NSEnumerator *enumerator = [tMArray objectEnumerator];
+ id secondaryString;
+
+ while (secondaryString = [enumerator nextObject]) {
+
+ NSMutableAttributedString *secondaryAttrString;
+
+ if ([secondaryString isKindOfClass:[NSAttributedString class]]) {
+ secondaryAttrString = [[[NSMutableAttributedString alloc] initWithAttributedString:secondaryString] autorelease];
+ [secondaryAttrString addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0,[secondaryAttrString length])];
+ if ([defaultColor isEqual:[NSColor whiteColor]]) {
+ [secondaryAttrString addAttribute:NSForegroundColorAttributeName value:defaultColor range:NSMakeRange(0,[secondaryAttrString length])];
+ }
+ } else if ([secondaryString isKindOfClass:[NSString class]]) {
+ secondaryAttrString = [[[NSMutableAttributedString alloc] initWithString:secondaryString attributes:secondaryLineAttributes] autorelease];
+ } else {
+ secondaryAttrString = [[[NSMutableAttributedString alloc] initWithString:[NSString stringWithFormat:@"Object (%@) is not a string", secondaryString] attributes:secondaryLineAttributes] autorelease];
+ }
+
+ [controlView lockFocus];
+
+ [secondaryAttrString drawInRect:secondaryLineRect];
+
+ [controlView unlockFocus];
+
+ secondaryLineRect.origin.y = secondaryLineRect.origin.y+[secondaryAttrString size].height; // modify the rect for the next loop, based on the size and location of the most recently processed line.
+
+ }