added copy command to copy selected line result to the clipboard. bumped version...
Marc Liyanage [Sun, 5 Apr 2009 10:22:48 +0000 (12:22 +0200)]
.gitignore
English.lproj/InfoPlist.strings
Info.plist
LeanCalc.xcodeproj/liyanage.pbxuser
LeanCalc.xcodeproj/project.pbxproj
Sources/AppDelegate.h
Sources/AppDelegate.m
Sources/MyDocument.m
calc/libcalc.a
calc/libcustcalc.a

index 796b96d..adcdc86 100644 (file)
@@ -1 +1,3 @@
 /build
+*.DS_Store
+*.perspectivev3
index b652089..f963d3b 100644 (file)
Binary files a/English.lproj/InfoPlist.strings and b/English.lproj/InfoPlist.strings differ
index 4c4c1f0..53a6653 100644 (file)
@@ -38,7 +38,7 @@
        <key>CFBundleSignature</key>
        <string>????</string>
        <key>CFBundleVersion</key>
-       <string>1.2</string>
+       <string>1.3</string>
        <key>NSMainNibFile</key>
        <string>MainMenu</string>
        <key>NSPrincipalClass</key>
index 14ed264..309e82e 100644 (file)
 {
        089C1660FE840EACC02AAC07 /* English */ = {
                uiCtxt = {
-                       sepNavIntBoundsRect = "{{0, 0}, {727, 421}}";
-                       sepNavSelRange = "{191, 0}";
+                       sepNavIntBoundsRect = "{{0, 0}, {712, 124}}";
+                       sepNavSelRange = "{108, 0}";
+                       sepNavVisRange = "{0, 255}";
                        sepNavVisRect = "{{0, 0}, {727, 421}}";
                };
        };
+       1B006D440F88B91F00B41C54 /* PBXTextBookmark */ = {
+               isa = PBXTextBookmark;
+               fRef = 089C1660FE840EACC02AAC07 /* English */;
+               name = "InfoPlist.strings: 6";
+               rLen = 0;
+               rLoc = 191;
+               rType = 0;
+               vrLen = 255;
+               vrLoc = 0;
+       };
+       1B006D5E0F88BA2F00B41C54 /* PBXTextBookmark */ = {
+               isa = PBXTextBookmark;
+               fRef = 1B8243CE07BF867300279D6D /* AppDelegate.m */;
+               name = "AppDelegate.m: 43";
+               rLen = 0;
+               rLoc = 1037;
+               rType = 0;
+               vrLen = 1123;
+               vrLoc = 397;
+       };
+       1B006D620F88BA2F00B41C54 /* PBXTextBookmark */ = {
+               isa = PBXTextBookmark;
+               fRef = 1B006D630F88BA2F00B41C54 /* AppController.m */;
+               name = "AppController.m: 13";
+               rLen = 460;
+               rLoc = 383;
+               rType = 0;
+               vrLen = 1073;
+               vrLoc = 0;
+       };
+       1B006D630F88BA2F00B41C54 /* AppController.m */ = {
+               isa = PBXFileReference;
+               lastKnownFileType = sourcecode.c.objc;
+               name = AppController.m;
+               path = /Users/liyanage/git/entropy/Checksum/AppController.m;
+               sourceTree = "<absolute>";
+       };
+       1B006E970F88BA4100B41C54 /* PBXTextBookmark */ = {
+               isa = PBXTextBookmark;
+               fRef = 1B006E980F88BA4100B41C54 /* AppController.m */;
+               name = "AppController.m: 20";
+               rLen = 0;
+               rLoc = 614;
+               rType = 0;
+               vrLen = 1073;
+               vrLoc = 0;
+       };
+       1B006E980F88BA4100B41C54 /* AppController.m */ = {
+               isa = PBXFileReference;
+               lastKnownFileType = sourcecode.c.objc;
+               name = AppController.m;
+               path = /Users/liyanage/git/entropy/Checksum/AppController.m;
+               sourceTree = "<absolute>";
+               uiCtxt = {
+                       sepNavIntBoundsRect = "{{0, 0}, {712, 2483}}";
+                       sepNavSelRange = "{614, 0}";
+                       sepNavVisRange = "{0, 1073}";
+               };
+       };
+       1B006FCB0F88BB0600B41C54 /* PBXTextBookmark */ = {
+               isa = PBXTextBookmark;
+               fRef = 1B8243CD07BF867300279D6D /* AppDelegate.h */;
+               name = "AppDelegate.h: 14";
+               rLen = 0;
+               rLoc = 240;
+               rType = 0;
+               vrLen = 344;
+               vrLoc = 0;
+       };
+       1B006FCC0F88BB0600B41C54 /* PBXTextBookmark */ = {
+               isa = PBXTextBookmark;
+               fRef = 1B8243D007BF867300279D6D /* Calculation.m */;
+               name = "Calculation.m: 6";
+               rLen = 0;
+               rLoc = 100;
+               rType = 0;
+               vrLen = 678;
+               vrLoc = 0;
+       };
+       1B006FCD0F88BB0600B41C54 /* PBXTextBookmark */ = {
+               isa = PBXTextBookmark;
+               fRef = 1B8243CE07BF867300279D6D /* AppDelegate.m */;
+               name = "AppDelegate.m: 61";
+               rLen = 0;
+               rLoc = 1470;
+               rType = 0;
+               vrLen = 681;
+               vrLoc = 869;
+       };
+       1B006FCE0F88BB0600B41C54 /* PBXTextBookmark */ = {
+               isa = PBXTextBookmark;
+               fRef = 1B8243D307BF867300279D6D /* MyDocument.h */;
+               name = "MyDocument.h: 22";
+               rLen = 0;
+               rLoc = 374;
+               rType = 0;
+               vrLen = 499;
+               vrLoc = 0;
+       };
+       1B006FCF0F88BB0600B41C54 /* PBXTextBookmark */ = {
+               isa = PBXTextBookmark;
+               fRef = 1B8243D407BF867300279D6D /* MyDocument.m */;
+               name = "MyDocument.m: 32";
+               rLen = 18;
+               rLoc = 418;
+               rType = 0;
+               vrLen = 1376;
+               vrLoc = 1631;
+       };
+       1B006FD00F88BB0600B41C54 /* PBXTextBookmark */ = {
+               isa = PBXTextBookmark;
+               fRef = 1B8243CE07BF867300279D6D /* AppDelegate.m */;
+               name = "AppDelegate.m: 70";
+               rLen = 0;
+               rLoc = 1470;
+               rType = 0;
+               vrLen = 753;
+               vrLoc = 1226;
+       };
+       1B006FD10F88BB0600B41C54 /* PBXTextBookmark */ = {
+               isa = PBXTextBookmark;
+               fRef = 1B8243CD07BF867300279D6D /* AppDelegate.h */;
+               name = "AppDelegate.h: 14";
+               rLen = 0;
+               rLoc = 240;
+               rType = 0;
+               vrLen = 344;
+               vrLoc = 0;
+       };
+       1B006FD20F88BB0600B41C54 /* PBXTextBookmark */ = {
+               isa = PBXTextBookmark;
+               fRef = 1B8243CE07BF867300279D6D /* AppDelegate.m */;
+               name = "AppDelegate.m: 23";
+               rLen = 0;
+               rLoc = 310;
+               rType = 0;
+               vrLen = 1004;
+               vrLoc = 166;
+       };
+       1B006FD30F88BB0600B41C54 /* PBXTextBookmark */ = {
+               isa = PBXTextBookmark;
+               fRef = 1B8243D007BF867300279D6D /* Calculation.m */;
+               name = "Calculation.m: 6";
+               rLen = 0;
+               rLoc = 100;
+               rType = 0;
+               vrLen = 678;
+               vrLoc = 0;
+       };
+       1B006FD40F88BB0600B41C54 /* PBXTextBookmark */ = {
+               isa = PBXTextBookmark;
+               fRef = 1B8243CE07BF867300279D6D /* AppDelegate.m */;
+               name = "AppDelegate.m: 61";
+               rLen = 0;
+               rLoc = 1470;
+               rType = 0;
+               vrLen = 681;
+               vrLoc = 869;
+       };
+       1B006FD50F88BB0600B41C54 /* PBXTextBookmark */ = {
+               isa = PBXTextBookmark;
+               fRef = 1B8243D307BF867300279D6D /* MyDocument.h */;
+               name = "MyDocument.h: 22";
+               rLen = 0;
+               rLoc = 374;
+               rType = 0;
+               vrLen = 499;
+               vrLoc = 0;
+       };
+       1B006FD60F88BB0600B41C54 /* PBXTextBookmark */ = {
+               isa = PBXTextBookmark;
+               fRef = 1B8243D407BF867300279D6D /* MyDocument.m */;
+               name = "MyDocument.m: 32";
+               rLen = 18;
+               rLoc = 418;
+               rType = 0;
+               vrLen = 1376;
+               vrLoc = 1631;
+       };
+       1B006FD70F88BB0600B41C54 /* PBXTextBookmark */ = {
+               isa = PBXTextBookmark;
+               fRef = 1B8243D307BF867300279D6D /* MyDocument.h */;
+               name = "MyDocument.h: 22";
+               rLen = 0;
+               rLoc = 374;
+               rType = 0;
+               vrLen = 499;
+               vrLoc = 0;
+       };
+       1B006FD80F88BB0600B41C54 /* PBXTextBookmark */ = {
+               isa = PBXTextBookmark;
+               fRef = 1B8243D407BF867300279D6D /* MyDocument.m */;
+               name = "MyDocument.m: 101";
+               rLen = 0;
+               rLoc = 2182;
+               rType = 0;
+               vrLen = 1183;
+               vrLoc = 1421;
+       };
+       1B006FD90F88BB0700B41C54 /* PBXTextBookmark */ = {
+               isa = PBXTextBookmark;
+               fRef = 1B8243D407BF867300279D6D /* MyDocument.m */;
+               name = "MyDocument.m: 101";
+               rLen = 0;
+               rLoc = 2182;
+               rType = 0;
+               vrLen = 308;
+               vrLoc = 2017;
+       };
+       1B006FDA0F88BB0800B41C54 /* PBXTextBookmark */ = {
+               isa = PBXTextBookmark;
+               fRef = 1B8243D407BF867300279D6D /* MyDocument.m */;
+               name = "MyDocument.m: 101";
+               rLen = 0;
+               rLoc = 2182;
+               rType = 0;
+               vrLen = 1137;
+               vrLoc = 1467;
+       };
+       1B006FDB0F88BB0800B41C54 /* PBXTextBookmark */ = {
+               isa = PBXTextBookmark;
+               fRef = 1B8243D407BF867300279D6D /* MyDocument.m */;
+               name = "MyDocument.m: 101";
+               rLen = 0;
+               rLoc = 2182;
+               rType = 0;
+               vrLen = 1137;
+               vrLoc = 1467;
+       };
+       1B006FDF0F88BB0800B41C54 /* PBXTextBookmark */ = {
+               isa = PBXTextBookmark;
+               fRef = 1B8243D407BF867300279D6D /* MyDocument.m */;
+               name = "MyDocument.m: 101";
+               rLen = 0;
+               rLoc = 2182;
+               rType = 0;
+               vrLen = 277;
+               vrLoc = 2017;
+       };
+       1B006FE80F88BB2600B41C54 /* PBXTextBookmark */ = {
+               isa = PBXTextBookmark;
+               fRef = 1B8243D407BF867300279D6D /* MyDocument.m */;
+               name = "MyDocument.m: 99";
+               rLen = 0;
+               rLoc = 2129;
+               rType = 0;
+               vrLen = 663;
+               vrLoc = 1883;
+       };
+       1B006FEA0F88BB3300B41C54 /* PBXTextBookmark */ = {
+               isa = PBXTextBookmark;
+               fRef = 1B8243D407BF867300279D6D /* MyDocument.m */;
+               name = "MyDocument.m: 102";
+               rLen = 0;
+               rLoc = 2347;
+               rType = 0;
+               vrLen = 1170;
+               vrLoc = 1467;
+       };
+       1B006FEB0F88BB3300B41C54 /* PBXTextBookmark */ = {
+               isa = PBXTextBookmark;
+               fRef = 1B8243D407BF867300279D6D /* MyDocument.m */;
+               name = "MyDocument.m: 102";
+               rLen = 0;
+               rLoc = 2347;
+               rType = 0;
+               vrLen = 338;
+               vrLoc = 2017;
+       };
+       1B006FEC0F88BB3400B41C54 /* PBXTextBookmark */ = {
+               isa = PBXTextBookmark;
+               fRef = 1B8243D407BF867300279D6D /* MyDocument.m */;
+               name = "MyDocument.m: 102";
+               rLen = 0;
+               rLoc = 2347;
+               rType = 0;
+               vrLen = 1063;
+               vrLoc = 1573;
+       };
+       1B006FED0F88BB3400B41C54 /* PBXTextBookmark */ = {
+               isa = PBXTextBookmark;
+               fRef = 1B8243D407BF867300279D6D /* MyDocument.m */;
+               name = "MyDocument.m: 102";
+               rLen = 0;
+               rLoc = 2347;
+               rType = 0;
+               vrLen = 1011;
+               vrLoc = 1626;
+       };
+       1B006FEE0F88BB3400B41C54 /* PBXTextBookmark */ = {
+               isa = PBXTextBookmark;
+               fRef = 1B8243D407BF867300279D6D /* MyDocument.m */;
+               name = "MyDocument.m: 102";
+               rLen = 0;
+               rLoc = 2347;
+               rType = 0;
+               vrLen = 307;
+               vrLoc = 2018;
+       };
+       1B006FEF0F88BB4800B41C54 /* PBXTextBookmark */ = {
+               isa = PBXTextBookmark;
+               fRef = 1B8243D407BF867300279D6D /* MyDocument.m */;
+               name = "MyDocument.m: 105";
+               rLen = 0;
+               rLoc = 2352;
+               rType = 0;
+               vrLen = 942;
+               vrLoc = 1630;
+       };
+       1B006FF10F88BB9600B41C54 /* PBXTextBookmark */ = {
+               isa = PBXTextBookmark;
+               fRef = 1B8243CF07BF867300279D6D /* Calculation.h */;
+               name = "Calculation.h: 1";
+               rLen = 0;
+               rLoc = 0;
+               rType = 0;
+               vrLen = 418;
+               vrLoc = 0;
+       };
+       1B006FF20F88BB9600B41C54 /* PBXTextBookmark */ = {
+               isa = PBXTextBookmark;
+               fRef = 1B8243D007BF867300279D6D /* Calculation.m */;
+               name = "Calculation.m: 68";
+               rLen = 20;
+               rLoc = 1234;
+               rType = 0;
+               vrLen = 840;
+               vrLoc = 1460;
+       };
+       1B006FF30F88BB9600B41C54 /* PBXTextBookmark */ = {
+               isa = PBXTextBookmark;
+               fRef = 1B8243D407BF867300279D6D /* MyDocument.m */;
+               name = "MyDocument.m: 110";
+               rLen = 0;
+               rLoc = 2594;
+               rType = 0;
+               vrLen = 1149;
+               vrLoc = 1629;
+       };
+       1B006FF40F88BB9600B41C54 /* PBXTextBookmark */ = {
+               isa = PBXTextBookmark;
+               fRef = 1B8243D407BF867300279D6D /* MyDocument.m */;
+               name = "MyDocument.m: 110";
+               rLen = 0;
+               rLoc = 2594;
+               rType = 0;
+               vrLen = 1149;
+               vrLoc = 1629;
+       };
+       1B006FF50F88BB9600B41C54 /* PBXTextBookmark */ = {
+               isa = PBXTextBookmark;
+               fRef = 1B8243CF07BF867300279D6D /* Calculation.h */;
+               name = "Calculation.h: 1";
+               rLen = 0;
+               rLoc = 0;
+               rType = 0;
+               vrLen = 418;
+               vrLoc = 0;
+       };
+       1B006FF60F88BB9600B41C54 /* PBXTextBookmark */ = {
+               isa = PBXTextBookmark;
+               fRef = 1B8243D007BF867300279D6D /* Calculation.m */;
+               name = "Calculation.m: 68";
+               rLen = 20;
+               rLoc = 1234;
+               rType = 0;
+               vrLen = 840;
+               vrLoc = 1460;
+       };
+       1B006FF70F88BB9600B41C54 /* PBXTextBookmark */ = {
+               isa = PBXTextBookmark;
+               fRef = 1B8243D407BF867300279D6D /* MyDocument.m */;
+               name = "MyDocument.m: 102";
+               rLen = 0;
+               rLoc = 2313;
+               rType = 0;
+               vrLen = 1188;
+               vrLoc = 1629;
+       };
+       1B006FF80F88BB9700B41C54 /* PBXTextBookmark */ = {
+               isa = PBXTextBookmark;
+               fRef = 1B8243D407BF867300279D6D /* MyDocument.m */;
+               name = "MyDocument.m: 102";
+               rLen = 0;
+               rLoc = 2313;
+               rType = 0;
+               vrLen = 427;
+               vrLoc = 2018;
+       };
+       1B006FF90F88BB9800B41C54 /* PBXTextBookmark */ = {
+               isa = PBXTextBookmark;
+               fRef = 1B8243D407BF867300279D6D /* MyDocument.m */;
+               name = "MyDocument.m: 102";
+               rLen = 0;
+               rLoc = 2313;
+               rType = 0;
+               vrLen = 1143;
+               vrLoc = 1573;
+       };
+       1B006FFA0F88BB9800B41C54 /* PBXTextBookmark */ = {
+               isa = PBXTextBookmark;
+               fRef = 1B8243D407BF867300279D6D /* MyDocument.m */;
+               name = "MyDocument.m: 102";
+               rLen = 0;
+               rLoc = 2313;
+               rType = 0;
+               vrLen = 1116;
+               vrLoc = 1626;
+       };
+       1B006FFB0F88BB9800B41C54 /* PBXTextBookmark */ = {
+               isa = PBXTextBookmark;
+               fRef = 1B8243D407BF867300279D6D /* MyDocument.m */;
+               name = "MyDocument.m: 102";
+               rLen = 0;
+               rLoc = 2313;
+               rType = 0;
+               vrLen = 339;
+               vrLoc = 2018;
+       };
+       1B006FFC0F88BBB400B41C54 /* PBXTextBookmark */ = {
+               isa = PBXTextBookmark;
+               fRef = 1B8243D407BF867300279D6D /* MyDocument.m */;
+               name = "MyDocument.m: 107";
+               rLen = 0;
+               rLoc = 2426;
+               rType = 0;
+               vrLen = 691;
+               vrLoc = 1994;
+       };
+       1B006FFE0F88BBDC00B41C54 /* PBXTextBookmark */ = {
+               isa = PBXTextBookmark;
+               fRef = 1B8243D007BF867300279D6D /* Calculation.m */;
+               name = "Calculation.m: 68";
+               rLen = 20;
+               rLoc = 1234;
+               rType = 0;
+               vrLen = 667;
+               vrLoc = 906;
+       };
+       1B006FFF0F88BBDC00B41C54 /* PBXTextBookmark */ = {
+               isa = PBXTextBookmark;
+               fRef = 1B8243D407BF867300279D6D /* MyDocument.m */;
+               name = "MyDocument.m: 112";
+               rLen = 0;
+               rLoc = 2614;
+               rType = 0;
+               vrLen = 1226;
+               vrLoc = 1630;
+       };
+       1B0070000F88BBDC00B41C54 /* PBXTextBookmark */ = {
+               isa = PBXTextBookmark;
+               fRef = 1B8243D407BF867300279D6D /* MyDocument.m */;
+               name = "MyDocument.m: 112";
+               rLen = 0;
+               rLoc = 2614;
+               rType = 0;
+               vrLen = 1226;
+               vrLoc = 1630;
+       };
+       1B0070010F88BBDC00B41C54 /* PBXTextBookmark */ = {
+               isa = PBXTextBookmark;
+               fRef = 1B8243D007BF867300279D6D /* Calculation.m */;
+               name = "Calculation.m: 68";
+               rLen = 20;
+               rLoc = 1234;
+               rType = 0;
+               vrLen = 667;
+               vrLoc = 906;
+       };
+       1B0070020F88BBDC00B41C54 /* PBXTextBookmark */ = {
+               isa = PBXTextBookmark;
+               fRef = 1B8243D407BF867300279D6D /* MyDocument.m */;
+               name = "MyDocument.m: 110";
+               rLen = 0;
+               rLoc = 2635;
+               rType = 0;
+               vrLen = 1365;
+               vrLoc = 1630;
+       };
+       1B0070030F88BBDC00B41C54 /* PBXTextBookmark */ = {
+               isa = PBXTextBookmark;
+               fRef = 1B8243D407BF867300279D6D /* MyDocument.m */;
+               name = "MyDocument.m: 110";
+               rLen = 0;
+               rLoc = 2635;
+               rType = 0;
+               vrLen = 427;
+               vrLoc = 2018;
+       };
+       1B0070040F88BBDD00B41C54 /* PBXTextBookmark */ = {
+               isa = PBXTextBookmark;
+               fRef = 1B8243D407BF867300279D6D /* MyDocument.m */;
+               name = "MyDocument.m: 110";
+               rLen = 0;
+               rLoc = 2635;
+               rType = 0;
+               vrLen = 1115;
+               vrLoc = 1883;
+       };
+       1B0070050F88BBDD00B41C54 /* PBXTextBookmark */ = {
+               isa = PBXTextBookmark;
+               fRef = 1B8243D407BF867300279D6D /* MyDocument.m */;
+               name = "MyDocument.m: 110";
+               rLen = 0;
+               rLoc = 2635;
+               rType = 0;
+               vrLen = 1006;
+               vrLoc = 1993;
+       };
+       1B0070060F88BBDD00B41C54 /* PBXTextBookmark */ = {
+               isa = PBXTextBookmark;
+               fRef = 1B8243D407BF867300279D6D /* MyDocument.m */;
+               name = "MyDocument.m: 110";
+               rLen = 0;
+               rLoc = 2635;
+               rType = 0;
+               vrLen = 338;
+               vrLoc = 2018;
+       };
+       1B0070070F88BC1C00B41C54 /* PBXTextBookmark */ = {
+               isa = PBXTextBookmark;
+               fRef = 1B8243D407BF867300279D6D /* MyDocument.m */;
+               name = "MyDocument.m: 110";
+               rLen = 0;
+               rLoc = 2635;
+               rType = 0;
+               vrLen = 717;
+               vrLoc = 2017;
+       };
+       1B0070080F88BC2200B41C54 /* PBXTextBookmark */ = {
+               isa = PBXTextBookmark;
+               fRef = 1B8243D407BF867300279D6D /* MyDocument.m */;
+               name = "MyDocument.m: 110";
+               rLen = 0;
+               rLoc = 2635;
+               rType = 0;
+               vrLen = 1192;
+               vrLoc = 1068;
+       };
+       1B0070090F88BC2200B41C54 /* PBXTextBookmark */ = {
+               isa = PBXTextBookmark;
+               fRef = 1B8243D407BF867300279D6D /* MyDocument.m */;
+               name = "MyDocument.m: 110";
+               rLen = 0;
+               rLoc = 2635;
+               rType = 0;
+               vrLen = 369;
+               vrLoc = 2018;
+       };
+       1B00700A0F88BC3D00B41C54 /* PBXTextBookmark */ = {
+               isa = PBXTextBookmark;
+               fRef = 1B8243D407BF867300279D6D /* MyDocument.m */;
+               name = "MyDocument.m: 75";
+               rLen = 0;
+               rLoc = 1339;
+               rType = 0;
+               vrLen = 1248;
+               vrLoc = 882;
+       };
+       1B00700B0F88BC3D00B41C54 /* PBXTextBookmark */ = {
+               isa = PBXTextBookmark;
+               fRef = 1B8243D407BF867300279D6D /* MyDocument.m */;
+               name = "MyDocument.m: 107";
+               rLen = 0;
+               rLoc = 2635;
+               rType = 0;
+               vrLen = 369;
+               vrLoc = 2014;
+       };
+       1B00700F0F88BD7800B41C54 /* PBXTextBookmark */ = {
+               isa = PBXTextBookmark;
+               fRef = 1B8243D407BF867300279D6D /* MyDocument.m */;
+               name = "MyDocument.m: 71";
+               rLen = 0;
+               rLoc = 1204;
+               rType = 0;
+               vrLen = 1248;
+               vrLoc = 882;
+       };
+       1B0070100F88BD7900B41C54 /* PBXTextBookmark */ = {
+               isa = PBXTextBookmark;
+               fRef = 1B8243D407BF867300279D6D /* MyDocument.m */;
+               name = "MyDocument.m: 71";
+               rLen = 0;
+               rLoc = 1204;
+               rType = 0;
+               vrLen = 327;
+               vrLoc = 1803;
+       };
+       1B0070120F88BD9100B41C54 /* PBXTextBookmark */ = {
+               isa = PBXTextBookmark;
+               fRef = 1B8243D407BF867300279D6D /* MyDocument.m */;
+               name = "MyDocument.m: 71";
+               rLen = 0;
+               rLoc = 1204;
+               rType = 0;
+               vrLen = 1163;
+               vrLoc = 1569;
+       };
+       1B0070130F88BD9100B41C54 /* PBXTextBookmark */ = {
+               isa = PBXTextBookmark;
+               fRef = 8D15AC360486D014006FF6A4 /* Info.plist */;
+               name = "Info.plist: 41";
+               rLen = 0;
+               rLoc = 1131;
+               rType = 0;
+               vrLen = 941;
+               vrLoc = 344;
+       };
+       1B0070140F88BD9100B41C54 /* PBXTextBookmark */ = {
+               isa = PBXTextBookmark;
+               fRef = 089C1660FE840EACC02AAC07 /* English */;
+               name = "InfoPlist.strings: 1";
+               rLen = 0;
+               rLoc = 0;
+               rType = 0;
+               vrLen = 255;
+               vrLoc = 0;
+       };
+       1B0070150F88BD9100B41C54 /* PBXTextBookmark */ = {
+               isa = PBXTextBookmark;
+               fRef = 1B8243D407BF867300279D6D /* MyDocument.m */;
+               name = "MyDocument.m: 71";
+               rLen = 0;
+               rLoc = 1204;
+               rType = 0;
+               vrLen = 1163;
+               vrLoc = 1569;
+       };
+       1B0070160F88BD9100B41C54 /* PBXTextBookmark */ = {
+               isa = PBXTextBookmark;
+               fRef = 8D15AC360486D014006FF6A4 /* Info.plist */;
+               name = "Info.plist: 41";
+               rLen = 0;
+               rLoc = 1131;
+               rType = 0;
+               vrLen = 941;
+               vrLoc = 344;
+       };
+       1B0070170F88BD9100B41C54 /* PBXTextBookmark */ = {
+               isa = PBXTextBookmark;
+               fRef = 089C1660FE840EACC02AAC07 /* English */;
+               name = "InfoPlist.strings: 5";
+               rLen = 0;
+               rLoc = 108;
+               rType = 0;
+               vrLen = 255;
+               vrLoc = 0;
+       };
+       1B0070190F88BD9500B41C54 /* PBXTextBookmark */ = {
+               isa = PBXTextBookmark;
+               fRef = 089C1660FE840EACC02AAC07 /* English */;
+               name = "InfoPlist.strings: 5";
+               rLen = 0;
+               rLoc = 108;
+               rType = 0;
+               vrLen = 255;
+               vrLoc = 0;
+       };
+       1B00701A0F88BD9500B41C54 /* PBXTextBookmark */ = {
+               isa = PBXTextBookmark;
+               fRef = 1B8243D407BF867300279D6D /* MyDocument.m */;
+               name = "MyDocument.m: 71";
+               rLen = 0;
+               rLoc = 1204;
+               rType = 0;
+               vrLen = 327;
+               vrLoc = 1803;
+       };
+       1B00701B0F88BD9500B41C54 /* PBXTextBookmark */ = {
+               isa = PBXTextBookmark;
+               fRef = 089C1660FE840EACC02AAC07 /* English */;
+               name = "InfoPlist.strings: 5";
+               rLen = 0;
+               rLoc = 108;
+               rType = 0;
+               vrLen = 255;
+               vrLoc = 0;
+       };
        1B30E57307AEA98F00363386 /* LeanCalc */ = {
                isa = PBXExecutable;
-               activeArgIndex = 2147483647;
                activeArgIndices = (
                );
                argumentStrings = (
                );
                autoAttachOnCrash = 1;
+               breakpointsEnabled = 0;
                configStateDict = {
                };
                customDataFormattersEnabled = 1;
                isa = PBXCodeSenseManager;
                indexTemplatePath = "";
        };
-       1B55A40B0AF614320071118C /* PBXTextBookmark */ = {
-               isa = PBXTextBookmark;
-               fRef = 1B8243CE07BF867300279D6D /* AppDelegate.m */;
-               name = "}";
-               rLen = 2;
-               rLoc = 1542;
-               rType = 0;
-               vrLen = 516;
-               vrLoc = 1036;
-       };
        1B55A40C0AF614320071118C /* PBXTextBookmark */ = {
                isa = PBXTextBookmark;
                fRef = 1B8243D207BF867300279D6D /* CmdKeyInterceptApplication.m */;
                vrLen = 163;
                vrLoc = 0;
        };
-       1B55A51B0AF644740071118C /* PBXTextBookmark */ = {
-               isa = PBXTextBookmark;
-               fRef = 089C1660FE840EACC02AAC07 /* English */;
-               name = "English: 6";
-               rLen = 0;
-               rLoc = 191;
-               rType = 0;
-               vrLen = 255;
-               vrLoc = 0;
-       };
        1B8243C807BF866200279D6D /* main.m */ = {
                uiCtxt = {
                        sepNavIntBoundsRect = "{{0, 0}, {650, 465}}";
        };
        1B8243CD07BF867300279D6D /* AppDelegate.h */ = {
                uiCtxt = {
-                       sepNavIntBoundsRect = "{{0, 0}, {650, 465}}";
-                       sepNavSelRange = "{204, 0}";
+                       sepNavIntBoundsRect = "{{0, 0}, {712, 472}}";
+                       sepNavSelRange = "{240, 0}";
+                       sepNavVisRange = "{0, 344}";
                        sepNavVisRect = "{{0, 0}, {650, 465}}";
                };
        };
        1B8243CE07BF867300279D6D /* AppDelegate.m */ = {
                uiCtxt = {
-                       sepNavIntBoundsRect = "{{0, 0}, {728, 975}}";
-                       sepNavSelRange = "{1542, 2}";
+                       sepNavIntBoundsRect = "{{0, 0}, {712, 949}}";
+                       sepNavSelRange = "{1470, 0}";
+                       sepNavVisRange = "{869, 681}";
                        sepNavVisRect = "{{0, 845}, {728, 92}}";
                        sepNavWindowFrame = "{{58, 312}, {882, 561}}";
                };
        };
        1B8243CF07BF867300279D6D /* Calculation.h */ = {
                uiCtxt = {
-                       sepNavIntBoundsRect = "{{0, 0}, {727, 406}}";
+                       sepNavIntBoundsRect = "{{0, 0}, {712, 472}}";
                        sepNavSelRange = "{0, 0}";
+                       sepNavVisRange = "{0, 418}";
                        sepNavVisRect = "{{0, 0}, {727, 406}}";
                };
        };
        1B8243D007BF867300279D6D /* Calculation.m */ = {
                uiCtxt = {
-                       sepNavIntBoundsRect = "{{0, 0}, {914, 1638}}";
-                       sepNavSelRange = "{712, 0}";
+                       sepNavIntBoundsRect = "{{0, 0}, {712, 1586}}";
+                       sepNavSelRange = "{1234, 20}";
+                       sepNavVisRange = "{906, 667}";
                        sepNavVisRect = "{{0, 103}, {727, 406}}";
                };
        };
        };
        1B8243D207BF867300279D6D /* CmdKeyInterceptApplication.m */ = {
                uiCtxt = {
-                       sepNavIntBoundsRect = "{{0, 0}, {727, 507}}";
-                       sepNavSelRange = "{281, 0}";
+                       sepNavIntBoundsRect = "{{0, 0}, {712, 507}}";
+                       sepNavSelRange = "{111, 0}";
+                       sepNavVisRange = "{0, 780}";
                        sepNavVisRect = "{{0, 86}, {727, 421}}";
                };
        };
        1B8243D307BF867300279D6D /* MyDocument.h */ = {
                uiCtxt = {
-                       sepNavIntBoundsRect = "{{0, 0}, {727, 421}}";
-                       sepNavSelRange = "{371, 0}";
+                       sepNavIntBoundsRect = "{{0, 0}, {712, 472}}";
+                       sepNavSelRange = "{374, 0}";
+                       sepNavVisRange = "{0, 499}";
                        sepNavVisRect = "{{0, 0}, {727, 421}}";
                };
        };
        1B8243D407BF867300279D6D /* MyDocument.m */ = {
                uiCtxt = {
-                       sepNavIntBoundsRect = "{{0, 0}, {728, 1716}}";
-                       sepNavSelRange = "{0, 0}";
+                       sepNavIntBoundsRect = "{{0, 0}, {712, 1716}}";
+                       sepNavSelRange = "{1204, 0}";
+                       sepNavVisRange = "{1803, 327}";
                        sepNavVisRect = "{{0, 337}, {728, 92}}";
                        sepNavWindowFrame = "{{81, 291}, {882, 561}}";
                };
                        sepNavVisRect = "{{0, 0}, {650, 465}}";
                };
        };
-       1B9A3DE10AF7D59A00E19393 /* PBXTextBookmark */ = {
-               isa = PBXTextBookmark;
-               fRef = 089C1660FE840EACC02AAC07 /* English */;
-               name = "English: 6";
-               rLen = 0;
-               rLoc = 191;
-               rType = 0;
-               vrLen = 255;
-               vrLoc = 0;
-       };
        1BCC419209F8D82800F1AC9F /* PBXTextBookmark */ = {
                isa = PBXTextBookmark;
                fRef = 8D15AC360486D014006FF6A4 /* Info.plist */;
                vrLen = 124;
                vrLoc = 0;
        };
-       1BCC41AF09F8D8E100F1AC9F /* XCBreakpointsBucket */ = {
-               isa = XCBreakpointsBucket;
-               name = LeanCalc;
-               objects = (
-               );
-       };
        1BCC41C409F8D96A00F1AC9F /* PBXTextBookmark */ = {
                isa = PBXTextBookmark;
                fRef = 1B8243CE07BF867300279D6D /* AppDelegate.m */;
                );
                breakpoints = (
                );
-               breakpointsGroup = 1BCC41AF09F8D8E100F1AC9F /* XCBreakpointsBucket */;
                codeSenseManager = 1B30E57F07AEA99900363386 /* Code sense */;
                executables = (
                        1B30E57307AEA98F00363386 /* LeanCalc */,
                );
                perUserDictionary = {
+                       PBXConfiguration.PBXFileTableDataSource3.PBXErrorsWarningsDataSource = {
+                               PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
+                               PBXFileTableDataSourceColumnSortingKey = PBXErrorsWarningsDataSource_LocationID;
+                               PBXFileTableDataSourceColumnWidthsKey = (
+                                       20,
+                                       300,
+                                       424,
+                               );
+                               PBXFileTableDataSourceColumnsKey = (
+                                       PBXErrorsWarningsDataSource_TypeID,
+                                       PBXErrorsWarningsDataSource_MessageID,
+                                       PBXErrorsWarningsDataSource_LocationID,
+                               );
+                       };
                        PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
                                PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
                                PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
                                PBXFileTableDataSourceColumnWidthsKey = (
                                        20,
-                                       499,
+                                       504,
                                        20,
                                        78,
                                        43,
                                PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
                                PBXFileTableDataSourceColumnWidthsKey = (
                                        20,
-                                       360,
-                                       157,
+                                       462,
+                                       60,
                                        20,
                                        80,
                                        43,
                                        PBXFileDataSource_Warnings_ColumnID,
                                );
                        };
-                       PBXPerProjectTemplateStateSaveDate = 184014229;
+                       PBXPerProjectTemplateStateSaveDate = 260618818;
                        PBXPrepackagedSmartGroups_v2 = (
                                {
                                        PBXTransientLocationAtTop = bottom;
                                        };
                                },
                        );
-                       PBXWorkspaceStateSaveDate = 184014229;
+                       PBXWorkspaceStateSaveDate = 260618818;
                };
                perUserProjectItems = {
-                       1B55A40B0AF614320071118C /* PBXTextBookmark */ = 1B55A40B0AF614320071118C /* PBXTextBookmark */;
-                       1B55A40C0AF614320071118C /* PBXTextBookmark */ = 1B55A40C0AF614320071118C /* PBXTextBookmark */;
-                       1B55A4F70AF641D10071118C /* PBXTextBookmark */ = 1B55A4F70AF641D10071118C /* PBXTextBookmark */;
-                       1B55A5090AF642060071118C /* PBXTextBookmark */ = 1B55A5090AF642060071118C /* PBXTextBookmark */;
-                       1B55A50A0AF642060071118C /* PBXBookmark */ = 1B55A50A0AF642060071118C /* PBXBookmark */;
-                       1B55A50B0AF642060071118C /* PBXTextBookmark */ = 1B55A50B0AF642060071118C /* PBXTextBookmark */;
-                       1B55A50C0AF642060071118C /* PBXTextBookmark */ = 1B55A50C0AF642060071118C /* PBXTextBookmark */;
-                       1B55A50E0AF642060071118C /* PBXBookmark */ = 1B55A50E0AF642060071118C /* PBXBookmark */;
-                       1B55A50F0AF642060071118C /* PBXTextBookmark */ = 1B55A50F0AF642060071118C /* PBXTextBookmark */;
-                       1B55A51B0AF644740071118C /* PBXTextBookmark */ = 1B55A51B0AF644740071118C /* PBXTextBookmark */;
-                       1B9A3DE10AF7D59A00E19393 /* PBXTextBookmark */ = 1B9A3DE10AF7D59A00E19393 /* PBXTextBookmark */;
-                       1BCC419209F8D82800F1AC9F /* PBXTextBookmark */ = 1BCC419209F8D82800F1AC9F /* PBXTextBookmark */;
-                       1BCC419309F8D82800F1AC9F /* PBXTextBookmark */ = 1BCC419309F8D82800F1AC9F /* PBXTextBookmark */;
-                       1BCC41C409F8D96A00F1AC9F /* PBXTextBookmark */ = 1BCC41C409F8D96A00F1AC9F /* PBXTextBookmark */;
-                       1BCC41C509F8D96A00F1AC9F /* PBXTextBookmark */ = 1BCC41C509F8D96A00F1AC9F /* PBXTextBookmark */;
-                       1BCC41C609F8D96A00F1AC9F /* PBXTextBookmark */ = 1BCC41C609F8D96A00F1AC9F /* PBXTextBookmark */;
-                       1BCC41D309F8DA0D00F1AC9F /* PBXTextBookmark */ = 1BCC41D309F8DA0D00F1AC9F /* PBXTextBookmark */;
-                       1BCC41D409F8DA0D00F1AC9F /* PBXTextBookmark */ = 1BCC41D409F8DA0D00F1AC9F /* PBXTextBookmark */;
-                       1BCC420E09F8DF9A00F1AC9F /* PBXTextBookmark */ = 1BCC420E09F8DF9A00F1AC9F /* PBXTextBookmark */;
-                       1BCC421A09F8DF9A00F1AC9F /* PBXTextBookmark */ = 1BCC421A09F8DF9A00F1AC9F /* PBXTextBookmark */;
-                       1BCC423D09F8E24A00F1AC9F /* PBXTextBookmark */ = 1BCC423D09F8E24A00F1AC9F /* PBXTextBookmark */;
+                       1B006D440F88B91F00B41C54 = 1B006D440F88B91F00B41C54 /* PBXTextBookmark */;
+                       1B006D5E0F88BA2F00B41C54 = 1B006D5E0F88BA2F00B41C54 /* PBXTextBookmark */;
+                       1B006D620F88BA2F00B41C54 = 1B006D620F88BA2F00B41C54 /* PBXTextBookmark */;
+                       1B006E970F88BA4100B41C54 = 1B006E970F88BA4100B41C54 /* PBXTextBookmark */;
+                       1B006FCB0F88BB0600B41C54 /* PBXTextBookmark */ = 1B006FCB0F88BB0600B41C54 /* PBXTextBookmark */;
+                       1B006FCC0F88BB0600B41C54 /* PBXTextBookmark */ = 1B006FCC0F88BB0600B41C54 /* PBXTextBookmark */;
+                       1B006FCD0F88BB0600B41C54 /* PBXTextBookmark */ = 1B006FCD0F88BB0600B41C54 /* PBXTextBookmark */;
+                       1B006FCE0F88BB0600B41C54 /* PBXTextBookmark */ = 1B006FCE0F88BB0600B41C54 /* PBXTextBookmark */;
+                       1B006FCF0F88BB0600B41C54 /* PBXTextBookmark */ = 1B006FCF0F88BB0600B41C54 /* PBXTextBookmark */;
+                       1B006FD00F88BB0600B41C54 /* PBXTextBookmark */ = 1B006FD00F88BB0600B41C54 /* PBXTextBookmark */;
+                       1B006FD10F88BB0600B41C54 /* PBXTextBookmark */ = 1B006FD10F88BB0600B41C54 /* PBXTextBookmark */;
+                       1B006FD20F88BB0600B41C54 /* PBXTextBookmark */ = 1B006FD20F88BB0600B41C54 /* PBXTextBookmark */;
+                       1B006FD30F88BB0600B41C54 /* PBXTextBookmark */ = 1B006FD30F88BB0600B41C54 /* PBXTextBookmark */;
+                       1B006FD40F88BB0600B41C54 /* PBXTextBookmark */ = 1B006FD40F88BB0600B41C54 /* PBXTextBookmark */;
+                       1B006FD50F88BB0600B41C54 /* PBXTextBookmark */ = 1B006FD50F88BB0600B41C54 /* PBXTextBookmark */;
+                       1B006FD60F88BB0600B41C54 /* PBXTextBookmark */ = 1B006FD60F88BB0600B41C54 /* PBXTextBookmark */;
+                       1B006FD70F88BB0600B41C54 /* PBXTextBookmark */ = 1B006FD70F88BB0600B41C54 /* PBXTextBookmark */;
+                       1B006FD80F88BB0600B41C54 /* PBXTextBookmark */ = 1B006FD80F88BB0600B41C54 /* PBXTextBookmark */;
+                       1B006FD90F88BB0700B41C54 /* PBXTextBookmark */ = 1B006FD90F88BB0700B41C54 /* PBXTextBookmark */;
+                       1B006FDA0F88BB0800B41C54 /* PBXTextBookmark */ = 1B006FDA0F88BB0800B41C54 /* PBXTextBookmark */;
+                       1B006FDB0F88BB0800B41C54 /* PBXTextBookmark */ = 1B006FDB0F88BB0800B41C54 /* PBXTextBookmark */;
+                       1B006FDF0F88BB0800B41C54 /* PBXTextBookmark */ = 1B006FDF0F88BB0800B41C54 /* PBXTextBookmark */;
+                       1B006FE80F88BB2600B41C54 /* PBXTextBookmark */ = 1B006FE80F88BB2600B41C54 /* PBXTextBookmark */;
+                       1B006FEA0F88BB3300B41C54 /* PBXTextBookmark */ = 1B006FEA0F88BB3300B41C54 /* PBXTextBookmark */;
+                       1B006FEB0F88BB3300B41C54 /* PBXTextBookmark */ = 1B006FEB0F88BB3300B41C54 /* PBXTextBookmark */;
+                       1B006FEC0F88BB3400B41C54 /* PBXTextBookmark */ = 1B006FEC0F88BB3400B41C54 /* PBXTextBookmark */;
+                       1B006FED0F88BB3400B41C54 /* PBXTextBookmark */ = 1B006FED0F88BB3400B41C54 /* PBXTextBookmark */;
+                       1B006FEE0F88BB3400B41C54 /* PBXTextBookmark */ = 1B006FEE0F88BB3400B41C54 /* PBXTextBookmark */;
+                       1B006FEF0F88BB4800B41C54 /* PBXTextBookmark */ = 1B006FEF0F88BB4800B41C54 /* PBXTextBookmark */;
+                       1B006FF10F88BB9600B41C54 /* PBXTextBookmark */ = 1B006FF10F88BB9600B41C54 /* PBXTextBookmark */;
+                       1B006FF20F88BB9600B41C54 /* PBXTextBookmark */ = 1B006FF20F88BB9600B41C54 /* PBXTextBookmark */;
+                       1B006FF30F88BB9600B41C54 /* PBXTextBookmark */ = 1B006FF30F88BB9600B41C54 /* PBXTextBookmark */;
+                       1B006FF40F88BB9600B41C54 /* PBXTextBookmark */ = 1B006FF40F88BB9600B41C54 /* PBXTextBookmark */;
+                       1B006FF50F88BB9600B41C54 /* PBXTextBookmark */ = 1B006FF50F88BB9600B41C54 /* PBXTextBookmark */;
+                       1B006FF60F88BB9600B41C54 /* PBXTextBookmark */ = 1B006FF60F88BB9600B41C54 /* PBXTextBookmark */;
+                       1B006FF70F88BB9600B41C54 /* PBXTextBookmark */ = 1B006FF70F88BB9600B41C54 /* PBXTextBookmark */;
+                       1B006FF80F88BB9700B41C54 /* PBXTextBookmark */ = 1B006FF80F88BB9700B41C54 /* PBXTextBookmark */;
+                       1B006FF90F88BB9800B41C54 /* PBXTextBookmark */ = 1B006FF90F88BB9800B41C54 /* PBXTextBookmark */;
+                       1B006FFA0F88BB9800B41C54 /* PBXTextBookmark */ = 1B006FFA0F88BB9800B41C54 /* PBXTextBookmark */;
+                       1B006FFB0F88BB9800B41C54 /* PBXTextBookmark */ = 1B006FFB0F88BB9800B41C54 /* PBXTextBookmark */;
+                       1B006FFC0F88BBB400B41C54 /* PBXTextBookmark */ = 1B006FFC0F88BBB400B41C54 /* PBXTextBookmark */;
+                       1B006FFE0F88BBDC00B41C54 /* PBXTextBookmark */ = 1B006FFE0F88BBDC00B41C54 /* PBXTextBookmark */;
+                       1B006FFF0F88BBDC00B41C54 /* PBXTextBookmark */ = 1B006FFF0F88BBDC00B41C54 /* PBXTextBookmark */;
+                       1B0070000F88BBDC00B41C54 /* PBXTextBookmark */ = 1B0070000F88BBDC00B41C54 /* PBXTextBookmark */;
+                       1B0070010F88BBDC00B41C54 /* PBXTextBookmark */ = 1B0070010F88BBDC00B41C54 /* PBXTextBookmark */;
+                       1B0070020F88BBDC00B41C54 /* PBXTextBookmark */ = 1B0070020F88BBDC00B41C54 /* PBXTextBookmark */;
+                       1B0070030F88BBDC00B41C54 /* PBXTextBookmark */ = 1B0070030F88BBDC00B41C54 /* PBXTextBookmark */;
+                       1B0070040F88BBDD00B41C54 /* PBXTextBookmark */ = 1B0070040F88BBDD00B41C54 /* PBXTextBookmark */;
+                       1B0070050F88BBDD00B41C54 /* PBXTextBookmark */ = 1B0070050F88BBDD00B41C54 /* PBXTextBookmark */;
+                       1B0070060F88BBDD00B41C54 /* PBXTextBookmark */ = 1B0070060F88BBDD00B41C54 /* PBXTextBookmark */;
+                       1B0070070F88BC1C00B41C54 /* PBXTextBookmark */ = 1B0070070F88BC1C00B41C54 /* PBXTextBookmark */;
+                       1B0070080F88BC2200B41C54 /* PBXTextBookmark */ = 1B0070080F88BC2200B41C54 /* PBXTextBookmark */;
+                       1B0070090F88BC2200B41C54 /* PBXTextBookmark */ = 1B0070090F88BC2200B41C54 /* PBXTextBookmark */;
+                       1B00700A0F88BC3D00B41C54 /* PBXTextBookmark */ = 1B00700A0F88BC3D00B41C54 /* PBXTextBookmark */;
+                       1B00700B0F88BC3D00B41C54 /* PBXTextBookmark */ = 1B00700B0F88BC3D00B41C54 /* PBXTextBookmark */;
+                       1B00700F0F88BD7800B41C54 /* PBXTextBookmark */ = 1B00700F0F88BD7800B41C54 /* PBXTextBookmark */;
+                       1B0070100F88BD7900B41C54 /* PBXTextBookmark */ = 1B0070100F88BD7900B41C54 /* PBXTextBookmark */;
+                       1B0070120F88BD9100B41C54 /* PBXTextBookmark */ = 1B0070120F88BD9100B41C54 /* PBXTextBookmark */;
+                       1B0070130F88BD9100B41C54 /* PBXTextBookmark */ = 1B0070130F88BD9100B41C54 /* PBXTextBookmark */;
+                       1B0070140F88BD9100B41C54 /* PBXTextBookmark */ = 1B0070140F88BD9100B41C54 /* PBXTextBookmark */;
+                       1B0070150F88BD9100B41C54 /* PBXTextBookmark */ = 1B0070150F88BD9100B41C54 /* PBXTextBookmark */;
+                       1B0070160F88BD9100B41C54 /* PBXTextBookmark */ = 1B0070160F88BD9100B41C54 /* PBXTextBookmark */;
+                       1B0070170F88BD9100B41C54 /* PBXTextBookmark */ = 1B0070170F88BD9100B41C54 /* PBXTextBookmark */;
+                       1B0070190F88BD9500B41C54 /* PBXTextBookmark */ = 1B0070190F88BD9500B41C54 /* PBXTextBookmark */;
+                       1B00701A0F88BD9500B41C54 /* PBXTextBookmark */ = 1B00701A0F88BD9500B41C54 /* PBXTextBookmark */;
+                       1B00701B0F88BD9500B41C54 /* PBXTextBookmark */ = 1B00701B0F88BD9500B41C54 /* PBXTextBookmark */;
+                       1B55A40C0AF614320071118C = 1B55A40C0AF614320071118C /* PBXTextBookmark */;
+                       1B55A4F70AF641D10071118C = 1B55A4F70AF641D10071118C /* PBXTextBookmark */;
+                       1B55A5090AF642060071118C = 1B55A5090AF642060071118C /* PBXTextBookmark */;
+                       1B55A50A0AF642060071118C = 1B55A50A0AF642060071118C /* PBXBookmark */;
+                       1B55A50B0AF642060071118C = 1B55A50B0AF642060071118C /* PBXTextBookmark */;
+                       1B55A50C0AF642060071118C = 1B55A50C0AF642060071118C /* PBXTextBookmark */;
+                       1B55A50E0AF642060071118C = 1B55A50E0AF642060071118C /* PBXBookmark */;
+                       1B55A50F0AF642060071118C = 1B55A50F0AF642060071118C /* PBXTextBookmark */;
+                       1BCC419209F8D82800F1AC9F = 1BCC419209F8D82800F1AC9F /* PBXTextBookmark */;
+                       1BCC419309F8D82800F1AC9F = 1BCC419309F8D82800F1AC9F /* PBXTextBookmark */;
+                       1BCC41C409F8D96A00F1AC9F = 1BCC41C409F8D96A00F1AC9F /* PBXTextBookmark */;
+                       1BCC41C509F8D96A00F1AC9F = 1BCC41C509F8D96A00F1AC9F /* PBXTextBookmark */;
+                       1BCC41C609F8D96A00F1AC9F = 1BCC41C609F8D96A00F1AC9F /* PBXTextBookmark */;
+                       1BCC41D309F8DA0D00F1AC9F = 1BCC41D309F8DA0D00F1AC9F /* PBXTextBookmark */;
+                       1BCC41D409F8DA0D00F1AC9F = 1BCC41D409F8DA0D00F1AC9F /* PBXTextBookmark */;
+                       1BCC420E09F8DF9A00F1AC9F = 1BCC420E09F8DF9A00F1AC9F /* PBXTextBookmark */;
+                       1BCC421A09F8DF9A00F1AC9F = 1BCC421A09F8DF9A00F1AC9F /* PBXTextBookmark */;
+                       1BCC423D09F8E24A00F1AC9F = 1BCC423D09F8E24A00F1AC9F /* PBXTextBookmark */;
                };
                sourceControlManager = 1B30E57E07AEA99900363386 /* Source Control */;
                userBuildSettings = {
        };
        2A37F4BAFDCFA73011CA2CEA /* English */ = {
                uiCtxt = {
-                       sepNavIntBoundsRect = "{{0, 0}, {650, 480}}";
+                       sepNavIntBoundsRect = "{{0, 0}, {732, 472}}";
                        sepNavSelRange = "{1, 0}";
-                       sepNavVisRect = "{{0, 0}, {650, 480}}";
+                       sepNavVisRect = "{{0, 0}, {732, 472}}";
                };
        };
        8D15AC270486D014006FF6A4 /* LeanCalc */ = {
        };
        8D15AC360486D014006FF6A4 /* Info.plist */ = {
                uiCtxt = {
-                       sepNavIntBoundsRect = "{{0, 0}, {727, 624}}";
+                       sepNavIntBoundsRect = "{{0, 0}, {732, 624}}";
                        sepNavSelRange = "{1131, 0}";
-                       sepNavVisRect = "{{0, 203}, {727, 421}}";
+                       sepNavVisRect = "{{0, 0}, {732, 472}}";
                        sepNavWindowFrame = "{{79, 294}, {750, 558}}";
                };
        };
index bd4e7a8..275c676 100644 (file)
                2A37F4A9FDCFA73011CA2CEA /* Project object */ = {
                        isa = PBXProject;
                        buildConfigurationList = 1BCC418609F8D0C800F1AC9F /* Build configuration list for PBXProject "LeanCalc" */;
+                       compatibilityVersion = "Xcode 2.4";
                        hasScannedForEncodings = 1;
                        mainGroup = 2A37F4AAFDCFA73011CA2CEA /* LeanCalc */;
                        projectDirPath = "";
+                       projectRoot = "";
                        targets = (
                                8D15AC270486D014006FF6A4 /* LeanCalc */,
                        );
index 23b25b4..1e5fdb1 100644 (file)
@@ -10,9 +10,7 @@
 
 
 @interface AppDelegate : NSObject {
-
        NSMutableArray *functionReference;
-       
 }
 
 - (void)initFunctionReference;
index 644ed3e..2810af2 100644 (file)
@@ -43,7 +43,6 @@
 
 
 - (NSArray *)completionsForPartialWord:(NSString *)partialWord {
-
        NSEnumerator *enumerator = [functionReference objectEnumerator];
        NSMutableArray *completions = [NSMutableArray array];
 
@@ -56,7 +55,6 @@
        }
        
        return completions;
-
 }
 
 
index 519ffe0..a273168 100644 (file)
 
 
 - (BOOL)lastItemIsSelected {
-       
        id lastObject = [calculations lastObject];
        id selectedObject = [[arrayController selectedObjects] objectAtIndex:0];
-
        return selectedObject == lastObject;
 }
 
 
 - (void)addItem {
-
        Calculation *newcalc = [[[Calculation alloc] init] autorelease];
        [arrayController addObject:newcalc];
        int count = [calculations count];
        id secondtolast = [calculations objectAtIndex:count - 2];
        [secondtolast setValue:newcalc forKey:@"next"];
-       
 }
 
 
 - (void)insertPrevious:(NSNumber *)sender {
-
        int index = [sender intValue];
        if ([calculations count] <= index) return;
        
 }
 
 
+// enable copy: menu command only when a previous result is selected
+- (BOOL)validateMenuItem:(NSMenuItem *)item {
+       if ([item action] != @selector(copy:)) return YES;
+       id selectedObject = [[arrayController selectedObjects] objectAtIndex:0];
+       return selectedObject && ![self lastItemIsSelected] && ![selectedObject expressionIsEmpty];
+}
+
+
+- (IBAction)copy:(id)sender {
+       NSPasteboard *pboard = [NSPasteboard generalPasteboard];
+       [pboard declareTypes:[NSArray arrayWithObject:NSStringPboardType] owner:nil];
+       id selectedObject = [[arrayController selectedObjects] objectAtIndex:0];
+       [pboard setString:[selectedObject result] forType:NSStringPboardType];
+}
+
+
+
 
 - (NSString *)windowNibName {
     return @"MyDocument";
index a705c04..9e11863 100644 (file)
Binary files a/calc/libcalc.a and b/calc/libcalc.a differ
index 8045ab5..cb812d3 100644 (file)
Binary files a/calc/libcustcalc.a and b/calc/libcustcalc.a differ