summaryrefslogtreecommitdiff
path: root/tikzit-old/src/osx/CustomNodeCellView.m
blob: 612394bebd0d1cf7cbe9cd4831f8b701b843bedc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
//
//  CustomNodeCellView.m
//  TikZiT
//
//  Created by Johan Paulsson on 12/12/13.
//  Copyright (c) 2013 Aleks Kissinger. All rights reserved.
//

#import "CustomNodeCellView.h"

@implementation CustomNodeCellView

- (id)initWithFrame:(NSRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        // Initialization code here.
    }
    return self;
}

- (void)drawRect:(NSRect)dirtyRect
{
	[super drawRect:dirtyRect];
	
    // Drawing code here.
}

- (id) objectValue{
    return [super objectValue];
}

-(void)drawLayer:(CALayer *)layer inContext:(CGContextRef)context {
    if (nodeLayer!=nil) {
		if (![[[self layer] sublayers] containsObject:nodeLayer]) {
			[[self layer] addSublayer:nodeLayer];
			NSPoint c = NSMakePoint((CGRectGetMinX([[self layer] frame])+CGRectGetWidth([nodeLayer bounds])/2),
									CGRectGetMidY([[self layer] frame]));
            //c = NSMakePoint(-16.5,-16.5);
			[nodeLayer setCenter:c andAnimateWhen:NO];
            [[self textField] setFrame:NSMakeRect(CGRectGetWidth([nodeLayer bounds]), CGRectGetMidY([[self layer] frame]), CGRectGetWidth([[self textField] frame]), CGRectGetHeight([[self textField] frame]))];
		}
		
		if (selected){
            [nodeStyle setStrokeColor:[NSColor whiteColor]];
            [[nodeLayer node] setStyle:nodeStyle];
        }else{
            [nodeStyle setStrokeColor:[NSColor blackColor]];
            [[nodeLayer node] setStyle:nodeStyle];
		}
        
		[nodeLayer updateFrame];
	}
}

- (void) setObjectValue:(id)objectValue{
    if(objectValue == nil)
        return;
    
    nodeStyle = (NodeStyle *)objectValue;
    [[self textField] setStringValue:[nodeStyle shapeName]];
    
	if (nodeLayer == nil) {
		nodeLayer = [[NodeLayer alloc] initWithNode:[Node node]
										transformer:[Transformer defaultTransformer]];
		[nodeLayer setRescale:NO];
	}
    [nodeStyle setName:[nodeStyle shapeName]];
	
	[[nodeLayer node] setStyle:nodeStyle];
	[nodeLayer updateFrame];
    
    NSLog(@"asd");
}

- (void)setBackgroundStyle:(NSBackgroundStyle)backgroundStyle {
    [super setBackgroundStyle:backgroundStyle];
    
    selected = (backgroundStyle == NSBackgroundStyleDark);
    [self setNeedsDisplay:YES];
}

@end