1/*
2    This file is part of HelpViewer (http://www.roard.com/helpviewer)
3    Copyright (C) 2003 Nicolas Roard (nicolas@roard.com)
4
5    This program is free software; you can redistribute it and/or modify
6    it under the terms of the GNU General Public License as published by
7    the Free Software Foundation; either version 2 of the License, or
8    (at your option) any later version.
9
10    This program is distributed in the hope that it will be useful,
11    but WITHOUT ANY WARRANTY; without even the implied warranty of
12    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13    GNU General Public License for more details.
14
15    You should have received a copy of the GNU General Public License
16    along with this program; if not, write to the Free Software
17    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
18*/
19
20#include "Legend.h"
21
22@implementation Legend
23
24+ (id) legendWithString: (NSMutableAttributedString*) str andPoint: (NSPoint) p
25{
26    Legend* ret = [[Legend alloc] initWithString: str andPoint: p];
27    return AUTORELEASE (ret);
28}
29
30- (id) initWithString: (NSMutableAttributedString*) str andPoint: (NSPoint) p
31{
32    [super init];
33
34    ASSIGN (legend, str);
35    point = p;
36    rightPos = NO;
37
38    return self;
39}
40
41- (void) dealloc
42{
43    RELEASE (legend);
44}
45
46- (NSComparisonResult) compareLegends: (id) sender
47{
48    NSComparisonResult ret = NSOrderedAscending;
49
50    if ((int)point.y == (int)[sender point].y)
51    {
52        if (rightPos)
53        {
54            if (point.x < [sender point].x) ret = NSOrderedDescending;
55        }
56        else if (point.x > [sender point].x) ret = NSOrderedDescending;
57    }
58    else if (point.y > [sender point].y) ret = NSOrderedDescending;
59    return ret;
60}
61
62- (NSMutableAttributedString*) legend { return legend; }
63- (NSPoint) point { return point; }
64- (void) setPoint: (NSPoint) p { point = p; }
65- (float) height { return height; }
66- (void) setHeight: (float) h { height = h; }
67- (void) setRightPos { rightPos = YES; }
68- (BOOL) isRightPos { return rightPos; }
69@end
70
71