Author: millenomi
Date: Thu Dec 18 07:17:46 2008
New Revision: 95
Added:
trunk/Afloat/Afloat.xcconfig
trunk/Afloat/AfloatWindowIdentifier.h
trunk/Afloat/AfloatWindowIdentifier.m
trunk/Afloat/COPYING.txt
trunk/Afloat/Locales/
trunk/Afloat/Locales/it/
trunk/Afloat/Locales/it/Afloat.nib.alair (contents, props changed)
trunk/Afloat/Locales/it/Afloat.nib.strings
trunk/Afloat/Locales/it/AfloatBadge.nib.alair (contents, props changed)
trunk/Afloat/Locales/it/AfloatBadge.nib.strings
trunk/Afloat/Locales/it/AfloatDonateFirstAlert.alair (contents, props
changed)
trunk/Afloat/Locales/it/AfloatDonateFirstAlert.strings
trunk/Afloat/Locales/it/AfloatDonateLastAlert.alair (contents, props
changed)
trunk/Afloat/Locales/it/AfloatDonateLastAlert.strings
trunk/Afloat/Locales/it/AfloatPanel.nib.alair (contents, props changed)
trunk/Afloat/Locales/it/AfloatPanel.nib.strings
trunk/Afloat/Locales/it/Corpus.corpus (contents, props changed)
trunk/Afloat/Locales/it/Donate.alair (contents, props changed)
trunk/Afloat/Locales/it/Donate.nib.alair (contents, props changed)
trunk/Afloat/Locales/it/Donate.nib.strings
trunk/Afloat/Locales/it/Donate.strings
trunk/Afloat/Locales/it/InfoPlist.alair (contents, props changed)
trunk/Afloat/Locales/it/InfoPlist.strings
trunk/Afloat/Locales/it/Project.project (contents, props changed)
trunk/Afloat/en.lproj/
trunk/Afloat/en.lproj/Afloat.nib/
trunk/Afloat/en.lproj/Afloat.nib/designable.nib
trunk/Afloat/en.lproj/Afloat.nib/keyedobjects.nib (contents, props
changed)
trunk/Afloat/en.lproj/AfloatBadge.nib/
trunk/Afloat/en.lproj/AfloatBadge.nib/designable.nib
trunk/Afloat/en.lproj/AfloatBadge.nib/keyedobjects.nib (contents,
props changed)
trunk/Afloat/en.lproj/AfloatDonateFirstAlert.strings
trunk/Afloat/en.lproj/AfloatDonateLastAlert.strings
trunk/Afloat/en.lproj/AfloatPanel.nib/
trunk/Afloat/en.lproj/AfloatPanel.nib/designable.nib
trunk/Afloat/en.lproj/AfloatPanel.nib/keyedobjects.nib (contents,
props changed)
trunk/Afloat/en.lproj/Donate.nib/
trunk/Afloat/en.lproj/Donate.nib/designable.nib
trunk/Afloat/en.lproj/Donate.nib/keyedobjects.nib (contents, props
changed)
trunk/Afloat/en.lproj/InfoPlist.strings (contents, props changed)
trunk/Afloat/libBGHUDAppKit.a (contents, props changed)
trunk/Multiverse/
trunk/Multiverse/Tools/
trunk/Multiverse/Tools/Xcode/
trunk/Multiverse/Tools/Xcode/BuildLocale (contents, props changed)
trunk/Multiverse/Tools/Xcode/CheckAllSignatures (contents, props
changed)
trunk/Multiverse/Tools/Xcode/CollectStrings (contents, props changed)
trunk/Multiverse/Tools/Xcode/HudsonBuild (contents, props changed)
trunk/Multiverse/Tools/Xcode/HudsonBuild-Release (contents, props
changed)
trunk/Multiverse/Tools/Xcode/HudsonBuild-iPhone-Debug (contents, props
changed)
trunk/Multiverse/Tools/Xcode/HudsonBuild-iPhone-Distribution
(contents, props changed)
trunk/Multiverse/Tools/Xcode/HudsonRunClangChecker (contents, props
changed)
trunk/Multiverse/Tools/Xcode/HudsonRunClangChecker-iPhone (contents,
props changed)
trunk/Multiverse/Tools/Xcode/HudsonTest (contents, props changed)
trunk/Multiverse/Tools/Xcode/MergeDMG (contents, props changed)
trunk/Multiverse/Tools/Xcode/MergeDMGAndSignFromCodeSigningList
(contents, props changed)
trunk/Multiverse/Tools/Xcode/RepairDamagedSignatures (contents, props
changed)
trunk/Multiverse/Tools/Xcode/Sign (contents, props changed)
trunk/Multiverse/Tools/Xcode/seticon (contents, props changed)
trunk/Multiverse/Tools/Xcode/seticon-1.7-Sources.zip (contents, props
changed)
trunk/Multiverse/Tools/Xcode/seticon-COPYING
Removed:
trunk/Afloat/English.lproj/
trunk/Afloat/iLifeControls.framework/
trunk/Bootstrap
Modified:
trunk/Afloat/ (props changed)
trunk/Afloat/Afloat.h
trunk/Afloat/Afloat.m
trunk/Afloat/Afloat.xcodeproj/ (props changed)
trunk/Afloat/Afloat.xcodeproj/project.pbxproj
trunk/Afloat/AfloatBadgeController.h
trunk/Afloat/AfloatBadgeController.m
trunk/Afloat/AfloatNag.m
trunk/Afloat/AfloatPanelController.h
trunk/Afloat/AfloatPanelController.m
trunk/Afloat/AfloatStorage.m
trunk/Afloat/Afloat_AfloatNagging.m
trunk/Afloat/Donate for Afloat-Info.plist
trunk/Afloat/Info.plist
trunk/COMPILING.txt
Log:
Afloat 2.1.
Many under-the-hood changes, notably libBGHUDAppKit has replaced
iLifeControls (which brings partial support for resolution independence)
and the project has switched to the Multiverse 3 build style -- see
COMPILING.txt for details.
Modified: trunk/Afloat/Afloat.h
==============================================================================
--- trunk/Afloat/Afloat.h (original)
+++ trunk/Afloat/Afloat.h Thu Dec 18 07:17:46 2008
@@ -51,4 +51,11 @@
- (IBAction) showWindowFileInFinder:(id) sender;
+
+- (void) setKeptPinnedToDesktop:(BOOL) pinned forWindow:(NSWindow*) c
showBadgeAnimation:(BOOL) animated;
+- (BOOL) isWindowKeptPinnedToDesktop:(NSWindow*) w;
+
+- (void) animateFadeInForWindow:(NSWindow*) w;
+- (void) animateFadeOutForWindow:(NSWindow*) w;
+
@end
Modified: trunk/Afloat/Afloat.m
==============================================================================
--- trunk/Afloat/Afloat.m (original)
+++ trunk/Afloat/Afloat.m Thu Dec 18 07:17:46 2008
@@ -127,6 +127,11 @@
if (!result) // we want this to be visible to end users, too :)
NSLog(@"<Afloat> Could not install events filter (error: %@). Some
features may not work.", err);
+ // Set up window did become main/did resign main notification
+
+ [[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(windowDidBecomeMain:)
name:NSWindowDidBecomeMainNotification object:nil];
+ [[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(windowDidResignMain:)
name:NSWindowDidResignMainNotification object:nil];
+
// Nag, nag, nag, nag, nag, nag, nag, nag...
// delayed -- PS already slows down app launch enough.
//[self checkForNagOnInstall];
@@ -185,20 +190,20 @@
- (void) setKeptAfloat:(BOOL) afloat forWindow:(NSWindow*) c
showBadgeAnimation:(BOOL) animated {
L0Log(@"window = %@, will be afloat = %d, was afloat = %d", c, afloat,
[self isWindowKeptAfloat:c]);
- BOOL wasAfloat = [self isWindowKeptAfloat:c];
+ BOOL wasKeptElsewhere = [self isWindowKeptAfloat:c] || [self
isWindowKeptPinnedToDesktop:c];
- if ([c level] == NSNormalWindowLevel && afloat) {
+ if (afloat) {
[c setLevel:NSFloatingWindowLevel];
- if (!wasAfloat && animated) {
+ if (!wasKeptElsewhere && animated) {
L0LogS(@"Starting begin keeping afloat animation...");
[[AfloatBadgeController badgeControllerForWindow:c]
animateWithBadgeType:AfloatBadgeDidBeginKeepingAfloat];
}
- } else if ([c level] == NSFloatingWindowLevel && !afloat) {
+ } else if (!afloat) {
[c setLevel:NSNormalWindowLevel];
- if (wasAfloat && animated) {
+ if (wasKeptElsewhere && animated) {
L0LogS(@"Starting end keeping afloat animation...");
[[AfloatBadgeController badgeControllerForWindow:c]
animateWithBadgeType:AfloatBadgeDidEndKeepingAfloat];
}
@@ -295,7 +300,7 @@
if (animate) {
[NSAnimationContext beginGrouping];
[[NSAnimationContext currentContext] setDuration:0.3];
- [[window animator] setAlphaValue:f];
+ [(NSWindow*)[window animator] setAlphaValue:f];
[NSAnimationContext endGrouping];
} else
[window setAlphaValue:f];
@@ -325,6 +330,8 @@
[AfloatStorage setSharedValue:v window:window key:kAfloatTrackedViewKey];
L0Log(@"tracker = %@ view = %@", tracker, v);
+
+ [tracker release];
}
- (void) endTrackingWindow:(NSWindow*) window {
@@ -341,27 +348,45 @@
- (void) mouseEntered:(NSEvent*) e {
L0Log(@"%@", e);
- if (![self alphaValueAnimatesOnMouseOverForWindow:[e window]]) return;
+ [self animateFadeInForWindow:[e window]];
+}
+
+- (void) windowDidBecomeMain:(NSNotification*) n {
+ [self animateFadeInForWindow:[n object]];
+}
+
+- (void) animateFadeInForWindow:(NSWindow*) w {
+ if (![self alphaValueAnimatesOnMouseOverForWindow:w]) return;
[NSAnimationContext beginGrouping];
[[NSAnimationContext currentContext] setDuration:0.2];
- [[[e window] animator] setAlphaValue:1.0];
+ [[w animator] setAlphaValue:1.0];
[NSAnimationContext endGrouping];
+
}
- (void) mouseExited:(NSEvent*) e {
L0Log(@"%@", e);
- if (![self alphaValueAnimatesOnMouseOverForWindow:[e window]]) return;
-
- id alphaValue = [AfloatStorage sharedValueForWindow:[e window]
key:kAfloatLastAlphaValueKey];
+ [self animateFadeOutForWindow:[e window]];
+}
+
+- (void) windowDidResignMain:(NSNotification*) n {
+ [self animateFadeOutForWindow:[n object]];
+}
+
+- (void) animateFadeOutForWindow:(NSWindow*) w {
+ if (![self alphaValueAnimatesOnMouseOverForWindow:w]) return;
+
+ id alphaValue = [AfloatStorage sharedValueForWindow:w
key:kAfloatLastAlphaValueKey];
if (!alphaValue) return;
float a = [alphaValue floatValue];
[NSAnimationContext beginGrouping];
[[NSAnimationContext currentContext] setDuration:0.5];
- [[[e window] animator] setAlphaValue:a];
+ [[w animator] setAlphaValue:a];
[NSAnimationContext endGrouping];
+
}
- (IBAction) showAdjustEffectsPanel:(id) sender {
@@ -415,6 +440,22 @@
[[NSWorkspace sharedWorkspace] selectFile:[url path]
inFileViewerRootedAtPath:@""];
}
+- (void) setKeptPinnedToDesktop:(BOOL) pinned forWindow:(NSWindow*) c
showBadgeAnimation:(BOOL) animated {
+ L0Log(@"window = %@, will be pinned to desktop = %d, was pinned to
desktop = %d", c, pinned, [self isWindowKeptPinnedToDesktop:c]);
+ // BOOL wasPinned = [self isWindowKeptAfloat:c];
+ // TODO: make a badge for "Pinned to Desktop"
+
+ [c setLevel:(pinned)? kCGDesktopWindowLevel : NSNormalWindowLevel];
+
+ if (!pinned && [self isWindowOverlay:c] && !_settingOverlay)
+ [self setOverlay:NO forWindow:c animated:animated showBadgeAnimation:NO];
+
+}
+
+- (BOOL) isWindowKeptPinnedToDesktop:(NSWindow*) w {
+ return [w level] == kCGDesktopWindowLevel;
+}
+
@end
@implementation NSApplication (Afloat)
@@ -422,6 +463,7 @@
- (void) afloat_sendEvent:(NSEvent*) evt {
unsigned mods = [evt modifierFlags] &
NSDeviceIndependentModifierFlagsMask;
NSPoint ori;
+ NSRect frame;
Afloat* hub = [Afloat sharedInstance];
NSWindow* wnd;
@@ -443,6 +485,7 @@
}
case NSLeftMouseDown:
+ case NSRightMouseDown:
return; // filter it
case NSLeftMouseDragged:
@@ -453,8 +496,29 @@
ori.y -= [evt deltaY];
[wnd setFrameOrigin:ori];
return; // filter it once done
+
+ case NSRightMouseDragged:
+ if ((wnd = [hub currentWindow]) && ([wnd styleMask] &
NSResizableWindowMask)) {
+ NSSize minSize = [wnd minSize];
+
+ frame = [wnd frame];
+ frame.size.width += [evt deltaX];
+ frame.size.height += [evt deltaY];
+
+ if (frame.size.width < minSize.width)
+ frame.size.width = minSize.width;
+
+ if (frame.size.height < minSize.height)
+ frame.size.height = minSize.height;
+ else
+ frame.origin.y -= [evt deltaY];
+
+ [wnd setFrame:frame display:YES];
+ return; // filter it once done
+ }
case NSLeftMouseUp:
+ case NSRightMouseUp:
return; // filter it
case NSScrollWheel:
Added: trunk/Afloat/Afloat.xcconfig
==============================================================================
--- (empty file)
+++ trunk/Afloat/Afloat.xcconfig Thu Dec 18 07:17:46 2008
@@ -0,0 +1,21 @@
+//
+// Afloat.xcconfig
+// Afloat
+//
+// Created by ∞ on 18/06/08.
+// Copyright 2008 Emanuele Vulcano. All rights reserved.
+//
+
+
+SDKROOT = macosx10.5
+PREBINDING = NO
+ARCHS = $(ARCHS_STANDARD_32_64_BIT)
+
+
+VERSION = 2.1
+USER_VISIBLE_VERSION = 2.1
+
+OBJROOT = $(SRCROOT)/TemporaryItems
+SYMROOT = $(SRCROOT)/Build
+
+INFINITELABS_CODE_SIGNING_IDENTITY = Infinite Labs Code Signing (Mac OS X)
Modified: trunk/Afloat/Afloat.xcodeproj/project.pbxproj
==============================================================================
--- trunk/Afloat/Afloat.xcodeproj/project.pbxproj (original)
+++ trunk/Afloat/Afloat.xcodeproj/project.pbxproj Thu Dec 18 07:17:46 2008
@@ -6,6 +6,20 @@
objectVersion = 44;
objects = {
+/* Begin PBXAggregateTarget section */
+ 15FBC38E0E9BF71A0005A4C0 /* Update Localizations */ = {
+ isa = PBXAggregateTarget;
+ buildConfigurationList = 15FBC3910E9BF7390005A4C0 /* Build
configuration list for PBXAggregateTarget "Update Localizations" */;
+ buildPhases = (
+ 15FBC38D0E9BF71A0005A4C0 /* ShellScript */,
+ );
+ dependencies = (
+ );
+ name = "Update Localizations";
+ productName = "Update Localizations";
+ };
+/* End PBXAggregateTarget section */
+
/* Begin PBXBuildFile section */
1513542E0D9E3E43007D56FA /* main-Nag.m in Sources */ = {isa =
PBXBuildFile; fileRef = 1513541E0D9E3DF9007D56FA /* main-Nag.m */; };
151354400D9E3F5A007D56FA /* NSAlert+L0Alert.m in Sources */ = {isa =
PBXBuildFile; fileRef = 1513543F0D9E3F5A007D56FA /* NSAlert+L0Alert.m */; };
@@ -17,10 +31,10 @@
151354870D9E415C007D56FA /* AfloatNag.m in Sources */ = {isa =
PBXBuildFile; fileRef = 151354860D9E415C007D56FA /* AfloatNag.m */; };
1513548E0D9E41EC007D56FA /* Carbon.framework in Frameworks */ = {isa =
PBXBuildFile; fileRef = 1513548D0D9E41EC007D56FA /* Carbon.framework */; };
151354B20D9E44F8007D56FA /* Afloat_AfloatNagging.m in Sources */ = {isa
= PBXBuildFile; fileRef = 151354B10D9E44F8007D56FA /*
Afloat_AfloatNagging.m */; };
- 151354C90D9E47C0007D56FA /* Donate for Afloat.app in Resources */ = {isa
= PBXBuildFile; fileRef = 151354250D9E3E31007D56FA /* Donate for Afloat.app
*/; };
1513550A0D9E4DF1007D56FA /* Afloat2.icns in Resources */ = {isa =
PBXBuildFile; fileRef = 15522F9C0D999F770007B44F /* Afloat2.icns */; };
153C040B0D882C3700037E2F /* JRSwizzle.m in Sources */ = {isa =
PBXBuildFile; fileRef = 153C040A0D882C3700037E2F /* JRSwizzle.m */; };
153C04180D882CEF00037E2F /* Afloat.nib in Resources */ = {isa =
PBXBuildFile; fileRef = 153C04160D882CEF00037E2F /* Afloat.nib */; };
+ 1545809A0ECE273700F3D3D7 /* libBGHUDAppKit.a in Frameworks */ = {isa =
PBXBuildFile; fileRef = 154580990ECE273700F3D3D7 /* libBGHUDAppKit.a */; };
154B2E140D895DD2004593D4 /* AfloatSinkingBadge.png in Resources */ =
{isa = PBXBuildFile; fileRef = 154B2E130D895DD2004593D4 /*
AfloatSinkingBadge.png */; };
15522F9D0D999F770007B44F /* Afloat2.icns in Resources */ = {isa =
PBXBuildFile; fileRef = 15522F9C0D999F770007B44F /* Afloat2.icns */; };
157C23650D801C7A00A39E33 /* AfloatButton.png in Resources */ = {isa =
PBXBuildFile; fileRef = 157C23640D801C7A00A39E33 /* AfloatButton.png */; };
@@ -29,17 +43,20 @@
15950BF00D7F4C8700D48A24 /* AfloatPanelController.m in Sources */ = {isa
= PBXBuildFile; fileRef = 15950BEE0D7F4C8700D48A24 /*
AfloatPanelController.m */; };
15950BF40D7F4C9A00D48A24 /* AfloatHUDBackdrop.png in Resources */ = {isa
= PBXBuildFile; fileRef = 15950BF30D7F4C9A00D48A24 /* AfloatHUDBackdrop.png
*/; };
15950BFA0D7F4CA900D48A24 /* AfloatPanel.nib in Resources */ = {isa =
PBXBuildFile; fileRef = 15950BF90D7F4CA900D48A24 /* AfloatPanel.nib */; };
- 15950C070D7F4CEB00D48A24 /* iLifeControls.framework in Frameworks */ =
{isa = PBXBuildFile; fileRef = 15950C060D7F4CEB00D48A24 /*
iLifeControls.framework */; };
- 15950C1C0D7F4CF800D48A24 /* iLifeControls.framework in CopyFiles */ =
{isa = PBXBuildFile; fileRef = 15950C060D7F4CEB00D48A24 /*
iLifeControls.framework */; };
15950C1E0D7F4D1600D48A24 /* QuartzCore.framework in Frameworks */ = {isa
= PBXBuildFile; fileRef = 15950C1D0D7F4D1600D48A24 /* QuartzCore.framework
*/; };
+ 15A2AF110ECDCDC700FA6882 /* Donate for Afloat.app in Copy Donate for
Afloat */ = {isa = PBXBuildFile; fileRef = 151354250D9E3E31007D56FA /*
Donate for Afloat.app */; };
15A957DE0D7C347A002CFBB8 /* AfloatStorage.m in Sources */ = {isa =
PBXBuildFile; fileRef = 15A957DD0D7C347A002CFBB8 /* AfloatStorage.m */; };
15B914270D721E5B005D9404 /* AfloatMenuBadge.png in Resources */ = {isa =
PBXBuildFile; fileRef = 15B914260D721E5B005D9404 /* AfloatMenuBadge.png */;
};
+ 15C88C0F0E67149C003B01AA /* AfloatWindowIdentifier.m in Sources */ =
{isa = PBXBuildFile; fileRef = 15C88C0E0E67149C003B01AA /*
AfloatWindowIdentifier.m */; };
+ 15C88C100E67149C003B01AA /* AfloatWindowIdentifier.m in Sources */ =
{isa = PBXBuildFile; fileRef = 15C88C0E0E67149C003B01AA /*
AfloatWindowIdentifier.m */; };
15CB74510D8932F6002BAA81 /* AfloatFloatingBadge.png in Resources */ =
{isa = PBXBuildFile; fileRef = 15CB74500D8932F6002BAA81 /*
AfloatFloatingBadge.png */; };
15CB745C0D89336B002BAA81 /* AfloatBadge.nib in Resources */ = {isa =
PBXBuildFile; fileRef = 15CB745A0D89336B002BAA81 /* AfloatBadge.nib */; };
15CB745F0D8933B1002BAA81 /* AfloatBadgeController.m in Sources */ = {isa
= PBXBuildFile; fileRef = 15CB745E0D8933B1002BAA81 /*
AfloatBadgeController.m */; };
15EDDA380DA80E4C00C16A67 /* Carbon.framework in Frameworks */ = {isa =
PBXBuildFile; fileRef = 1513548D0D9E41EC007D56FA /* Carbon.framework */; };
15EDDA3A0DA80E5C00C16A67 /* Cocoa.framework in Frameworks */ = {isa =
PBXBuildFile; fileRef = 1058C7ADFEA557BF11CA2CBB /* Cocoa.framework */; };
15F2FF6D0D6611BC00737D76 /* Afloat.m in Sources */ = {isa =
PBXBuildFile; fileRef = 15F2FF6C0D6611BC00737D76 /* Afloat.m */; };
+ 15FBC38A0E9BF4CE0005A4C0 /* it.lproj in Resources */ = {isa =
PBXBuildFile; fileRef = 15FBC3810E9BF4CE0005A4C0 /* it.lproj */; };
+ 15FBC38B0E9BF4CE0005A4C0 /* it.lproj in Resources */ = {isa =
PBXBuildFile; fileRef = 15FBC3810E9BF4CE0005A4C0 /* it.lproj */; };
8D5B49B0048680CD000E48DA /* InfoPlist.strings in Resources */ = {isa =
PBXBuildFile; fileRef = 089C167DFE841241C02AAC07 /* InfoPlist.strings */; };
8D5B49B4048680CD000E48DA /* Cocoa.framework in Frameworks */ = {isa =
PBXBuildFile; fileRef = 1058C7ADFEA557BF11CA2CBB /* Cocoa.framework */; };
/* End PBXBuildFile section */
@@ -52,36 +69,58 @@
remoteGlobalIDString = 151354240D9E3E31007D56FA;
remoteInfo = "Donate for Afloat";
};
+ 15FBC3920E9BF7590005A4C0 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 089C1669FE841209C02AAC07 /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = 15FBC38E0E9BF71A0005A4C0;
+ remoteInfo = "Update Localizations";
+ };
+ 15FBC3940E9BF75C0005A4C0 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 089C1669FE841209C02AAC07 /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = 15FBC38E0E9BF71A0005A4C0;
+ remoteInfo = "Update Localizations";
+ };
/* End PBXContainerItemProxy section */
/* Begin PBXCopyFilesBuildPhase section */
- 15950C210D7F4D1600D48A24 /* CopyFiles */ = {
+ 15950C210D7F4D1600D48A24 /* Copy Frameworks */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask =
2147483647;
dstPath = "";
dstSubfolderSpec = 10;
files = (
- 15950C1C0D7F4CF800D48A24 /* iLifeControls.framework in CopyFiles */,
);
+ name = "Copy Frameworks";
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 15A2AF1B0ECDCDDF00FA6882 /* Copy Donate for Afloat */ = {
+ isa = PBXCopyFilesBuildPhase;
+ buildActionMask =
2147483647;
+ dstPath = Contents;
+ dstSubfolderSpec = 1;
+ files = (
+ 15A2AF110ECDCDC700FA6882 /* Donate for Afloat.app in Copy Donate for
Afloat */,
+ );
+ name = "Copy Donate for Afloat";
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */
089C1672FE841209C02AAC07 /* Foundation.framework */ = {isa =
PBXFileReference; lastKnownFileType = wrapper.framework; name =
Foundation.framework; path =
/System/Library/Frameworks/Foundation.framework; sourceTree = "<absolute>";
};
- 089C167EFE841241C02AAC07 /* English */ = {isa = PBXFileReference;
fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English;
path = English.lproj/InfoPlist.strings; sourceTree = "<group>"; };
089C167FFE841241C02AAC07 /* AppKit.framework */ = {isa =
PBXFileReference; lastKnownFileType = wrapper.framework; name =
AppKit.framework; path = /System/Library/Frameworks/AppKit.framework;
sourceTree = "<absolute>"; };
1058C7ADFEA557BF11CA2CBB /* Cocoa.framework */ = {isa =
PBXFileReference; lastKnownFileType = wrapper.framework; name =
Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework;
sourceTree = "<absolute>"; };
+ 1512ABDB0E09AB7300BA67AC /* Afloat.xcconfig */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path
= Afloat.xcconfig; sourceTree = "<group>"; };
1513541E0D9E3DF9007D56FA /* main-Nag.m */ = {isa = PBXFileReference;
fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path
= "main-Nag.m"; sourceTree = "<group>"; };
151354250D9E3E31007D56FA /* Donate for Afloat.app */ = {isa =
PBXFileReference; explicitFileType = wrapper.application; includeInIndex =
0; path = "Donate for Afloat.app"; sourceTree = BUILT_PRODUCTS_DIR; };
151354270D9E3E31007D56FA /* Donate for Afloat-Info.plist */ = {isa =
PBXFileReference; lastKnownFileType = text.plist.xml; path = "Donate for
Afloat-Info.plist"; sourceTree = "<group>"; };
- 151354390D9E3ED2007D56FA /* English */ = {isa = PBXFileReference;
lastKnownFileType = wrapper.nib; name = English; path =
English.lproj/Donate.nib; sourceTree = "<group>"; };
- 1513543E0D9E3F5A007D56FA /* NSAlert+L0Alert.h */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h;
name = "NSAlert+L0Alert.h"; path = "../Alerts/NSAlert+L0Alert.h";
sourceTree = SOURCE_ROOT; };
- 1513543F0D9E3F5A007D56FA /* NSAlert+L0Alert.m */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc;
name = "NSAlert+L0Alert.m"; path = "../Alerts/NSAlert+L0Alert.m";
sourceTree = SOURCE_ROOT; };
+ 1513543E0D9E3F5A007D56FA /* NSAlert+L0Alert.h */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h;
name = "NSAlert+L0Alert.h"; path = "Alerts/NSAlert+L0Alert.h"; sourceTree =
MULTIVERSE; };
+ 1513543F0D9E3F5A007D56FA /* NSAlert+L0Alert.m */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc;
name = "NSAlert+L0Alert.m"; path = "Alerts/NSAlert+L0Alert.m"; sourceTree =
MULTIVERSE; };
1513547A0D9E4116007D56FA /* AfloatDonateFirstAlert.alert */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path =
AfloatDonateFirstAlert.alert; sourceTree = "<group>"; };
1513547B0D9E4116007D56FA /* AfloatDonateLastAlert.alert */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path =
AfloatDonateLastAlert.alert; sourceTree = "<group>"; };
- 1513547F0D9E412C007D56FA /* English */ = {isa = PBXFileReference;
fileEncoding = 4; lastKnownFileType = text.plist.strings; name = English;
path = English.lproj/AfloatDonateFirstAlert.strings; sourceTree
= "<group>"; };
- 151354810D9E412C007D56FA /* English */ = {isa = PBXFileReference;
fileEncoding = 4; lastKnownFileType = text.plist.strings; name = English;
path = English.lproj/AfloatDonateLastAlert.strings; sourceTree = "<group>";
};
151354850D9E415C007D56FA /* AfloatNag.h */ = {isa = PBXFileReference;
fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AfloatNag.h;
sourceTree = "<group>"; };
151354860D9E415C007D56FA /* AfloatNag.m */ = {isa = PBXFileReference;
fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path =
AfloatNag.m; sourceTree = "<group>"; };
151354880D9E418C007D56FA /* Nag.pch */ = {isa = PBXFileReference;
fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Nag.pch;
sourceTree = "<group>"; };
@@ -90,7 +129,7 @@
151354B10D9E44F8007D56FA /* Afloat_AfloatNagging.m */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc;
path = Afloat_AfloatNagging.m; sourceTree = "<group>"; };
151354B60D9E455E007D56FA /* AfloatNagPreferences.h */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h;
path = AfloatNagPreferences.h; sourceTree = "<group>"; };
153C040A0D882C3700037E2F /* JRSwizzle.m */ = {isa = PBXFileReference;
fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path =
JRSwizzle.m; sourceTree = "<group>"; };
- 153C04170D882CEF00037E2F /* English */ = {isa = PBXFileReference;
lastKnownFileType = wrapper.nib; name = English; path =
English.lproj/Afloat.nib; sourceTree = "<group>"; };
+ 154580990ECE273700F3D3D7 /* libBGHUDAppKit.a */ = {isa =
PBXFileReference; lastKnownFileType =
archive.ar; path = libBGHUDAppKit.a;
sourceTree = "<group>"; };
154B2E130D895DD2004593D4 /* AfloatSinkingBadge.png */ = {isa =
PBXFileReference; lastKnownFileType = image.png; path =
AfloatSinkingBadge.png; sourceTree = "<group>"; };
15522F9C0D999F770007B44F /* Afloat2.icns */ = {isa = PBXFileReference;
lastKnownFileType = image.icns; path = Afloat2.icns; sourceTree
= "<group>"; };
157C23640D801C7A00A39E33 /* AfloatButton.png */ = {isa =
PBXFileReference; lastKnownFileType = image.png; path = AfloatButton.png;
sourceTree = "<group>"; };
@@ -100,23 +139,29 @@
15950BED0D7F4C8700D48A24 /* AfloatPanelController.h */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h;
path = AfloatPanelController.h; sourceTree = "<group>"; };
15950BEE0D7F4C8700D48A24 /* AfloatPanelController.m */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc;
path = AfloatPanelController.m; sourceTree = "<group>"; };
15950BF30D7F4C9A00D48A24 /* AfloatHUDBackdrop.png */ = {isa =
PBXFileReference; lastKnownFileType = image.png; path =
AfloatHUDBackdrop.png; sourceTree = "<group>"; };
- 15950BF70D7F4CA500D48A24 /* English */ = {isa = PBXFileReference;
lastKnownFileType = wrapper.nib; name = English; path =
English.lproj/AfloatPanel.nib; sourceTree = "<group>"; };
- 15950C060D7F4CEB00D48A24 /* iLifeControls.framework */ = {isa =
PBXFileReference; lastKnownFileType = wrapper.framework; path =
iLifeControls.framework; sourceTree = "<group>"; };
15950C1D0D7F4D1600D48A24 /* QuartzCore.framework */ = {isa =
PBXFileReference; lastKnownFileType = wrapper.framework; name =
QuartzCore.framework; path =
/System/Library/Frameworks/QuartzCore.framework; sourceTree = "<absolute>";
};
+ 15A015B00E9BCB14006B819C /* en */ = {isa = PBXFileReference;
lastKnownFileType = wrapper.nib; name = en; path = en.lproj/Afloat.nib;
sourceTree = "<group>"; };
+ 15A015B10E9BCB23006B819C /* en */ = {isa = PBXFileReference;
lastKnownFileType = wrapper.nib; name = en; path =
en.lproj/AfloatPanel.nib; sourceTree = "<group>"; };
+ 15A015B20E9BCB26006B819C /* en */ = {isa = PBXFileReference;
lastKnownFileType = wrapper.nib; name = en; path =
en.lproj/AfloatBadge.nib; sourceTree = "<group>"; };
+ 15A015B30E9BCB2B006B819C /* en */ = {isa = PBXFileReference;
lastKnownFileType = text.plist.strings; name = en; path =
en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
+ 15A015B60E9BCBA3006B819C /* en */ = {isa = PBXFileReference;
lastKnownFileType = wrapper.nib; name = en; path = en.lproj/Donate.nib;
sourceTree = "<group>"; };
+ 15A015B70E9BCBAB006B819C /* en */ = {isa = PBXFileReference;
lastKnownFileType = text.plist.strings; name = en; path =
en.lproj/AfloatDonateLastAlert.strings; sourceTree = "<group>"; };
+ 15A015B80E9BCBB0006B819C /* en */ = {isa = PBXFileReference;
lastKnownFileType = text.plist.strings; name = en; path =
en.lproj/AfloatDonateFirstAlert.strings; sourceTree = "<group>"; };
15A957DC0D7C347A002CFBB8 /* AfloatStorage.h */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h;
path = AfloatStorage.h; sourceTree = "<group>"; };
15A957DD0D7C347A002CFBB8 /* AfloatStorage.m */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc;
path = AfloatStorage.m; sourceTree = "<group>"; };
15B914260D721E5B005D9404 /* AfloatMenuBadge.png */ = {isa =
PBXFileReference; lastKnownFileType = image.png; path =
AfloatMenuBadge.png; sourceTree = "<group>"; };
+ 15C88C0D0E67149C003B01AA /* AfloatWindowIdentifier.h */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h;
path = AfloatWindowIdentifier.h; sourceTree = "<group>"; };
+ 15C88C0E0E67149C003B01AA /* AfloatWindowIdentifier.m */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc;
path = AfloatWindowIdentifier.m; sourceTree = "<group>"; };
15CB74500D8932F6002BAA81 /* AfloatFloatingBadge.png */ = {isa =
PBXFileReference; lastKnownFileType = image.png; path =
AfloatFloatingBadge.png; sourceTree = "<group>"; };
- 15CB745B0D89336B002BAA81 /* English */ = {isa = PBXFileReference;
lastKnownFileType = wrapper.nib; name = English; path =
English.lproj/AfloatBadge.nib; sourceTree = "<group>"; };
15CB745D0D8933B1002BAA81 /* AfloatBadgeController.h */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h;
path = AfloatBadgeController.h; sourceTree = "<group>"; };
15CB745E0D8933B1002BAA81 /* AfloatBadgeController.m */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc;
path = AfloatBadgeController.m; sourceTree = "<group>"; };
15DDB2B10D776C340008FF87 /* JRSwizzle.h */ = {isa = PBXFileReference;
fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JRSwizzle.h;
sourceTree = "<group>"; };
15F2FF6B0D6611BC00737D76 /* Afloat.h */ = {isa = PBXFileReference;
fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Afloat.h;
sourceTree = "<group>"; };
15F2FF6C0D6611BC00737D76 /* Afloat.m */ = {isa = PBXFileReference;
fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Afloat.m;
sourceTree = "<group>"; };
+ 15FBC3810E9BF4CE0005A4C0 /* it.lproj */ = {isa = PBXFileReference;
lastKnownFileType = folder; name = it.lproj; path = "__Compiled
Locales/it.lproj"; sourceTree = "<group>"; };
32DBCF630370AF2F00C91783 /* Afloat_Prefix.pch */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h;
path = Afloat_Prefix.pch; sourceTree = "<group>"; };
8D5B49B6048680CD000E48DA /* Afloat.bundle */ = {isa = PBXFileReference;
explicitFileType = wrapper.cfbundle; includeInIndex = 0; path =
Afloat.bundle; sourceTree = BUILT_PRODUCTS_DIR; };
8D5B49B7048680CD000E48DA /* Info.plist */ = {isa = PBXFileReference;
fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist;
sourceTree = "<group>"; };
- D2F7E65807B2D6F200F64583 /* CoreData.framework */ = {isa =
PBXFileReference; lastKnownFileType = wrapper.framework; name =
CoreData.framework; path = /System/Library/Frameworks/CoreData.framework;
sourceTree = "<absolute>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
@@ -135,8 +180,8 @@
files = (
15EDDA380DA80E4C00C16A67 /* Carbon.framework in Frameworks */,
8D5B49B4048680CD000E48DA /* Cocoa.framework in Frameworks */,
- 15950C070D7F4CEB00D48A24 /* iLifeControls.framework in Frameworks */,
15950C1E0D7F4D1600D48A24 /* QuartzCore.framework in Frameworks */,
+ 1545809A0ECE273700F3D3D7 /* libBGHUDAppKit.a in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -146,6 +191,7 @@
089C166AFE841209C02AAC07 /* Afloat */ = {
isa = PBXGroup;
children = (
+ 1512ABDB0E09AB7300BA67AC /* Afloat.xcconfig */,
1513541D0D9E3DE1007D56FA /* Nag */,
08FB77AFFE84173DC02AAC07 /* Classes */,
32C88E010371C26100C91783 /* Other Sources */,
@@ -168,6 +214,7 @@
089C167CFE841241C02AAC07 /* Resources */ = {
isa = PBXGroup;
children = (
+ 15FBC3810E9BF4CE0005A4C0 /* it.lproj */,
15522F9C0D999F770007B44F /* Afloat2.icns */,
15CB74500D8932F6002BAA81 /* AfloatFloatingBadge.png */,
154B2E130D895DD2004593D4 /* AfloatSinkingBadge.png */,
@@ -195,6 +242,8 @@
15F2FF6C0D6611BC00737D76 /* Afloat.m */,
15A957DC0D7C347A002CFBB8 /* AfloatStorage.h */,
15A957DD0D7C347A002CFBB8 /* AfloatStorage.m */,
+ 15C88C0D0E67149C003B01AA /* AfloatWindowIdentifier.h */,
+ 15C88C0E0E67149C003B01AA /* AfloatWindowIdentifier.m */,
);
name = Classes;
sourceTree = "<group>";
@@ -202,9 +251,9 @@
1058C7ACFEA557BF11CA2CBB /* Linked Frameworks */ = {
isa = PBXGroup;
children = (
+ 154580990ECE273700F3D3D7 /* libBGHUDAppKit.a */,
1513548D0D9E41EC007D56FA /* Carbon.framework */,
15950C1D0D7F4D1600D48A24 /* QuartzCore.framework */,
- 15950C060D7F4CEB00D48A24 /* iLifeControls.framework */,
1058C7ADFEA557BF11CA2CBB /* Cocoa.framework */,
);
name = "Linked Frameworks";
@@ -214,7 +263,6 @@
isa = PBXGroup;
children = (
089C167FFE841241C02AAC07 /* AppKit.framework */,
- D2F7E65807B2D6F200F64583 /* CoreData.framework */,
089C1672FE841209C02AAC07 /* Foundation.framework */,
);
name = "Other Frameworks";
@@ -297,11 +345,12 @@
151354210D9E3E31007D56FA /* Resources */,
151354220D9E3E31007D56FA /* Sources */,
151354230D9E3E31007D56FA /* Frameworks */,
- 151354D80D9E47F9007D56FA /* Sign Code */,
+ 15E3CA530EAA293100518849 /* Sign Code */,
);
buildRules = (
);
dependencies = (
+ 15FBC3950E9BF75C0005A4C0 /* PBXTargetDependency */,
);
name = "Donate for Afloat";
productName = "Donate for Afloat";
@@ -313,16 +362,18 @@
buildConfigurationList = 1DEB913A08733D840010E9CD /* Build
configuration list for PBXNativeTarget "Afloat" */;
buildPhases = (
8D5B49AF048680CD000E48DA /* Resources */,
+ 15A2AF1B0ECDCDDF00FA6882 /* Copy Donate for Afloat */,
8D5B49B1048680CD000E48DA /* Sources */,
8D5B49B3048680CD000E48DA /* Frameworks */,
- 15950C210D7F4D1600D48A24 /* CopyFiles */,
+ 15950C210D7F4D1600D48A24 /* Copy Frameworks */,
152C72A70D8AAF87007438FA /* Hide Extension & Add HFS+ Attributes */,
- 1532AE860D8FA4500061A749 /* Sign Code */,
+ 15E3CA510EAA292000518849 /* Sign Code */,
);
buildRules = (
);
dependencies = (
151354C80D9E47B7007D56FA /* PBXTargetDependency */,
+ 15FBC3930E9BF7590005A4C0 /* PBXTargetDependency */,
);
name = Afloat;
productInstallPath = "$(HOME)/Library/Bundles";
@@ -338,12 +389,22 @@
buildConfigurationList = 1DEB913E08733D840010E9CD /* Build
configuration list for PBXProject "Afloat" */;
compatibilityVersion = "Xcode 3.0";
hasScannedForEncodings = 1;
+ knownRegions = (
+ English,
+ Japanese,
+ French,
+ German,
+ "zh-Hant",
+ en,
+ it,
+ );
mainGroup = 089C166AFE841209C02AAC07 /* Afloat */;
projectDirPath = "";
projectRoot = "";
targets = (
8D5B49AC048680CD000E48DA /* Afloat */,
151354240D9E3E31007D56FA /* Donate for Afloat */,
+ 15FBC38E0E9BF71A0005A4C0 /* Update Localizations */,
);
};
/* End PBXProject section */
@@ -359,6 +420,7 @@
151354820D9E412C007D56FA /* AfloatDonateFirstAlert.strings in
Resources */,
151354830D9E412C007D56FA /* AfloatDonateLastAlert.strings in Resources
*/,
1513550A0D9E4DF1007D56FA /* Afloat2.icns in Resources */,
+ 15FBC38B0E9BF4CE0005A4C0 /* it.lproj in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -366,7 +428,6 @@
isa = PBXResourcesBuildPhase;
buildActionMask =
2147483647;
files = (
- 151354C90D9E47C0007D56FA /* Donate for Afloat.app in Resources */,
8D5B49B0048680CD000E48DA /* InfoPlist.strings in Resources */,
15B914270D721E5B005D9404 /* AfloatMenuBadge.png in Resources */,
15950BF40D7F4C9A00D48A24 /* AfloatHUDBackdrop.png in Resources */,
@@ -378,41 +439,42 @@
15CB745C0D89336B002BAA81 /* AfloatBadge.nib in Resources */,
154B2E140D895DD2004593D4 /* AfloatSinkingBadge.png in Resources */,
15522F9D0D999F770007B44F /* Afloat2.icns in Resources */,
+ 15FBC38A0E9BF4CE0005A4C0 /* it.lproj in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXShellScriptBuildPhase section */
- 151354D80D9E47F9007D56FA /* Sign Code */ = {
+ 152C72A70D8AAF87007438FA /* Hide Extension & Add HFS+ Attributes */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask =
2147483647;
files = (
);
inputPaths = (
);
- name = "Sign Code";
+ name = "Hide Extension & Add HFS+ Attributes";
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
- shellScript = "if [ \"$USE_CODE_SIGNING\" == \"\" ]; then\n\techo
\"warning: The code was not signed. Set the USE_CODE_SIGNING build
setting.\" >&2\nfi\n\ncodesign --force --sign \"∞labs code signing (v1)\"
\"$BUILT_PRODUCTS_DIR/$WRAPPER_NAME\" --file-list
\"$BUILT_PRODUCTS_DIR/$WRAPPER_NAME.signed-files.log\"\n";
+ shellScript = "\nSETICON=\"$MULTIVERSE\"/Tools/Xcode/seticon\n\nif [ -f
\"$SETICON\" -a -x \"$SETICON\" ]; then\n\t\"$SETICON\" -d
\"$SRCROOT\"/Afloat2.icns
\"$BUILT_PRODUCTS_DIR\"/\"$WRAPPER_NAME\"\nfi\n\n\"$DEVELOPER_TOOLS_DIR\"/SetFile
-a EBC \"$BUILT_PRODUCTS_DIR\"/\"$WRAPPER_NAME\"\n";
};
- 152C72A70D8AAF87007438FA /* Hide Extension & Add HFS+ Attributes */ = {
+ 15E3CA510EAA292000518849 /* Sign Code */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask =
2147483647;
files = (
);
inputPaths = (
);
- name = "Hide Extension & Add HFS+ Attributes";
+ name = "Sign Code";
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
- shellScript
= "\nSETICON=\"$SRCROOT\"/Packaging/PackagingTools/seticon\n\nif [ -f
\"$SETICON\" -a -x \"$SETICON\" ]; then\n\t\"$SETICON\" -d
\"$SRCROOT\"/Afloat2.icns
\"$BUILT_PRODUCTS_DIR\"/\"$WRAPPER_NAME\"\nelse\n\techo \"warning: Since
the packaging tools are not in this release, I'm not setting the icon on
the finished product. (If you checked out the code from Google Code, this
is okay. Place the compiled, executable seticon tool from
http://osxutils.sf.net/ in $SETICON to fix this message.)\"
>&2\nfi\n\n\"$DEVELOPER_TOOLS_DIR\"/SetFile -a EBC
\"$BUILT_PRODUCTS_DIR\"/\"$WRAPPER_NAME\"\n";
+ shellScript = "\"$MULTIVERSE\"/Tools/Xcode/Sign || exit 1";
};
- 1532AE860D8FA4500061A749 /* Sign Code */ = {
+ 15E3CA530EAA293100518849 /* Sign Code */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask =
2147483647;
files = (
@@ -424,7 +486,20 @@
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
- shellScript = "if [ \"$USE_CODE_SIGNING\" == \"\" ]; then\n\techo
\"warning: The code was not signed. Set the USE_CODE_SIGNING build
setting.\" >&2\nfi\n\ncodesign --force --sign \"∞labs code signing (v1)\"
\"$BUILT_PRODUCTS_DIR/$WRAPPER_NAME\" --file-list
\"$BUILT_PRODUCTS_DIR/$WRAPPER_NAME.signed-files.log\"\ncodesign --force
--sign \"∞labs code signing (v1)\"
\"$BUILT_PRODUCTS_DIR/$WRAPPER_NAME/Contents/Frameworks/iLifeControls.framework\"
--file-list
\"$BUILT_PRODUCTS_DIR/$WRAPPER_NAME-iLifeControls.signed-files.log\"\n\n";
+ shellScript = "\"$MULTIVERSE\"/Tools/Xcode/Sign || exit 1";
+ };
+ 15FBC38D0E9BF71A0005A4C0 /* ShellScript */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask =
2147483647;
+ files = (
+ );
+ inputPaths = (
+ );
+ outputPaths = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "\"$MULTIVERSE\"/Tools/Xcode/BuildLocale\n";
};
/* End PBXShellScriptBuildPhase section */
@@ -436,6 +511,7 @@
1513542E0D9E3E43007D56FA /* main-Nag.m in Sources */,
151354400D9E3F5A007D56FA /* NSAlert+L0Alert.m in Sources */,
151354870D9E415C007D56FA /* AfloatNag.m in Sources */,
+ 15C88C100E67149C003B01AA /* AfloatWindowIdentifier.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -450,6 +526,7 @@
153C040B0D882C3700037E2F /* JRSwizzle.m in Sources */,
15CB745F0D8933B1002BAA81 /* AfloatBadgeController.m in Sources */,
151354B20D9E44F8007D56FA /* Afloat_AfloatNagging.m in Sources */,
+ 15C88C0F0E67149C003B01AA /* AfloatWindowIdentifier.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -461,13 +538,23 @@
target = 151354240D9E3E31007D56FA /* Donate for Afloat */;
targetProxy = 151354C70D9E47B7007D56FA /* PBXContainerItemProxy */;
};
+ 15FBC3930E9BF7590005A4C0 /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ target = 15FBC38E0E9BF71A0005A4C0 /* Update Localizations */;
+ targetProxy = 15FBC3920E9BF7590005A4C0 /* PBXContainerItemProxy */;
+ };
+ 15FBC3950E9BF75C0005A4C0 /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ target = 15FBC38E0E9BF71A0005A4C0 /* Update Localizations */;
+ targetProxy = 15FBC3940E9BF75C0005A4C0 /* PBXContainerItemProxy */;
+ };
/* End PBXTargetDependency section */
/* Begin PBXVariantGroup section */
089C167DFE841241C02AAC07 /* InfoPlist.strings */ = {
isa = PBXVariantGroup;
children = (
- 089C167EFE841241C02AAC07 /* English */,
+ 15A015B30E9BCB2B006B819C /* en */,
);
name = InfoPlist.strings;
sourceTree = "<group>";
@@ -475,7 +562,7 @@
151354780D9E40DD007D56FA /* Donate.nib */ = {
isa = PBXVariantGroup;
children = (
- 151354390D9E3ED2007D56FA /* English */,
+ 15A015B60E9BCBA3006B819C /* en */,
);
name = Donate.nib;
sourceTree = "<group>";
@@ -483,7 +570,7 @@
1513547E0D9E412C007D56FA /* AfloatDonateFirstAlert.strings */ = {
isa = PBXVariantGroup;
children = (
- 1513547F0D9E412C007D56FA /* English */,
+ 15A015B80E9BCBB0006B819C /* en */,
);
name = AfloatDonateFirstAlert.strings;
sourceTree = "<group>";
@@ -491,7 +578,7 @@
151354800D9E412C007D56FA /* AfloatDonateLastAlert.strings */ = {
isa = PBXVariantGroup;
children = (
- 151354810D9E412C007D56FA /* English */,
+ 15A015B70E9BCBAB006B819C /* en */,
);
name = AfloatDonateLastAlert.strings;
sourceTree = "<group>";
@@ -499,7 +586,7 @@
153C04160D882CEF00037E2F /* Afloat.nib */ = {
isa = PBXVariantGroup;
children = (
- 153C04170D882CEF00037E2F /* English */,
+ 15A015B00E9BCB14006B819C /* en */,
);
name = Afloat.nib;
sourceTree = "<group>";
@@ -507,7 +594,7 @@
15950BF90D7F4CA900D48A24 /* AfloatPanel.nib */ = {
isa = PBXVariantGroup;
children = (
- 15950BF70D7F4CA500D48A24 /* English */,
+ 15A015B10E9BCB23006B819C /* en */,
);
name = AfloatPanel.nib;
sourceTree = "<group>";
@@ -515,7 +602,7 @@
15CB745A0D89336B002BAA81 /* AfloatBadge.nib */ = {
isa = PBXVariantGroup;
children = (
- 15CB745B0D89336B002BAA81 /* English */,
+ 15A015B20E9BCB26006B819C /* en */,
);
name = AfloatBadge.nib;
sourceTree = "<group>";
@@ -525,6 +612,7 @@
/* Begin XCBuildConfiguration section */
151354280D9E3E31007D56FA /* Debug */ = {
isa = XCBuildConfiguration;
+ baseConfigurationReference = 1512ABDB0E09AB7300BA67AC /*
Afloat.xcconfig */;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
ARCHS = "$(ARCHS_STANDARD_32_BIT_PRE_XCODE_3_1)";
@@ -552,6 +640,7 @@
};
151354290D9E3E31007D56FA /* Release */ = {
isa = XCBuildConfiguration;
+ baseConfigurationReference = 1512ABDB0E09AB7300BA67AC /*
Afloat.xcconfig */;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
ARCHS = "$(ARCHS_STANDARD_32_BIT_PRE_XCODE_3_1)";
@@ -577,11 +666,33 @@
};
name = Release;
};
+ 15FBC38F0E9BF71B0005A4C0 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ COPY_PHASE_STRIP = NO;
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ PRODUCT_NAME = "Update Localizations";
+ };
+ name = Debug;
+ };
+ 15FBC3900E9BF71B0005A4C0 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ COPY_PHASE_STRIP = YES;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ GCC_ENABLE_FIX_AND_CONTINUE = NO;
+ PRODUCT_NAME = "Update Localizations";
+ ZERO_LINK = NO;
+ };
+ name = Release;
+ };
1DEB913B08733D840010E9CD /* Debug */ = {
isa = XCBuildConfiguration;
+ baseConfigurationReference = 1512ABDB0E09AB7300BA67AC /*
Afloat.xcconfig */;
buildSettings = {
- ARCHS = "$(ARCHS_STANDARD_32_BIT_PRE_XCODE_3_1)";
- ARCHS_STANDARD_32_BIT_PRE_XCODE_3_1 = "ppc i386";
+ ARCHS = "$(ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1)";
+ ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1 = "ppc i386 ppc64 x86_64";
COPY_PHASE_STRIP = NO;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
@@ -598,6 +709,11 @@
GCC_PREPROCESSOR_DEFINITIONS = "DEBUG=1";
INFOPLIST_FILE = Info.plist;
INSTALL_PATH = "$(HOME)/Library/Bundles";
+ LIBRARY_SEARCH_PATHS = (
+ "$(inherited)",
+ "\"$(SRCROOT)\"",
+ );
+ OTHER_LDFLAGS = "-ObjC";
PRODUCT_NAME = Afloat;
WRAPPER_EXTENSION = bundle;
ZERO_LINK = YES;
@@ -606,9 +722,10 @@
};
1DEB913C08733D840010E9CD /* Release */ = {
isa = XCBuildConfiguration;
+ baseConfigurationReference = 1512ABDB0E09AB7300BA67AC /*
Afloat.xcconfig */;
buildSettings = {
- ARCHS = "$(ARCHS_STANDARD_32_BIT_PRE_XCODE_3_1)";
- ARCHS_STANDARD_32_BIT_PRE_XCODE_3_1 = "ppc i386";
+ ARCHS = "$(ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1)";
+ ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1 = "ppc i386 ppc64 x86_64";
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
@@ -621,6 +738,11 @@
GCC_PREFIX_HEADER = Afloat_Prefix.pch;
INFOPLIST_FILE = Info.plist;
INSTALL_PATH = "$(HOME)/Library/Bundles";
+ LIBRARY_SEARCH_PATHS = (
+ "$(inherited)",
+ "\"$(SRCROOT)\"",
+ );
+ OTHER_LDFLAGS = "-ObjC";
PRODUCT_NAME = Afloat;
WRAPPER_EXTENSION = bundle;
};
@@ -628,29 +750,14 @@
};
1DEB913F08733D840010E9CD /* Debug */ = {
isa = XCBuildConfiguration;
+ baseConfigurationReference = 1512ABDB0E09AB7300BA67AC /*
Afloat.xcconfig */;
buildSettings = {
- GCC_WARN_ABOUT_RETURN_TYPE = YES;
- GCC_WARN_UNUSED_VARIABLE = YES;
- PREBINDING = NO;
- SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.5.sdk";
- SYMROOT = "$(SRCROOT)/../__Build";
- USE_CODE_SIGNING = "-YES-";
};
name = Debug;
};
1DEB914008733D840010E9CD /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
- ARCHS = (
- ppc,
- i386,
- );
- GCC_WARN_ABOUT_RETURN_TYPE = YES;
- GCC_WARN_UNUSED_VARIABLE = YES;
- PREBINDING = NO;
- SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.5.sdk";
- SYMROOT = "$(SRCROOT)/../__Build";
- USE_CODE_SIGNING = "-YES-";
};
name = Release;
};
@@ -662,6 +769,15 @@
buildConfigurations = (
151354280D9E3E31007D56FA /* Debug */,
151354290D9E3E31007D56FA /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ 15FBC3910E9BF7390005A4C0 /* Build configuration list for
PBXAggregateTarget "Update Localizations" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 15FBC38F0E9BF71B0005A4C0 /* Debug */,
+ 15FBC3900E9BF71B0005A4C0 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
Modified: trunk/Afloat/AfloatBadgeController.h
==============================================================================
--- trunk/Afloat/AfloatBadgeController.h (original)
+++ trunk/Afloat/AfloatBadgeController.h Thu Dec 18 07:17:46 2008
@@ -19,6 +19,7 @@
IBOutlet NSImageView* badgeView;
BOOL fadingOut;
+ unsigned int enqueuedFades;
}
@property(retain) NSWindow* parentWindow;
Modified: trunk/Afloat/AfloatBadgeController.m
==============================================================================
--- trunk/Afloat/AfloatBadgeController.m (original)
+++ trunk/Afloat/AfloatBadgeController.m Thu Dec 18 07:17:46 2008
@@ -70,6 +70,9 @@
NSRect parentFrame = [self.parentWindow frame];
NSRect windowFrame = [[self window] frame];
+ NSRect screenFrame = [[self.parentWindow screen] visibleFrame];
+ parentFrame = NSIntersectionRect(parentFrame, screenFrame);
+
NSPoint origin = parentFrame.origin;
origin.x += parentFrame.size.width / 2;
origin.x -= windowFrame.size.width / 2;
@@ -100,7 +103,7 @@
[[[self window] animator] setFrameOrigin:targetOrigin];
[NSAnimationContext endGrouping];
- [NSObject cancelPreviousPerformRequestsWithTarget:self
selector:@selector(_fadeOut) object:nil];
+ enqueuedFades++;
[self performSelector:@selector(_fadeOut) withObject:nil
afterDelay:0.7];
//}
}
@@ -123,7 +126,7 @@
[[[self window] animator] setFrameOrigin:targetOrigin];
[NSAnimationContext endGrouping];
- [NSObject cancelPreviousPerformRequestsWithTarget:self
selector:@selector(_fadeOut) object:nil];
+ enqueuedFades++;
[self performSelector:@selector(_fadeOut) withObject:nil
afterDelay:0.7];
//}
}
@@ -132,6 +135,13 @@
}
- (void) _fadeOut {
+ if (enqueuedFades <= 1)
+ enqueuedFades = 0;
+ else {
+ enqueuedFades--;
+ return;
+ }
+
if (fadingOut || ![[self window] isVisible]) return;
fadingOut = YES;
@@ -139,13 +149,14 @@
[[[self window] animator] setAlphaValue:0];
[NSAnimationContext endGrouping];
+ [AfloatStorage removeSharedValueForWindow:self.parentWindow
key:kAfloatBadgeControllerKey];
+
[self performSelector:@selector(_endAnimation) withObject:nil
afterDelay:0.3];
}
- (void) _endAnimation {
fadingOut = NO;
[[self window] orderOut:self];
- [AfloatStorage removeSharedValueForWindow:self.parentWindow
key:kAfloatBadgeControllerKey];
}
+ (NSImage*) didBeginKeepingAfloatBadge {
Modified: trunk/Afloat/AfloatNag.m
==============================================================================
--- trunk/Afloat/AfloatNag.m (original)
+++ trunk/Afloat/AfloatNag.m Thu Dec 18 07:17:46 2008
@@ -14,7 +14,7 @@
@implementation AfloatNag
- (void) applicationDidFinishLaunching:(NSNotification*) n {
- NSAlert* a; NSInteger donateButton;
+ NSAlert* a = nil; NSInteger donateButton;
switch (AfloatNagCurrentAction()) {
case kAfloatDoNotShowAlerts:
Modified: trunk/Afloat/AfloatPanelController.h
==============================================================================
--- trunk/Afloat/AfloatPanelController.h (original)
+++ trunk/Afloat/AfloatPanelController.h Thu Dec 18 07:17:46 2008
@@ -8,6 +8,11 @@
#import <Cocoa/Cocoa.h>
+typedef enum {
+ kAfloatWindowStateNormal = 0,
+ kAfloatWindowStateAfloat = 1,
+ kAfloatWindowStatePinnedToDesktop = 2,
+} AfloatWindowState;
@interface AfloatPanelController : NSWindowController {
NSWindow* _parentWindow;
@@ -23,8 +28,10 @@
- (IBAction) disableAllOverlays:(id) sender;
@property(retain) NSWindow* parentWindow;
-@property float alphaValue;
-@property(getter=isKeptAfloat) BOOL keptAfloat;
+@property CGFloat alphaValue;
+// @property(getter=isKeptAfloat) BOOL keptAfloat;
+@property AfloatWindowState windowState;
+
@property(getter=isOnAllSpaces) BOOL onAllSpaces;
@property(getter=isOverlay) BOOL overlay;
@property BOOL alphaValueAnimatesOnMouseOver;
Modified: trunk/Afloat/AfloatPanelController.m
==============================================================================
--- trunk/Afloat/AfloatPanelController.m (original)
+++ trunk/Afloat/AfloatPanelController.m Thu Dec 18 07:17:46 2008
@@ -121,7 +121,7 @@
[NSAnimationContext beginGrouping];
[[NSAnimationContext currentContext] setDuration:0.2];
- [[w animator] setAlphaValue:1.0];
+ [(NSWindow*)[w animator] setAlphaValue:1.0];
[NSAnimationContext endGrouping];
}
@@ -132,7 +132,7 @@
[NSAnimationContext beginGrouping];
[[NSAnimationContext currentContext] setDuration:0.2];
- [[w animator] setAlphaValue:0];
+ [(NSWindow*)[w animator] setAlphaValue:0];
[NSAnimationContext endGrouping];
[self performSelector:@selector(hideWindowImmediatly) withObject:nil
afterDelay:0.5];
@@ -143,7 +143,7 @@
[[self window] orderOut:self];
}
-- (float) alphaValue {
+- (CGFloat) alphaValue {
if (self.parentWindow) {
lastAlpha = [[Afloat sharedInstance]
currentAlphaValueForWindow:self.parentWindow];
return lastAlpha;
@@ -154,23 +154,57 @@
}
-- (void) setAlphaValue:(float) newAlpha {
+- (void) setAlphaValue:(CGFloat) newAlpha {
lastAlpha = newAlpha;
[[Afloat sharedInstance] setAlphaValue:newAlpha
forWindow:self.parentWindow animated:YES];
}
-- (BOOL) isKeptAfloat {
- return [[Afloat sharedInstance] isWindowKeptAfloat:self.parentWindow];
+//- (BOOL) isKeptAfloat {
+// return [[Afloat sharedInstance] isWindowKeptAfloat:self.parentWindow];
+//}
+
+- (AfloatWindowState) windowState {
+ Afloat* a = [Afloat sharedInstance];
+
+ if ([a isWindowKeptAfloat:self.parentWindow])
+ return kAfloatWindowStateAfloat;
+ else if ([a isWindowKeptPinnedToDesktop:self.parentWindow])
+ return kAfloatWindowStatePinnedToDesktop;
+ else
+ return kAfloatWindowStateNormal;
}
-- (void) setKeptAfloat:(BOOL) afloat {
+- (void) setWindowState:(AfloatWindowState) state {
[self willChangeValueForKey:@"overlay"];
- [[Afloat sharedInstance] setKeptAfloat:afloat forWindow:self.parentWindow
showBadgeAnimation:NO];
+ Afloat* a = [Afloat sharedInstance];
+ switch (state) {
+ case kAfloatWindowStateNormal:
+ [a setKeptAfloat:NO forWindow:self.parentWindow showBadgeAnimation:NO];
+ [a setKeptPinnedToDesktop:NO forWindow:self.parentWindow
showBadgeAnimation:NO];
+ break;
+
+ case kAfloatWindowStateAfloat:
+ [a setKeptAfloat:YES forWindow:self.parentWindow showBadgeAnimation:NO];
+ break;
+
+ case kAfloatWindowStatePinnedToDesktop:
+ [a setKeptPinnedToDesktop:YES forWindow:self.parentWindow
showBadgeAnimation:NO];
+ break;
+ }
+
[self didChangeValueForKey:@"overlay"];
}
+//- (void) setKeptAfloat:(BOOL) afloat {
+// [self willChangeValueForKey:@"overlay"];
+//
+// [[Afloat sharedInstance] setKeptAfloat:afloat
forWindow:self.parentWindow showBadgeAnimation:NO];
+//
+// [self didChangeValueForKey:@"overlay"];
+//}
+
- (BOOL) isOnAllSpaces {
return [[Afloat sharedInstance] isWindowOnAllSpaces:self.parentWindow];
}
@@ -197,9 +231,11 @@
[self willChangeValueForKey:@"keptAfloat"];
[self willChangeValueForKey:@"alphaValueAnimatesOnMouseOver"];
[self willChangeValueForKey:@"canSetAlphaValueAnimatesOnMouseOver"];
+ [self willChangeValueForKey:@"windowState"];
[[Afloat sharedInstance] setOverlay:overlay forWindow:self.parentWindow
animated:YES showBadgeAnimation:NO];
+ [self didChangeValueForKey:@"windowState"];
[self didChangeValueForKey:@"canSetAlphaValueAnimatesOnMouseOver"];
[self didChangeValueForKey:@"alphaValueAnimatesOnMouseOver"];
[self didChangeValueForKey:@"keptAfloat"];
Modified: trunk/Afloat/AfloatStorage.m
==============================================================================
--- trunk/Afloat/AfloatStorage.m (original)
+++ trunk/Afloat/AfloatStorage.m Thu Dec 18 07:17:46 2008
@@ -96,13 +96,14 @@
// YES if Afloat could save the window's state (returns cat/key if YES).
// NO otherwise.
- (BOOL) canSaveWindow:(NSWindow*) w category:(NSString**) cat
key:(NSString**) key {
- // autosaves only for now
if ([w frameAutosaveName] && ![[w frameAutosaveName] isEqual:@""]) {
if (cat) *cat = kAfloatNamedWindowsCategoryAutosaveKey;
if (key) *key = [w frameAutosaveName];
return YES;
}
+
+
return NO;
}
@@ -127,7 +128,7 @@
}
+ (void) removeSavedWindowWithCategory:(NSString*) cat
identifier:(NSString*) ident {
- NSString* key = [NSString stringWithFormat:@"Afloat:%@:%@", cat, key];
+ NSString* key = [NSString stringWithFormat:@"Afloat:%@:%@", cat, ident];
[[NSUserDefaults standardUserDefaults] removeObjectForKey:key];
}
Added: trunk/Afloat/AfloatWindowIdentifier.h
==============================================================================
--- (empty file)
+++ trunk/Afloat/AfloatWindowIdentifier.h Thu Dec 18 07:17:46 2008
@@ -0,0 +1,77 @@
+//
+// AfloatWindowIdentifier.h
+// Afloat
+//
+// Created by ∞ on 28/08/08.
+// Copyright 2008 __MyCompanyName__. All rights reserved.
+//
+
+#import <Cocoa/Cocoa.h>
+
+// A window identifier is used to identify windows
+// even after they are closed. They're used by AfloatStorage
+// to persist settings and reapply them correctly.
+
+// PLEASE NOTE: This is an abstract class that should not
+// be subclassed by clients. Use the +identifiersForWindow:
+// method to return suitable identifiers for a window.
+
+@interface AfloatWindowIdentifier : NSObject {
+ NSString* _key;
+ NSString* _category;
+
+ BOOL _canMatchMultipleWindows;
+}
+
+// An identifier is made up of a category and a key;
+// a category is one of the constants above, while
+// a key identifies a window or class of windows
+// for that identifier category.
+@property(readonly, copy) NSString* category;
+@property(readonly, copy) NSString* key;
+
+// If YES, then the identifier is collective
+// (ie it can happen that more than one window
+// is selected that corresponds to the above).
+@property(readonly, assign) BOOL canMatchMultipleWindows;
+
+// YES if this identifier matches the given window,
+// NO otherwise.
+- (BOOL) matchesWindow:(NSWindow*) w;
+
+// Returns an array of identifiers that match
+// the given window.
+// NOTE: A window may have no identifiers, in which
+// case the storage won't be able to save settings
+// for it!
+// NOTE 2: Identifiers are returned in order of
+// decreasing specificity. The first identifier
+// returned is the one most likely to select the
+// fewest windows (possibly an individual identifier,
+// eg one with canMatchMultipleWindows = NO).
+// Following identifiers are likely to select more
+// windows.
++ (NSArray*) allIdentifiersForWindow:(NSWindow*) w;
+
+//
+
+@end
+
+// This category of identifiers uses autosave name as a key.
+// They're always individual (canMatchMultipleWindows = NO).
+#define kAfloatByWindowAutosaveNameCategory
@"AfloatByWindowAutosaveNameCategory"
+
+// This category of identifiers uses the window's custom subclass's
+// name as a key. It only selects instances of subclasses of NSWindow,
+// not instances of NSWindow itself. (Note that NSPanel instances are never
+// selected.)
+#define kAfloatByWindowCustomSubclassCategory
@"AfloatByWindowCustomSubclassCategory"
+
+// This category of identifiers uses the window's custom delegate
+// class as a key. It only selects windows that have a delegate.
+#define kAfloatByDelegateCustomSubclassCategory
@"AfloatByDelegateCustomSubclassCategory"
+
+// This category of identifiers uses the window's NSWindowController
+// custom subclass as a key. It only selects windows whose controller
+// is a subclass of NSWindowController, not NSWindowController itself.
+#define kAfloatByWindowCustomControllerCategory
@"AfloatByWindowCustomControllerCategory"
Added: trunk/Afloat/AfloatWindowIdentifier.m
==============================================================================
--- (empty file)
+++ trunk/Afloat/AfloatWindowIdentifier.m Thu Dec 18 07:17:46 2008
@@ -0,0 +1,171 @@
+//
+// AfloatWindowIdentifier.m
+// Afloat
+//
+// Created by ∞ on 28/08/08.
+// Copyright 2008 __MyCompanyName__. All rights reserved.
+//
+
+#import "AfloatWindowIdentifier.h"
+
+@interface AfloatWindowIdentifier ()
+
+@property(setter=_setCategory:, copy) NSString* category;
+@property(setter=_setKey:, copy) NSString* key;
+@property(setter=_setCanMatchMultipleWindows:, assign) BOOL
canMatchMultipleWindows;
+
++ (NSArray*) identifierSubclasses;
+
+@end
+
+@interface AfloatWindowIdentifier (AfloatAbstractPrivateMethods)
++ (BOOL) canInitWithWindow:(NSWindow*) w;
+- (id) initWithWindow:(NSWindow*) w;
+@end
+
+// the class that implements kAfloatByWindowCustomSubclassCategory
+
+@interface _AfloatWindowByClassIdentifier : AfloatWindowIdentifier {}
+@end
+@implementation _AfloatWindowByClassIdentifier
+
++ (BOOL) canInitWithWindow:(NSWindow*) w {
+ return ![w isKindOfClass:[NSPanel class]] && ![w
isMemberOfClass:[NSWindow class]];
+}
+
+- (id) initWithWindow:(NSWindow*) w {
+ if (self = [super init]) {
+ self.category = kAfloatByWindowCustomSubclassCategory;
+ self.key = NSStringFromClass([w class]);
+ self.canMatchMultipleWindows = YES;
+ }
+
+ return self;
+}
+
+- (BOOL) matchesWindow:(NSWindow*) w {
+ return [(NSStringFromClass([w class])) isEqual:self.key];
+}
+
+@end
+
+// the class that implements kAfloatByDelegateCustomSubclassCategory
+
+@interface _AfloatWindowByDelegateClassIdentifier : AfloatWindowIdentifier
{}
+@end
+@implementation _AfloatWindowByDelegateClassIdentifier
+
++ (BOOL) canInitWithWindow:(NSWindow*) w {
+ return [w delegate] != nil;
+}
+
+- (id) initWithWindow:(NSWindow*) w {
+ if (self = [super init]) {
+ self.category = kAfloatByDelegateCustomSubclassCategory;
+ self.key = NSStringFromClass([[w delegate] class]);
+ self.canMatchMultipleWindows = YES;
+ }
+
+ return self;
+}
+
+- (BOOL) matchesWindow:(NSWindow*) w {
+ return [w delegate] && [(NSStringFromClass([[w delegate] class]))
isEqual:self.key];
+}
+
+@end
+
+// the class that implements kAfloatByWindowCustomControllerCategory
+
+@interface _AfloatWindowByControllerClassIdentifier :
AfloatWindowIdentifier {}
+@end
+@implementation _AfloatWindowByControllerClassIdentifier
+
++ (BOOL) canInitWithWindow:(NSWindow*) w {
+ return [w windowController] && ![[w windowController]
isMemberOfClass:[NSWindowController class]];
+}
+
+- (id) initWithWindow:(NSWindow*) w {
+ if (self = [super init]) {
+ self.category = kAfloatByWindowCustomControllerCategory;
+ self.key = NSStringFromClass([[w windowController] class]);
+ self.canMatchMultipleWindows = YES;
+ }
+
+ return self;
+}
+
+- (BOOL) matchesWindow:(NSWindow*) w {
+ return [w windowController] && [(NSStringFromClass([[w windowController]
class])) isEqual:self.key];
+}
+
+@end
+
+// the class that implements kAfloatByWindowAutosaveNameCategory
+
+@interface _AfloatWindowByAutosaveNameIdentifier : AfloatWindowIdentifier
{}
+@end
+@implementation _AfloatWindowByAutosaveNameIdentifier
+
++ (BOOL) canInitWithWindow:(NSWindow*) w {
+ return [w frameAutosaveName] && ![[w frameAutosaveName] isEqual:@""];
+}
+
+- (id) initWithWindow:(NSWindow*) w {
+ if (self = [super init]) {
+ self.category = kAfloatByWindowAutosaveNameCategory;
+ self.key = [w frameAutosaveName];
+ self.canMatchMultipleWindows = YES;
+ }
+
+ return self;
+}
+
+- (BOOL) matchesWindow:(NSWindow*) w {
+ return [w frameAutosaveName] && [[w frameAutosaveName] isEqual:self.key];
+}
+
+@end
+
+// - * - - * - - * - - * - - * - - * - - * -
+
+@implementation AfloatWindowIdentifier
+
++ (NSArray*) identifierSubclasses {
+ static id classes = nil; if (!classes) {
+ classes = [[NSArray alloc] initWithObjects:
+ [_AfloatWindowByAutosaveNameIdentifier class],
+ [_AfloatWindowByClassIdentifier class],
+ [_AfloatWindowByDelegateClassIdentifier class],
+ [_AfloatWindowByControllerClassIdentifier class],
+ nil];
+ }
+
+ return classes;
+}
+
+- (void) dealloc {
+ self.category = nil;
+ self.key = nil;
+
+ [super dealloc];
+}
+
+@synthesize category = _category, key = _key, canMatchMultipleWindows =
_canMatchMultipleWindows;
+
++ (NSArray*) allIdentifiersForWindow:(NSWindow*) w {
+ NSMutableArray* results = [NSArray array];
+
+ for (Class c in [self identifierSubclasses]) {
+ if ([c canInitWithWindow:w])
+ [results addObject:[[[c alloc] initWithWindow:w] autorelease]];
+ }
+
+ return results;
+}
+
+- (BOOL) matchesWindow:(NSWindow*) w {
+ return NO;
+}
+
+@end
Modified: trunk/Afloat/Afloat_AfloatNagging.m
==============================================================================
--- trunk/Afloat/Afloat_AfloatNagging.m (original)
+++ trunk/Afloat/Afloat_AfloatNagging.m Thu Dec 18 07:17:46 2008
@@ -18,7 +18,7 @@
if (AfloatNagCurrentAction() != kAfloatDoNotShowAlerts) {
NSBundle* b = [NSBundle bundleForClass:[self class]];
- NSString* donateApp = [b pathForResource:@"Donate for Afloat"
ofType:@"app"];
+ NSString* donateApp = [[b bundlePath]
stringByAppendingPathComponent:@"Donate for Afloat.app"];
[[NSWorkspace sharedWorkspace] openFile:donateApp];
}
}
Added: trunk/Afloat/COPYING.txt
==============================================================================
--- (empty file)
+++ trunk/Afloat/COPYING.txt Thu Dec 18 07:17:46 2008
@@ -0,0 +1,16 @@
+
+Except for those files subject to other licenses (as noted in the file or
in documentation accompanying the file), all files distributed along with
this file are subject to the following license:
+
+ - * -
+
+Copyright (c) 2008, Emanuele Vulcano
+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 the copyright holder nor the names of its 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.
+
+ - * -
Modified: trunk/Afloat/Donate for Afloat-Info.plist
==============================================================================
--- trunk/Afloat/Donate for Afloat-Info.plist (original)
+++ trunk/Afloat/Donate for Afloat-Info.plist Thu Dec 18 07:17:46 2008
@@ -5,7 +5,7 @@
<key>AfloatDonationsURL</key>
<string>
http://infinite-labs.net/afloat/donate/</string>
<key>CFBundleDevelopmentRegion</key>
- <string>English</string>
+ <string>en</string>
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIconFile</key>
@@ -19,9 +19,11 @@
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
- <string>1.0</string>
+ <string>${VERSION}</string>
<key>LSUIElement</key>
<true/>
+ <key>CFBundleShortVersionString</key>
+ <string>${USER_VISIBLE_VERSION}</string>
<key>NSMainNibFile</key>
<string>Donate</string>
<key>NSPrincipalClass</key>
Modified: trunk/Afloat/Info.plist
==============================================================================
--- trunk/Afloat/Info.plist (original)
+++ trunk/Afloat/Info.plist Thu Dec 18 07:17:46 2008
@@ -3,7 +3,7 @@
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
- <string>English</string>
+ <string>en</string>
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIconFile</key>
@@ -19,9 +19,9 @@
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
- <string>2.0</string>
+ <string>${VERSION}</string>
<key>CFBundleShortVersionString</key>
- <string>2.0</string>
+ <string>${USER_VISIBLE_VERSION}</string>
<key>NSPrincipalClass</key>
<string>Afloat</string>
<key>SIMBLTargetApplications</key>
Added: trunk/Afloat/Locales/it/Afloat.nib.alair
==============================================================================
Binary file. No diff available.
Added: trunk/Afloat/Locales/it/Afloat.nib.strings
==============================================================================
--- (empty file)
+++ trunk/Afloat/Locales/it/Afloat.nib.strings Thu Dec 18 07:17:46 2008
@@ -0,0 +1,30 @@
+
+/* Class = "NSMenuItem"; title = "Keep Afloat"; ObjectID = "2"; */
+"2.title" = "Fluttuante";
+
+/* Class = "NSMenuItem"; title = "Adjust Effects"; ObjectID = "4"; */
+"4.title" = "Regola Effetti";
+
+/* Class = "NSMenuItem"; title = "Transparency"; ObjectID = "5"; */
+"5.title" = "Trasparenza";
+
+/* Class = "NSMenu"; title = "Transparency"; ObjectID = "6"; */
+"6.title" = "Trasparenza";
+
+/* Class = "NSMenuItem"; title = "Translucent"; ObjectID = "7"; */
+"7.title" = "Traslucido";
+
+/* Class = "NSMenuItem"; title = "Opaque"; ObjectID = "9"; */
+"9.title" = "Opaca";
+
+/* Class = "NSMenuItem"; title = "Make More Transparent"; ObjectID = "10";
*/
+"10.title" = "Rendi più trasparente";
+
+/* Class = "NSMenuItem"; title = "Make Less Transparent"; ObjectID = "11";
*/
+"11.title" = "Rendi meno trasparente";
+
+/* Class = "NSMenuItem"; title = "Turn Overlays Back to Normal"; ObjectID
= "19"; */
+"19.title" = "Disattiva tutte le sovrimpressioni";
+
+/* Class = "NSMenuItem"; title = "Show Window's File in Finder"; ObjectID
= "22"; */
+"22.title" = "Mostra il documento nel Finder";
Added: trunk/Afloat/Locales/it/AfloatBadge.nib.alair
==============================================================================
Binary file. No diff available.
Added: trunk/Afloat/Locales/it/AfloatBadge.nib.strings
==============================================================================
Added: trunk/Afloat/Locales/it/AfloatDonateFirstAlert.alair
==============================================================================
Binary file. No diff available.
Added: trunk/Afloat/Locales/it/AfloatDonateFirstAlert.strings
==============================================================================
--- (empty file)
+++ trunk/Afloat/Locales/it/AfloatDonateFirstAlert.strings Thu Dec 18
07:17:46 2008
@@ -0,0 +1,4 @@
+"If you do, you can support Afloat's author with a small token of your
gratitude." = "Se sì, puoi aiutare l'autore di Afloat con un piccolo segno
della tua gratitudine.";
+"Donate\U2026" = "Dona\U2026";
+"Maybe Later" = "Forse più tardi";
+"Do you like keeping your windows afloat?" = "Ti piace mantenere le tue
finestre sempre a galla?";
Added: trunk/Afloat/Locales/it/AfloatDonateLastAlert.alair
==============================================================================
Binary file. No diff available.
Added: trunk/Afloat/Locales/it/AfloatDonateLastAlert.strings
==============================================================================
--- (empty file)
+++ trunk/Afloat/Locales/it/AfloatDonateLastAlert.strings Thu Dec 18
07:17:46 2008
@@ -0,0 +1,4 @@
+"If you do, you can support Afloat's author with a small token of your
gratitude." = "Se sì, puoi aiutare l'autore di Afloat con un piccolo segno
della tua gratitudine.";
+"Donate\U2026" = "Dona\U2026";
+"No, thanks" = "No, grazie";
+"Do you like keeping your windows afloat?" = "Ti piace mantenere le tue
finestre sempre a galla?";
Added: trunk/Afloat/Locales/it/AfloatPanel.nib.alair
==============================================================================
Binary file. No diff available.
Added: trunk/Afloat/Locales/it/AfloatPanel.nib.strings
==============================================================================
--- (empty file)
+++ trunk/Afloat/Locales/it/AfloatPanel.nib.strings Thu Dec 18 07:17:46 2008
@@ -0,0 +1,42 @@
+
+/* Class = "AfloatPanel"; title = "Afloat -- Adjust Effects"; ObjectID
= "1"; */
+"1.title" = "Afloat -- Regola Effetti";
+
+/* Class = "NSTextFieldCell"; title = "Transparency:"; ObjectID = "21"; */
+"21.title" = "Trasparenza:";
+
+/* Class = "NSTextFieldCell"; title = "Overlay windows float on top of all
others and clicks on them \"fall through\" to the windows below."; ObjectID
= "27"; */
+"27.title" = "Le sovrimpressioni rimangono sopra tutte le altre finestre.
I clic su di esse sono \"passati\" alle finestre sottostanti.";
+
+/* Class = "NSTextFieldCell"; title = "Barely visible"; ObjectID = "37"; */
+"37.title" = "Appena visibile";
+
+/* Class = "NSTextFieldCell"; title = "Opaque"; ObjectID = "39"; */
+"39.title" = "Opaca";
+
+/* Class = "NSTextFieldCell"; title = "Keep this window:"; ObjectID
= "65"; */
+"65.title" = "Mantieni la finestra:";
+
+/* Class = "NSMenu"; title = "OtherViews"; ObjectID = "75"; */
+"75.title" = "OtherViews";
+
+/* Class = "NSMenuItem"; title = "Regular"; ObjectID = "76"; */
+"76.title" = "Normale";
+
+/* Class = "NSMenuItem"; title = "Afloat"; ObjectID = "77"; */
+"77.title" = "Fluttuante";
+
+/* Class = "NSMenuItem"; title = "Pinned to the desktop"; ObjectID = "78";
*/
+"78.title" = "Incollata alla scrivania";
+
+/* Class = "BGHUDButtonCell"; title = "Make this window an overlay";
ObjectID = "80"; */
+"80.title" = "Mantieni in sovrimpressione";
+
+/* Class = "BGHUDButtonCell"; title = "Keep this window on the screen on
all Spaces"; ObjectID = "83"; */
+"83.title" = "Mantieni questa finestra in tutti gli Spaces";
+
+/* Class = "BGHUDButtonCell"; title = "Make it opaque while I'm working
with it"; ObjectID = "89"; */
+"89.title" = "Rendila opaca mentre la uso per lavorare";
+
+/* Class = "BGHUDButtonCell"; title = "Done"; ObjectID = "94"; */
+"94.title" = "Fine";
Added: trunk/Afloat/Locales/it/Corpus.corpus
==============================================================================
Binary file. No diff available.
Added: trunk/Afloat/Locales/it/Donate.alair
==============================================================================
Binary file. No diff available.
Added: trunk/Afloat/Locales/it/Donate.nib.alair
==============================================================================
Binary file. No diff available.
Added: trunk/Afloat/Locales/it/Donate.nib.strings
==============================================================================
--- (empty file)
+++ trunk/Afloat/Locales/it/Donate.nib.strings Thu Dec 18 07:17:46 2008
@@ -0,0 +1,72 @@
+
+/* Class = "NSMenuItem"; title = "Bring All to Front"; ObjectID = "5"; */
+"5.title" = "Bring All to Front";
+
+/* Class = "NSMenuItem"; title = "Window"; ObjectID = "19"; */
+"19.title" = "Window";
+
+/* Class = "NSMenuItem"; title = "Minimize"; ObjectID = "23"; */
+"23.title" = "Minimize";
+
+/* Class = "NSMenu"; title = "Window"; ObjectID = "24"; */
+"24.title" = "Window";
+
+/* Class = "NSMenu"; title = "AMainMenu"; ObjectID = "29"; */
+"29.title" = "AMainMenu";
+
+/* Class = "NSMenuItem"; title = "Donate for Afloat"; ObjectID = "56"; */
+"56.title" = "Dona per Afloat";
+
+/* Class = "NSMenu"; title = "Donate for Afloat"; ObjectID = "57"; */
+"57.title" = "Dona per Afloat";
+
+/* Class = "NSMenuItem"; title = "About Donate for Afloat"; ObjectID
= "58"; */
+"58.title" = "Informazioni su Dona per Afloat";
+
+/* Class = "NSMenu"; title = "Services"; ObjectID = "130"; */
+"130.title" = "Services";
+
+/* Class = "NSMenuItem"; title = "Services"; ObjectID = "131"; */
+"131.title" = "Services";
+
+/* Class = "NSMenuItem"; title = "Hide Donate for Afloat"; ObjectID
= "134"; */
+"134.title" = "Nascondi Dona per Afloat";
+
+/* Class = "NSMenuItem"; title = "Quit Donate for Afloat"; ObjectID
= "136"; */
+"136.title" = "Esci da Dona per Afloat";
+
+/* Class = "NSMenuItem"; title = "Hide Others"; ObjectID = "145"; */
+"145.title" = "Hide Others";
+
+/* Class = "NSMenuItem"; title = "Show All"; ObjectID = "150"; */
+"150.title" = "Show All";
+
+/* Class = "NSMenuItem"; title = "Copy"; ObjectID = "197"; */
+"197.title" = "Copy";
+
+/* Class = "NSMenuItem"; title = "Select All"; ObjectID = "198"; */
+"198.title" = "Select All";
+
+/* Class = "NSMenuItem"; title = "Cut"; ObjectID = "199"; */
+"199.title" = "Cut";
+
+/* Class = "NSMenuItem"; title = "Delete"; ObjectID = "202"; */
+"202.title" = "Delete";
+
+/* Class = "NSMenuItem"; title = "Paste"; ObjectID = "203"; */
+"203.title" = "Paste";
+
+/* Class = "NSMenu"; title = "Edit"; ObjectID = "205"; */
+"205.title" = "Edit";
+
+/* Class = "NSMenuItem"; title = "Undo"; ObjectID = "207"; */
+"207.title" = "Undo";
+
+/* Class = "NSMenuItem"; title = "Redo"; ObjectID = "215"; */
+"215.title" = "Redo";
+
+/* Class = "NSMenuItem"; title = "Edit"; ObjectID = "217"; */
+"217.title" = "Edit";
+
+/* Class = "NSMenuItem"; title = "Zoom"; ObjectID = "239"; */
+"239.title" = "Zoom";
Added: trunk/Afloat/Locales/it/Donate.strings
==============================================================================
--- (empty file)
+++ trunk/Afloat/Locales/it/Donate.strings Thu Dec 18 07:17:46 2008
@@ -0,0 +1,72 @@
+
+/* Class = "NSMenuItem"; title = "Bring All to Front"; ObjectID = "5"; */
+"5.title" = "Porta tutto in primo piano";
+
+/* Class = "NSMenuItem"; title = "Window"; ObjectID = "19"; */
+"19.title" = "Finestra";
+
+/* Class = "NSMenuItem"; title = "Minimize"; ObjectID = "23"; */
+"23.title" = "Contrai";
+
+/* Class = "NSMenu"; title = "Window"; ObjectID = "24"; */
+"24.title" = "Finestra";
+
+/* Class = "NSMenu"; title = "AMainMenu"; ObjectID = "29"; */
+"29.title" = "AMainMenu";
+
+/* Class = "NSMenuItem"; title = "Donate for Afloat"; ObjectID = "56"; */
+"56.title" = "Dona per Afloat";
+
+/* Class = "NSMenu"; title = "Donate for Afloat"; ObjectID = "57"; */
+"57.title" = "Dona per Afloat";
+
+/* Class = "NSMenuItem"; title = "About Donate for Afloat"; ObjectID
= "58"; */
+"58.title" = "Informazioni su Dona per Afloat";
+
+/* Class = "NSMenu"; title = "Services"; ObjectID = "130"; */
+"130.title" = "Servizi";
+
+/* Class = "NSMenuItem"; title = "Services"; ObjectID = "131"; */
+"131.title" = "Servizi";
+
+/* Class = "NSMenuItem"; title = "Hide Donate for Afloat"; ObjectID
= "134"; */
+"134.title" = "Nascondi Dona per Afloat";
+
+/* Class = "NSMenuItem"; title = "Quit Donate for Afloat"; ObjectID
= "136"; */
+"136.title" = "Esci da Dona per Afloat";
+
+/* Class = "NSMenuItem"; title = "Hide Others"; ObjectID = "145"; */
+"145.title" = "Nascondi altre";
+
+/* Class = "NSMenuItem"; title = "Show All"; ObjectID = "150"; */
+"150.title" = "Mostra tutte";
+
+/* Class = "NSMenuItem"; title = "Copy"; ObjectID = "197"; */
+"197.title" = "Copia";
+
+/* Class = "NSMenuItem"; title = "Select All"; ObjectID = "198"; */
+"198.title" = "Seleziona tutto";
+
+/* Class = "NSMenuItem"; title = "Cut"; ObjectID = "199"; */
+"199.title" = "Taglia";
+
+/* Class = "NSMenuItem"; title = "Delete"; ObjectID = "202"; */
+"202.title" = "Elimina";
+
+/* Class = "NSMenuItem"; title = "Paste"; ObjectID = "203"; */
+"203.title" = "Incolla";
+
+/* Class = "NSMenu"; title = "Edit"; ObjectID = "205"; */
+"205.title" = "Composizione";
+
+/* Class = "NSMenuItem"; title = "Undo"; ObjectID = "207"; */
+"207.title" = "Annulla";
+
+/* Class = "NSMenuItem"; title = "Redo"; ObjectID = "215"; */
+"215.title" = "Ripristina originale";
+
+/* Class = "NSMenuItem"; title = "Edit"; ObjectID = "217"; */
+"217.title" = "Composizione";
+
+/* Class = "NSMenuItem"; title = "Zoom"; ObjectID = "239"; */
+"239.title" = "Ridimensiona";
Added: trunk/Afloat/Locales/it/InfoPlist.alair
==============================================================================
Binary file. No diff available.
Added: trunk/Afloat/Locales/it/InfoPlist.strings
==============================================================================
--- (empty file)
+++ trunk/Afloat/Locales/it/InfoPlist.strings Thu Dec 18 07:17:46 2008
@@ -0,0 +1,3 @@
+/* Localized versions of Info.plist keys */
+
+NSHumanReadableCopyright = "(c) Emanuele Vulcano (
infinite-labs.net), 2008";
Added: trunk/Afloat/Locales/it/Project.project
==============================================================================
Binary file. No diff available.
Added: trunk/Afloat/en.lproj/Afloat.nib/designable.nib
==============================================================================
--- (empty file)
+++ trunk/Afloat/en.lproj/Afloat.nib/designable.nib Thu Dec 18 07:17:46 2008
@@ -0,0 +1,473 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.02">
+ <data>
+ <int key="IBDocument.SystemTarget">1050</int>
+ <string key="IBDocument.SystemVersion">9C31</string>
+ <string key="IBDocument.InterfaceBuilderVersion">644</string>
+ <string key="IBDocument.AppKitVersion">949.26</string>
+ <string key="IBDocument.HIToolboxVersion">352.00</string>
+ <object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <integer value="22"/>
+ </object>
+ <object class="NSArray" key="IBDocument.PluginDependencies">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ </object>
+ <object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSCustomObject" id="1001">
+ <string key="NSClassName">Afloat</string>
+ </object>
+ <object class="NSCustomObject" id="1003">
+ <string key="NSClassName">FirstResponder</string>
+ </object>
+ <object class="NSCustomObject" id="1004">
+ <string key="NSClassName">NSApplication</string>
+ </object>
+ <object class="NSMenu" id="130294207">
+ <string key="NSTitle"/>
+ <object class="NSMutableArray" key="NSMenuItems">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSMenuItem" id="150697053">
+ <reference key="NSMenu" ref="130294207"/>
+ <string key="NSTitle">Keep Afloat</string>
+ <string key="NSKeyEquiv">a</string>
+ <int key="NSKeyEquivModMask">1310985</int>
+ <int key="NSMnemonicLoc">
2147483647</int>
+ <object class="NSCustomResource" key="NSOnImage" id="399514010">
+ <string key="NSClassName">NSImage</string>
+ <string key="NSResourceName">NSMenuCheckmark</string>
+ </object>
+ <object class="NSCustomResource" key="NSMixedImage" id="139249560">
+ <string key="NSClassName">NSImage</string>
+ <string key="NSResourceName">NSMenuMixedState</string>
+ </object>
+ </object>
+ <object class="NSMenuItem" id="593188854">
+ <reference key="NSMenu" ref="130294207"/>
+ <string key="NSTitle">Transparency</string>
+ <string key="NSKeyEquiv"/>
+ <int key="NSKeyEquivModMask">1048576</int>
+ <int key="NSMnemonicLoc">
2147483647</int>
+ <reference key="NSOnImage" ref="399514010"/>
+ <reference key="NSMixedImage" ref="139249560"/>
+ <string key="NSAction">submenuAction:</string>
+ <object class="NSMenu" key="NSSubmenu" id="846961709">
+ <string key="NSTitle">Transparency</string>
+ <object class="NSMutableArray" key="NSMenuItems">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSMenuItem" id="46479698">
+ <reference key="NSMenu" ref="846961709"/>
+ <string key="NSTitle">Translucent</string>
+ <string key="NSKeyEquiv">1</string>
+ <int key="NSKeyEquivModMask">1310985</int>
+ <int key="NSMnemonicLoc">
2147483647</int>
+ <reference key="NSOnImage" ref="399514010"/>
+ <reference key="NSMixedImage" ref="139249560"/>
+ </object>
+ <object class="NSMenuItem" id="934158159">
+ <reference key="NSMenu" ref="846961709"/>
+ <string key="NSTitle">Opaque</string>
+ <string key="NSKeyEquiv">0</string>
+ <int key="NSKeyEquivModMask">1310985</int>
+ <int key="NSMnemonicLoc">
2147483647</int>
+ <reference key="NSOnImage" ref="399514010"/>
+ <reference key="NSMixedImage" ref="139249560"/>
+ </object>
+ <object class="NSMenuItem" id="758959318">
+ <reference key="NSMenu" ref="846961709"/>
+ <string key="NSTitle">Make Less Transparent</string>
+ <string type="base64-UTF8" key="NSKeyEquiv">75ysA</string>
+ <int key="NSKeyEquivModMask">1310720</int>
+ <int key="NSMnemonicLoc">
2147483647</int>
+ <reference key="NSOnImage" ref="399514010"/>
+ <reference key="NSMixedImage" ref="139249560"/>
+ </object>
+ <object class="NSMenuItem" id="42577020">
+ <reference key="NSMenu" ref="846961709"/>
+ <string key="NSTitle">Make More Transparent</string>
+ <string type="base64-UTF8" key="NSKeyEquiv">75ytA</string>
+ <int key="NSKeyEquivModMask">1310720</int>
+ <int key="NSMnemonicLoc">
2147483647</int>
+ <reference key="NSOnImage" ref="399514010"/>
+ <reference key="NSMixedImage" ref="139249560"/>
+ </object>
+ </object>
+ </object>
+ </object>
+ <object class="NSMenuItem" id="405747730">
+ <reference key="NSMenu" ref="130294207"/>
+ <string key="NSTitle">Turn Overlays Back to Normal</string>
+ <string key="NSKeyEquiv"/>
+ <int key="NSMnemonicLoc">
2147483647</int>
+ <reference key="NSOnImage" ref="399514010"/>
+ <reference key="NSMixedImage" ref="139249560"/>
+ </object>
+ <object class="NSMenuItem" id="555293349">
+ <reference key="NSMenu" ref="130294207"/>
+ <bool key="NSIsDisabled">YES</bool>
+ <bool key="NSIsSeparator">YES</bool>
+ <string key="NSTitle"/>
+ <string key="NSKeyEquiv"/>
+ <int key="NSKeyEquivModMask">1048576</int>
+ <int key="NSMnemonicLoc">
2147483647</int>
+ <reference key="NSOnImage" ref="399514010"/>
+ <reference key="NSMixedImage" ref="139249560"/>
+ </object>
+ <object class="NSMenuItem" id="432873915">
+ <reference key="NSMenu" ref="130294207"/>
+ <string key="NSTitle">Adjust Effects</string>
+ <string key="NSKeyEquiv">f</string>
+ <int key="NSKeyEquivModMask">1310985</int>
+ <int key="NSMnemonicLoc">
2147483647</int>
+ <reference key="NSOnImage" ref="399514010"/>
+ <reference key="NSMixedImage" ref="139249560"/>
+ </object>
+ <object class="NSMenuItem" id="260154841">
+ <reference key="NSMenu" ref="130294207"/>
+ <bool key="NSIsDisabled">YES</bool>
+ <bool key="NSIsSeparator">YES</bool>
+ <string key="NSTitle"/>
+ <string key="NSKeyEquiv"/>
+ <int key="NSMnemonicLoc">
2147483647</int>
+ <reference key="NSOnImage" ref="399514010"/>
+ <reference key="NSMixedImage" ref="139249560"/>
+ </object>
+ <object class="NSMenuItem" id="810364617">
+ <reference key="NSMenu" ref="130294207"/>
+ <string type="base64-UTF8"
key="NSTitle">U2hvdyBXaW5kb3cncyBGaWxlIGluIEZpbmRlcg</string>
+ <string type="base64-UTF8" key="NSKeyEquiv">75yAA</string>
+ <int key="NSKeyEquivModMask">1310720</int>
+ <int key="NSMnemonicLoc">
2147483647</int>
+ <reference key="NSOnImage" ref="399514010"/>
+ <reference key="NSMixedImage" ref="139249560"/>
+ </object>
+ </object>
+ </object>
+ </object>
+ <object class="IBObjectContainer" key="IBDocument.Objects">
+ <object class="NSMutableArray" key="connectionRecords">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBConnectionRecord">
+ <object class="IBOutletConnection" key="connection">
+ <string key="label">_menuWithItems</string>
+ <reference key="source" ref="1001"/>
+ <reference key="destination" ref="130294207"/>
+ </object>
+ <int key="connectionID">12</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBActionConnection" key="connection">
+ <string key="label">toggleAlwaysOnTop:</string>
+ <reference key="source" ref="1001"/>
+ <reference key="destination" ref="150697053"/>
+ </object>
+ <int key="connectionID">13</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBActionConnection" key="connection">
+ <string key="label">makeTranslucent:</string>
+ <reference key="source" ref="1001"/>
+ <reference key="destination" ref="46479698"/>
+ </object>
+ <int key="connectionID">14</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBActionConnection" key="connection">
+ <string key="label">makeOpaque:</string>
+ <reference key="source" ref="1001"/>
+ <reference key="destination" ref="934158159"/>
+ </object>
+ <int key="connectionID">15</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBActionConnection" key="connection">
+ <string key="label">makeLessTransparent:</string>
+ <reference key="source" ref="1001"/>
+ <reference key="destination" ref="758959318"/>
+ </object>
+ <int key="connectionID">16</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBActionConnection" key="connection">
+ <string key="label">makeMoreTransparent:</string>
+ <reference key="source" ref="1001"/>
+ <reference key="destination" ref="42577020"/>
+ </object>
+ <int key="connectionID">17</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBActionConnection" key="connection">
+ <string key="label">showAdjustEffectsPanel:</string>
+ <reference key="source" ref="1001"/>
+ <reference key="destination" ref="432873915"/>
+ </object>
+ <int key="connectionID">18</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBActionConnection" key="connection">
+ <string key="label">disableAllOverlays:</string>
+ <reference key="source" ref="1001"/>
+ <reference key="destination" ref="405747730"/>
+ </object>
+ <int key="connectionID">20</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBActionConnection" key="connection">
+ <string key="label">showWindowFileInFinder:</string>
+ <reference key="source" ref="1001"/>
+ <reference key="destination" ref="810364617"/>
+ </object>
+ <int key="connectionID">23</int>
+ </object>
+ </object>
+ <object class="IBMutableOrderedSet" key="objectRecords">
+ <object class="NSArray" key="orderedObjects">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBObjectRecord">
+ <int key="objectID">0</int>
+ <object class="NSArray" key="object" id="1002">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ <reference key="children" ref="1000"/>
+ <nil key="parent"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-2</int>
+ <reference key="object" ref="1001"/>
+ <reference key="parent" ref="1002"/>
+ <string type="base64-UTF8"
key="objectName">RmlsZSdzIE93bmVyA</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-1</int>
+ <reference key="object" ref="1003"/>
+ <reference key="parent" ref="1002"/>
+ <string key="objectName">First Responder</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-3</int>
+ <reference key="object" ref="1004"/>
+ <reference key="parent" ref="1002"/>
+ <string key="objectName">Application</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">1</int>
+ <reference key="object" ref="130294207"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="150697053"/>
+ <reference ref="432873915"/>
+ <reference ref="593188854"/>
+ <reference ref="555293349"/>
+ <reference ref="405747730"/>
+ <reference ref="260154841"/>
+ <reference ref="810364617"/>
+ </object>
+ <reference key="parent" ref="1002"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">2</int>
+ <reference key="object" ref="150697053"/>
+ <reference key="parent" ref="130294207"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">4</int>
+ <reference key="object" ref="432873915"/>
+ <reference key="parent" ref="130294207"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">5</int>
+ <reference key="object" ref="593188854"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="846961709"/>
+ </object>
+ <reference key="parent" ref="130294207"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">6</int>
+ <reference key="object" ref="846961709"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="46479698"/>
+ <reference ref="934158159"/>
+ <reference ref="42577020"/>
+ <reference ref="758959318"/>
+ </object>
+ <reference key="parent" ref="593188854"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">7</int>
+ <reference key="object" ref="46479698"/>
+ <reference key="parent" ref="846961709"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">8</int>
+ <reference key="object" ref="555293349"/>
+ <reference key="parent" ref="130294207"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">9</int>
+ <reference key="object" ref="934158159"/>
+ <reference key="parent" ref="846961709"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">10</int>
+ <reference key="object" ref="42577020"/>
+ <reference key="parent" ref="846961709"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">11</int>
+ <reference key="object" ref="758959318"/>
+ <reference key="parent" ref="846961709"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">19</int>
+ <reference key="object" ref="405747730"/>
+ <reference key="parent" ref="130294207"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">21</int>
+ <reference key="object" ref="260154841"/>
+ <reference key="parent" ref="130294207"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">22</int>
+ <reference key="object" ref="810364617"/>
+ <reference key="parent" ref="130294207"/>
+ </object>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="flattenedProperties">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSMutableArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>-1.IBPluginDependency</string>
+ <string>-2.IBPluginDependency</string>
+ <string>-3.IBPluginDependency</string>
+ <string>1.IBEditorWindowLastContentRect</string>
+ <string>1.IBPluginDependency</string>
+ <string>1.editorWindowContentRectSynchronizationRect</string>
+ <string>10.IBPluginDependency</string>
+ <string>11.IBPluginDependency</string>
+ <string>19.IBPluginDependency</string>
+ <string>2.IBPluginDependency</string>
+ <string>21.IBPluginDependency</string>
+ <string>22.IBPluginDependency</string>
+ <string>4.IBPluginDependency</string>
+ <string>5.IBPluginDependency</string>
+ <string>6.IBEditorWindowLastContentRect</string>
+ <string>6.IBPluginDependency</string>
+ <string>6.editorWindowContentRectSynchronizationRect</string>
+ <string>7.IBPluginDependency</string>
+ <string>8.IBPluginDependency</string>
+ <string>9.IBPluginDependency</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>{{338, 394}, {294, 123}}</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>{{170, 454}, {185, 73}}</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>{{632, 414}, {253, 83}}</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>{{355, 424}, {253, 83}}</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="unlocalizedProperties">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <nil key="activeLocalization"/>
+ <object class="NSMutableDictionary" key="localizations">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <nil key="sourceID"/>
+ <int key="maxID">23</int>
+ </object>
+ <object class="IBClassDescriber" key="IBDocument.Classes">
+ <object class="NSMutableArray" key="referencedPartialClassDescriptions">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBPartialClassDescription">
+ <string key="className">Afloat</string>
+ <string key="superclassName">NSObject</string>
+ <object class="NSMutableDictionary" key="actions">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSMutableArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>disableAllOverlays:</string>
+ <string>makeLessTransparent:</string>
+ <string>makeMoreTransparent:</string>
+ <string>makeOpaque:</string>
+ <string>makeTranslucent:</string>
+ <string>showAdjustEffectsPanel:</string>
+ <string>showWindowFileInFinder:</string>
+ <string>toggleAlwaysOnTop:</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="outlets">
+ <string key="NS.key.0">_menuWithItems</string>
+ <string key="NS.object.0">NSMenu</string>
+ </object>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">Afloat.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">AfloatStorage.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">JRSwizzle.h</string>
+ </object>
+ </object>
+ </object>
+ </object>
+ <int key="IBDocument.localizationMode">0</int>
+ <string
key="IBDocument.LastKnownRelativeProjectPath">../Afloat.xcodeproj</string>
+ <int key="IBDocument.defaultPropertyAccessControl">3</int>
+ </data>
+</archive>
Added: trunk/Afloat/en.lproj/Afloat.nib/keyedobjects.nib
==============================================================================
Binary file. No diff available.
Added: trunk/Afloat/en.lproj/AfloatBadge.nib/designable.nib
==============================================================================
--- (empty file)
+++ trunk/Afloat/en.lproj/AfloatBadge.nib/designable.nib Thu Dec 18
07:17:46 2008
@@ -0,0 +1,271 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.02">
+ <data>
+ <int key="IBDocument.SystemTarget">1050</int>
+ <string key="IBDocument.SystemVersion">9C31</string>
+ <string key="IBDocument.InterfaceBuilderVersion">644</string>
+ <string key="IBDocument.AppKitVersion">949.26</string>
+ <string key="IBDocument.HIToolboxVersion">352.00</string>
+ <object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <integer value="2"/>
+ </object>
+ <object class="NSArray" key="IBDocument.PluginDependencies">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ </object>
+ <object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSCustomObject" id="1001">
+ <string key="NSClassName">AfloatBadgeController</string>
+ </object>
+ <object class="NSCustomObject" id="1003">
+ <string key="NSClassName">FirstResponder</string>
+ </object>
+ <object class="NSCustomObject" id="1004">
+ <string key="NSClassName">NSApplication</string>
+ </object>
+ <object class="NSWindowTemplate" id="1005">
+ <int key="NSWindowStyleMask">17</int>
+ <int key="NSWindowBacking">2</int>
+ <string key="NSWindowRect">{{196, 363}, {146, 147}}</string>
+ <int key="NSWTFlags">1610612736</int>
+ <string key="NSWindowTitle"/>
+ <string key="NSWindowClass">AfloatPanel</string>
+ <nil key="NSViewClass"/>
+ <object class="NSView" key="NSWindowView" id="1006">
+ <reference key="NSNextResponder"/>
+ <int key="NSvFlags">256</int>
+ <object class="NSMutableArray" key="NSSubviews">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSImageView" id="943891510">
+ <reference key="NSNextResponder" ref="1006"/>
+ <int key="NSvFlags">256</int>
+ <object class="NSMutableSet" key="NSDragTypes">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSMutableArray" key="set.sortedObjects">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>Apple PDF pasteboard type</string>
+ <string>Apple PICT pasteboard type</string>
+ <string>Apple PNG pasteboard type</string>
+ <string>NSFilenamesPboardType</string>
+ <string>NeXT Encapsulated PostScript v1.2 pasteboard type</string>
+ <string>NeXT TIFF v4.0 pasteboard type</string>
+ </object>
+ </object>
+ <string key="NSFrameSize">{146, 147}</string>
+ <reference key="NSSuperview" ref="1006"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSImageCell" key="NSCell" id="745796274">
+ <int key="NSCellFlags">130560</int>
+ <int key="NSCellFlags2">33554432</int>
+ <object class="NSCustomResource" key="NSContents">
+ <string key="NSClassName">NSImage</string>
+ <string key="NSResourceName">AfloatSinkingBadge</string>
+ </object>
+ <int key="NSAlign">0</int>
+ <int key="NSScale">1</int>
+ <int key="NSStyle">0</int>
+ <bool key="NSAnimates">YES</bool>
+ </object>
+ <bool key="NSEditable">YES</bool>
+ </object>
+ </object>
+ <string key="NSFrameSize">{146, 147}</string>
+ <reference key="NSSuperview"/>
+ </object>
+ <string key="NSScreenRect">{{0, 0}, {1280, 778}}</string>
+ </object>
+ </object>
+ <object class="IBObjectContainer" key="IBDocument.Objects">
+ <object class="NSMutableArray" key="connectionRecords">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBConnectionRecord">
+ <object class="IBOutletConnection" key="connection">
+ <string key="label">window</string>
+ <reference key="source" ref="1001"/>
+ <reference key="destination" ref="1005"/>
+ </object>
+ <int key="connectionID">6</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBOutletConnection" key="connection">
+ <string key="label">badgeView</string>
+ <reference key="source" ref="1001"/>
+ <reference key="destination" ref="943891510"/>
+ </object>
+ <int key="connectionID">7</int>
+ </object>
+ </object>
+ <object class="IBMutableOrderedSet" key="objectRecords">
+ <object class="NSArray" key="orderedObjects">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBObjectRecord">
+ <int key="objectID">0</int>
+ <object class="NSArray" key="object" id="1002">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ <reference key="children" ref="1000"/>
+ <nil key="parent"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-2</int>
+ <reference key="object" ref="1001"/>
+ <reference key="parent" ref="1002"/>
+ <string type="base64-UTF8"
key="objectName">RmlsZSdzIE93bmVyA</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-1</int>
+ <reference key="object" ref="1003"/>
+ <reference key="parent" ref="1002"/>
+ <string key="objectName">First Responder</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-3</int>
+ <reference key="object" ref="1004"/>
+ <reference key="parent" ref="1002"/>
+ <string key="objectName">Application</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">1</int>
+ <reference key="object" ref="1005"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="1006"/>
+ </object>
+ <reference key="parent" ref="1002"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">2</int>
+ <reference key="object" ref="1006"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="943891510"/>
+ </object>
+ <reference key="parent" ref="1005"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">3</int>
+ <reference key="object" ref="943891510"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="745796274"/>
+ </object>
+ <reference key="parent" ref="1006"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">4</int>
+ <reference key="object" ref="745796274"/>
+ <reference key="parent" ref="943891510"/>
+ </object>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="flattenedProperties">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSMutableArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>-1.IBPluginDependency</string>
+ <string>-2.IBPluginDependency</string>
+ <string>-3.IBPluginDependency</string>
+ <string>1.IBEditorWindowLastContentRect</string>
+ <string>1.IBPluginDependency</string>
+ <string>1.IBWindowTemplateEditedContentRect</string>
+ <string>1.NSWindowTemplate.visibleAtLaunch</string>
+ <string>1.WindowOrigin</string>
+ <string>1.editorWindowContentRectSynchronizationRect</string>
+ <string>1.lastResizeAction</string>
+ <string>2.IBPluginDependency</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>{{347, 364}, {146, 147}}</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>{{347, 364}, {146, 147}}</string>
+ <integer value="0"/>
+ <string>{196, 240}</string>
+ <string>{{357, 418}, {480, 270}}</string>
+ <object class="NSDictionary">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSMutableArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>IBResizeActionFinalFrame</string>
+ <string>IBResizeActionInitialFrame</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>{{196, 363}, {146, 147}}</string>
+ <string>{{196, 240}, {480, 270}}</string>
+ </object>
+ </object>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="unlocalizedProperties">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <nil key="activeLocalization"/>
+ <object class="NSMutableDictionary" key="localizations">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <nil key="sourceID"/>
+ <int key="maxID">7</int>
+ </object>
+ <object class="IBClassDescriber" key="IBDocument.Classes">
+ <object class="NSMutableArray" key="referencedPartialClassDescriptions">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBPartialClassDescription">
+ <string key="className">AfloatBadgeController</string>
+ <string key="superclassName">NSWindowController</string>
+ <object class="NSMutableDictionary" key="outlets">
+ <string key="NS.key.0">badgeView</string>
+ <string key="NS.object.0">NSImageView</string>
+ </object>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">AfloatBadgeController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">AfloatPanel</string>
+ <string key="superclassName">NSPanel</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">AfloatPanel.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">AfloatStorage.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">JRSwizzle.h</string>
+ </object>
+ </object>
+ </object>
+ </object>
+ <int key="IBDocument.localizationMode">0</int>
+ <string
key="IBDocument.LastKnownRelativeProjectPath">../Afloat.xcodeproj</string>
+ <int key="IBDocument.defaultPropertyAccessControl">3</int>
+ </data>
+</archive>
Added: trunk/Afloat/en.lproj/AfloatBadge.nib/keyedobjects.nib
==============================================================================
Binary file. No diff available.
Added: trunk/Afloat/en.lproj/AfloatDonateFirstAlert.strings
==============================================================================
--- (empty file)
+++ trunk/Afloat/en.lproj/AfloatDonateFirstAlert.strings Thu Dec 18
07:17:46 2008
@@ -0,0 +1,4 @@
+"If you do, you can support Afloat's author with a small token of your
gratitude." = "If you do, you can support Afloat's author with a small
token of your gratitude.";
+"Donate\U2026" = "Donate\U2026";
+"Maybe Later" = "Maybe Later";
+"Do you like keeping your windows afloat?" = "Do you like keeping your
windows afloat?";
Added: trunk/Afloat/en.lproj/AfloatDonateLastAlert.strings
==============================================================================
--- (empty file)
+++ trunk/Afloat/en.lproj/AfloatDonateLastAlert.strings Thu Dec 18 07:17:46
2008
@@ -0,0 +1,4 @@
+"If you do, you can support Afloat's author with a small token of your
gratitude." = "If you do, you can support Afloat's author with a small
token of your gratitude.";
+"Donate\U2026" = "Donate\U2026";
+"No, thanks" = "No, thanks";
+"Do you like keeping your windows afloat?" = "Do you like keeping your
windows afloat?";
Added: trunk/Afloat/en.lproj/AfloatPanel.nib/designable.nib
==============================================================================
--- (empty file)
+++ trunk/Afloat/en.lproj/AfloatPanel.nib/designable.nib Thu Dec 18
07:17:46 2008
@@ -0,0 +1,915 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.02">
+ <data>
+ <int key="IBDocument.SystemTarget">1050</int>
+ <string key="IBDocument.SystemVersion">9F33</string>
+ <string key="IBDocument.InterfaceBuilderVersion">672</string>
+ <string key="IBDocument.AppKitVersion">949.34</string>
+ <string key="IBDocument.HIToolboxVersion">352.00</string>
+ <object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <integer value="13"/>
+ </object>
+ <object class="NSArray" key="IBDocument.PluginDependencies">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>com.binarymethod.BGHUDAppKitPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ </object>
+ <object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSCustomObject" id="1001">
+ <string key="NSClassName">AfloatPanelController</string>
+ </object>
+ <object class="NSCustomObject" id="1003">
+ <string key="NSClassName">FirstResponder</string>
+ </object>
+ <object class="NSCustomObject" id="1004">
+ <string key="NSClassName">NSApplication</string>
+ </object>
+ <object class="NSWindowTemplate" id="1005">
+ <int key="NSWindowStyleMask">145</int>
+ <int key="NSWindowBacking">2</int>
+ <string key="NSWindowRect">{{196, 165}, {343, 345}}</string>
+ <int key="NSWTFlags">1879048192</int>
+ <string type="base64-UTF8"
key="NSWindowTitle">QWZsb2F0IOKAlCBBZGp1c3QgRWZmZWN0cw</string>
+ <string key="NSWindowClass">AfloatPanel</string>
+ <nil key="NSViewClass"/>
+ <string key="NSWindowContentMaxSize">{3.40282e+38,
3.40282e+38}</string>
+ <object class="NSView" key="NSWindowView" id="1006">
+ <reference key="NSNextResponder"/>
+ <int key="NSvFlags">256</int>
+ <object class="NSMutableArray" key="NSSubviews">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSCustomView" id="74831393">
+ <reference key="NSNextResponder" ref="1006"/>
+ <int key="NSvFlags">268</int>
+ <object class="NSMutableArray" key="NSSubviews">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSTextField" id="412363338">
+ <reference key="NSNextResponder" ref="74831393"/>
+ <int key="NSvFlags">268</int>
+ <string key="NSFrame">{{17, 143}, {80, 14}}</string>
+ <reference key="NSSuperview" ref="74831393"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSTextFieldCell" key="NSCell" id="885152139">
+ <int key="NSCellFlags">67239488</int>
+ <int key="NSCellFlags2">272761856</int>
+ <string key="NSContents">Transparency:</string>
+ <object class="NSFont" key="NSSupport" id="781131472">
+ <string key="NSName">LucidaGrande</string>
+ <double key="NSSize">1.100000e+01</double>
+ <int key="NSfFlags">16</int>
+ </object>
+ <reference key="NSControlView" ref="412363338"/>
+ <object class="NSColor" key="NSBackgroundColor" id="273832173">
+ <int key="NSColorSpace">6</int>
+ <string key="NSCatalogName">System</string>
+ <string key="NSColorName">controlColor</string>
+ <object class="NSColor" key="NSColor">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MC42NjY2NjY2OQA</bytes>
+ </object>
+ </object>
+ <object class="NSColor" key="NSTextColor" id="624581586">
+ <int key="NSColorSpace">1</int>
+ <bytes key="NSRGB">MSAxIDEAA</bytes>
+ </object>
+ </object>
+ </object>
+ <object class="NSTextField" id="228834540">
+ <reference key="NSNextResponder" ref="74831393"/>
+ <int key="NSvFlags">268</int>
+ <string key="NSFrame">{{34, 209}, {292, 53}}</string>
+ <reference key="NSSuperview" ref="74831393"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSTextFieldCell" key="NSCell" id="405850855">
+ <int key="NSCellFlags">67239424</int>
+ <int key="NSCellFlags2">272760832</int>
+ <string type="base64-UTF8"
key="NSContents">T3ZlcmxheSB3aW5kb3dzIGZsb2F0IG9uIHRvcCBvZiBhbGwgb3RoZXJzIGFuZCBjbGlja3Mgb24gdGhl
+bSAiZmFsbCB0aHJvdWdoIiB0byB0aGUgd2luZG93cyBiZWxvdy4</string>
+ <reference key="NSSupport" ref="781131472"/>
+ <reference key="NSControlView" ref="228834540"/>
+ <reference key="NSBackgroundColor" ref="273832173"/>
+ <reference key="NSTextColor" ref="624581586"/>
+ </object>
+ </object>
+ <object class="NSTextField" id="452598461">
+ <reference key="NSNextResponder" ref="74831393"/>
+ <int key="NSvFlags">268</int>
+ <string key="NSFrame">{{17, 294}, {116, 14}}</string>
+ <reference key="NSSuperview" ref="74831393"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSTextFieldCell" key="NSCell" id="628147979">
+ <int key="NSCellFlags">67239424</int>
+ <int key="NSCellFlags2">4325376</int>
+ <string key="NSContents">Keep this window:</string>
+ <reference key="NSSupport" ref="781131472"/>
+ <reference key="NSControlView" ref="452598461"/>
+ <reference key="NSBackgroundColor" ref="273832173"/>
+ <reference key="NSTextColor" ref="624581586"/>
+ </object>
+ </object>
+ <object class="NSTextField" id="159520">
+ <reference key="NSNextResponder" ref="74831393"/>
+ <int key="NSvFlags">268</int>
+ <string key="NSFrame">{{17, 92}, {140, 18}}</string>
+ <reference key="NSSuperview" ref="74831393"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSTextFieldCell" key="NSCell" id="115870377">
+ <int key="NSCellFlags">67239424</int>
+ <int key="NSCellFlags2">272760832</int>
+ <string key="NSContents">Barely visible</string>
+ <reference key="NSSupport" ref="781131472"/>
+ <reference key="NSControlView" ref="159520"/>
+ <reference key="NSBackgroundColor" ref="273832173"/>
+ <reference key="NSTextColor" ref="624581586"/>
+ </object>
+ </object>
+ <object class="NSTextField" id="645478131">
+ <reference key="NSNextResponder" ref="74831393"/>
+ <int key="NSvFlags">268</int>
+ <string key="NSFrame">{{180, 92}, {146, 18}}</string>
+ <reference key="NSSuperview" ref="74831393"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSTextFieldCell" key="NSCell" id="263402981">
+ <int key="NSCellFlags">67239424</int>
+ <int key="NSCellFlags2">71434240</int>
+ <string key="NSContents">Opaque</string>
+ <reference key="NSSupport" ref="781131472"/>
+ <reference key="NSControlView" ref="645478131"/>
+ <reference key="NSBackgroundColor" ref="273832173"/>
+ <reference key="NSTextColor" ref="624581586"/>
+ </object>
+ </object>
+ <object class="NSImageView" id="469359480">
+ <reference key="NSNextResponder" ref="74831393"/>
+ <int key="NSvFlags">256</int>
+ <object class="NSMutableSet" key="NSDragTypes">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSMutableArray" key="set.sortedObjects">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>Apple PDF pasteboard type</string>
+ <string>Apple PICT pasteboard type</string>
+ <string>Apple PNG pasteboard type</string>
+ <string>NSFilenamesPboardType</string>
+ <string>NeXT Encapsulated PostScript v1.2 pasteboard
type</string>
+ <string>NeXT TIFF v4.0 pasteboard type</string>
+ </object>
+ </object>
+ <string key="NSFrame">{{198, 12}, {32, 32}}</string>
+ <reference key="NSSuperview" ref="74831393"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSImageCell" key="NSCell" id="240038034">
+ <int key="NSCellFlags">130560</int>
+ <int key="NSCellFlags2">33554432</int>
+ <object class="NSCustomResource" key="NSContents">
+ <string key="NSClassName">NSImage</string>
+ <string key="NSResourceName">AfloatButton</string>
+ </object>
+ <int key="NSAlign">0</int>
+ <int key="NSScale">1</int>
+ <int key="NSStyle">0</int>
+ <bool key="NSAnimates">YES</bool>
+ </object>
+ <bool key="NSEditable">YES</bool>
+ </object>
+ <object class="NSPopUpButton" id="693479719">
+ <reference key="NSNextResponder" ref="74831393"/>
+ <int key="NSvFlags">268</int>
+ <string key="NSFrame">{{126, 289}, {200, 22}}</string>
+ <reference key="NSSuperview" ref="74831393"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="BGHUDPopUpButtonCell" key="NSCell" id="783497552">
+ <int key="NSCellFlags">-
2076049856</int>
+ <int key="NSCellFlags2">133120</int>
+ <object class="NSFont" key="NSSupport" id="26">
+ <string key="NSName">LucidaGrande</string>
+ <double key="NSSize">1.100000e+01</double>
+ <int key="NSfFlags">3100</int>
+ </object>
+ <reference key="NSControlView" ref="693479719"/>
+ <int key="NSButtonFlags">109199615</int>
+ <int key="NSButtonFlags2">1</int>
+ <string key="NSAlternateContents"/>
+ <string key="NSKeyEquivalent"/>
+ <int key="NSPeriodicDelay">400</int>
+ <int key="NSPeriodicInterval">75</int>
+ <object class="NSMenuItem" key="NSMenuItem" id="1011719117">
+ <reference key="NSMenu" ref="458588911"/>
+ <string key="NSTitle">Regular</string>
+ <string key="NSKeyEquiv"/>
+ <int key="NSKeyEquivModMask">1048576</int>
+ <int key="NSMnemonicLoc">
2147483647</int>
+ <int key="NSState">1</int>
+ <object class="NSCustomResource" key="NSOnImage" id="791399910">
+ <string key="NSClassName">NSImage</string>
+ <string key="NSResourceName">NSMenuCheckmark</string>
+ </object>
+ <object class="NSCustomResource" key="NSMixedImage"
id="708924384">
+ <string key="NSClassName">NSImage</string>
+ <string key="NSResourceName">NSMenuMixedState</string>
+ </object>
+ <string key="NSAction">_popUpItemAction:</string>
+ <reference key="NSTarget" ref="783497552"/>
+ </object>
+ <bool key="NSMenuItemRespectAlignment">YES</bool>
+ <object class="NSMenu" key="NSMenu" id="458588911">
+ <string key="NSTitle">OtherViews</string>
+ <object class="NSMutableArray" key="NSMenuItems">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="1011719117"/>
+ <object class="NSMenuItem" id="311269619">
+ <reference key="NSMenu" ref="458588911"/>
+ <string key="NSTitle">Afloat</string>
+ <string key="NSKeyEquiv"/>
+ <int key="NSKeyEquivModMask">1048576</int>
+ <int key="NSMnemonicLoc">
2147483647</int>
+ <reference key="NSOnImage" ref="791399910"/>
+ <reference key="NSMixedImage" ref="708924384"/>
+ <string key="NSAction">_popUpItemAction:</string>
+ <int key="NSTag">1</int>
+ <reference key="NSTarget" ref="783497552"/>
+ </object>
+ <object class="NSMenuItem" id="853260232">
+ <reference key="NSMenu" ref="458588911"/>
+ <string key="NSTitle">Pinned to the desktop</string>
+ <string key="NSKeyEquiv"/>
+ <int key="NSKeyEquivModMask">1048576</int>
+ <int key="NSMnemonicLoc">
2147483647</int>
+ <reference key="NSOnImage" ref="791399910"/>
+ <reference key="NSMixedImage" ref="708924384"/>
+ <string key="NSAction">_popUpItemAction:</string>
+ <int key="NSTag">2</int>
+ <reference key="NSTarget" ref="783497552"/>
+ </object>
+ </object>
+ </object>
+ <int key="NSPreferredEdge">1</int>
+ <bool key="NSUsesItemFromMenu">YES</bool>
+ <bool key="NSAltersState">YES</bool>
+ <int key="NSArrowPosition">2</int>
+ <string key="themeKey">gradientTheme</string>
+ </object>
+ </object>
+ <object class="NSButton" id="881106920">
+ <reference key="NSNextResponder" ref="74831393"/>
+ <int key="NSvFlags">268</int>
+ <string key="NSFrame">{{34, 268}, {291, 18}}</string>
+ <reference key="NSSuperview" ref="74831393"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="BGHUDButtonCell" key="NSCell" id="281292691">
+ <int key="NSCellFlags">-2080244224</int>
+ <int key="NSCellFlags2">131072</int>
+ <string key="NSContents">Make this window an overlay</string>
+ <reference key="NSSupport" ref="26"/>
+ <reference key="NSControlView" ref="881106920"/>
+ <int key="NSButtonFlags">1211912703</int>
+ <int key="NSButtonFlags2">2</int>
+ <object class="NSCustomResource" key="NSNormalImage"
id="222101372">
+ <string key="NSClassName">NSImage</string>
+ <string key="NSResourceName">NSSwitch</string>
+ </object>
+ <object class="NSButtonImageSource" key="NSAlternateImage"
id="559643094">
+ <string key="NSImageName">NSSwitch</string>
+ </object>
+ <string key="NSAlternateContents"/>
+ <string key="NSKeyEquivalent"/>
+ <int key="NSPeriodicDelay">200</int>
+ <int key="NSPeriodicInterval">25</int>
+ <string key="themeKey">gradientTheme</string>
+ </object>
+ </object>
+ <object class="NSButton" id="820132134">
+ <reference key="NSNextResponder" ref="74831393"/>
+ <int key="NSvFlags">268</int>
+ <string key="NSFrame">{{17, 187}, {308, 18}}</string>
+ <reference key="NSSuperview" ref="74831393"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="BGHUDButtonCell" key="NSCell" id="736826701">
+ <int key="NSCellFlags">-2080244224</int>
+ <int key="NSCellFlags2">131072</int>
+ <string key="NSContents">Keep this window on the screen on all
Spaces</string>
+ <reference key="NSSupport" ref="26"/>
+ <reference key="NSControlView" ref="820132134"/>
+ <int key="NSButtonFlags">1211912703</int>
+ <int key="NSButtonFlags2">2</int>
+ <reference key="NSNormalImage" ref="222101372"/>
+ <reference key="NSAlternateImage" ref="559643094"/>
+ <string key="NSAlternateContents"/>
+ <string key="NSKeyEquivalent"/>
+ <int key="NSPeriodicDelay">200</int>
+ <int key="NSPeriodicInterval">25</int>
+ <string key="themeKey">gradientTheme</string>
+ </object>
+ </object>
+ <object class="NSButton" id="618780071">
+ <reference key="NSNextResponder" ref="74831393"/>
+ <int key="NSvFlags">268</int>
+ <string key="NSFrame">{{17, 68}, {309, 18}}</string>
+ <reference key="NSSuperview" ref="74831393"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="BGHUDButtonCell" key="NSCell" id="408669519">
+ <int key="NSCellFlags">-2080244224</int>
+ <int key="NSCellFlags2">131072</int>
+ <string type="base64-UTF8"
key="NSContents">TWFrZSBpdCBvcGFxdWUgd2hpbGUgSSdtIHdvcmtpbmcgd2l0aCBpdA</string>
+ <reference key="NSSupport" ref="26"/>
+ <reference key="NSControlView" ref="618780071"/>
+ <int key="NSButtonFlags">1211912703</int>
+ <int key="NSButtonFlags2">2</int>
+ <reference key="NSNormalImage" ref="222101372"/>
+ <reference key="NSAlternateImage" ref="559643094"/>
+ <string key="NSAlternateContents"/>
+ <string key="NSKeyEquivalent"/>
+ <int key="NSPeriodicDelay">200</int>
+ <int key="NSPeriodicInterval">25</int>
+ <string key="themeKey">gradientTheme</string>
+ </object>
+ </object>
+ <object class="NSSlider" id="609613972">
+ <reference key="NSNextResponder" ref="74831393"/>
+ <int key="NSvFlags">268</int>
+ <string key="NSFrame">{{20, 118}, {303, 17}}</string>
+ <reference key="NSSuperview" ref="74831393"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="BGHUDSliderCell" key="NSCell" id="338612128">
+ <int key="NSCellFlags">-2080244224</int>
+ <int key="NSCellFlags2">131072</int>
+ <string key="NSContents"/>
+ <reference key="NSSupport" ref="26"/>
+ <reference key="NSControlView" ref="609613972"/>
+ <double key="NSMaxValue">1.000000e+00</double>
+ <double key="NSMinValue">0.000000e+00</double>
+ <double key="NSValue">1.000000e+00</double>
+ <double key="NSAltIncValue">0.000000e+00</double>
+ <int key="NSNumberOfTickMarks">10</int>
+ <int key="NSTickMarkPosition">0</int>
+ <bool key="NSAllowsTickMarkValuesOnly">NO</bool>
+ <bool key="NSVertical">NO</bool>
+ <string key="themeKey">gradientTheme</string>
+ </object>
+ </object>
+ <object class="NSButton" id="371727758">
+ <reference key="NSNextResponder" ref="74831393"/>
+ <int key="NSvFlags">268</int>
+ <string key="NSFrame">{{238, 18}, {86, 19}}</string>
+ <reference key="NSSuperview" ref="74831393"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="BGHUDButtonCell" key="NSCell" id="958156506">
+ <int key="NSCellFlags">67239424</int>
+ <int key="NSCellFlags2">134217728</int>
+ <string key="NSContents">Done</string>
+ <reference key="NSSupport" ref="781131472"/>
+ <reference key="NSControlView" ref="371727758"/>
+ <int key="NSButtonFlags">-
2038284033</int>
+ <int key="NSButtonFlags2">36</int>
+ <reference key="NSAlternateImage" ref="781131472"/>
+ <string key="NSAlternateContents"/>
+ <string key="NSKeyEquivalent"/>
+ <int key="NSPeriodicDelay">200</int>
+ <int key="NSPeriodicInterval">25</int>
+ <string key="themeKey">gradientTheme</string>
+ </object>
+ </object>
+ </object>
+ <string key="NSFrameSize">{343, 345}</string>
+ <reference key="NSSuperview" ref="1006"/>
+ <string key="NSClassName">AfloatPanelBackdropView</string>
+ </object>
+ </object>
+ <string key="NSFrameSize">{343, 345}</string>
+ <reference key="NSSuperview"/>
+ </object>
+ <string key="NSScreenRect">{{0, 0}, {1280, 778}}</string>
+ <string key="NSMaxSize">{3.40282e+38, 3.40282e+38}</string>
+ <string key="NSFrameAutosaveName"/>
+ </object>
+ </object>
+ <object class="IBObjectContainer" key="IBDocument.Objects">
+ <object class="NSMutableArray" key="connectionRecords">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBConnectionRecord">
+ <object class="IBOutletConnection" key="connection">
+ <string key="label">window</string>
+ <reference key="source" ref="1001"/>
+ <reference key="destination" ref="1005"/>
+ </object>
+ <int key="connectionID">12</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBBindingConnection" key="connection">
+ <string key="label">value: overlay</string>
+ <reference key="source" ref="881106920"/>
+ <reference key="destination" ref="1001"/>
+ <object class="NSNibBindingConnector" key="connector">
+ <reference key="NSSource" ref="881106920"/>
+ <reference key="NSDestination" ref="1001"/>
+ <string key="NSLabel">value: overlay</string>
+ <string key="NSBinding">value</string>
+ <string key="NSKeyPath">overlay</string>
+ <int key="NSNibBindingConnectorVersion">2</int>
+ </object>
+ </object>
+ <int key="connectionID">81</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBBindingConnection" key="connection">
+ <string key="label">value: onAllSpaces</string>
+ <reference key="source" ref="820132134"/>
+ <reference key="destination" ref="1001"/>
+ <object class="NSNibBindingConnector" key="connector">
+ <reference key="NSSource" ref="820132134"/>
+ <reference key="NSDestination" ref="1001"/>
+ <string key="NSLabel">value: onAllSpaces</string>
+ <string key="NSBinding">value</string>
+ <string key="NSKeyPath">onAllSpaces</string>
+ <int key="NSNibBindingConnectorVersion">2</int>
+ </object>
+ </object>
+ <int key="connectionID">84</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBBindingConnection" key="connection">
+ <string key="label">value: alphaValue</string>
+ <reference key="source" ref="609613972"/>
+ <reference key="destination" ref="1001"/>
+ <object class="NSNibBindingConnector" key="connector">
+ <reference key="NSSource" ref="609613972"/>
+ <reference key="NSDestination" ref="1001"/>
+ <string key="NSLabel">value: alphaValue</string>
+ <string key="NSBinding">value</string>
+ <string key="NSKeyPath">alphaValue</string>
+ <int key="NSNibBindingConnectorVersion">2</int>
+ </object>
+ </object>
+ <int key="connectionID">87</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBBindingConnection" key="connection">
+ <string key="label">value: alphaValueAnimatesOnMouseOver</string>
+ <reference key="source" ref="618780071"/>
+ <reference key="destination" ref="1001"/>
+ <object class="NSNibBindingConnector" key="connector">
+ <reference key="NSSource" ref="618780071"/>
+ <reference key="NSDestination" ref="1001"/>
+ <string key="NSLabel">value: alphaValueAnimatesOnMouseOver</string>
+ <string key="NSBinding">value</string>
+ <string key="NSKeyPath">alphaValueAnimatesOnMouseOver</string>
+ <int key="NSNibBindingConnectorVersion">2</int>
+ </object>
+ </object>
+ <int key="connectionID">90</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBActionConnection" key="connection">
+ <string key="label">hideWindow:</string>
+ <reference key="source" ref="1001"/>
+ <reference key="destination" ref="371727758"/>
+ </object>
+ <int key="connectionID">95</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBBindingConnection" key="connection">
+ <string key="label">selectedTag: windowState</string>
+ <reference key="source" ref="693479719"/>
+ <reference key="destination" ref="1001"/>
+ <object class="NSNibBindingConnector" key="connector">
+ <reference key="NSSource" ref="693479719"/>
+ <reference key="NSDestination" ref="1001"/>
+ <string key="NSLabel">selectedTag: windowState</string>
+ <string key="NSBinding">selectedTag</string>
+ <string key="NSKeyPath">windowState</string>
+ <int key="NSNibBindingConnectorVersion">2</int>
+ </object>
+ </object>
+ <int key="connectionID">96</int>
+ </object>
+ </object>
+ <object class="IBMutableOrderedSet" key="objectRecords">
+ <object class="NSArray" key="orderedObjects">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBObjectRecord">
+ <int key="objectID">0</int>
+ <object class="NSArray" key="object" id="1002">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ <reference key="children" ref="1000"/>
+ <nil key="parent"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-2</int>
+ <reference key="object" ref="1001"/>
+ <reference key="parent" ref="1002"/>
+ <string type="base64-UTF8"
key="objectName">RmlsZSdzIE93bmVyA</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-1</int>
+ <reference key="object" ref="1003"/>
+ <reference key="parent" ref="1002"/>
+ <string key="objectName">First Responder</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-3</int>
+ <reference key="object" ref="1004"/>
+ <reference key="parent" ref="1002"/>
+ <string key="objectName">Application</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">1</int>
+ <reference key="object" ref="1005"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="1006"/>
+ </object>
+ <reference key="parent" ref="1002"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">2</int>
+ <reference key="object" ref="1006"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="74831393"/>
+ </object>
+ <reference key="parent" ref="1005"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">13</int>
+ <reference key="object" ref="74831393"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="412363338"/>
+ <reference ref="159520"/>
+ <reference ref="645478131"/>
+ <reference ref="228834540"/>
+ <reference ref="452598461"/>
+ <reference ref="693479719"/>
+ <reference ref="881106920"/>
+ <reference ref="820132134"/>
+ <reference ref="609613972"/>
+ <reference ref="618780071"/>
+ <reference ref="469359480"/>
+ <reference ref="371727758"/>
+ </object>
+ <reference key="parent" ref="1006"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">20</int>
+ <reference key="object" ref="412363338"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="885152139"/>
+ </object>
+ <reference key="parent" ref="74831393"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">21</int>
+ <reference key="object" ref="885152139"/>
+ <reference key="parent" ref="412363338"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">26</int>
+ <reference key="object" ref="228834540"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="405850855"/>
+ </object>
+ <reference key="parent" ref="74831393"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">27</int>
+ <reference key="object" ref="405850855"/>
+ <reference key="parent" ref="228834540"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">36</int>
+ <reference key="object" ref="159520"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="115870377"/>
+ </object>
+ <reference key="parent" ref="74831393"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">37</int>
+ <reference key="object" ref="115870377"/>
+ <reference key="parent" ref="159520"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">38</int>
+ <reference key="object" ref="645478131"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="263402981"/>
+ </object>
+ <reference key="parent" ref="74831393"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">39</int>
+ <reference key="object" ref="263402981"/>
+ <reference key="parent" ref="645478131"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">45</int>
+ <reference key="object" ref="469359480"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="240038034"/>
+ </object>
+ <reference key="parent" ref="74831393"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">46</int>
+ <reference key="object" ref="240038034"/>
+ <reference key="parent" ref="469359480"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">64</int>
+ <reference key="object" ref="452598461"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="628147979"/>
+ </object>
+ <reference key="parent" ref="74831393"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">65</int>
+ <reference key="object" ref="628147979"/>
+ <reference key="parent" ref="452598461"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">73</int>
+ <reference key="object" ref="693479719"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="783497552"/>
+ </object>
+ <reference key="parent" ref="74831393"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">74</int>
+ <reference key="object" ref="783497552"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="458588911"/>
+ </object>
+ <reference key="parent" ref="693479719"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">75</int>
+ <reference key="object" ref="458588911"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="1011719117"/>
+ <reference ref="311269619"/>
+ <reference ref="853260232"/>
+ </object>
+ <reference key="parent" ref="783497552"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">76</int>
+ <reference key="object" ref="1011719117"/>
+ <reference key="parent" ref="458588911"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">77</int>
+ <reference key="object" ref="311269619"/>
+ <reference key="parent" ref="458588911"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">78</int>
+ <reference key="object" ref="853260232"/>
+ <reference key="parent" ref="458588911"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">79</int>
+ <reference key="object" ref="881106920"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="281292691"/>
+ </object>
+ <reference key="parent" ref="74831393"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">80</int>
+ <reference key="object" ref="281292691"/>
+ <reference key="parent" ref="881106920"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">82</int>
+ <reference key="object" ref="820132134"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="736826701"/>
+ </object>
+ <reference key="parent" ref="74831393"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">83</int>
+ <reference key="object" ref="736826701"/>
+ <reference key="parent" ref="820132134"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">85</int>
+ <reference key="object" ref="609613972"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="338612128"/>
+ </object>
+ <reference key="parent" ref="74831393"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">86</int>
+ <reference key="object" ref="338612128"/>
+ <reference key="parent" ref="609613972"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">88</int>
+ <reference key="object" ref="618780071"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="408669519"/>
+ </object>
+ <reference key="parent" ref="74831393"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">89</int>
+ <reference key="object" ref="408669519"/>
+ <reference key="parent" ref="618780071"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">93</int>
+ <reference key="object" ref="371727758"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="958156506"/>
+ </object>
+ <reference key="parent" ref="74831393"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">94</int>
+ <reference key="object" ref="958156506"/>
+ <reference key="parent" ref="371727758"/>
+ </object>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="flattenedProperties">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSMutableArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>-1.IBPluginDependency</string>
+ <string>-2.IBPluginDependency</string>
+ <string>-3.IBPluginDependency</string>
+ <string>1.IBEditorWindowLastContentRect</string>
+ <string>1.IBPluginDependency</string>
+ <string>1.IBWindowTemplateEditedContentRect</string>
+ <string>1.NSWindowTemplate.visibleAtLaunch</string>
+ <string>1.WindowOrigin</string>
+ <string>1.editorWindowContentRectSynchronizationRect</string>
+ <string>13.IBPluginDependency</string>
+ <string>2.IBPluginDependency</string>
+ <string>20.IBPluginDependency</string>
+ <string>21.IBPluginDependency</string>
+ <string>26.IBPluginDependency</string>
+ <string>27.IBPluginDependency</string>
+ <string>36.IBPluginDependency</string>
+ <string>37.IBPluginDependency</string>
+ <string>38.IBPluginDependency</string>
+ <string>39.IBPluginDependency</string>
+ <string>64.IBPluginDependency</string>
+ <string>65.IBPluginDependency</string>
+ <string>73.IBPluginDependency</string>
+ <string>74.IBPluginDependency</string>
+ <string>75.IBEditorWindowLastContentRect</string>
+ <string>75.IBPluginDependency</string>
+ <string>76.IBPluginDependency</string>
+ <string>77.IBPluginDependency</string>
+ <string>78.IBPluginDependency</string>
+ <string>79.IBPluginDependency</string>
+ <string>80.IBPluginDependency</string>
+ <string>82.IBPluginDependency</string>
+ <string>83.IBPluginDependency</string>
+ <string>85.IBPluginDependency</string>
+ <string>86.IBPluginDependency</string>
+ <string>88.IBPluginDependency</string>
+ <string>89.IBPluginDependency</string>
+ <string>93.IBPluginDependency</string>
+ <string>94.IBPluginDependency</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>{{243, 363}, {343, 345}}</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>{{243, 363}, {343, 345}}</string>
+ <integer value="0"/>
+ <string>{196, 240}</string>
+ <string>{{387, 342}, {343, 345}}</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.binarymethod.BGHUDAppKitPlugin</string>
+ <string>com.binarymethod.BGHUDAppKitPlugin</string>
+ <string>{{358, 620}, {200, 54}}</string>
+ <string>com.binarymethod.BGHUDAppKitPlugin</string>
+ <string>com.binarymethod.BGHUDAppKitPlugin</string>
+ <string>com.binarymethod.BGHUDAppKitPlugin</string>
+ <string>com.binarymethod.BGHUDAppKitPlugin</string>
+ <string>com.binarymethod.BGHUDAppKitPlugin</string>
+ <string>com.binarymethod.BGHUDAppKitPlugin</string>
+ <string>com.binarymethod.BGHUDAppKitPlugin</string>
+ <string>com.binarymethod.BGHUDAppKitPlugin</string>
+ <string>com.binarymethod.BGHUDAppKitPlugin</string>
+ <string>com.binarymethod.BGHUDAppKitPlugin</string>
+ <string>com.binarymethod.BGHUDAppKitPlugin</string>
+ <string>com.binarymethod.BGHUDAppKitPlugin</string>
+ <string>com.binarymethod.BGHUDAppKitPlugin</string>
+ <string>com.binarymethod.BGHUDAppKitPlugin</string>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="unlocalizedProperties">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <nil key="activeLocalization"/>
+ <object class="NSMutableDictionary" key="localizations">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <nil key="sourceID"/>
+ <int key="maxID">96</int>
+ </object>
+ <object class="IBClassDescriber" key="IBDocument.Classes">
+ <object class="NSMutableArray" key="referencedPartialClassDescriptions">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBPartialClassDescription">
+ <string key="className">AfloatPanel</string>
+ <string key="superclassName">NSPanel</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">AfloatPanel.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">AfloatPanelController</string>
+ <string key="superclassName">NSWindowController</string>
+ <object class="NSMutableDictionary" key="actions">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSMutableArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>disableAllOverlays:</string>
+ <string>hideWindow:</string>
+ <string>toggleWindow:</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ </object>
+ </object>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">AfloatPanelController.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">AfloatStorage.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">JRSwizzle.h</string>
+ </object>
+ </object>
+ </object>
+ </object>
+ <int key="IBDocument.localizationMode">0</int>
+ <string
key="IBDocument.LastKnownRelativeProjectPath">../Afloat.xcodeproj</string>
+ <int key="IBDocument.defaultPropertyAccessControl">3</int>
+ </data>
+</archive>
Added: trunk/Afloat/en.lproj/AfloatPanel.nib/keyedobjects.nib
==============================================================================
Binary file. No diff available.
Added: trunk/Afloat/en.lproj/Donate.nib/designable.nib
==============================================================================
--- (empty file)
+++ trunk/Afloat/en.lproj/Donate.nib/designable.nib Thu Dec 18 07:17:46 2008
@@ -0,0 +1,862 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.02">
+ <data>
+ <int key="IBDocument.SystemTarget">1050</int>
+ <string key="IBDocument.SystemVersion">9C7010</string>
+ <string key="IBDocument.InterfaceBuilderVersion">648</string>
+ <string key="IBDocument.AppKitVersion">949.26</string>
+ <string key="IBDocument.HIToolboxVersion">352.00</string>
+ <object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <integer value="57"/>
+ </object>
+ <object class="NSArray" key="IBDocument.PluginDependencies">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ </object>
+ <object class="NSMutableArray" key="IBDocument.RootObjects" id="1048">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSCustomObject" id="1021">
+ <string key="NSClassName">NSApplication</string>
+ </object>
+ <object class="NSCustomObject" id="1014">
+ <string key="NSClassName">FirstResponder</string>
+ </object>
+ <object class="NSCustomObject" id="1050">
+ <string key="NSClassName">NSApplication</string>
+ </object>
+ <object class="NSMenu" id="649796088">
+ <string key="NSTitle">AMainMenu</string>
+ <object class="NSMutableArray" key="NSMenuItems">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSMenuItem" id="694149608">
+ <reference key="NSMenu" ref="649796088"/>
+ <string key="NSTitle">Donate for Afloat</string>
+ <string key="NSKeyEquiv"/>
+ <int key="NSMnemonicLoc">
2147483647</int>
+ <object class="NSCustomResource" key="NSOnImage" id="353210768">
+ <string key="NSClassName">NSImage</string>
+ <string key="NSResourceName">NSMenuCheckmark</string>
+ </object>
+ <object class="NSCustomResource" key="NSMixedImage" id="549394948">
+ <string key="NSClassName">NSImage</string>
+ <string key="NSResourceName">NSMenuMixedState</string>
+ </object>
+ <string key="NSAction">submenuAction:</string>
+ <object class="NSMenu" key="NSSubmenu" id="110575045">
+ <string key="NSTitle">Donate for Afloat</string>
+ <object class="NSMutableArray" key="NSMenuItems">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSMenuItem" id="238522557">
+ <reference key="NSMenu" ref="110575045"/>
+ <string key="NSTitle">About Donate for Afloat</string>
+ <string key="NSKeyEquiv"/>
+ <int key="NSMnemonicLoc">
2147483647</int>
+ <reference key="NSOnImage" ref="353210768"/>
+ <reference key="NSMixedImage" ref="549394948"/>
+ </object>
+ <object class="NSMenuItem" id="304266470">
+ <reference key="NSMenu" ref="110575045"/>
+ <bool key="NSIsDisabled">YES</bool>
+ <bool key="NSIsSeparator">YES</bool>
+ <string key="NSTitle"/>
+ <string key="NSKeyEquiv"/>
+ <int key="NSMnemonicLoc">
2147483647</int>
+ <reference key="NSOnImage" ref="353210768"/>
+ <reference key="NSMixedImage" ref="549394948"/>
+ </object>
+ <object class="NSMenuItem" id="1046388886">
+ <reference key="NSMenu" ref="110575045"/>
+ <string key="NSTitle">Services</string>
+ <string key="NSKeyEquiv"/>
+ <int key="NSMnemonicLoc">
2147483647</int>
+ <reference key="NSOnImage" ref="353210768"/>
+ <reference key="NSMixedImage" ref="549394948"/>
+ <string key="NSAction">submenuAction:</string>
+ <object class="NSMenu" key="NSSubmenu" id="752062318">
+ <string key="NSTitle">Services</string>
+ <object class="NSMutableArray" key="NSMenuItems">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ <string key="NSName">_NSServicesMenu</string>
+ </object>
+ </object>
+ <object class="NSMenuItem" id="646227648">
+ <reference key="NSMenu" ref="110575045"/>
+ <bool key="NSIsDisabled">YES</bool>
+ <bool key="NSIsSeparator">YES</bool>
+ <string key="NSTitle"/>
+ <string key="NSKeyEquiv"/>
+ <int key="NSMnemonicLoc">
2147483647</int>
+ <reference key="NSOnImage" ref="353210768"/>
+ <reference key="NSMixedImage" ref="549394948"/>
+ </object>
+ <object class="NSMenuItem" id="755159360">
+ <reference key="NSMenu" ref="110575045"/>
+ <string key="NSTitle">Hide Donate for Afloat</string>
+ <string key="NSKeyEquiv">h</string>
+ <int key="NSKeyEquivModMask">1048576</int>
+ <int key="NSMnemonicLoc">
2147483647</int>
+ <reference key="NSOnImage" ref="353210768"/>
+ <reference key="NSMixedImage" ref="549394948"/>
+ </object>
+ <object class="NSMenuItem" id="342932134">
+ <reference key="NSMenu" ref="110575045"/>
+ <string key="NSTitle">Hide Others</string>
+ <string key="NSKeyEquiv">h</string>
+ <int key="NSKeyEquivModMask">1572864</int>
+ <int key="NSMnemonicLoc">
2147483647</int>
+ <reference key="NSOnImage" ref="353210768"/>
+ <reference key="NSMixedImage" ref="549394948"/>
+ </object>
+ <object class="NSMenuItem" id="908899353">
+ <reference key="NSMenu" ref="110575045"/>
+ <string key="NSTitle">Show All</string>
+ <string key="NSKeyEquiv"/>
+ <int key="NSMnemonicLoc">
2147483647</int>
+ <reference key="NSOnImage" ref="353210768"/>
+ <reference key="NSMixedImage" ref="549394948"/>
+ </object>
+ <object class="NSMenuItem" id="1056857174">
+ <reference key="NSMenu" ref="110575045"/>
+ <bool key="NSIsDisabled">YES</bool>
+ <bool key="NSIsSeparator">YES</bool>
+ <string key="NSTitle"/>
+ <string key="NSKeyEquiv"/>
+ <int key="NSMnemonicLoc">
2147483647</int>
+ <reference key="NSOnImage" ref="353210768"/>
+ <reference key="NSMixedImage" ref="549394948"/>
+ </object>
+ <object class="NSMenuItem" id="632727374">
+ <reference key="NSMenu" ref="110575045"/>
+ <string key="NSTitle">Quit Donate for Afloat</string>
+ <string key="NSKeyEquiv">q</string>
+ <int key="NSKeyEquivModMask">1048576</int>
+ <int key="NSMnemonicLoc">
2147483647</int>
+ <reference key="NSOnImage" ref="353210768"/>
+ <reference key="NSMixedImage" ref="549394948"/>
+ </object>
+ </object>
+ <string key="NSName">_NSAppleMenu</string>
+ </object>
+ </object>
+ <object class="NSMenuItem" id="952259628">
+ <reference key="NSMenu" ref="649796088"/>
+ <string key="NSTitle">Edit</string>
+ <string key="NSKeyEquiv"/>
+ <int key="NSMnemonicLoc">
2147483647</int>
+ <reference key="NSOnImage" ref="353210768"/>
+ <reference key="NSMixedImage" ref="549394948"/>
+ <string key="NSAction">submenuAction:</string>
+ <object class="NSMenu" key="NSSubmenu" id="789758025">
+ <string key="NSTitle">Edit</string>
+ <object class="NSMutableArray" key="NSMenuItems">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSMenuItem" id="1058277027">
+ <reference key="NSMenu" ref="789758025"/>
+ <string key="NSTitle">Undo</string>
+ <string key="NSKeyEquiv">z</string>
+ <int key="NSKeyEquivModMask">1048576</int>
+ <int key="NSMnemonicLoc">
2147483647</int>
+ <reference key="NSOnImage" ref="353210768"/>
+ <reference key="NSMixedImage" ref="549394948"/>
+ </object>
+ <object class="NSMenuItem" id="790794224">
+ <reference key="NSMenu" ref="789758025"/>
+ <string key="NSTitle">Redo</string>
+ <string key="NSKeyEquiv">Z</string>
+ <int key="NSKeyEquivModMask">1179648</int>
+ <int key="NSMnemonicLoc">
2147483647</int>
+ <reference key="NSOnImage" ref="353210768"/>
+ <reference key="NSMixedImage" ref="549394948"/>
+ </object>
+ <object class="NSMenuItem" id="1040322652">
+ <reference key="NSMenu" ref="789758025"/>
+ <bool key="NSIsDisabled">YES</bool>
+ <bool key="NSIsSeparator">YES</bool>
+ <string key="NSTitle"/>
+ <string key="NSKeyEquiv"/>
+ <int key="NSMnemonicLoc">
2147483647</int>
+ <reference key="NSOnImage" ref="353210768"/>
+ <reference key="NSMixedImage" ref="549394948"/>
+ </object>
+ <object class="NSMenuItem" id="296257095">
+ <reference key="NSMenu" ref="789758025"/>
+ <string key="NSTitle">Cut</string>
+ <string key="NSKeyEquiv">x</string>
+ <int key="NSKeyEquivModMask">1048576</int>
+ <int key="NSMnemonicLoc">
2147483647</int>
+ <reference key="NSOnImage" ref="353210768"/>
+ <reference key="NSMixedImage" ref="549394948"/>
+ </object>
+ <object class="NSMenuItem" id="860595796">
+ <reference key="NSMenu" ref="789758025"/>
+ <string key="NSTitle">Copy</string>
+ <string key="NSKeyEquiv">c</string>
+ <int key="NSKeyEquivModMask">1048576</int>
+ <int key="NSMnemonicLoc">
2147483647</int>
+ <reference key="NSOnImage" ref="353210768"/>
+ <reference key="NSMixedImage" ref="549394948"/>
+ </object>
+ <object class="NSMenuItem" id="29853731">
+ <reference key="NSMenu" ref="789758025"/>
+ <string key="NSTitle">Paste</string>
+ <string key="NSKeyEquiv">v</string>
+ <int key="NSKeyEquivModMask">1048576</int>
+ <int key="NSMnemonicLoc">
2147483647</int>
+ <reference key="NSOnImage" ref="353210768"/>
+ <reference key="NSMixedImage" ref="549394948"/>
+ </object>
+ <object class="NSMenuItem" id="437104165">
+ <reference key="NSMenu" ref="789758025"/>
+ <string key="NSTitle">Delete</string>
+ <string key="NSKeyEquiv"/>
+ <int key="NSMnemonicLoc">
2147483647</int>
+ <reference key="NSOnImage" ref="353210768"/>
+ <reference key="NSMixedImage" ref="549394948"/>
+ </object>
+ <object class="NSMenuItem" id="583158037">
+ <reference key="NSMenu" ref="789758025"/>
+ <string key="NSTitle">Select All</string>
+ <string key="NSKeyEquiv">a</string>
+ <int key="NSKeyEquivModMask">1048576</int>
+ <int key="NSMnemonicLoc">
2147483647</int>
+ <reference key="NSOnImage" ref="353210768"/>
+ <reference key="NSMixedImage" ref="549394948"/>
+ </object>
+ </object>
+ </object>
+ </object>
+ <object class="NSMenuItem" id="713487014">
+ <reference key="NSMenu" ref="649796088"/>
+ <string key="NSTitle">Window</string>
+ <string key="NSKeyEquiv"/>
+ <int key="NSMnemonicLoc">
2147483647</int>
+ <reference key="NSOnImage" ref="353210768"/>
+ <reference key="NSMixedImage" ref="549394948"/>
+ <string key="NSAction">submenuAction:</string>
+ <object class="NSMenu" key="NSSubmenu" id="835318025">
+ <string key="NSTitle">Window</string>
+ <object class="NSMutableArray" key="NSMenuItems">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSMenuItem" id="1011231497">
+ <reference key="NSMenu" ref="835318025"/>
+ <string key="NSTitle">Minimize</string>
+ <string key="NSKeyEquiv">m</string>
+ <int key="NSKeyEquivModMask">1048576</int>
+ <int key="NSMnemonicLoc">
2147483647</int>
+ <reference key="NSOnImage" ref="353210768"/>
+ <reference key="NSMixedImage" ref="549394948"/>
+ </object>
+ <object class="NSMenuItem" id="575023229">
+ <reference key="NSMenu" ref="835318025"/>
+ <string key="NSTitle">Zoom</string>
+ <string key="NSKeyEquiv"/>
+ <int key="NSMnemonicLoc">
2147483647</int>
+ <reference key="NSOnImage" ref="353210768"/>
+ <reference key="NSMixedImage" ref="549394948"/>
+ </object>
+ <object class="NSMenuItem" id="299356726">
+ <reference key="NSMenu" ref="835318025"/>
+ <bool key="NSIsDisabled">YES</bool>
+ <bool key="NSIsSeparator">YES</bool>
+ <string key="NSTitle"/>
+ <string key="NSKeyEquiv"/>
+ <int key="NSMnemonicLoc">
2147483647</int>
+ <reference key="NSOnImage" ref="353210768"/>
+ <reference key="NSMixedImage" ref="549394948"/>
+ </object>
+ <object class="NSMenuItem" id="625202149">
+ <reference key="NSMenu" ref="835318025"/>
+ <string key="NSTitle">Bring All to Front</string>
+ <string key="NSKeyEquiv"/>
+ <int key="NSMnemonicLoc">
2147483647</int>
+ <reference key="NSOnImage" ref="353210768"/>
+ <reference key="NSMixedImage" ref="549394948"/>
+ </object>
+ </object>
+ <string key="NSName">_NSWindowsMenu</string>
+ </object>
+ </object>
+ </object>
+ <string key="NSName">_NSMainMenu</string>
+ </object>
+ <object class="NSCustomObject" id="1057968024">
+ <string key="NSClassName">AfloatNag</string>
+ </object>
+ </object>
+ <object class="IBObjectContainer" key="IBDocument.Objects">
+ <object class="NSMutableArray" key="connectionRecords">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBConnectionRecord">
+ <object class="IBActionConnection" key="connection">
+ <string key="label">performMiniaturize:</string>
+ <reference key="source" ref="1014"/>
+ <reference key="destination" ref="1011231497"/>
+ </object>
+ <int key="connectionID">37</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBActionConnection" key="connection">
+ <string key="label">arrangeInFront:</string>
+ <reference key="source" ref="1014"/>
+ <reference key="destination" ref="625202149"/>
+ </object>
+ <int key="connectionID">39</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBActionConnection" key="connection">
+ <string key="label">orderFrontStandardAboutPanel:</string>
+ <reference key="source" ref="1021"/>
+ <reference key="destination" ref="238522557"/>
+ </object>
+ <int key="connectionID">142</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBActionConnection" key="connection">
+ <string key="label">undo:</string>
+ <reference key="source" ref="1014"/>
+ <reference key="destination" ref="1058277027"/>
+ </object>
+ <int key="connectionID">223</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBActionConnection" key="connection">
+ <string key="label">copy:</string>
+ <reference key="source" ref="1014"/>
+ <reference key="destination" ref="860595796"/>
+ </object>
+ <int key="connectionID">224</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBActionConnection" key="connection">
+ <string key="label">paste:</string>
+ <reference key="source" ref="1014"/>
+ <reference key="destination" ref="29853731"/>
+ </object>
+ <int key="connectionID">226</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBActionConnection" key="connection">
+ <string key="label">cut:</string>
+ <reference key="source" ref="1014"/>
+ <reference key="destination" ref="296257095"/>
+ </object>
+ <int key="connectionID">228</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBActionConnection" key="connection">
+ <string key="label">redo:</string>
+ <reference key="source" ref="1014"/>
+ <reference key="destination" ref="790794224"/>
+ </object>
+ <int key="connectionID">231</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBActionConnection" key="connection">
+ <string key="label">selectAll:</string>
+ <reference key="source" ref="1014"/>
+ <reference key="destination" ref="583158037"/>
+ </object>
+ <int key="connectionID">232</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBActionConnection" key="connection">
+ <string key="label">delete:</string>
+ <reference key="source" ref="1014"/>
+ <reference key="destination" ref="437104165"/>
+ </object>
+ <int key="connectionID">235</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBActionConnection" key="connection">
+ <string key="label">performZoom:</string>
+ <reference key="source" ref="1014"/>
+ <reference key="destination" ref="575023229"/>
+ </object>
+ <int key="connectionID">240</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBActionConnection" key="connection">
+ <string key="label">hide:</string>
+ <reference key="source" ref="1014"/>
+ <reference key="destination" ref="755159360"/>
+ </object>
+ <int key="connectionID">369</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBActionConnection" key="connection">
+ <string key="label">hideOtherApplications:</string>
+ <reference key="source" ref="1014"/>
+ <reference key="destination" ref="342932134"/>
+ </object>
+ <int key="connectionID">370</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBActionConnection" key="connection">
+ <string key="label">terminate:</string>
+ <reference key="source" ref="1014"/>
+ <reference key="destination" ref="632727374"/>
+ </object>
+ <int key="connectionID">371</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBActionConnection" key="connection">
+ <string key="label">unhideAllApplications:</string>
+ <reference key="source" ref="1014"/>
+ <reference key="destination" ref="908899353"/>
+ </object>
+ <int key="connectionID">372</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBOutletConnection" key="connection">
+ <string key="label">delegate</string>
+ <reference key="source" ref="1050"/>
+ <reference key="destination" ref="1057968024"/>
+ </object>
+ <int key="connectionID">374</int>
+ </object>
+ </object>
+ <object class="IBMutableOrderedSet" key="objectRecords">
+ <object class="NSArray" key="orderedObjects">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBObjectRecord">
+ <int key="objectID">0</int>
+ <object class="NSArray" key="object" id="1049">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ <reference key="children" ref="1048"/>
+ <nil key="parent"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-2</int>
+ <reference key="object" ref="1021"/>
+ <reference key="parent" ref="1049"/>
+ <string type="base64-UTF8"
key="objectName">RmlsZSdzIE93bmVyA</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-1</int>
+ <reference key="object" ref="1014"/>
+ <reference key="parent" ref="1049"/>
+ <string key="objectName">First Responder</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-3</int>
+ <reference key="object" ref="1050"/>
+ <reference key="parent" ref="1049"/>
+ <string key="objectName">Application</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">29</int>
+ <reference key="object" ref="649796088"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="713487014"/>
+ <reference ref="694149608"/>
+ <reference ref="952259628"/>
+ </object>
+ <reference key="parent" ref="1049"/>
+ <string key="objectName">Main Menu</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">19</int>
+ <reference key="object" ref="713487014"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="835318025"/>
+ </object>
+ <reference key="parent" ref="649796088"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">56</int>
+ <reference key="object" ref="694149608"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="110575045"/>
+ </object>
+ <reference key="parent" ref="649796088"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">217</int>
+ <reference key="object" ref="952259628"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="789758025"/>
+ </object>
+ <reference key="parent" ref="649796088"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">205</int>
+ <reference key="object" ref="789758025"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="437104165"/>
+ <reference ref="583158037"/>
+ <reference ref="1058277027"/>
+ <reference ref="296257095"/>
+ <reference ref="29853731"/>
+ <reference ref="860595796"/>
+ <reference ref="1040322652"/>
+ <reference ref="790794224"/>
+ </object>
+ <reference key="parent" ref="952259628"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">202</int>
+ <reference key="object" ref="437104165"/>
+ <reference key="parent" ref="789758025"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">198</int>
+ <reference key="object" ref="583158037"/>
+ <reference key="parent" ref="789758025"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">207</int>
+ <reference key="object" ref="1058277027"/>
+ <reference key="parent" ref="789758025"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">199</int>
+ <reference key="object" ref="296257095"/>
+ <reference key="parent" ref="789758025"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">203</int>
+ <reference key="object" ref="29853731"/>
+ <reference key="parent" ref="789758025"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">197</int>
+ <reference key="object" ref="860595796"/>
+ <reference key="parent" ref="789758025"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">206</int>
+ <reference key="object" ref="1040322652"/>
+ <reference key="parent" ref="789758025"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">215</int>
+ <reference key="object" ref="790794224"/>
+ <reference key="parent" ref="789758025"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">57</int>
+ <reference key="object" ref="110575045"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="238522557"/>
+ <reference ref="755159360"/>
+ <reference ref="908899353"/>
+ <reference ref="632727374"/>
+ <reference ref="646227648"/>
+ <reference ref="304266470"/>
+ <reference ref="1046388886"/>
+ <reference ref="1056857174"/>
+ <reference ref="342932134"/>
+ </object>
+ <reference key="parent" ref="694149608"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">58</int>
+ <reference key="object" ref="238522557"/>
+ <reference key="parent" ref="110575045"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">134</int>
+ <reference key="object" ref="755159360"/>
+ <reference key="parent" ref="110575045"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">150</int>
+ <reference key="object" ref="908899353"/>
+ <reference key="parent" ref="110575045"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">136</int>
+ <reference key="object" ref="632727374"/>
+ <reference key="parent" ref="110575045"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">144</int>
+ <reference key="object" ref="646227648"/>
+ <reference key="parent" ref="110575045"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">236</int>
+ <reference key="object" ref="304266470"/>
+ <reference key="parent" ref="110575045"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">131</int>
+ <reference key="object" ref="1046388886"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="752062318"/>
+ </object>
+ <reference key="parent" ref="110575045"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">149</int>
+ <reference key="object" ref="1056857174"/>
+ <reference key="parent" ref="110575045"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">145</int>
+ <reference key="object" ref="342932134"/>
+ <reference key="parent" ref="110575045"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">130</int>
+ <reference key="object" ref="752062318"/>
+ <reference key="parent" ref="1046388886"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">24</int>
+ <reference key="object" ref="835318025"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="299356726"/>
+ <reference ref="625202149"/>
+ <reference ref="575023229"/>
+ <reference ref="1011231497"/>
+ </object>
+ <reference key="parent" ref="713487014"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">92</int>
+ <reference key="object" ref="299356726"/>
+ <reference key="parent" ref="835318025"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">5</int>
+ <reference key="object" ref="625202149"/>
+ <reference key="parent" ref="835318025"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">239</int>
+ <reference key="object" ref="575023229"/>
+ <reference key="parent" ref="835318025"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">23</int>
+ <reference key="object" ref="1011231497"/>
+ <reference key="parent" ref="835318025"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">373</int>
+ <reference key="object" ref="1057968024"/>
+ <reference key="parent" ref="1049"/>
+ </object>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="flattenedProperties">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSMutableArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>-1.IBPluginDependency</string>
+ <string>-2.IBPluginDependency</string>
+ <string>-3.IBPluginDependency</string>
+ <string>130.IBEditorWindowLastContentRect</string>
+ <string>130.IBPluginDependency</string>
+ <string>130.ImportedFromIB2</string>
+ <string>130.editorWindowContentRectSynchronizationRect</string>
+ <string>131.IBPluginDependency</string>
+ <string>131.ImportedFromIB2</string>
+ <string>134.IBPluginDependency</string>
+ <string>134.ImportedFromIB2</string>
+ <string>136.IBPluginDependency</string>
+ <string>136.ImportedFromIB2</string>
+ <string>144.IBPluginDependency</string>
+ <string>144.ImportedFromIB2</string>
+ <string>145.IBPluginDependency</string>
+ <string>145.ImportedFromIB2</string>
+ <string>149.IBPluginDependency</string>
+ <string>149.ImportedFromIB2</string>
+ <string>150.IBPluginDependency</string>
+ <string>150.ImportedFromIB2</string>
+ <string>19.IBPluginDependency</string>
+ <string>19.ImportedFromIB2</string>
+ <string>197.IBPluginDependency</string>
+ <string>197.ImportedFromIB2</string>
+ <string>198.IBPluginDependency</string>
+ <string>198.ImportedFromIB2</string>
+ <string>199.IBPluginDependency</string>
+ <string>199.ImportedFromIB2</string>
+ <string>202.IBPluginDependency</string>
+ <string>202.ImportedFromIB2</string>
+ <string>203.IBPluginDependency</string>
+ <string>203.ImportedFromIB2</string>
+ <string>205.IBEditorWindowLastContentRect</string>
+ <string>205.IBPluginDependency</string>
+ <string>205.ImportedFromIB2</string>
+ <string>205.editorWindowContentRectSynchronizationRect</string>
+ <string>206.IBPluginDependency</string>
+ <string>206.ImportedFromIB2</string>
+ <string>207.IBPluginDependency</string>
+ <string>207.ImportedFromIB2</string>
+ <string>215.IBPluginDependency</string>
+ <string>215.ImportedFromIB2</string>
+ <string>217.IBPluginDependency</string>
+ <string>217.ImportedFromIB2</string>
+ <string>23.IBPluginDependency</string>
+ <string>23.ImportedFromIB2</string>
+ <string>236.IBPluginDependency</string>
+ <string>236.ImportedFromIB2</string>
+ <string>239.IBPluginDependency</string>
+ <string>239.ImportedFromIB2</string>
+ <string>24.IBEditorWindowLastContentRect</string>
+ <string>24.IBPluginDependency</string>
+ <string>24.ImportedFromIB2</string>
+ <string>24.editorWindowContentRectSynchronizationRect</string>
+ <string>29.IBEditorWindowLastContentRect</string>
+ <string>29.IBPluginDependency</string>
+ <string>29.ImportedFromIB2</string>
+ <string>29.WindowOrigin</string>
+ <string>29.editorWindowContentRectSynchronizationRect</string>
+ <string>373.IBPluginDependency</string>
+ <string>5.IBPluginDependency</string>
+ <string>5.ImportedFromIB2</string>
+ <string>56.IBPluginDependency</string>
+ <string>56.ImportedFromIB2</string>
+ <string>57.IBEditorWindowLastContentRect</string>
+ <string>57.IBPluginDependency</string>
+ <string>57.ImportedFromIB2</string>
+ <string>57.editorWindowContentRectSynchronizationRect</string>
+ <string>58.IBPluginDependency</string>
+ <string>58.ImportedFromIB2</string>
+ <string>92.IBPluginDependency</string>
+ <string>92.ImportedFromIB2</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>{{531, 606}, {64, 6}}</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <integer value="1" id="9"/>
+ <string>{{436, 809}, {64, 6}}</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <reference ref="9"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <reference ref="9"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <reference ref="9"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <reference ref="9"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <reference ref="9"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <reference ref="9"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <reference ref="9"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <reference ref="9"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <reference ref="9"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <reference ref="9"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <reference ref="9"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <reference ref="9"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <reference ref="9"/>
+ <string>{{256, 583}, {154, 153}}</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <reference ref="9"/>
+ <string>{{197, 734}, {243, 243}}</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <reference ref="9"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <reference ref="9"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <reference ref="9"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <reference ref="9"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <reference ref="9"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <reference ref="9"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <reference ref="9"/>
+ <string>{{447, 673}, {197, 73}}</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <reference ref="9"/>
+ <string>{{525, 802}, {197, 73}}</string>
+ <string>{{101, 736}, {282, 20}}</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <reference ref="9"/>
+ <string>{74, 862}</string>
+ <string>{{11, 977}, {478, 20}}</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <reference ref="9"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <reference ref="9"/>
+ <string>{{113, 583}, {256, 153}}</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <reference ref="9"/>
+ <string>{{23, 794}, {245, 183}}</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <reference ref="9"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <reference ref="9"/>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="unlocalizedProperties">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <nil key="activeLocalization"/>
+ <object class="NSMutableDictionary" key="localizations">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <nil key="sourceID"/>
+ <int key="maxID">374</int>
+ </object>
+ <object class="IBClassDescriber" key="IBDocument.Classes">
+ <object class="NSMutableArray" key="referencedPartialClassDescriptions">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBPartialClassDescription">
+ <string key="className">AfloatNag</string>
+ <string key="superclassName">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">AfloatNag.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">AfloatStorage.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">JRSwizzle.h</string>
+ </object>
+ </object>
+ </object>
+ </object>
+ <int key="IBDocument.localizationMode">0</int>
+ <string
key="IBDocument.LastKnownRelativeProjectPath">../Afloat.xcodeproj</string>
+ <int key="IBDocument.defaultPropertyAccessControl">3</int>
+ </data>
+</archive>
Added: trunk/Afloat/en.lproj/Donate.nib/keyedobjects.nib
==============================================================================
Binary file. No diff available.
Added: trunk/Afloat/en.lproj/InfoPlist.strings
==============================================================================
Binary file. No diff available.
Added: trunk/Afloat/libBGHUDAppKit.a
==============================================================================
Binary file. No diff available.
Modified: trunk/COMPILING.txt
==============================================================================
--- trunk/COMPILING.txt (original)
+++ trunk/COMPILING.txt Thu Dec 18 07:17:46 2008
@@ -1,22 +1,21 @@
-Welcome to the Afloat microverse. A "microverse" is a smaller, portable
version of ∞labs's Multiverse code repository and building rig. This
microverse contains all files you need to build Afloat on your machine.
+Welcome to Afloat.
-What this microverse does not contain:
- - Packaging tools (the ones that make the DMG and web site) because,
well, they're not needed and I'm pretty much ashamed of them. They're not
very machine-specific, but not ready yet.
- - Localizations. They're strongly tied to the above packaging tools.
- - Code signing tools. See below.
+Since version 2.1, Afloat is built by the new Multiverse 3.0 build
infrastructure. A small part of this infrastructure is replicated in this
tree to allow you to build Afloat correctly; you must however set up your
environment to use that folder.
-To compile Afloat on your machine (which MUST be a machine running Mac OS
X 10.5 and having Xcode 3.0 or later):
+To build Afloat:
- - from a Terminal, cd into the trunk's root directory and run
+ - from the command line, set the MULTIVERSE build setting to the full
path to the Multiverse directory in this path. For example, if you have
checked out the repository in /Projects/AfloatSVN, the following will build
Afloat correctly:
- sh Bootstrap
+ cd /Projects/AfloatSVN/Afloat
+ xcodebuild clean build MULTIVERSE=/Projects/AfloatSVN/Multiverse
-which will initialize this microverse. (With the first revision this is
not really needed, but it might be in the future.)
+ - from the Xcode IDE, choose Xcode > Preferences from the menu, select
the Source Trees section, then add a new source tree called MULTIVERSE that
points to the Multiverse folder in this tree. For example, if you have
checked out the repository in /Projects/AfloatSVN, use
/Projects/AfloatSVN/Multiverse as the path.
- - Compile the Afloat target of the Xcode project at
Afloat/Afloat.xcodeproj.
+Note that the build for the Release configuration tries to sign the final
output with a Multiverse script. This will likely fail since you don't have
a ∞labs code signing certificate in your keychain. You can disable signing
by adding the `DISABLE_CODE_SIGNING = YES` user-defined build setting. You
can specify it on the xcodebuild command line like this:
-The result will have three unavoidable warnings -- two because code
signing is unused and one for the missing packaging tools. All three can be
safely ignored -- they do not impact on the final product.
-
-To sign the products with your own key, modify the "Sign Code" script
phase in all targets and make sure the private key is in a keychain on the
compiling machine. (This project uses a projectwide setting,
USE_CODE_SIGNING, to switch code signing on or off, but not to specify what
key you use to sign. This is probably a forthcoming feature.)
+ cd /Projects/AfloatSVN/Afloat
+ xcodebuild -configuration Release clean build
MULTIVERSE=/Projects/AfloatSVN/Multiverse DISABLE_CODE_SIGNING=YES
+
+or in the Xcode IDE in the project settings or in the Afloat.xcconfig file.
-The missing packaging tools warning simply complains because the
compilation of Afloat uses the seticon tool from
http://osxtools.sf.net/ to
make sure the Afloat icon is shown in the Finder. This is noncritical, and
you can fix it by following the warning's instructions.
+
\ No newline at end of file
Added: trunk/Multiverse/Tools/Xcode/BuildLocale
==============================================================================
--- (empty file)
+++ trunk/Multiverse/Tools/Xcode/BuildLocale Thu Dec 18 07:17:46 2008
@@ -0,0 +1,126 @@
+#!/usr/bin/env ruby
+
+require 'fileutils'
+
+# Create the compiled locales directory.
+# You can specify it as COMPILED_LOCALES_DIR in the environment,
+# or it will be $SRCROOT/__Compiled Locales.
+compiledDir = ENV['COMPILED_LOCALES_DIR'] ||
File.join(ENV['SRCROOT'], '__Compiled Locales')
+
+Dir.mkdir(compiledDir) unless File.directory? compiledDir
+
+# Get the locales source dir.
+# You can specify it as LOCALES_DIR, but by default it's
+# $SRCROOT/Locales
+
+localesDir = ENV['LOCALES_DIR'] || File.join(ENV['SRCROOT'], 'Locales')
+
+# Each directory inside localesDir is a locale. It must
+# be a Mac OS X-understood locale code (eg Italian or it),
+# without .lproj.
+
+locales = []
+Dir.open(localesDir) do |d|
+ # non-hidden (non-.) directories are locales
+ locales = d.entries.select {
+ |x| x.match(/^[^.]/) and File.directory?(File.join(localesDir, x))
+ }
+end
+
+# Get the base locale dir. It's either in the env as
+# BASE_LOCALE_DIR; or it's en.lproj; or it's English.lproj.
+
+ISO_NAMED_DIR = File.join(ENV['SRCROOT'], 'en.lproj')
+NEXT_NAMED_DIR = File.join(ENV['SRCROOT'], 'English.lproj')
+
+dirPath =
+ (ENV['BASE_LOCALE_DIR'] if ENV['BASE_LOCALE_DIR']) ||
+ (NEXT_NAMED_DIR if File.directory? NEXT_NAMED_DIR) ||
+ (ISO_NAMED_DIR if File.directory? ISO_NAMED_DIR)
+
+raise "error: #{dirPath} is not a directory or doesn't exist" unless
File.directory? dirPath
+
+# compiledLocaleDirs contains the .lproj folders in the
+# compiledDir for each locale (locale name -> lproj path)
+
+compiledLocaleDirs = {}
+locales.each do |locale|
+ compiledLocaleDir = File.join(compiledDir, locale + '.lproj')
+ Dir.mkdir(compiledLocaleDir) unless File.directory? compiledLocaleDir
+ compiledLocaleDirs[locale] = compiledLocaleDir
+end
+
+# The meat of the thing -- iterate the source files and for
+# each do some work with the localization.
+
+Dir.open(dirPath).each do |file|
+ fullFilePath = File.join(dirPath, file)
+ case file
+
+ when /\.nib$/, /\.xib$/
+
+ # This is slightly tricky. We need ibtool to run and
+ # make us a very, very nice compiled .nib file out of
+ # the nib or xib.
+ compiledNibName = file[0, file.length - 3] + 'nib';
+
+ compiledLocaleDirs.each do |locale, compiledLocaleDir|
+ stringsFile = File.join(localesDir, locale, file + '.strings')
+
+ # This is hackish -- ideally, we'd fail if there's no
+ # .strings file, but some NIB files have no localizable content
+ # so we mark them by removing their .strings file from
+ # the locale dir.
+ if File.exists? stringsFile
+
+ compiledNibFile = File.join(compiledLocaleDir, compiledNibName)
+ if File.exist? compiledNibFile and
File.stat(compiledNibFile).mtime < File.stat(fullFilePath).mtime
+ $stderr.puts "note: Removing file #{compiledNibFile} because
the source file #{fullFilePath} is updated."
+ File.delete compiledNibFile
+ end
+
+ # Also: rebuild if the .strings file has changed.
+ if File.exist? compiledNibFile and
File.stat(compiledNibFile).mtime < File.stat(stringsFile).mtime
+ $stderr.puts "note: Removing file #{compiledNibFile} because
the strings file #{stringsFile} is updated."
+ File.delete compiledNibFile
+ end
+
+ unless File.exist? compiledNibFile
+ $stderr.puts "note: #{compiledNibFile} does not exist,
regenerating."
+ commandLine = ['/usr/bin/ibtool',
+ '--agent-name', 'net_infinite_labs_BuildLocaleIBToolAgent',
+ '--agent-timeout', '30',
+ '--strings-file', stringsFile,
+ '--compile', compiledNibFile,
+ fullFilePath]
+ $stderr.puts "Calling: #{commandLine.join ' '}"
+ fork do
+ exec(*commandLine)
+ end
+ Process.wait
+ end
+ end
+ end
+
+ when /\.strings$/
+ # ignore xxx.nib.strings or yyy.xib.strings -- generated by
CollectLocale.
+ unless file =~ /\.nib\.strings$/ or file =~ /\.xib\.strings$/
+
+ # Copy the localized file from the localeDir to the compiledLocaleDir
+ compiledLocaleDirs.each do |locale, compiledLocaleDir|
+ compiledStringsFile = File.join(compiledLocaleDir, file)
+
+ if File.exist? compiledStringsFile and
File.stat(compiledStringsFile).mtime < File.stat(fullFilePath).mtime
+ $stderr.puts "note: Removing file #{compiledStringsFile} because
the source file #{fullFilePath} is updated."
+ File.delete compiledStringsFile
+ end
+
+ unless File.exist? compiledStringsFile
+ $stderr.puts "note: #{compiledStringsFile} does not exist,
regenerating."
+ FileUtils.cp File.join(localesDir, locale, file),
+ compiledStringsFile
+ end
+ end
+ end
+ end
+end
Added: trunk/Multiverse/Tools/Xcode/CheckAllSignatures
==============================================================================
--- (empty file)
+++ trunk/Multiverse/Tools/Xcode/CheckAllSignatures Thu Dec 18 07:17:46 2008
@@ -0,0 +1,22 @@
+#!/bin/bash
+
+TARGET="$1"
+MODIFIED_FILES_FOUND=NO
+
+find "$TARGET" -name _CodeSignature -and \( -not -path \*.dSYM/\* \) |
while read line; do
+ if ! codesign -vvvvv "$line"/../..; then
+ echo "error: Detected modification in respect to signature $line." >&2
+ MODIFIED_FILES_FOUND=YES
+ fi
+done
+
+find "$TARGET" -name \*.dylib -and \( -not -path \*.dSYM/\* \) | while
read line; do
+ if ! codesign -vvvvv "$line"; then
+ echo "error: Detected modification in signed file $line." >&2
+ MODIFIED_FILES_FOUND=YES
+ fi
+done
+
+if [ "$MODIFIED_FILES_FOUND" == "YES" ]; then
+ exit 1
+fi
Added: trunk/Multiverse/Tools/Xcode/CollectStrings
==============================================================================
--- (empty file)
+++ trunk/Multiverse/Tools/Xcode/CollectStrings Thu Dec 18 07:17:46 2008
@@ -0,0 +1,75 @@
+#!/usr/bin/env ruby
+
+require 'find'
+
+SRCROOT = ENV['SRCROOT'] || '.'
+ISO_NAMED_DIR = File.join(SRCROOT, 'en.lproj')
+NEXT_NAMED_DIR = File.join(SRCROOT, 'English.lproj')
+
+BASE_LOCALE_DIR =
+ (ENV['BASE_LOCALE_DIR']) ||
+ (NEXT_NAMED_DIR if File.directory? NEXT_NAMED_DIR) ||
+ (ISO_NAMED_DIR if File.directory? ISO_NAMED_DIR)
+
+TARGET_DIR = ENV['TARGET_DIR'] || BASE_LOCALE_DIR
+
+def run_and_wait(*args)
+ fork do
+ exec(*args)
+ end
+ Process.wait
+end
+
+filesToRunGenstringsOn = []
+
+# argv = ARGV.empty? ? %w{.} : ARGV
+Find.find(SRCROOT) do |file|
+ fileName = File.basename file
+ case fileName
+ when /\.m$/, /.c$/
+ filesToRunGenstringsOn << file
+ when /\.alert$/
+ require 'osx/cocoa'
+ # L0Alert files we know the format ourselves :)
+ alertContents = OSX::NSDictionary.dictionaryWithContentsOfFile(file)
+
+ alertStrings = {}
+
+ message = alertContents['L0AlertMessage']
+ alertStrings[message] = message if message
+
+ informativeText = alertContents['L0AlertInformativeText']
+ alertStrings[informativeText] = informativeText if informativeText
+
+ if alertContents['L0AlertButtons']
+ alertContents['L0AlertButtons'].each do |button|
+ alertStrings[button] = button
+ end
+ end
+
+ suppressionButtonTitle = alertContents['L0AlertSuppressionButtonTitle']
+ alertStrings[suppressionButtonTitle] = suppressionButtonTitle if
suppressionButtonTitle
+
+ alertStringsAsNSDictionary =
OSX::NSDictionary.dictionaryWithDictionary(alertStrings)
+ stringsFileContents =
alertStringsAsNSDictionary.descriptionInStringsFileFormat
+
+ stringsFile = File.join TARGET_DIR, fileName[0, fileName.length
- 'alert'.length] + 'strings'
+ File.open(stringsFile, 'w') do |io|
+ io << stringsFileContents
+ end
+ end
+end
+
+Find.find(BASE_LOCALE_DIR) do |file|
+
+ if file =~ /\.nib$/ or file =~ /.xib$/ and not (File.dirname(file) =~
/\.nib$/)
+ fileName = File.basename(file)
+ stringFile = File.join TARGET_DIR, fileName + '.strings'
+ run_and_wait '/usr/bin/ibtool', '--generate-strings-file', stringFile,
file
+ end
+
+end
+
+command_line = ['/usr
==============================================================================
Diff truncated at 200k characters