[
  {
    "path": ".gitignore",
    "content": "# OS X\n.DS_Store\n\n# Xcode\nbuild/\n*.pbxuser\n!default.pbxuser\n*.mode1v3\n!default.mode1v3\n*.mode2v3\n!default.mode2v3\n*.perspectivev3\n!default.perspectivev3\nxcuserdata\n*.xccheckout\nprofile\n*.moved-aside\nDerivedData\n*.hmap\n*.ipa\n\n# CocoaPods\nPods\n\n# AppCode\n.idea/"
  },
  {
    "path": "INPopoverController/INPopoverController-Info.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n    <dict>\n        <key>CFBundleDevelopmentRegion</key>\n        <string>English</string>\n        <key>CFBundleExecutable</key>\n        <string>${EXECUTABLE_NAME}</string>\n        <key>CFBundleIconFile</key>\n        <string></string>\n        <key>CFBundleIdentifier</key>\n        <string>com.indragie.INPopoverController.${PRODUCT_NAME:rfc1034identifier}</string>\n        <key>CFBundleInfoDictionaryVersion</key>\n        <string>6.0</string>\n        <key>CFBundleName</key>\n        <string>${PRODUCT_NAME}</string>\n        <key>CFBundlePackageType</key>\n        <string>FMWK</string>\n        <key>CFBundleShortVersionString</key>\n        <string>1.0</string>\n        <key>CFBundleSignature</key>\n        <string>????</string>\n        <key>CFBundleVersion</key>\n        <string>1</string>\n        <key>NSHumanReadableCopyright</key>\n        <string>Copyright © 2011 Indragie Karunaratne. All rights reserved.</string>\n        <key>NSPrincipalClass</key>\n        <string></string>\n    </dict>\n</plist>\n"
  },
  {
    "path": "INPopoverController/INPopoverController.h",
    "content": "//\n//  INPopoverController.h\n//  Copyright 2011-2014 Indragie Karunaratne. All rights reserved.\n//\n\n#import <Cocoa/Cocoa.h>\n#import \"INPopoverControllerDefines.h\"\n\n@protocol INPopoverControllerDelegate;\n\n@interface INPopoverController : NSObject\n\n#pragma mark -\n#pragma mark Properties\n\n/** The delegate of the INPopoverController object (should conform to the INPopoverControllerDelegate protocol) **/\n@property (nonatomic, assign) id <INPopoverControllerDelegate> delegate;\n\n/** The background color of the popover. Default value is [NSColor blackColor] with an alpha value of 0.8. Changes to this value are not animated. **/\n@property (nonatomic, strong) NSColor *color;\n\n/** Border color to use when drawing a border. Default value: [NSColor blackColor]. Changes to this value are not animated. **/\n@property (nonatomic, strong) NSColor *borderColor;\n\n/** Color to use for drawing a 1px highlight just below the top. Can be nil. Changes to this value are not animated. **/\n@property (nonatomic, strong) NSColor *topHighlightColor;\n\n/** The width of the popover border, drawn using borderColor. Default value: 0.0 (no border). Changes to this value are not animated. **/\n@property (nonatomic, assign) CGFloat borderWidth;\n\n/** Corner radius of the popover window. Default value: 4. Changes to this value are not animated. **/\n@property (nonatomic, assign) CGFloat cornerRadius;\n\n/** The size of the popover arrow. Default value: {23, 12}. Changes to this value are not animated. **/\n@property (nonatomic, assign) NSSize arrowSize;\n\n/** The current arrow direction of the popover. If the popover has never been displayed, then this will return INPopoverArrowDirectionUndefined */\n@property (nonatomic, assign, readonly) INPopoverArrowDirection arrowDirection;\n\n/** The size of the content of the popover. This is automatically set to contentViewController's size when the view controller is set, but can be modified. Changes to this value are animated when animates is set to YES **/\n@property (nonatomic, assign) NSSize contentSize;\n\n/** Whether the popover closes when user presses escape key. Default value: YES */\n@property (nonatomic, assign) BOOL closesWhenEscapeKeyPressed;\n\n/** Whether the popover closes when the popover window resigns its key status. Default value: YES **/\n@property (nonatomic, assign) BOOL closesWhenPopoverResignsKey;\n\n/** Whether the popover closes when the application becomes inactive. Default value: NO **/\n@property (nonatomic, assign) BOOL closesWhenApplicationBecomesInactive;\n\n/** Enable or disable animation when showing/closing the popover and changing the content size. Default value: YES */\n@property (nonatomic, assign) BOOL animates;\n\n/* If `animates` is `YES`, this is the animation type to use when showing/closing the popover.\n   Default value: `INPopoverAnimationTypePop` **/\n@property (nonatomic, assign) INPopoverAnimationType animationType;\n\n/** The content view controller from which content is displayed in the popover **/\n@property (nonatomic, strong) NSViewController *contentViewController;\n\n/** The view that the currently displayed popover is positioned relative to. If there is no popover being displayed, this returns nil. **/\n@property (nonatomic, strong, readonly) NSView *positionView;\n\n/** The window of the popover **/\n@property (nonatomic, strong, readonly) NSWindow *popoverWindow;\n\n/** Whether the popover is currently visible or not **/\n@property (nonatomic, assign, readonly) BOOL popoverIsVisible;\n\n#pragma mark -\n#pragma mark Methods\n\n/**\n Initializes the popover with a content view already set.\n @param viewController the content view controller\n @returns a new instance of INPopoverController\n */\n- (id)initWithContentViewController:(NSViewController *)viewController;\n\n/**\n Displays the popover.\n @param rect the rect in the positionView from which to display the popover\n @param positionView the view that the popover is positioned relative to\n @param direction the prefered direction at which the arrow will point. There is no guarantee that this will be the actual arrow direction, depending on whether the screen is able to accomodate the popover in that position.\n @param anchors Whether the popover binds to the frame of the positionView. This means that if the positionView is resized or moved, the popover will be repositioned according to the point at which it was originally placed. This also means that if the positionView goes off screen, the popover will be automatically closed. **/\n\n- (void)presentPopoverFromRect:(NSRect)rect inView:(NSView *)positionView preferredArrowDirection:(INPopoverArrowDirection)direction anchorsToPositionView:(BOOL)anchors;\n\n/** \n Recalculates the best arrow direction for the current window position and resets the arrow direction. The change will not be animated. **/\n- (void)recalculateAndResetArrowDirection;\n\n/**\n Closes the popover unless NO is returned for the -popoverShouldClose: delegate method \n @param sender the object that sent this message\n */\n- (IBAction)closePopover:(id)sender;\n\n/**\n Closes the popover regardless of what the delegate returns\n @param sender the object that sent this message\n */\n- (IBAction)forceClosePopover:(id)sender;\n\n/**\n Returns the frame for a popop window with a given size depending on the arrow direction.\n @param contentSize the popover window content size\n @param direction the arrow direction\n */\n- (NSRect)popoverFrameWithSize:(NSSize)contentSize andArrowDirection:(INPopoverArrowDirection)direction;\n\n@end\n\n@protocol INPopoverControllerDelegate <NSObject>\n@optional\n/**\n When the -closePopover: method is invoked, this method is called to give a change for the delegate to prevent it from closing. Returning NO for this delegate method will prevent the popover being closed. This delegate method does not apply to the -forceClosePopover: method, which will close the popover regardless of what the delegate returns.\n @param popover the @class INPopoverController object that is controlling the popover\n @returns whether the popover should close or not\n */\n- (BOOL)popoverShouldClose:(INPopoverController *)popover;\n\n/**\n Invoked right before the popover shows on screen\n @param popover the @class INPopoverController object that is controlling the popover\n */\n- (void)popoverWillShow:(INPopoverController *)popover;\n\n/**\n Invoked right after the popover shows on screen\n @param popover the @class INPopoverController object that is controlling the popover\n */\n- (void)popoverDidShow:(INPopoverController *)popover;\n\n/**\n Invoked right before the popover closes\n @param popover the @class INPopoverController object that is controlling the popover\n */\n- (void)popoverWillClose:(INPopoverController *)popover;\n\n/**\n Invoked right after the popover closes\n @param popover the @class INPopoverController object that is controlling the popover\n */\n- (void)popoverDidClose:(INPopoverController *)popover;\n@end\n"
  },
  {
    "path": "INPopoverController/INPopoverController.m",
    "content": "//\n//  INPopoverController.m\n//  Copyright 2011-2014 Indragie Karunaratne. All rights reserved.\n//\n\n#import \"INPopoverController.h\"\n#import \"INPopoverWindow.h\"\n#import \"INPopoverWindowFrame.h\"\n#import \"INPopoverParentWindow.h\"\n#include <QuartzCore/QuartzCore.h>\n\n@implementation INPopoverController {\n\tINPopoverWindow *_popoverWindow;\n\tNSRect _screenRect;\n\tNSRect _viewRect;\n}\n\n#pragma mark -\n#pragma mark Initialization\n\n- (id)init\n{\n\tif ((self = [super init])) {\n\t\t[self _setInitialPropertyValues];\n\t}\n\treturn self;\n}\n\n- (void)awakeFromNib\n{\n\t[super awakeFromNib];\n\t[self _setInitialPropertyValues];\n}\n\n#pragma mark - \n#pragma mark - Memory Management\n\n- (void)dealloc\n{\n\t_popoverWindow.popoverController = nil;\n}\n\n#pragma mark -\n#pragma mark Public Methods\n\n- (id)initWithContentViewController:(NSViewController *)viewController\n{\n\tif ((self = [super init])) {\n\t\t[self _setInitialPropertyValues];\n\t\tself.contentViewController = viewController;\n\t}\n\treturn self;\n}\n\n- (void)presentPopoverFromRect:(NSRect)rect inView:(NSView *)positionView preferredArrowDirection:(INPopoverArrowDirection)direction anchorsToPositionView:(BOOL)anchors\n{\n\tif (self.popoverIsVisible) {return;} // If it's already visible, do nothing\n\tNSWindow *mainWindow = [positionView window];\n\t_positionView = positionView;\n\t_viewRect = rect;\n\t_screenRect = [positionView convertRect:rect toView:nil]; // Convert the rect to window coordinates\n\t_screenRect.origin = [mainWindow convertBaseToScreen:_screenRect.origin]; // Convert window coordinates to screen coordinates\n\tINPopoverArrowDirection calculatedDirection = [self _arrowDirectionWithPreferredArrowDirection:direction]; // Calculate the best arrow direction\n\t[self _setArrowDirection:calculatedDirection]; // Change the arrow direction of the popover\n\tNSRect windowFrame = [self popoverFrameWithSize:self.contentSize andArrowDirection:calculatedDirection]; // Calculate the window frame based on the arrow direction\n\t[_popoverWindow setFrame:windowFrame display:YES]; // Se the frame of the window\n\t[[_popoverWindow animationForKey:@\"alphaValue\"] setDelegate:self];\n\n\t// Show the popover\n\t[self _callDelegateMethod:@selector(popoverWillShow:)]; // Call the delegate\n\tif (self.animates && self.animationType != INPopoverAnimationTypeFadeOut) {\n\t\t// Animate the popover in\n\t\t[_popoverWindow presentAnimated];\n\t} else {\n\t\t[_popoverWindow setAlphaValue:1.0];\n\t\t[mainWindow addChildWindow:_popoverWindow ordered:NSWindowAbove]; // Add the popover as a child window of the main window\n\t\t[_popoverWindow makeKeyAndOrderFront:nil]; // Show the popover\n\t\t[self _callDelegateMethod:@selector(popoverDidShow:)]; // Call the delegate\n\t}\n\n\tNSNotificationCenter *nc = [NSNotificationCenter defaultCenter];\n\tif (anchors) {  // If the anchors option is enabled, register for frame change notifications\n\t\t[nc addObserver:self selector:@selector(_positionViewFrameChanged:) name:NSViewFrameDidChangeNotification object:self.positionView];\n\t}\n\t// When -closesWhenPopoverResignsKey is set to YES, the popover will automatically close when the popover loses its key status\n\tif (self.closesWhenPopoverResignsKey) {\n\t\t[nc addObserver:self selector:@selector(closePopover:) name:NSWindowDidResignKeyNotification object:_popoverWindow];\n\t\tif (!self.closesWhenApplicationBecomesInactive) {\n\t\t\t[nc addObserver:self selector:@selector(applicationDidBecomeActive:) name:NSApplicationDidBecomeActiveNotification object:nil];\n\t\t}\n\t} else if (self.closesWhenApplicationBecomesInactive) {\n\t\t// this is only needed if closesWhenPopoverResignsKey is NO, otherwise we already get a \"resign key\" notification when resigning active\n\t\t[nc addObserver:self selector:@selector(closePopover:) name:NSApplicationDidResignActiveNotification object:nil];\n\t}\n}\n\n- (void)recalculateAndResetArrowDirection\n{\n\tINPopoverArrowDirection direction = [self _arrowDirectionWithPreferredArrowDirection:self.arrowDirection];\n\t[self _setArrowDirection:direction];\n}\n\n- (IBAction)closePopover:(id)sender\n{\n\tif (![_popoverWindow isVisible]) {return;}\n\tif ([sender isKindOfClass:[NSNotification class]] && [[(NSNotification *) sender name] isEqualToString:NSWindowDidResignKeyNotification]) {\n\t\t// ignore \"resign key\" notification sent when app becomes inactive unless closesWhenApplicationBecomesInactive is enabled\n\t\tif (!self.closesWhenApplicationBecomesInactive && ![NSApp isActive])\n\t\t\treturn;\n\t}\n\tBOOL close = YES;\n\t// Check to see if the delegate has implemented the -popoverShouldClose: method\n\tif ([self.delegate respondsToSelector:@selector(popoverShouldClose:)]) {\n\t\tclose = [self.delegate popoverShouldClose:self];\n\t}\n\tif (close) {[self forceClosePopover:nil];}\n}\n\n- (IBAction)forceClosePopover:(id)sender\n{\n\tif (![_popoverWindow isVisible]) {return;}\n\t[self _callDelegateMethod:@selector(popoverWillClose:)]; // Call delegate\n\tif (self.animates && self.animationType != INPopoverAnimationTypeFadeIn) {\n\t\t[_popoverWindow dismissAnimated];\n\t} else {\n\t\t[self _closePopoverAndResetVariables];\n\t}\n}\n\n// Calculate the frame of the window depending on the arrow direction\n- (NSRect)popoverFrameWithSize:(NSSize)contentSize andArrowDirection:(INPopoverArrowDirection)direction\n{\n\tNSRect contentRect = NSZeroRect;\n\tcontentRect.size = contentSize;\n\tNSRect windowFrame = [_popoverWindow frameRectForContentRect:contentRect];\n\tif (direction == INPopoverArrowDirectionUp) {\n\t\tCGFloat xOrigin = NSMidX(_screenRect) - floor(windowFrame.size.width / 2.0);\n\t\tCGFloat yOrigin = NSMinY(_screenRect) - windowFrame.size.height;\n\t\twindowFrame.origin = NSMakePoint(xOrigin, yOrigin);\n\t} else if (direction == INPopoverArrowDirectionDown) {\n\t\tCGFloat xOrigin = NSMidX(_screenRect) - floor(windowFrame.size.width / 2.0);\n\t\twindowFrame.origin = NSMakePoint(xOrigin, NSMaxY(_screenRect));\n\t} else if (direction == INPopoverArrowDirectionLeft) {\n\t\tCGFloat yOrigin = NSMidY(_screenRect) - floor(windowFrame.size.height / 2.0);\n\t\twindowFrame.origin = NSMakePoint(NSMaxX(_screenRect), yOrigin);\n\t} else if (direction == INPopoverArrowDirectionRight) {\n\t\tCGFloat xOrigin = NSMinX(_screenRect) - windowFrame.size.width;\n\t\tCGFloat yOrigin = NSMidY(_screenRect) - floor(windowFrame.size.height / 2.0);\n\t\twindowFrame.origin = NSMakePoint(xOrigin, yOrigin);\n\t} else {\n\t\t// If no arrow direction is specified, just return an empty rect\n\t\twindowFrame = NSZeroRect;\n\t}\n\treturn windowFrame;\n}\n\n- (void)animationDidStop:(CAAnimation *)animation finished:(BOOL)flag\n{\n#pragma unused(animation)\n#pragma unused(flag)\n\t// Detect the end of fade out and close the window\n\tif (0.0 == [_popoverWindow alphaValue])\n\t\t[self _closePopoverAndResetVariables];\n\telse if (1.0 == [_popoverWindow alphaValue]) {\n\t\t[[_positionView window] addChildWindow:_popoverWindow ordered:NSWindowAbove];\n\t\t[self _callDelegateMethod:@selector(popoverDidShow:)];\n\t}\n}\n\n- (void)applicationDidBecomeActive:(NSNotification *)notification\n{\n\t// when the user clicks in the parent window for activating the app, the parent window becomes key which prevents \n\tif ([_popoverWindow isVisible])\n\t\t[self performSelector:@selector(checkPopoverKeyWindowStatus) withObject:nil afterDelay:0];\n}\n\n- (void)checkPopoverKeyWindowStatus\n{\n\tid parentWindow = [_positionView window]; // could be INPopoverParentWindow\n\tBOOL isKey = [parentWindow respondsToSelector:@selector(isReallyKeyWindow)] ? [parentWindow isReallyKeyWindow] : [parentWindow isKeyWindow];\n\tif (isKey)\n\t\t[_popoverWindow makeKeyWindow];\n}\n\n#pragma mark -\n#pragma mark Getters\n\n- (NSColor *)color\n{\n\treturn _popoverWindow.frameView.color;\n}\n\n- (CGFloat)borderWidth\n{\n\treturn _popoverWindow.frameView.borderWidth;\n}\n\n- (NSColor *)borderColor\n{\n\treturn _popoverWindow.frameView.borderColor;\n}\n\n- (NSColor *)topHighlightColor\n{\n\treturn _popoverWindow.frameView.topHighlightColor;\n}\n\n- (CGFloat)cornerRadius\n{\n\treturn _popoverWindow.frameView.cornerRadius;\n}\n\n- (NSSize)arrowSize\n{\n\treturn _popoverWindow.frameView.arrowSize;\n}\n\n- (INPopoverArrowDirection)arrowDirection\n{\n\treturn _popoverWindow.frameView.arrowDirection;\n}\n\n- (NSView *)contentView\n{\n\treturn [_popoverWindow popoverContentView];\n}\n\n- (BOOL)popoverIsVisible\n{\n\treturn [_popoverWindow isVisible];\n}\n\n#pragma mark -\n#pragma mark Setters\n\n- (void)setColor:(NSColor *)newColor\n{\n\t_popoverWindow.frameView.color = newColor;\n}\n\n- (void)setBorderWidth:(CGFloat)newBorderWidth\n{\n\t_popoverWindow.frameView.borderWidth = newBorderWidth;\n}\n\n- (void)setBorderColor:(NSColor *)newBorderColor\n{\n\t_popoverWindow.frameView.borderColor = newBorderColor;\n}\n\n- (void)setTopHighlightColor:(NSColor *)newTopHighlightColor\n{\n\t_popoverWindow.frameView.topHighlightColor = newTopHighlightColor;\n}\n\n- (void)setCornerRadius:(CGFloat)cornerRadius\n{\n\t_popoverWindow.frameView.cornerRadius = cornerRadius;\n}\n\n- (void)setArrowSize:(NSSize)arrowSize\n{\n\t_popoverWindow.frameView.arrowSize = arrowSize;\n}\n\n- (void)setContentViewController:(NSViewController *)newContentViewController\n{\n\tif (_contentViewController != newContentViewController) {\n\t\t[_popoverWindow setPopoverContentView:nil]; // Clear the content view\n\t\t_contentViewController = newContentViewController;\n\t\tNSView *contentView = [_contentViewController view];\n\t\tself.contentSize = [contentView frame].size;\n\t\t[_popoverWindow setPopoverContentView:contentView];\n\t}\n}\n\n- (void)setContentSize:(NSSize)newContentSize\n{\n\t// We use -frameRectForContentRect: just to get the frame size because the origin it returns is not the one we want to use. Instead, -windowFrameWithSize:andArrowDirection: is used to  complete the frame\n\t_contentSize = newContentSize;\n\tNSRect adjustedRect = [self popoverFrameWithSize:newContentSize andArrowDirection:self.arrowDirection];\n\t[_popoverWindow setFrame:adjustedRect display:YES animate:self.animates];\n}\n\n- (void)_setArrowDirection:(INPopoverArrowDirection)direction\n{\n\t_popoverWindow.frameView.arrowDirection = direction;\n}\n\n#pragma mark -\n#pragma mark Private\n\n// Set the default values for all the properties as described in the header documentation\n- (void)_setInitialPropertyValues\n{\n\t// Create an empty popover window\n\t_popoverWindow = [[INPopoverWindow alloc] initWithContentRect:NSZeroRect styleMask:NSBorderlessWindowMask backing:NSBackingStoreBuffered defer:NO];\n\t_popoverWindow.popoverController = self;\n\n\t// set defaults like iCal popover\n\tself.color = [NSColor colorWithCalibratedWhite:0.94 alpha:0.92];\n\tself.borderColor = [NSColor colorWithCalibratedWhite:1.0 alpha:0.92];\n\tself.borderWidth = 1.0;\n\tself.closesWhenEscapeKeyPressed = YES;\n\tself.closesWhenPopoverResignsKey = YES;\n\tself.closesWhenApplicationBecomesInactive = NO;\n\tself.animates = YES;\n\tself.animationType = INPopoverAnimationTypePop;\n\n\t// create animation to get callback - delegate is set when opening popover to avoid memory cycles\n\tCAAnimation *animation = [CABasicAnimation animation];\n\t[_popoverWindow setAnimations:[NSDictionary dictionaryWithObject:animation forKey:@\"alphaValue\"]];\n}\n\n// Figure out which direction best stays in screen bounds\n- (INPopoverArrowDirection)_arrowDirectionWithPreferredArrowDirection:(INPopoverArrowDirection)direction\n{\n\tNSRect screenFrame = [[[_positionView window] screen] frame];\n\t// If the window with the preferred arrow direction already falls within the screen bounds then no need to go any further\n\tNSRect windowFrame = [self popoverFrameWithSize:self.contentSize andArrowDirection:direction];\n\tif (NSContainsRect(screenFrame, windowFrame)) {\n\t\treturn direction;\n\t}\n\t// First thing to try is making the popover go opposite of its current direction\n\tINPopoverArrowDirection newDirection = INPopoverArrowDirectionUndefined;\n\tswitch (direction) {\n\t\tcase INPopoverArrowDirectionUp:\n\t\t\tnewDirection = INPopoverArrowDirectionDown;\n\t\t\tbreak;\n\t\tcase INPopoverArrowDirectionDown:\n\t\t\tnewDirection = INPopoverArrowDirectionUp;\n\t\t\tbreak;\n\t\tcase INPopoverArrowDirectionLeft:\n\t\t\tnewDirection = INPopoverArrowDirectionRight;\n\t\t\tbreak;\n\t\tcase INPopoverArrowDirectionRight:\n\t\t\tnewDirection = INPopoverArrowDirectionLeft;\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tbreak;\n\t}\n\t// If the popover now fits within bounds, then return the newly adjusted direction\n\twindowFrame = [self popoverFrameWithSize:self.contentSize andArrowDirection:newDirection];\n\tif (NSContainsRect(screenFrame, windowFrame)) {\n\t\treturn newDirection;\n\t}\n\t// Calculate the remaining space on each side and figure out which would be the best to try next\n\tCGFloat left = NSMinX(_screenRect);\n\tCGFloat right = screenFrame.size.width - NSMaxX(_screenRect);\n\tCGFloat up = screenFrame.size.height - NSMaxY(_screenRect);\n\tCGFloat down = NSMinY(_screenRect);\n\tBOOL arrowLeft = (right > left);\n\tBOOL arrowUp = (down > up);\n\t// Now the next thing to try is the direction with the most space\n\tswitch (direction) {\n\t\tcase INPopoverArrowDirectionUp:\n\t\tcase INPopoverArrowDirectionDown:\n\t\t\tnewDirection = arrowLeft ? INPopoverArrowDirectionLeft : INPopoverArrowDirectionRight;\n\t\tcase INPopoverArrowDirectionLeft:\n\t\tcase INPopoverArrowDirectionRight:\n\t\t\tnewDirection = arrowUp ? INPopoverArrowDirectionUp : INPopoverArrowDirectionDown;\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tbreak;\n\t}\n\t// If the popover now fits within bounds, then return the newly adjusted direction\n\twindowFrame = [self popoverFrameWithSize:self.contentSize andArrowDirection:newDirection];\n\tif (NSContainsRect(screenFrame, windowFrame)) {\n\t\treturn newDirection;\n\t}\n\t// If that didn't fit, then that means that it will be out of bounds on every side so just return the original direction\n\treturn direction;\n}\n\n- (void)_positionViewFrameChanged:(NSNotification *)notification\n{\n\tNSRect superviewBounds = [[self.positionView superview] bounds];\n\tif (!(NSContainsRect(superviewBounds, [self.positionView frame]))) {\n\t\t[self forceClosePopover:nil]; // If the position view goes off screen then close the popover\n\t\treturn;\n\t}\n\tNSRect newFrame = [_popoverWindow frame];\n\t_screenRect = [self.positionView convertRect:_viewRect toView:nil]; // Convert the rect to window coordinates\n\t_screenRect.origin = [[self.positionView window] convertBaseToScreen:_screenRect.origin]; // Convert window coordinates to screen coordinates\n\tNSRect calculatedFrame = [self popoverFrameWithSize:self.contentSize andArrowDirection:self.arrowDirection]; // Calculate the window frame based on the arrow direction\n\tnewFrame.origin = calculatedFrame.origin;\n\t[_popoverWindow setFrame:newFrame display:YES animate:NO]; // Set the frame of the window\n}\n\n- (void)_closePopoverAndResetVariables\n{\n\tNSWindow *positionWindow = [self.positionView window];\n\t[_popoverWindow orderOut:nil]; // Close the window \n\t[self _callDelegateMethod:@selector(popoverDidClose:)]; // Call the delegate to inform that the popover has closed\n\t[positionWindow removeChildWindow:_popoverWindow]; // Remove it as a child window\n\t[positionWindow makeKeyAndOrderFront:nil];\n\t// Clear all the ivars\n\t[self _setArrowDirection:INPopoverArrowDirectionUndefined];\n\t[[NSNotificationCenter defaultCenter] removeObserver:self];\n\t_positionView = nil;\n\t_screenRect = NSZeroRect;\n\t_viewRect = NSZeroRect;\n\n\t// When using ARC and no animation, there is a \"message sent to deallocated instance\" crash if setDelegate: is not performed at the end of the event.\n\t[[_popoverWindow animationForKey:@\"alphaValue\"] performSelector:@selector(setDelegate:) withObject:nil afterDelay:0];\n}\n\n- (void)_callDelegateMethod:(SEL)selector\n{\n\tif ([self.delegate respondsToSelector:selector]) {\n#pragma clang diagnostic push\n#pragma clang diagnostic ignored \"-Warc-performSelector-leaks\"\n\t\t[self.delegate performSelector:selector withObject:self];\n#pragma clang diagnostic pop\n\t}\n}\n\n@end\n"
  },
  {
    "path": "INPopoverController/INPopoverControllerDefines.h",
    "content": "//\n//  INPopoverControllerDefines.h\n//  Copyright 2011-2014 Indragie Karunaratne. All rights reserved.\n//\n\ntypedef NS_ENUM(NSUInteger, INPopoverArrowDirection) {\n\tINPopoverArrowDirectionUndefined = 0,\n\tINPopoverArrowDirectionLeft,\n\tINPopoverArrowDirectionRight,\n\tINPopoverArrowDirectionUp,\n\tINPopoverArrowDirectionDown\n};\n\ntypedef NS_ENUM(NSInteger, INPopoverAnimationType) {\n\tINPopoverAnimationTypePop = 0,\t// Pop animation similar to NSPopover\n\tINPopoverAnimationTypeFadeIn,\t// Fade in only, no fade out\n\tINPopoverAnimationTypeFadeOut,\t// Fade out only, no fade in\n\tINPopoverAnimationTypeFadeInOut // Fade in and out\n};"
  },
  {
    "path": "INPopoverController/INPopoverParentWindow.h",
    "content": "//\n//  INPopoverParentWindow.h\n//  Copyright 2011-2014 Indragie Karunaratne. All rights reserved.\n//\n\n#import <Cocoa/Cocoa.h>\n\n@interface INPopoverParentWindow : NSWindow\n\n- (BOOL)isReallyKeyWindow;\n\n@end\n"
  },
  {
    "path": "INPopoverController/INPopoverParentWindow.m",
    "content": "//\n//  INAlwaysKeyWindow.m\n//  Copyright 2011-2014 Indragie Karunaratne. All rights reserved.\n//\n\n#import \"INPopoverParentWindow.h\"\n#import \"INPopoverWindow.h\"\n\n@implementation INPopoverParentWindow\n\n- (BOOL)isKeyWindow\n{\n\tBOOL isKey = [super isKeyWindow];\n\tif (!isKey) {\n\t\tfor (NSWindow *childWindow in [self childWindows]) {\n\t\t\tif ([childWindow isKindOfClass:[INPopoverWindow class]]) {\n\t\t\t\t// if we have popover attached, window is key if app is active\n\t\t\t\tisKey = [NSApp isActive];\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\treturn isKey;\n}\n\n- (BOOL)isReallyKeyWindow\n{\n\treturn [super isKeyWindow];\n}\n\n@end\n"
  },
  {
    "path": "INPopoverController/INPopoverPrefixHeader.pch",
    "content": "#ifdef __OBJC__\n\n#import <Cocoa/Cocoa.h>\n\n#endif\n"
  },
  {
    "path": "INPopoverController/INPopoverWindow.h",
    "content": "//\n//  INPopoverWindow.h\n//  Copyright 2011-2014 Indragie Karunaratne. All rights reserved.\n//\n\n#import <AppKit/AppKit.h>\n#import \"INPopoverControllerDefines.h\"\n\n/** \n @class INPopoverWindow\n An NSWindow subclass used to draw a custom window frame (@class INPopoverWindowFrame)\n **/\n@class INPopoverWindowFrame;\n@class INPopoverController;\n\n@interface INPopoverWindow : NSPanel\n@property (nonatomic, readonly) INPopoverWindowFrame *frameView; // Equivalent to contentView\n@property (nonatomic, assign) INPopoverController *popoverController;\n@property (nonatomic, strong) NSView *popoverContentView;\n\n- (void)presentAnimated;\n- (void)dismissAnimated;\n\n@end\n"
  },
  {
    "path": "INPopoverController/INPopoverWindow.m",
    "content": "//\n//  INPopoverWindow.m\n//  Copyright 2011-2014 Indragie Karunaratne. All rights reserved.\n//\n\n#import \"INPopoverWindow.h\"\n#import \"INPopoverControllerDefines.h\"\n#import \"INPopoverWindowFrame.h\"\n#import \"INPopoverController.h\"\n#import <QuartzCore/QuartzCore.h>\n\n#define START_SIZE            NSMakeSize(20, 20)\n#define OVERSHOOT_FACTOR    1.2\n\n// A lot of this code was adapted from the following article:\n// <http://cocoawithlove.com/2008/12/drawing-custom-window-on-mac-os-x.html>\n\n@implementation INPopoverWindow {\n\tNSView *_popoverContentView;\n\tNSWindow *_zoomWindow;\n}\n\n// Borderless, transparent window\n- (id)initWithContentRect:(NSRect)contentRect styleMask:(NSUInteger)windowStyle backing:(NSBackingStoreType)bufferingType defer:(BOOL)deferCreation\n{\n\tif ((self = [super initWithContentRect:contentRect styleMask:NSNonactivatingPanelMask backing:bufferingType defer:deferCreation])) {\n\t\t[self setOpaque:NO];\n\t\t[self setBackgroundColor:[NSColor clearColor]];\n\t\t[self setHasShadow:YES];\n\t}\n\treturn self;\n}\n\n// Leave some space around the content for drawing the arrow\n- (NSRect)contentRectForFrameRect:(NSRect)windowFrame\n{\n\twindowFrame.origin = NSZeroPoint;\n\tconst CGFloat arrowHeight = self.frameView.arrowSize.height;\n\treturn NSInsetRect(windowFrame, arrowHeight, arrowHeight);\n}\n\n- (NSRect)frameRectForContentRect:(NSRect)contentRect\n{\n\tconst CGFloat arrowHeight = self.frameView.arrowSize.height;\n\treturn NSInsetRect(contentRect, -arrowHeight, -arrowHeight);\n}\n\n// Allow the popover to become the key window\n- (BOOL)canBecomeKeyWindow\n{\n\treturn YES;\n}\n\n- (BOOL)canBecomeMainWindow\n{\n\treturn NO;\n}\n\n- (BOOL)isVisible\n{\n\treturn [super isVisible] || [_zoomWindow isVisible];\n}\n\n- (INPopoverWindowFrame *)frameView\n{\n\treturn (INPopoverWindowFrame *) [self contentView];\n}\n\n- (void)setContentView:(NSView *)aView\n{\n\t[self setPopoverContentView:aView];\n}\n\n- (void)setPopoverContentView:(NSView *)aView\n{\n\tif ([_popoverContentView isEqualTo:aView]) {return;}\n\tNSRect bounds = [self frame];\n\tbounds.origin = NSZeroPoint;\n\tINPopoverWindowFrame *frameView = [self frameView];\n\tif (!frameView) {\n\t\tframeView = [[INPopoverWindowFrame alloc] initWithFrame:bounds];\n\t\t[super setContentView:frameView]; // Call on super or there will be infinite loop\n\t}\n\tif (_popoverContentView) {\n\t\t[_popoverContentView removeFromSuperview];\n\t}\n\t_popoverContentView = aView;\n\t[_popoverContentView setFrame:[self contentRectForFrameRect:bounds]];\n\t[_popoverContentView setAutoresizingMask:NSViewWidthSizable | NSViewHeightSizable];\n\t[frameView addSubview:_popoverContentView];\n}\n\n- (void)presentAnimated\n{\n\tif ([self isVisible])\n\t\treturn;\n\t\n\tswitch (self.popoverController.animationType) {\n\t\tcase INPopoverAnimationTypePop:\n\t\t\t[self presentWithPopAnimation];\n\t\t\tbreak;\n\t\tcase INPopoverAnimationTypeFadeIn:\n\t\tcase INPopoverAnimationTypeFadeInOut:\n\t\t\t[self presentWithFadeAnimation];\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tbreak;\n\t}\n}\n\n- (void)presentWithPopAnimation\n{\n\tNSRect endFrame = [self frame];\n\tNSRect startFrame = [self.popoverController popoverFrameWithSize:START_SIZE andArrowDirection:self.frameView.arrowDirection];\n\tNSRect overshootFrame = [self.popoverController popoverFrameWithSize:NSMakeSize(endFrame.size.width * OVERSHOOT_FACTOR, endFrame.size.height * OVERSHOOT_FACTOR) andArrowDirection:self.frameView.arrowDirection];\n\t\n\t_zoomWindow = [self _zoomWindowWithRect:startFrame];\n\t[_zoomWindow setAlphaValue:0.0];\n\t[_zoomWindow orderFront:self];\n\t\n\t// configure bounce-out animation\n\tCAKeyframeAnimation *anim = [CAKeyframeAnimation animation];\n\t[anim setDelegate:self];\n\t[anim setValues:[NSArray arrayWithObjects:[NSValue valueWithRect:startFrame], [NSValue valueWithRect:overshootFrame], [NSValue valueWithRect:endFrame], nil]];\n\t[_zoomWindow setAnimations:[NSDictionary dictionaryWithObjectsAndKeys:anim, @\"frame\", nil]];\n\t\n\t[NSAnimationContext beginGrouping];\n\t[[_zoomWindow animator] setAlphaValue:1.0];\n\t[[_zoomWindow animator] setFrame:endFrame display:YES];\n\t[NSAnimationContext endGrouping];\n}\n\n- (void)presentWithFadeAnimation\n{\n\t[self setAlphaValue:0.0];\n\t[self makeKeyAndOrderFront:nil];\n\t[[self animator] setAlphaValue:1.0];\n}\n\n- (void)dismissAnimated\n{\n\t[[_zoomWindow animator] setAlphaValue:0.0]; // in case zoom window is currently animating\n\t[[self animator] setAlphaValue:0.0];\n}\n\n- (void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag\n{\n\t[self setAlphaValue:1.0];\n\t[self makeKeyAndOrderFront:self];\n\t[_zoomWindow close];\n\t_zoomWindow = nil;\n\n\t// call the animation delegate of the \"real\" window\n\tCAAnimation *windowAnimation = [self animationForKey:@\"alphaValue\"];\n\t[[windowAnimation delegate] animationDidStop:anim finished:flag];\n}\n\n- (void)cancelOperation:(id)sender\n{\n\tif (self.popoverController.closesWhenEscapeKeyPressed) [self.popoverController closePopover:nil];\n}\n\n#pragma mark -\n#pragma mark Private\n\n// The following method is adapted from the following class:\n// <https://github.com/MrNoodle/NoodleKit/blob/master/NSWindow-NoodleEffects.m>\n//  Copyright 2007-2009 Noodlesoft, LLC. All rights reserved.\n- (NSWindow *)_zoomWindowWithRect:(NSRect)rect\n{\n\tBOOL isOneShot = [self isOneShot];\n\tif (isOneShot)\n\t\t[self setOneShot:NO];\n\n\tif ([self windowNumber] <= 0) {\n\t\t// force creation of window device by putting it on-screen. We make it transparent to minimize the chance of visible flicker\n\t\tCGFloat alpha = [self alphaValue];\n\t\t[self setAlphaValue:0.0];\n\t\t[self orderBack:self];\n\t\t[self orderOut:self];\n\t\t[self setAlphaValue:alpha];\n\t}\n\n\t// get window content as image\n\tNSRect frame = [self frame];\n\tNSImage *image = [[NSImage alloc] initWithSize:frame.size];\n\t[self displayIfNeeded];    // refresh view\n\tNSView *view = self.contentView;\n\tNSBitmapImageRep *imageRep = [view bitmapImageRepForCachingDisplayInRect:view.bounds];\n\t[view cacheDisplayInRect:view.bounds toBitmapImageRep:imageRep];\n\t[image addRepresentation:imageRep];\n\n\t// create zoom window\n\tNSWindow *zoomWindow = [[NSWindow alloc] initWithContentRect:rect styleMask:NSBorderlessWindowMask backing:NSBackingStoreBuffered defer:NO];\n\t[zoomWindow setBackgroundColor:[NSColor clearColor]];\n\t[zoomWindow setHasShadow:[self hasShadow]];\n\t[zoomWindow setLevel:[self level]];\n\t[zoomWindow setOpaque:NO];\n\t[zoomWindow setReleasedWhenClosed:NO];\n\t[zoomWindow useOptimizedDrawing:YES];\n\n\tNSImageView *imageView = [[NSImageView alloc] initWithFrame:[zoomWindow contentRectForFrameRect:frame]];\n\t[imageView setImage:image];\n\t[imageView setImageFrameStyle:NSImageFrameNone];\n\t[imageView setImageScaling:NSScaleToFit];\n\t[imageView setAutoresizingMask:NSViewWidthSizable | NSViewHeightSizable];\n\n\t[zoomWindow setContentView:imageView];\n\n\t// reset one shot flag\n\t[self setOneShot:isOneShot];\n\n\treturn zoomWindow;\n}\n\n@end\n"
  },
  {
    "path": "INPopoverController/INPopoverWindowFrame.h",
    "content": "//\n//  INPopoverWindowFrame.h\n//  Copyright 2011-2014 Indragie Karunaratne. All rights reserved.\n//\n\n#import <Cocoa/Cocoa.h>\n#import \"INPopoverControllerDefines.h\"\n\n/**\n @class INPopoverWindowFrame\n The NSView subclass responsible for drawing the frame of the popover\n */\n@interface INPopoverWindowFrame : NSView\n@property (nonatomic, strong) NSColor *color;\n@property (nonatomic, strong) NSColor *borderColor;\n@property (nonatomic, strong) NSColor *topHighlightColor;\n@property (nonatomic, assign) CGFloat borderWidth;\n@property (nonatomic, assign) CGFloat cornerRadius;\n@property (nonatomic, assign) NSSize arrowSize;\n@property (nonatomic, assign) INPopoverArrowDirection arrowDirection;\n@end\n"
  },
  {
    "path": "INPopoverController/INPopoverWindowFrame.m",
    "content": "//\n//  INPopoverWindowFrame.m\n//  Copyright 2011-2014 Indragie Karunaratne. All rights reserved.\n//\n\n#import \"INPopoverWindowFrame.h\"\n\n@implementation INPopoverWindowFrame\n\n- (id)initWithFrame:(NSRect)frame\n{\n\tif ((self = [super initWithFrame:frame])) {\n\t\t_color = [NSColor colorWithCalibratedWhite:0.0 alpha:0.8];\n\t\t_cornerRadius = 4.0;\n\t\t_arrowSize = NSMakeSize(23.0, 12.0);\n\t\t_arrowDirection = INPopoverArrowDirectionLeft;\n\t}\n\treturn self;\n}\n\n- (void)drawRect:(NSRect)dirtyRect\n{\n\tNSRect bounds = [self bounds];\n\tif (((NSUInteger) self.borderWidth % 2) == 1) { // Remove draw glitch on odd border width\n\t\tbounds = NSInsetRect(bounds, 0.5, 0.5);\n\t}\n\n\tNSBezierPath *path = [self _popoverBezierPathWithRect:bounds];\n\tif (self.color) {\n\t\t[self.color set];\n\t\t[path fill];\n\t}\n\tif (self.borderWidth > 0) {\n\t\t[path setLineWidth:self.borderWidth];\n\t\t[self.borderColor set];\n\t\t[path stroke];\n\t}\n\n\tconst CGFloat arrowWidth = self.arrowSize.width;\n\tconst CGFloat arrowHeight = self.arrowSize.height;\n\tconst CGFloat radius = self.cornerRadius;\n\n\tif (self.topHighlightColor) {\n\t\t[self.topHighlightColor set];\n\t\tNSRect bounds = NSInsetRect([self bounds], arrowHeight, arrowHeight);\n\t\tNSRect lineRect = NSMakeRect(floor(NSMinX(bounds) + (radius / 2.0)), NSMaxY(bounds) - self.borderWidth - 1, NSWidth(bounds) - radius, 1.0);\n\n\t\tif (self.arrowDirection == INPopoverArrowDirectionUp) {\n\t\t\tCGFloat width = floor((lineRect.size.width / 2.0) - (arrowWidth / 2.0));\n\t\t\tNSRectFill(NSMakeRect(lineRect.origin.x, lineRect.origin.y, width, lineRect.size.height));\n\t\t\tNSRectFill(NSMakeRect(floor(lineRect.origin.x + (lineRect.size.width / 2.0) + (arrowWidth / 2.0)), lineRect.origin.y, width, lineRect.size.height));\n\t\t} else {\n\t\t\tNSRectFill(lineRect);\n\t\t}\n\t}\n}\n\n#pragma mark -\n#pragma mark Private\n\n- (NSBezierPath *)_popoverBezierPathWithRect:(NSRect)aRect\n{\n\tconst CGFloat radius = self.cornerRadius;\n\tconst CGFloat arrowWidth = self.arrowSize.width;\n\tconst CGFloat arrowHeight = self.arrowSize.height;\n\tconst CGFloat inset = radius + arrowHeight;\n\tconst NSRect drawingRect = NSInsetRect(aRect, inset, inset);\n\tconst CGFloat minX = NSMinX(drawingRect);\n\tconst CGFloat maxX = NSMaxX(drawingRect);\n\tconst CGFloat minY = NSMinY(drawingRect);\n\tconst CGFloat maxY = NSMaxY(drawingRect);\n\n\tNSBezierPath *path = [NSBezierPath bezierPath];\n\t[path setLineJoinStyle:NSRoundLineJoinStyle];\n\n\t// Bottom left corner\n\t[path appendBezierPathWithArcWithCenter:NSMakePoint(minX, minY) radius:radius startAngle:180.0 endAngle:270.0];\n\tif (self.arrowDirection == INPopoverArrowDirectionDown) {\n\t\tCGFloat midX = NSMidX(drawingRect);\n\t\tNSPoint points[3];\n\t\tpoints[0] = NSMakePoint(floor(midX - (arrowWidth / 2.0)), minY - radius); // Starting point\n\t\tpoints[1] = NSMakePoint(floor(midX), points[0].y - arrowHeight); // Arrow tip\n\t\tpoints[2] = NSMakePoint(floor(midX + (arrowWidth / 2.0)), points[0].y); // Ending point\n\t\t[path appendBezierPathWithPoints:points count:3];\n\t}\n\t// Bottom right corner\n\t[path appendBezierPathWithArcWithCenter:NSMakePoint(maxX, minY) radius:radius startAngle:270.0 endAngle:360.0];\n\tif (self.arrowDirection == INPopoverArrowDirectionRight) {\n\t\tCGFloat midY = NSMidY(drawingRect);\n\t\tNSPoint points[3];\n\t\tpoints[0] = NSMakePoint(maxX + radius, floor(midY - (arrowWidth / 2.0)));\n\t\tpoints[1] = NSMakePoint(points[0].x + arrowHeight, floor(midY));\n\t\tpoints[2] = NSMakePoint(points[0].x, floor(midY + (arrowWidth / 2.0)));\n\t\t[path appendBezierPathWithPoints:points count:3];\n\t}\n\t// Top right corner\n\t[path appendBezierPathWithArcWithCenter:NSMakePoint(maxX, maxY) radius:radius startAngle:0.0 endAngle:90.0];\n\tif (self.arrowDirection == INPopoverArrowDirectionUp) {\n\t\tCGFloat midX = NSMidX(drawingRect);\n\t\tNSPoint points[3];\n\t\tpoints[0] = NSMakePoint(floor(midX + (arrowWidth / 2.0)), maxY + radius);\n\t\tpoints[1] = NSMakePoint(floor(midX), points[0].y + arrowHeight);\n\t\tpoints[2] = NSMakePoint(floor(midX - (arrowWidth / 2.0)), points[0].y);\n\t\t[path appendBezierPathWithPoints:points count:3];\n\t}\n\t// Top left corner\n\t[path appendBezierPathWithArcWithCenter:NSMakePoint(minX, maxY) radius:radius startAngle:90.0 endAngle:180.0];\n\tif (self.arrowDirection == INPopoverArrowDirectionLeft) {\n\t\tCGFloat midY = NSMidY(drawingRect);\n\t\tNSPoint points[3];\n\t\tpoints[0] = NSMakePoint(minX - radius, floor(midY + (arrowWidth / 2.0)));\n\t\tpoints[1] = NSMakePoint(points[0].x - arrowHeight, floor(midY));\n\t\tpoints[2] = NSMakePoint(points[0].x, floor(midY - (arrowWidth / 2.0)));\n\t\t[path appendBezierPathWithPoints:points count:3];\n\t}\n\t[path closePath];\n\n\treturn path;\n}\n\n#pragma mark -\n#pragma mark Accessors\n\n// Redraw the frame every time a property is changed\n- (void)setColor:(NSColor *)newColor\n{\n\tif (_color != newColor) {\n\t\t_color = newColor;\n\t\t[self setNeedsDisplay:YES];\n\t}\n}\n\n- (void)setBorderColor:(NSColor *)newBorderColor\n{\n\tif (_borderColor != newBorderColor) {\n\t\t_borderColor = newBorderColor;\n\t\t[self setNeedsDisplay:YES];\n\t}\n}\n\n\n- (void)setBorderWidth:(CGFloat)newBorderWidth\n{\n\tif (_borderWidth != newBorderWidth) {\n\t\t_borderWidth = newBorderWidth;\n\t\t[self setNeedsDisplay:YES];\n\t}\n}\n\n- (void)setCornerRadius:(CGFloat)cornerRadius\n{\n\tif (_cornerRadius != cornerRadius) {\n\t\t_cornerRadius = cornerRadius;\n\t\t[self setNeedsDisplay:YES];\n\t}\n}\n\n- (void)setArrowSize:(NSSize)arrowSize\n{\n\tif (!NSEqualSizes(_arrowSize, arrowSize)) {\n\t\t_arrowSize = arrowSize;\n\t\t[self setNeedsDisplay:YES];\n\t}\n}\n\n- (void)setArrowDirection:(INPopoverArrowDirection)newArrowDirection\n{\n\tif (_arrowDirection != newArrowDirection) {\n\t\t_arrowDirection = newArrowDirection;\n\t\t[self setNeedsDisplay:YES];\n\t}\n}\n\n@end\n"
  },
  {
    "path": "INPopoverController.podspec",
    "content": "Pod::Spec.new do |s|\n\ts.name\t\t\t\t\t= 'INPopoverController'\n\ts.version\t\t\t\t= '0.0.1'\n\ts.summary\t\t\t\t= 'A customizable popover controller for Mac OS X'\n\ts.homepage\t\t\t\t= 'https://github.com/indragiek/INPopoverController'\n\ts.author   \t\t\t\t= { 'Indragie Karunaratne' => 'i@indragie.com' }\n\ts.source   \t\t\t\t= { :git => 'https://github.com/indragiek/INPopoverController.git' }\n\ts.source_files\t\t\t= 'INPopoverController/*.{h,m}'\n \ts.public_header_files\t= 'INPopoverController/*.h'\n\ts.platform \t\t\t\t= :osx\n\ts.requires_arc \t\t\t= true\n\ts.license\t\t\t\t= 'BSD'\n\ts.frameworks\t\t\t= 'QuartzCore'\nend\n"
  },
  {
    "path": "INPopoverController.xcodeproj/project.pbxproj",
    "content": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 46;\n\tobjects = {\n\n/* Begin PBXBuildFile section */\n\t\t7619A0908F1873F212A86D92 /* INPopoverController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7619A090EED3A0874FFB0542 /* INPopoverController.m */; };\n\t\t7619A507692D41F9A4EA0EB1 /* INPopoverController.h in Headers */ = {isa = PBXBuildFile; fileRef = 7619AF3F1F908EC06616FBBA /* INPopoverController.h */; settings = {ATTRIBUTES = (Public, ); }; };\n\t\t7619A5078560AD04EB09398F /* INPopoverWindowFrame.m in Sources */ = {isa = PBXBuildFile; fileRef = 7619AFDD9CA28B629C79B9B7 /* INPopoverWindowFrame.m */; };\n\t\t7619A72138650AA792042726 /* INPopoverParentWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = 7619A3274F11C96F76F9A2AA /* INPopoverParentWindow.h */; };\n\t\t7619A73868BE7D04215703FA /* INPopoverControllerDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = 7619A49B8AE793DFA2663E95 /* INPopoverControllerDefines.h */; settings = {ATTRIBUTES = (Public, ); }; };\n\t\t7619A73A585AD478336FBD44 /* INPopoverParentWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 7619A840E914A3391A33BCB2 /* INPopoverParentWindow.m */; };\n\t\t7619A7C39101BC5170F2CF23 /* INPopoverWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = 7619AEB4110920D49EB68147 /* INPopoverWindow.h */; };\n\t\t7619AFCF3AC75534C6582B37 /* INPopoverWindowFrame.h in Headers */ = {isa = PBXBuildFile; fileRef = 7619ABC89C19022487731625 /* INPopoverWindowFrame.h */; };\n\t\t7619AFCFD4611DEE23332859 /* INPopoverWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 7619A46EB85527945376718B /* INPopoverWindow.m */; };\n\t\t98BA893B143EA04A006F744E /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 98BA893A143EA04A006F744E /* Cocoa.framework */; };\n\t\t98BA8983143EA1E9006F744E /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 98BA8982143EA1E9006F744E /* QuartzCore.framework */; };\n\t\t98BA8985143EA28E006F744E /* INPopoverPrefixHeader.pch in Headers */ = {isa = PBXBuildFile; fileRef = 98BA8984143EA28E006F744E /* INPopoverPrefixHeader.pch */; };\n/* End PBXBuildFile section */\n\n/* Begin PBXFileReference section */\n\t\t7619A090EED3A0874FFB0542 /* INPopoverController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = INPopoverController.m; sourceTree = \"<group>\"; };\n\t\t7619A3274F11C96F76F9A2AA /* INPopoverParentWindow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = INPopoverParentWindow.h; sourceTree = \"<group>\"; };\n\t\t7619A46EB85527945376718B /* INPopoverWindow.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = INPopoverWindow.m; sourceTree = \"<group>\"; };\n\t\t7619A49B8AE793DFA2663E95 /* INPopoverControllerDefines.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = INPopoverControllerDefines.h; sourceTree = \"<group>\"; };\n\t\t7619A840E914A3391A33BCB2 /* INPopoverParentWindow.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = INPopoverParentWindow.m; sourceTree = \"<group>\"; };\n\t\t7619ABC89C19022487731625 /* INPopoverWindowFrame.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = INPopoverWindowFrame.h; sourceTree = \"<group>\"; };\n\t\t7619AEB4110920D49EB68147 /* INPopoverWindow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = INPopoverWindow.h; sourceTree = \"<group>\"; };\n\t\t7619AF3F1F908EC06616FBBA /* INPopoverController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = INPopoverController.h; sourceTree = \"<group>\"; };\n\t\t7619AFDD9CA28B629C79B9B7 /* INPopoverWindowFrame.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = INPopoverWindowFrame.m; sourceTree = \"<group>\"; };\n\t\t98BA8937143EA04A006F744E /* INPopoverController.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = INPopoverController.framework; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\t98BA893A143EA04A006F744E /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; };\n\t\t98BA893D143EA04A006F744E /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; };\n\t\t98BA893E143EA04A006F744E /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = System/Library/Frameworks/CoreData.framework; sourceTree = SDKROOT; };\n\t\t98BA893F143EA04A006F744E /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };\n\t\t98BA8942143EA04A006F744E /* INPopoverController-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = \"INPopoverController-Info.plist\"; sourceTree = \"<group>\"; };\n\t\t98BA8982143EA1E9006F744E /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = SDKs/MacOSX10.6.sdk/System/Library/Frameworks/QuartzCore.framework; sourceTree = DEVELOPER_DIR; };\n\t\t98BA8984143EA28E006F744E /* INPopoverPrefixHeader.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = INPopoverPrefixHeader.pch; sourceTree = \"<group>\"; };\n/* End PBXFileReference section */\n\n/* Begin PBXFrameworksBuildPhase section */\n\t\t98BA8933143EA04A006F744E /* Frameworks */ = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t98BA893B143EA04A006F744E /* Cocoa.framework in Frameworks */,\n\t\t\t\t98BA8983143EA1E9006F744E /* QuartzCore.framework in Frameworks */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXFrameworksBuildPhase section */\n\n/* Begin PBXGroup section */\n\t\t98BA892B143EA049006F744E = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t98BA8940143EA04A006F744E /* INPopoverController */,\n\t\t\t\t98BA8939143EA04A006F744E /* Frameworks */,\n\t\t\t\t98BA8938143EA04A006F744E /* Products */,\n\t\t\t);\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t98BA8938143EA04A006F744E /* Products */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t98BA8937143EA04A006F744E /* INPopoverController.framework */,\n\t\t\t);\n\t\t\tname = Products;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t98BA8939143EA04A006F744E /* Frameworks */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t98BA8982143EA1E9006F744E /* QuartzCore.framework */,\n\t\t\t\t98BA893A143EA04A006F744E /* Cocoa.framework */,\n\t\t\t\t98BA893C143EA04A006F744E /* Other Frameworks */,\n\t\t\t);\n\t\t\tname = Frameworks;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t98BA893C143EA04A006F744E /* Other Frameworks */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t98BA893D143EA04A006F744E /* AppKit.framework */,\n\t\t\t\t98BA893E143EA04A006F744E /* CoreData.framework */,\n\t\t\t\t98BA893F143EA04A006F744E /* Foundation.framework */,\n\t\t\t);\n\t\t\tname = \"Other Frameworks\";\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t98BA8940143EA04A006F744E /* INPopoverController */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t98BA8941143EA04A006F744E /* Supporting Files */,\n\t\t\t\t7619A49B8AE793DFA2663E95 /* INPopoverControllerDefines.h */,\n\t\t\t\t7619AF3F1F908EC06616FBBA /* INPopoverController.h */,\n\t\t\t\t7619A090EED3A0874FFB0542 /* INPopoverController.m */,\n\t\t\t\t7619ABC89C19022487731625 /* INPopoverWindowFrame.h */,\n\t\t\t\t7619AFDD9CA28B629C79B9B7 /* INPopoverWindowFrame.m */,\n\t\t\t\t7619AEB4110920D49EB68147 /* INPopoverWindow.h */,\n\t\t\t\t7619A46EB85527945376718B /* INPopoverWindow.m */,\n\t\t\t\t7619A3274F11C96F76F9A2AA /* INPopoverParentWindow.h */,\n\t\t\t\t7619A840E914A3391A33BCB2 /* INPopoverParentWindow.m */,\n\t\t\t);\n\t\t\tpath = INPopoverController;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t98BA8941143EA04A006F744E /* Supporting Files */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t98BA8984143EA28E006F744E /* INPopoverPrefixHeader.pch */,\n\t\t\t\t98BA8942143EA04A006F744E /* INPopoverController-Info.plist */,\n\t\t\t);\n\t\t\tname = \"Supporting Files\";\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n/* End PBXGroup section */\n\n/* Begin PBXHeadersBuildPhase section */\n\t\t98BA8934143EA04A006F744E /* Headers */ = {\n\t\t\tisa = PBXHeadersBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t98BA8985143EA28E006F744E /* INPopoverPrefixHeader.pch in Headers */,\n\t\t\t\t7619A507692D41F9A4EA0EB1 /* INPopoverController.h in Headers */,\n\t\t\t\t7619A72138650AA792042726 /* INPopoverParentWindow.h in Headers */,\n\t\t\t\t7619A73868BE7D04215703FA /* INPopoverControllerDefines.h in Headers */,\n\t\t\t\t7619A7C39101BC5170F2CF23 /* INPopoverWindow.h in Headers */,\n\t\t\t\t7619AFCF3AC75534C6582B37 /* INPopoverWindowFrame.h in Headers */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXHeadersBuildPhase section */\n\n/* Begin PBXNativeTarget section */\n\t\t98BA8936143EA04A006F744E /* INPopoverController */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = 98BA8962143EA04B006F744E /* Build configuration list for PBXNativeTarget \"INPopoverController\" */;\n\t\t\tbuildPhases = (\n\t\t\t\t98BA8932143EA04A006F744E /* Sources */,\n\t\t\t\t98BA8933143EA04A006F744E /* Frameworks */,\n\t\t\t\t98BA8934143EA04A006F744E /* Headers */,\n\t\t\t\t98BA8935143EA04A006F744E /* Resources */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t);\n\t\t\tname = INPopoverController;\n\t\t\tproductName = INPopoverController;\n\t\t\tproductReference = 98BA8937143EA04A006F744E /* INPopoverController.framework */;\n\t\t\tproductType = \"com.apple.product-type.framework\";\n\t\t};\n/* End PBXNativeTarget section */\n\n/* Begin PBXProject section */\n\t\t98BA892D143EA049006F744E /* Project object */ = {\n\t\t\tisa = PBXProject;\n\t\t\tattributes = {\n\t\t\t\tLastUpgradeCheck = 0500;\n\t\t\t};\n\t\t\tbuildConfigurationList = 98BA8930143EA049006F744E /* Build configuration list for PBXProject \"INPopoverController\" */;\n\t\t\tcompatibilityVersion = \"Xcode 3.2\";\n\t\t\tdevelopmentRegion = English;\n\t\t\thasScannedForEncodings = 0;\n\t\t\tknownRegions = (\n\t\t\t\ten,\n\t\t\t);\n\t\t\tmainGroup = 98BA892B143EA049006F744E;\n\t\t\tproductRefGroup = 98BA8938143EA04A006F744E /* Products */;\n\t\t\tprojectDirPath = \"\";\n\t\t\tprojectRoot = \"\";\n\t\t\ttargets = (\n\t\t\t\t98BA8936143EA04A006F744E /* INPopoverController */,\n\t\t\t);\n\t\t};\n/* End PBXProject section */\n\n/* Begin PBXResourcesBuildPhase section */\n\t\t98BA8935143EA04A006F744E /* Resources */ = {\n\t\t\tisa = PBXResourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXResourcesBuildPhase section */\n\n/* Begin PBXSourcesBuildPhase section */\n\t\t98BA8932143EA04A006F744E /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t7619A0908F1873F212A86D92 /* INPopoverController.m in Sources */,\n\t\t\t\t7619A5078560AD04EB09398F /* INPopoverWindowFrame.m in Sources */,\n\t\t\t\t7619AFCFD4611DEE23332859 /* INPopoverWindow.m in Sources */,\n\t\t\t\t7619A73A585AD478336FBD44 /* INPopoverParentWindow.m in Sources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXSourcesBuildPhase section */\n\n/* Begin XCBuildConfiguration section */\n\t\t98BA8960143EA04B006F744E /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tCLANG_ENABLE_OBJC_ARC = YES;\n\t\t\t\tCLANG_WARN_BOOL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_CONSTANT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_EMPTY_BODY = YES;\n\t\t\t\tCLANG_WARN_ENUM_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_INT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN__DUPLICATE_METHOD_MATCH = YES;\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu99;\n\t\t\t\tGCC_DYNAMIC_NO_PIC = NO;\n\t\t\t\tGCC_ENABLE_OBJC_EXCEPTIONS = YES;\n\t\t\t\tGCC_OPTIMIZATION_LEVEL = 0;\n\t\t\t\tGCC_PREPROCESSOR_DEFINITIONS = (\n\t\t\t\t\t\"DEBUG=1\",\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t);\n\t\t\t\tGCC_SYMBOLS_PRIVATE_EXTERN = NO;\n\t\t\t\tGCC_VERSION = com.apple.compilers.llvm.clang.1_0;\n\t\t\t\tGCC_WARN_64_TO_32_BIT_CONVERSION = YES;\n\t\t\t\tGCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;\n\t\t\t\tGCC_WARN_ABOUT_RETURN_TYPE = YES;\n\t\t\t\tGCC_WARN_UNDECLARED_SELECTOR = YES;\n\t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES;\n\t\t\t\tGCC_WARN_UNUSED_FUNCTION = YES;\n\t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n\t\t\t\tMACOSX_DEPLOYMENT_TARGET = 10.6;\n\t\t\t\tONLY_ACTIVE_ARCH = YES;\n\t\t\t\tSDKROOT = macosx;\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\t98BA8961143EA04B006F744E /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tCLANG_ENABLE_OBJC_ARC = YES;\n\t\t\t\tCLANG_WARN_BOOL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_CONSTANT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_EMPTY_BODY = YES;\n\t\t\t\tCLANG_WARN_ENUM_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_INT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN__DUPLICATE_METHOD_MATCH = YES;\n\t\t\t\tCOPY_PHASE_STRIP = YES;\n\t\t\t\tDEBUG_INFORMATION_FORMAT = \"dwarf-with-dsym\";\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu99;\n\t\t\t\tGCC_ENABLE_OBJC_EXCEPTIONS = YES;\n\t\t\t\tGCC_VERSION = com.apple.compilers.llvm.clang.1_0;\n\t\t\t\tGCC_WARN_64_TO_32_BIT_CONVERSION = YES;\n\t\t\t\tGCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;\n\t\t\t\tGCC_WARN_ABOUT_RETURN_TYPE = YES;\n\t\t\t\tGCC_WARN_UNDECLARED_SELECTOR = YES;\n\t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES;\n\t\t\t\tGCC_WARN_UNUSED_FUNCTION = YES;\n\t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n\t\t\t\tMACOSX_DEPLOYMENT_TARGET = 10.6;\n\t\t\t\tSDKROOT = macosx;\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\t98BA8963143EA04B006F744E /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tCLANG_ENABLE_OBJC_ARC = YES;\n\t\t\t\tCOMBINE_HIDPI_IMAGES = YES;\n\t\t\t\tDYLIB_COMPATIBILITY_VERSION = 1;\n\t\t\t\tDYLIB_CURRENT_VERSION = 1;\n\t\t\t\tFRAMEWORK_SEARCH_PATHS = (\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t\t\"\\\"$(DEVELOPER_DIR)/SDKs/MacOSX10.6.sdk/System/Library/Frameworks\\\"\",\n\t\t\t\t);\n\t\t\t\tFRAMEWORK_VERSION = A;\n\t\t\t\tGCC_PRECOMPILE_PREFIX_HEADER = YES;\n\t\t\t\tGCC_PREFIX_HEADER = INPopoverController/INPopoverPrefixHeader.pch;\n\t\t\t\tGCC_VERSION = \"\";\n\t\t\t\tGCC_WARN_64_TO_32_BIT_CONVERSION = NO;\n\t\t\t\tINFOPLIST_FILE = \"INPopoverController/INPopoverController-Info.plist\";\n\t\t\t\tINSTALL_PATH = \"@rpath\";\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSDKROOT = macosx;\n\t\t\t\tWRAPPER_EXTENSION = framework;\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\t98BA8964143EA04B006F744E /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tCLANG_ENABLE_OBJC_ARC = YES;\n\t\t\t\tCOMBINE_HIDPI_IMAGES = YES;\n\t\t\t\tDYLIB_COMPATIBILITY_VERSION = 1;\n\t\t\t\tDYLIB_CURRENT_VERSION = 1;\n\t\t\t\tFRAMEWORK_SEARCH_PATHS = (\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t\t\"\\\"$(DEVELOPER_DIR)/SDKs/MacOSX10.6.sdk/System/Library/Frameworks\\\"\",\n\t\t\t\t);\n\t\t\t\tFRAMEWORK_VERSION = A;\n\t\t\t\tGCC_PRECOMPILE_PREFIX_HEADER = YES;\n\t\t\t\tGCC_PREFIX_HEADER = INPopoverController/INPopoverPrefixHeader.pch;\n\t\t\t\tGCC_VERSION = \"\";\n\t\t\t\tGCC_WARN_64_TO_32_BIT_CONVERSION = NO;\n\t\t\t\tINFOPLIST_FILE = \"INPopoverController/INPopoverController-Info.plist\";\n\t\t\t\tINSTALL_PATH = \"@rpath\";\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSDKROOT = macosx;\n\t\t\t\tWRAPPER_EXTENSION = framework;\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n/* End XCBuildConfiguration section */\n\n/* Begin XCConfigurationList section */\n\t\t98BA8930143EA049006F744E /* Build configuration list for PBXProject \"INPopoverController\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\t98BA8960143EA04B006F744E /* Debug */,\n\t\t\t\t98BA8961143EA04B006F744E /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n\t\t98BA8962143EA04B006F744E /* Build configuration list for PBXNativeTarget \"INPopoverController\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\t98BA8963143EA04B006F744E /* Debug */,\n\t\t\t\t98BA8964143EA04B006F744E /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n/* End XCConfigurationList section */\n\t};\n\trootObject = 98BA892D143EA049006F744E /* Project object */;\n}\n"
  },
  {
    "path": "INPopoverController.xcodeproj/project.xcworkspace/contents.xcworkspacedata",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n   version = \"1.0\">\n   <FileRef\n      location = \"self:INPopoverController.xcodeproj\">\n   </FileRef>\n</Workspace>\n"
  },
  {
    "path": "LICENSE",
    "content": "Copyright (c) 2011-2014, Indragie Karunaratne\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\n\n1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\n\n2. 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.\n\nTHIS 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 HOLDER 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.\n"
  },
  {
    "path": "PopoverSampleApp/PopoverSampleApp/AlphaColorWell.h",
    "content": "//\n//  AlphaColorWell.h\n//  PopoverSampleApp\n//\n//  Created by Indragie Karunaratne on 1/11/2014.\n//\n\n#import <Cocoa/Cocoa.h>\n\n@interface AlphaColorWell : NSColorWell\n\n@end\n"
  },
  {
    "path": "PopoverSampleApp/PopoverSampleApp/AlphaColorWell.m",
    "content": "//\n//  AlphaColorWell.m\n//  PopoverSampleApp\n//\n//  Created by Indragie Karunaratne on 1/11/2014.\n//\n\n#import \"AlphaColorWell.h\"\n\n@implementation AlphaColorWell\n\n- (void)activate:(BOOL)exclusive\n{\n    [[NSColorPanel sharedColorPanel] setShowsAlpha:YES];\n    [super activate:exclusive];\n}\n\n@end\n"
  },
  {
    "path": "PopoverSampleApp/PopoverSampleApp/ContentViewController.h",
    "content": "//\n//  ContentViewController.h\n//  Copyright 2011-2014 Indragie Karunaratne. All rights reserved.\n//\n\n#import <Cocoa/Cocoa.h>\n\n\n@interface ContentViewController : NSViewController {\n@private\n    \n}\n\n@end\n"
  },
  {
    "path": "PopoverSampleApp/PopoverSampleApp/ContentViewController.m",
    "content": "//\n//  ContentViewController.m\n//  Copyright 2011-2014 Indragie Karunaratne. All rights reserved.\n//\n\n#import \"ContentViewController.h\"\n\n\n@implementation ContentViewController\n\n- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil\n{\n    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];\n    if (self) {\n        // Initialization code here.\n    }\n    \n    return self;\n}\n\n\n@end\n"
  },
  {
    "path": "PopoverSampleApp/PopoverSampleApp/ContentViewController.xib",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<archive type=\"com.apple.InterfaceBuilder3.Cocoa.XIB\" version=\"8.00\">\n\t<data>\n\t\t<int key=\"IBDocument.SystemTarget\">1070</int>\n\t\t<string key=\"IBDocument.SystemVersion\">11A390</string>\n\t\t<string key=\"IBDocument.InterfaceBuilderVersion\">1510</string>\n\t\t<string key=\"IBDocument.AppKitVersion\">1110.91</string>\n\t\t<string key=\"IBDocument.HIToolboxVersion\">544.00</string>\n\t\t<object class=\"NSMutableDictionary\" key=\"IBDocument.PluginVersions\">\n\t\t\t<string key=\"NS.key.0\">com.apple.InterfaceBuilder.CocoaPlugin</string>\n\t\t\t<string key=\"NS.object.0\">1510</string>\n\t\t</object>\n\t\t<array key=\"IBDocument.IntegratedClassDependencies\">\n\t\t\t<string>NSCustomView</string>\n\t\t\t<string>NSTextField</string>\n\t\t\t<string>NSTextFieldCell</string>\n\t\t\t<string>NSCustomObject</string>\n\t\t</array>\n\t\t<array key=\"IBDocument.PluginDependencies\">\n\t\t\t<string>com.apple.InterfaceBuilder.CocoaPlugin</string>\n\t\t</array>\n\t\t<dictionary class=\"NSMutableDictionary\" key=\"IBDocument.Metadata\"/>\n\t\t<array class=\"NSMutableArray\" key=\"IBDocument.RootObjects\" id=\"1000\">\n\t\t\t<object class=\"NSCustomObject\" id=\"1001\">\n\t\t\t\t<string key=\"NSClassName\">ContentViewController</string>\n\t\t\t</object>\n\t\t\t<object class=\"NSCustomObject\" id=\"1003\">\n\t\t\t\t<string key=\"NSClassName\">FirstResponder</string>\n\t\t\t</object>\n\t\t\t<object class=\"NSCustomObject\" id=\"1004\">\n\t\t\t\t<string key=\"NSClassName\">NSApplication</string>\n\t\t\t</object>\n\t\t\t<object class=\"NSCustomView\" id=\"1005\">\n\t\t\t\t<reference key=\"NSNextResponder\"/>\n\t\t\t\t<int key=\"NSvFlags\">268</int>\n\t\t\t\t<array class=\"NSMutableArray\" key=\"NSSubviews\">\n\t\t\t\t\t<object class=\"NSTextField\" id=\"423807661\">\n\t\t\t\t\t\t<reference key=\"NSNextResponder\" ref=\"1005\"/>\n\t\t\t\t\t\t<int key=\"NSvFlags\">268</int>\n\t\t\t\t\t\t<string key=\"NSFrame\">{{68, 83}, {215, 39}}</string>\n\t\t\t\t\t\t<reference key=\"NSSuperview\" ref=\"1005\"/>\n\t\t\t\t\t\t<reference key=\"NSWindow\"/>\n\t\t\t\t\t\t<string key=\"NSReuseIdentifierKey\">_NS:3583</string>\n\t\t\t\t\t\t<bool key=\"NSEnabled\">YES</bool>\n\t\t\t\t\t\t<object class=\"NSTextFieldCell\" key=\"NSCell\" id=\"854481628\">\n\t\t\t\t\t\t\t<int key=\"NSCellFlags\">67239424</int>\n\t\t\t\t\t\t\t<int key=\"NSCellFlags2\">272629760</int>\n\t\t\t\t\t\t\t<string key=\"NSContents\">This is view content loaded from ContentViewController.xib</string>\n\t\t\t\t\t\t\t<object class=\"NSFont\" key=\"NSSupport\">\n\t\t\t\t\t\t\t\t<string key=\"NSName\">LucidaGrande</string>\n\t\t\t\t\t\t\t\t<double key=\"NSSize\">13</double>\n\t\t\t\t\t\t\t\t<int key=\"NSfFlags\">16</int>\n\t\t\t\t\t\t\t</object>\n\t\t\t\t\t\t\t<reference key=\"NSControlView\" ref=\"423807661\"/>\n\t\t\t\t\t\t\t<object class=\"NSColor\" key=\"NSBackgroundColor\">\n\t\t\t\t\t\t\t\t<int key=\"NSColorSpace\">6</int>\n\t\t\t\t\t\t\t\t<string key=\"NSCatalogName\">System</string>\n\t\t\t\t\t\t\t\t<string key=\"NSColorName\">controlColor</string>\n\t\t\t\t\t\t\t\t<object class=\"NSColor\" key=\"NSColor\">\n\t\t\t\t\t\t\t\t\t<int key=\"NSColorSpace\">3</int>\n\t\t\t\t\t\t\t\t\t<bytes key=\"NSWhite\">MC42NjY2NjY2NjY3AA</bytes>\n\t\t\t\t\t\t\t\t</object>\n\t\t\t\t\t\t\t</object>\n\t\t\t\t\t\t\t<object class=\"NSColor\" key=\"NSTextColor\">\n\t\t\t\t\t\t\t\t<int key=\"NSColorSpace\">1</int>\n\t\t\t\t\t\t\t\t<bytes key=\"NSRGB\">MCAwIDAAA</bytes>\n\t\t\t\t\t\t\t</object>\n\t\t\t\t\t\t</object>\n\t\t\t\t\t</object>\n\t\t\t\t</array>\n\t\t\t\t<string key=\"NSFrameSize\">{351, 204}</string>\n\t\t\t\t<reference key=\"NSSuperview\"/>\n\t\t\t\t<reference key=\"NSWindow\"/>\n\t\t\t\t<string key=\"NSClassName\">NSView</string>\n\t\t\t</object>\n\t\t</array>\n\t\t<object class=\"IBObjectContainer\" key=\"IBDocument.Objects\">\n\t\t\t<array class=\"NSMutableArray\" key=\"connectionRecords\">\n\t\t\t\t<object class=\"IBConnectionRecord\">\n\t\t\t\t\t<object class=\"IBOutletConnection\" key=\"connection\">\n\t\t\t\t\t\t<string key=\"label\">view</string>\n\t\t\t\t\t\t<reference key=\"source\" ref=\"1001\"/>\n\t\t\t\t\t\t<reference key=\"destination\" ref=\"1005\"/>\n\t\t\t\t\t</object>\n\t\t\t\t\t<int key=\"connectionID\">3</int>\n\t\t\t\t</object>\n\t\t\t</array>\n\t\t\t<object class=\"IBMutableOrderedSet\" key=\"objectRecords\">\n\t\t\t\t<array key=\"orderedObjects\">\n\t\t\t\t\t<object class=\"IBObjectRecord\">\n\t\t\t\t\t\t<int key=\"objectID\">0</int>\n\t\t\t\t\t\t<array key=\"object\" id=\"0\"/>\n\t\t\t\t\t\t<reference key=\"children\" ref=\"1000\"/>\n\t\t\t\t\t\t<nil key=\"parent\"/>\n\t\t\t\t\t</object>\n\t\t\t\t\t<object class=\"IBObjectRecord\">\n\t\t\t\t\t\t<int key=\"objectID\">-2</int>\n\t\t\t\t\t\t<reference key=\"object\" ref=\"1001\"/>\n\t\t\t\t\t\t<reference key=\"parent\" ref=\"0\"/>\n\t\t\t\t\t\t<string key=\"objectName\">File's Owner</string>\n\t\t\t\t\t</object>\n\t\t\t\t\t<object class=\"IBObjectRecord\">\n\t\t\t\t\t\t<int key=\"objectID\">-1</int>\n\t\t\t\t\t\t<reference key=\"object\" ref=\"1003\"/>\n\t\t\t\t\t\t<reference key=\"parent\" ref=\"0\"/>\n\t\t\t\t\t\t<string key=\"objectName\">First Responder</string>\n\t\t\t\t\t</object>\n\t\t\t\t\t<object class=\"IBObjectRecord\">\n\t\t\t\t\t\t<int key=\"objectID\">-3</int>\n\t\t\t\t\t\t<reference key=\"object\" ref=\"1004\"/>\n\t\t\t\t\t\t<reference key=\"parent\" ref=\"0\"/>\n\t\t\t\t\t\t<string key=\"objectName\">Application</string>\n\t\t\t\t\t</object>\n\t\t\t\t\t<object class=\"IBObjectRecord\">\n\t\t\t\t\t\t<int key=\"objectID\">1</int>\n\t\t\t\t\t\t<reference key=\"object\" ref=\"1005\"/>\n\t\t\t\t\t\t<array class=\"NSMutableArray\" key=\"children\">\n\t\t\t\t\t\t\t<reference ref=\"423807661\"/>\n\t\t\t\t\t\t</array>\n\t\t\t\t\t\t<reference key=\"parent\" ref=\"0\"/>\n\t\t\t\t\t</object>\n\t\t\t\t\t<object class=\"IBObjectRecord\">\n\t\t\t\t\t\t<int key=\"objectID\">6</int>\n\t\t\t\t\t\t<reference key=\"object\" ref=\"423807661\"/>\n\t\t\t\t\t\t<array class=\"NSMutableArray\" key=\"children\">\n\t\t\t\t\t\t\t<reference ref=\"854481628\"/>\n\t\t\t\t\t\t</array>\n\t\t\t\t\t\t<reference key=\"parent\" ref=\"1005\"/>\n\t\t\t\t\t</object>\n\t\t\t\t\t<object class=\"IBObjectRecord\">\n\t\t\t\t\t\t<int key=\"objectID\">7</int>\n\t\t\t\t\t\t<reference key=\"object\" ref=\"854481628\"/>\n\t\t\t\t\t\t<reference key=\"parent\" ref=\"423807661\"/>\n\t\t\t\t\t</object>\n\t\t\t\t</array>\n\t\t\t</object>\n\t\t\t<dictionary class=\"NSMutableDictionary\" key=\"flattenedProperties\">\n\t\t\t\t<string key=\"-1.IBPluginDependency\">com.apple.InterfaceBuilder.CocoaPlugin</string>\n\t\t\t\t<string key=\"-2.IBPluginDependency\">com.apple.InterfaceBuilder.CocoaPlugin</string>\n\t\t\t\t<string key=\"-3.IBPluginDependency\">com.apple.InterfaceBuilder.CocoaPlugin</string>\n\t\t\t\t<string key=\"1.IBEditorWindowLastContentRect\">{{633, 728}, {480, 272}}</string>\n\t\t\t\t<string key=\"1.IBPluginDependency\">com.apple.InterfaceBuilder.CocoaPlugin</string>\n\t\t\t\t<string key=\"1.WindowOrigin\">{628, 654}</string>\n\t\t\t\t<string key=\"1.editorWindowContentRectSynchronizationRect\">{{357, 416}, {480, 272}}</string>\n\t\t\t\t<string key=\"6.IBPluginDependency\">com.apple.InterfaceBuilder.CocoaPlugin</string>\n\t\t\t\t<string key=\"7.IBPluginDependency\">com.apple.InterfaceBuilder.CocoaPlugin</string>\n\t\t\t</dictionary>\n\t\t\t<dictionary class=\"NSMutableDictionary\" key=\"unlocalizedProperties\"/>\n\t\t\t<nil key=\"activeLocalization\"/>\n\t\t\t<dictionary class=\"NSMutableDictionary\" key=\"localizations\"/>\n\t\t\t<nil key=\"sourceID\"/>\n\t\t\t<int key=\"maxID\">7</int>\n\t\t</object>\n\t\t<object class=\"IBClassDescriber\" key=\"IBDocument.Classes\">\n\t\t\t<array class=\"NSMutableArray\" key=\"referencedPartialClassDescriptions\">\n\t\t\t\t<object class=\"IBPartialClassDescription\">\n\t\t\t\t\t<string key=\"className\">ContentViewController</string>\n\t\t\t\t\t<string key=\"superclassName\">NSViewController</string>\n\t\t\t\t\t<object class=\"IBClassDescriptionSource\" key=\"sourceIdentifier\">\n\t\t\t\t\t\t<string key=\"majorKey\">IBProjectSource</string>\n\t\t\t\t\t\t<string key=\"minorKey\">./Classes/ContentViewController.h</string>\n\t\t\t\t\t</object>\n\t\t\t\t</object>\n\t\t\t</array>\n\t\t</object>\n\t\t<int key=\"IBDocument.localizationMode\">0</int>\n\t\t<string key=\"IBDocument.TargetRuntimeIdentifier\">IBCocoaFramework</string>\n\t\t<bool key=\"IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion\">YES</bool>\n\t\t<int key=\"IBDocument.defaultPropertyAccessControl\">3</int>\n\t</data>\n</archive>\n"
  },
  {
    "path": "PopoverSampleApp/PopoverSampleApp/PopoverSampleApp-Info.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>CFBundleDevelopmentRegion</key>\n\t<string>en</string>\n\t<key>CFBundleExecutable</key>\n\t<string>${EXECUTABLE_NAME}</string>\n\t<key>CFBundleIconFile</key>\n\t<string></string>\n\t<key>CFBundleIdentifier</key>\n\t<string>com.indragie.${PRODUCT_NAME:rfc1034identifier}</string>\n\t<key>CFBundleInfoDictionaryVersion</key>\n\t<string>6.0</string>\n\t<key>CFBundleName</key>\n\t<string>${PRODUCT_NAME}</string>\n\t<key>CFBundlePackageType</key>\n\t<string>APPL</string>\n\t<key>CFBundleShortVersionString</key>\n\t<string>1.0</string>\n\t<key>CFBundleSignature</key>\n\t<string>????</string>\n\t<key>CFBundleVersion</key>\n\t<string>1</string>\n\t<key>LSMinimumSystemVersion</key>\n\t<string>${MACOSX_DEPLOYMENT_TARGET}</string>\n\t<key>NSMainNibFile</key>\n\t<string>MainMenu</string>\n\t<key>NSPrincipalClass</key>\n\t<string>NSApplication</string>\n</dict>\n</plist>\n"
  },
  {
    "path": "PopoverSampleApp/PopoverSampleApp/PopoverSampleApp-Prefix.pch",
    "content": "//\n// Prefix header for all source files of the 'PopoverSampleApp' target in the 'PopoverSampleApp' project\n//\n\n#ifdef __OBJC__\n    #import <Cocoa/Cocoa.h>\n#endif\n"
  },
  {
    "path": "PopoverSampleApp/PopoverSampleApp/PopoverSampleAppAppDelegate.h",
    "content": "//\n//  PopoverSampleAppAppDelegate.h\n//  Copyright 2011-2014 Indragie Karunaratne. All rights reserved.\n//\n\n#import <Cocoa/Cocoa.h>\n\n@class INPopoverController;\n@interface PopoverSampleAppAppDelegate : NSObject <NSApplicationDelegate> {\n@private\n    NSWindow *__weak window;\n    INPopoverController *popoverController;\n}\n@property (nonatomic, strong) INPopoverController *popoverController;\n@property (weak) IBOutlet NSWindow *window;\n- (IBAction)togglePopover:(id)sender;\n@end\n"
  },
  {
    "path": "PopoverSampleApp/PopoverSampleApp/PopoverSampleAppAppDelegate.m",
    "content": "//\n//  PopoverSampleAppAppDelegate.m\n//  Copyright 2011-2014 Indragie Karunaratne. All rights reserved.\n//\n\n#import \"PopoverSampleAppAppDelegate.h\"\n#import \"ContentViewController.h\"\n#import <INPopoverController/INPopoverController.h>\n\n@implementation PopoverSampleAppAppDelegate\n@synthesize window, popoverController;\n\n- (void)applicationDidFinishLaunching:(NSNotification *)aNotification\n{\n    ContentViewController *viewController = [[ContentViewController alloc] initWithNibName:@\"ContentViewController\" bundle:nil];\n    self.popoverController = [[INPopoverController alloc] initWithContentViewController:viewController];\n}\n\n- (IBAction)togglePopover:(id)sender\n{\n    if (self.popoverController.popoverIsVisible) {\n        [self.popoverController closePopover:nil];\n    } else {\n        [self.popoverController presentPopoverFromRect:[sender bounds] inView:sender preferredArrowDirection:INPopoverArrowDirectionLeft anchorsToPositionView:YES];\n    }\n}\n\n@end\n"
  },
  {
    "path": "PopoverSampleApp/PopoverSampleApp/en.lproj/Credits.rtf",
    "content": "{\\rtf0\\ansi{\\fonttbl\\f0\\fswiss Helvetica;}\n{\\colortbl;\\red255\\green255\\blue255;}\n\\paperw9840\\paperh8400\n\\pard\\tx560\\tx1120\\tx1680\\tx2240\\tx2800\\tx3360\\tx3920\\tx4480\\tx5040\\tx5600\\tx6160\\tx6720\\ql\\qnatural\n\n\\f0\\b\\fs24 \\cf0 Engineering:\n\\b0 \\\n\tSome people\\\n\\\n\n\\b Human Interface Design:\n\\b0 \\\n\tSome other people\\\n\\\n\n\\b Testing:\n\\b0 \\\n\tHopefully not nobody\\\n\\\n\n\\b Documentation:\n\\b0 \\\n\tWhoever\\\n\\\n\n\\b With special thanks to:\n\\b0 \\\n\tMom\\\n}\n"
  },
  {
    "path": "PopoverSampleApp/PopoverSampleApp/en.lproj/InfoPlist.strings",
    "content": "/* Localized versions of Info.plist keys */\n\n"
  },
  {
    "path": "PopoverSampleApp/PopoverSampleApp/en.lproj/MainMenu.xib",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<document type=\"com.apple.InterfaceBuilder3.Cocoa.XIB\" version=\"3.0\" toolsVersion=\"4514\" systemVersion=\"13A598\" targetRuntime=\"MacOSX.Cocoa\" propertyAccessControl=\"none\">\n    <dependencies>\n        <deployment defaultVersion=\"1070\" identifier=\"macosx\"/>\n        <plugIn identifier=\"com.apple.InterfaceBuilder.CocoaPlugin\" version=\"4514\"/>\n    </dependencies>\n    <objects>\n        <customObject id=\"-2\" userLabel=\"File's Owner\" customClass=\"NSApplication\">\n            <connections>\n                <outlet property=\"delegate\" destination=\"494\" id=\"495\"/>\n            </connections>\n        </customObject>\n        <customObject id=\"-1\" userLabel=\"First Responder\" customClass=\"FirstResponder\"/>\n        <customObject id=\"-3\" userLabel=\"Application\"/>\n        <menu title=\"AMainMenu\" systemMenu=\"main\" id=\"29\">\n            <items>\n                <menuItem title=\"PopoverSampleApp\" id=\"56\">\n                    <menu key=\"submenu\" title=\"PopoverSampleApp\" systemMenu=\"apple\" id=\"57\">\n                        <items>\n                            <menuItem title=\"About PopoverSampleApp\" id=\"58\">\n                                <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                <connections>\n                                    <action selector=\"orderFrontStandardAboutPanel:\" target=\"-2\" id=\"142\"/>\n                                </connections>\n                            </menuItem>\n                            <menuItem isSeparatorItem=\"YES\" id=\"236\">\n                                <modifierMask key=\"keyEquivalentModifierMask\" command=\"YES\"/>\n                            </menuItem>\n                            <menuItem title=\"Preferences…\" keyEquivalent=\",\" id=\"129\"/>\n                            <menuItem isSeparatorItem=\"YES\" id=\"143\">\n                                <modifierMask key=\"keyEquivalentModifierMask\" command=\"YES\"/>\n                            </menuItem>\n                            <menuItem title=\"Services\" id=\"131\">\n                                <menu key=\"submenu\" title=\"Services\" systemMenu=\"services\" id=\"130\"/>\n                            </menuItem>\n                            <menuItem isSeparatorItem=\"YES\" id=\"144\">\n                                <modifierMask key=\"keyEquivalentModifierMask\" command=\"YES\"/>\n                            </menuItem>\n                            <menuItem title=\"Hide PopoverSampleApp\" keyEquivalent=\"h\" id=\"134\">\n                                <connections>\n                                    <action selector=\"hide:\" target=\"-1\" id=\"367\"/>\n                                </connections>\n                            </menuItem>\n                            <menuItem title=\"Hide Others\" keyEquivalent=\"h\" id=\"145\">\n                                <modifierMask key=\"keyEquivalentModifierMask\" option=\"YES\" command=\"YES\"/>\n                                <connections>\n                                    <action selector=\"hideOtherApplications:\" target=\"-1\" id=\"368\"/>\n                                </connections>\n                            </menuItem>\n                            <menuItem title=\"Show All\" id=\"150\">\n                                <connections>\n                                    <action selector=\"unhideAllApplications:\" target=\"-1\" id=\"370\"/>\n                                </connections>\n                            </menuItem>\n                            <menuItem isSeparatorItem=\"YES\" id=\"149\">\n                                <modifierMask key=\"keyEquivalentModifierMask\" command=\"YES\"/>\n                            </menuItem>\n                            <menuItem title=\"Quit PopoverSampleApp\" keyEquivalent=\"q\" id=\"136\">\n                                <connections>\n                                    <action selector=\"terminate:\" target=\"-3\" id=\"449\"/>\n                                </connections>\n                            </menuItem>\n                        </items>\n                    </menu>\n                </menuItem>\n                <menuItem title=\"File\" id=\"83\">\n                    <menu key=\"submenu\" title=\"File\" id=\"81\">\n                        <items>\n                            <menuItem title=\"New\" keyEquivalent=\"n\" id=\"82\">\n                                <connections>\n                                    <action selector=\"newDocument:\" target=\"-1\" id=\"373\"/>\n                                </connections>\n                            </menuItem>\n                            <menuItem title=\"Open…\" keyEquivalent=\"o\" id=\"72\">\n                                <connections>\n                                    <action selector=\"openDocument:\" target=\"-1\" id=\"374\"/>\n                                </connections>\n                            </menuItem>\n                            <menuItem title=\"Open Recent\" id=\"124\">\n                                <menu key=\"submenu\" title=\"Open Recent\" systemMenu=\"recentDocuments\" id=\"125\">\n                                    <items>\n                                        <menuItem title=\"Clear Menu\" id=\"126\">\n                                            <connections>\n                                                <action selector=\"clearRecentDocuments:\" target=\"-1\" id=\"127\"/>\n                                            </connections>\n                                        </menuItem>\n                                    </items>\n                                </menu>\n                            </menuItem>\n                            <menuItem isSeparatorItem=\"YES\" id=\"79\">\n                                <modifierMask key=\"keyEquivalentModifierMask\" command=\"YES\"/>\n                            </menuItem>\n                            <menuItem title=\"Close\" keyEquivalent=\"w\" id=\"73\">\n                                <connections>\n                                    <action selector=\"performClose:\" target=\"-1\" id=\"193\"/>\n                                </connections>\n                            </menuItem>\n                            <menuItem title=\"Save\" keyEquivalent=\"s\" id=\"75\">\n                                <connections>\n                                    <action selector=\"saveDocument:\" target=\"-1\" id=\"362\"/>\n                                </connections>\n                            </menuItem>\n                            <menuItem title=\"Save As…\" keyEquivalent=\"S\" id=\"80\">\n                                <modifierMask key=\"keyEquivalentModifierMask\" shift=\"YES\" command=\"YES\"/>\n                                <connections>\n                                    <action selector=\"saveDocumentAs:\" target=\"-1\" id=\"363\"/>\n                                </connections>\n                            </menuItem>\n                            <menuItem title=\"Revert to Saved\" id=\"112\">\n                                <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                <connections>\n                                    <action selector=\"revertDocumentToSaved:\" target=\"-1\" id=\"364\"/>\n                                </connections>\n                            </menuItem>\n                            <menuItem isSeparatorItem=\"YES\" id=\"74\">\n                                <modifierMask key=\"keyEquivalentModifierMask\" command=\"YES\"/>\n                            </menuItem>\n                            <menuItem title=\"Page Setup...\" keyEquivalent=\"P\" id=\"77\">\n                                <modifierMask key=\"keyEquivalentModifierMask\" shift=\"YES\" command=\"YES\"/>\n                                <connections>\n                                    <action selector=\"runPageLayout:\" target=\"-1\" id=\"87\"/>\n                                </connections>\n                            </menuItem>\n                            <menuItem title=\"Print…\" keyEquivalent=\"p\" id=\"78\">\n                                <connections>\n                                    <action selector=\"print:\" target=\"-1\" id=\"86\"/>\n                                </connections>\n                            </menuItem>\n                        </items>\n                    </menu>\n                </menuItem>\n                <menuItem title=\"Edit\" id=\"217\">\n                    <menu key=\"submenu\" title=\"Edit\" id=\"205\">\n                        <items>\n                            <menuItem title=\"Undo\" keyEquivalent=\"z\" id=\"207\">\n                                <connections>\n                                    <action selector=\"undo:\" target=\"-1\" id=\"223\"/>\n                                </connections>\n                            </menuItem>\n                            <menuItem title=\"Redo\" keyEquivalent=\"Z\" id=\"215\">\n                                <modifierMask key=\"keyEquivalentModifierMask\" shift=\"YES\" command=\"YES\"/>\n                                <connections>\n                                    <action selector=\"redo:\" target=\"-1\" id=\"231\"/>\n                                </connections>\n                            </menuItem>\n                            <menuItem isSeparatorItem=\"YES\" id=\"206\">\n                                <modifierMask key=\"keyEquivalentModifierMask\" command=\"YES\"/>\n                            </menuItem>\n                            <menuItem title=\"Cut\" keyEquivalent=\"x\" id=\"199\">\n                                <connections>\n                                    <action selector=\"cut:\" target=\"-1\" id=\"228\"/>\n                                </connections>\n                            </menuItem>\n                            <menuItem title=\"Copy\" keyEquivalent=\"c\" id=\"197\">\n                                <connections>\n                                    <action selector=\"copy:\" target=\"-1\" id=\"224\"/>\n                                </connections>\n                            </menuItem>\n                            <menuItem title=\"Paste\" keyEquivalent=\"v\" id=\"203\">\n                                <connections>\n                                    <action selector=\"paste:\" target=\"-1\" id=\"226\"/>\n                                </connections>\n                            </menuItem>\n                            <menuItem title=\"Paste and Match Style\" keyEquivalent=\"V\" id=\"485\">\n                                <modifierMask key=\"keyEquivalentModifierMask\" option=\"YES\" command=\"YES\"/>\n                                <connections>\n                                    <action selector=\"pasteAsPlainText:\" target=\"-1\" id=\"486\"/>\n                                </connections>\n                            </menuItem>\n                            <menuItem title=\"Delete\" id=\"202\">\n                                <connections>\n                                    <action selector=\"delete:\" target=\"-1\" id=\"235\"/>\n                                </connections>\n                            </menuItem>\n                            <menuItem title=\"Select All\" keyEquivalent=\"a\" id=\"198\">\n                                <connections>\n                                    <action selector=\"selectAll:\" target=\"-1\" id=\"232\"/>\n                                </connections>\n                            </menuItem>\n                            <menuItem isSeparatorItem=\"YES\" id=\"214\">\n                                <modifierMask key=\"keyEquivalentModifierMask\" command=\"YES\"/>\n                            </menuItem>\n                            <menuItem title=\"Find\" id=\"218\">\n                                <menu key=\"submenu\" title=\"Find\" id=\"220\">\n                                    <items>\n                                        <menuItem title=\"Find…\" tag=\"1\" keyEquivalent=\"f\" id=\"209\">\n                                            <connections>\n                                                <action selector=\"performFindPanelAction:\" target=\"-1\" id=\"241\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem title=\"Find Next\" tag=\"2\" keyEquivalent=\"g\" id=\"208\">\n                                            <connections>\n                                                <action selector=\"performFindPanelAction:\" target=\"-1\" id=\"487\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem title=\"Find Previous\" tag=\"3\" keyEquivalent=\"G\" id=\"213\">\n                                            <modifierMask key=\"keyEquivalentModifierMask\" shift=\"YES\" command=\"YES\"/>\n                                            <connections>\n                                                <action selector=\"performFindPanelAction:\" target=\"-1\" id=\"488\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem title=\"Use Selection for Find\" tag=\"7\" keyEquivalent=\"e\" id=\"221\">\n                                            <connections>\n                                                <action selector=\"performFindPanelAction:\" target=\"-1\" id=\"489\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem title=\"Jump to Selection\" keyEquivalent=\"j\" id=\"210\">\n                                            <connections>\n                                                <action selector=\"centerSelectionInVisibleArea:\" target=\"-1\" id=\"245\"/>\n                                            </connections>\n                                        </menuItem>\n                                    </items>\n                                </menu>\n                            </menuItem>\n                            <menuItem title=\"Spelling and Grammar\" id=\"216\">\n                                <menu key=\"submenu\" title=\"Spelling and Grammar\" id=\"200\">\n                                    <items>\n                                        <menuItem title=\"Show Spelling and Grammar\" keyEquivalent=\":\" id=\"204\">\n                                            <connections>\n                                                <action selector=\"showGuessPanel:\" target=\"-1\" id=\"230\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem title=\"Check Document Now\" keyEquivalent=\";\" id=\"201\">\n                                            <connections>\n                                                <action selector=\"checkSpelling:\" target=\"-1\" id=\"225\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem isSeparatorItem=\"YES\" id=\"453\"/>\n                                        <menuItem title=\"Check Spelling While Typing\" id=\"219\">\n                                            <connections>\n                                                <action selector=\"toggleContinuousSpellChecking:\" target=\"-1\" id=\"222\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem title=\"Check Grammar With Spelling\" id=\"346\">\n                                            <connections>\n                                                <action selector=\"toggleGrammarChecking:\" target=\"-1\" id=\"347\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem title=\"Correct Spelling Automatically\" id=\"454\">\n                                            <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                            <connections>\n                                                <action selector=\"toggleAutomaticSpellingCorrection:\" target=\"-1\" id=\"456\"/>\n                                            </connections>\n                                        </menuItem>\n                                    </items>\n                                </menu>\n                            </menuItem>\n                            <menuItem title=\"Substitutions\" id=\"348\">\n                                <menu key=\"submenu\" title=\"Substitutions\" id=\"349\">\n                                    <items>\n                                        <menuItem title=\"Show Substitutions\" id=\"457\">\n                                            <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                            <connections>\n                                                <action selector=\"orderFrontSubstitutionsPanel:\" target=\"-1\" id=\"458\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem isSeparatorItem=\"YES\" id=\"459\"/>\n                                        <menuItem title=\"Smart Copy/Paste\" tag=\"1\" keyEquivalent=\"f\" id=\"350\">\n                                            <connections>\n                                                <action selector=\"toggleSmartInsertDelete:\" target=\"-1\" id=\"355\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem title=\"Smart Quotes\" tag=\"2\" keyEquivalent=\"g\" id=\"351\">\n                                            <connections>\n                                                <action selector=\"toggleAutomaticQuoteSubstitution:\" target=\"-1\" id=\"356\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem title=\"Smart Dashes\" id=\"460\">\n                                            <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                            <connections>\n                                                <action selector=\"toggleAutomaticDashSubstitution:\" target=\"-1\" id=\"461\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem title=\"Smart Links\" tag=\"3\" keyEquivalent=\"G\" id=\"354\">\n                                            <modifierMask key=\"keyEquivalentModifierMask\" shift=\"YES\" command=\"YES\"/>\n                                            <connections>\n                                                <action selector=\"toggleAutomaticLinkDetection:\" target=\"-1\" id=\"357\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem title=\"Text Replacement\" id=\"462\">\n                                            <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                            <connections>\n                                                <action selector=\"toggleAutomaticTextReplacement:\" target=\"-1\" id=\"463\"/>\n                                            </connections>\n                                        </menuItem>\n                                    </items>\n                                </menu>\n                            </menuItem>\n                            <menuItem title=\"Transformations\" id=\"450\">\n                                <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                <menu key=\"submenu\" title=\"Transformations\" id=\"451\">\n                                    <items>\n                                        <menuItem title=\"Make Upper Case\" id=\"452\">\n                                            <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                            <connections>\n                                                <action selector=\"uppercaseWord:\" target=\"-1\" id=\"464\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem title=\"Make Lower Case\" id=\"465\">\n                                            <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                            <connections>\n                                                <action selector=\"lowercaseWord:\" target=\"-1\" id=\"468\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem title=\"Capitalize\" id=\"466\">\n                                            <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                            <connections>\n                                                <action selector=\"capitalizeWord:\" target=\"-1\" id=\"467\"/>\n                                            </connections>\n                                        </menuItem>\n                                    </items>\n                                </menu>\n                            </menuItem>\n                            <menuItem title=\"Speech\" id=\"211\">\n                                <menu key=\"submenu\" title=\"Speech\" id=\"212\">\n                                    <items>\n                                        <menuItem title=\"Start Speaking\" id=\"196\">\n                                            <connections>\n                                                <action selector=\"startSpeaking:\" target=\"-1\" id=\"233\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem title=\"Stop Speaking\" id=\"195\">\n                                            <connections>\n                                                <action selector=\"stopSpeaking:\" target=\"-1\" id=\"227\"/>\n                                            </connections>\n                                        </menuItem>\n                                    </items>\n                                </menu>\n                            </menuItem>\n                        </items>\n                    </menu>\n                </menuItem>\n                <menuItem title=\"Format\" id=\"375\">\n                    <modifierMask key=\"keyEquivalentModifierMask\"/>\n                    <menu key=\"submenu\" title=\"Format\" id=\"376\">\n                        <items>\n                            <menuItem title=\"Font\" id=\"377\">\n                                <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                <menu key=\"submenu\" title=\"Font\" systemMenu=\"font\" id=\"388\">\n                                    <items>\n                                        <menuItem title=\"Show Fonts\" keyEquivalent=\"t\" id=\"389\">\n                                            <connections>\n                                                <action selector=\"orderFrontFontPanel:\" target=\"420\" id=\"424\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem title=\"Bold\" tag=\"2\" keyEquivalent=\"b\" id=\"390\">\n                                            <connections>\n                                                <action selector=\"addFontTrait:\" target=\"420\" id=\"421\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem title=\"Italic\" tag=\"1\" keyEquivalent=\"i\" id=\"391\">\n                                            <connections>\n                                                <action selector=\"addFontTrait:\" target=\"420\" id=\"422\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem title=\"Underline\" keyEquivalent=\"u\" id=\"392\">\n                                            <connections>\n                                                <action selector=\"underline:\" target=\"-1\" id=\"432\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem isSeparatorItem=\"YES\" id=\"393\"/>\n                                        <menuItem title=\"Bigger\" tag=\"3\" keyEquivalent=\"+\" id=\"394\">\n                                            <connections>\n                                                <action selector=\"modifyFont:\" target=\"420\" id=\"425\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem title=\"Smaller\" tag=\"4\" keyEquivalent=\"-\" id=\"395\">\n                                            <connections>\n                                                <action selector=\"modifyFont:\" target=\"420\" id=\"423\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem isSeparatorItem=\"YES\" id=\"396\"/>\n                                        <menuItem title=\"Kern\" id=\"397\">\n                                            <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                            <menu key=\"submenu\" title=\"Kern\" id=\"415\">\n                                                <items>\n                                                    <menuItem title=\"Use Default\" id=\"416\">\n                                                        <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                                        <connections>\n                                                            <action selector=\"useStandardKerning:\" target=\"-1\" id=\"438\"/>\n                                                        </connections>\n                                                    </menuItem>\n                                                    <menuItem title=\"Use None\" id=\"417\">\n                                                        <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                                        <connections>\n                                                            <action selector=\"turnOffKerning:\" target=\"-1\" id=\"441\"/>\n                                                        </connections>\n                                                    </menuItem>\n                                                    <menuItem title=\"Tighten\" id=\"418\">\n                                                        <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                                        <connections>\n                                                            <action selector=\"tightenKerning:\" target=\"-1\" id=\"431\"/>\n                                                        </connections>\n                                                    </menuItem>\n                                                    <menuItem title=\"Loosen\" id=\"419\">\n                                                        <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                                        <connections>\n                                                            <action selector=\"loosenKerning:\" target=\"-1\" id=\"435\"/>\n                                                        </connections>\n                                                    </menuItem>\n                                                </items>\n                                            </menu>\n                                        </menuItem>\n                                        <menuItem title=\"Ligature\" id=\"398\">\n                                            <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                            <menu key=\"submenu\" title=\"Ligature\" id=\"411\">\n                                                <items>\n                                                    <menuItem title=\"Use Default\" id=\"412\">\n                                                        <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                                        <connections>\n                                                            <action selector=\"useStandardLigatures:\" target=\"-1\" id=\"439\"/>\n                                                        </connections>\n                                                    </menuItem>\n                                                    <menuItem title=\"Use None\" id=\"413\">\n                                                        <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                                        <connections>\n                                                            <action selector=\"turnOffLigatures:\" target=\"-1\" id=\"440\"/>\n                                                        </connections>\n                                                    </menuItem>\n                                                    <menuItem title=\"Use All\" id=\"414\">\n                                                        <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                                        <connections>\n                                                            <action selector=\"useAllLigatures:\" target=\"-1\" id=\"434\"/>\n                                                        </connections>\n                                                    </menuItem>\n                                                </items>\n                                            </menu>\n                                        </menuItem>\n                                        <menuItem title=\"Baseline\" id=\"399\">\n                                            <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                            <menu key=\"submenu\" title=\"Baseline\" id=\"405\">\n                                                <items>\n                                                    <menuItem title=\"Use Default\" id=\"406\">\n                                                        <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                                        <connections>\n                                                            <action selector=\"unscript:\" target=\"-1\" id=\"437\"/>\n                                                        </connections>\n                                                    </menuItem>\n                                                    <menuItem title=\"Superscript\" id=\"407\">\n                                                        <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                                        <connections>\n                                                            <action selector=\"superscript:\" target=\"-1\" id=\"430\"/>\n                                                        </connections>\n                                                    </menuItem>\n                                                    <menuItem title=\"Subscript\" id=\"408\">\n                                                        <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                                        <connections>\n                                                            <action selector=\"subscript:\" target=\"-1\" id=\"429\"/>\n                                                        </connections>\n                                                    </menuItem>\n                                                    <menuItem title=\"Raise\" id=\"409\">\n                                                        <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                                        <connections>\n                                                            <action selector=\"raiseBaseline:\" target=\"-1\" id=\"426\"/>\n                                                        </connections>\n                                                    </menuItem>\n                                                    <menuItem title=\"Lower\" id=\"410\">\n                                                        <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                                        <connections>\n                                                            <action selector=\"lowerBaseline:\" target=\"-1\" id=\"427\"/>\n                                                        </connections>\n                                                    </menuItem>\n                                                </items>\n                                            </menu>\n                                        </menuItem>\n                                        <menuItem isSeparatorItem=\"YES\" id=\"400\"/>\n                                        <menuItem title=\"Show Colors\" keyEquivalent=\"C\" id=\"401\">\n                                            <connections>\n                                                <action selector=\"orderFrontColorPanel:\" target=\"-1\" id=\"433\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem isSeparatorItem=\"YES\" id=\"402\"/>\n                                        <menuItem title=\"Copy Style\" keyEquivalent=\"c\" id=\"403\">\n                                            <modifierMask key=\"keyEquivalentModifierMask\" option=\"YES\" command=\"YES\"/>\n                                            <connections>\n                                                <action selector=\"copyFont:\" target=\"-1\" id=\"428\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem title=\"Paste Style\" keyEquivalent=\"v\" id=\"404\">\n                                            <modifierMask key=\"keyEquivalentModifierMask\" option=\"YES\" command=\"YES\"/>\n                                            <connections>\n                                                <action selector=\"pasteFont:\" target=\"-1\" id=\"436\"/>\n                                            </connections>\n                                        </menuItem>\n                                    </items>\n                                </menu>\n                            </menuItem>\n                            <menuItem title=\"Text\" id=\"496\">\n                                <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                <menu key=\"submenu\" title=\"Text\" id=\"497\">\n                                    <items>\n                                        <menuItem title=\"Align Left\" keyEquivalent=\"{\" id=\"498\">\n                                            <connections>\n                                                <action selector=\"alignLeft:\" target=\"-1\" id=\"524\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem title=\"Center\" keyEquivalent=\"|\" id=\"499\">\n                                            <connections>\n                                                <action selector=\"alignCenter:\" target=\"-1\" id=\"518\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem title=\"Justify\" id=\"500\">\n                                            <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                            <connections>\n                                                <action selector=\"alignJustified:\" target=\"-1\" id=\"523\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem title=\"Align Right\" keyEquivalent=\"}\" id=\"501\">\n                                            <connections>\n                                                <action selector=\"alignRight:\" target=\"-1\" id=\"521\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem isSeparatorItem=\"YES\" id=\"502\"/>\n                                        <menuItem title=\"Writing Direction\" id=\"503\">\n                                            <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                            <menu key=\"submenu\" title=\"Writing Direction\" id=\"508\">\n                                                <items>\n                                                    <menuItem title=\"Paragraph\" enabled=\"NO\" id=\"509\">\n                                                        <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                                    </menuItem>\n                                                    <menuItem id=\"510\">\n                                                        <string key=\"title\">\tDefault</string>\n                                                        <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                                        <connections>\n                                                            <action selector=\"makeBaseWritingDirectionNatural:\" target=\"-1\" id=\"525\"/>\n                                                        </connections>\n                                                    </menuItem>\n                                                    <menuItem id=\"511\">\n                                                        <string key=\"title\">\tLeft to Right</string>\n                                                        <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                                        <connections>\n                                                            <action selector=\"makeBaseWritingDirectionLeftToRight:\" target=\"-1\" id=\"526\"/>\n                                                        </connections>\n                                                    </menuItem>\n                                                    <menuItem id=\"512\">\n                                                        <string key=\"title\">\tRight to Left</string>\n                                                        <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                                        <connections>\n                                                            <action selector=\"makeBaseWritingDirectionRightToLeft:\" target=\"-1\" id=\"527\"/>\n                                                        </connections>\n                                                    </menuItem>\n                                                    <menuItem isSeparatorItem=\"YES\" id=\"513\"/>\n                                                    <menuItem title=\"Selection\" enabled=\"NO\" id=\"514\">\n                                                        <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                                    </menuItem>\n                                                    <menuItem id=\"515\">\n                                                        <string key=\"title\">\tDefault</string>\n                                                        <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                                        <connections>\n                                                            <action selector=\"makeTextWritingDirectionNatural:\" target=\"-1\" id=\"528\"/>\n                                                        </connections>\n                                                    </menuItem>\n                                                    <menuItem id=\"516\">\n                                                        <string key=\"title\">\tLeft to Right</string>\n                                                        <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                                        <connections>\n                                                            <action selector=\"makeTextWritingDirectionLeftToRight:\" target=\"-1\" id=\"529\"/>\n                                                        </connections>\n                                                    </menuItem>\n                                                    <menuItem id=\"517\">\n                                                        <string key=\"title\">\tRight to Left</string>\n                                                        <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                                        <connections>\n                                                            <action selector=\"makeTextWritingDirectionRightToLeft:\" target=\"-1\" id=\"530\"/>\n                                                        </connections>\n                                                    </menuItem>\n                                                </items>\n                                            </menu>\n                                        </menuItem>\n                                        <menuItem isSeparatorItem=\"YES\" id=\"504\"/>\n                                        <menuItem title=\"Show Ruler\" id=\"505\">\n                                            <modifierMask key=\"keyEquivalentModifierMask\"/>\n                                            <connections>\n                                                <action selector=\"toggleRuler:\" target=\"-1\" id=\"520\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem title=\"Copy Ruler\" keyEquivalent=\"c\" id=\"506\">\n                                            <modifierMask key=\"keyEquivalentModifierMask\" control=\"YES\" command=\"YES\"/>\n                                            <connections>\n                                                <action selector=\"copyRuler:\" target=\"-1\" id=\"522\"/>\n                                            </connections>\n                                        </menuItem>\n                                        <menuItem title=\"Paste Ruler\" keyEquivalent=\"v\" id=\"507\">\n                                            <modifierMask key=\"keyEquivalentModifierMask\" control=\"YES\" command=\"YES\"/>\n                                            <connections>\n                                                <action selector=\"pasteRuler:\" target=\"-1\" id=\"519\"/>\n                                            </connections>\n                                        </menuItem>\n                                    </items>\n                                </menu>\n                            </menuItem>\n                        </items>\n                    </menu>\n                </menuItem>\n                <menuItem title=\"View\" id=\"295\">\n                    <menu key=\"submenu\" title=\"View\" id=\"296\">\n                        <items>\n                            <menuItem title=\"Show Toolbar\" keyEquivalent=\"t\" id=\"297\">\n                                <modifierMask key=\"keyEquivalentModifierMask\" option=\"YES\" command=\"YES\"/>\n                                <connections>\n                                    <action selector=\"toggleToolbarShown:\" target=\"-1\" id=\"366\"/>\n                                </connections>\n                            </menuItem>\n                            <menuItem title=\"Customize Toolbar…\" id=\"298\">\n                                <connections>\n                                    <action selector=\"runToolbarCustomizationPalette:\" target=\"-1\" id=\"365\"/>\n                                </connections>\n                            </menuItem>\n                        </items>\n                    </menu>\n                </menuItem>\n                <menuItem title=\"Window\" id=\"19\">\n                    <menu key=\"submenu\" title=\"Window\" systemMenu=\"window\" id=\"24\">\n                        <items>\n                            <menuItem title=\"Minimize\" keyEquivalent=\"m\" id=\"23\">\n                                <connections>\n                                    <action selector=\"performMiniaturize:\" target=\"-1\" id=\"37\"/>\n                                </connections>\n                            </menuItem>\n                            <menuItem title=\"Zoom\" id=\"239\">\n                                <connections>\n                                    <action selector=\"performZoom:\" target=\"-1\" id=\"240\"/>\n                                </connections>\n                            </menuItem>\n                            <menuItem isSeparatorItem=\"YES\" id=\"92\">\n                                <modifierMask key=\"keyEquivalentModifierMask\" command=\"YES\"/>\n                            </menuItem>\n                            <menuItem title=\"Bring All to Front\" id=\"5\">\n                                <connections>\n                                    <action selector=\"arrangeInFront:\" target=\"-1\" id=\"39\"/>\n                                </connections>\n                            </menuItem>\n                        </items>\n                    </menu>\n                </menuItem>\n                <menuItem title=\"Help\" id=\"490\">\n                    <modifierMask key=\"keyEquivalentModifierMask\"/>\n                    <menu key=\"submenu\" title=\"Help\" systemMenu=\"help\" id=\"491\">\n                        <items>\n                            <menuItem title=\"PopoverSampleApp Help\" keyEquivalent=\"?\" id=\"492\">\n                                <connections>\n                                    <action selector=\"showHelp:\" target=\"-1\" id=\"493\"/>\n                                </connections>\n                            </menuItem>\n                        </items>\n                    </menu>\n                </menuItem>\n            </items>\n        </menu>\n        <window title=\"PopoverSampleApp\" allowsToolTipsWhenApplicationIsInactive=\"NO\" autorecalculatesKeyViewLoop=\"NO\" releasedWhenClosed=\"NO\" animationBehavior=\"default\" id=\"371\" customClass=\"INPopoverParentWindow\">\n            <windowStyleMask key=\"styleMask\" titled=\"YES\" closable=\"YES\" miniaturizable=\"YES\"/>\n            <windowPositionMask key=\"initialPositionMask\" leftStrut=\"YES\" rightStrut=\"YES\" topStrut=\"YES\" bottomStrut=\"YES\"/>\n            <rect key=\"contentRect\" x=\"335\" y=\"390\" width=\"373\" height=\"185\"/>\n            <rect key=\"screenRect\" x=\"0.0\" y=\"0.0\" width=\"1680\" height=\"1028\"/>\n            <view key=\"contentView\" id=\"372\">\n                <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"373\" height=\"185\"/>\n                <autoresizingMask key=\"autoresizingMask\"/>\n                <subviews>\n                    <colorWell id=\"533\" customClass=\"AlphaColorWell\">\n                        <rect key=\"frame\" x=\"132\" y=\"145\" width=\"44\" height=\"23\"/>\n                        <autoresizingMask key=\"autoresizingMask\" flexibleMaxX=\"YES\" flexibleMinY=\"YES\"/>\n                        <color key=\"color\" red=\"0.05813049898\" green=\"0.055541899059999997\" blue=\"1\" alpha=\"1\" colorSpace=\"calibratedRGB\"/>\n                        <connections>\n                            <binding destination=\"494\" name=\"value\" keyPath=\"popoverController.color\" id=\"559\"/>\n                        </connections>\n                    </colorWell>\n                    <colorWell id=\"534\" customClass=\"AlphaColorWell\">\n                        <rect key=\"frame\" x=\"132\" y=\"114\" width=\"44\" height=\"23\"/>\n                        <autoresizingMask key=\"autoresizingMask\" flexibleMaxX=\"YES\" flexibleMinY=\"YES\"/>\n                        <color key=\"color\" red=\"0.05813049898\" green=\"0.055541899059999997\" blue=\"1\" alpha=\"1\" colorSpace=\"calibratedRGB\"/>\n                        <connections>\n                            <binding destination=\"494\" name=\"value\" keyPath=\"popoverController.borderColor\" id=\"563\"/>\n                        </connections>\n                    </colorWell>\n                    <textField verticalHuggingPriority=\"750\" id=\"538\">\n                        <rect key=\"frame\" x=\"17\" y=\"148\" width=\"97\" height=\"17\"/>\n                        <autoresizingMask key=\"autoresizingMask\" flexibleMaxX=\"YES\" flexibleMinY=\"YES\"/>\n                        <textFieldCell key=\"cell\" scrollable=\"YES\" lineBreakMode=\"clipping\" sendsActionOnEndEditing=\"YES\" title=\"Popover Color:\" id=\"539\">\n                            <font key=\"font\" metaFont=\"system\"/>\n                            <color key=\"textColor\" name=\"controlTextColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                            <color key=\"backgroundColor\" name=\"controlColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                        </textFieldCell>\n                    </textField>\n                    <textField verticalHuggingPriority=\"750\" id=\"540\">\n                        <rect key=\"frame\" x=\"25\" y=\"117\" width=\"97\" height=\"17\"/>\n                        <autoresizingMask key=\"autoresizingMask\" flexibleMaxX=\"YES\" flexibleMinY=\"YES\"/>\n                        <textFieldCell key=\"cell\" scrollable=\"YES\" lineBreakMode=\"clipping\" sendsActionOnEndEditing=\"YES\" title=\"Border Color:\" id=\"541\">\n                            <font key=\"font\" metaFont=\"system\"/>\n                            <color key=\"textColor\" name=\"controlTextColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                            <color key=\"backgroundColor\" name=\"controlColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                        </textFieldCell>\n                    </textField>\n                    <textField verticalHuggingPriority=\"750\" id=\"552\">\n                        <rect key=\"frame\" x=\"24\" y=\"87\" width=\"97\" height=\"17\"/>\n                        <autoresizingMask key=\"autoresizingMask\" flexibleMaxX=\"YES\" flexibleMinY=\"YES\"/>\n                        <textFieldCell key=\"cell\" scrollable=\"YES\" lineBreakMode=\"clipping\" sendsActionOnEndEditing=\"YES\" title=\"Border Width:\" id=\"553\">\n                            <font key=\"font\" metaFont=\"system\"/>\n                            <color key=\"textColor\" name=\"controlTextColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                            <color key=\"backgroundColor\" name=\"controlColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                        </textFieldCell>\n                    </textField>\n                    <button verticalHuggingPriority=\"750\" id=\"554\">\n                        <rect key=\"frame\" x=\"220\" y=\"109\" width=\"139\" height=\"32\"/>\n                        <autoresizingMask key=\"autoresizingMask\" flexibleMaxX=\"YES\" flexibleMinY=\"YES\"/>\n                        <buttonCell key=\"cell\" type=\"push\" title=\"Toggle Popover\" bezelStyle=\"rounded\" alignment=\"center\" borderStyle=\"border\" imageScaling=\"proportionallyDown\" inset=\"2\" id=\"555\">\n                            <behavior key=\"behavior\" pushIn=\"YES\" lightByBackground=\"YES\" lightByGray=\"YES\"/>\n                            <font key=\"font\" metaFont=\"system\"/>\n                        </buttonCell>\n                        <connections>\n                            <action selector=\"togglePopover:\" target=\"494\" id=\"556\"/>\n                        </connections>\n                    </button>\n                    <textField verticalHuggingPriority=\"750\" id=\"567\">\n                        <rect key=\"frame\" x=\"132\" y=\"82\" width=\"44\" height=\"22\"/>\n                        <autoresizingMask key=\"autoresizingMask\" flexibleMaxX=\"YES\" flexibleMinY=\"YES\"/>\n                        <textFieldCell key=\"cell\" scrollable=\"YES\" lineBreakMode=\"clipping\" selectable=\"YES\" editable=\"YES\" continuous=\"YES\" sendsActionOnEndEditing=\"YES\" state=\"on\" borderStyle=\"bezel\" drawsBackground=\"YES\" id=\"568\">\n                            <numberFormatter key=\"formatter\" formatterBehavior=\"default10_4\" positiveFormat=\"#,##0.###\" negativeFormat=\"#,##0.###\" numberStyle=\"decimal\" minimumIntegerDigits=\"1\" maximumIntegerDigits=\"309\" minimumFractionDigits=\"0\" maximumFractionDigits=\"3\" id=\"569\">\n                                <real key=\"roundingIncrement\" value=\"0.0\"/>\n                                <metadata>\n                                    <bool key=\"localizesFormat\" value=\"YES\"/>\n                                </metadata>\n                            </numberFormatter>\n                            <font key=\"font\" metaFont=\"system\"/>\n                            <color key=\"textColor\" name=\"textColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                            <color key=\"backgroundColor\" name=\"textBackgroundColor\" catalog=\"System\" colorSpace=\"catalog\"/>\n                        </textFieldCell>\n                        <connections>\n                            <binding destination=\"494\" name=\"value\" keyPath=\"popoverController.borderWidth\" id=\"573\"/>\n                        </connections>\n                    </textField>\n                    <button id=\"574\">\n                        <rect key=\"frame\" x=\"18\" y=\"38\" width=\"232\" height=\"18\"/>\n                        <autoresizingMask key=\"autoresizingMask\" flexibleMaxX=\"YES\" flexibleMinY=\"YES\"/>\n                        <buttonCell key=\"cell\" type=\"check\" title=\"Closes when popover resigns key\" bezelStyle=\"regularSquare\" imagePosition=\"left\" alignment=\"left\" state=\"on\" inset=\"2\" id=\"575\">\n                            <behavior key=\"behavior\" changeContents=\"YES\" doesNotDimImage=\"YES\" lightByContents=\"YES\"/>\n                            <font key=\"font\" metaFont=\"system\"/>\n                        </buttonCell>\n                        <connections>\n                            <binding destination=\"494\" name=\"value\" keyPath=\"popoverController.closesWhenPopoverResignsKey\" id=\"577\"/>\n                        </connections>\n                    </button>\n                    <button id=\"578\">\n                        <rect key=\"frame\" x=\"18\" y=\"18\" width=\"287\" height=\"18\"/>\n                        <autoresizingMask key=\"autoresizingMask\" flexibleMaxX=\"YES\" flexibleMinY=\"YES\"/>\n                        <buttonCell key=\"cell\" type=\"check\" title=\"Closes when application becomes inactive\" bezelStyle=\"regularSquare\" imagePosition=\"left\" alignment=\"left\" state=\"on\" inset=\"2\" id=\"579\">\n                            <behavior key=\"behavior\" changeContents=\"YES\" doesNotDimImage=\"YES\" lightByContents=\"YES\"/>\n                            <font key=\"font\" metaFont=\"system\"/>\n                        </buttonCell>\n                        <connections>\n                            <binding destination=\"494\" name=\"value\" keyPath=\"popoverController.closesWhenApplicationBecomesInactive\" id=\"581\"/>\n                        </connections>\n                    </button>\n                    <button id=\"582\">\n                        <rect key=\"frame\" x=\"18\" y=\"58\" width=\"81\" height=\"18\"/>\n                        <autoresizingMask key=\"autoresizingMask\" flexibleMaxX=\"YES\" flexibleMinY=\"YES\"/>\n                        <buttonCell key=\"cell\" type=\"check\" title=\"Animates\" bezelStyle=\"regularSquare\" imagePosition=\"left\" alignment=\"left\" state=\"on\" inset=\"2\" id=\"583\">\n                            <behavior key=\"behavior\" changeContents=\"YES\" doesNotDimImage=\"YES\" lightByContents=\"YES\"/>\n                            <font key=\"font\" metaFont=\"system\"/>\n                        </buttonCell>\n                        <connections>\n                            <binding destination=\"494\" name=\"value\" keyPath=\"popoverController.animates\" id=\"585\"/>\n                        </connections>\n                    </button>\n                </subviews>\n            </view>\n        </window>\n        <customObject id=\"494\" customClass=\"PopoverSampleAppAppDelegate\">\n            <connections>\n                <outlet property=\"window\" destination=\"371\" id=\"532\"/>\n            </connections>\n        </customObject>\n        <customObject id=\"420\" customClass=\"NSFontManager\"/>\n    </objects>\n</document>"
  },
  {
    "path": "PopoverSampleApp/PopoverSampleApp/main.m",
    "content": "//\n//  main.m\n//  PopoverSampleApp\n//\n//  Created by Indragie Karunaratne on 11-03-02.\n//  Copyright 2011-2014 PCWiz Computer. All rights reserved.\n//\n\n#import <Cocoa/Cocoa.h>\n\nint main(int argc, char *argv[])\n{\n    return NSApplicationMain(argc, (const char **)argv);\n}\n"
  },
  {
    "path": "PopoverSampleApp/PopoverSampleApp.xcodeproj/project.pbxproj",
    "content": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 46;\n\tobjects = {\n\n/* Begin PBXBuildFile section */\n\t\t03657F2B187A09BE00C969BA /* INPopoverController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 03657F28187A09A000C969BA /* INPopoverController.framework */; };\n\t\t03657F2D187A09C900C969BA /* INPopoverController.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = 03657F28187A09A000C969BA /* INPopoverController.framework */; };\n\t\t0391A4FF18822FAA007D32D5 /* AlphaColorWell.m in Sources */ = {isa = PBXBuildFile; fileRef = 0391A4FE18822FAA007D32D5 /* AlphaColorWell.m */; };\n\t\t0393272D131F613D0007496E /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0393272C131F613D0007496E /* Cocoa.framework */; };\n\t\t03932737131F613D0007496E /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 03932735131F613D0007496E /* InfoPlist.strings */; };\n\t\t0393273A131F613D0007496E /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 03932739131F613D0007496E /* main.m */; };\n\t\t0393273D131F613D0007496E /* Credits.rtf in Resources */ = {isa = PBXBuildFile; fileRef = 0393273B131F613D0007496E /* Credits.rtf */; };\n\t\t03932740131F613D0007496E /* PopoverSampleAppAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 0393273F131F613D0007496E /* PopoverSampleAppAppDelegate.m */; };\n\t\t03932743131F613D0007496E /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 03932741131F613D0007496E /* MainMenu.xib */; };\n\t\t0393274C131F61590007496E /* ContentViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 0393274A131F61590007496E /* ContentViewController.m */; };\n\t\t0393274D131F61590007496E /* ContentViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 0393274B131F61590007496E /* ContentViewController.xib */; };\n\t\tBFF06C9116CAAEC100C3D751 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BFF06C9016CAAEC100C3D751 /* QuartzCore.framework */; };\n/* End PBXBuildFile section */\n\n/* Begin PBXContainerItemProxy section */\n\t\t03657F27187A09A000C969BA /* PBXContainerItemProxy */ = {\n\t\t\tisa = PBXContainerItemProxy;\n\t\t\tcontainerPortal = 03657F23187A09A000C969BA /* INPopoverController.xcodeproj */;\n\t\t\tproxyType = 2;\n\t\t\tremoteGlobalIDString = 98BA8937143EA04A006F744E;\n\t\t\tremoteInfo = INPopoverController;\n\t\t};\n\t\t03657F29187A09BA00C969BA /* PBXContainerItemProxy */ = {\n\t\t\tisa = PBXContainerItemProxy;\n\t\t\tcontainerPortal = 03657F23187A09A000C969BA /* INPopoverController.xcodeproj */;\n\t\t\tproxyType = 1;\n\t\t\tremoteGlobalIDString = 98BA8936143EA04A006F744E;\n\t\t\tremoteInfo = INPopoverController;\n\t\t};\n/* End PBXContainerItemProxy section */\n\n/* Begin PBXCopyFilesBuildPhase section */\n\t\t03657F2C187A09C300C969BA /* CopyFiles */ = {\n\t\t\tisa = PBXCopyFilesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tdstPath = \"\";\n\t\t\tdstSubfolderSpec = 10;\n\t\t\tfiles = (\n\t\t\t\t03657F2D187A09C900C969BA /* INPopoverController.framework in CopyFiles */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXCopyFilesBuildPhase section */\n\n/* Begin PBXFileReference section */\n\t\t03657F23187A09A000C969BA /* INPopoverController.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = \"wrapper.pb-project\"; name = INPopoverController.xcodeproj; path = ../../INPopoverController.xcodeproj; sourceTree = \"<group>\"; };\n\t\t0391A4FD18822FAA007D32D5 /* AlphaColorWell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AlphaColorWell.h; sourceTree = \"<group>\"; };\n\t\t0391A4FE18822FAA007D32D5 /* AlphaColorWell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AlphaColorWell.m; sourceTree = \"<group>\"; };\n\t\t03932728131F613D0007496E /* PopoverSampleApp.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = PopoverSampleApp.app; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\t0393272C131F613D0007496E /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; };\n\t\t0393272F131F613D0007496E /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; };\n\t\t03932730131F613D0007496E /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = System/Library/Frameworks/CoreData.framework; sourceTree = SDKROOT; };\n\t\t03932731131F613D0007496E /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };\n\t\t03932734131F613D0007496E /* PopoverSampleApp-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = \"PopoverSampleApp-Info.plist\"; sourceTree = \"<group>\"; };\n\t\t03932736131F613D0007496E /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = \"<group>\"; };\n\t\t03932738131F613D0007496E /* PopoverSampleApp-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = \"PopoverSampleApp-Prefix.pch\"; sourceTree = \"<group>\"; };\n\t\t03932739131F613D0007496E /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = \"<group>\"; };\n\t\t0393273C131F613D0007496E /* en */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = en; path = en.lproj/Credits.rtf; sourceTree = \"<group>\"; };\n\t\t0393273E131F613D0007496E /* PopoverSampleAppAppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PopoverSampleAppAppDelegate.h; sourceTree = \"<group>\"; };\n\t\t0393273F131F613D0007496E /* PopoverSampleAppAppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PopoverSampleAppAppDelegate.m; sourceTree = \"<group>\"; };\n\t\t03932742131F613D0007496E /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/MainMenu.xib; sourceTree = \"<group>\"; };\n\t\t03932749131F61590007496E /* ContentViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ContentViewController.h; sourceTree = \"<group>\"; };\n\t\t0393274A131F61590007496E /* ContentViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ContentViewController.m; sourceTree = \"<group>\"; };\n\t\t0393274B131F61590007496E /* ContentViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ContentViewController.xib; sourceTree = \"<group>\"; };\n\t\tBFF06C9016CAAEC100C3D751 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };\n/* End PBXFileReference section */\n\n/* Begin PBXFrameworksBuildPhase section */\n\t\t03932725131F613D0007496E /* Frameworks */ = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t03657F2B187A09BE00C969BA /* INPopoverController.framework in Frameworks */,\n\t\t\t\tBFF06C9116CAAEC100C3D751 /* QuartzCore.framework in Frameworks */,\n\t\t\t\t0393272D131F613D0007496E /* Cocoa.framework in Frameworks */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXFrameworksBuildPhase section */\n\n/* Begin PBXGroup section */\n\t\t03657F24187A09A000C969BA /* Products */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t03657F28187A09A000C969BA /* INPopoverController.framework */,\n\t\t\t);\n\t\t\tname = Products;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t0393271D131F613D0007496E = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t03932732131F613D0007496E /* PopoverSampleApp */,\n\t\t\t\t0393272B131F613D0007496E /* Frameworks */,\n\t\t\t\t03932729131F613D0007496E /* Products */,\n\t\t\t);\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t03932729131F613D0007496E /* Products */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t03932728131F613D0007496E /* PopoverSampleApp.app */,\n\t\t\t);\n\t\t\tname = Products;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t0393272B131F613D0007496E /* Frameworks */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tBFF06C9016CAAEC100C3D751 /* QuartzCore.framework */,\n\t\t\t\t0393272C131F613D0007496E /* Cocoa.framework */,\n\t\t\t\t0393272E131F613D0007496E /* Other Frameworks */,\n\t\t\t);\n\t\t\tname = Frameworks;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t0393272E131F613D0007496E /* Other Frameworks */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t0393272F131F613D0007496E /* AppKit.framework */,\n\t\t\t\t03932730131F613D0007496E /* CoreData.framework */,\n\t\t\t\t03932731131F613D0007496E /* Foundation.framework */,\n\t\t\t);\n\t\t\tname = \"Other Frameworks\";\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t03932732131F613D0007496E /* PopoverSampleApp */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t03657F23187A09A000C969BA /* INPopoverController.xcodeproj */,\n\t\t\t\t0393273E131F613D0007496E /* PopoverSampleAppAppDelegate.h */,\n\t\t\t\t0393273F131F613D0007496E /* PopoverSampleAppAppDelegate.m */,\n\t\t\t\t03932749131F61590007496E /* ContentViewController.h */,\n\t\t\t\t0393274A131F61590007496E /* ContentViewController.m */,\n\t\t\t\t0391A4FD18822FAA007D32D5 /* AlphaColorWell.h */,\n\t\t\t\t0391A4FE18822FAA007D32D5 /* AlphaColorWell.m */,\n\t\t\t\t03932741131F613D0007496E /* MainMenu.xib */,\n\t\t\t\t0393274B131F61590007496E /* ContentViewController.xib */,\n\t\t\t\t03932733131F613D0007496E /* Supporting Files */,\n\t\t\t);\n\t\t\tpath = PopoverSampleApp;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t03932733131F613D0007496E /* Supporting Files */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t03932734131F613D0007496E /* PopoverSampleApp-Info.plist */,\n\t\t\t\t03932735131F613D0007496E /* InfoPlist.strings */,\n\t\t\t\t03932738131F613D0007496E /* PopoverSampleApp-Prefix.pch */,\n\t\t\t\t03932739131F613D0007496E /* main.m */,\n\t\t\t\t0393273B131F613D0007496E /* Credits.rtf */,\n\t\t\t);\n\t\t\tname = \"Supporting Files\";\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n/* End PBXGroup section */\n\n/* Begin PBXNativeTarget section */\n\t\t03932727131F613D0007496E /* PopoverSampleApp */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = 03932746131F613D0007496E /* Build configuration list for PBXNativeTarget \"PopoverSampleApp\" */;\n\t\t\tbuildPhases = (\n\t\t\t\t03932724131F613D0007496E /* Sources */,\n\t\t\t\t03932725131F613D0007496E /* Frameworks */,\n\t\t\t\t03932726131F613D0007496E /* Resources */,\n\t\t\t\t03657F2C187A09C300C969BA /* CopyFiles */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t\t03657F2A187A09BA00C969BA /* PBXTargetDependency */,\n\t\t\t);\n\t\t\tname = PopoverSampleApp;\n\t\t\tproductName = PopoverSampleApp;\n\t\t\tproductReference = 03932728131F613D0007496E /* PopoverSampleApp.app */;\n\t\t\tproductType = \"com.apple.product-type.application\";\n\t\t};\n/* End PBXNativeTarget section */\n\n/* Begin PBXProject section */\n\t\t0393271F131F613D0007496E /* Project object */ = {\n\t\t\tisa = PBXProject;\n\t\t\tattributes = {\n\t\t\t\tORGANIZATIONNAME = \"Indragie Karunaratne\";\n\t\t\t};\n\t\t\tbuildConfigurationList = 03932722131F613D0007496E /* Build configuration list for PBXProject \"PopoverSampleApp\" */;\n\t\t\tcompatibilityVersion = \"Xcode 3.2\";\n\t\t\tdevelopmentRegion = English;\n\t\t\thasScannedForEncodings = 0;\n\t\t\tknownRegions = (\n\t\t\t\ten,\n\t\t\t);\n\t\t\tmainGroup = 0393271D131F613D0007496E;\n\t\t\tproductRefGroup = 03932729131F613D0007496E /* Products */;\n\t\t\tprojectDirPath = \"\";\n\t\t\tprojectReferences = (\n\t\t\t\t{\n\t\t\t\t\tProductGroup = 03657F24187A09A000C969BA /* Products */;\n\t\t\t\t\tProjectRef = 03657F23187A09A000C969BA /* INPopoverController.xcodeproj */;\n\t\t\t\t},\n\t\t\t);\n\t\t\tprojectRoot = \"\";\n\t\t\ttargets = (\n\t\t\t\t03932727131F613D0007496E /* PopoverSampleApp */,\n\t\t\t);\n\t\t};\n/* End PBXProject section */\n\n/* Begin PBXReferenceProxy section */\n\t\t03657F28187A09A000C969BA /* INPopoverController.framework */ = {\n\t\t\tisa = PBXReferenceProxy;\n\t\t\tfileType = wrapper.framework;\n\t\t\tpath = INPopoverController.framework;\n\t\t\tremoteRef = 03657F27187A09A000C969BA /* PBXContainerItemProxy */;\n\t\t\tsourceTree = BUILT_PRODUCTS_DIR;\n\t\t};\n/* End PBXReferenceProxy section */\n\n/* Begin PBXResourcesBuildPhase section */\n\t\t03932726131F613D0007496E /* Resources */ = {\n\t\t\tisa = PBXResourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t03932737131F613D0007496E /* InfoPlist.strings in Resources */,\n\t\t\t\t0393273D131F613D0007496E /* Credits.rtf in Resources */,\n\t\t\t\t03932743131F613D0007496E /* MainMenu.xib in Resources */,\n\t\t\t\t0393274D131F61590007496E /* ContentViewController.xib in Resources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXResourcesBuildPhase section */\n\n/* Begin PBXSourcesBuildPhase section */\n\t\t03932724131F613D0007496E /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t0391A4FF18822FAA007D32D5 /* AlphaColorWell.m in Sources */,\n\t\t\t\t0393273A131F613D0007496E /* main.m in Sources */,\n\t\t\t\t03932740131F613D0007496E /* PopoverSampleAppAppDelegate.m in Sources */,\n\t\t\t\t0393274C131F61590007496E /* ContentViewController.m in Sources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXSourcesBuildPhase section */\n\n/* Begin PBXTargetDependency section */\n\t\t03657F2A187A09BA00C969BA /* PBXTargetDependency */ = {\n\t\t\tisa = PBXTargetDependency;\n\t\t\tname = INPopoverController;\n\t\t\ttargetProxy = 03657F29187A09BA00C969BA /* PBXContainerItemProxy */;\n\t\t};\n/* End PBXTargetDependency section */\n\n/* Begin PBXVariantGroup section */\n\t\t03932735131F613D0007496E /* InfoPlist.strings */ = {\n\t\t\tisa = PBXVariantGroup;\n\t\t\tchildren = (\n\t\t\t\t03932736131F613D0007496E /* en */,\n\t\t\t);\n\t\t\tname = InfoPlist.strings;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t0393273B131F613D0007496E /* Credits.rtf */ = {\n\t\t\tisa = PBXVariantGroup;\n\t\t\tchildren = (\n\t\t\t\t0393273C131F613D0007496E /* en */,\n\t\t\t);\n\t\t\tname = Credits.rtf;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t03932741131F613D0007496E /* MainMenu.xib */ = {\n\t\t\tisa = PBXVariantGroup;\n\t\t\tchildren = (\n\t\t\t\t03932742131F613D0007496E /* en */,\n\t\t\t);\n\t\t\tname = MainMenu.xib;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n/* End PBXVariantGroup section */\n\n/* Begin XCBuildConfiguration section */\n\t\t03932744131F613D0007496E /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tCLANG_ENABLE_OBJC_ARC = YES;\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu99;\n\t\t\t\tGCC_OPTIMIZATION_LEVEL = 0;\n\t\t\t\tGCC_PREPROCESSOR_DEFINITIONS = DEBUG;\n\t\t\t\tGCC_SYMBOLS_PRIVATE_EXTERN = NO;\n\t\t\t\tGCC_VERSION = com.apple.compilers.llvm.clang.1_0;\n\t\t\t\tGCC_WARN_64_TO_32_BIT_CONVERSION = YES;\n\t\t\t\tGCC_WARN_ABOUT_RETURN_TYPE = YES;\n\t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n\t\t\t\tMACOSX_DEPLOYMENT_TARGET = 10.7;\n\t\t\t\tONLY_ACTIVE_ARCH = YES;\n\t\t\t\tSDKROOT = macosx;\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\t03932745131F613D0007496E /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tCLANG_ENABLE_OBJC_ARC = YES;\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu99;\n\t\t\t\tGCC_VERSION = com.apple.compilers.llvm.clang.1_0;\n\t\t\t\tGCC_WARN_64_TO_32_BIT_CONVERSION = YES;\n\t\t\t\tGCC_WARN_ABOUT_RETURN_TYPE = YES;\n\t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n\t\t\t\tMACOSX_DEPLOYMENT_TARGET = 10.7;\n\t\t\t\tSDKROOT = macosx;\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\t03932747131F613D0007496E /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tARCHS = \"$(ARCHS_STANDARD_64_BIT)\";\n\t\t\t\tCLANG_ENABLE_OBJC_ARC = YES;\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tGCC_DYNAMIC_NO_PIC = NO;\n\t\t\t\tGCC_ENABLE_OBJC_EXCEPTIONS = YES;\n\t\t\t\tGCC_PRECOMPILE_PREFIX_HEADER = YES;\n\t\t\t\tGCC_PREFIX_HEADER = \"PopoverSampleApp/PopoverSampleApp-Prefix.pch\";\n\t\t\t\tINFOPLIST_FILE = \"PopoverSampleApp/PopoverSampleApp-Info.plist\";\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"@loader_path/../Frameworks\";\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tWRAPPER_EXTENSION = app;\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\t03932748131F613D0007496E /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tARCHS = \"$(ARCHS_STANDARD_64_BIT)\";\n\t\t\t\tCLANG_ENABLE_OBJC_ARC = YES;\n\t\t\t\tCOPY_PHASE_STRIP = YES;\n\t\t\t\tDEBUG_INFORMATION_FORMAT = \"dwarf-with-dsym\";\n\t\t\t\tGCC_ENABLE_OBJC_EXCEPTIONS = YES;\n\t\t\t\tGCC_PRECOMPILE_PREFIX_HEADER = YES;\n\t\t\t\tGCC_PREFIX_HEADER = \"PopoverSampleApp/PopoverSampleApp-Prefix.pch\";\n\t\t\t\tINFOPLIST_FILE = \"PopoverSampleApp/PopoverSampleApp-Info.plist\";\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"@loader_path/../Frameworks\";\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tWRAPPER_EXTENSION = app;\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n/* End XCBuildConfiguration section */\n\n/* Begin XCConfigurationList section */\n\t\t03932722131F613D0007496E /* Build configuration list for PBXProject \"PopoverSampleApp\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\t03932744131F613D0007496E /* Debug */,\n\t\t\t\t03932745131F613D0007496E /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n\t\t03932746131F613D0007496E /* Build configuration list for PBXNativeTarget \"PopoverSampleApp\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\t03932747131F613D0007496E /* Debug */,\n\t\t\t\t03932748131F613D0007496E /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n/* End XCConfigurationList section */\n\t};\n\trootObject = 0393271F131F613D0007496E /* Project object */;\n}\n"
  },
  {
    "path": "PopoverSampleApp/PopoverSampleApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n   version = \"1.0\">\n   <FileRef\n      location = \"self:PopoverSampleApp.xcodeproj\">\n   </FileRef>\n</Workspace>\n"
  },
  {
    "path": "README.md",
    "content": "## INPopoverController\n### Open source OS X popover implementation\n\nOS X 10.7 introduced the `NSPopover` class for displaying popover windows. That said, developers who want to support older versions of OS X (like me) are unable to use that API without breaking backward compatibility. So I developed this class that will allow developers to easily add popovers into their applications and also have it be compatible with older versions of OS X. I've included a sample app to demonstrate how to use INPopoverController:\n\n![INPopoverController](https://raw.github.com/indragiek/INPopoverController/master/screenshot.png)\n\n**Features:**\n\n- Customizable color, border color, border width, arrow size, and corner radius.\n- Automatically calculates the best arrow direction depending on screen space and popover position\n- Displays content from a regular `NSViewController` (can be loaded from a NIB)\n- Animation for when the popover appears/disappears and when the content size is changed\n- Popover can anchor to a view\n- Customizable popover behaviour (close when key status is lost, when application resigns active)\n\n### How to use it\n\nThe headers are well documented (and I've also included a sample app) so it should be simple to figure out how to use it. There are `color`, `borderColor`, and `borderWidth` properties to customize the appearance of the popover. There are also some hard-coded defines in the `INPopoverControllerDefines.h` file which can be changed to further customize the appearance. The `closesWhenPopoverResignsKey` and `closesWhenApplicationBecomesInactive` properties can be used to control the behaviour of the popover. Everything else should be pretty much self explanatory. \n\nIf you want to completely customize the drawing of the popover, you can edit the `INPopoverWindowFrame.m` file to run your own drawing code instead of the default. Make sure that you're taking the `arrowDirection` property into account when drawing. \n\n**Create a new issue if you have trouble getting it working, or if you want to request new features**\n\n### Contact\n\n* Indragie Karunaratne\n* [@indragie](http://twitter.com/indragie)\n* [http://indragie.com](http://indragie.com)\n\n### Licensing\n\nINPopoverController is licensed under the [BSD license](http://www.opensource.org/licenses/bsd-license.php)."
  }
]