gwenhywfar  4.3.1
CocoaLabel.m
Go to the documentation of this file.
00001 //
00002 //  CocoaLabel.m
00003 //  
00004 //
00005 //  Created by Samuel Strupp on 10.08.10.
00006 //
00007 
00008 #ifdef HAVE_CONFIG_H
00009 # include <config.h>
00010 #endif
00011 
00012 
00013 #import "CocoaLabel.h"
00014 
00015 #ifndef COCOA_LABEL_MM
00016 #define COCOA_LABEL_MM
00017 
00018 @implementation CocoaLabel
00019 
00020 @synthesize fillX;
00021 @synthesize fillY;
00022 
00023 - (id)initWithFrame:(NSRect)frame {
00024     self = [super initWithFrame:frame];
00025     if (self) {         
00026                 fillX = NO;
00027                 fillY = NO;
00028                 minWidth = 0.0;
00029     }
00030     return self;
00031 }
00032 
00033 -(void) dealloc {
00034         [super dealloc];
00035 }
00036 
00037 -(NSSize) neededTextSize {
00038         NSString *title = [self stringValue];
00039         if (title && [title length]>0) {
00040                 NSDictionary *attributes = [NSDictionary dictionaryWithObjectsAndKeys:
00041                                                                         [NSColor blackColor], NSForegroundColorAttributeName,
00042                                                                         [self font], NSFontAttributeName,
00043                                                                         nil];
00044                 return [title sizeWithAttributes:attributes];
00045         }
00046         return NSZeroSize;
00047 }
00048 
00049 -(void) computeMinWidth {
00050         NSSize size = [self neededTextSize];
00051         minWidth = size.width+4.0;
00052 }
00053 
00054 - (void)setStringValue:(NSString *)aString {
00055         
00056         /*remove HTML version if available*/
00057         if (aString) {
00058                 NSRange htmlRange = [aString rangeOfString:@"<html>"];
00059                 if (htmlRange.location != NSNotFound) {
00060                         NSRange endHtmlRange = [aString rangeOfString:@"</html>"];
00061                         if (endHtmlRange.location != NSNotFound) {
00062                                 NSString *stringToUse = @"";
00063                                 NSRange cutRange = NSUnionRange(htmlRange, endHtmlRange);
00064                                 stringToUse = [aString stringByReplacingCharactersInRange:cutRange withString:@""];
00065                                 [super setStringValue:stringToUse];
00066                                 [self computeMinWidth];
00067                                 return;
00068                         }
00069                 }
00070         }
00071         [super setStringValue:aString];
00072         [self computeMinWidth];
00073 }
00074 
00075 /*- (void)drawRect:(NSRect)dirtyRect {
00076         //debug colors
00077     [[NSColor yellowColor] set];
00078         NSRectFill(dirtyRect);
00079         [super drawRect:dirtyRect];
00080 }*/
00081 
00082 #pragma mark Protocol Methods
00083 
00084 - (NSSize) minSize {
00085         return NSMakeSize(minWidth, 17.0);
00086 }
00087 
00088 @end
00089 
00090 #endif