summaryrefslogtreecommitdiff
path: root/tikzit/src/osx/TikzWindowController.m
blob: 2e672d24a65ff2d356806d5b01ea81815ecdf328 (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
//
//  TikzWindowController.m
//  TikZiT
//
//  Created by Aleks Kissinger on 26/01/2011.
//  Copyright 2011 __MyCompanyName__. All rights reserved.
//

#import "TikzWindowController.h"
#import "TikzDocument.h"
#import "GraphicsView.h"
#import "TikzSourceController.h"

@implementation TikzWindowController

@synthesize graphicsView, tikzSourceController;

- (id)initWithDocument:(TikzDocument*)doc {
	[super initWithWindowNibName:@"TikzDocument"];
	document = doc;
	return self;
}

- (void)awakeFromNib {	
	if ([document tikz] != nil) {
		[graphicsView setEnabled:NO];
		[tikzSourceController setTikz:[document tikz]];
		[tikzSourceController parseTikz:self];
	}
	
	[graphicsView setDocumentUndoManager:[document undoManager]];
	[tikzSourceController setDocumentUndoManager:[document undoManager]];
}

- (void)parseTikz:(id)sender {
	[tikzSourceController parseTikz:sender];
}

- (void)revertTikz:(id)sender {
	[tikzSourceController revertTikz:sender];
}

- (void)previewTikz:(id)sender {
	PreviewController *pc = [PreviewController defaultPreviewController];
	if (![[pc window] isVisible]) [pc showWindow:sender];
	[pc buildTikz:[tikzSourceController tikz]];
}

- (void)zoomIn:(id)sender {
    float scale = [[graphicsView transformer] scale] * 1.25f;
	[[graphicsView transformer] setScale:scale];
	[graphicsView refreshLayers];
}

- (void)zoomOut:(id)sender {
    float scale = [[graphicsView transformer] scale] * 0.8f;
	[[graphicsView transformer] setScale:scale];
	[graphicsView refreshLayers];
}

- (void)zoomToActualSize:(id)sender {
    [[graphicsView transformer] setScale:50.0f];
	[graphicsView refreshLayers];
}

@end