From 44fc6c6fc022b7262175a71a981ddc3969132ed5 Mon Sep 17 00:00:00 2001 From: Johan Paulsson Date: Tue, 26 Feb 2013 17:07:05 +0000 Subject: osx gui parsing errors --- tikzit/English.lproj/TikzDocument.xib | 392 ++++++++++++++++++++++---------- tikzit/TikZiT.xcodeproj/project.pbxproj | 6 + tikzit/src/osx/ParseErrorView.h | 13 ++ tikzit/src/osx/ParseErrorView.m | 40 ++++ tikzit/src/osx/TikzSourceController.h | 10 +- tikzit/src/osx/TikzSourceController.m | 15 ++ 6 files changed, 360 insertions(+), 116 deletions(-) create mode 100644 tikzit/src/osx/ParseErrorView.h create mode 100644 tikzit/src/osx/ParseErrorView.m diff --git a/tikzit/English.lproj/TikzDocument.xib b/tikzit/English.lproj/TikzDocument.xib index ff544b8..446cb7e 100644 --- a/tikzit/English.lproj/TikzDocument.xib +++ b/tikzit/English.lproj/TikzDocument.xib @@ -1,32 +1,37 @@ - 1050 - 11B26 - 1617 - 1138 - 566.00 + 1070 + 12C60 + 2843 + 1187.34 + 625.00 com.apple.InterfaceBuilder.CocoaPlugin - 1617 + 2843 - NSView - NSSplitView + NSButton + NSButtonCell + NSCustomObject + NSCustomView NSScrollView - NSWindowTemplate + NSScroller + NSSplitView NSTextField NSTextFieldCell - NSCustomView NSTextView NSUserDefaultsController - NSScroller - NSCustomObject + NSView + NSWindowTemplate com.apple.InterfaceBuilder.CocoaPlugin - + + PluginDependencyRecalculationVersion + + TikzWindowController @@ -56,15 +61,105 @@ 256 + + + 266 + + + + 265 + + {{422, 18}, {17, 19}} + + + + YES + _NS:1574 + YES + + -2080374784 + 134217728 + + + LucidaGrande + 13 + 1044 + + _NS:1574 + + 105119744 + 160 + + NSImage + NSStopProgressFreestandingTemplate + + + + 200 + 25 + + NO + + + + 270 + {{5, 10}, {438, 27}} + + + + _NS:1535 + YES + + 68157504 + 272630784 + + + LucidaGrande + 11 + 16 + + parser information + _NS:1535 + + + 6 + System + controlBackgroundColor + + 3 + MC42NjY2NjY2NjY3AA + + + + 6 + System + controlTextColor + + 3 + MAA + + + + NO + + + {{0, 330}, {446, 42}} + + + + YES + _NS:9 + ParseErrorView + 274 - {447, 373} + + {447, 372} - + YES - 2 GraphicsView @@ -108,10 +203,10 @@ WebURLsWithTitlesPboardType public.url - {{0, -14}, {430, 14}} + {{0, -14}, {445, 14}} - + @@ -119,51 +214,14 @@ XGJlZ2lue3Rpa3pwaWN0dXJlfQoKXGVuZHt0aWt6cGljdHVyZX0 - + LucidaGrande 11 - 16 + 3100 4 - - - 28 - - - 56 - - - 84 - - - 112 - - - 140 - - - 168 - - - 196 - - - 224 - - - 252 - - - 280 - - - 308 - - - 336 - - + @@ -171,15 +229,15 @@ - 134 + 166 - 430 + 445 1 - 12099 + 67120963 0 @@ -191,19 +249,13 @@ 6 System selectedTextBackgroundColor - - 3 - MC42NjY2NjY2NjY3AA - + 6 System selectedTextColor - - 3 - MAA - + @@ -224,11 +276,11 @@ 6 {877, 10000000} - {223, 0} + {445, 0} - {{1, 1}, {430, 0}} + {{1, 1}, {445, 0}} @@ -263,14 +315,15 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA 256 - {{431, 1}, {15, 0}} + {{430, 1}, {16, 0}} + YES + NO _doScroller: 1 - 0.85256409645080566 @@ -279,6 +332,7 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA + NO 1 _doScroller: @@ -289,11 +343,14 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA {447, 0} - - 133138 + + 133202 + 0.25 + 4 + 1 {{0, 382}, {447, 0}} @@ -314,27 +371,23 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA {{305, -184}, {128, 14}} - YES - 68288064 + 68157504 71304192 + YES 6 System controlColor - - 6 - System - controlTextColor - - + + NO {447, 382} @@ -342,7 +395,7 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA - {{0, 0}, {1440, 878}} + {{0, 0}, {1600, 1178}} {94, 108} {10000000000000, 10000000000000} YES @@ -359,14 +412,6 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA - - - delegate - - - - 17 - window @@ -383,6 +428,22 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA 100031 + + + tikzSourceController + + + + 100044 + + + + delegate + + + + 17 + application @@ -393,11 +454,11 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA - graphicsView - - + tikzSourceController + + - 100040 + 100049 @@ -429,19 +490,19 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA - sourceView + graphicsView - + - 100043 + 100040 - tikzSourceController - - + sourceView + + - 100044 + 100043 @@ -453,11 +514,35 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA - tikzSourceController - - + errorNotification + + - 100049 + 100053 + + + + errorMessage + + + + 100054 + + + + closeParseError: + + + + 100060 + + + + closeErrorButton + + + + 100061 @@ -518,6 +603,7 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA + @@ -529,11 +615,6 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA - - 100024 - - - 100025 @@ -582,6 +663,47 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA + + 100050 + + + + + + + + + 100051 + + + + + + + + 100052 + + + + + 100024 + + + + + + 100058 + + + + + + + + 100059 + + + @@ -600,6 +722,15 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -610,7 +741,7 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA - 100049 + 100063 @@ -636,15 +767,44 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA ./Classes/GraphicsView.h + + ParseErrorView + NSView + + IBProjectSource + ./Classes/ParseErrorView.h + + TikzSourceController NSObject + + closeParseError: + id + + + closeParseError: + + closeParseError: + id + + + NSTextField + ParseErrorView GraphicsView NSTextView NSTextField + + errorMessage + NSTextField + + + errorNotification + ParseErrorView + graphicsView GraphicsView @@ -691,7 +851,7 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA IBCocoaFramework com.apple.InterfaceBuilder.CocoaPlugin.macosx - + com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 @@ -699,5 +859,9 @@ AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA YES 3 + + NSStopProgressFreestandingTemplate + {83, 83} + diff --git a/tikzit/TikZiT.xcodeproj/project.pbxproj b/tikzit/TikZiT.xcodeproj/project.pbxproj index 9f165a0..3780cc6 100644 --- a/tikzit/TikZiT.xcodeproj/project.pbxproj +++ b/tikzit/TikZiT.xcodeproj/project.pbxproj @@ -129,6 +129,7 @@ 7F6E2C8916B0091300BFE20D /* maths.m in Sources */ = {isa = PBXBuildFile; fileRef = 7F6E2C8716B0091300BFE20D /* maths.m */; }; 7F6E2C8A16B0096000BFE20D /* SupportDir.m in Sources */ = {isa = PBXBuildFile; fileRef = 55652DF813E1F2030023F4C6 /* SupportDir.m */; }; 7F6E2C8C16B00ABA00BFE20D /* SFBInspectors.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = 55CA98D412EF8FCE008F0368 /* SFBInspectors.framework */; }; + 7F781C1A16B5DE1400239826 /* ParseErrorView.m in Sources */ = {isa = PBXBuildFile; fileRef = 7F781C1916B5DE1400239826 /* ParseErrorView.m */; }; 7FB9BFEE16B57C2E00773146 /* TikzFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = 7FB9BFED16B57C2E00773146 /* TikzFormatter.m */; }; 7FEED45716B1A7C500B056CB /* StyleManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 7FEED45616B1A7C500B056CB /* StyleManager.m */; }; 8D15AC2C0486D014006FF6A4 /* Credits.rtf in Resources */ = {isa = PBXBuildFile; fileRef = 2A37F4B9FDCFA73011CA2CEA /* Credits.rtf */; }; @@ -340,6 +341,8 @@ 55F9E04411FF54F000F5659E /* NSString+LatexConstants.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "NSString+LatexConstants.m"; path = "src/common/NSString+LatexConstants.m"; sourceTree = ""; }; 55FF4E64116A401B000C22B4 /* libicucore.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libicucore.dylib; path = usr/lib/libicucore.dylib; sourceTree = SDKROOT; }; 7F6E2C8716B0091300BFE20D /* maths.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = maths.m; path = src/common/test/maths.m; sourceTree = ""; }; + 7F781C1816B5DE1400239826 /* ParseErrorView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ParseErrorView.h; path = src/osx/ParseErrorView.h; sourceTree = ""; }; + 7F781C1916B5DE1400239826 /* ParseErrorView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ParseErrorView.m; path = src/osx/ParseErrorView.m; sourceTree = ""; }; 7FB9BFEC16B57C2E00773146 /* TikzFormatter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TikzFormatter.h; path = src/osx/TikzFormatter.h; sourceTree = ""; }; 7FB9BFED16B57C2E00773146 /* TikzFormatter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TikzFormatter.m; path = src/osx/TikzFormatter.m; sourceTree = ""; }; 7FEED45516B1A7C400B056CB /* StyleManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = StyleManager.h; path = src/common/StyleManager.h; sourceTree = ""; }; @@ -628,6 +631,8 @@ 55391B0713D326E5007DBE71 /* PropertyInspector */, 55D9468D11659FF00044178C /* StylePalette */, 558F18EF117B043B009863B2 /* TikzDocument.h */, + 7F781C1816B5DE1400239826 /* ParseErrorView.h */, + 7F781C1916B5DE1400239826 /* ParseErrorView.m */, 558F18F0117B043B009863B2 /* TikzDocument.m */, 558F18F1117B043B009863B2 /* TikzSourceController.h */, 558F18F2117B043B009863B2 /* TikzSourceController.m */, @@ -895,6 +900,7 @@ 55598E351635372E0023450A /* DiamondShape.m in Sources */, 7FEED45716B1A7C500B056CB /* StyleManager.m in Sources */, 7FB9BFEE16B57C2E00773146 /* TikzFormatter.m in Sources */, + 7F781C1A16B5DE1400239826 /* ParseErrorView.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/tikzit/src/osx/ParseErrorView.h b/tikzit/src/osx/ParseErrorView.h new file mode 100644 index 0000000..bb6141f --- /dev/null +++ b/tikzit/src/osx/ParseErrorView.h @@ -0,0 +1,13 @@ +// +// ParseErrorView.h +// TikZiT +// +// Created by Karl Johan Paulsson on 27/01/2013. +// Copyright (c) 2013 Aleks Kissinger. All rights reserved. +// + +#import + +@interface ParseErrorView : NSView + +@end diff --git a/tikzit/src/osx/ParseErrorView.m b/tikzit/src/osx/ParseErrorView.m new file mode 100644 index 0000000..97b1b94 --- /dev/null +++ b/tikzit/src/osx/ParseErrorView.m @@ -0,0 +1,40 @@ +// +// ParseErrorView.m +// TikZiT +// +// Created by Karl Johan Paulsson on 27/01/2013. +// Copyright (c) 2013 Aleks Kissinger. All rights reserved. +// + +#import "ParseErrorView.h" + +@implementation ParseErrorView + +- (id)initWithFrame:(NSRect)frame +{ + self = [super initWithFrame:frame]; + if (self) { + // Initialization code here. + } + + return self; +} + +- (void)drawRect:(NSRect)dirtyRect +{ + // Drawing code here. +} + +- (void)awakeFromNib{ + self.layer = [CALayer layer]; + self.wantsLayer = YES; + CALayer *newLayer = [CALayer layer]; + self.layer.backgroundColor = [[NSColor controlColor] CGColor]; + //CGColorCreate(CGColorSpaceCreateDeviceRGB(), (CGFloat[]){ 1, .9, .64, 1 }); +// newLayer.backgroundColor = [NSColor redColor].CGColor; + newLayer.frame = NSMakeRect(100,100,100,100);//NSMakeRect(0,0,image.size.width,image.size.height); + newLayer.position = CGPointMake(20,20); + //[self.layer addSublayer:newLayer]; +} + +@end diff --git a/tikzit/src/osx/TikzSourceController.h b/tikzit/src/osx/TikzSourceController.h index 01c2cf3..c829336 100644 --- a/tikzit/src/osx/TikzSourceController.h +++ b/tikzit/src/osx/TikzSourceController.h @@ -25,6 +25,7 @@ #import "GraphicsView.h" #import "TikzGraphAssembler.h" +#import "ParseErrorView.h" @interface TikzSourceController : NSObject { GraphicsView *graphicsView; @@ -34,8 +35,9 @@ NSDictionary *textAttrs; NSColor *successColor; NSColor *failedColor; - - + NSTextField *errorMessage; + ParseErrorView *errorNotification; + NSUndoManager *documentUndoManager; BOOL tikzChanged; @@ -51,10 +53,14 @@ @property NSUndoManager *documentUndoManager; @property (copy) NSAttributedString *source; @property (copy) NSString *tikz; +@property IBOutlet ParseErrorView *errorNotification; +@property IBOutlet NSTextField *errorMessage; - (void)updateTikzFromGraph; - (void)graphChanged:(NSNotification*)n; +- (IBAction)closeParseError:(id)pId; + // called by code, these do not register an undo - (BOOL)tryParseTikz; - (void)doRevertTikz; diff --git a/tikzit/src/osx/TikzSourceController.m b/tikzit/src/osx/TikzSourceController.m index 6d1580c..428c6ba 100644 --- a/tikzit/src/osx/TikzSourceController.m +++ b/tikzit/src/osx/TikzSourceController.m @@ -28,6 +28,7 @@ @synthesize graphicsView, sourceView, source, status; @synthesize documentUndoManager, tikzChanged; +@synthesize errorMessage, errorNotification; - (void)endEditing { NSResponder *res = [[sourceView window] firstResponder]; @@ -125,6 +126,10 @@ if ([graphicsView enabled]) [self updateTikzFromGraph]; } +- (IBAction)closeParseError:(id)pId{ + [errorNotification setHidden:TRUE]; +} + - (void)textDidBeginEditing:(NSNotification *)notification { if ([graphicsView enabled]) { [graphicsView setEnabled:NO]; @@ -169,9 +174,19 @@ [status setStringValue:@"success"]; [status setTextColor:successColor]; + + [errorNotification setHidden:TRUE]; } else { [status setStringValue:@"parse error"]; [status setTextColor:failedColor]; + + + NSLog(@"Parse error: %@",[assembler lastError]); + + NSError *e = [assembler lastError]; + + [errorMessage setStringValue:[[[assembler lastError] userInfo] valueForKey:NSLocalizedDescriptionKey]]; + [errorNotification setHidden:FALSE]; } } } -- cgit v1.2.3