You can subscribe to this list here.
| 2007 |
Jan
|
Feb
|
Mar
(23) |
Apr
(254) |
May
(252) |
Jun
(209) |
Jul
(198) |
Aug
(192) |
Sep
(207) |
Oct
(120) |
Nov
(179) |
Dec
(52) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2008 |
Jan
(48) |
Feb
(69) |
Mar
(129) |
Apr
(250) |
May
(113) |
Jun
(177) |
Jul
(228) |
Aug
(155) |
Sep
(218) |
Oct
(185) |
Nov
(109) |
Dec
(88) |
| 2009 |
Jan
(83) |
Feb
(39) |
Mar
(70) |
Apr
(47) |
May
(48) |
Jun
(67) |
Jul
(61) |
Aug
(97) |
Sep
(221) |
Oct
(141) |
Nov
(70) |
Dec
(61) |
| 2010 |
Jan
(45) |
Feb
(76) |
Mar
(178) |
Apr
(106) |
May
(57) |
Jun
(32) |
Jul
(64) |
Aug
(98) |
Sep
(96) |
Oct
(19) |
Nov
(34) |
Dec
(117) |
| 2011 |
Jan
(55) |
Feb
(48) |
Mar
(64) |
Apr
(21) |
May
(39) |
Jun
(53) |
Jul
(99) |
Aug
(56) |
Sep
(39) |
Oct
(26) |
Nov
(19) |
Dec
(69) |
| 2012 |
Jan
(17) |
Feb
(40) |
Mar
(17) |
Apr
|
May
(2) |
Jun
(8) |
Jul
(2) |
Aug
(10) |
Sep
(10) |
Oct
(38) |
Nov
(48) |
Dec
(70) |
| 2013 |
Jan
(43) |
Feb
(47) |
Mar
(39) |
Apr
(37) |
May
(25) |
Jun
(6) |
Jul
(20) |
Aug
(49) |
Sep
(33) |
Oct
(34) |
Nov
(75) |
Dec
(6) |
| 2014 |
Jan
(32) |
Feb
(10) |
Mar
(17) |
Apr
|
May
|
Jun
(26) |
Jul
(5) |
Aug
|
Sep
(4) |
Oct
(23) |
Nov
(80) |
Dec
(48) |
| 2015 |
Jan
(80) |
Feb
(50) |
Mar
(58) |
Apr
(20) |
May
(11) |
Jun
(16) |
Jul
(24) |
Aug
(27) |
Sep
(56) |
Oct
(30) |
Nov
(16) |
Dec
(6) |
| 2016 |
Jan
(31) |
Feb
(14) |
Mar
(23) |
Apr
(17) |
May
(40) |
Jun
(12) |
Jul
(17) |
Aug
(9) |
Sep
(32) |
Oct
(36) |
Nov
(23) |
Dec
(9) |
| 2017 |
Jan
(37) |
Feb
(23) |
Mar
(65) |
Apr
(22) |
May
(6) |
Jun
(3) |
Jul
|
Aug
|
Sep
(3) |
Oct
(22) |
Nov
(63) |
Dec
(71) |
| 2018 |
Jan
(83) |
Feb
(21) |
Mar
(35) |
Apr
(44) |
May
(14) |
Jun
(12) |
Jul
(8) |
Aug
(18) |
Sep
(10) |
Oct
(145) |
Nov
(144) |
Dec
(76) |
| 2019 |
Jan
(18) |
Feb
(28) |
Mar
(5) |
Apr
(208) |
May
(291) |
Jun
(158) |
Jul
(27) |
Aug
(8) |
Sep
(10) |
Oct
(83) |
Nov
(41) |
Dec
(31) |
| 2020 |
Jan
(16) |
Feb
(46) |
Mar
(100) |
Apr
(78) |
May
(69) |
Jun
(71) |
Jul
(28) |
Aug
(131) |
Sep
(176) |
Oct
(89) |
Nov
(147) |
Dec
(19) |
| 2021 |
Jan
(19) |
Feb
(25) |
Mar
(91) |
Apr
(98) |
May
(14) |
Jun
(44) |
Jul
(8) |
Aug
(3) |
Sep
(38) |
Oct
(57) |
Nov
(97) |
Dec
(74) |
| 2022 |
Jan
(89) |
Feb
(47) |
Mar
(15) |
Apr
(50) |
May
(54) |
Jun
(56) |
Jul
(80) |
Aug
(12) |
Sep
(11) |
Oct
(60) |
Nov
(48) |
Dec
(4) |
| 2023 |
Jan
(75) |
Feb
(49) |
Mar
(84) |
Apr
(24) |
May
(13) |
Jun
(74) |
Jul
(32) |
Aug
(66) |
Sep
(50) |
Oct
(38) |
Nov
(105) |
Dec
(181) |
| 2024 |
Jan
(21) |
Feb
(49) |
Mar
(77) |
Apr
(84) |
May
(20) |
Jun
(71) |
Jul
(53) |
Aug
(33) |
Sep
(54) |
Oct
(124) |
Nov
(151) |
Dec
(73) |
| 2025 |
Jan
(61) |
Feb
(17) |
Mar
(136) |
Apr
(72) |
May
(200) |
Jun
(238) |
Jul
(91) |
Aug
(8) |
Sep
|
Oct
(63) |
Nov
(48) |
Dec
|
|
From: <ama...@us...> - 2007-04-10 19:45:46
|
Revision: 1794
http://skim-app.svn.sourceforge.net/skim-app/?rev=1794&view=rev
Author: amaxwell
Date: 2007-04-10 12:45:43 -0700 (Tue, 10 Apr 2007)
Log Message:
-----------
copy filemanager category
Added Paths:
-----------
SkimNotesAgent/NSFileManager_ExtendedAttributes.m
Copied: SkimNotesAgent/NSFileManager_ExtendedAttributes.m (from rev 1793, trunk/NSFileManager_ExtendedAttributes.m)
===================================================================
--- SkimNotesAgent/NSFileManager_ExtendedAttributes.m (rev 0)
+++ SkimNotesAgent/NSFileManager_ExtendedAttributes.m 2007-04-10 19:45:43 UTC (rev 1794)
@@ -0,0 +1,561 @@
+//
+// NSFileManager_ExtendedAttributes.m
+//
+// Created by Adam R. Maxwell on 05/12/05.
+// Copyright 2005, 2006, 2007 Adam R. Maxwell. All rights reserved.
+//
+/*
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+ - Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ - Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation and/or
+ other materials provided with the distribution.
+ - Neither the name of Adam R. Maxwell nor the names of any contributors may be
+ used to endorse or promote products derived from this software without specific
+ prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
+ EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+ TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY
+ WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import "NSFileManager_ExtendedAttributes.h"
+#include <sys/xattr.h>
+#import "bzlib.h"
+
+@interface NSData (Bzip2)
+
+- (NSData *) bzip2;
+- (NSData *) bzip2WithCompressionSetting:(int)OneToNine;
+- (NSData *) bunzip2;
+
+@end
+
+// private function to print error messages
+static NSString *xattrError(int err, const char *path);
+
+@implementation NSFileManager (ExtendedAttributes)
+
+- (NSArray *)extendedAttributeNamesAtPath:(NSString *)path traverseLink:(BOOL)follow error:(NSError **)error;
+{
+ const char *fsPath = [self fileSystemRepresentationWithPath:path];
+ NSString *errMsg;
+ int err;
+
+ int xopts;
+
+ if(follow)
+ xopts = 0;
+ else
+ xopts = XATTR_NOFOLLOW;
+
+ ssize_t bufSize;
+ ssize_t status;
+
+ // call with NULL as attr name to get the size of the returned buffer
+ status = listxattr(fsPath, NULL, 0, xopts);
+
+ if(status == -1){
+ err = errno;
+ errMsg = xattrError(err, fsPath);
+ if(error) *error = [NSError errorWithDomain:NSPOSIXErrorDomain code:err userInfo:[NSDictionary dictionaryWithObjectsAndKeys:path, NSFilePathErrorKey, errMsg, NSLocalizedDescriptionKey, nil]];
+ return nil;
+ }
+
+ NSZone *zone = NSDefaultMallocZone();
+ bufSize = status;
+ char *namebuf = (char *)NSZoneMalloc(zone, sizeof(char) * bufSize);
+ NSAssert(namebuf != NULL, @"unable to allocate memory");
+ status = listxattr(fsPath, namebuf, bufSize, xopts);
+
+ if(status == -1){
+ err = errno;
+ errMsg = xattrError(err, fsPath);
+ if(error) *error = [NSError errorWithDomain:NSPOSIXErrorDomain code:err userInfo:[NSDictionary dictionaryWithObjectsAndKeys:path, NSFilePathErrorKey, errMsg, NSLocalizedDescriptionKey, nil]];
+ NSZoneFree(zone, namebuf);
+ return nil;
+ }
+
+ int idx, start = 0;
+
+ NSString *attribute = nil;
+ NSMutableArray *attrs = [NSMutableArray array];
+
+ // the names are separated by NULL characters
+ for(idx = 0; idx < bufSize; idx++){
+ if(namebuf[idx] == '\0'){
+ attribute = [[NSString alloc] initWithBytes:&namebuf[start] length:(idx - start) encoding:NSUTF8StringEncoding];
+ if(attribute) [attrs addObject:attribute];
+ [attribute release];
+ attribute = nil;
+ start = idx + 1;
+ }
+ }
+
+ NSZoneFree(zone, namebuf);
+ return attrs;
+}
+
+- (NSArray *)allExtendedAttributesAtPath:(NSString *)path traverseLink:(BOOL)follow error:(NSError **)error;
+{
+ NSError *anError = nil;
+ NSArray *attrNames = [self extendedAttributeNamesAtPath:path traverseLink:follow error:&anError];
+ if(attrNames == nil){
+ if(error) *error = anError;
+ return nil;
+ }
+
+ NSEnumerator *e = [attrNames objectEnumerator];
+ NSMutableArray *attributes = [NSMutableArray arrayWithCapacity:[attrNames count]];
+ NSData *data = nil;
+ NSString *attrName = nil;
+
+ while(attrName = [e nextObject]){
+ data = [self extendedAttributeNamed:attrName atPath:path traverseLink:follow error:&anError];
+ if(data != nil){
+ [attributes addObject:data];
+ } else {
+ if(error) *error = anError;
+ return nil;
+ }
+ }
+ return attributes;
+}
+
+#define MAX_XATTR_LENGTH 2048
+#define UNIQUE_VALUE [[NSProcessInfo processInfo] globallyUniqueString]
+#define NAME_PREFIX @"net_sourceforge_skim-app_"
+#define UNIQUE_KEY @"net_sourceforge_skim-app_unique_key"
+#define WRAPPER_KEY @"net_sourceforge_skim-app_has_wrapper"
+#define FRAGMENTS_KEY @"net_sourceforge_skim-app_number_of_fragments"
+
+- (NSData *)extendedAttributeNamed:(NSString *)attr atPath:(NSString *)path traverseLink:(BOOL)follow error:(NSError **)error;
+{
+ const char *fsPath = [self fileSystemRepresentationWithPath:path];
+ const char *attrName = [attr UTF8String];
+ NSString *errMsg;
+ int err;
+
+ int xopts;
+
+ if(follow)
+ xopts = 0;
+ else
+ xopts = XATTR_NOFOLLOW;
+
+ ssize_t bufSize;
+ ssize_t status;
+ status = getxattr(fsPath, attrName, NULL, 0, 0, xopts);
+
+ if(status == -1){
+ int err = errno;
+ errMsg = xattrError(err, fsPath);
+ if(error) *error = [NSError errorWithDomain:NSPOSIXErrorDomain code:err userInfo:[NSDictionary dictionaryWithObjectsAndKeys:path, NSFilePathErrorKey, errMsg, NSLocalizedDescriptionKey, nil]];
+ return nil;
+ }
+
+ bufSize = status;
+ char *namebuf = (char *)NSZoneMalloc(NSDefaultMallocZone(), sizeof(char) * bufSize);
+ NSAssert(namebuf != NULL, @"unable to allocate memory");
+ status = getxattr(fsPath, attrName, namebuf, bufSize, 0, xopts);
+
+ if(status == -1){
+ err = errno;
+ errMsg = xattrError(err, fsPath);
+ if(error) *error = [NSError errorWithDomain:NSPOSIXErrorDomain code:err userInfo:[NSDictionary dictionaryWithObjectsAndKeys:path, NSFilePathErrorKey, errMsg, NSLocalizedDescriptionKey, nil]];
+ NSZoneFree(NSDefaultMallocZone(), namebuf);
+ return nil;
+ }
+
+ // let NSData worry about freeing the buffer
+ NSData *attribute = [[NSData alloc] initWithBytesNoCopy:namebuf length:bufSize];
+
+ NSPropertyListFormat format;
+ NSString *errorString;
+
+ // the plist parser logs annoying messages when failing to parse non-plist data, so sniff the header (this is correct for the binary plist that we use for split data)
+ static NSData *plistHeaderData = nil;
+ if (nil == plistHeaderData) {
+ char *h = "bplist00";
+ plistHeaderData = [[NSData alloc] initWithBytes:h length:strlen(h)];
+ }
+
+ id plist = nil;
+
+ if ([attribute length] >= [plistHeaderData length] && [plistHeaderData isEqual:[attribute subdataWithRange:NSMakeRange(0, [plistHeaderData length])]])
+ plist = [NSPropertyListSerialization propertyListFromData:attribute mutabilityOption:NSPropertyListImmutable format:&format errorDescription:&errorString];
+
+ // even if it's a plist, it may not be a dictionary or have the key we're looking for
+ if (plist && [plist respondsToSelector:@selector(objectForKey:)] && [[plist objectForKey:WRAPPER_KEY] boolValue]) {
+
+ NSString *uniqueValue = [plist objectForKey:UNIQUE_KEY];
+ unsigned int i, numberOfFragments = [[plist objectForKey:FRAGMENTS_KEY] unsignedIntValue];
+ NSString *name;
+
+ NSMutableData *buffer = [NSMutableData data];
+ NSData *subdata;
+ BOOL success = (nil != uniqueValue && numberOfFragments > 0);
+
+ // reassemble the original data object
+ for (i = 0; success && i < numberOfFragments; i++) {
+ name = [NSString stringWithFormat:@"%@-%i", uniqueValue, i];
+ subdata = [self extendedAttributeNamed:name atPath:path traverseLink:follow error:error];
+ if (nil == subdata)
+ success = NO;
+ else
+ [buffer appendData:subdata];
+ }
+
+ [attribute release];
+ attribute = success ? [[buffer bunzip2] copy] : nil;
+ }
+ return [attribute autorelease];
+}
+
+- (id)propertyListFromExtendedAttributeNamed:(NSString *)attr atPath:(NSString *)path traverseLink:(BOOL)traverse error:(NSError **)outError;
+{
+ NSError *error;
+ NSData *data = [self extendedAttributeNamed:attr atPath:path traverseLink:traverse error:&error];
+ id plist = nil;
+ if (nil == data) {
+ if (outError) *outError = [NSError errorWithDomain:@"BDSKErrorDomain" code:0 userInfo:[NSDictionary dictionaryWithObjectsAndKeys:path, NSFilePathErrorKey, error, NSUnderlyingErrorKey, nil]];
+ } else {
+ NSString *errorString;
+ plist = [NSPropertyListSerialization propertyListFromData:data
+ mutabilityOption:NSPropertyListImmutable
+ format:NULL
+ errorDescription:&errorString];
+ if (nil == plist) {
+ if (outError) *outError = [NSError errorWithDomain:@"BDSKErrorDomain" code:0 userInfo:[NSDictionary dictionaryWithObjectsAndKeys:path, NSFilePathErrorKey, errorString, NSLocalizedDescriptionKey, nil]];
+ [errorString release];
+ }
+ }
+ return plist;
+}
+
+- (BOOL)setExtendedAttributeNamed:(NSString *)attr toValue:(NSData *)value atPath:(NSString *)path options:(BDSKXattrFlags)options error:(NSError **)error;
+{
+
+ const char *fsPath = [self fileSystemRepresentationWithPath:path];
+ const void *data = [value bytes];
+ size_t dataSize = [value length];
+ const char *attrName = [attr UTF8String];
+ NSString *errMsg;
+ int err;
+
+ // options passed to xattr functions
+ int xopts = 0;
+ if(options & kBDSKXattrNoFollow)
+ xopts = xopts | XATTR_NOFOLLOW;
+ if(options & kBDSKXattrCreateOnly)
+ xopts = xopts | XATTR_CREATE;
+ if(options & kBDSKXattrReplaceOnly)
+ xopts = xopts | XATTR_REPLACE;
+
+ BOOL success;
+
+ if ((options & kBDSKXattrNoSplitData) == 0 && [value length] > MAX_XATTR_LENGTH) {
+
+ // compress to save space, and so we don't identify this as a plist when reading it (in case it really is plist data)
+ value = [value bzip2];
+
+ // this will be a unique identifier for the set of keys we're about to write (appending a counter to the UUID)
+ NSString *uniqueValue = [NAME_PREFIX stringByAppendingString:UNIQUE_VALUE];
+ unsigned numberOfFragments = ([value length] / MAX_XATTR_LENGTH) + ([value length] % MAX_XATTR_LENGTH ? 1 : 0);
+ NSDictionary *wrapper = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:YES], WRAPPER_KEY, uniqueValue, UNIQUE_KEY, [NSNumber numberWithUnsignedInt:numberOfFragments], FRAGMENTS_KEY, nil];
+ NSData *wrapperData = [NSPropertyListSerialization dataFromPropertyList:wrapper format:NSPropertyListBinaryFormat_v1_0 errorDescription:NULL];
+ NSParameterAssert([wrapperData length] < MAX_XATTR_LENGTH && [wrapperData length] > 0);
+
+ // we don't want to split this dictionary (or compress it)
+ if (setxattr(fsPath, attrName, [wrapperData bytes], [wrapperData length], 0, xopts))
+ success = NO;
+ else
+ success = YES;
+
+ // now split the original data value into multiple segments
+ NSString *name;
+ unsigned j;
+ const char *valuePtr = [value bytes];
+
+ for (j = 0; success && j < numberOfFragments; j++) {
+ name = [[NSString alloc] initWithFormat:@"%@-%i", uniqueValue, j];
+
+ char *subdataPtr = (char *)&valuePtr[j * MAX_XATTR_LENGTH];
+ unsigned subdataLen = j == numberOfFragments - 1 ? ([value length] - j * MAX_XATTR_LENGTH) : MAX_XATTR_LENGTH;
+
+ // could recurse here, but it's more efficient to use the variables we already have
+ if (setxattr(fsPath, [name UTF8String], subdataPtr, subdataLen, 0, xopts)) {
+ NSLog(@"full data length of note named %@ was %d, subdata length was %d (failed on pass %d)", name, [value length], subdataLen, j);
+ }
+ [name release];
+ }
+
+ } else {
+ int status = setxattr(fsPath, attrName, data, dataSize, 0, xopts);
+ if(status == -1){
+ err = errno;
+ errMsg = xattrError(err, fsPath);
+ if(error) *error = [NSError errorWithDomain:NSPOSIXErrorDomain code:err userInfo:[NSDictionary dictionaryWithObjectsAndKeys:path, NSFilePathErrorKey, errMsg, NSLocalizedDescriptionKey, nil]];
+ success = NO;
+ } else {
+ success = YES;
+ }
+ }
+ return success;
+}
+
+- (BOOL)setExtendedAttributeNamed:(NSString *)attr toPropertyListValue:(id)plist atPath:(NSString *)path options:(BDSKXattrFlags)options error:(NSError **)error;
+{
+ NSString *errorString;
+ NSData *data = [NSPropertyListSerialization dataFromPropertyList:plist
+ format:NSPropertyListBinaryFormat_v1_0
+ errorDescription:&errorString];
+ BOOL success;
+ if (nil == data) {
+ if (error) *error = [NSError errorWithDomain:@"BDSKErrorDomain" code:0 userInfo:[NSDictionary dictionaryWithObjectsAndKeys:path, NSFilePathErrorKey, errorString, NSLocalizedDescriptionKey, nil]];
+ [errorString release];
+ success = NO;
+ } else {
+ success = [self setExtendedAttributeNamed:attr toValue:data atPath:path options:options error:error];
+ }
+ return success;
+}
+
+- (BOOL)removeExtendedAttribute:(NSString *)attr atPath:(NSString *)path traverseLink:(BOOL)follow error:(NSError **)error;
+{
+ NSParameterAssert(path != nil);
+ const char *fsPath = [self fileSystemRepresentationWithPath:path];
+ const char *attrName = [attr UTF8String];
+ NSString *errMsg;
+ int err;
+
+ int xopts;
+
+ if(follow)
+ xopts = 0;
+ else
+ xopts = XATTR_NOFOLLOW;
+
+ ssize_t bufSize;
+ ssize_t status;
+ status = getxattr(fsPath, attrName, NULL, 0, 0, xopts);
+
+ if(status != -1){
+ bufSize = status;
+ char *namebuf = (char *)NSZoneMalloc(NSDefaultMallocZone(), sizeof(char) * bufSize);
+ NSAssert(namebuf != NULL, @"unable to allocate memory");
+ status = getxattr(fsPath, attrName, namebuf, bufSize, 0, xopts);
+
+ if(status != -1){
+
+ // let NSData worry about freeing the buffer
+ NSData *attribute = [[NSData alloc] initWithBytesNoCopy:namebuf length:bufSize];
+
+ NSPropertyListFormat format;
+ NSString *errorString;
+
+ // the plist parser logs annoying messages when failing to parse non-plist data, so sniff the header (this is correct for the binary plist that we use for split data)
+ static NSData *plistHeaderData = nil;
+ if (nil == plistHeaderData) {
+ char *h = "bplist00";
+ plistHeaderData = [[NSData alloc] initWithBytes:h length:strlen(h)];
+ }
+
+ id plist = nil;
+
+ if ([attribute length] >= [plistHeaderData length] && [plistHeaderData isEqual:[attribute subdataWithRange:NSMakeRange(0, [plistHeaderData length])]])
+ plist = [NSPropertyListSerialization propertyListFromData:attribute mutabilityOption:NSPropertyListImmutable format:&format errorDescription:&errorString];
+
+ // even if it's a plist, it may not be a dictionary or have the key we're looking for
+ if (plist && [plist respondsToSelector:@selector(objectForKey:)] && [[plist objectForKey:WRAPPER_KEY] boolValue]) {
+
+ NSString *uniqueValue = [plist objectForKey:UNIQUE_KEY];
+ unsigned int i, numberOfFragments = [[plist objectForKey:FRAGMENTS_KEY] unsignedIntValue];
+ NSString *name;
+
+ // remove the sub attributes
+ for (i = 0; i < numberOfFragments; i++) {
+ name = [NSString stringWithFormat:@"%@-%i", uniqueValue, i];
+ const char *subAttrName = [name UTF8String];
+ status = removexattr(fsPath, subAttrName, xopts);
+ if (status == -1) {
+ NSLog(@"failed to remove subattribute %@ of attribute named %@", name, attr);
+ }
+ }
+ }
+ }
+ }
+
+ status = removexattr(fsPath, attrName, xopts);
+
+ if(status == -1){
+ err = errno;
+ errMsg = xattrError(err, fsPath);
+ if(error) *error = [NSError errorWithDomain:NSPOSIXErrorDomain code:err userInfo:[NSDictionary dictionaryWithObjectsAndKeys:path, NSFilePathErrorKey, errMsg, NSLocalizedDescriptionKey, nil]];
+ return NO;
+ } else
+ return YES;
+}
+
+- (BOOL)removeAllExtendedAttributesAtPath:(NSString *)path traverseLink:(BOOL)follow error:(NSError **)error;
+{
+ NSArray *allAttributes = [self extendedAttributeNamesAtPath:path traverseLink:follow error:error];
+ if (nil == allAttributes)
+ return NO;
+
+ NSEnumerator *e = [allAttributes objectEnumerator];
+ NSString *attrName;
+ while (attrName = [e nextObject]) {
+
+ // return NO as soon as any single removal fails
+ if ([self removeExtendedAttribute:attrName atPath:path traverseLink:follow error:error] == NO)
+ return NO;
+ }
+ return YES;
+}
+
+// guaranteed to return non-nil
+static NSString *xattrError(const int err, const char *myPath)
+{
+ NSString *errMsg = nil;
+ switch (err)
+ {
+ case ENOTSUP:
+ errMsg = NSLocalizedString(@"File system does not support extended attributes or they are disabled.", @"Error description");
+ break;
+ case ERANGE:
+ errMsg = NSLocalizedString(@"Buffer too small for attribute names.", @"Error description");
+ break;
+ case EPERM:
+ errMsg = NSLocalizedString(@"This file system object does not support extended attributes.", @"Error description");
+ break;
+ case ENOTDIR:
+ errMsg = NSLocalizedString(@"A component of the path is not a directory.", @"Error description");
+ break;
+ case ENAMETOOLONG:
+ errMsg = NSLocalizedString(@"File name too long.", @"Error description");
+ break;
+ case EACCES:
+ errMsg = NSLocalizedString(@"Search permission denied for this path.", @"Error description");
+ break;
+ case ELOOP:
+ errMsg = NSLocalizedString(@"Too many symlinks encountered resolving path.", @"Error description");
+ break;
+ case EIO:
+ errMsg = NSLocalizedString(@"I/O error occurred.", @"Error description");
+ break;
+ case EINVAL:
+ errMsg = NSLocalizedString(@"Options not recognized.", @"Error description");
+ break;
+ case EEXIST:
+ errMsg = NSLocalizedString(@"Options contained XATTR_CREATE but the named attribute exists.", @"Error description");
+ break;
+ case ENOATTR:
+ errMsg = NSLocalizedString(@"The named attribute does not exist.", @"Error description");
+ break;
+ case EROFS:
+ errMsg = NSLocalizedString(@"Read-only file system. Unable to change attributes.", @"Error description");
+ break;
+ case EFAULT:
+ errMsg = NSLocalizedString(@"Path or name points to an invalid address.", @"Error description");
+ break;
+ case E2BIG:
+ errMsg = NSLocalizedString(@"The data size of the extended attribute is too large.", @"Error description");
+ break;
+ case ENOSPC:
+ errMsg = NSLocalizedString(@"No space left on file system.", @"Error description");
+ break;
+ default:
+ errMsg = NSLocalizedString(@"Unknown error occurred.", @"Error description");
+ break;
+ }
+ return errMsg;
+}
+
+
+@end
+
+//
+// implementation modified after http://www.cocoadev.com/index.pl?NSDataPlusBzip (removed exceptions)
+//
+
+@implementation NSData (Bzip2)
+
+- (NSData *)bzip2 { return [self bzip2WithCompressionSetting:5]; }
+
+- (NSData *)bzip2WithCompressionSetting:(int)compression
+{
+ int bzret, buffer_size = 1000000;
+ bz_stream stream = { 0 };
+ stream.next_in = (char *)[self bytes];
+ stream.avail_in = [self length];
+
+ NSMutableData *buffer = [[NSMutableData alloc] initWithLength:buffer_size];
+ stream.next_out = [buffer mutableBytes];
+ stream.avail_out = buffer_size;
+
+ NSMutableData *compressed = [NSMutableData dataWithCapacity:[self length]];
+
+ BZ2_bzCompressInit(&stream, compression, 0, 0);
+ BOOL hadError = NO;
+ do {
+ bzret = BZ2_bzCompress(&stream, (stream.avail_in) ? BZ_RUN : BZ_FINISH);
+ if (bzret != BZ_RUN_OK && bzret != BZ_STREAM_END) {
+ hadError = YES;
+ compressed = nil;
+ } else {
+ [compressed appendBytes:[buffer bytes] length:(buffer_size - stream.avail_out)];
+ stream.next_out = [buffer mutableBytes];
+ stream.avail_out = buffer_size;
+ }
+ } while(bzret != BZ_STREAM_END && NO == hadError);
+
+ BZ2_bzCompressEnd(&stream);
+ [buffer release];
+
+ return compressed;
+}
+
+- (NSData *)bunzip2
+{
+ int bzret;
+ bz_stream stream = { 0 };
+ stream.next_in = (char *)[self bytes];
+ stream.avail_in = [self length];
+
+ const int buffer_size = 10000;
+ NSMutableData *buffer = [[NSMutableData alloc] initWithLength:buffer_size];
+ stream.next_out = [buffer mutableBytes];
+ stream.avail_out = buffer_size;
+
+ NSMutableData *decompressed = [NSMutableData dataWithCapacity:[self length]];
+
+ BZ2_bzDecompressInit(&stream, 0, NO);
+ BOOL hadError = NO;
+ do {
+ bzret = BZ2_bzDecompress(&stream);
+ if (bzret != BZ_OK && bzret != BZ_STREAM_END) {
+ hadError = YES;
+ decompressed = nil;
+ } else {
+ [decompressed appendBytes:[buffer bytes] length:(buffer_size - stream.avail_out)];
+ stream.next_out = [buffer mutableBytes];
+ stream.avail_out = buffer_size;
+ }
+ } while(bzret != BZ_STREAM_END && NO == hadError);
+
+ BZ2_bzCompressEnd(&stream);
+ [buffer release];
+
+ return decompressed;
+}
+@end
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ama...@us...> - 2007-04-10 19:45:17
|
Revision: 1793
http://skim-app.svn.sourceforge.net/skim-app/?rev=1793&view=rev
Author: amaxwell
Date: 2007-04-10 12:45:15 -0700 (Tue, 10 Apr 2007)
Log Message:
-----------
copy filemanager category
Added Paths:
-----------
SkimNotesAgent/NSFileManager_ExtendedAttributes.h
Copied: SkimNotesAgent/NSFileManager_ExtendedAttributes.h (from rev 1792, trunk/NSFileManager_ExtendedAttributes.h)
===================================================================
--- SkimNotesAgent/NSFileManager_ExtendedAttributes.h (rev 0)
+++ SkimNotesAgent/NSFileManager_ExtendedAttributes.h 2007-04-10 19:45:15 UTC (rev 1793)
@@ -0,0 +1,145 @@
+//
+// NSFileManager_ExtendedAttributes.h
+//
+// Created by Adam R. Maxwell on 05/12/05.
+// Copyright 2005, 2006, 2007 Adam R. Maxwell. All rights reserved.
+//
+/*
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+ - Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ - Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation and/or
+ other materials provided with the distribution.
+ - Neither the name of Adam R. Maxwell nor the names of any contributors may be
+ used to endorse or promote products derived from this software without specific
+ prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
+ EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+ TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY
+ WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import <Cocoa/Cocoa.h>
+
+typedef UInt32 BDSKXattrFlags;
+enum {
+ kBDSKXattrDefault = 0, /* create or replace, follow symlinks, split data */
+ kBDSKXattrNoFollow = 1L << 1, /* don't follow symlinks */
+ kBDSKXattrCreateOnly = 1L << 2, /* setting will fail if the attribute already exists */
+ kBDSKXattrReplaceOnly = 1L << 3, /* setting will fail if the attribute does not exist */
+ kBDSKXattrNoSplitData = 1L << 4 /* don't split data objects into segments */
+};
+
+/*!
+ @category NSFileManager (ExtendedAttributes)
+ @abstract Provides an Objective-C wrapper for the low-level BSD functions dealing with file attributes.
+ @discussion (comprehensive description)
+*/
+@interface NSFileManager (ExtendedAttributes)
+
+/*!
+ @method extendedAttributeNamesAtPath:traverseLink:
+ @abstract Return a list of extended attributes for the given file.
+ @discussion Calls <tt>listxattr(2)</tt> to determine all of the extended attributes, and returns them as
+ an array of NSString objects. Returns nil if an error occurs.
+ @param path Path to the object in the file system.
+ @param follow Follow symlinks (<tt>listxattr(2)</tt> does this by default, so typically you should pass YES).
+ @param error Error object describing the error if nil was returned.
+ @result Array of strings or nil.
+*/
+- (NSArray *)extendedAttributeNamesAtPath:(NSString *)path traverseLink:(BOOL)follow error:(NSError **)error;
+
+/*!
+ @method extendedAttributeNamed:atPath:traverseLink:error:
+ @abstract Return the extended attribute named <tt>attr</tt> for a given file.
+ @discussion Calls <tt>getxattr(2)</tt> to determine the extended attribute, and returns it as data.
+ @param attr The attribute name.
+ @param path Path to the object in the file system.
+ @param follow Follow symlinks (<tt>getxattr(2)</tt> does this by default, so typically you should pass YES).
+ @param error Error object describing the error if nil was returned.
+ @result Data object representing the extended attribute or nil if an error occurred.
+*/
+- (NSData *)extendedAttributeNamed:(NSString *)attr atPath:(NSString *)path traverseLink:(BOOL)follow error:(NSError **)error;
+
+/*!
+ @method allExtendedAttributesAtPath:traverseLink:error:
+ @abstract Returns all extended attributes for the given file, each as an NSData object.
+ @discussion (comprehensive description)
+ @param path (description)
+ @param follow (description)
+ @param error (description)
+ @result (description)
+*/
+- (NSArray *)allExtendedAttributesAtPath:(NSString *)path traverseLink:(BOOL)follow error:(NSError **)error;
+
+/*!
+ @method propertyListFromExtendedAttributeNamed:atPath:traverseLink:error:
+ @abstract Returns a property list using NSPropertyListSerialization.
+ @discussion (comprehensive description)
+ @param attr (description)
+ @param path (description)
+ @param traverse (description)
+ @param outError (description)
+ @result (description)
+*/
+- (id)propertyListFromExtendedAttributeNamed:(NSString *)attr atPath:(NSString *)path traverseLink:(BOOL)traverse error:(NSError **)outError;
+
+/*!
+ @method setExtendedAttributeNamed:toValue:atPath:options:error:
+ @abstract Sets the value of attribute named <tt>attr</tt> to <tt>value</tt>, which is an NSData object.
+ @discussion Calls <tt>setxattr(2)</tt> to set the attributes for the file.
+ @param attr The attribute name.
+ @param value The value of the attribute as NSData.
+ @param path Path to the object in the file system.
+ @param options see BDSKXattrFlags
+ @param error Error object describing the error if NO was returned.
+ @result Returns NO if an error occurred.
+*/
+- (BOOL)setExtendedAttributeNamed:(NSString *)attr toValue:(NSData *)value atPath:(NSString *)path options:(BDSKXattrFlags)options error:(NSError **)error;
+
+/*!
+ @method setExtendedAttributeNamed:toPropertyListValue:atPath:options:error:
+ @abstract Sets the extended attribute named <tt>attr</tt> to the specified property list. The plist is converted to NSData using NSPropertyListSerialization.
+ @discussion (comprehensive description)
+ @param attr (description)
+ @param plist (description)
+ @param path (description)
+ @param options (description)
+ @param error (description)
+ @result (description)
+*/
+- (BOOL)setExtendedAttributeNamed:(NSString *)attr toPropertyListValue:(id)plist atPath:(NSString *)path options:(BDSKXattrFlags)options error:(NSError **)error;
+
+/*!
+ @method removeExtendedAttribute:atPath:followLinks:error:
+ @abstract Removes the given attribute <tt>attr</tt> from the named file at <tt>path</tt>.
+ @discussion Calls <tt>removexattr(2)</tt> to remove the given attribute from the file.
+ @param attr The attribute name.
+ @param path Path to the object in the file system.
+ @param follow Follow symlinks (<tt>removexattr(2)</tt> does this by default, so typically you should pass YES).
+ @param error Error object describing the error if nil was returned.
+ @result Returns NO if an error occurred.
+*/
+- (BOOL)removeExtendedAttribute:(NSString *)attr atPath:(NSString *)path traverseLink:(BOOL)follow error:(NSError **)error;
+
+/*!
+ @method removeAllExtendedAttributesAtPath:traverseLink:error:
+ @abstract Removes all extended attributes at the specified path.
+ @discussion (comprehensive description)
+ @param path (description)
+ @param follow (description)
+ @param error (description)
+ @result (description)
+*/
+- (BOOL)removeAllExtendedAttributesAtPath:(NSString *)path traverseLink:(BOOL)follow error:(NSError **)error;
+
+@end
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ama...@us...> - 2007-04-10 19:43:44
|
Revision: 1792
http://skim-app.svn.sourceforge.net/skim-app/?rev=1792&view=rev
Author: amaxwell
Date: 2007-04-10 12:43:43 -0700 (Tue, 10 Apr 2007)
Log Message:
-----------
Retry import of agent.
Added Paths:
-----------
SkimNotesAgent/
SkimNotesAgent/SkimNotesAgent.1
SkimNotesAgent/SkimNotesAgent.h
SkimNotesAgent/SkimNotesAgent.m
SkimNotesAgent/SkimNotesAgent.xcodeproj/
SkimNotesAgent/SkimNotesAgent.xcodeproj/amaxwell.mode1v3
SkimNotesAgent/SkimNotesAgent.xcodeproj/project.pbxproj
SkimNotesAgent/SkimNotesAgent_Prefix.pch
Added: SkimNotesAgent/SkimNotesAgent.1
===================================================================
--- SkimNotesAgent/SkimNotesAgent.1 (rev 0)
+++ SkimNotesAgent/SkimNotesAgent.1 2007-04-10 19:43:43 UTC (rev 1792)
@@ -0,0 +1,79 @@
+.\"Modified from man(1) of FreeBSD, the NetBSD mdoc.template, and mdoc.samples.
+.\"See Also:
+.\"man mdoc.samples for a complete listing of options
+.\"man mdoc for the short list of editing options
+.\"/usr/share/misc/mdoc.template
+.Dd 04/09/07 \" DATE
+.Dt TestAgent 1 \" Program name and manual section number
+.Os Darwin
+.Sh NAME \" Section Header - required - don't modify
+.Nm TestAgent,
+.\" The following lines are read in generating the apropos(man -k) database. Use only key
+.\" words here as the database is built based on the words here and in the .ND line.
+.Nm Other_name_for_same_program(),
+.Nm Yet another name for the same program.
+.\" Use .Nm macro to designate other names for the documented program.
+.Nd This line parsed for whatis database.
+.Sh SYNOPSIS \" Section Header - required - don't modify
+.Nm
+.Op Fl abcd \" [-abcd]
+.Op Fl a Ar path \" [-a path]
+.Op Ar file \" [file]
+.Op Ar \" [file ...]
+.Ar arg0 \" Underlined argument - use .Ar anywhere to underline
+arg2 ... \" Arguments
+.Sh DESCRIPTION \" Section Header - required - don't modify
+Use the .Nm macro to refer to your program throughout the man page like such:
+.Nm
+Underlining is accomplished with the .Ar macro like this:
+.Ar underlined text .
+.Pp \" Inserts a space
+A list of items with descriptions:
+.Bl -tag -width -indent \" Begins a tagged list
+.It item a \" Each item preceded by .It macro
+Description of item a
+.It item b
+Description of item b
+.El \" Ends the list
+.Pp
+A list of flags and their descriptions:
+.Bl -tag -width -indent \" Differs from above in tag removed
+.It Fl a \"-a flag as a list item
+Description of -a flag
+.It Fl b
+Description of -b flag
+.El \" Ends the list
+.Pp
+.\" .Sh ENVIRONMENT \" May not be needed
+.\" .Bl -tag -width "ENV_VAR_1" -indent \" ENV_VAR_1 is width of the string ENV_VAR_1
+.\" .It Ev ENV_VAR_1
+.\" Description of ENV_VAR_1
+.\" .It Ev ENV_VAR_2
+.\" Description of ENV_VAR_2
+.\" .El
+.Sh FILES \" File used or created by the topic of the man page
+.Bl -tag -width "/Users/joeuser/Library/really_long_file_name" -compact
+.It Pa /usr/share/file_name
+FILE_1 description
+.It Pa /Users/joeuser/Library/really_long_file_name
+FILE_2 description
+.El \" Ends the list
+.\" .Sh DIAGNOSTICS \" May not be needed
+.\" .Bl -diag
+.\" .It Diagnostic Tag
+.\" Diagnostic informtion here.
+.\" .It Diagnostic Tag
+.\" Diagnostic informtion here.
+.\" .El
+.Sh SEE ALSO
+.\" List links in ascending order by section, alphabetically within a section.
+.\" Please do not reference files that do not exist without filing a bug report
+.Xr a 1 ,
+.Xr b 1 ,
+.Xr c 1 ,
+.Xr a 2 ,
+.Xr b 2 ,
+.Xr a 3 ,
+.Xr b 3
+.\" .Sh BUGS \" Document known, unremedied bugs
+.\" .Sh HISTORY \" Document history if command behaves in a unique manner
\ No newline at end of file
Added: SkimNotesAgent/SkimNotesAgent.h
===================================================================
--- SkimNotesAgent/SkimNotesAgent.h (rev 0)
+++ SkimNotesAgent/SkimNotesAgent.h 2007-04-10 19:43:43 UTC (rev 1792)
@@ -0,0 +1,15 @@
+/*
+ * SkimNotesAgent.h
+ * SkimNotesAgent
+ *
+ * Created by Adam Maxwell on 04/10/07.
+ * Copyright 2007 __MyCompanyName__. All rights reserved.
+ *
+ */
+
+@protocol ListenerProtocol
+
+- (bycopy NSData *)RTFNotesAtPath:(in bycopy NSString *)aFile;
+- (bycopy NSString *)textNotesAtPath:(in bycopy NSString *)aFile;
+
+@end
Added: SkimNotesAgent/SkimNotesAgent.m
===================================================================
--- SkimNotesAgent/SkimNotesAgent.m (rev 0)
+++ SkimNotesAgent/SkimNotesAgent.m 2007-04-10 19:43:43 UTC (rev 1792)
@@ -0,0 +1,120 @@
+#import <AppKit/AppKit.h>
+#import "NSFileManager_ExtendedAttributes.h"
+#import "SkimNotesAgent.h"
+
+@interface Listener : NSObject
+{
+ NSConnection *_connection;
+}
+- (id)initWithServerName:(NSString *)serverName;
+- (void)_destroyConnection;
+@end
+
+@implementation Listener
+
+- (id)initWithServerName:(NSString *)serverName;
+{
+ self = [super init];
+ if (self) {
+ _connection = [[NSConnection alloc] initWithReceivePort:[NSPort port] sendPort:nil];
+ NSProtocolChecker *checker = [NSProtocolChecker protocolCheckerWithTarget:self protocol:@protocol(ListenerProtocol)];
+ [_connection setRootObject:checker];
+ [_connection setDelegate:self];
+
+ // user can pass nil, in which case we generate a server name to be read from standard output
+ if (nil == serverName)
+ serverName = [[NSProcessInfo processInfo] globallyUniqueString];
+
+ if ([_connection registerName:serverName] == NO) {
+ NSLog(@"failed to register connection; another agent process must be running");
+ [self _destroyConnection];
+ [self release];
+ self = nil;
+ }
+ NSFileHandle *fh = [NSFileHandle fileHandleWithStandardOutput];
+ [fh writeData:[serverName dataUsingEncoding:NSUTF8StringEncoding]];
+ }
+ return self;
+}
+
+- (void)dealloc
+{
+ [[NSNotificationCenter defaultCenter] removeObserver:self];
+ [super dealloc];
+}
+
+- (bycopy NSData *)RTFNotesAtPath:(in bycopy NSString *)aFile;
+{
+ NSError *error;
+ NSData *data = [[NSFileManager defaultManager] extendedAttributeNamed:@"net_sourceforge_skim-app_rtf_notes" atPath:[aFile stringByStandardizingPath] traverseLink:YES error:&error];
+ if (nil == data && [error code] != ENOATTR)
+ NSLog(@"%@", error);
+ return data;
+}
+
+- (bycopy NSString *)textNotesAtPath:(in bycopy NSString *)aFile;
+{
+ NSError *error;
+ NSString *string = nil;
+ NSData *data = [[NSFileManager defaultManager] extendedAttributeNamed:@"net_sourceforge_skim-app_text_notes" atPath:[aFile stringByStandardizingPath] traverseLink:YES error:&error];
+ if (nil == data && [error code] != ENOATTR)
+ NSLog(@"%@", error);
+ else
+ string = [[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding] autorelease];
+ return string;
+}
+
+- (void)_destroyConnection;
+{
+ [_connection registerName:nil];
+ [[_connection receivePort] invalidate];
+ [[_connection sendPort] invalidate];
+ [_connection invalidate];
+ [_connection release];
+ _connection = nil;
+}
+
+- (void)portDied:(id)obj
+{
+ [self _destroyConnection];
+ exit(0);
+}
+
+// first app to connect will be the owner of this instance of the program; when the connection dies, so do we
+- (BOOL)makeNewConnection:(NSConnection *)newConnection sender:(NSConnection *)parentConnection
+{
+ [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(portDied:) name:NSPortDidBecomeInvalidNotification object:[newConnection sendPort]];
+ return YES;
+}
+
+
+- (void)applicationWillTerminate:(NSNotification *)aNotification;
+{
+ [self _destroyConnection];
+}
+
+@end
+
+int main (int argc, const char * argv[]) {
+ NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
+
+ NSArray *args = [[NSProcessInfo processInfo] arguments];
+ NSString *serverName = [args count] > 1 ? [args lastObject] : nil;
+ Listener *listener = [[Listener alloc] initWithServerName:serverName];
+
+ NSRunLoop *rl = [NSRunLoop currentRunLoop];
+ BOOL didRun;
+ NSDate *distantFuture = [NSDate distantFuture];
+ NSAutoreleasePool *__pool = [NSAutoreleasePool new];
+
+ do {
+ [__pool release];
+ __pool = [NSAutoreleasePool new];
+ didRun = [rl runMode:NSDefaultRunLoopMode beforeDate:distantFuture];
+ } while (listener && didRun);
+ [__pool release];
+
+ [listener release];
+ [pool release];
+ return 0;
+}
Added: SkimNotesAgent/SkimNotesAgent.xcodeproj/amaxwell.mode1v3
===================================================================
--- SkimNotesAgent/SkimNotesAgent.xcodeproj/amaxwell.mode1v3 (rev 0)
+++ SkimNotesAgent/SkimNotesAgent.xcodeproj/amaxwell.mode1v3 2007-04-10 19:43:43 UTC (rev 1792)
@@ -0,0 +1,1372 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>ActivePerspectiveName</key>
+ <string>Project</string>
+ <key>AllowedModules</key>
+ <array>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXSmartGroupTreeModule</string>
+ <key>Name</key>
+ <string>Groups and Files Outline View</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Name</key>
+ <string>Editor</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>XCTaskListModule</string>
+ <key>Name</key>
+ <string>Task List</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>XCDetailModule</string>
+ <key>Name</key>
+ <string>File and Smart Group Detail Viewer</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>1</string>
+ <key>Module</key>
+ <string>PBXBuildResultsModule</string>
+ <key>Name</key>
+ <string>Detailed Build Results Viewer</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>1</string>
+ <key>Module</key>
+ <string>PBXProjectFindModule</string>
+ <key>Name</key>
+ <string>Project Batch Find Tool</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXBookmarksModule</string>
+ <key>Name</key>
+ <string>Bookmarks Tool</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXClassBrowserModule</string>
+ <key>Name</key>
+ <string>Class Browser</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXCVSModule</string>
+ <key>Name</key>
+ <string>Source Code Control Tool</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXDebugBreakpointsModule</string>
+ <key>Name</key>
+ <string>Debug Breakpoints Tool</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>XCDockableInspector</string>
+ <key>Name</key>
+ <string>Inspector</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXOpenQuicklyModule</string>
+ <key>Name</key>
+ <string>Open Quickly Tool</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>1</string>
+ <key>Module</key>
+ <string>PBXDebugSessionModule</string>
+ <key>Name</key>
+ <string>Debugger</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>1</string>
+ <key>Module</key>
+ <string>PBXDebugCLIModule</string>
+ <key>Name</key>
+ <string>Debug Console</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>XCSnapshotModule</string>
+ <key>Name</key>
+ <string>Snapshots Tool</string>
+ </dict>
+ </array>
+ <key>Description</key>
+ <string>DefaultDescriptionKey</string>
+ <key>DockingSystemVisible</key>
+ <false/>
+ <key>Extension</key>
+ <string>mode1v3</string>
+ <key>FavBarConfig</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>F9B57A1E0BCB3C62001FB821</string>
+ <key>XCBarModuleItemNames</key>
+ <dict/>
+ <key>XCBarModuleItems</key>
+ <array/>
+ </dict>
+ <key>FirstTimeWindowDisplayed</key>
+ <false/>
+ <key>Identifier</key>
+ <string>com.apple.perspectives.project.mode1v3</string>
+ <key>MajorVersion</key>
+ <integer>32</integer>
+ <key>MinorVersion</key>
+ <integer>1</integer>
+ <key>Name</key>
+ <string>Default</string>
+ <key>Notifications</key>
+ <array>
+ <dict>
+ <key>XCObserverAutoDisconnectKey</key>
+ <true/>
+ <key>XCObserverDefintionKey</key>
+ <dict/>
+ <key>XCObserverFactoryKey</key>
+ <string>XCPerspectivesSpecificationIdentifier</string>
+ <key>XCObserverGUIDKey</key>
+ <string>XCObserverProjectIdentifier</string>
+ <key>XCObserverNotificationKey</key>
+ <string>PBXStatusBuildStateMessageNotification</string>
+ <key>XCObserverTargetKey</key>
+ <string>XCMainBuildResultsModuleGUID</string>
+ <key>XCObserverTriggerKey</key>
+ <string>awakenModuleWithObserver:</string>
+ <key>XCObserverValidationKey</key>
+ <dict/>
+ </dict>
+ </array>
+ <key>OpenEditors</key>
+ <array>
+ <dict>
+ <key>Content</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>F9B57A2E0BCB3E11001FB821</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>SkimNotesAgent.m</string>
+ <key>PBXSplitModuleInNavigatorKey</key>
+ <dict>
+ <key>Split0</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>F9B57A2F0BCB3E11001FB821</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>SkimNotesAgent.m</string>
+ <key>_historyCapacity</key>
+ <integer>0</integer>
+ <key>bookmark</key>
+ <string>F9B57A690BCB4576001FB821</string>
+ <key>history</key>
+ <array>
+ <string>F9B57A4D0BCB40B6001FB821</string>
+ </array>
+ </dict>
+ <key>SplitCount</key>
+ <string>1</string>
+ </dict>
+ <key>StatusBarVisibility</key>
+ <true/>
+ </dict>
+ <key>Geometry</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 20}, {839, 659}}</string>
+ <key>PBXModuleWindowStatusBarHidden2</key>
+ <false/>
+ <key>RubberWindowFrame</key>
+ <string>359 132 839 700 0 0 1280 832 </string>
+ </dict>
+ </dict>
+ </array>
+ <key>PerspectiveWidths</key>
+ <array>
+ <integer>-1</integer>
+ <integer>-1</integer>
+ </array>
+ <key>Perspectives</key>
+ <array>
+ <dict>
+ <key>ChosenToolbarItems</key>
+ <array>
+ <string>active-target-popup</string>
+ <string>action</string>
+ <string>NSToolbarFlexibleSpaceItem</string>
+ <string>buildOrClean</string>
+ <string>build-and-goOrGo</string>
+ <string>com.apple.ide.PBXToolbarStopButton</string>
+ <string>get-info</string>
+ <string>toggle-editor</string>
+ <string>NSToolbarFlexibleSpaceItem</string>
+ <string>com.apple.pbx.toolbar.searchfield</string>
+ </array>
+ <key>ControllerClassBaseName</key>
+ <string></string>
+ <key>IconName</key>
+ <string>WindowOfProjectWithEditor</string>
+ <key>Identifier</key>
+ <string>perspective.project</string>
+ <key>IsVertical</key>
+ <false/>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXBottomSmartGroupGIDs</key>
+ <array>
+ <string>1C37FBAC04509CD000000102</string>
+ <string>1C37FAAC04509CD000000102</string>
+ <string>1C08E77C0454961000C914BD</string>
+ <string>1C37FABC05509CD000000102</string>
+ <string>1C37FABC05539CD112110102</string>
+ <string>E2644B35053B69B200211256</string>
+ <string>1C37FABC04509CD000100104</string>
+ <string>1CC0EA4004350EF90044410B</string>
+ <string>1CC0EA4004350EF90041110B</string>
+ </array>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CE0B1FE06471DED0097A5F4</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Files</string>
+ <key>PBXProjectStructureProvided</key>
+ <string>yes</string>
+ <key>PBXSmartGroupTreeModuleColumnData</key>
+ <dict>
+ <key>PBXSmartGroupTreeModuleColumnWidthsKey</key>
+ <array>
+ <real>186</real>
+ </array>
+ <key>PBXSmartGroupTreeModuleColumnsKey_v4</key>
+ <array>
+ <string>MainColumn</string>
+ </array>
+ </dict>
+ <key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key>
+ <dict>
+ <key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key>
+ <array>
+ <string>08FB7794FE84155DC02AAC07</string>
+ <string>1C37FABC05509CD000000102</string>
+ </array>
+ <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
+ <array>
+ <array>
+ <integer>0</integer>
+ </array>
+ </array>
+ <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
+ <string>{{0, 0}, {186, 338}}</string>
+ </dict>
+ <key>PBXTopSmartGroupGIDs</key>
+ <array/>
+ <key>XCIncludePerspectivesSwitch</key>
+ <true/>
+ <key>XCSharingToken</key>
+ <string>com.apple.Xcode.GFSharingToken</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {203, 356}}</string>
+ <key>GroupTreeTableConfiguration</key>
+ <array>
+ <string>MainColumn</string>
+ <real>186</real>
+ </array>
+ <key>RubberWindowFrame</key>
+ <string>547 435 690 397 0 0 1280 832 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXSmartGroupTreeModule</string>
+ <key>Proportion</key>
+ <string>203pt</string>
+ </dict>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CE0B20306471E060097A5F4</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>MyNewFile14.java</string>
+ <key>PBXSplitModuleInNavigatorKey</key>
+ <dict>
+ <key>Split0</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CE0B20406471E060097A5F4</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>MyNewFile14.java</string>
+ </dict>
+ <key>SplitCount</key>
+ <string>1</string>
+ </dict>
+ <key>StatusBarVisibility</key>
+ <true/>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {482, 0}}</string>
+ <key>RubberWindowFrame</key>
+ <string>547 435 690 397 0 0 1280 832 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Proportion</key>
+ <string>0pt</string>
+ </dict>
+ <dict>
+ <key>BecomeActive</key>
+ <true/>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CE0B20506471E060097A5F4</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Detail</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 5}, {482, 351}}</string>
+ <key>RubberWindowFrame</key>
+ <string>547 435 690 397 0 0 1280 832 </string>
+ </dict>
+ <key>Module</key>
+ <string>XCDetailModule</string>
+ <key>Proportion</key>
+ <string>351pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>482pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Project</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>XCModuleDock</string>
+ <string>PBXSmartGroupTreeModule</string>
+ <string>XCModuleDock</string>
+ <string>PBXNavigatorGroup</string>
+ <string>XCDetailModule</string>
+ </array>
+ <key>TableOfContents</key>
+ <array>
+ <string>F9B57A2C0BCB3E11001FB821</string>
+ <string>1CE0B1FE06471DED0097A5F4</string>
+ <string>F9B57A2D0BCB3E11001FB821</string>
+ <string>1CE0B20306471E060097A5F4</string>
+ <string>1CE0B20506471E060097A5F4</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.defaultV3</string>
+ </dict>
+ <dict>
+ <key>ControllerClassBaseName</key>
+ <string></string>
+ <key>IconName</key>
+ <string>WindowOfProject</string>
+ <key>Identifier</key>
+ <string>perspective.morph</string>
+ <key>IsVertical</key>
+ <integer>0</integer>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXBottomSmartGroupGIDs</key>
+ <array>
+ <string>1C37FBAC04509CD000000102</string>
+ <string>1C37FAAC04509CD000000102</string>
+ <string>1C08E77C0454961000C914BD</string>
+ <string>1C37FABC05509CD000000102</string>
+ <string>1C37FABC05539CD112110102</string>
+ <string>E2644B35053B69B200211256</string>
+ <string>1C37FABC04509CD000100104</string>
+ <string>1CC0EA4004350EF90044410B</string>
+ <string>1CC0EA4004350EF90041110B</string>
+ </array>
+ <key>PBXProjectModuleGUID</key>
+ <string>11E0B1FE06471DED0097A5F4</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Files</string>
+ <key>PBXProjectStructureProvided</key>
+ <string>yes</string>
+ <key>PBXSmartGroupTreeModuleColumnData</key>
+ <dict>
+ <key>PBXSmartGroupTreeModuleColumnWidthsKey</key>
+ <array>
+ <real>186</real>
+ </array>
+ <key>PBXSmartGroupTreeModuleColumnsKey_v4</key>
+ <array>
+ <string>MainColumn</string>
+ </array>
+ </dict>
+ <key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key>
+ <dict>
+ <key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key>
+ <array>
+ <string>29B97314FDCFA39411CA2CEA</string>
+ <string>1C37FABC05509CD000000102</string>
+ </array>
+ <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
+ <array>
+ <array>
+ <integer>0</integer>
+ </array>
+ </array>
+ <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
+ <string>{{0, 0}, {186, 337}}</string>
+ </dict>
+ <key>PBXTopSmartGroupGIDs</key>
+ <array/>
+ <key>XCIncludePerspectivesSwitch</key>
+ <integer>1</integer>
+ <key>XCSharingToken</key>
+ <string>com.apple.Xcode.GFSharingToken</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {203, 355}}</string>
+ <key>GroupTreeTableConfiguration</key>
+ <array>
+ <string>MainColumn</string>
+ <real>186</real>
+ </array>
+ <key>RubberWindowFrame</key>
+ <string>373 269 690 397 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXSmartGroupTreeModule</string>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Morph</string>
+ <key>PreferredWidth</key>
+ <integer>300</integer>
+ <key>ServiceClasses</key>
+ <array>
+ <string>XCModuleDock</string>
+ <string>PBXSmartGroupTreeModule</string>
+ </array>
+ <key>TableOfContents</key>
+ <array>
+ <string>11E0B1FE06471DED0097A5F4</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.default.shortV3</string>
+ </dict>
+ </array>
+ <key>PerspectivesBarVisible</key>
+ <false/>
+ <key>ShelfIsVisible</key>
+ <false/>
+ <key>SourceDescription</key>
+ <string>file at '/System/Library/PrivateFrameworks/DevToolsInterface.framework/Resources/XCPerspectivesSpecificationMode1.xcperspec'</string>
+ <key>StatusbarIsVisible</key>
+ <true/>
+ <key>TimeStamp</key>
+ <real>197870966.10195199</real>
+ <key>ToolbarDisplayMode</key>
+ <integer>1</integer>
+ <key>ToolbarIsVisible</key>
+ <true/>
+ <key>ToolbarSizeMode</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>Perspectives</string>
+ <key>UpdateMessage</key>
+ <string>The Default Workspace in this version of Xcode now includes support to hide and show the detail view (what has been referred to as the "Metro-Morph" feature). You must discard your current Default Workspace settings and update to the latest Default Workspace in order to gain this feature. Do you wish to update to the latest Workspace defaults for project '%@'?</string>
+ <key>WindowJustification</key>
+ <integer>5</integer>
+ <key>WindowOrderList</key>
+ <array>
+ <string>/Volumes/Local/Users/amaxwell/Desktop/SkimNotesAgent/SkimNotesAgent.xcodeproj</string>
+ <string>F9B57A2E0BCB3E11001FB821</string>
+ <string>F9B57A310BCB3E11001FB821</string>
+ </array>
+ <key>WindowString</key>
+ <string>547 435 690 397 0 0 1280 832 </string>
+ <key>WindowToolsV3</key>
+ <array>
+ <dict>
+ <key>FirstTimeWindowDisplayed</key>
+ <false/>
+ <key>Identifier</key>
+ <string>windowTool.build</string>
+ <key>IsVertical</key>
+ <true/>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CD0528F0623707200166675</string>
+ <key>PBXProjectModuleLabel</key>
+ <string></string>
+ <key>StatusBarVisibility</key>
+ <true/>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {500, 218}}</string>
+ <key>RubberWindowFrame</key>
+ <string>731 40 500 500 0 0 1280 832 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Proportion</key>
+ <string>218pt</string>
+ </dict>
+ <dict>
+ <key>BecomeActive</key>
+ <true/>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>XCMainBuildResultsModuleGUID</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Build</string>
+ <key>XCBuildResultsTrigger_Collapse</key>
+ <integer>1021</integer>
+ <key>XCBuildResultsTrigger_Open</key>
+ <integer>1010</integer>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 223}, {500, 236}}</string>
+ <key>RubberWindowFrame</key>
+ <string>731 40 500 500 0 0 1280 832 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXBuildResultsModule</string>
+ <key>Proportion</key>
+ <string>236pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>459pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Build Results</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXBuildResultsModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <true/>
+ <key>TableOfContents</key>
+ <array>
+ <string>F9B57A310BCB3E11001FB821</string>
+ <string>F9B57A320BCB3E11001FB821</string>
+ <string>1CD0528F0623707200166675</string>
+ <string>XCMainBuildResultsModuleGUID</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.buildV3</string>
+ <key>WindowString</key>
+ <string>731 40 500 500 0 0 1280 832 </string>
+ <key>WindowToolGUID</key>
+ <string>F9B57A310BCB3E11001FB821</string>
+ <key>WindowToolIsVisible</key>
+ <true/>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.debugger</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>Debugger</key>
+ <dict>
+ <key>HorizontalSplitView</key>
+ <dict>
+ <key>_collapsingFrameDimension</key>
+ <real>0.0</real>
+ <key>_indexOfCollapsedView</key>
+ <integer>0</integer>
+ <key>_percentageOfCollapsedView</key>
+ <real>0.0</real>
+ <key>isCollapsed</key>
+ <string>yes</string>
+ <key>sizes</key>
+ <array>
+ <string>{{0, 0}, {317, 164}}</string>
+ <string>{{317, 0}, {377, 164}}</string>
+ </array>
+ </dict>
+ <key>VerticalSplitView</key>
+ <dict>
+ <key>_collapsingFrameDimension</key>
+ <real>0.0</real>
+ <key>_indexOfCollapsedView</key>
+ <integer>0</integer>
+ <key>_percentageOfCollapsedView</key>
+ <real>0.0</real>
+ <key>isCollapsed</key>
+ <string>yes</string>
+ <key>sizes</key>
+ <array>
+ <string>{{0, 0}, {694, 164}}</string>
+ <string>{{0, 164}, {694, 216}}</string>
+ </array>
+ </dict>
+ </dict>
+ <key>LauncherConfigVersion</key>
+ <string>8</string>
+ <key>PBXProjectModuleGUID</key>
+ <string>1C162984064C10D400B95A72</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Debug - GLUTExamples (Underwater)</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>DebugConsoleDrawerSize</key>
+ <string>{100, 120}</string>
+ <key>DebugConsoleVisible</key>
+ <string>None</string>
+ <key>DebugConsoleWindowFrame</key>
+ <string>{{200, 200}, {500, 300}}</string>
+ <key>DebugSTDIOWindowFrame</key>
+ <string>{{200, 200}, {500, 300}}</string>
+ <key>Frame</key>
+ <string>{{0, 0}, {694, 380}}</string>
+ <key>RubberWindowFrame</key>
+ <string>321 238 694 422 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXDebugSessionModule</string>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Debugger</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXDebugSessionModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>1</integer>
+ <key>TableOfContents</key>
+ <array>
+ <string>1CD10A99069EF8BA00B06720</string>
+ <string>1C0AD2AB069F1E9B00FABCE6</string>
+ <string>1C162984064C10D400B95A72</string>
+ <string>1C0AD2AC069F1E9B00FABCE6</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.debugV3</string>
+ <key>WindowString</key>
+ <string>321 238 694 422 0 0 1440 878 </string>
+ <key>WindowToolGUID</key>
+ <string>1CD10A99069EF8BA00B06720</string>
+ <key>WindowToolIsVisible</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.find</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CDD528C0622207200134675</string>
+ <key>PBXProjectModuleLabel</key>
+ <string><No Editor></string>
+ <key>PBXSplitModuleInNavigatorKey</key>
+ <dict>
+ <key>Split0</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CD0528D0623707200166675</string>
+ </dict>
+ <key>SplitCount</key>
+ <string>1</string>
+ </dict>
+ <key>StatusBarVisibility</key>
+ <integer>1</integer>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {781, 167}}</string>
+ <key>RubberWindowFrame</key>
+ <string>62 385 781 470 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Proportion</key>
+ <string>781pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>50%</string>
+ </dict>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CD0528E0623707200166675</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Project Find</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{8, 0}, {773, 254}}</string>
+ <key>RubberWindowFrame</key>
+ <string>62 385 781 470 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXProjectFindModule</string>
+ <key>Proportion</key>
+ <string>50%</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>428pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Project Find</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXProjectFindModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>1</integer>
+ <key>TableOfContents</key>
+ <array>
+ <string>1C530D57069F1CE1000CFCEE</string>
+ <string>1C530D58069F1CE1000CFCEE</string>
+ <string>1C530D59069F1CE1000CFCEE</string>
+ <string>1CDD528C0622207200134675</string>
+ <string>1C530D5A069F1CE1000CFCEE</string>
+ <string>1CE0B1FE06471DED0097A5F4</string>
+ <string>1CD0528E0623707200166675</string>
+ </array>
+ <key>WindowString</key>
+ <string>62 385 781 470 0 0 1440 878 </string>
+ <key>WindowToolGUID</key>
+ <string>1C530D57069F1CE1000CFCEE</string>
+ <key>WindowToolIsVisible</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>MENUSEPARATOR</string>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.debuggerConsole</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1C78EAAC065D492600B07095</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Debugger Console</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {650, 250}}</string>
+ <key>RubberWindowFrame</key>
+ <string>650 41 650 250 0 0 1280 1002 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXDebugCLIModule</string>
+ <key>Proportion</key>
+ <string>358pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>358pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Debugger Console</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXDebugCLIModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>1</integer>
+ <key>TableOfContents</key>
+ <array>
+ <string>1C78EAAD065D492600B07095</string>
+ <string>1C78EAAE065D492600B07095</string>
+ <string>1C78EAAC065D492600B07095</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.consoleV3</string>
+ <key>WindowString</key>
+ <string>650 41 650 250 0 0 1280 1002 </string>
+ <key>WindowToolGUID</key>
+ <string>1C78EAAD065D492600B07095</string>
+ <key>WindowToolIsVisible</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.snapshots</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>Module</key>
+ <string>XCSnapshotModule</string>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Snapshots</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>XCSnapshotModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <string>Yes</string>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.snapshots</string>
+ <key>WindowString</key>
+ <string>315 824 300 550 0 0 1440 878 </string>
+ <key>WindowToolIsVisible</key>
+ <string>Yes</string>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.scm</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1C78EAB2065D492600B07095</string>
+ <key>PBXProjectModuleLabel</key>
+ <string><No Editor></string>
+ <key>PBXSplitModuleInNavigatorKey</key>
+ <dict>
+ <key>Split0</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1C78EAB3065D492600B07095</string>
+ </dict>
+ <key>SplitCount</key>
+ <string>1</string>
+ </dict>
+ <key>StatusBarVisibility</key>
+ <integer>1</integer>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {452, 0}}</string>
+ <key>RubberWindowFrame</key>
+ <string>743 379 452 308 0 0 1280 1002 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Proportion</key>
+ <string>0pt</string>
+ </dict>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CD052920623707200166675</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>SCM</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>ConsoleFrame</key>
+ <string>{{0, 259}, {452, 0}}</string>
+ <key>Frame</key>
+ <string>{{0, 7}, {452, 259}}</string>
+ <key>RubberWindowFrame</key>
+ <string>743 379 452 308 0 0 1280 1002 </string>
+ <key>TableConfiguration</key>
+ <array>
+ <string>Status</string>
+ <real>30</real>
+ <string>FileName</string>
+ <real>199</real>
+ <string>Path</string>
+ <real>197.09500122070312</real>
+ </array>
+ <key>TableFrame</key>
+ <string>{{0, 0}, {452, 250}}</string>
+ </dict>
+ <key>Module</key>
+ <string>PBXCVSModule</string>
+ <key>Proportion</key>
+ <string>262pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>266pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>SCM</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXCVSModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>1</integer>
+ <key>TableOfContents</key>
+ <array>
+ <string>1C78EAB4065D492600B07095</string>
+ <string>1C78EAB5065D492600B07095</string>
+ <string>1C78EAB2065D492600B07095</string>
+ <string>1CD052920623707200166675</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.scm</string>
+ <key>WindowString</key>
+ <string>743 379 452 308 0 0 1280 1002 </string>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.breakpoints</string>
+ <key>IsVertical</key>
+ <integer>0</integer>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXBottomSmartGroupGIDs</key>
+ <array>
+ <string>1C77FABC04509CD000000102</string>
+ </array>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CE0B1FE06471DED0097A5F4</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Files</string>
+ <key>PBXProjectStructureProvided</key>
+ <string>no</string>
+ <key>PBXSmartGroupTreeModuleColumnData</key>
+ <dict>
+ <key>PBXSmartGroupTreeModuleColumnWidthsKey</key>
+ <array>
+ <real>168</real>
+ </array>
+ <key>PBXSmartGroupTreeModuleColumnsKey_v4</key>
+ <array>
+ <string>MainColumn</string>
+ </array>
+ </dict>
+ <key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key>
+ <dict>
+ <key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key>
+ <array>
+ <string>1C77FABC04509CD000000102</string>
+ </array>
+ <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
+ <array>
+ <array>
+ <integer>0</integer>
+ </array>
+ </array>
+ <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
+ <string>{{0, 0}, {168, 350}}</string>
+ </dict>
+ <key>PBXTopSmartGroupGIDs</key>
+ <array/>
+ <key>XCIncludePerspectivesSwitch</key>
+ <integer>0</integer>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {185, 368}}</string>
+ <key>GroupTreeTableConfiguration</key>
+ <array>
+ <string>MainColumn</string>
+ <real>168</real>
+ </array>
+ <key>RubberWindowFrame</key>
+ <string>315 424 744 409 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXSmartGroupTreeModule</string>
+ <key>Proportion</key>
+ <string>185pt</string>
+ </dict>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CA1AED706398EBD00589147</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Detail</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{190, 0}, {554, 368}}</string>
+ <key>RubberWindowFrame</key>
+ <string>315 424 744 409 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>XCDetailModule</string>
+ <key>Proportion</key>
+ <string>554pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>368pt</string>
+ </dict>
+ </array>
+ <key>MajorVersion</key>
+ <integer>3</integer>
+ <key>MinorVersion</key>
+ <integer>0</integer>
+ <key>Name</key>
+ <string>Breakpoints</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXSmartGroupTreeModule</string>
+ <string>XCDetailModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>1</integer>
+ <key>TableOfContents</key>
+ <array>
+ <string>1CDDB66807F98D9800BB5817</string>
+ <string>1CDDB66907F98D9800BB5817</string>
+ <string>1CE0B1FE06471DED0097A5F4</string>
+ <string>1CA1AED706398EBD00589147</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.breakpointsV3</string>
+ <key>WindowString</key>
+ <string>315 424 744 409 0 0 1440 878 </string>
+ <key>WindowToolGUID</key>
+ <string>1CDDB66807F98D9800BB5817</string>
+ <key>WindowToolIsVisible</key>
+ <integer>1</integer>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.debugAnimator</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Debug Visualizer</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXNavigatorGroup</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>1</integer>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.debugAnimatorV3</string>
+ <key>WindowString</key>
+ <string>100 100 700 500 0 0 1280 1002 </string>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.bookmarks</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>Module</key>
+ <string>PBXBookmarksModule</string>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Bookmarks</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXBookmarksModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>0</integer>
+ <key>WindowString</key>
+ <string>538 42 401 187 0 0 1280 1002 </string>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.classBrowser</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>OptionsSetName</key>
+ <string>Hierarchy, all classes</string>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CA6456E063B45B4001379D8</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Class Browser - NSObject</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>ClassesFrame</key>
+ <string>{{0, 0}, {374, 96}}</string>
+ <key>ClassesTreeTableConfiguration</key>
+ <array>
+ <string>PBXClassNameColumnIdentifier</string>
+ <real>208</real>
+ <string>PBXClassBookColumnIdentifier</string>
+ <real>22</real>
+ </array>
+ <key>Frame</key>
+ <string>{{0, 0}, {630, 331}}</string>
+ <key>MembersFrame</key>
+ <string>{{0, 105}, {374, 395}}</string>
+ <key>MembersTreeTableConfiguration</key>
+ <array>
+ <string>PBXMemberTypeIconColumnIdentifier</string>
+ <real>22</real>
+ <string>PBXMemberNameColumnIdentifier</string>
+ <real>216</real>
+ <string>PBXMemberTypeColumnIdentifier</string>
+ <real>97</real>
+ <string>PBXMemberBookColumnIdentifier</string>
+ <real>22</real>
+ </array>
+ <key>PBXModuleWindowStatusBarHidden2</key>
+ <integer>1</integer>
+ <key>RubberWindowFrame</key>
+ <string>385 179 630 352 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXClassBrowserModule</string>
+ <key>Proportion</key>
+ <string>332pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>332pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Class Browser</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXClassBrowserModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>0</integer>
+ <key>TableOfContents</key>
+ <array>
+ <string>1C0AD2AF069F1E9B00FABCE6</string>
+ <string>1C0AD2B0069F1E9B00FABCE6</string>
+ <string>1CA6456E063B45B4001379D8</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.classbrowser</string>
+ <key>WindowString</key>
+ <string>385 179 630 352 0 0 1440 878 </string>
+ <key>WindowToolGUID</key>
+ <string>1C0AD2AF069F1E9B00FABCE6</string>
+ <key>WindowToolIsVisible</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.refactoring</string>
+ <key>IncludeInToolsMenu</key>
+ <integer>0</integer>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{0, 0}, {500, 335}</string>
+ <key>RubberWindowFrame</key>
+ <string>{0, 0}, {500, 335}</string>
+ </dict>
+ <key>Module</key>
+ <string>XCRefactoringModule</string>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Refactoring</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>XCRefactoringModule</string>
+ </array>
+ <key>WindowString</key>
+ <string>200 200 500 356 0 0 1920 1200 </string>
+ </dict>
+ </array>
+</dict>
+</plist>
Added: SkimNotesAgent/SkimNotesAgent.xcodeproj/project.pbxproj
===================================================================
--- SkimNotesAgent/SkimNotesAgent.xcodeproj/project.pbxproj (rev 0)
+++ SkimNotesAgent/SkimNotesAgent.xcodeproj/project.pbxproj 2007-04-10 19:43:43 UTC (rev 1792)
@@ -0,0 +1,233 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 42;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ 8DD76F9A0486AA7600D96B5E /* SkimNotesAgent.m in Sources */ = {isa = PBXBuildFile; fileRef = 08FB7796FE84155DC02AAC07 /* SkimNotesAgent.m */; settings = {ATTRIBUTES = (); }; };
+ 8DD76F9C0486AA7600D96B5E /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 08FB779EFE84155DC02AAC07 /* Foundation.framework */; };
+ 8DD76F9F0486AA7600D96B5E /* SkimNotesAgent.1 in CopyFiles */ = {isa = PBXBuildFile; fileRef = C6859EA3029092ED04C91782 /* SkimNotesAgent.1 */; };
+ F92BA40B0BCAF831008D5BC3 /* NSFileManager_ExtendedAttributes.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = F92BA4090BCAF831008D5BC3 /* NSFileManager_ExtendedAttributes.h */; };
+ F92BA40C0BCAF831008D5BC3 /* NSFileManager_ExtendedAttributes.m in Sources */ = {isa = PBXBuildFile; fileRef = F92BA40A0BCAF831008D5BC3 /* NSFileManager_ExtendedAttributes.m */; };
+ F92BA4C90BCAF96A008D5BC3 /* libbz2.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = F92BA4C80BCAF96A008D5BC3 /* libbz2.dylib */; };
+ F92BAD7A0BCC0E02008D5BC3 /* SkimNotesAgent.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = F92BAD790BCC0E02008D5BC3 /* SkimNotesAgent.h */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXCopyFilesBuildPhase section */
+ 8DD76F9E0486AA7600D96B5E /* CopyFiles */ = {
+ isa = PBXCopyFilesBuildPhase;
+ buildActionMask = 8;
+ dstPath = /usr/share/man/man1/;
+ dstSubfolderSpec = 0;
+ files = (
+ 8DD76F9F0486AA7600D96B5E /* SkimNotesAgent.1 in CopyFiles */,
+ F92BA40B0BCAF831008D5BC3 /* NSFileManager_ExtendedAttributes.h in CopyFiles */,
+ F92BAD7A0BCC0E02008D5BC3 /* SkimNotesAgent.h in CopyFiles */,
+ );
+ runOnlyForDeploymentPostprocessing = 1;
+ };
+/* End PBXCopyFilesBuildPhase section */
+
+/* Begin PBXFileReference section */
+ 08FB7796FE84155DC02AAC07 /* SkimNotesAgent.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SkimNotesAgent.m; sourceTree = "<group>"; };
+ 08FB779EFE84155DC02AAC07 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = "<absolute>"; };
+ 32A70AAB03705E1F00C91783 /* SkimNotesAgent_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SkimNotesAgent_Prefix.pch; sourceTree = "<group>"; };
+ 8DD76FA10486AA7600D96B5E /* SkimNotesAgent */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = "compiled.mach-o.executable"; path = SkimNotesAgent; sourceTree = BUILT_PRODUCTS_DIR; };
+ C6859EA3029092ED04C91782 /* SkimNotesAgent.1 */ = {isa = PBXFileReference; lastKnownFileType = text.man; path = SkimNotesAgent.1; sourceTree = "<group>"; };
+ F92BA4090BCAF831008D5BC3 /* NSFileManager_ExtendedAttributes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSFileManager_ExtendedAttributes.h; sourceTree = "<group>"; };
+ F92BA40A0BCAF831008D5BC3 /* NSFileManager_ExtendedAttributes.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSFileManager_ExtendedAttributes.m; sourceTree = "<group>"; };
+ F92BA4C80BCAF96A008D5BC3 /* libbz2.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libbz2.dylib; path = /usr/lib/libbz2.dylib; sourceTree = "<absolute>"; };
+ F92BAD790BCC0E02008D5BC3 /* SkimNotesAgent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SkimNotesAgent.h; sourceTree = "<group>"; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ 8DD76F9B0486AA7600D96B5E /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 8DD76F9C0486AA7600D96B5E /* Foundation.framework in Frameworks */,
+ F92BA4C90BCAF96A008D5BC3 /* libbz2.dylib in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ 08FB7794FE84155DC02AAC07 /* SkimNotesAgent */ = {
+ isa = PBXGroup;
+ children = (
+ 08FB7795FE84155DC02AAC07 /* Source */,
+ C6859EA2029092E104C91782 /* Documentation */,
+ 08FB779DFE84155DC02AAC07 /* External Frameworks and Libraries */,
+ 1AB674ADFE9D54B511CA2CBB /* Products */,
+ );
+ name = SkimNotesAgent;
+ sourceTree = "<group>";
+ };
+ 08FB7795FE84155DC02AAC07 /* Source */ = {
+ isa = PBXGroup;
+ children = (
+ F92BAD790BCC0E02008D5BC3 /* SkimNotesAgent.h */,
+ F92BA4090BCAF831008D5BC3 /* NSFileManager_ExtendedAttributes.h */,
+ F92BA40A0BCAF831008D5BC3 /* NSFileManager_ExtendedAttributes.m */,
+ 32A70AAB03705E1F00C91783 /* SkimNotesAgent_Prefix.pch */,
+ 08FB7796FE84155DC02AAC07 /* SkimNotesAgent.m */,
+ );
+ name = Source;
+ sourceTree = "<group>";
+ };
+ 08FB779DFE84155DC02AAC07 /* External Frameworks and Libraries */ = {
+ isa = PBXGroup;
+ children = (
+ F92BA4C80BCAF96A008D5BC3 /* libbz2.dylib */,
+ 08FB779EFE84155DC02AAC07 /* Foundation.framework */,
+ );
+ name = "External Frameworks and Libraries";
+ sourceTree = "<group>";
+ };
+ 1AB674ADFE9D54B511CA2CBB /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ 8DD76FA10486AA7600D96B5E /* SkimNotesAgent */,
+ );
+ name = Products;
+ sourceTree = "<group>";
+ };
+ C6859EA2029092E104C91782 /* Documentation */ = {
+ isa = PBXGroup;
+ children = (
+ C6859EA3029092ED04C91782 /* SkimNotesAgent.1 */,
+ );
+ name = Documentation;
+ sourceTree = "<group>";
+ };
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+ 8DD76F960486AA7600D96B5E /* SkimNotesAgent */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 1DEB927408733DD40010E9CD /* Build configuration list for PBXNativeTarget "SkimNotesAgent" */;
+ buildPhases = (
+ 8DD76F990486AA7600D96B5E /* Sources */,
+ 8DD76F9B0486AA7600D96B5E /* Frameworks */,
+ 8DD76F9E0486AA7600D96B5E /* CopyFiles */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = SkimNotesAgent;
+ productInstallPath = "$(HOME)/bin";
+ productName = SkimNotesAgent;
+ productReference = 8DD76FA10486AA7600D96B5E /* SkimNotesAgent */;
+ productType = "com.apple.product-type.tool";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ 08FB7793FE84155DC02AAC07 /* Project object */ = {
+ isa = PBXProject;
+ buildConfigurationList = 1DEB927808733DD40010E9CD /* Build configuration list for PBXProject "SkimNotesAgent" */;
+ hasScannedForEncodings = 1;
+ mainGroup = 08FB7794FE84155DC02AAC07 /* SkimNotesAgent */;
+ projectDirPath = "";
+ projectRoot = "";
+ targets = (
+ 8DD76F960486AA7600D96B5E /* SkimNotesAgent */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXSourcesBuildPhase section */
+ 8DD76F990486AA7600D96B5E /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 8DD76F9A0486AA7600D96B5E /* SkimNotesAgent.m in Sources */,
+ F92BA40C0BCAF831008D5BC3 /* NSFileManager_ExtendedAttributes.m in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin XCBuildConfiguration section */
+ 1DEB927508733DD40010E9CD /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ COPY_PHASE_STRIP = NO;
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_ENABLE_FIX_AND_CONTINUE = YES;
+ GCC_MODEL_TUNING = G5;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_PRECOMPILE_PREFIX_HEADER = NO;
+ GCC_PREFIX_HEADER = SkimNotesAgent_Prefix.pch;
+ INSTALL_PATH = "$(HOME)/bin";
+ PRODUCT_NAME = SkimNotesAgent;
+ ZERO_LINK = YES;
+ };
+ name = Debug;
+ };
+ 1DEB927608733DD40010E9CD /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ARCHS = (
+ ppc,
+ i386,
+ );
+ GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+ GCC_MODEL_TUNING = G5;
+ GCC_PRECOMPILE_PREFIX_HEADER = NO;
+ GCC_PREFIX_HEADER = SkimNotesAgent_Prefix.pch;
+ INSTALL_PATH = "$(HOME)/bin";
+ PRODUCT_NAME = SkimNotesAgent;
+ };
+ name = Release;
+ };
+ 1DEB927908733DD40010E9CD /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ PREBINDING = NO;
+ SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
+ };
+ name = Debug;
+ };
+ 1DEB927A08733DD40010E9CD /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ PREBINDING = NO;
+ SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
+ };
+ name = Release;
+ };
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+ 1DEB927408733DD40010E9CD /* Build configuration list for PBXNativeTarget "SkimNotesAgent" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 1DEB927508733DD40010E9CD /* Debug */,
+ 1DEB927608733DD40010E9CD /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ 1DEB927808733DD40010E9CD /* Build configuration list for PBXProject "SkimNotesAgent" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 1DEB927908733DD40010E9CD /* Debug */,
+ 1DEB927A08733DD40010E9CD /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+/* End XCConfigurationList section */
+ };
+ rootObject = 08FB7793FE84155DC02AAC07 /* Project object */;
+}
Added: SkimNotesAgent/SkimNotesAgent_Prefix.pch
===================================================================
--- SkimNotesAgent/SkimNotesAgent_Prefix.pch (rev 0)
+++ SkimNotesAgent/SkimNotesAgent_Prefix.pch 2007-04-10 19:43:43 UTC (rev 1792)
@@ -0,0 +1,7 @@
+//
+// Prefix header for all source files of the 'TestAgent' target in the 'TestAgent' project.
+//
+
+#ifdef __OBJC__
+ #import <Foundation/Foundation.h>
+#endif
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ama...@us...> - 2007-04-10 19:43:08
|
Revision: 1791
http://skim-app.svn.sourceforge.net/skim-app/?rev=1791&view=rev
Author: amaxwell
Date: 2007-04-10 12:43:06 -0700 (Tue, 10 Apr 2007)
Log Message:
-----------
delete file
Removed Paths:
-------------
SkimNotesAgent.1
Deleted: SkimNotesAgent.1
===================================================================
--- SkimNotesAgent.1 2007-04-10 19:42:34 UTC (rev 1790)
+++ SkimNotesAgent.1 2007-04-10 19:43:06 UTC (rev 1791)
@@ -1,79 +0,0 @@
-.\"Modified from man(1) of FreeBSD, the NetBSD mdoc.template, and mdoc.samples.
-.\"See Also:
-.\"man mdoc.samples for a complete listing of options
-.\"man mdoc for the short list of editing options
-.\"/usr/share/misc/mdoc.template
-.Dd 04/09/07 \" DATE
-.Dt TestAgent 1 \" Program name and manual section number
-.Os Darwin
-.Sh NAME \" Section Header - required - don't modify
-.Nm TestAgent,
-.\" The following lines are read in generating the apropos(man -k) database. Use only key
-.\" words here as the database is built based on the words here and in the .ND line.
-.Nm Other_name_for_same_program(),
-.Nm Yet another name for the same program.
-.\" Use .Nm macro to designate other names for the documented program.
-.Nd This line parsed for whatis database.
-.Sh SYNOPSIS \" Section Header - required - don't modify
-.Nm
-.Op Fl abcd \" [-abcd]
-.Op Fl a Ar path \" [-a path]
-.Op Ar file \" [file]
-.Op Ar \" [file ...]
-.Ar arg0 \" Underlined argument - use .Ar anywhere to underline
-arg2 ... \" Arguments
-.Sh DESCRIPTION \" Section Header - required - don't modify
-Use the .Nm macro to refer to your program throughout the man page like such:
-.Nm
-Underlining is accomplished with the .Ar macro like this:
-.Ar underlined text .
-.Pp \" Inserts a space
-A list of items with descriptions:
-.Bl -tag -width -indent \" Begins a tagged list
-.It item a \" Each item preceded by .It macro
-Description of item a
-.It item b
-Description of item b
-.El \" Ends the list
-.Pp
-A list of flags and their descriptions:
-.Bl -tag -width -indent \" Differs from above in tag removed
-.It Fl a \"-a flag as a list item
-Description of -a flag
-.It Fl b
-Description of -b flag
-.El \" Ends the list
-.Pp
-.\" .Sh ENVIRONMENT \" May not be needed
-.\" .Bl -tag -width "ENV_VAR_1" -indent \" ENV_VAR_1 is width of the string ENV_VAR_1
-.\" .It Ev ENV_VAR_1
-.\" Description of ENV_VAR_1
-.\" .It Ev ENV_VAR_2
-.\" Description of ENV_VAR_2
-.\" .El
-.Sh FILES \" File used or created by the topic of the man page
-.Bl -tag -width "/Users/joeuser/Library/really_long_file_name" -compact
-.It Pa /usr/share/file_name
-FILE_1 description
-.It Pa /Users/joeuser/Library/really_long_file_name
-FILE_2 description
-.El \" Ends the list
-.\" .Sh DIAGNOSTICS \" May not be needed
-.\" .Bl -diag
-.\" .It Diagnostic Tag
-.\" Diagnostic informtion here.
-.\" .It Diagnostic Tag
-.\" Diagnostic informtion here.
-.\" .El
-.Sh SEE ALSO
-.\" List links in ascending order by section, alphabetically within a section.
-.\" Please do not reference files that do not exist without filing a bug report
-.Xr a 1 ,
-.Xr b 1 ,
-.Xr c 1 ,
-.Xr a 2 ,
-.Xr b 2 ,
-.Xr a 3 ,
-.Xr b 3
-.\" .Sh BUGS \" Document known, unremedied bugs
-.\" .Sh HISTORY \" Document history if command behaves in a unique manner
\ No newline at end of file
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ama...@us...> - 2007-04-10 19:42:36
|
Revision: 1790
http://skim-app.svn.sourceforge.net/skim-app/?rev=1790&view=rev
Author: amaxwell
Date: 2007-04-10 12:42:34 -0700 (Tue, 10 Apr 2007)
Log Message:
-----------
Delete files.
Removed Paths:
-------------
SkimAppAgent
SkimNotesAgent.h
SkimNotesAgent.m
SkimNotesAgent.xcodeproj/
SkimNotesAgent_Prefix.pch
Deleted: SkimAppAgent
===================================================================
--- SkimAppAgent 2007-04-10 19:37:35 UTC (rev 1789)
+++ SkimAppAgent 2007-04-10 19:42:34 UTC (rev 1790)
@@ -1,145 +0,0 @@
-//
-// NSFileManager_ExtendedAttributes.h
-//
-// Created by Adam R. Maxwell on 05/12/05.
-// Copyright 2005, 2006, 2007 Adam R. Maxwell. All rights reserved.
-//
-/*
-
- Redistribution and use in source and binary forms, with or without modification,
- are permitted provided that the following conditions are met:
- - Redistributions of source code must retain the above copyright notice, this
- list of conditions and the following disclaimer.
- - Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation and/or
- other materials provided with the distribution.
- - Neither the name of Adam R. Maxwell nor the names of any contributors may be
- used to endorse or promote products derived from this software without specific
- prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
- EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
- TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
- BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY
- WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#import <Cocoa/Cocoa.h>
-
-typedef UInt32 BDSKXattrFlags;
-enum {
- kBDSKXattrDefault = 0, /* create or replace, follow symlinks, split data */
- kBDSKXattrNoFollow = 1L << 1, /* don't follow symlinks */
- kBDSKXattrCreateOnly = 1L << 2, /* setting will fail if the attribute already exists */
- kBDSKXattrReplaceOnly = 1L << 3, /* setting will fail if the attribute does not exist */
- kBDSKXattrNoSplitData = 1L << 4 /* don't split data objects into segments */
-};
-
-/*!
- @category NSFileManager (ExtendedAttributes)
- @abstract Provides an Objective-C wrapper for the low-level BSD functions dealing with file attributes.
- @discussion (comprehensive description)
-*/
-@interface NSFileManager (ExtendedAttributes)
-
-/*!
- @method extendedAttributeNamesAtPath:traverseLink:
- @abstract Return a list of extended attributes for the given file.
- @discussion Calls <tt>listxattr(2)</tt> to determine all of the extended attributes, and returns them as
- an array of NSString objects. Returns nil if an error occurs.
- @param path Path to the object in the file system.
- @param follow Follow symlinks (<tt>listxattr(2)</tt> does this by default, so typically you should pass YES).
- @param error Error object describing the error if nil was returned.
- @result Array of strings or nil.
-*/
-- (NSArray *)extendedAttributeNamesAtPath:(NSString *)path traverseLink:(BOOL)follow error:(NSError **)error;
-
-/*!
- @method extendedAttributeNamed:atPath:traverseLink:error:
- @abstract Return the extended attribute named <tt>attr</tt> for a given file.
- @discussion Calls <tt>getxattr(2)</tt> to determine the extended attribute, and returns it as data.
- @param attr The attribute name.
- @param path Path to the object in the file system.
- @param follow Follow symlinks (<tt>getxattr(2)</tt> does this by default, so typically you should pass YES).
- @param error Error object describing the error if nil was returned.
- @result Data object representing the extended attribute or nil if an error occurred.
-*/
-- (NSData *)extendedAttributeNamed:(NSString *)attr atPath:(NSString *)path traverseLink:(BOOL)follow error:(NSError **)error;
-
-/*!
- @method allExtendedAttributesAtPath:traverseLink:error:
- @abstract Returns all extended attributes for the given file, each as an NSData object.
- @discussion (comprehensive description)
- @param path (description)
- @param follow (description)
- @param error (description)
- @result (description)
-*/
-- (NSArray *)allExtendedAttributesAtPath:(NSString *)path traverseLink:(BOOL)follow error:(NSError **)error;
-
-/*!
- @method propertyListFromExtendedAttributeNamed:atPath:traverseLink:error:
- @abstract Returns a property list using NSPropertyListSerialization.
- @discussion (comprehensive description)
- @param attr (description)
- @param path (description)
- @param traverse (description)
- @param outError (description)
- @result (description)
-*/
-- (id)propertyListFromExtendedAttributeNamed:(NSString *)attr atPath:(NSString *)path traverseLink:(BOOL)traverse error:(NSError **)outError;
-
-/*!
- @method setExtendedAttributeNamed:toValue:atPath:options:error:
- @abstract Sets the value of attribute named <tt>attr</tt> to <tt>value</tt>, which is an NSData object.
- @discussion Calls <tt>setxattr(2)</tt> to set the attributes for the file.
- @param attr The attribute name.
- @param value The value of the attribute as NSData.
- @param path Path to the object in the file system.
- @param options see BDSKXattrFlags
- @param error Error object describing the error if NO was returned.
- @result Returns NO if an error occurred.
-*/
-- (BOOL)setExtendedAttributeNamed:(NSString *)attr toValue:(NSData *)value atPath:(NSString *)path options:(BDSKXattrFlags)options error:(NSError **)error;
-
-/*!
- @method setExtendedAttributeNamed:toPropertyListValue:atPath:options:error:
- @abstract Sets the extended attribute named <tt>attr</tt> to the specified property list. The plist is converted to NSData using NSPropertyListSerialization.
- @discussion (comprehensive description)
- @param attr (description)
- @param plist (description)
- @param path (description)
- @param options (description)
- @param error (description)
- @result (description)
-*/
-- (BOOL)setExtendedAttributeNamed:(NSString *)attr toPropertyListValue:(id)plist atPath:(NSString *)path options:(BDSKXattrFlags)options error:(NSError **)error;
-
-/*!
- @method removeExtendedAttribute:atPath:followLinks:error:
- @abstract Removes the given attribute <tt>attr</tt> from the named file at <tt>path</tt>.
- @discussion Calls <tt>removexattr(2)</tt> to remove the given attribute from the file.
- @param attr The attribute name.
- @param path Path to the object in the file system.
- @param follow Follow symlinks (<tt>removexattr(2)</tt> does this by default, so typically you should pass YES).
- @param error Error object describing the error if nil was returned.
- @result Returns NO if an error occurred.
-*/
-- (BOOL)removeExtendedAttribute:(NSString *)attr atPath:(NSString *)path traverseLink:(BOOL)follow error:(NSError **)error;
-
-/*!
- @method removeAllExtendedAttributesAtPath:traverseLink:error:
- @abstract Removes all extended attributes at the specified path.
- @discussion (comprehensive description)
- @param path (description)
- @param follow (description)
- @param error (description)
- @result (description)
-*/
-- (BOOL)removeAllExtendedAttributesAtPath:(NSString *)path traverseLink:(BOOL)follow error:(NSError **)error;
-
-@end
Deleted: SkimNotesAgent.h
===================================================================
--- SkimNotesAgent.h 2007-04-10 19:37:35 UTC (rev 1789)
+++ SkimNotesAgent.h 2007-04-10 19:42:34 UTC (rev 1790)
@@ -1,15 +0,0 @@
-/*
- * SkimNotesAgent.h
- * SkimNotesAgent
- *
- * Created by Adam Maxwell on 04/10/07.
- * Copyright 2007 __MyCompanyName__. All rights reserved.
- *
- */
-
-@protocol ListenerProtocol
-
-- (bycopy NSData *)RTFNotesAtPath:(in bycopy NSString *)aFile;
-- (bycopy NSString *)textNotesAtPath:(in bycopy NSString *)aFile;
-
-@end
Deleted: SkimNotesAgent.m
===================================================================
--- SkimNotesAgent.m 2007-04-10 19:37:35 UTC (rev 1789)
+++ SkimNotesAgent.m 2007-04-10 19:42:34 UTC (rev 1790)
@@ -1,120 +0,0 @@
-#import <AppKit/AppKit.h>
-#import "NSFileManager_ExtendedAttributes.h"
-#import "SkimNotesAgent.h"
-
-@interface Listener : NSObject
-{
- NSConnection *_connection;
-}
-- (id)initWithServerName:(NSString *)serverName;
-- (void)_destroyConnection;
-@end
-
-@implementation Listener
-
-- (id)initWithServerName:(NSString *)serverName;
-{
- self = [super init];
- if (self) {
- _connection = [[NSConnection alloc] initWithReceivePort:[NSPort port] sendPort:nil];
- NSProtocolChecker *checker = [NSProtocolChecker protocolCheckerWithTarget:self protocol:@protocol(ListenerProtocol)];
- [_connection setRootObject:checker];
- [_connection setDelegate:self];
-
- // user can pass nil, in which case we generate a server name to be read from standard output
- if (nil == serverName)
- serverName = [[NSProcessInfo processInfo] globallyUniqueString];
-
- if ([_connection registerName:serverName] == NO) {
- NSLog(@"failed to register connection; another agent process must be running");
- [self _destroyConnection];
- [self release];
- self = nil;
- }
- NSFileHandle *fh = [NSFileHandle fileHandleWithStandardOutput];
- [fh writeData:[serverName dataUsingEncoding:NSUTF8StringEncoding]];
- }
- return self;
-}
-
-- (void)dealloc
-{
- [[NSNotificationCenter defaultCenter] removeObserver:self];
- [super dealloc];
-}
-
-- (bycopy NSData *)RTFNotesAtPath:(in bycopy NSString *)aFile;
-{
- NSError *error;
- NSData *data = [[NSFileManager defaultManager] extendedAttributeNamed:@"net_sourceforge_skim-app_rtf_notes" atPath:[aFile stringByStandardizingPath] traverseLink:YES error:&error];
- if (nil == data && [error code] != ENOATTR)
- NSLog(@"%@", error);
- return data;
-}
-
-- (bycopy NSString *)textNotesAtPath:(in bycopy NSString *)aFile;
-{
- NSError *error;
- NSString *string = nil;
- NSData *data = [[NSFileManager defaultManager] extendedAttributeNamed:@"net_sourceforge_skim-app_text_notes" atPath:[aFile stringByStandardizingPath] traverseLink:YES error:&error];
- if (nil == data && [error code] != ENOATTR)
- NSLog(@"%@", error);
- else
- string = [[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding] autorelease];
- return string;
-}
-
-- (void)_destroyConnection;
-{
- [_connection registerName:nil];
- [[_connection receivePort] invalidate];
- [[_connection sendPort] invalidate];
- [_connection invalidate];
- [_connection release];
- _connection = nil;
-}
-
-- (void)portDied:(id)obj
-{
- [self _destroyConnection];
- exit(0);
-}
-
-// first app to connect will be the owner of this instance of the program; when the connection dies, so do we
-- (BOOL)makeNewConnection:(NSConnection *)newConnection sender:(NSConnection *)parentConnection
-{
- [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(portDied:) name:NSPortDidBecomeInvalidNotification object:[newConnection sendPort]];
- return YES;
-}
-
-
-- (void)applicationWillTerminate:(NSNotification *)aNotification;
-{
- [self _destroyConnection];
-}
-
-@end
-
-int main (int argc, const char * argv[]) {
- NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
-
- NSArray *args = [[NSProcessInfo processInfo] arguments];
- NSString *serverName = [args count] > 1 ? [args lastObject] : nil;
- Listener *listener = [[Listener alloc] initWithServerName:serverName];
-
- NSRunLoop *rl = [NSRunLoop currentRunLoop];
- BOOL didRun;
- NSDate *distantFuture = [NSDate distantFuture];
- NSAutoreleasePool *__pool = [NSAutoreleasePool new];
-
- do {
- [__pool release];
- __pool = [NSAutoreleasePool new];
- didRun = [rl runMode:NSDefaultRunLoopMode beforeDate:distantFuture];
- } while (listener && didRun);
- [__pool release];
-
- [listener release];
- [pool release];
- return 0;
-}
Deleted: SkimNotesAgent_Prefix.pch
===================================================================
--- SkimNotesAgent_Prefix.pch 2007-04-10 19:37:35 UTC (rev 1789)
+++ SkimNotesAgent_Prefix.pch 2007-04-10 19:42:34 UTC (rev 1790)
@@ -1,7 +0,0 @@
-//
-// Prefix header for all source files of the 'TestAgent' target in the 'TestAgent' project.
-//
-
-#ifdef __OBJC__
- #import <Foundation/Foundation.h>
-#endif
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ama...@us...> - 2007-04-10 19:37:36
|
Revision: 1789
http://skim-app.svn.sourceforge.net/skim-app/?rev=1789&view=rev
Author: amaxwell
Date: 2007-04-10 12:37:35 -0700 (Tue, 10 Apr 2007)
Log Message:
-----------
copy filemanager category to agent
Added Paths:
-----------
SkimAppAgent
Copied: SkimAppAgent (from rev 1788, trunk/NSFileManager_ExtendedAttributes.h)
===================================================================
--- SkimAppAgent (rev 0)
+++ SkimAppAgent 2007-04-10 19:37:35 UTC (rev 1789)
@@ -0,0 +1,145 @@
+//
+// NSFileManager_ExtendedAttributes.h
+//
+// Created by Adam R. Maxwell on 05/12/05.
+// Copyright 2005, 2006, 2007 Adam R. Maxwell. All rights reserved.
+//
+/*
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+ - Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ - Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation and/or
+ other materials provided with the distribution.
+ - Neither the name of Adam R. Maxwell nor the names of any contributors may be
+ used to endorse or promote products derived from this software without specific
+ prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
+ EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+ TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY
+ WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import <Cocoa/Cocoa.h>
+
+typedef UInt32 BDSKXattrFlags;
+enum {
+ kBDSKXattrDefault = 0, /* create or replace, follow symlinks, split data */
+ kBDSKXattrNoFollow = 1L << 1, /* don't follow symlinks */
+ kBDSKXattrCreateOnly = 1L << 2, /* setting will fail if the attribute already exists */
+ kBDSKXattrReplaceOnly = 1L << 3, /* setting will fail if the attribute does not exist */
+ kBDSKXattrNoSplitData = 1L << 4 /* don't split data objects into segments */
+};
+
+/*!
+ @category NSFileManager (ExtendedAttributes)
+ @abstract Provides an Objective-C wrapper for the low-level BSD functions dealing with file attributes.
+ @discussion (comprehensive description)
+*/
+@interface NSFileManager (ExtendedAttributes)
+
+/*!
+ @method extendedAttributeNamesAtPath:traverseLink:
+ @abstract Return a list of extended attributes for the given file.
+ @discussion Calls <tt>listxattr(2)</tt> to determine all of the extended attributes, and returns them as
+ an array of NSString objects. Returns nil if an error occurs.
+ @param path Path to the object in the file system.
+ @param follow Follow symlinks (<tt>listxattr(2)</tt> does this by default, so typically you should pass YES).
+ @param error Error object describing the error if nil was returned.
+ @result Array of strings or nil.
+*/
+- (NSArray *)extendedAttributeNamesAtPath:(NSString *)path traverseLink:(BOOL)follow error:(NSError **)error;
+
+/*!
+ @method extendedAttributeNamed:atPath:traverseLink:error:
+ @abstract Return the extended attribute named <tt>attr</tt> for a given file.
+ @discussion Calls <tt>getxattr(2)</tt> to determine the extended attribute, and returns it as data.
+ @param attr The attribute name.
+ @param path Path to the object in the file system.
+ @param follow Follow symlinks (<tt>getxattr(2)</tt> does this by default, so typically you should pass YES).
+ @param error Error object describing the error if nil was returned.
+ @result Data object representing the extended attribute or nil if an error occurred.
+*/
+- (NSData *)extendedAttributeNamed:(NSString *)attr atPath:(NSString *)path traverseLink:(BOOL)follow error:(NSError **)error;
+
+/*!
+ @method allExtendedAttributesAtPath:traverseLink:error:
+ @abstract Returns all extended attributes for the given file, each as an NSData object.
+ @discussion (comprehensive description)
+ @param path (description)
+ @param follow (description)
+ @param error (description)
+ @result (description)
+*/
+- (NSArray *)allExtendedAttributesAtPath:(NSString *)path traverseLink:(BOOL)follow error:(NSError **)error;
+
+/*!
+ @method propertyListFromExtendedAttributeNamed:atPath:traverseLink:error:
+ @abstract Returns a property list using NSPropertyListSerialization.
+ @discussion (comprehensive description)
+ @param attr (description)
+ @param path (description)
+ @param traverse (description)
+ @param outError (description)
+ @result (description)
+*/
+- (id)propertyListFromExtendedAttributeNamed:(NSString *)attr atPath:(NSString *)path traverseLink:(BOOL)traverse error:(NSError **)outError;
+
+/*!
+ @method setExtendedAttributeNamed:toValue:atPath:options:error:
+ @abstract Sets the value of attribute named <tt>attr</tt> to <tt>value</tt>, which is an NSData object.
+ @discussion Calls <tt>setxattr(2)</tt> to set the attributes for the file.
+ @param attr The attribute name.
+ @param value The value of the attribute as NSData.
+ @param path Path to the object in the file system.
+ @param options see BDSKXattrFlags
+ @param error Error object describing the error if NO was returned.
+ @result Returns NO if an error occurred.
+*/
+- (BOOL)setExtendedAttributeNamed:(NSString *)attr toValue:(NSData *)value atPath:(NSString *)path options:(BDSKXattrFlags)options error:(NSError **)error;
+
+/*!
+ @method setExtendedAttributeNamed:toPropertyListValue:atPath:options:error:
+ @abstract Sets the extended attribute named <tt>attr</tt> to the specified property list. The plist is converted to NSData using NSPropertyListSerialization.
+ @discussion (comprehensive description)
+ @param attr (description)
+ @param plist (description)
+ @param path (description)
+ @param options (description)
+ @param error (description)
+ @result (description)
+*/
+- (BOOL)setExtendedAttributeNamed:(NSString *)attr toPropertyListValue:(id)plist atPath:(NSString *)path options:(BDSKXattrFlags)options error:(NSError **)error;
+
+/*!
+ @method removeExtendedAttribute:atPath:followLinks:error:
+ @abstract Removes the given attribute <tt>attr</tt> from the named file at <tt>path</tt>.
+ @discussion Calls <tt>removexattr(2)</tt> to remove the given attribute from the file.
+ @param attr The attribute name.
+ @param path Path to the object in the file system.
+ @param follow Follow symlinks (<tt>removexattr(2)</tt> does this by default, so typically you should pass YES).
+ @param error Error object describing the error if nil was returned.
+ @result Returns NO if an error occurred.
+*/
+- (BOOL)removeExtendedAttribute:(NSString *)attr atPath:(NSString *)path traverseLink:(BOOL)follow error:(NSError **)error;
+
+/*!
+ @method removeAllExtendedAttributesAtPath:traverseLink:error:
+ @abstract Removes all extended attributes at the specified path.
+ @discussion (comprehensive description)
+ @param path (description)
+ @param follow (description)
+ @param error (description)
+ @result (description)
+*/
+- (BOOL)removeAllExtendedAttributesAtPath:(NSString *)path traverseLink:(BOOL)follow error:(NSError **)error;
+
+@end
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ama...@us...> - 2007-04-10 19:35:14
|
Revision: 1788
http://skim-app.svn.sourceforge.net/skim-app/?rev=1788&view=rev
Author: amaxwell
Date: 2007-04-10 12:35:12 -0700 (Tue, 10 Apr 2007)
Log Message:
-----------
Import background agent for reading Skim notes.
Added Paths:
-----------
SkimNotesAgent.1
SkimNotesAgent.h
SkimNotesAgent.m
SkimNotesAgent.xcodeproj/
SkimNotesAgent.xcodeproj/amaxwell.mode1v3
SkimNotesAgent.xcodeproj/project.pbxproj
SkimNotesAgent_Prefix.pch
Added: SkimNotesAgent.1
===================================================================
--- SkimNotesAgent.1 (rev 0)
+++ SkimNotesAgent.1 2007-04-10 19:35:12 UTC (rev 1788)
@@ -0,0 +1,79 @@
+.\"Modified from man(1) of FreeBSD, the NetBSD mdoc.template, and mdoc.samples.
+.\"See Also:
+.\"man mdoc.samples for a complete listing of options
+.\"man mdoc for the short list of editing options
+.\"/usr/share/misc/mdoc.template
+.Dd 04/09/07 \" DATE
+.Dt TestAgent 1 \" Program name and manual section number
+.Os Darwin
+.Sh NAME \" Section Header - required - don't modify
+.Nm TestAgent,
+.\" The following lines are read in generating the apropos(man -k) database. Use only key
+.\" words here as the database is built based on the words here and in the .ND line.
+.Nm Other_name_for_same_program(),
+.Nm Yet another name for the same program.
+.\" Use .Nm macro to designate other names for the documented program.
+.Nd This line parsed for whatis database.
+.Sh SYNOPSIS \" Section Header - required - don't modify
+.Nm
+.Op Fl abcd \" [-abcd]
+.Op Fl a Ar path \" [-a path]
+.Op Ar file \" [file]
+.Op Ar \" [file ...]
+.Ar arg0 \" Underlined argument - use .Ar anywhere to underline
+arg2 ... \" Arguments
+.Sh DESCRIPTION \" Section Header - required - don't modify
+Use the .Nm macro to refer to your program throughout the man page like such:
+.Nm
+Underlining is accomplished with the .Ar macro like this:
+.Ar underlined text .
+.Pp \" Inserts a space
+A list of items with descriptions:
+.Bl -tag -width -indent \" Begins a tagged list
+.It item a \" Each item preceded by .It macro
+Description of item a
+.It item b
+Description of item b
+.El \" Ends the list
+.Pp
+A list of flags and their descriptions:
+.Bl -tag -width -indent \" Differs from above in tag removed
+.It Fl a \"-a flag as a list item
+Description of -a flag
+.It Fl b
+Description of -b flag
+.El \" Ends the list
+.Pp
+.\" .Sh ENVIRONMENT \" May not be needed
+.\" .Bl -tag -width "ENV_VAR_1" -indent \" ENV_VAR_1 is width of the string ENV_VAR_1
+.\" .It Ev ENV_VAR_1
+.\" Description of ENV_VAR_1
+.\" .It Ev ENV_VAR_2
+.\" Description of ENV_VAR_2
+.\" .El
+.Sh FILES \" File used or created by the topic of the man page
+.Bl -tag -width "/Users/joeuser/Library/really_long_file_name" -compact
+.It Pa /usr/share/file_name
+FILE_1 description
+.It Pa /Users/joeuser/Library/really_long_file_name
+FILE_2 description
+.El \" Ends the list
+.\" .Sh DIAGNOSTICS \" May not be needed
+.\" .Bl -diag
+.\" .It Diagnostic Tag
+.\" Diagnostic informtion here.
+.\" .It Diagnostic Tag
+.\" Diagnostic informtion here.
+.\" .El
+.Sh SEE ALSO
+.\" List links in ascending order by section, alphabetically within a section.
+.\" Please do not reference files that do not exist without filing a bug report
+.Xr a 1 ,
+.Xr b 1 ,
+.Xr c 1 ,
+.Xr a 2 ,
+.Xr b 2 ,
+.Xr a 3 ,
+.Xr b 3
+.\" .Sh BUGS \" Document known, unremedied bugs
+.\" .Sh HISTORY \" Document history if command behaves in a unique manner
\ No newline at end of file
Added: SkimNotesAgent.h
===================================================================
--- SkimNotesAgent.h (rev 0)
+++ SkimNotesAgent.h 2007-04-10 19:35:12 UTC (rev 1788)
@@ -0,0 +1,15 @@
+/*
+ * SkimNotesAgent.h
+ * SkimNotesAgent
+ *
+ * Created by Adam Maxwell on 04/10/07.
+ * Copyright 2007 __MyCompanyName__. All rights reserved.
+ *
+ */
+
+@protocol ListenerProtocol
+
+- (bycopy NSData *)RTFNotesAtPath:(in bycopy NSString *)aFile;
+- (bycopy NSString *)textNotesAtPath:(in bycopy NSString *)aFile;
+
+@end
Added: SkimNotesAgent.m
===================================================================
--- SkimNotesAgent.m (rev 0)
+++ SkimNotesAgent.m 2007-04-10 19:35:12 UTC (rev 1788)
@@ -0,0 +1,120 @@
+#import <AppKit/AppKit.h>
+#import "NSFileManager_ExtendedAttributes.h"
+#import "SkimNotesAgent.h"
+
+@interface Listener : NSObject
+{
+ NSConnection *_connection;
+}
+- (id)initWithServerName:(NSString *)serverName;
+- (void)_destroyConnection;
+@end
+
+@implementation Listener
+
+- (id)initWithServerName:(NSString *)serverName;
+{
+ self = [super init];
+ if (self) {
+ _connection = [[NSConnection alloc] initWithReceivePort:[NSPort port] sendPort:nil];
+ NSProtocolChecker *checker = [NSProtocolChecker protocolCheckerWithTarget:self protocol:@protocol(ListenerProtocol)];
+ [_connection setRootObject:checker];
+ [_connection setDelegate:self];
+
+ // user can pass nil, in which case we generate a server name to be read from standard output
+ if (nil == serverName)
+ serverName = [[NSProcessInfo processInfo] globallyUniqueString];
+
+ if ([_connection registerName:serverName] == NO) {
+ NSLog(@"failed to register connection; another agent process must be running");
+ [self _destroyConnection];
+ [self release];
+ self = nil;
+ }
+ NSFileHandle *fh = [NSFileHandle fileHandleWithStandardOutput];
+ [fh writeData:[serverName dataUsingEncoding:NSUTF8StringEncoding]];
+ }
+ return self;
+}
+
+- (void)dealloc
+{
+ [[NSNotificationCenter defaultCenter] removeObserver:self];
+ [super dealloc];
+}
+
+- (bycopy NSData *)RTFNotesAtPath:(in bycopy NSString *)aFile;
+{
+ NSError *error;
+ NSData *data = [[NSFileManager defaultManager] extendedAttributeNamed:@"net_sourceforge_skim-app_rtf_notes" atPath:[aFile stringByStandardizingPath] traverseLink:YES error:&error];
+ if (nil == data && [error code] != ENOATTR)
+ NSLog(@"%@", error);
+ return data;
+}
+
+- (bycopy NSString *)textNotesAtPath:(in bycopy NSString *)aFile;
+{
+ NSError *error;
+ NSString *string = nil;
+ NSData *data = [[NSFileManager defaultManager] extendedAttributeNamed:@"net_sourceforge_skim-app_text_notes" atPath:[aFile stringByStandardizingPath] traverseLink:YES error:&error];
+ if (nil == data && [error code] != ENOATTR)
+ NSLog(@"%@", error);
+ else
+ string = [[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding] autorelease];
+ return string;
+}
+
+- (void)_destroyConnection;
+{
+ [_connection registerName:nil];
+ [[_connection receivePort] invalidate];
+ [[_connection sendPort] invalidate];
+ [_connection invalidate];
+ [_connection release];
+ _connection = nil;
+}
+
+- (void)portDied:(id)obj
+{
+ [self _destroyConnection];
+ exit(0);
+}
+
+// first app to connect will be the owner of this instance of the program; when the connection dies, so do we
+- (BOOL)makeNewConnection:(NSConnection *)newConnection sender:(NSConnection *)parentConnection
+{
+ [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(portDied:) name:NSPortDidBecomeInvalidNotification object:[newConnection sendPort]];
+ return YES;
+}
+
+
+- (void)applicationWillTerminate:(NSNotification *)aNotification;
+{
+ [self _destroyConnection];
+}
+
+@end
+
+int main (int argc, const char * argv[]) {
+ NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
+
+ NSArray *args = [[NSProcessInfo processInfo] arguments];
+ NSString *serverName = [args count] > 1 ? [args lastObject] : nil;
+ Listener *listener = [[Listener alloc] initWithServerName:serverName];
+
+ NSRunLoop *rl = [NSRunLoop currentRunLoop];
+ BOOL didRun;
+ NSDate *distantFuture = [NSDate distantFuture];
+ NSAutoreleasePool *__pool = [NSAutoreleasePool new];
+
+ do {
+ [__pool release];
+ __pool = [NSAutoreleasePool new];
+ didRun = [rl runMode:NSDefaultRunLoopMode beforeDate:distantFuture];
+ } while (listener && didRun);
+ [__pool release];
+
+ [listener release];
+ [pool release];
+ return 0;
+}
Added: SkimNotesAgent.xcodeproj/amaxwell.mode1v3
===================================================================
--- SkimNotesAgent.xcodeproj/amaxwell.mode1v3 (rev 0)
+++ SkimNotesAgent.xcodeproj/amaxwell.mode1v3 2007-04-10 19:35:12 UTC (rev 1788)
@@ -0,0 +1,1372 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>ActivePerspectiveName</key>
+ <string>Project</string>
+ <key>AllowedModules</key>
+ <array>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXSmartGroupTreeModule</string>
+ <key>Name</key>
+ <string>Groups and Files Outline View</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Name</key>
+ <string>Editor</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>XCTaskListModule</string>
+ <key>Name</key>
+ <string>Task List</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>XCDetailModule</string>
+ <key>Name</key>
+ <string>File and Smart Group Detail Viewer</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>1</string>
+ <key>Module</key>
+ <string>PBXBuildResultsModule</string>
+ <key>Name</key>
+ <string>Detailed Build Results Viewer</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>1</string>
+ <key>Module</key>
+ <string>PBXProjectFindModule</string>
+ <key>Name</key>
+ <string>Project Batch Find Tool</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXBookmarksModule</string>
+ <key>Name</key>
+ <string>Bookmarks Tool</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXClassBrowserModule</string>
+ <key>Name</key>
+ <string>Class Browser</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXCVSModule</string>
+ <key>Name</key>
+ <string>Source Code Control Tool</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXDebugBreakpointsModule</string>
+ <key>Name</key>
+ <string>Debug Breakpoints Tool</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>XCDockableInspector</string>
+ <key>Name</key>
+ <string>Inspector</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXOpenQuicklyModule</string>
+ <key>Name</key>
+ <string>Open Quickly Tool</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>1</string>
+ <key>Module</key>
+ <string>PBXDebugSessionModule</string>
+ <key>Name</key>
+ <string>Debugger</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>1</string>
+ <key>Module</key>
+ <string>PBXDebugCLIModule</string>
+ <key>Name</key>
+ <string>Debug Console</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>XCSnapshotModule</string>
+ <key>Name</key>
+ <string>Snapshots Tool</string>
+ </dict>
+ </array>
+ <key>Description</key>
+ <string>DefaultDescriptionKey</string>
+ <key>DockingSystemVisible</key>
+ <false/>
+ <key>Extension</key>
+ <string>mode1v3</string>
+ <key>FavBarConfig</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>F9B57A1E0BCB3C62001FB821</string>
+ <key>XCBarModuleItemNames</key>
+ <dict/>
+ <key>XCBarModuleItems</key>
+ <array/>
+ </dict>
+ <key>FirstTimeWindowDisplayed</key>
+ <false/>
+ <key>Identifier</key>
+ <string>com.apple.perspectives.project.mode1v3</string>
+ <key>MajorVersion</key>
+ <integer>32</integer>
+ <key>MinorVersion</key>
+ <integer>1</integer>
+ <key>Name</key>
+ <string>Default</string>
+ <key>Notifications</key>
+ <array>
+ <dict>
+ <key>XCObserverAutoDisconnectKey</key>
+ <true/>
+ <key>XCObserverDefintionKey</key>
+ <dict/>
+ <key>XCObserverFactoryKey</key>
+ <string>XCPerspectivesSpecificationIdentifier</string>
+ <key>XCObserverGUIDKey</key>
+ <string>XCObserverProjectIdentifier</string>
+ <key>XCObserverNotificationKey</key>
+ <string>PBXStatusBuildStateMessageNotification</string>
+ <key>XCObserverTargetKey</key>
+ <string>XCMainBuildResultsModuleGUID</string>
+ <key>XCObserverTriggerKey</key>
+ <string>awakenModuleWithObserver:</string>
+ <key>XCObserverValidationKey</key>
+ <dict/>
+ </dict>
+ </array>
+ <key>OpenEditors</key>
+ <array>
+ <dict>
+ <key>Content</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>F9B57A2E0BCB3E11001FB821</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>SkimNotesAgent.m</string>
+ <key>PBXSplitModuleInNavigatorKey</key>
+ <dict>
+ <key>Split0</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>F9B57A2F0BCB3E11001FB821</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>SkimNotesAgent.m</string>
+ <key>_historyCapacity</key>
+ <integer>0</integer>
+ <key>bookmark</key>
+ <string>F9B57A690BCB4576001FB821</string>
+ <key>history</key>
+ <array>
+ <string>F9B57A4D0BCB40B6001FB821</string>
+ </array>
+ </dict>
+ <key>SplitCount</key>
+ <string>1</string>
+ </dict>
+ <key>StatusBarVisibility</key>
+ <true/>
+ </dict>
+ <key>Geometry</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 20}, {839, 659}}</string>
+ <key>PBXModuleWindowStatusBarHidden2</key>
+ <false/>
+ <key>RubberWindowFrame</key>
+ <string>359 132 839 700 0 0 1280 832 </string>
+ </dict>
+ </dict>
+ </array>
+ <key>PerspectiveWidths</key>
+ <array>
+ <integer>-1</integer>
+ <integer>-1</integer>
+ </array>
+ <key>Perspectives</key>
+ <array>
+ <dict>
+ <key>ChosenToolbarItems</key>
+ <array>
+ <string>active-target-popup</string>
+ <string>action</string>
+ <string>NSToolbarFlexibleSpaceItem</string>
+ <string>buildOrClean</string>
+ <string>build-and-goOrGo</string>
+ <string>com.apple.ide.PBXToolbarStopButton</string>
+ <string>get-info</string>
+ <string>toggle-editor</string>
+ <string>NSToolbarFlexibleSpaceItem</string>
+ <string>com.apple.pbx.toolbar.searchfield</string>
+ </array>
+ <key>ControllerClassBaseName</key>
+ <string></string>
+ <key>IconName</key>
+ <string>WindowOfProjectWithEditor</string>
+ <key>Identifier</key>
+ <string>perspective.project</string>
+ <key>IsVertical</key>
+ <false/>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXBottomSmartGroupGIDs</key>
+ <array>
+ <string>1C37FBAC04509CD000000102</string>
+ <string>1C37FAAC04509CD000000102</string>
+ <string>1C08E77C0454961000C914BD</string>
+ <string>1C37FABC05509CD000000102</string>
+ <string>1C37FABC05539CD112110102</string>
+ <string>E2644B35053B69B200211256</string>
+ <string>1C37FABC04509CD000100104</string>
+ <string>1CC0EA4004350EF90044410B</string>
+ <string>1CC0EA4004350EF90041110B</string>
+ </array>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CE0B1FE06471DED0097A5F4</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Files</string>
+ <key>PBXProjectStructureProvided</key>
+ <string>yes</string>
+ <key>PBXSmartGroupTreeModuleColumnData</key>
+ <dict>
+ <key>PBXSmartGroupTreeModuleColumnWidthsKey</key>
+ <array>
+ <real>186</real>
+ </array>
+ <key>PBXSmartGroupTreeModuleColumnsKey_v4</key>
+ <array>
+ <string>MainColumn</string>
+ </array>
+ </dict>
+ <key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key>
+ <dict>
+ <key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key>
+ <array>
+ <string>08FB7794FE84155DC02AAC07</string>
+ <string>1C37FABC05509CD000000102</string>
+ </array>
+ <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
+ <array>
+ <array>
+ <integer>0</integer>
+ </array>
+ </array>
+ <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
+ <string>{{0, 0}, {186, 338}}</string>
+ </dict>
+ <key>PBXTopSmartGroupGIDs</key>
+ <array/>
+ <key>XCIncludePerspectivesSwitch</key>
+ <true/>
+ <key>XCSharingToken</key>
+ <string>com.apple.Xcode.GFSharingToken</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {203, 356}}</string>
+ <key>GroupTreeTableConfiguration</key>
+ <array>
+ <string>MainColumn</string>
+ <real>186</real>
+ </array>
+ <key>RubberWindowFrame</key>
+ <string>547 435 690 397 0 0 1280 832 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXSmartGroupTreeModule</string>
+ <key>Proportion</key>
+ <string>203pt</string>
+ </dict>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CE0B20306471E060097A5F4</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>MyNewFile14.java</string>
+ <key>PBXSplitModuleInNavigatorKey</key>
+ <dict>
+ <key>Split0</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CE0B20406471E060097A5F4</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>MyNewFile14.java</string>
+ </dict>
+ <key>SplitCount</key>
+ <string>1</string>
+ </dict>
+ <key>StatusBarVisibility</key>
+ <true/>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {482, 0}}</string>
+ <key>RubberWindowFrame</key>
+ <string>547 435 690 397 0 0 1280 832 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Proportion</key>
+ <string>0pt</string>
+ </dict>
+ <dict>
+ <key>BecomeActive</key>
+ <true/>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CE0B20506471E060097A5F4</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Detail</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 5}, {482, 351}}</string>
+ <key>RubberWindowFrame</key>
+ <string>547 435 690 397 0 0 1280 832 </string>
+ </dict>
+ <key>Module</key>
+ <string>XCDetailModule</string>
+ <key>Proportion</key>
+ <string>351pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>482pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Project</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>XCModuleDock</string>
+ <string>PBXSmartGroupTreeModule</string>
+ <string>XCModuleDock</string>
+ <string>PBXNavigatorGroup</string>
+ <string>XCDetailModule</string>
+ </array>
+ <key>TableOfContents</key>
+ <array>
+ <string>F9B57A2C0BCB3E11001FB821</string>
+ <string>1CE0B1FE06471DED0097A5F4</string>
+ <string>F9B57A2D0BCB3E11001FB821</string>
+ <string>1CE0B20306471E060097A5F4</string>
+ <string>1CE0B20506471E060097A5F4</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.defaultV3</string>
+ </dict>
+ <dict>
+ <key>ControllerClassBaseName</key>
+ <string></string>
+ <key>IconName</key>
+ <string>WindowOfProject</string>
+ <key>Identifier</key>
+ <string>perspective.morph</string>
+ <key>IsVertical</key>
+ <integer>0</integer>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXBottomSmartGroupGIDs</key>
+ <array>
+ <string>1C37FBAC04509CD000000102</string>
+ <string>1C37FAAC04509CD000000102</string>
+ <string>1C08E77C0454961000C914BD</string>
+ <string>1C37FABC05509CD000000102</string>
+ <string>1C37FABC05539CD112110102</string>
+ <string>E2644B35053B69B200211256</string>
+ <string>1C37FABC04509CD000100104</string>
+ <string>1CC0EA4004350EF90044410B</string>
+ <string>1CC0EA4004350EF90041110B</string>
+ </array>
+ <key>PBXProjectModuleGUID</key>
+ <string>11E0B1FE06471DED0097A5F4</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Files</string>
+ <key>PBXProjectStructureProvided</key>
+ <string>yes</string>
+ <key>PBXSmartGroupTreeModuleColumnData</key>
+ <dict>
+ <key>PBXSmartGroupTreeModuleColumnWidthsKey</key>
+ <array>
+ <real>186</real>
+ </array>
+ <key>PBXSmartGroupTreeModuleColumnsKey_v4</key>
+ <array>
+ <string>MainColumn</string>
+ </array>
+ </dict>
+ <key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key>
+ <dict>
+ <key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key>
+ <array>
+ <string>29B97314FDCFA39411CA2CEA</string>
+ <string>1C37FABC05509CD000000102</string>
+ </array>
+ <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
+ <array>
+ <array>
+ <integer>0</integer>
+ </array>
+ </array>
+ <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
+ <string>{{0, 0}, {186, 337}}</string>
+ </dict>
+ <key>PBXTopSmartGroupGIDs</key>
+ <array/>
+ <key>XCIncludePerspectivesSwitch</key>
+ <integer>1</integer>
+ <key>XCSharingToken</key>
+ <string>com.apple.Xcode.GFSharingToken</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {203, 355}}</string>
+ <key>GroupTreeTableConfiguration</key>
+ <array>
+ <string>MainColumn</string>
+ <real>186</real>
+ </array>
+ <key>RubberWindowFrame</key>
+ <string>373 269 690 397 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXSmartGroupTreeModule</string>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Morph</string>
+ <key>PreferredWidth</key>
+ <integer>300</integer>
+ <key>ServiceClasses</key>
+ <array>
+ <string>XCModuleDock</string>
+ <string>PBXSmartGroupTreeModule</string>
+ </array>
+ <key>TableOfContents</key>
+ <array>
+ <string>11E0B1FE06471DED0097A5F4</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.default.shortV3</string>
+ </dict>
+ </array>
+ <key>PerspectivesBarVisible</key>
+ <false/>
+ <key>ShelfIsVisible</key>
+ <false/>
+ <key>SourceDescription</key>
+ <string>file at '/System/Library/PrivateFrameworks/DevToolsInterface.framework/Resources/XCPerspectivesSpecificationMode1.xcperspec'</string>
+ <key>StatusbarIsVisible</key>
+ <true/>
+ <key>TimeStamp</key>
+ <real>197870966.10195199</real>
+ <key>ToolbarDisplayMode</key>
+ <integer>1</integer>
+ <key>ToolbarIsVisible</key>
+ <true/>
+ <key>ToolbarSizeMode</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>Perspectives</string>
+ <key>UpdateMessage</key>
+ <string>The Default Workspace in this version of Xcode now includes support to hide and show the detail view (what has been referred to as the "Metro-Morph" feature). You must discard your current Default Workspace settings and update to the latest Default Workspace in order to gain this feature. Do you wish to update to the latest Workspace defaults for project '%@'?</string>
+ <key>WindowJustification</key>
+ <integer>5</integer>
+ <key>WindowOrderList</key>
+ <array>
+ <string>/Volumes/Local/Users/amaxwell/Desktop/SkimNotesAgent/SkimNotesAgent.xcodeproj</string>
+ <string>F9B57A2E0BCB3E11001FB821</string>
+ <string>F9B57A310BCB3E11001FB821</string>
+ </array>
+ <key>WindowString</key>
+ <string>547 435 690 397 0 0 1280 832 </string>
+ <key>WindowToolsV3</key>
+ <array>
+ <dict>
+ <key>FirstTimeWindowDisplayed</key>
+ <false/>
+ <key>Identifier</key>
+ <string>windowTool.build</string>
+ <key>IsVertical</key>
+ <true/>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CD0528F0623707200166675</string>
+ <key>PBXProjectModuleLabel</key>
+ <string></string>
+ <key>StatusBarVisibility</key>
+ <true/>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {500, 218}}</string>
+ <key>RubberWindowFrame</key>
+ <string>731 40 500 500 0 0 1280 832 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Proportion</key>
+ <string>218pt</string>
+ </dict>
+ <dict>
+ <key>BecomeActive</key>
+ <true/>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>XCMainBuildResultsModuleGUID</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Build</string>
+ <key>XCBuildResultsTrigger_Collapse</key>
+ <integer>1021</integer>
+ <key>XCBuildResultsTrigger_Open</key>
+ <integer>1010</integer>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 223}, {500, 236}}</string>
+ <key>RubberWindowFrame</key>
+ <string>731 40 500 500 0 0 1280 832 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXBuildResultsModule</string>
+ <key>Proportion</key>
+ <string>236pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>459pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Build Results</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXBuildResultsModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <true/>
+ <key>TableOfContents</key>
+ <array>
+ <string>F9B57A310BCB3E11001FB821</string>
+ <string>F9B57A320BCB3E11001FB821</string>
+ <string>1CD0528F0623707200166675</string>
+ <string>XCMainBuildResultsModuleGUID</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.buildV3</string>
+ <key>WindowString</key>
+ <string>731 40 500 500 0 0 1280 832 </string>
+ <key>WindowToolGUID</key>
+ <string>F9B57A310BCB3E11001FB821</string>
+ <key>WindowToolIsVisible</key>
+ <true/>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.debugger</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>Debugger</key>
+ <dict>
+ <key>HorizontalSplitView</key>
+ <dict>
+ <key>_collapsingFrameDimension</key>
+ <real>0.0</real>
+ <key>_indexOfCollapsedView</key>
+ <integer>0</integer>
+ <key>_percentageOfCollapsedView</key>
+ <real>0.0</real>
+ <key>isCollapsed</key>
+ <string>yes</string>
+ <key>sizes</key>
+ <array>
+ <string>{{0, 0}, {317, 164}}</string>
+ <string>{{317, 0}, {377, 164}}</string>
+ </array>
+ </dict>
+ <key>VerticalSplitView</key>
+ <dict>
+ <key>_collapsingFrameDimension</key>
+ <real>0.0</real>
+ <key>_indexOfCollapsedView</key>
+ <integer>0</integer>
+ <key>_percentageOfCollapsedView</key>
+ <real>0.0</real>
+ <key>isCollapsed</key>
+ <string>yes</string>
+ <key>sizes</key>
+ <array>
+ <string>{{0, 0}, {694, 164}}</string>
+ <string>{{0, 164}, {694, 216}}</string>
+ </array>
+ </dict>
+ </dict>
+ <key>LauncherConfigVersion</key>
+ <string>8</string>
+ <key>PBXProjectModuleGUID</key>
+ <string>1C162984064C10D400B95A72</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Debug - GLUTExamples (Underwater)</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>DebugConsoleDrawerSize</key>
+ <string>{100, 120}</string>
+ <key>DebugConsoleVisible</key>
+ <string>None</string>
+ <key>DebugConsoleWindowFrame</key>
+ <string>{{200, 200}, {500, 300}}</string>
+ <key>DebugSTDIOWindowFrame</key>
+ <string>{{200, 200}, {500, 300}}</string>
+ <key>Frame</key>
+ <string>{{0, 0}, {694, 380}}</string>
+ <key>RubberWindowFrame</key>
+ <string>321 238 694 422 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXDebugSessionModule</string>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Debugger</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXDebugSessionModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>1</integer>
+ <key>TableOfContents</key>
+ <array>
+ <string>1CD10A99069EF8BA00B06720</string>
+ <string>1C0AD2AB069F1E9B00FABCE6</string>
+ <string>1C162984064C10D400B95A72</string>
+ <string>1C0AD2AC069F1E9B00FABCE6</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.debugV3</string>
+ <key>WindowString</key>
+ <string>321 238 694 422 0 0 1440 878 </string>
+ <key>WindowToolGUID</key>
+ <string>1CD10A99069EF8BA00B06720</string>
+ <key>WindowToolIsVisible</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.find</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CDD528C0622207200134675</string>
+ <key>PBXProjectModuleLabel</key>
+ <string><No Editor></string>
+ <key>PBXSplitModuleInNavigatorKey</key>
+ <dict>
+ <key>Split0</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CD0528D0623707200166675</string>
+ </dict>
+ <key>SplitCount</key>
+ <string>1</string>
+ </dict>
+ <key>StatusBarVisibility</key>
+ <integer>1</integer>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {781, 167}}</string>
+ <key>RubberWindowFrame</key>
+ <string>62 385 781 470 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Proportion</key>
+ <string>781pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>50%</string>
+ </dict>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CD0528E0623707200166675</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Project Find</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{8, 0}, {773, 254}}</string>
+ <key>RubberWindowFrame</key>
+ <string>62 385 781 470 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXProjectFindModule</string>
+ <key>Proportion</key>
+ <string>50%</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>428pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Project Find</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXProjectFindModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>1</integer>
+ <key>TableOfContents</key>
+ <array>
+ <string>1C530D57069F1CE1000CFCEE</string>
+ <string>1C530D58069F1CE1000CFCEE</string>
+ <string>1C530D59069F1CE1000CFCEE</string>
+ <string>1CDD528C0622207200134675</string>
+ <string>1C530D5A069F1CE1000CFCEE</string>
+ <string>1CE0B1FE06471DED0097A5F4</string>
+ <string>1CD0528E0623707200166675</string>
+ </array>
+ <key>WindowString</key>
+ <string>62 385 781 470 0 0 1440 878 </string>
+ <key>WindowToolGUID</key>
+ <string>1C530D57069F1CE1000CFCEE</string>
+ <key>WindowToolIsVisible</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>MENUSEPARATOR</string>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.debuggerConsole</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1C78EAAC065D492600B07095</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Debugger Console</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {650, 250}}</string>
+ <key>RubberWindowFrame</key>
+ <string>650 41 650 250 0 0 1280 1002 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXDebugCLIModule</string>
+ <key>Proportion</key>
+ <string>358pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>358pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Debugger Console</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXDebugCLIModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>1</integer>
+ <key>TableOfContents</key>
+ <array>
+ <string>1C78EAAD065D492600B07095</string>
+ <string>1C78EAAE065D492600B07095</string>
+ <string>1C78EAAC065D492600B07095</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.consoleV3</string>
+ <key>WindowString</key>
+ <string>650 41 650 250 0 0 1280 1002 </string>
+ <key>WindowToolGUID</key>
+ <string>1C78EAAD065D492600B07095</string>
+ <key>WindowToolIsVisible</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.snapshots</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>Module</key>
+ <string>XCSnapshotModule</string>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Snapshots</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>XCSnapshotModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <string>Yes</string>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.snapshots</string>
+ <key>WindowString</key>
+ <string>315 824 300 550 0 0 1440 878 </string>
+ <key>WindowToolIsVisible</key>
+ <string>Yes</string>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.scm</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1C78EAB2065D492600B07095</string>
+ <key>PBXProjectModuleLabel</key>
+ <string><No Editor></string>
+ <key>PBXSplitModuleInNavigatorKey</key>
+ <dict>
+ <key>Split0</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1C78EAB3065D492600B07095</string>
+ </dict>
+ <key>SplitCount</key>
+ <string>1</string>
+ </dict>
+ <key>StatusBarVisibility</key>
+ <integer>1</integer>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {452, 0}}</string>
+ <key>RubberWindowFrame</key>
+ <string>743 379 452 308 0 0 1280 1002 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Proportion</key>
+ <string>0pt</string>
+ </dict>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CD052920623707200166675</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>SCM</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>ConsoleFrame</key>
+ <string>{{0, 259}, {452, 0}}</string>
+ <key>Frame</key>
+ <string>{{0, 7}, {452, 259}}</string>
+ <key>RubberWindowFrame</key>
+ <string>743 379 452 308 0 0 1280 1002 </string>
+ <key>TableConfiguration</key>
+ <array>
+ <string>Status</string>
+ <real>30</real>
+ <string>FileName</string>
+ <real>199</real>
+ <string>Path</string>
+ <real>197.09500122070312</real>
+ </array>
+ <key>TableFrame</key>
+ <string>{{0, 0}, {452, 250}}</string>
+ </dict>
+ <key>Module</key>
+ <string>PBXCVSModule</string>
+ <key>Proportion</key>
+ <string>262pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>266pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>SCM</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXCVSModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>1</integer>
+ <key>TableOfContents</key>
+ <array>
+ <string>1C78EAB4065D492600B07095</string>
+ <string>1C78EAB5065D492600B07095</string>
+ <string>1C78EAB2065D492600B07095</string>
+ <string>1CD052920623707200166675</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.scm</string>
+ <key>WindowString</key>
+ <string>743 379 452 308 0 0 1280 1002 </string>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.breakpoints</string>
+ <key>IsVertical</key>
+ <integer>0</integer>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXBottomSmartGroupGIDs</key>
+ <array>
+ <string>1C77FABC04509CD000000102</string>
+ </array>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CE0B1FE06471DED0097A5F4</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Files</string>
+ <key>PBXProjectStructureProvided</key>
+ <string>no</string>
+ <key>PBXSmartGroupTreeModuleColumnData</key>
+ <dict>
+ <key>PBXSmartGroupTreeModuleColumnWidthsKey</key>
+ <array>
+ <real>168</real>
+ </array>
+ <key>PBXSmartGroupTreeModuleColumnsKey_v4</key>
+ <array>
+ <string>MainColumn</string>
+ </array>
+ </dict>
+ <key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key>
+ <dict>
+ <key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key>
+ <array>
+ <string>1C77FABC04509CD000000102</string>
+ </array>
+ <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
+ <array>
+ <array>
+ <integer>0</integer>
+ </array>
+ </array>
+ <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
+ <string>{{0, 0}, {168, 350}}</string>
+ </dict>
+ <key>PBXTopSmartGroupGIDs</key>
+ <array/>
+ <key>XCIncludePerspectivesSwitch</key>
+ <integer>0</integer>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {185, 368}}</string>
+ <key>GroupTreeTableConfiguration</key>
+ <array>
+ <string>MainColumn</string>
+ <real>168</real>
+ </array>
+ <key>RubberWindowFrame</key>
+ <string>315 424 744 409 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXSmartGroupTreeModule</string>
+ <key>Proportion</key>
+ <string>185pt</string>
+ </dict>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CA1AED706398EBD00589147</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Detail</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{190, 0}, {554, 368}}</string>
+ <key>RubberWindowFrame</key>
+ <string>315 424 744 409 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>XCDetailModule</string>
+ <key>Proportion</key>
+ <string>554pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>368pt</string>
+ </dict>
+ </array>
+ <key>MajorVersion</key>
+ <integer>3</integer>
+ <key>MinorVersion</key>
+ <integer>0</integer>
+ <key>Name</key>
+ <string>Breakpoints</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXSmartGroupTreeModule</string>
+ <string>XCDetailModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>1</integer>
+ <key>TableOfContents</key>
+ <array>
+ <string>1CDDB66807F98D9800BB5817</string>
+ <string>1CDDB66907F98D9800BB5817</string>
+ <string>1CE0B1FE06471DED0097A5F4</string>
+ <string>1CA1AED706398EBD00589147</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.breakpointsV3</string>
+ <key>WindowString</key>
+ <string>315 424 744 409 0 0 1440 878 </string>
+ <key>WindowToolGUID</key>
+ <string>1CDDB66807F98D9800BB5817</string>
+ <key>WindowToolIsVisible</key>
+ <integer>1</integer>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.debugAnimator</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Debug Visualizer</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXNavigatorGroup</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>1</integer>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.debugAnimatorV3</string>
+ <key>WindowString</key>
+ <string>100 100 700 500 0 0 1280 1002 </string>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.bookmarks</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>Module</key>
+ <string>PBXBookmarksModule</string>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Bookmarks</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXBookmarksModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>0</integer>
+ <key>WindowString</key>
+ <string>538 42 401 187 0 0 1280 1002 </string>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.classBrowser</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>OptionsSetName</key>
+ <string>Hierarchy, all classes</string>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CA6456E063B45B4001379D8</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Class Browser - NSObject</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>ClassesFrame</key>
+ <string>{{0, 0}, {374, 96}}</string>
+ <key>ClassesTreeTableConfiguration</key>
+ <array>
+ <string>PBXClassNameColumnIdentifier</string>
+ <real>208</real>
+ <string>PBXClassBookColumnIdentifier</string>
+ <real>22</real>
+ </array>
+ <key>Frame</key>
+ <string>{{0, 0}, {630, 331}}</string>
+ <key>MembersFrame</key>
+ <string>{{0, 105}, {374, 395}}</string>
+ <key>MembersTreeTableConfiguration</key>
+ <array>
+ <string>PBXMemberTypeIconColumnIdentifier</string>
+ <real>22</real>
+ <string>PBXMemberNameColumnIdentifier</string>
+ <real>216</real>
+ <string>PBXMemberTypeColumnIdentifier</string>
+ <real>97</real>
+ <string>PBXMemberBookColumnIdentifier</string>
+ <real>22</real>
+ </array>
+ <key>PBXModuleWindowStatusBarHidden2</key>
+ <integer>1</integer>
+ <key>RubberWindowFrame</key>
+ <string>385 179 630 352 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXClassBrowserModule</string>
+ <key>Proportion</key>
+ <string>332pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>332pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Class Browser</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXClassBrowserModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>0</integer>
+ <key>TableOfContents</key>
+ <array>
+ <string>1C0AD2AF069F1E9B00FABCE6</string>
+ <string>1C0AD2B0069F1E9B00FABCE6</string>
+ <string>1CA6456E063B45B4001379D8</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.classbrowser</string>
+ <key>WindowString</key>
+ <string>385 179 630 352 0 0 1440 878 </string>
+ <key>WindowToolGUID</key>
+ <string>1C0AD2AF069F1E9B00FABCE6</string>
+ <key>WindowToolIsVisible</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.refactoring</string>
+ <key>IncludeInToolsMenu</key>
+ <integer>0</integer>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{0, 0}, {500, 335}</string>
+ <key>RubberWindowFrame</key>
+ <string>{0, 0}, {500, 335}</string>
+ </dict>
+ <key>Module</key>
+ <string>XCRefactoringModule</string>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Refactoring</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>XCRefactoringModule</string>
+ </array>
+ <key>WindowString</key>
+ <string>200 200 500 356 0 0 1920 1200 </string>
+ </dict>
+ </array>
+</dict>
+</plist>
Added: SkimNotesAgent.xcodeproj/project.pbxproj
===================================================================
--- SkimNotesAgent.xcodeproj/project.pbxproj (rev 0)
+++ SkimNotesAgent.xcodeproj/project.pbxproj 2007-04-10 19:35:12 UTC (rev 1788)
@@ -0,0 +1,233 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 42;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ 8DD76F9A0486AA7600D96B5E /* SkimNotesAgent.m in Sources */ = {isa = PBXBuildFile; fileRef = 08FB7796FE84155DC02AAC07 /* SkimNotesAgent.m */; settings = {ATTRIBUTES = (); }; };
+ 8DD76F9C0486AA7600D96B5E /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 08FB779EFE84155DC02AAC07 /* Foundation.framework */; };
+ 8DD76F9F0486AA7600D96B5E /* SkimNotesAgent.1 in CopyFiles */ = {isa = PBXBuildFile; fileRef = C6859EA3029092ED04C91782 /* SkimNotesAgent.1 */; };
+ F92BA40B0BCAF831008D5BC3 /* NSFileManager_ExtendedAttributes.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = F92BA4090BCAF831008D5BC3 /* NSFileManager_ExtendedAttributes.h */; };
+ F92BA40C0BCAF831008D5BC3 /* NSFileManager_ExtendedAttributes.m in Sources */ = {isa = PBXBuildFile; fileRef = F92BA40A0BCAF831008D5BC3 /* NSFileManager_ExtendedAttributes.m */; };
+ F92BA4C90BCAF96A008D5BC3 /* libbz2.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = F92BA4C80BCAF96A008D5BC3 /* libbz2.dylib */; };
+ F92BAD7A0BCC0E02008D5BC3 /* SkimNotesAgent.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = F92BAD790BCC0E02008D5BC3 /* SkimNotesAgent.h */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXCopyFilesBuildPhase section */
+ 8DD76F9E0486AA7600D96B5E /* CopyFiles */ = {
+ isa = PBXCopyFilesBuildPhase;
+ buildActionMask = 8;
+ dstPath = /usr/share/man/man1/;
+ dstSubfolderSpec = 0;
+ files = (
+ 8DD76F9F0486AA7600D96B5E /* SkimNotesAgent.1 in CopyFiles */,
+ F92BA40B0BCAF831008D5BC3 /* NSFileManager_ExtendedAttributes.h in CopyFiles */,
+ F92BAD7A0BCC0E02008D5BC3 /* SkimNotesAgent.h in CopyFiles */,
+ );
+ runOnlyForDeploymentPostprocessing = 1;
+ };
+/* End PBXCopyFilesBuildPhase section */
+
+/* Begin PBXFileReference section */
+ 08FB7796FE84155DC02AAC07 /* SkimNotesAgent.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SkimNotesAgent.m; sourceTree = "<group>"; };
+ 08FB779EFE84155DC02AAC07 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = "<absolute>"; };
+ 32A70AAB03705E1F00C91783 /* SkimNotesAgent_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SkimNotesAgent_Prefix.pch; sourceTree = "<group>"; };
+ 8DD76FA10486AA7600D96B5E /* SkimNotesAgent */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = "compiled.mach-o.executable"; path = SkimNotesAgent; sourceTree = BUILT_PRODUCTS_DIR; };
+ C6859EA3029092ED04C91782 /* SkimNotesAgent.1 */ = {isa = PBXFileReference; lastKnownFileType = text.man; path = SkimNotesAgent.1; sourceTree = "<group>"; };
+ F92BA4090BCAF831008D5BC3 /* NSFileManager_ExtendedAttributes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSFileManager_ExtendedAttributes.h; sourceTree = "<group>"; };
+ F92BA40A0BCAF831008D5BC3 /* NSFileManager_ExtendedAttributes.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSFileManager_ExtendedAttributes.m; sourceTree = "<group>"; };
+ F92BA4C80BCAF96A008D5BC3 /* libbz2.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libbz2.dylib; path = /usr/lib/libbz2.dylib; sourceTree = "<absolute>"; };
+ F92BAD790BCC0E02008D5BC3 /* SkimNotesAgent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SkimNotesAgent.h; sourceTree = "<group>"; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ 8DD76F9B0486AA7600D96B5E /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 8DD76F9C0486AA7600D96B5E /* Foundation.framework in Frameworks */,
+ F92BA4C90BCAF96A008D5BC3 /* libbz2.dylib in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ 08FB7794FE84155DC02AAC07 /* SkimNotesAgent */ = {
+ isa = PBXGroup;
+ children = (
+ 08FB7795FE84155DC02AAC07 /* Source */,
+ C6859EA2029092E104C91782 /* Documentation */,
+ 08FB779DFE84155DC02AAC07 /* External Frameworks and Libraries */,
+ 1AB674ADFE9D54B511CA2CBB /* Products */,
+ );
+ name = SkimNotesAgent;
+ sourceTree = "<group>";
+ };
+ 08FB7795FE84155DC02AAC07 /* Source */ = {
+ isa = PBXGroup;
+ children = (
+ F92BAD790BCC0E02008D5BC3 /* SkimNotesAgent.h */,
+ F92BA4090BCAF831008D5BC3 /* NSFileManager_ExtendedAttributes.h */,
+ F92BA40A0BCAF831008D5BC3 /* NSFileManager_ExtendedAttributes.m */,
+ 32A70AAB03705E1F00C91783 /* SkimNotesAgent_Prefix.pch */,
+ 08FB7796FE84155DC02AAC07 /* SkimNotesAgent.m */,
+ );
+ name = Source;
+ sourceTree = "<group>";
+ };
+ 08FB779DFE84155DC02AAC07 /* External Frameworks and Libraries */ = {
+ isa = PBXGroup;
+ children = (
+ F92BA4C80BCAF96A008D5BC3 /* libbz2.dylib */,
+ 08FB779EFE84155DC02AAC07 /* Foundation.framework */,
+ );
+ name = "External Frameworks and Libraries";
+ sourceTree = "<group>";
+ };
+ 1AB674ADFE9D54B511CA2CBB /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ 8DD76FA10486AA7600D96B5E /* SkimNotesAgent */,
+ );
+ name = Products;
+ sourceTree = "<group>";
+ };
+ C6859EA2029092E104C91782 /* Documentation */ = {
+ isa = PBXGroup;
+ children = (
+ C6859EA3029092ED04C91782 /* SkimNotesAgent.1 */,
+ );
+ name = Documentation;
+ sourceTree = "<group>";
+ };
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+ 8DD76F960486AA7600D96B5E /* SkimNotesAgent */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 1DEB927408733DD40010E9CD /* Build configuration list for PBXNativeTarget "SkimNotesAgent" */;
+ buildPhases = (
+ 8DD76F990486AA7600D96B5E /* Sources */,
+ 8DD76F9B0486AA7600D96B5E /* Frameworks */,
+ 8DD76F9E0486AA7600D96B5E /* CopyFiles */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = SkimNotesAgent;
+ productInstallPath = "$(HOME)/bin";
+ productName = SkimNotesAgent;
+ productReference = 8DD76FA10486AA7600D96B5E /* SkimNotesAgent */;
+ productType = "com.apple.product-type.tool";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ 08FB7793FE84155DC02AAC07 /* Project object */ = {
+ isa = PBXProject;
+ buildConfigurationList = 1DEB927808733DD40010E9CD /* Build configuration list for PBXProject "SkimNotesAgent" */;
+ hasScannedForEncodings = 1;
+ mainGroup = 08FB7794FE84155DC02AAC07 /* SkimNotesAgent */;
+ projectDirPath = "";
+ projectRoot = "";
+ targets = (
+ 8DD76F960486AA7600D96B5E /* SkimNotesAgent */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXSourcesBuildPhase section */
+ 8DD76F990486AA7600D96B5E /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 8DD76F9A0486AA7600D96B5E /* SkimNotesAgent.m in Sources */,
+ F92BA40C0BCAF831008D5BC3 /* NSFileManager_ExtendedAttributes.m in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin XCBuildConfiguration section */
+ 1DEB927508733DD40010E9CD /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ COPY_PHASE_STRIP = NO;
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_ENABLE_FIX_AND_CONTINUE = YES;
+ GCC_MODEL_TUNING = G5;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_PRECOMPILE_PREFIX_HEADER = NO;
+ GCC_PREFIX_HEADER = SkimNotesAgent_Prefix.pch;
+ INSTALL_PATH = "$(HOME)/bin";
+ PRODUCT_NAME = SkimNotesAgent;
+ ZERO_LINK = YES;
+ };
+ name = Debug;
+ };
+ 1DEB927608733DD40010E9CD /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ARCHS = (
+ ppc,
+ i386,
+ );
+ GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+ GCC_MODEL_TUNING = G5;
+ GCC_PRECOMPILE_PREFIX_HEADER = NO;
+ GCC_PREFIX_HEADER = SkimNotesAgent_Prefix.pch;
+ INSTALL_PATH = "$(HOME)/bin";
+ PRODUCT_NAME = SkimNotesAgent;
+ };
+ name = Release;
+ };
+ 1DEB927908733DD40010E9CD /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ PREBINDING = NO;
+ SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
+ };
+ name = Debug;
+ };
+ 1DEB927A08733DD40010E9CD /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ PREBINDING = NO;
+ SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
+ };
+ name = Release;
+ };
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+ 1DEB927408733DD40010E9CD /* Build configuration list for PBXNativeTarget "SkimNotesAgent" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 1DEB927508733DD40010E9CD /* Debug */,
+ 1DEB927608733DD40010E9CD /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ 1DEB927808733DD40010E9CD /* Build configuration list for PBXProject "SkimNotesAgent" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 1DEB927908733DD40010E9CD /* Debug */,
+ 1DEB927A08733DD40010E9CD /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+/* End XCConfigurationList section */
+ };
+ rootObject = 08FB7793FE84155DC02AAC07 /* Project object */;
+}
Added: SkimNotesAgent_Prefix.pch
===================================================================
--- SkimNotesAgent_Prefix.pch (rev 0)
+++ SkimNotesAgent_Prefix.pch 2007-04-10 19:35:12 UTC (rev 1788)
@@ -0,0 +1,7 @@
+//
+// Prefix header for all source files of the 'TestAgent' target in the 'TestAgent' project.
+//
+
+#ifdef __OBJC__
+ #import <Foundation/Foundation.h>
+#endif
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ho...@us...> - 2007-04-10 16:34:53
|
Revision: 1787
http://skim-app.svn.sourceforge.net/skim-app/?rev=1787&view=rev
Author: hofman
Date: 2007-04-10 09:34:46 -0700 (Tue, 10 Apr 2007)
Log Message:
-----------
Reconnect binding for Check File Update pref.
Modified Paths:
--------------
trunk/Dutch.lproj/PreferenceWindow.nib/keyedobjects.nib
trunk/English.lproj/PreferenceWindow.nib/keyedobjects.nib
trunk/Italian.lproj/PreferenceWindow.nib/keyedobjects.nib
Modified: trunk/Dutch.lproj/PreferenceWindow.nib/keyedobjects.nib
===================================================================
(Binary files differ)
Modified: trunk/English.lproj/PreferenceWindow.nib/keyedobjects.nib
===================================================================
(Binary files differ)
Modified: trunk/Italian.lproj/PreferenceWindow.nib/keyedobjects.nib
===================================================================
(Binary files differ)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ho...@us...> - 2007-04-10 13:55:17
|
Revision: 1786
http://skim-app.svn.sourceforge.net/skim-app/?rev=1786&view=rev
Author: hofman
Date: 2007-04-10 06:55:15 -0700 (Tue, 10 Apr 2007)
Log Message:
-----------
Add new document class and nib to view skim notes.
Modified Paths:
--------------
trunk/Info.plist
trunk/SKDocument.h
trunk/SKDocument.m
trunk/Skim.xcodeproj/project.pbxproj
Added Paths:
-----------
trunk/Dutch.lproj/NotesDocument.nib/
trunk/Dutch.lproj/NotesDocument.nib/classes.nib
trunk/Dutch.lproj/NotesDocument.nib/info.nib
trunk/Dutch.lproj/NotesDocument.nib/keyedobjects.nib
trunk/English.lproj/NotesDocument.nib/
trunk/English.lproj/NotesDocument.nib/classes.nib
trunk/English.lproj/NotesDocument.nib/info.nib
trunk/English.lproj/NotesDocument.nib/keyedobjects.nib
trunk/SKNotesDocument.h
trunk/SKNotesDocument.m
Added: trunk/Dutch.lproj/NotesDocument.nib/classes.nib
===================================================================
--- trunk/Dutch.lproj/NotesDocument.nib/classes.nib (rev 0)
+++ trunk/Dutch.lproj/NotesDocument.nib/classes.nib 2007-04-10 13:55:15 UTC (rev 1786)
@@ -0,0 +1,25 @@
+{
+ IBClasses = (
+ {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; },
+ {CLASS = NSObject; LANGUAGE = ObjC; },
+ {
+ ACTIONS = {myAction = id; };
+ CLASS = NSPersistentDocument;
+ LANGUAGE = ObjC;
+ SUPERCLASS = NSDocument;
+ },
+ {
+ CLASS = SKAnnotationTypeImageCell;
+ LANGUAGE = ObjC;
+ SUPERCLASS = NSImageCell;
+ },
+ {CLASS = SKNoteOutlineView; LANGUAGE = ObjC; SUPERCLASS = NSOutlineView; },
+ {
+ CLASS = SKNotesDocument;
+ LANGUAGE = ObjC;
+ OUTLETS = {arrayController = NSArrayController; outlineView = NSOutlineView; };
+ SUPERCLASS = NSDocument;
+ }
+ );
+ IBVersion = 1;
+}
\ No newline at end of file
Added: trunk/Dutch.lproj/NotesDocument.nib/info.nib
===================================================================
--- trunk/Dutch.lproj/NotesDocument.nib/info.nib (rev 0)
+++ trunk/Dutch.lproj/NotesDocument.nib/info.nib 2007-04-10 13:55:15 UTC (rev 1786)
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>IBDocumentLocation</key>
+ <string>69 58 356 240 0 0 1440 938 </string>
+ <key>IBFramework Version</key>
+ <string>446.1</string>
+ <key>IBOpenObjects</key>
+ <array>
+ <integer>5</integer>
+ </array>
+ <key>IBSystem Version</key>
+ <string>8P135</string>
+</dict>
+</plist>
Added: trunk/Dutch.lproj/NotesDocument.nib/keyedobjects.nib
===================================================================
(Binary files differ)
Property changes on: trunk/Dutch.lproj/NotesDocument.nib/keyedobjects.nib
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/English.lproj/NotesDocument.nib/classes.nib
===================================================================
--- trunk/English.lproj/NotesDocument.nib/classes.nib (rev 0)
+++ trunk/English.lproj/NotesDocument.nib/classes.nib 2007-04-10 13:55:15 UTC (rev 1786)
@@ -0,0 +1,25 @@
+{
+ IBClasses = (
+ {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; },
+ {CLASS = NSObject; LANGUAGE = ObjC; },
+ {
+ ACTIONS = {myAction = id; };
+ CLASS = NSPersistentDocument;
+ LANGUAGE = ObjC;
+ SUPERCLASS = NSDocument;
+ },
+ {
+ CLASS = SKAnnotationTypeImageCell;
+ LANGUAGE = ObjC;
+ SUPERCLASS = NSImageCell;
+ },
+ {CLASS = SKNoteOutlineView; LANGUAGE = ObjC; SUPERCLASS = NSOutlineView; },
+ {
+ CLASS = SKNotesDocument;
+ LANGUAGE = ObjC;
+ OUTLETS = {arrayController = NSArrayController; outlineView = NSOutlineView; };
+ SUPERCLASS = NSDocument;
+ }
+ );
+ IBVersion = 1;
+}
\ No newline at end of file
Added: trunk/English.lproj/NotesDocument.nib/info.nib
===================================================================
--- trunk/English.lproj/NotesDocument.nib/info.nib (rev 0)
+++ trunk/English.lproj/NotesDocument.nib/info.nib 2007-04-10 13:55:15 UTC (rev 1786)
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>IBDocumentLocation</key>
+ <string>69 58 356 240 0 0 1440 938 </string>
+ <key>IBFramework Version</key>
+ <string>446.1</string>
+ <key>IBOpenObjects</key>
+ <array>
+ <integer>5</integer>
+ </array>
+ <key>IBSystem Version</key>
+ <string>8P135</string>
+</dict>
+</plist>
Added: trunk/English.lproj/NotesDocument.nib/keyedobjects.nib
===================================================================
(Binary files differ)
Property changes on: trunk/English.lproj/NotesDocument.nib/keyedobjects.nib
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified: trunk/Info.plist
===================================================================
--- trunk/Info.plist 2007-04-10 13:03:34 UTC (rev 1785)
+++ trunk/Info.plist 2007-04-10 13:55:15 UTC (rev 1786)
@@ -46,6 +46,28 @@
<dict>
<key>CFBundleTypeExtensions</key>
<array>
+ <string>skim</string>
+ </array>
+ <key>CFBundleTypeIconFile</key>
+ <string>NoteDocument</string>
+ <key>CFBundleTypeName</key>
+ <string>Skim Notes</string>
+ <key>CFBundleTypeRole</key>
+ <string>Editor</string>
+ <key>LSTypeIsPackage</key>
+ <false/>
+ <key>NSDocumentClass</key>
+ <string>SKNotesDocument</string>
+ <key>NSExportableAs</key>
+ <array>
+ <string>Notes as RTF</string>
+ </array>
+ <key>NSPersistentStoreTypeKey</key>
+ <string>Binary</string>
+ </dict>
+ <dict>
+ <key>CFBundleTypeExtensions</key>
+ <array>
<string>ai</string>
<string>AI</string>
</array>
@@ -199,24 +221,6 @@
<dict>
<key>CFBundleTypeExtensions</key>
<array>
- <string>skim</string>
- </array>
- <key>CFBundleTypeIconFile</key>
- <string>NoteDocument</string>
- <key>CFBundleTypeName</key>
- <string>Skim Notes</string>
- <key>CFBundleTypeRole</key>
- <string>None</string>
- <key>LSTypeIsPackage</key>
- <false/>
- <key>NSDocumentClass</key>
- <string>SKDocument</string>
- <key>NSPersistentStoreTypeKey</key>
- <string>Binary</string>
- </dict>
- <dict>
- <key>CFBundleTypeExtensions</key>
- <array>
<string>rtf</string>
</array>
<key>CFBundleTypeMIMETypes</key>
Modified: trunk/SKDocument.h
===================================================================
--- trunk/SKDocument.h 2007-04-10 13:03:34 UTC (rev 1785)
+++ trunk/SKDocument.h 2007-04-10 13:55:15 UTC (rev 1786)
@@ -42,6 +42,14 @@
extern NSString *SKDocumentWillSaveNotification;
+extern NSString *SKPDFDocumentType;
+extern NSString *SKEmbeddedPDFDocumentType;
+extern NSString *SKBarePDFDocumentType;
+extern NSString *SKNotesDocumentType;
+extern NSString *SKNotesRTFDocumentType;
+extern NSString *SKPostScriptDocumentType;
+
+
@class PDFDocument, SKMainWindowController, SKPDFView;
@interface SKDocument : NSDocument
Modified: trunk/SKDocument.m
===================================================================
--- trunk/SKDocument.m 2007-04-10 13:03:34 UTC (rev 1785)
+++ trunk/SKDocument.m 2007-04-10 13:55:15 UTC (rev 1786)
@@ -55,12 +55,12 @@
NSString *SKDocumentErrorDomain = @"SKDocumentErrorDomain";
// See CFBundleTypeName in Info.plist
-static NSString *SKPDFDocumentType = nil; /* set to NSPDFPboardType, not @"NSPDFPboardType" */
-static NSString *SKEmbeddedPDFDocumentType = @"PDF With Embedded Notes";
-static NSString *SKBarePDFDocumentType = @"PDF Without Notes";
-static NSString *SKNotesDocumentType = @"Skim Notes";
-static NSString *SKNotesRTFDocumentType = @"Notes as RTF";
-static NSString *SKPostScriptDocumentType = @"PostScript document";
+NSString *SKPDFDocumentType = nil; /* set to NSPDFPboardType, not @"NSPDFPboardType" */
+NSString *SKEmbeddedPDFDocumentType = @"PDF With Embedded Notes";
+NSString *SKBarePDFDocumentType = @"PDF Without Notes";
+NSString *SKNotesDocumentType = @"Skim Notes";
+NSString *SKNotesRTFDocumentType = @"Notes as RTF";
+NSString *SKPostScriptDocumentType = @"PostScript document";
NSString *SKDocumentWillSaveNotification = @"SKDocumentWillSaveNotification";
Added: trunk/SKNotesDocument.h
===================================================================
--- trunk/SKNotesDocument.h (rev 0)
+++ trunk/SKNotesDocument.h 2007-04-10 13:55:15 UTC (rev 1786)
@@ -0,0 +1,57 @@
+//
+// SKNotesDocument.h
+// Skim
+//
+// Created by Christiaan Hofman on 4/10/07.
+/*
+ This software is Copyright (c) 2007
+ Christiaan Hofman. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ - Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ - Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ - Neither the name of Christiaan Hofman nor the names of any
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import <Cocoa/Cocoa.h>
+
+
+@interface SKNotesDocument : NSDocument {
+ IBOutlet NSOutlineView *outlineView;
+ IBOutlet NSArrayController *arrayController;
+ NSMutableArray *notes;
+}
+
+- (NSArray *)notes;
+- (void)setNotes:(NSArray *)newNotes;
+- (unsigned)countOfNotes;
+- (id)objectInNotesAtIndex:(unsigned)index;
+- (void)insertObject:(id)obj inNotesAtIndex:(unsigned)index;
+- (void)removeObjectFromNotesAtIndex:(unsigned)index;
+
+- (NSData *)notesRTFData;
+
+@end
Added: trunk/SKNotesDocument.m
===================================================================
--- trunk/SKNotesDocument.m (rev 0)
+++ trunk/SKNotesDocument.m 2007-04-10 13:55:15 UTC (rev 1786)
@@ -0,0 +1,258 @@
+//
+// SKNotesDocument.m
+// Skim
+//
+// Created by Christiaan Hofman on 4/10/07.
+/*
+ This software is Copyright (c) 2007
+ Christiaan Hofman. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ - Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ - Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ - Neither the name of Christiaan Hofman nor the names of any
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import "SKNotesDocument.h"
+#import "SKDocument.h"
+#import "SKNoteOutlineView.h"
+
+@implementation SKNotesDocument
+
+- (id)init {
+ if (self = [super init]) {
+ notes = [[NSMutableArray alloc] initWithCapacity:10];
+ }
+ return self;
+}
+
+- (void)dealloc {
+ [notes release];
+ [super dealloc];
+}
+
+- (NSString *)windowNibName {
+ return @"NotesDocument";
+}
+
+- (void)windowControllerDidLoadNib:(NSWindowController *)aController {
+ [aController setShouldCloseDocument:YES];
+
+ NSSortDescriptor *indexSortDescriptor = [[[NSSortDescriptor alloc] initWithKey:@"pageIndex" ascending:YES] autorelease];
+ NSSortDescriptor *contentsSortDescriptor = [[[NSSortDescriptor alloc] initWithKey:@"contents" ascending:YES] autorelease];
+ [arrayController setSortDescriptors:[NSArray arrayWithObjects:indexSortDescriptor, contentsSortDescriptor, nil]];
+
+ [outlineView reloadData];
+}
+
+- (NSData *)dataOfType:(NSString *)typeName error:(NSError **)outError {
+ NSData *data = nil;
+
+ if ([typeName isEqualToString:SKNotesDocumentType]) {
+ data = [NSKeyedArchiver archivedDataWithRootObject:[notes valueForKey:@"dictionaryValue"]];
+ } else if ([typeName isEqualToString:SKNotesRTFDocumentType]) {
+ data = [self notesRTFData];
+ }
+
+ if (data == nil && outError != NULL)
+ *outError = [NSError errorWithDomain:SKDocumentErrorDomain code:0 userInfo:[NSDictionary dictionaryWithObjectsAndKeys:NSLocalizedString(@"Unable to write notes", @"Error description"), NSLocalizedDescriptionKey, nil]];
+
+ return data;
+}
+
+- (BOOL)readFromData:(NSData *)data ofType:(NSString *)typeName error:(NSError **)outError {
+ BOOL didRead = NO;
+
+ if ([typeName isEqualToString:SKNotesDocumentType]) {
+ NSArray *array = [NSKeyedUnarchiver unarchiveObjectWithData:data];
+
+ if (array) {
+ NSEnumerator *dictEnum = [array objectEnumerator];
+ NSDictionary *dict;
+ NSMutableArray *newNotes = [NSMutableArray arrayWithCapacity:[array count]];
+
+ while (dict = [dictEnum nextObject]) {
+ NSMutableDictionary *note = [dict mutableCopy];
+
+ if ([[dict valueForKey:@"type"] isEqualToString:@"Note"])
+ [note setObject:[NSMutableDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithFloat:85.0], @"rowHeight", [dict valueForKey:@"text"], @"contents", nil] forKey:@"child"];
+
+ [newNotes addObject:note];
+ [note release];
+ }
+ [[self mutableArrayValueForKey:@"notes"] setArray:newNotes];
+ [outlineView reloadData];
+ didRead = YES;
+ }
+ }
+
+ if (didRead == NO && outError != NULL)
+ *outError = [NSError errorWithDomain:SKDocumentErrorDomain code:0 userInfo:[NSDictionary dictionaryWithObjectsAndKeys:NSLocalizedString(@"Unable to load file", @"Error description"), NSLocalizedDescriptionKey, nil]];
+
+ return didRead;
+}
+
+- (NSData *)notesRTFData {
+ NSMutableAttributedString *attrString = [[NSMutableAttributedString alloc] init];
+ NSEnumerator *noteEnum = [notes objectEnumerator];
+ NSDictionary *note;
+ NSData *data;
+ NSFont *standardFont = [NSFont systemFontOfSize:12.0];
+ NSAttributedString *newlinesAttrString = [[NSAttributedString alloc] initWithString:@"\n\n" attributes:[NSDictionary dictionaryWithObjectsAndKeys:standardFont, NSFontAttributeName, nil]];
+
+ while (note = [noteEnum nextObject]) {
+ NSString *type = [note valueForKey:@"type"];
+ NSString *contents = [note valueForKey:@"contents"];
+ NSFont *font = [note valueForKey:@"font"];
+ NSAttributedString *tmpAttrString = nil;
+ NSString *tmpString = nil;
+
+ if ([type isEqualToString:@"FreeText"])
+ tmpString = NSLocalizedString(@"Text Note", @"Description for export");
+ else if ([type isEqualToString:@"Note"])
+ tmpString = NSLocalizedString(@"Anchored Note", @"Description for export");
+ else if ([type isEqualToString:@"Circle"])
+ tmpString = NSLocalizedString(@"Circle", @"Description for export");
+ else if ([type isEqualToString:@"Square"])
+ tmpString = NSLocalizedString(@"Box", @"Description for export");
+ else if ([type isEqualToString:@"MarkUp"] || [type isEqualToString:@"Highlight"])
+ tmpString = NSLocalizedString(@"Highlight", @"Description for export");
+ else if ([type isEqualToString:@"Underline"])
+ tmpString = NSLocalizedString(@"Underline", @"Description for export");
+ else if ([type isEqualToString:@"StrikeOut"])
+ tmpString = NSLocalizedString(@"Strike Out", @"Description for export");
+ tmpString = [NSString stringWithFormat:NSLocalizedString(@"%C %@, page %i", @"Description for export"), 0x2022, tmpString, [[note valueForKey:@"pageIndex"] unsignedIntValue] + 1];
+ tmpAttrString = [[NSAttributedString alloc] initWithString:tmpString attributes:[NSDictionary dictionaryWithObjectsAndKeys:standardFont, NSFontAttributeName, nil]];
+ [attrString appendAttributedString:tmpAttrString];
+ [tmpAttrString release];
+ [attrString appendAttributedString:newlinesAttrString];
+
+ tmpAttrString = [[NSAttributedString alloc] initWithString:contents ? contents : @"" attributes:[NSDictionary dictionaryWithObjectsAndKeys:font ? font : standardFont, NSFontAttributeName, nil]];
+ [attrString appendAttributedString:tmpAttrString];
+ [tmpAttrString release];
+ [attrString appendAttributedString:newlinesAttrString];
+
+ if (tmpAttrString = [note valueForKey:@"text"]) {
+ [attrString appendAttributedString:tmpAttrString];
+ [attrString appendAttributedString:newlinesAttrString];
+ }
+ }
+
+ data = [attrString RTFFromRange:NSMakeRange(0, [attrString length]) documentAttributes:nil];
+ [attrString release];
+ [newlinesAttrString release];
+
+ return data;
+}
+
+// these are necessary for the app controller, we may change it there
+- (NSDictionary *)currentDocumentSetup {
+ return [NSDictionary dictionary];
+}
+
+- (NSWindowController *)mainWindowController {
+ return nil;
+}
+
+#pragma mark Accessors
+
+- (NSArray *)notes {
+ return notes;
+}
+
+- (void)setNotes:(NSArray *)newNotes {
+ [notes setArray:notes];
+}
+
+- (unsigned)countOfNotes {
+ return [notes count];
+}
+
+- (id)objectInNotesAtIndex:(unsigned)theIndex {
+ return [notes objectAtIndex:theIndex];
+}
+
+- (void)insertObject:(id)obj inNotesAtIndex:(unsigned)theIndex {
+ [notes insertObject:obj atIndex:theIndex];
+}
+
+- (void)removeObjectFromNotesAtIndex:(unsigned)theIndex {
+ [notes removeObjectAtIndex:theIndex];
+}
+
+#pragma mark NSOutlineView datasource and delegate methods
+
+- (int)outlineView:(NSOutlineView *)ov numberOfChildrenOfItem:(id)item {
+ if (item == nil)
+ return [notes count];
+ else if ([[item valueForKey:@"type"] isEqualToString:@"Note"])
+ return 1;
+ return 0;
+}
+
+- (BOOL)outlineView:(NSOutlineView *)ov isItemExpandable:(id)item {
+ return [[item valueForKey:@"type"] isEqualToString:@"Note"];
+}
+
+- (id)outlineView:(NSOutlineView *)ov child:(int)index ofItem:(id)item {
+ if (item == nil) {
+ return [[arrayController arrangedObjects] objectAtIndex:index];
+ } else {
+ return [item valueForKey:@"child"];
+ }
+}
+
+- (id)outlineView:(NSOutlineView *)ov objectValueForTableColumn:(NSTableColumn *)tableColumn byItem:(id)item {
+ NSString *tcID = [tableColumn identifier];
+ if ([tcID isEqualToString:@"note"]) {
+ return [item valueForKey:@"contents"];
+ } else if([tcID isEqualToString:@"type"]) {
+ return [NSDictionary dictionaryWithObjectsAndKeys:[item valueForKey:@"type"], @"type", nil];
+ } else if ([tcID isEqualToString:@"page"]) {
+ NSNumber *pageNumber = [item valueForKey:@"pageIndex"];
+ return pageNumber ? [NSString stringWithFormat:@"%i", [pageNumber intValue] + 1] : nil;
+ }
+ return nil;
+}
+
+- (float)outlineView:(NSOutlineView *)ov heightOfRowByItem:(id)item {
+ NSNumber *heightNumber = [item valueForKey:@"rowHeight"];
+ return heightNumber ? [heightNumber floatValue] : 17.0;
+}
+
+- (void)outlineView:(NSOutlineView *)ov setHeightOfRow:(int)newHeight byItem:(id)item {
+ [item setObject:[NSNumber numberWithFloat:newHeight] forKey:@"rowHeight"];
+}
+
+- (BOOL)outlineView:(NSOutlineView *)ov canResizeRowByItem:(id)item {
+ return nil != [item valueForKey:@"rowHeight"];
+}
+
+- (NSString *)outlineView:(NSOutlineView *)ov toolTipForCell:(NSCell *)cell rect:(NSRectPointer)rect tableColumn:(NSTableColumn *)tableColumn item:(id)item mouseLocation:(NSPoint)mouseLocation {
+ return [item valueForKey:@"type"] ? [item valueForKey:@"contents"] : [[item valueForKey:@"contents"] string];
+}
+
+@end
Modified: trunk/Skim.xcodeproj/project.pbxproj
===================================================================
--- trunk/Skim.xcodeproj/project.pbxproj 2007-04-10 13:03:34 UTC (rev 1785)
+++ trunk/Skim.xcodeproj/project.pbxproj 2007-04-10 13:55:15 UTC (rev 1786)
@@ -135,6 +135,8 @@
CEA575CE0B9206E60003D2E7 /* SKNoteOutlineView.m in Sources */ = {isa = PBXBuildFile; fileRef = CEA575CD0B9206E60003D2E7 /* SKNoteOutlineView.m */; };
CEA575E50B9207B80003D2E7 /* SKThumbnailTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = CEA575E40B9207B80003D2E7 /* SKThumbnailTableView.m */; };
CEA575FD0B9208B60003D2E7 /* SKOutlineView.m in Sources */ = {isa = PBXBuildFile; fileRef = CEA575FC0B9208B60003D2E7 /* SKOutlineView.m */; };
+ CEE106150BCBB72C00BF2D3E /* SKNotesDocument.m in Sources */ = {isa = PBXBuildFile; fileRef = CEE106140BCBB72C00BF2D3E /* SKNotesDocument.m */; };
+ CEE1065E0BCBBE1300BF2D3E /* NotesDocument.nib in Resources */ = {isa = PBXBuildFile; fileRef = CEE106580BCBBE1200BF2D3E /* NotesDocument.nib */; };
CEF3BF7E0B99CA4A00E12E3D /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2A37F4C5FDCFA73011CA2CEA /* Foundation.framework */; };
CEF3BF860B99CAD300E12E3D /* skimnotes.m in Sources */ = {isa = PBXBuildFile; fileRef = CEF3BF850B99CAD300E12E3D /* skimnotes.m */; };
CEF3C0210B99FF8F00E12E3D /* libbz2.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = F977319E0B939B7D002A7823 /* libbz2.dylib */; };
@@ -363,6 +365,10 @@
CEA575E40B9207B80003D2E7 /* SKThumbnailTableView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SKThumbnailTableView.m; sourceTree = "<group>"; };
CEA575FB0B9208B60003D2E7 /* SKOutlineView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SKOutlineView.h; sourceTree = "<group>"; };
CEA575FC0B9208B60003D2E7 /* SKOutlineView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SKOutlineView.m; sourceTree = "<group>"; };
+ CEE106130BCBB72C00BF2D3E /* SKNotesDocument.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SKNotesDocument.h; sourceTree = "<group>"; };
+ CEE106140BCBB72C00BF2D3E /* SKNotesDocument.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SKNotesDocument.m; sourceTree = "<group>"; };
+ CEE106590BCBBE1200BF2D3E /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/NotesDocument.nib; sourceTree = "<group>"; };
+ CEE107380BCBCA3200BF2D3E /* Dutch */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = Dutch; path = Dutch.lproj/NotesDocument.nib; sourceTree = "<group>"; };
CEF3BF750B99CA2900E12E3D /* skimnotes */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = skimnotes; sourceTree = BUILT_PRODUCTS_DIR; };
CEF3BF850B99CAD300E12E3D /* skimnotes.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = skimnotes.m; sourceTree = "<group>"; };
CEF7071E0B8F8EFC003A2771 /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/SnapshotWindow.nib; sourceTree = "<group>"; };
@@ -492,6 +498,7 @@
2A37F4B6FDCFA73011CA2CEA /* MainMenu.nib */,
4530D81B0B27ACAC007C59F4 /* MainWindow.nib */,
CE5470010B32D96500F8AFB6 /* NoteWindow.nib */,
+ CEE106580BCBBE1200BF2D3E /* NotesDocument.nib */,
CEF7071D0B8F8EFC003A2771 /* SnapshotWindow.nib */,
CE9C42360B8B5633004AD8CF /* PreferenceWindow.nib */,
CE2DEB900B86206400D0DA12 /* FindPanel.nib */,
@@ -572,6 +579,8 @@
4530D8C80B27B04D007C59F4 /* SKApplicationController.m */,
2A37F4AEFDCFA73011CA2CEA /* SKDocument.h */,
2A37F4ACFDCFA73011CA2CEA /* SKDocument.m */,
+ CEE106130BCBB72C00BF2D3E /* SKNotesDocument.h */,
+ CEE106140BCBB72C00BF2D3E /* SKNotesDocument.m */,
4530D7ED0B27AAD6007C59F4 /* SKMainWindowController.h */,
4530D7EE0B27AAD6007C59F4 /* SKMainWindowController.m */,
4530D7E60B27AAB9007C59F4 /* SKSnapshotWindowController.h */,
@@ -878,6 +887,7 @@
CE54AA8F0BBC037400008750 /* ReleaseNotes.rtf in Resources */,
CE4F9DEE0BC1BE3A005BE0A1 /* Localizable.strings in Resources */,
CE67BB260BC44AC9007B6929 /* ZoomValues.strings in Resources */,
+ CEE1065E0BCBBE1300BF2D3E /* NotesDocument.nib in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -990,6 +1000,7 @@
CE4A659F0BAB1598004AD07D /* SKBookmarkController.m in Sources */,
CE4A8BA20BB15980004AD07D /* NSWindowController_SKExtensions.m in Sources */,
CE4294A30BBD29120016FDC2 /* SKReadingBar.m in Sources */,
+ CEE106150BCBB72C00BF2D3E /* SKNotesDocument.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -1158,6 +1169,15 @@
name = PreferenceWindow.nib;
sourceTree = "<group>";
};
+ CEE106580BCBBE1200BF2D3E /* NotesDocument.nib */ = {
+ isa = PBXVariantGroup;
+ children = (
+ CEE106590BCBBE1200BF2D3E /* English */,
+ CEE107380BCBCA3200BF2D3E /* Dutch */,
+ );
+ name = NotesDocument.nib;
+ sourceTree = "<group>";
+ };
CEF7071D0B8F8EFC003A2771 /* SnapshotWindow.nib */ = {
isa = PBXVariantGroup;
children = (
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ho...@us...> - 2007-04-10 13:03:35
|
Revision: 1785
http://skim-app.svn.sourceforge.net/skim-app/?rev=1785&view=rev
Author: hofman
Date: 2007-04-10 06:03:34 -0700 (Tue, 10 Apr 2007)
Log Message:
-----------
Add data.dependency file to localized nib
Added Paths:
-----------
trunk/Dutch.lproj/SnapshotWindow.nib/data.dependency
Added: trunk/Dutch.lproj/SnapshotWindow.nib/data.dependency
===================================================================
--- trunk/Dutch.lproj/SnapshotWindow.nib/data.dependency (rev 0)
+++ trunk/Dutch.lproj/SnapshotWindow.nib/data.dependency 2007-04-10 13:03:34 UTC (rev 1785)
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>IBPaletteDependency</key>
+ <array>
+ <string>PDFKit</string>
+ </array>
+</dict>
+</plist>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ho...@us...> - 2007-04-09 21:43:49
|
Revision: 1784
http://skim-app.svn.sourceforge.net/skim-app/?rev=1784&view=rev
Author: hofman
Date: 2007-04-09 14:43:48 -0700 (Mon, 09 Apr 2007)
Log Message:
-----------
Invert check for empty link destination. Also check for empty left margins.
Modified Paths:
--------------
trunk/SKPDFHoverWindow.m
Modified: trunk/SKPDFHoverWindow.m
===================================================================
--- trunk/SKPDFHoverWindow.m 2007-04-09 21:25:17 UTC (rev 1783)
+++ trunk/SKPDFHoverWindow.m 2007-04-09 21:43:48 UTC (rev 1784)
@@ -132,9 +132,13 @@
PDFSelection *selection = [page selectionForRect:bounds];
if ([selection string]) {
- float top = NSMaxY([selection boundsForPage:page]);
- if (top > NSMaxY(rect))
+ NSRect selBounds = [selection boundsForPage:page];
+ float top = fmax(NSMaxY(selBounds), NSMinX(selBounds) + NSHeight(rect));
+ float left = fmin(NSMinX(selBounds), NSMaxX(bounds) - NSWidth(rect));
+ if (top < NSMaxY(rect))
rect.origin.y = top - NSHeight(rect);
+ if (left > NSMinX(rect))
+ rect.origin.x = left;
}
[imageView setFrameSize:[image size]];
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ho...@us...> - 2007-04-09 21:25:22
|
Revision: 1783
http://skim-app.svn.sourceforge.net/skim-app/?rev=1783&view=rev
Author: hofman
Date: 2007-04-09 14:25:17 -0700 (Mon, 09 Apr 2007)
Log Message:
-----------
Fix format for clean version string
Modified Paths:
--------------
trunk/SKVersionNumber.m
Modified: trunk/SKVersionNumber.m
===================================================================
--- trunk/SKVersionNumber.m 2007-04-09 15:41:18 UTC (rev 1782)
+++ trunk/SKVersionNumber.m 2007-04-09 21:25:17 UTC (rev 1783)
@@ -48,7 +48,7 @@
// Failed to scan integer
break;
- [mutableVersionString appendFormat: @"%@%C", c == '.' ? @"." : @"", component];
+ [mutableVersionString appendFormat: @"%@%i", c == '.' ? @"." : @"", component];
componentCount++;
components = realloc(components, sizeof(*components) * componentCount);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ho...@us...> - 2007-04-09 15:41:19
|
Revision: 1782
http://skim-app.svn.sourceforge.net/skim-app/?rev=1782&view=rev
Author: hofman
Date: 2007-04-09 08:41:18 -0700 (Mon, 09 Apr 2007)
Log Message:
-----------
Set document encoding for help to UTF-8
Modified Paths:
--------------
trunk/English.lproj/Skim Help/skim.texi
Modified: trunk/English.lproj/Skim Help/skim.texi
===================================================================
--- trunk/English.lproj/Skim Help/skim.texi 2007-04-09 15:25:55 UTC (rev 1781)
+++ trunk/English.lproj/Skim Help/skim.texi 2007-04-09 15:41:18 UTC (rev 1782)
@@ -109,6 +109,7 @@
@c ======================================================================================
@documentlanguage en
+@documentencoding UTF-8
@settitle Skim Help
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ho...@us...> - 2007-04-09 15:25:56
|
Revision: 1781
http://skim-app.svn.sourceforge.net/skim-app/?rev=1781&view=rev
Author: hofman
Date: 2007-04-09 08:25:55 -0700 (Mon, 09 Apr 2007)
Log Message:
-----------
Show top of text in hover window when a link targets the top of the page. RFE # 1694559.
Modified Paths:
--------------
trunk/SKPDFHoverWindow.m
Modified: trunk/SKPDFHoverWindow.m
===================================================================
--- trunk/SKPDFHoverWindow.m 2007-04-09 14:54:10 UTC (rev 1780)
+++ trunk/SKPDFHoverWindow.m 2007-04-09 15:25:55 UTC (rev 1781)
@@ -130,6 +130,13 @@
rect.origin.x -= NSMinX(bounds);
rect.origin.y -= NSMinY(bounds) + NSHeight(rect);
+ PDFSelection *selection = [page selectionForRect:bounds];
+ if ([selection string]) {
+ float top = NSMaxY([selection boundsForPage:page]);
+ if (top > NSMaxY(rect))
+ rect.origin.y = top - NSHeight(rect);
+ }
+
[imageView setFrameSize:[image size]];
[imageView setImage:image];
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ho...@us...> - 2007-04-09 14:54:11
|
Revision: 1780
http://skim-app.svn.sourceforge.net/skim-app/?rev=1780&view=rev
Author: hofman
Date: 2007-04-09 07:54:10 -0700 (Mon, 09 Apr 2007)
Log Message:
-----------
Disable tooltips. This fix a PDFKit bug with tooltips when a PDFDocument is changed.
Modified Paths:
--------------
trunk/SKPDFView.m
Modified: trunk/SKPDFView.m
===================================================================
--- trunk/SKPDFView.m 2007-04-09 12:43:11 UTC (rev 1779)
+++ trunk/SKPDFView.m 2007-04-09 14:54:10 UTC (rev 1780)
@@ -176,6 +176,10 @@
[super dealloc];
}
+// Fix a bug in Tiger's PDFKit, tooltips lead to a crash when you reload a PDFDocument in a PDFView
+// see http://www.cocoabuilder.com/archive/message/cocoa/2007/3/12/180190
+- (void)scheduleAddingToolips {}
+
#pragma mark Drawing
- (void)drawPage:(PDFPage *)pdfPage {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ho...@us...> - 2007-04-09 12:43:12
|
Revision: 1779
http://skim-app.svn.sourceforge.net/skim-app/?rev=1779&view=rev
Author: hofman
Date: 2007-04-09 05:43:11 -0700 (Mon, 09 Apr 2007)
Log Message:
-----------
Fix layout
Modified Paths:
--------------
trunk/Italian.lproj/PreferenceWindow.nib/info.nib
trunk/Italian.lproj/PreferenceWindow.nib/keyedobjects.nib
Modified: trunk/Italian.lproj/PreferenceWindow.nib/info.nib
===================================================================
--- trunk/Italian.lproj/PreferenceWindow.nib/info.nib 2007-04-09 12:22:46 UTC (rev 1778)
+++ trunk/Italian.lproj/PreferenceWindow.nib/info.nib 2007-04-09 12:43:11 UTC (rev 1779)
@@ -3,7 +3,7 @@
<plist version="1.0">
<dict>
<key>IBDocumentLocation</key>
- <string>43 101 356 240 0 0 1024 746 </string>
+ <string>70 139 356 240 0 0 1440 938 </string>
<key>IBFramework Version</key>
<string>446.1</string>
<key>IBLockedObjects</key>
Modified: trunk/Italian.lproj/PreferenceWindow.nib/keyedobjects.nib
===================================================================
(Binary files differ)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ho...@us...> - 2007-04-09 12:22:48
|
Revision: 1778
http://skim-app.svn.sourceforge.net/skim-app/?rev=1778&view=rev
Author: hofman
Date: 2007-04-09 05:22:46 -0700 (Mon, 09 Apr 2007)
Log Message:
-----------
Resize disk image to its minimum size
Modified Paths:
--------------
trunk/Skim.xcodeproj/project.pbxproj
Modified: trunk/Skim.xcodeproj/project.pbxproj
===================================================================
--- trunk/Skim.xcodeproj/project.pbxproj 2007-04-09 11:48:44 UTC (rev 1777)
+++ trunk/Skim.xcodeproj/project.pbxproj 2007-04-09 12:22:46 UTC (rev 1778)
@@ -930,7 +930,7 @@
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
- shellScript = "rm -f /tmp/Skim.dmg\nunzip ${SOURCE_ROOT}/Skim.dmg.zip\n/bin/cp ${SOURCE_ROOT}/Skim.dmg /tmp\n/usr/bin/hdiutil attach /tmp/Skim.dmg\n${SYSTEM_DEVELOPER_TOOLS}/CpMac -r ${BUILT_PRODUCTS_DIR}/Skim.app /Volumes/Skim\nosascript -e \"tell application \\\"Finder\\\" to set the position of application file \\\"Skim.app\\\" of disk named \\\"Skim\\\" to {90, 206}\" && \\\nsleep 7; \\\n/usr/sbin/diskutil eject /Volumes/Skim\n/usr/bin/hdiutil convert /tmp/Skim.dmg -format UDZO -imagekey zlib-level=9 -o $HOME/Desktop/Skim.dmg\n/usr/bin/hdiutil internet-enable -YES $HOME/Desktop/Skim.dmg\nexit 0";
+ shellScript = "rm -f /tmp/Skim.dmg\nunzip ${SOURCE_ROOT}/Skim.dmg.zip\n/bin/cp ${SOURCE_ROOT}/Skim.dmg /tmp\n/usr/bin/hdiutil attach /tmp/Skim.dmg\n${SYSTEM_DEVELOPER_TOOLS}/CpMac -r ${BUILT_PRODUCTS_DIR}/Skim.app /Volumes/Skim\nosascript -e \"tell application \\\"Finder\\\" to set the position of application file \\\"Skim.app\\\" of disk named \\\"Skim\\\" to {90, 206}\" && \\\nsleep 7; \\\n/usr/sbin/diskutil eject /Volumes/Skim\n/usr/bin/hdiutil resize -size `/usr/bin/hdiutil resize /tmp/Skim.dmg | cut -f -1 -d \" \" -`b /tmp/Skim.dmg\n/usr/bin/hdiutil convert /tmp/Skim.dmg -format UDZO -imagekey zlib-level=9 -o $HOME/Desktop/Skim.dmg\n/usr/bin/hdiutil internet-enable -YES $HOME/Desktop/Skim.dmg\nexit 0";
};
/* End PBXShellScriptBuildPhase section */
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ho...@us...> - 2007-04-09 11:48:46
|
Revision: 1777
http://skim-app.svn.sourceforge.net/skim-app/?rev=1777&view=rev
Author: hofman
Date: 2007-04-09 04:48:44 -0700 (Mon, 09 Apr 2007)
Log Message:
-----------
Resize disk image
Modified Paths:
--------------
trunk/Skim.dmg.zip
Modified: trunk/Skim.dmg.zip
===================================================================
(Binary files differ)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ho...@us...> - 2007-04-09 10:07:43
|
Revision: 1776
http://skim-app.svn.sourceforge.net/skim-app/?rev=1776&view=rev
Author: hofman
Date: 2007-04-09 03:07:42 -0700 (Mon, 09 Apr 2007)
Log Message:
-----------
Add new recent documents at the beginning for faster lookup. Restrict number of recent documents.
Modified Paths:
--------------
trunk/SKBookmarkController.m
Modified: trunk/SKBookmarkController.m
===================================================================
--- trunk/SKBookmarkController.m 2007-04-09 09:52:37 UTC (rev 1775)
+++ trunk/SKBookmarkController.m 2007-04-09 10:07:42 UTC (rev 1776)
@@ -39,6 +39,7 @@
#import "SKBookmarkController.h"
#import "BDAlias.h"
+#define MAX_RECENT_DOCUMENTS_COUNT 50
@implementation SKBookmarkController
@@ -140,7 +141,9 @@
[recentDocuments removeObjectAtIndex:index];
NSData *data = [[BDAlias aliasWithPath:path] aliasData];
NSMutableDictionary *bm = [NSMutableDictionary dictionaryWithObjectsAndKeys:path, @"path", [NSNumber numberWithUnsignedInt:pageIndex], @"pageIndex", data, @"_BDAlias", nil];
- [recentDocuments addObject:bm];
+ [recentDocuments insertObject:bm atIndex:0];
+ if ([recentDocuments count] > MAX_RECENT_DOCUMENTS_COUNT)
+ [recentDocuments removeLastObject];
[self saveBookmarks];
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ho...@us...> - 2007-04-09 09:52:39
|
Revision: 1775
http://skim-app.svn.sourceforge.net/skim-app/?rev=1775&view=rev
Author: hofman
Date: 2007-04-09 02:52:37 -0700 (Mon, 09 Apr 2007)
Log Message:
-----------
Update release notes
Modified Paths:
--------------
trunk/Dutch.lproj/ReleaseNotes.rtf
trunk/English.lproj/ReleaseNotes.rtf
trunk/Italian.lproj/ReleaseNotes.rtf
Modified: trunk/Dutch.lproj/ReleaseNotes.rtf
===================================================================
--- trunk/Dutch.lproj/ReleaseNotes.rtf 2007-04-09 09:46:00 UTC (rev 1774)
+++ trunk/Dutch.lproj/ReleaseNotes.rtf 2007-04-09 09:52:37 UTC (rev 1775)
@@ -24,16 +24,18 @@
{\list\listtemplateid19\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid19}
{\list\listtemplateid20\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid20}
{\list\listtemplateid21\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid21}
-{\list\listtemplateid22\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid22}}
-{\*\listoverridetable{\listoverride\listid1\listoverridecount0\ls1}{\listoverride\listid2\listoverridecount0\ls2}{\listoverride\listid3\listoverridecount0\ls3}{\listoverride\listid4\listoverridecount0\ls4}{\listoverride\listid5\listoverridecount0\ls5}{\listoverride\listid6\listoverridecount0\ls6}{\listoverride\listid7\listoverridecount0\ls7}{\listoverride\listid8\listoverridecount0\ls8}{\listoverride\listid9\listoverridecount0\ls9}{\listoverride\listid10\listoverridecount0\ls10}{\listoverride\listid11\listoverridecount0\ls11}{\listoverride\listid12\listoverridecount0\ls12}{\listoverride\listid13\listoverridecount0\ls13}{\listoverride\listid14\listoverridecount0\ls14}{\listoverride\listid15\listoverridecount0\ls15}{\listoverride\listid16\listoverridecount0\ls16}{\listoverride\listid17\listoverridecount0\ls17}{\listoverride\listid18\listoverridecount0\ls18}{\listoverride\listid19\listoverridecount0\ls19}{\listoverride\listid20\listoverridecount0\ls20}{\listoverride\listid21\listoverridecount0\ls21}{\listoverride\listid22\listoverridecount0\ls22}}
+{\list\listtemplateid22\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid22}
+{\list\listtemplateid23\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid23}
+{\list\listtemplateid24\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid24}}
+{\*\listoverridetable{\listoverride\listid1\listoverridecount0\ls1}{\listoverride\listid2\listoverridecount0\ls2}{\listoverride\listid3\listoverridecount0\ls3}{\listoverride\listid4\listoverridecount0\ls4}{\listoverride\listid5\listoverridecount0\ls5}{\listoverride\listid6\listoverridecount0\ls6}{\listoverride\listid7\listoverridecount0\ls7}{\listoverride\listid8\listoverridecount0\ls8}{\listoverride\listid9\listoverridecount0\ls9}{\listoverride\listid10\listoverridecount0\ls10}{\listoverride\listid11\listoverridecount0\ls11}{\listoverride\listid12\listoverridecount0\ls12}{\listoverride\listid13\listoverridecount0\ls13}{\listoverride\listid14\listoverridecount0\ls14}{\listoverride\listid15\listoverridecount0\ls15}{\listoverride\listid16\listoverridecount0\ls16}{\listoverride\listid17\listoverridecount0\ls17}{\listoverride\listid18\listoverridecount0\ls18}{\listoverride\listid19\listoverridecount0\ls19}{\listoverride\listid20\listoverridecount0\ls20}{\listoverride\listid21\listoverridecount0\ls21}{\listoverride\listid22\listoverridecount0\ls22}{\listoverride\listid23\listoverridecount0\ls23}{\listoverride\listid24\listoverridecount0\ls24}}
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural\pardirnatural
\f0\fs60 \cf0 Skim Release Notes\
\pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural
\f1\fs22 \cf0 \
-Last update: 7 April 2007 (rev
-\f2\fs20 1764
+Last update: 9 April 2007 (rev
+\f2\fs20 1774
\f1\fs22 )\
\
\pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural
@@ -56,7 +58,7 @@
\pard\tx220\tx720\tx1440\tx2880\tx4320\tx5760\tx7200\li720\fi-720\ql\qnatural
\ls5\ilvl0\cf0 {\listtext \'a5 }You can now make a snapshot of a page by Command-clicking a thumbnail.\
\pard\tx220\tx720\tx1440\tx2880\tx4320\tx5760\tx7200\li720\fi-720\ql\qnatural
-\ls6\ilvl0\cf0 {\listtext \'a5 }Add Dutch localization.\
+\ls6\ilvl0\cf0 {\listtext \'a5 }Added Dutch localization.\
\pard\tx220\tx720\tx1440\tx2880\tx4320\tx5760\tx7200\li720\fi-720\ql\qnatural
\ls7\ilvl0\cf0 {\listtext \'a5 }We now do not leave Full Screen when switching to another application.\
\pard\tx220\tx720\tx1440\tx2880\tx4320\tx5760\tx7200\li720\fi-720\ql\qnatural
@@ -71,31 +73,36 @@
\ls12\ilvl0\cf0 {\listtext \'a5 }Select search field when opening the Contents pane in full screen mode.\
\pard\tx220\tx720\tx1440\tx2880\tx4320\tx5760\tx7200\li720\fi-720\ql\qnatural
\ls13\ilvl0\cf0 {\listtext \'a5 }You can now reset all preferences or all preferences in a pane.\
-\pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural
+\pard\tx220\tx720\tx1440\tx2880\tx4320\tx5760\tx7200\li720\fi-720\ql\qnatural
+\ls14\ilvl0\cf0 {\listtext \'a5 }Added Italian localization. (Thanks Andrea Bergia!)\
+{\listtext \'a5 }Screensaver and sleep are now disabled in Presentation mode.\
+\pard\tx220\tx720\tx1440\tx2880\tx4320\tx5760\tx7200\li720\fi-720\ql\qnatural
+\ls15\ilvl0\cf0 {\listtext \'a5 }Skim can now return to the last page viewed in a document.\
+\pard\tx220\tx720\tx1440\tx2880\tx4320\tx5760\tx7200\li720\fi-720\ql\qnatural
\f3\b\fs28 \cf0 \
\pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural
\f4\i\fs26 \cf0 Bugs Fixed\
\pard\tx220\tx720\tx1440\tx2880\tx4320\tx5760\tx7200\li720\fi-720\ql\qnatural
-\ls14\ilvl0
+\ls16\ilvl0
\f1\i0\b0\fs22 \cf0 {\listtext \'a5 }We now don't edit new text notes, so they can be moved, resized or deleted.\
\pard\tx220\tx720\tx1440\tx2880\tx4320\tx5760\tx7200\li720\fi-720\ql\qnatural
-\ls15\ilvl0\cf0 {\listtext \'a5 }We now make sure new notes are added to a visible page.\
+\ls17\ilvl0\cf0 {\listtext \'a5 }We now make sure new notes are added to a visible page.\
\pard\tx220\tx720\tx1440\tx2880\tx4320\tx5760\tx7200\li720\fi-720\ql\qnatural
-\ls16\ilvl0\cf0 {\listtext \'a5 }Disable the TOC menu item when there is no TOC.\
+\ls18\ilvl0\cf0 {\listtext \'a5 }Disable the TOC menu item when there is no TOC.\
\pard\tx220\tx720\tx1440\tx2880\tx4320\tx5760\tx7200\li720\fi-720\ql\qnatural
-\ls17\ilvl0\cf0 {\listtext \'a5 }Return to the location that was viewed when reloading a document.\
+\ls19\ilvl0\cf0 {\listtext \'a5 }Return to the location that was viewed when reloading a document.\
\pard\tx220\tx720\tx1440\tx2880\tx4320\tx5760\tx7200\li720\fi-720\ql\qnatural
-\ls18\ilvl0\cf0 {\listtext \'a5 }Search text in a PDf file asynchronously, so it does not block Skim.\
+\ls20\ilvl0\cf0 {\listtext \'a5 }Search text in a PDf file asynchronously, so it does not block Skim.\
\pard\tx220\tx720\tx1440\tx2880\tx4320\tx5760\tx7200\li720\fi-720\ql\qnatural
-\ls19\ilvl0\cf0 {\listtext \'a5 }Fix crashes that can appear for links with missing URLs.\
+\ls21\ilvl0\cf0 {\listtext \'a5 }Fix crashes that can appear for links with missing URLs.\
\pard\tx220\tx720\tx1440\tx2880\tx4320\tx5760\tx7200\li720\fi-720\ql\qnatural
-\ls20\ilvl0\cf0 {\listtext \'a5 }Add separators in the Notes menu for categories.\
+\ls22\ilvl0\cf0 {\listtext \'a5 }Add separators in the Notes menu for categories.\
\pard\tx220\tx720\tx1440\tx2880\tx4320\tx5760\tx7200\li720\fi-720\ql\qnatural
-\ls21\ilvl0\cf0 {\listtext \'a5 }Fix a crasher when reverting a PDF-document.\
+\ls23\ilvl0\cf0 {\listtext \'a5 }Fix a crasher when reverting a PDF-document.\
\pard\tx220\tx720\tx1440\tx2880\tx4320\tx5760\tx7200\li720\fi-720\ql\qnatural
-\ls22\ilvl0\cf0 {\listtext \'a5 }Fix typos in the Help and update for new features.\
+\ls24\ilvl0\cf0 {\listtext \'a5 }Fix typos in the Help and update for new features.\
\pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural
\f3\b\fs28 \cf0 \
Modified: trunk/English.lproj/ReleaseNotes.rtf
===================================================================
--- trunk/English.lproj/ReleaseNotes.rtf 2007-04-09 09:46:00 UTC (rev 1774)
+++ trunk/English.lproj/ReleaseNotes.rtf 2007-04-09 09:52:37 UTC (rev 1775)
@@ -24,16 +24,18 @@
{\list\listtemplateid19\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid19}
{\list\listtemplateid20\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid20}
{\list\listtemplateid21\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid21}
-{\list\listtemplateid22\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid22}}
-{\*\listoverridetable{\listoverride\listid1\listoverridecount0\ls1}{\listoverride\listid2\listoverridecount0\ls2}{\listoverride\listid3\listoverridecount0\ls3}{\listoverride\listid4\listoverridecount0\ls4}{\listoverride\listid5\listoverridecount0\ls5}{\listoverride\listid6\listoverridecount0\ls6}{\listoverride\listid7\listoverridecount0\ls7}{\listoverride\listid8\listoverridecount0\ls8}{\listoverride\listid9\listoverridecount0\ls9}{\listoverride\listid10\listoverridecount0\ls10}{\listoverride\listid11\listoverridecount0\ls11}{\listoverride\listid12\listoverridecount0\ls12}{\listoverride\listid13\listoverridecount0\ls13}{\listoverride\listid14\listoverridecount0\ls14}{\listoverride\listid15\listoverridecount0\ls15}{\listoverride\listid16\listoverridecount0\ls16}{\listoverride\listid17\listoverridecount0\ls17}{\listoverride\listid18\listoverridecount0\ls18}{\listoverride\listid19\listoverridecount0\ls19}{\listoverride\listid20\listoverridecount0\ls20}{\listoverride\listid21\listoverridecount0\ls21}{\listoverride\listid22\listoverridecount0\ls22}}
+{\list\listtemplateid22\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid22}
+{\list\listtemplateid23\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid23}
+{\list\listtemplateid24\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid24}}
+{\*\listoverridetable{\listoverride\listid1\listoverridecount0\ls1}{\listoverride\listid2\listoverridecount0\ls2}{\listoverride\listid3\listoverridecount0\ls3}{\listoverride\listid4\listoverridecount0\ls4}{\listoverride\listid5\listoverridecount0\ls5}{\listoverride\listid6\listoverridecount0\ls6}{\listoverride\listid7\listoverridecount0\ls7}{\listoverride\listid8\listoverridecount0\ls8}{\listoverride\listid9\listoverridecount0\ls9}{\listoverride\listid10\listoverridecount0\ls10}{\listoverride\listid11\listoverridecount0\ls11}{\listoverride\listid12\listoverridecount0\ls12}{\listoverride\listid13\listoverridecount0\ls13}{\listoverride\listid14\listoverridecount0\ls14}{\listoverride\listid15\listoverridecount0\ls15}{\listoverride\listid16\listoverridecount0\ls16}{\listoverride\listid17\listoverridecount0\ls17}{\listoverride\listid18\listoverridecount0\ls18}{\listoverride\listid19\listoverridecount0\ls19}{\listoverride\listid20\listoverridecount0\ls20}{\listoverride\listid21\listoverridecount0\ls21}{\listoverride\listid22\listoverridecount0\ls22}{\listoverride\listid23\listoverridecount0\ls23}{\listoverride\listid24\listoverridecount0\ls24}}
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural\pardirnatural
\f0\fs60 \cf0 Skim Release Notes\
\pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural
\f1\fs22 \cf0 \
-Last update: 7 April 2007 (rev
-\f2\fs20 1764
+Last update: 9 April 2007 (rev
+\f2\fs20 1774
\f1\fs22 )\
\
\pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural
@@ -56,7 +58,7 @@
\pard\tx220\tx720\tx1440\tx2880\tx4320\tx5760\tx7200\li720\fi-720\ql\qnatural
\ls5\ilvl0\cf0 {\listtext \'a5 }You can now make a snapshot of a page by Command-clicking a thumbnail.\
\pard\tx220\tx720\tx1440\tx2880\tx4320\tx5760\tx7200\li720\fi-720\ql\qnatural
-\ls6\ilvl0\cf0 {\listtext \'a5 }Add Dutch localization.\
+\ls6\ilvl0\cf0 {\listtext \'a5 }Added Dutch localization.\
\pard\tx220\tx720\tx1440\tx2880\tx4320\tx5760\tx7200\li720\fi-720\ql\qnatural
\ls7\ilvl0\cf0 {\listtext \'a5 }We now do not leave Full Screen when switching to another application.\
\pard\tx220\tx720\tx1440\tx2880\tx4320\tx5760\tx7200\li720\fi-720\ql\qnatural
@@ -71,31 +73,36 @@
\ls12\ilvl0\cf0 {\listtext \'a5 }Select search field when opening the Contents pane in full screen mode.\
\pard\tx220\tx720\tx1440\tx2880\tx4320\tx5760\tx7200\li720\fi-720\ql\qnatural
\ls13\ilvl0\cf0 {\listtext \'a5 }You can now reset all preferences or all preferences in a pane.\
-\pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural
+\pard\tx220\tx720\tx1440\tx2880\tx4320\tx5760\tx7200\li720\fi-720\ql\qnatural
+\ls14\ilvl0\cf0 {\listtext \'a5 }Added Italian localization. (Thanks Andrea Bergia!)\
+{\listtext \'a5 }Screensaver and sleep are now disabled in Presentation mode.\
+\pard\tx220\tx720\tx1440\tx2880\tx4320\tx5760\tx7200\li720\fi-720\ql\qnatural
+\ls15\ilvl0\cf0 {\listtext \'a5 }Skim can now return to the last page viewed in a document.\
+\pard\tx220\tx720\tx1440\tx2880\tx4320\tx5760\tx7200\li720\fi-720\ql\qnatural
\f3\b\fs28 \cf0 \
\pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural
\f4\i\fs26 \cf0 Bugs Fixed\
\pard\tx220\tx720\tx1440\tx2880\tx4320\tx5760\tx7200\li720\fi-720\ql\qnatural
-\ls14\ilvl0
+\ls16\ilvl0
\f1\i0\b0\fs22 \cf0 {\listtext \'a5 }We now don't edit new text notes, so they can be moved, resized or deleted.\
\pard\tx220\tx720\tx1440\tx2880\tx4320\tx5760\tx7200\li720\fi-720\ql\qnatural
-\ls15\ilvl0\cf0 {\listtext \'a5 }We now make sure new notes are added to a visible page.\
+\ls17\ilvl0\cf0 {\listtext \'a5 }We now make sure new notes are added to a visible page.\
\pard\tx220\tx720\tx1440\tx2880\tx4320\tx5760\tx7200\li720\fi-720\ql\qnatural
-\ls16\ilvl0\cf0 {\listtext \'a5 }Disable the TOC menu item when there is no TOC.\
+\ls18\ilvl0\cf0 {\listtext \'a5 }Disable the TOC menu item when there is no TOC.\
\pard\tx220\tx720\tx1440\tx2880\tx4320\tx5760\tx7200\li720\fi-720\ql\qnatural
-\ls17\ilvl0\cf0 {\listtext \'a5 }Return to the location that was viewed when reloading a document.\
+\ls19\ilvl0\cf0 {\listtext \'a5 }Return to the location that was viewed when reloading a document.\
\pard\tx220\tx720\tx1440\tx2880\tx4320\tx5760\tx7200\li720\fi-720\ql\qnatural
-\ls18\ilvl0\cf0 {\listtext \'a5 }Search text in a PDf file asynchronously, so it does not block Skim.\
+\ls20\ilvl0\cf0 {\listtext \'a5 }Search text in a PDf file asynchronously, so it does not block Skim.\
\pard\tx220\tx720\tx1440\tx2880\tx4320\tx5760\tx7200\li720\fi-720\ql\qnatural
-\ls19\ilvl0\cf0 {\listtext \'a5 }Fix crashes that can appear for links with missing URLs.\
+\ls21\ilvl0\cf0 {\listtext \'a5 }Fix crashes that can appear for links with missing URLs.\
\pard\tx220\tx720\tx1440\tx2880\tx4320\tx5760\tx7200\li720\fi-720\ql\qnatural
-\ls20\ilvl0\cf0 {\listtext \'a5 }Add separators in the Notes menu for categories.\
+\ls22\ilvl0\cf0 {\listtext \'a5 }Add separators in the Notes menu for categories.\
\pard\tx220\tx720\tx1440\tx2880\tx4320\tx5760\tx7200\li720\fi-720\ql\qnatural
-\ls21\ilvl0\cf0 {\listtext \'a5 }Fix a crasher when reverting a PDF-document.\
+\ls23\ilvl0\cf0 {\listtext \'a5 }Fix a crasher when reverting a PDF-document.\
\pard\tx220\tx720\tx1440\tx2880\tx4320\tx5760\tx7200\li720\fi-720\ql\qnatural
-\ls22\ilvl0\cf0 {\listtext \'a5 }Fix typos in the Help and update for new features.\
+\ls24\ilvl0\cf0 {\listtext \'a5 }Fix typos in the Help and update for new features.\
\pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural
\f3\b\fs28 \cf0 \
Modified: trunk/Italian.lproj/ReleaseNotes.rtf
===================================================================
--- trunk/Italian.lproj/ReleaseNotes.rtf 2007-04-09 09:46:00 UTC (rev 1774)
+++ trunk/Italian.lproj/ReleaseNotes.rtf 2007-04-09 09:52:37 UTC (rev 1775)
@@ -24,16 +24,18 @@
{\list\listtemplateid19\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid19}
{\list\listtemplateid20\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid20}
{\list\listtemplateid21\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid21}
-{\list\listtemplateid22\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid22}}
-{\*\listoverridetable{\listoverride\listid1\listoverridecount0\ls1}{\listoverride\listid2\listoverridecount0\ls2}{\listoverride\listid3\listoverridecount0\ls3}{\listoverride\listid4\listoverridecount0\ls4}{\listoverride\listid5\listoverridecount0\ls5}{\listoverride\listid6\listoverridecount0\ls6}{\listoverride\listid7\listoverridecount0\ls7}{\listoverride\listid8\listoverridecount0\ls8}{\listoverride\listid9\listoverridecount0\ls9}{\listoverride\listid10\listoverridecount0\ls10}{\listoverride\listid11\listoverridecount0\ls11}{\listoverride\listid12\listoverridecount0\ls12}{\listoverride\listid13\listoverridecount0\ls13}{\listoverride\listid14\listoverridecount0\ls14}{\listoverride\listid15\listoverridecount0\ls15}{\listoverride\listid16\listoverridecount0\ls16}{\listoverride\listid17\listoverridecount0\ls17}{\listoverride\listid18\listoverridecount0\ls18}{\listoverride\listid19\listoverridecount0\ls19}{\listoverride\listid20\listoverridecount0\ls20}{\listoverride\listid21\listoverridecount0\ls21}{\listoverride\listid22\listoverridecount0\ls22}}
+{\list\listtemplateid22\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid22}
+{\list\listtemplateid23\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid23}
+{\list\listtemplateid24\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid24}}
+{\*\listoverridetable{\listoverride\listid1\listoverridecount0\ls1}{\listoverride\listid2\listoverridecount0\ls2}{\listoverride\listid3\listoverridecount0\ls3}{\listoverride\listid4\listoverridecount0\ls4}{\listoverride\listid5\listoverridecount0\ls5}{\listoverride\listid6\listoverridecount0\ls6}{\listoverride\listid7\listoverridecount0\ls7}{\listoverride\listid8\listoverridecount0\ls8}{\listoverride\listid9\listoverridecount0\ls9}{\listoverride\listid10\listoverridecount0\ls10}{\listoverride\listid11\listoverridecount0\ls11}{\listoverride\listid12\listoverridecount0\ls12}{\listoverride\listid13\listoverridecount0\ls13}{\listoverride\listid14\listoverridecount0\ls14}{\listoverride\listid15\listoverridecount0\ls15}{\listoverride\listid16\listoverridecount0\ls16}{\listoverride\listid17\listoverridecount0\ls17}{\listoverride\listid18\listoverridecount0\ls18}{\listoverride\listid19\listoverridecount0\ls19}{\listoverride\listid20\listoverridecount0\ls20}{\listoverride\listid21\listoverridecount0\ls21}{\listoverride\listid22\listoverridecount0\ls22}{\listoverride\listid23\listoverridecount0\ls23}{\listoverride\listid24\listoverridecount0\ls24}}
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural\pardirnatural
\f0\fs60 \cf0 Skim Release Notes\
\pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural
\f1\fs22 \cf0 \
-Last update: 7 April 2007 (rev
-\f2\fs20 1764
+Last update: 9 April 2007 (rev
+\f2\fs20 1774
\f1\fs22 )\
\
\pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural
@@ -56,7 +58,7 @@
\pard\tx220\tx720\tx1440\tx2880\tx4320\tx5760\tx7200\li720\fi-720\ql\qnatural
\ls5\ilvl0\cf0 {\listtext \'a5 }You can now make a snapshot of a page by Command-clicking a thumbnail.\
\pard\tx220\tx720\tx1440\tx2880\tx4320\tx5760\tx7200\li720\fi-720\ql\qnatural
-\ls6\ilvl0\cf0 {\listtext \'a5 }Add Dutch localization.\
+\ls6\ilvl0\cf0 {\listtext \'a5 }Added Dutch localization.\
\pard\tx220\tx720\tx1440\tx2880\tx4320\tx5760\tx7200\li720\fi-720\ql\qnatural
\ls7\ilvl0\cf0 {\listtext \'a5 }We now do not leave Full Screen when switching to another application.\
\pard\tx220\tx720\tx1440\tx2880\tx4320\tx5760\tx7200\li720\fi-720\ql\qnatural
@@ -71,31 +73,36 @@
\ls12\ilvl0\cf0 {\listtext \'a5 }Select search field when opening the Contents pane in full screen mode.\
\pard\tx220\tx720\tx1440\tx2880\tx4320\tx5760\tx7200\li720\fi-720\ql\qnatural
\ls13\ilvl0\cf0 {\listtext \'a5 }You can now reset all preferences or all preferences in a pane.\
-\pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural
+\pard\tx220\tx720\tx1440\tx2880\tx4320\tx5760\tx7200\li720\fi-720\ql\qnatural
+\ls14\ilvl0\cf0 {\listtext \'a5 }Added Italian localization. (Thanks Andrea Bergia!)\
+{\listtext \'a5 }Screensaver and sleep are now disabled in Presentation mode.\
+\pard\tx220\tx720\tx1440\tx2880\tx4320\tx5760\tx7200\li720\fi-720\ql\qnatural
+\ls15\ilvl0\cf0 {\listtext \'a5 }Skim can now return to the last page viewed in a document.\
+\pard\tx220\tx720\tx1440\tx2880\tx4320\tx5760\tx7200\li720\fi-720\ql\qnatural
\f3\b\fs28 \cf0 \
\pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural
\f4\i\fs26 \cf0 Bugs Fixed\
\pard\tx220\tx720\tx1440\tx2880\tx4320\tx5760\tx7200\li720\fi-720\ql\qnatural
-\ls14\ilvl0
+\ls16\ilvl0
\f1\i0\b0\fs22 \cf0 {\listtext \'a5 }We now don't edit new text notes, so they can be moved, resized or deleted.\
\pard\tx220\tx720\tx1440\tx2880\tx4320\tx5760\tx7200\li720\fi-720\ql\qnatural
-\ls15\ilvl0\cf0 {\listtext \'a5 }We now make sure new notes are added to a visible page.\
+\ls17\ilvl0\cf0 {\listtext \'a5 }We now make sure new notes are added to a visible page.\
\pard\tx220\tx720\tx1440\tx2880\tx4320\tx5760\tx7200\li720\fi-720\ql\qnatural
-\ls16\ilvl0\cf0 {\listtext \'a5 }Disable the TOC menu item when there is no TOC.\
+\ls18\ilvl0\cf0 {\listtext \'a5 }Disable the TOC menu item when there is no TOC.\
\pard\tx220\tx720\tx1440\tx2880\tx4320\tx5760\tx7200\li720\fi-720\ql\qnatural
-\ls17\ilvl0\cf0 {\listtext \'a5 }Return to the location that was viewed when reloading a document.\
+\ls19\ilvl0\cf0 {\listtext \'a5 }Return to the location that was viewed when reloading a document.\
\pard\tx220\tx720\tx1440\tx2880\tx4320\tx5760\tx7200\li720\fi-720\ql\qnatural
-\ls18\ilvl0\cf0 {\listtext \'a5 }Search text in a PDf file asynchronously, so it does not block Skim.\
+\ls20\ilvl0\cf0 {\listtext \'a5 }Search text in a PDf file asynchronously, so it does not block Skim.\
\pard\tx220\tx720\tx1440\tx2880\tx4320\tx5760\tx7200\li720\fi-720\ql\qnatural
-\ls19\ilvl0\cf0 {\listtext \'a5 }Fix crashes that can appear for links with missing URLs.\
+\ls21\ilvl0\cf0 {\listtext \'a5 }Fix crashes that can appear for links with missing URLs.\
\pard\tx220\tx720\tx1440\tx2880\tx4320\tx5760\tx7200\li720\fi-720\ql\qnatural
-\ls20\ilvl0\cf0 {\listtext \'a5 }Add separators in the Notes menu for categories.\
+\ls22\ilvl0\cf0 {\listtext \'a5 }Add separators in the Notes menu for categories.\
\pard\tx220\tx720\tx1440\tx2880\tx4320\tx5760\tx7200\li720\fi-720\ql\qnatural
-\ls21\ilvl0\cf0 {\listtext \'a5 }Fix a crasher when reverting a PDF-document.\
+\ls23\ilvl0\cf0 {\listtext \'a5 }Fix a crasher when reverting a PDF-document.\
\pard\tx220\tx720\tx1440\tx2880\tx4320\tx5760\tx7200\li720\fi-720\ql\qnatural
-\ls22\ilvl0\cf0 {\listtext \'a5 }Fix typos in the Help and update for new features.\
+\ls24\ilvl0\cf0 {\listtext \'a5 }Fix typos in the Help and update for new features.\
\pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural
\f3\b\fs28 \cf0 \
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ho...@us...> - 2007-04-09 09:46:02
|
Revision: 1774
http://skim-app.svn.sourceforge.net/skim-app/?rev=1774&view=rev
Author: hofman
Date: 2007-04-09 02:46:00 -0700 (Mon, 09 Apr 2007)
Log Message:
-----------
Simulate italian localization of texi2html strings.
Modified Paths:
--------------
trunk/Skim Help/applehelp.init
Modified: trunk/Skim Help/applehelp.init
===================================================================
--- trunk/Skim Help/applehelp.init 2007-04-09 09:43:44 UTC (rev 1773)
+++ trunk/Skim Help/applehelp.init 2007-04-09 09:46:00 UTC (rev 1774)
@@ -17,7 +17,7 @@
# undefined localizations
$LANGUAGES->{'it'} = $LANGUAGES->{'en'};
-$LANGUAGES->{'it'}->{'cover (top) of document'} = '';
+$LANGUAGES->{'it'}->{'cover (top) of document'} = 'copertina (in testa) del documento';
# External stylesheet:
$CSS_LINES = "<link href=\"sty/skimhelp.css\" rel=\"stylesheet\" media=\"all\" />";
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ho...@us...> - 2007-04-09 09:43:46
|
Revision: 1773
http://skim-app.svn.sourceforge.net/skim-app/?rev=1773&view=rev
Author: hofman
Date: 2007-04-09 02:43:44 -0700 (Mon, 09 Apr 2007)
Log Message:
-----------
Add initial value for Remember Last Page Viewed pref option and reset it.
Modified Paths:
--------------
trunk/InitialUserDefaults.plist
trunk/SKPreferenceController.m
Modified: trunk/InitialUserDefaults.plist
===================================================================
--- trunk/InitialUserDefaults.plist 2007-04-09 09:40:13 UTC (rev 1772)
+++ trunk/InitialUserDefaults.plist 2007-04-09 09:43:44 UTC (rev 1773)
@@ -24,6 +24,8 @@
<false/>
<key>SKReopenLastOpenFiles</key>
<true/>
+ <key>SKRememberLastPageViewed</key>
+ <false/>
<key>SKSearchHighlightColor</key>
<data>
BAt0eXBlZHN0cmVhbYED6IQBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm
@@ -122,6 +124,7 @@
<string>SKOpenContentsPaneOnlyForTOC</string>
<string>SKOpenFilesMaximized</string>
<string>SKReopenLastOpenFiles</string>
+ <string>SKRememberLastPageViewed</string>
<string>SKSearchHighlightColor</string>
<string>SKShouldHighlightSearchResults</string>
<string>SKSnapshotsOnTop</string>
Modified: trunk/SKPreferenceController.m
===================================================================
--- trunk/SKPreferenceController.m 2007-04-09 09:40:13 UTC (rev 1772)
+++ trunk/SKPreferenceController.m 2007-04-09 09:43:44 UTC (rev 1773)
@@ -128,7 +128,7 @@
[[NSUserDefaultsController sharedUserDefaultsController] revertToInitialValues:nil];
return;
} else if ([tabID isEqualToString:@"general"]) {
- keys = [NSArray arrayWithObjects:SKReopenLastOpenFilesKey, SKOpenFilesMaximizedKey, SKOpenContentsPaneOnlyForTOCKey, SKSnapshotsOnTopKey, SKUpdateCheckIntervalKey, SKAutoCheckFileUpdateKey, nil];
+ keys = [NSArray arrayWithObjects:SKReopenLastOpenFilesKey, SKOpenFilesMaximizedKey, SKOpenContentsPaneOnlyForTOCKey, SKRememberLastPageViewedKey, SKSnapshotsOnTopKey, SKUpdateCheckIntervalKey, SKAutoCheckFileUpdateKey, nil];
} else if ([tabID isEqualToString:@"display"]) {
keys = [NSArray arrayWithObjects:SKThumbnailSizeKey, SKSnapshotThumbnailSizeKey, SKShouldAntiAliasKey, SKGreekingThresholdKey, nil];
} else if ([tabID isEqualToString:@"colors"]) {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ho...@us...> - 2007-04-09 09:41:38
|
Revision: 1772
http://skim-app.svn.sourceforge.net/skim-app/?rev=1772&view=rev
Author: hofman
Date: 2007-04-09 02:40:13 -0700 (Mon, 09 Apr 2007)
Log Message:
-----------
Update dutch localization
Modified Paths:
--------------
trunk/Dutch.lproj/MainWindow.nib/data.dependency
trunk/Dutch.lproj/PreferenceWindow.nib/keyedobjects.nib
Modified: trunk/Dutch.lproj/MainWindow.nib/data.dependency
===================================================================
--- trunk/Dutch.lproj/MainWindow.nib/data.dependency 2007-04-09 09:12:58 UTC (rev 1771)
+++ trunk/Dutch.lproj/MainWindow.nib/data.dependency 2007-04-09 09:40:13 UTC (rev 1772)
@@ -4,6 +4,7 @@
<dict>
<key>IBPaletteDependency</key>
<array>
+ <string>Controllers</string>
<string>PDFKit</string>
</array>
</dict>
Modified: trunk/Dutch.lproj/PreferenceWindow.nib/keyedobjects.nib
===================================================================
(Binary files differ)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ho...@us...> - 2007-04-09 09:13:07
|
Revision: 1771
http://skim-app.svn.sourceforge.net/skim-app/?rev=1771&view=rev
Author: hofman
Date: 2007-04-09 02:12:58 -0700 (Mon, 09 Apr 2007)
Log Message:
-----------
Remember last page viewed of recent documents. RFE # 1696751.
Modified Paths:
--------------
trunk/English.lproj/PreferenceWindow.nib/keyedobjects.nib
trunk/SKBookmarkController.h
trunk/SKBookmarkController.m
trunk/SKMainWindowController.m
trunk/SKStringConstants.h
trunk/SKStringConstants.m
Modified: trunk/English.lproj/PreferenceWindow.nib/keyedobjects.nib
===================================================================
(Binary files differ)
Modified: trunk/SKBookmarkController.h
===================================================================
--- trunk/SKBookmarkController.h 2007-04-08 23:23:39 UTC (rev 1770)
+++ trunk/SKBookmarkController.h 2007-04-09 09:12:58 UTC (rev 1771)
@@ -41,6 +41,7 @@
@interface SKBookmarkController : NSWindowController {
NSMutableArray *bookmarks;
+ NSMutableArray *recentDocuments;
}
+ (id)sharedBookmarkController;
@@ -55,6 +56,10 @@
- (void)saveBookmarks;
- (NSString *)bookmarksFilePath;
+- (NSArray *)recentDocuments;
+- (void)addRecentDocumentForPath:(NSString *)path pageIndex:(unsigned)pageIndex;
+- (unsigned int)pageIndexForRecentDocumentAtPath:(NSString *)path;
+
@end
@interface SKPageIndexTransformer : NSValueTransformer
Modified: trunk/SKBookmarkController.m
===================================================================
--- trunk/SKBookmarkController.m 2007-04-08 23:23:39 UTC (rev 1770)
+++ trunk/SKBookmarkController.m 2007-04-09 09:12:58 UTC (rev 1771)
@@ -57,6 +57,7 @@
- (id)init {
if (self = [super init]) {
bookmarks = [[NSMutableArray alloc] init];
+ recentDocuments = [[NSMutableArray alloc] init];
NSData *data = [NSData dataWithContentsOfFile:[self bookmarksFilePath]];
if (data) {
@@ -72,6 +73,7 @@
[error release];
} else if ([plist isKindOfClass:[NSDictionary class]]) {
[bookmarks addObjectsFromArray:[plist objectForKey:@"bookmarks"]];
+ [recentDocuments addObjectsFromArray:[plist objectForKey:@"recentDocuments"]];
}
}
}
@@ -80,6 +82,7 @@
- (void)dealloc {
[bookmarks release];
+ [recentDocuments release];
[super dealloc];
}
@@ -119,8 +122,43 @@
[[self mutableArrayValueForKey:@"bookmarks"] addObject:bm];
}
+- (NSArray *)recentDocuments {
+ return recentDocuments;
+}
+
+- (void)addRecentDocumentForPath:(NSString *)path pageIndex:(unsigned)pageIndex {
+ if (path == nil)
+ return;
+ NSArray *paths = [recentDocuments valueForKey:@"path"];
+ unsigned int index = [paths indexOfObject:path];
+
+ if (index == NSNotFound) {
+ paths = [recentDocuments valueForKeyPath:@"fullPathNoUI"];
+ index = [paths indexOfObject:path];
+ }
+ if (index != NSNotFound)
+ [recentDocuments removeObjectAtIndex:index];
+ NSData *data = [[BDAlias aliasWithPath:path] aliasData];
+ NSMutableDictionary *bm = [NSMutableDictionary dictionaryWithObjectsAndKeys:path, @"path", [NSNumber numberWithUnsignedInt:pageIndex], @"pageIndex", data, @"_BDAlias", nil];
+ [recentDocuments addObject:bm];
+ [self saveBookmarks];
+}
+
+- (unsigned int)pageIndexForRecentDocumentAtPath:(NSString *)path {
+ if (path == nil)
+ return NSNotFound;
+ NSArray *paths = [recentDocuments valueForKey:@"path"];
+ unsigned int index = [paths indexOfObject:path];
+
+ if (index == NSNotFound) {
+ paths = [recentDocuments valueForKeyPath:@"fullPathNoUI"];
+ index = [paths indexOfObject:path];
+ }
+ return index == NSNotFound ? NSNotFound : [[[recentDocuments objectAtIndex:index] objectForKey:@"pageIndex"] unsignedIntValue];
+}
+
- (void)saveBookmarks {
- NSDictionary *bookmarksDictionary = [NSDictionary dictionaryWithObjectsAndKeys:bookmarks, @"bookmarks", nil];
+ NSDictionary *bookmarksDictionary = [NSDictionary dictionaryWithObjectsAndKeys:bookmarks, @"bookmarks", recentDocuments, @"recentDocuments", nil];
NSString *error = nil;
NSPropertyListFormat format = NSPropertyListXMLFormat_v1_0;
NSData *data = [NSPropertyListSerialization dataFromPropertyList:bookmarksDictionary format:format errorDescription:&error];
Modified: trunk/SKMainWindowController.m
===================================================================
--- trunk/SKMainWindowController.m 2007-04-08 23:23:39 UTC (rev 1770)
+++ trunk/SKMainWindowController.m 2007-04-09 09:12:58 UTC (rev 1771)
@@ -277,6 +277,12 @@
[pdfView setBackgroundColor:[NSUnarchiver unarchiveObjectWithData:[[NSUserDefaults standardUserDefaults] dataForKey:SKBackgroundColorKey]]];
+ if ([[NSUserDefaults standardUserDefaults] boolForKey:SKRememberLastPageViewedKey]) {
+ unsigned int pageIndex = [[SKBookmarkController sharedBookmarkController] pageIndexForRecentDocumentAtPath:[[[self document] fileURL] path]];
+ if (pageIndex != NSNotFound)
+ [pdfView goToPage:[[pdfView document] pageAtIndex:pageIndex]];
+ }
+
[[self window] makeFirstResponder:[pdfView documentView]];
[self handleChangedHistoryNotification:nil];
@@ -419,7 +425,7 @@
return setup;
}
-- (void)windowDidBecomeKey:(NSNotification *)aNotification {
+- (void)windowDidBecomeKey:(NSNotification *)notification {
PDFAnnotation *annotation = [pdfView activeAnnotation];
if ([annotation isNoteAnnotation]) {
@@ -429,6 +435,15 @@
}
}
+- (void)windowWillClose:(NSNotification *)notification {
+ if ([[notification object] isEqual:[self window]]) {
+ unsigned int pageIndex = [[pdfView document] indexForPage:[pdfView currentPage]];
+ NSString *path = [[[self document] fileURL] path];
+ if (pageIndex != NSNotFound && path)
+ [[SKBookmarkController sharedBookmarkController] addRecentDocumentForPath:path pageIndex:pageIndex];
+ }
+}
+
#pragma mark Accessors
- (PDFDocument *)pdfDocument{
Modified: trunk/SKStringConstants.h
===================================================================
--- trunk/SKStringConstants.h 2007-04-08 23:23:39 UTC (rev 1770)
+++ trunk/SKStringConstants.h 2007-04-09 09:12:58 UTC (rev 1771)
@@ -45,6 +45,7 @@
extern NSString *SKOpenContentsPaneOnlyForTOCKey;
extern NSString *SKOpenFilesMaximizedKey;
extern NSString *SKReopenLastOpenFilesKey;
+extern NSString *SKRememberLastPageViewedKey;
extern NSString *SKSearchHighlightColorKey;
extern NSString *SKShouldHighlightSearchResultsKey;
extern NSString *SKSnapshotsOnTopKey;
Modified: trunk/SKStringConstants.m
===================================================================
--- trunk/SKStringConstants.m 2007-04-08 23:23:39 UTC (rev 1770)
+++ trunk/SKStringConstants.m 2007-04-09 09:12:58 UTC (rev 1771)
@@ -46,6 +46,7 @@
NSString *SKOpenContentsPaneOnlyForTOCKey = @"SKOpenContentsPaneOnlyForTOC";
NSString *SKOpenFilesMaximizedKey = @"SKOpenFilesMaximized";
NSString *SKReopenLastOpenFilesKey = @"SKReopenLastOpenFiles";
+NSString *SKRememberLastPageViewedKey = @"SKRememberLastPageViewed";
NSString *SKSearchHighlightColorKey = @"SKSearchHighlightColor";
NSString *SKShouldHighlightSearchResultsKey = @"SKShouldHighlightSearchResults";
NSString *SKSnapshotsOnTopKey = @"SKSnapshotsOnTop";
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ho...@us...> - 2007-04-08 23:23:40
|
Revision: 1770
http://skim-app.svn.sourceforge.net/skim-app/?rev=1770&view=rev
Author: hofman
Date: 2007-04-08 16:23:39 -0700 (Sun, 08 Apr 2007)
Log Message:
-----------
Add localization entry for non-existing italian localization in texi2html initialization, avoids warning.
Modified Paths:
--------------
trunk/Skim Help/applehelp.init
Modified: trunk/Skim Help/applehelp.init
===================================================================
--- trunk/Skim Help/applehelp.init 2007-04-08 22:51:38 UTC (rev 1769)
+++ trunk/Skim Help/applehelp.init 2007-04-08 23:23:39 UTC (rev 1770)
@@ -15,6 +15,10 @@
$simple_map{'*'} = '<br/>';
# " is not in html 3.2
+# undefined localizations
+$LANGUAGES->{'it'} = $LANGUAGES->{'en'};
+$LANGUAGES->{'it'}->{'cover (top) of document'} = '';
+
# External stylesheet:
$CSS_LINES = "<link href=\"sty/skimhelp.css\" rel=\"stylesheet\" media=\"all\" />";
@@ -22,7 +26,6 @@
@SECTION_BUTTONS = @MISC_BUTTONS;
@CHAPTER_BUTTONS = @MISC_BUTTONS;
@NODE_FOOTER_BUTTONS = ();
-
# horizontal rules
$SMALL_RULE = '';
$DEFAULT_RULE = '';
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|