├── en.lproj └── InfoPlist.strings ├── Example ├── en.lproj │ ├── InfoPlist.strings │ └── Credits.rtf ├── Example-Prefix.pch ├── Example-main.m ├── Classes │ ├── ExampleAppDelegate.h │ └── ExampleAppDelegate.m ├── Example.xcodeproj │ ├── xcuserdata │ │ └── jdrake.xcuserdatad │ │ │ └── xcschemes │ │ │ ├── xcschememanagement.plist │ │ │ └── Example.xcscheme │ ├── jdrake.pbxuser │ ├── project.pbxproj │ └── jdrake.mode1v3 └── Example-Info.plist ├── OrganicUI-Prefix.pch ├── Classes ├── ORGameWindow.h ├── ORGameWindow.m ├── NSColor+CGColor.h ├── CATextLayer+autosize.h ├── OrganicUI.h ├── ORController.h ├── NSBezierPath+JDAdditions.h ├── ORTransition.h ├── NSColor+CGColor.m ├── ORTitleBar.h ├── ORNavigator.h ├── ORWindow.h ├── ORController.m ├── ORTransition.m ├── CATextLayer+autosize.m ├── ORWindow.m ├── NSBezierPath+JDAdditions.m ├── ORNavigator.m └── ORTitleBar.m ├── OrganicUI.xcodeproj ├── xcuserdata │ └── jdrake.xcuserdatad │ │ └── xcschemes │ │ ├── xcschememanagement.plist │ │ └── OrganicUI.xcscheme ├── jdrake.pbxuser ├── project.pbxproj └── jdrake.mode1v3 ├── OrganicUI-Info.plist └── Readme.markdown /en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /Example/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /OrganicUI-Prefix.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Prefix header for all source files of the 'OrganicUI' target in the 'OrganicUI' project 3 | // 4 | 5 | #ifdef __OBJC__ 6 | #import 7 | #endif 8 | -------------------------------------------------------------------------------- /Example/Example-Prefix.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Prefix header for all source files of the 'Quadratus' target in the 'Quadratus' project 3 | // 4 | 5 | #ifdef __OBJC__ 6 | #import 7 | #endif 8 | -------------------------------------------------------------------------------- /Classes/ORGameWindow.h: -------------------------------------------------------------------------------- 1 | // 2 | // ORGameWindow.h 3 | // OrganicUI 4 | // 5 | // Created by Jeffrey Drake on 10-12-24. 6 | // Copyright 2010 N/A. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | 12 | @interface ORGameWindow : NSWindow { 13 | 14 | } 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /Example/Example-main.m: -------------------------------------------------------------------------------- 1 | // 2 | // Quadratus-main.m 3 | // Quadratus 4 | // 5 | // Created by Jeffrey Drake on 10-12-19. 6 | // Copyright 2010 N/A. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | int main(int argc, char *argv[]) { 12 | return NSApplicationMain(argc, (const char **) argv); 13 | } 14 | -------------------------------------------------------------------------------- /Classes/ORGameWindow.m: -------------------------------------------------------------------------------- 1 | // 2 | // ORGameWindow.m 3 | // OrganicUI 4 | // 5 | // Created by Jeffrey Drake on 10-12-24. 6 | // Copyright 2010 N/A. All rights reserved. 7 | // 8 | 9 | #import "ORGameWindow.h" 10 | 11 | 12 | @implementation ORGameWindow 13 | 14 | - (BOOL) canBecomeMainWindow 15 | { 16 | return YES; 17 | } 18 | 19 | @end 20 | -------------------------------------------------------------------------------- /Classes/NSColor+CGColor.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSColor+CGColor.h 3 | // OrganicUI 4 | // 5 | // Created by Jeffrey Drake on 10-11-15. 6 | // Copyright 2010 N/A. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | @interface NSColor (CGColor) 13 | 14 | @property (readonly) CGColorRef CGColor; 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /Example/Classes/ExampleAppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // ExampleAppDelegate.h 3 | // OrganicUI 4 | // 5 | // Created by Jeffrey Drake on 10-12-19. 6 | // Copyright 2010 N/A. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ExampleAppDelegate : NSObject { 12 | NSWindow *window; 13 | } 14 | 15 | @property (retain) NSWindow *window; 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /Classes/CATextLayer+autosize.h: -------------------------------------------------------------------------------- 1 | // 2 | // CATextLayer+autosize.h 3 | // OrganicUI 4 | // 5 | // Created by Jeffrey Drake on 10-12-25. 6 | // Copyright 2010 N/A. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | #import 12 | 13 | 14 | @interface CATextLayer (autosize) 15 | 16 | - (void) autosize; 17 | 18 | @end 19 | -------------------------------------------------------------------------------- /Classes/OrganicUI.h: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | 4 | Organic UI 5 | 6 | Some useful classes for my game. 7 | 8 | © 2010 Jeffrey Drake. 9 | 10 | */ 11 | 12 | #import 13 | 14 | #import "ORController.h" 15 | 16 | #import "NSColor+CGColor.h" 17 | 18 | #import "ORTitleBar.h" 19 | 20 | #import "ORWindow.h" 21 | 22 | #import "ORNavigator.h" 23 | 24 | #import "ORGameWindow.h" 25 | 26 | #import "CATextLayer+autosize.h" 27 | 28 | #import "ORTransition.h" -------------------------------------------------------------------------------- /Classes/ORController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ORController.h 3 | // OrganicUI 4 | // 5 | // Created by Jeffrey Drake on 10-12-14. 6 | // Copyright 2010 N/A. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | #import "NSColor+CGColor.h" 12 | 13 | @interface ORController : NSObject { 14 | @private 15 | NSView *view; 16 | } 17 | 18 | @property (retain) NSView *view; 19 | 20 | - (id)initWithSize: (NSSize) size; 21 | + (ORController*) blankControllerWithSize: (NSSize) size; 22 | 23 | @end 24 | -------------------------------------------------------------------------------- /Classes/NSBezierPath+JDAdditions.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSBezierPath+JDAdditions.h 3 | // OrganicUI 4 | // 5 | // Created by Jeffrey Drake on 10-12-21. 6 | // Copyright 2010 N/A. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface NSBezierPath (JDAdditions) 12 | 13 | - (void)cornerToPoint: (NSPoint)p2 radius: (CGFloat)radius; 14 | + (NSBezierPath*) bezierPathRoundedCornersOnLeft: (NSRect) box radius: (CGFloat)r; 15 | + (NSBezierPath*) bezierPathRoundedCornersOnRight: (NSRect) box radius: (CGFloat)r; 16 | 17 | @end -------------------------------------------------------------------------------- /Example/en.lproj/Credits.rtf: -------------------------------------------------------------------------------- 1 | {\rtf0\ansi{\fonttbl\f0\fswiss Helvetica;} 2 | {\colortbl;\red255\green255\blue255;} 3 | \paperw9840\paperh8400 4 | \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 5 | 6 | \f0\b\fs24 \cf0 Engineering: 7 | \b0 \ 8 | Some people\ 9 | \ 10 | 11 | \b Human Interface Design: 12 | \b0 \ 13 | Some other people\ 14 | \ 15 | 16 | \b Testing: 17 | \b0 \ 18 | Hopefully not nobody\ 19 | \ 20 | 21 | \b Documentation: 22 | \b0 \ 23 | Whoever\ 24 | \ 25 | 26 | \b With special thanks to: 27 | \b0 \ 28 | Mom\ 29 | } 30 | -------------------------------------------------------------------------------- /OrganicUI.xcodeproj/xcuserdata/jdrake.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | OrganicUI.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | 8566A60B12BD5C92004FA3C1 16 | 17 | primary 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /Example/Example.xcodeproj/xcuserdata/jdrake.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | Example.xcscheme 8 | 9 | orderHint 10 | 1 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | 8566A64612BDFD5E004FA3C1 16 | 17 | primary 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /Classes/ORTransition.h: -------------------------------------------------------------------------------- 1 | // 2 | // ORTransition.h 3 | // OrganicUI 4 | // 5 | // Created by Jeffrey Drake on 10-12-25. 6 | // Copyright 2010 N/A. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | #import "ORNavigator.h" 12 | 13 | @interface ORTransition : NSObject { 14 | NSString *name; 15 | NSView *toView; 16 | NSView *fromView; 17 | 18 | NSDictionary *transitions; 19 | } 20 | 21 | @property (retain) NSString *name; 22 | @property (assign) NSView *toView; 23 | @property (assign) NSView *fromView; 24 | @property (retain) NSDictionary *transitions; 25 | 26 | + (ORTransition*) transitionNamed: (NSString*) _name; 27 | - (void) performInNavigator: (ORNavigator*) nav; 28 | 29 | @end 30 | -------------------------------------------------------------------------------- /Classes/NSColor+CGColor.m: -------------------------------------------------------------------------------- 1 | // 2 | // NSColor+CGColor.m 3 | // OrganicUI 4 | // 5 | // Created by Jeffrey Drake on 10-11-15. 6 | // Copyright 2010 N/A. All rights reserved. 7 | // 8 | 9 | #import "NSColor+CGColor.h" 10 | 11 | @implementation NSColor (CGColor) 12 | 13 | @dynamic CGColor; 14 | 15 | - (CGColorRef) CGColor 16 | { 17 | CGColorSpaceRef colorspace = [[self colorSpace] CGColorSpace]; 18 | const NSInteger nComponents = [self numberOfComponents]; 19 | 20 | CGFloat components[nComponents]; 21 | 22 | [self getComponents: components]; 23 | 24 | CGColorRef c = CGColorCreate(colorspace, components); 25 | 26 | return (CGColorRef)[(id)c autorelease]; 27 | } 28 | 29 | @end 30 | -------------------------------------------------------------------------------- /Classes/ORTitleBar.h: -------------------------------------------------------------------------------- 1 | // 2 | // ORTitleBar.m 3 | // OrganicUI 4 | // 5 | // Created by Jeffrey Drake on 10-12-17. 6 | // Copyright 2010 N/A. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | 12 | @interface ORTitleBar : NSView { 13 | @private 14 | NSButton *closeButton; 15 | NSButton *minimizeButton; 16 | NSButton *zoomButton; 17 | NSImage *backgroundPattern; 18 | NSBezierPath *outline; 19 | NSTrackingArea *buttonArea; 20 | } 21 | 22 | @property (retain) NSButton *closeButton; 23 | @property (retain) NSButton *minimizeButton; 24 | @property (retain) NSButton *zoomButton; 25 | @property (retain) NSImage *backgroundPattern; 26 | @property (retain) NSBezierPath *outline; 27 | @property (retain) NSTrackingArea *buttonArea; 28 | 29 | - (void) updateOutline; 30 | 31 | @end 32 | -------------------------------------------------------------------------------- /Example/Classes/ExampleAppDelegate.m: -------------------------------------------------------------------------------- 1 | // 2 | // ExampleAppDelegate.h 3 | // OrganicUI 4 | // 5 | // Created by Jeffrey Drake on 10-12-19. 6 | // Copyright 2010 N/A. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | #import "ExampleAppDelegate.h" 12 | 13 | 14 | 15 | @implementation ExampleAppDelegate 16 | 17 | @synthesize window; 18 | 19 | - (void)applicationDidFinishLaunching:(NSNotification *)aNotification { 20 | // Insert code here to initialize your application 21 | // self.window = [ORWindow quadrataWindow]; 22 | self.window = [[[ORWindow alloc] initWithContentRect: NSMakeRect(0, 0, 580, 580)] autorelease]; 23 | 24 | [self.window setTitle: @"Example"]; 25 | [self.window makeMainWindow]; 26 | [self.window orderFrontRegardless]; 27 | [self.window center]; 28 | 29 | } 30 | 31 | @end 32 | -------------------------------------------------------------------------------- /Classes/ORNavigator.h: -------------------------------------------------------------------------------- 1 | // 2 | // ORNavigator.h 3 | // OrganicUI 4 | // 5 | // Created by Jeffrey Drake on 10-12-22. 6 | // Copyright 2010 N/A. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | #import "ORController.h" 12 | 13 | 14 | @interface ORNavigator : NSView { 15 | @private 16 | NSMutableArray *controllers; 17 | ORController *root; 18 | } 19 | 20 | @property (retain) NSMutableArray *controllers; 21 | @property (retain) ORController *root; 22 | 23 | @property (readonly) NSRect left; 24 | @property (readonly) NSRect right; 25 | @property (readonly) NSRect centre; 26 | 27 | + (ORNavigator*) navigator: (NSSize) size rootController: (ORController*) controller; 28 | 29 | - (void) pushController:(ORController *)controller transition: (NSString*) transition; 30 | - (ORController*) popController; 31 | 32 | 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /Classes/ORWindow.h: -------------------------------------------------------------------------------- 1 | // 2 | // ORWindow.h 3 | // OrganicUI 4 | // 5 | // Created by Jeffrey Drake on 10-11-16. 6 | // Copyright 2010 N/A. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | #import "ORTitleBar.h" 12 | #import "NSColor+CGColor.h" 13 | 14 | //#import "MainMenuController.h" 15 | 16 | 17 | @interface ORWindow : NSWindow { 18 | @private 19 | // NSMutableArray *ControllerStack; 20 | NSColor *backgroundPattern; 21 | ORTitleBar *windowTitleBar; 22 | } 23 | 24 | //@property (retain) NSMutableArray *ControllerStack; 25 | @property (readonly) NSColor *backgroundPattern; 26 | @property (retain) ORTitleBar *windowTitleBar; 27 | 28 | /*- (void) pushController: (ORController*) controller; 29 | - (ORController*) popController; */ 30 | - (id) initWithContentRect:(NSRect)contentRect; 31 | - (NSColor*) background; 32 | - (id) initWithContentRect:(NSRect)contentRect styleMask:(NSUInteger)aStyle backing:(NSBackingStoreType)bufferingType defer:(BOOL)flag; 33 | @end 34 | -------------------------------------------------------------------------------- /OrganicUI-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | CFBundleIdentifier 7 | com.iaefai.${PRODUCT_NAME:rfc1034identifier} 8 | CFBundleDevelopmentRegion 9 | English 10 | CFBundleExecutable 11 | ${EXECUTABLE_NAME} 12 | CFBundleName 13 | ${PRODUCT_NAME} 14 | CFBundleIconFile 15 | 16 | CFBundleInfoDictionaryVersion 17 | 6.0 18 | CFBundlePackageType 19 | FMWK 20 | CFBundleSignature 21 | ???? 22 | CFBundleVersion 23 | 1 24 | CFBundleShortVersionString 25 | 1.0 26 | NSPrincipalClass 27 | 28 | NSHumanReadableCopyright 29 | Copyright © 2010 N/A. All rights reserved. 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /Classes/ORController.m: -------------------------------------------------------------------------------- 1 | // 2 | // ORController.m 3 | // OrganicUI 4 | // 5 | // Created by Jeffrey Drake on 10-12-14. 6 | // Copyright 2010 N/A. All rights reserved. 7 | // 8 | 9 | #import "ORController.h" 10 | 11 | 12 | @implementation ORController 13 | 14 | @synthesize view; 15 | 16 | - (id)init { 17 | if ((self = [super init])) { 18 | // Initialization code here. 19 | } 20 | 21 | return self; 22 | } 23 | 24 | - (id)initWithSize: (NSSize) size; 25 | { 26 | return nil; // no implementation 27 | } 28 | 29 | - (void)dealloc { 30 | self.view = nil; 31 | 32 | [super dealloc]; 33 | } 34 | 35 | + (ORController*) blankControllerWithSize: (NSSize) size 36 | { 37 | ORController *controller = [ORController new]; 38 | 39 | NSLog(@"blank controller retrieved"); 40 | 41 | NSView *_view = [[NSView alloc] initWithFrame: NSMakeRect(0, 0, size.width, size.height)]; 42 | 43 | [_view setWantsLayer: YES]; 44 | 45 | _view.layer.backgroundColor = [NSColor blackColor].CGColor; 46 | [_view autorelease]; 47 | 48 | controller.view = _view; 49 | 50 | return [controller autorelease]; 51 | } 52 | 53 | @end 54 | -------------------------------------------------------------------------------- /Example/Example-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | CFBundleIdentifier 7 | com.iaefai.${PRODUCT_NAME:rfc1034identifier} 8 | CFBundleDevelopmentRegion 9 | en 10 | CFBundleExecutable 11 | ${EXECUTABLE_NAME} 12 | CFBundleIconFile 13 | 14 | CFBundleInfoDictionaryVersion 15 | 6.0 16 | CFBundleName 17 | ${PRODUCT_NAME} 18 | CFBundlePackageType 19 | APPL 20 | CFBundleSignature 21 | ???? 22 | CFBundleShortVersionString 23 | 1.0 24 | LSMinimumSystemVersion 25 | ${MACOSX_DEPLOYMENT_TARGET} 26 | CFBundleVersion 27 | 1 28 | NSMainNibFile 29 | MainMenu 30 | NSPrincipalClass 31 | NSApplication 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /Classes/ORTransition.m: -------------------------------------------------------------------------------- 1 | // 2 | // ORTransition.m 3 | // OrganicUI 4 | // 5 | // Created by Jeffrey Drake on 10-12-25. 6 | // Copyright 2010 N/A. All rights reserved. 7 | // 8 | 9 | #import "ORTransition.h" 10 | 11 | 12 | @implementation ORTransition 13 | 14 | @synthesize name, toView, fromView, transitions; 15 | 16 | 17 | + (ORTransition*) transitionNamed: (NSString*) _name 18 | { 19 | ORTransition *t = [[ORTransition alloc] init]; 20 | 21 | if (t) t.name = _name; 22 | 23 | t.transitions = [NSDictionary dictionaryWithObjectsAndKeys: 24 | [NSValue valueWithPointer: @selector(slideIn:)], @"slideIn", 25 | [NSValue valueWithPointer: @selector(slideOut:)], @"slideOut", 26 | nil]; 27 | 28 | return [t autorelease]; 29 | } 30 | 31 | - (void) performInNavigator: (ORNavigator*) nav 32 | { 33 | SEL method = [[self.transitions objectForKey: self.name] pointerValue]; 34 | 35 | if (method != nil) 36 | { 37 | [self performSelector: method withObject: nav]; 38 | } 39 | } 40 | 41 | - (void) slideIn: (ORNavigator*) nav 42 | { 43 | self.toView.frame = nav.right; 44 | self.fromView.frame = nav.centre; 45 | 46 | [nav addSubview: self.toView]; 47 | [NSAnimationContext beginGrouping]; 48 | [[NSAnimationContext currentContext] setDuration: 0.7f]; 49 | 50 | [[self.toView animator] setFrame: nav.centre]; 51 | [[self.fromView animator] setFrame: nav.left]; 52 | 53 | [NSAnimationContext endGrouping]; 54 | 55 | [self.fromView removeFromSuperview]; 56 | } 57 | 58 | @end 59 | -------------------------------------------------------------------------------- /OrganicUI.xcodeproj/xcuserdata/jdrake.xcuserdatad/xcschemes/OrganicUI.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 8 | 14 | 20 | 21 | 22 | 23 | 24 | 26 | 27 | 28 | 29 | 38 | 39 | 40 | 41 | 47 | 48 | 50 | 51 | 52 | -------------------------------------------------------------------------------- /Readme.markdown: -------------------------------------------------------------------------------- 1 | Organic UI 2 | ========== 3 | 4 | Primary Classes 5 | --------------- 6 | 7 | ### ORWindow 8 | 9 | #### Blackened Window with Disappearing Title Bar 10 | 11 | ORWindow is my first attempt to recreate the title bar effect from Quicktime X. This was done for a game where I wanted the focus to be only on the game content, nothing else in the window. 12 | 13 | Normally, the title bar is hidden, but it becomes visible when the mouse moves over it. 14 | 15 | I would like to improve this, there are two main outstanding issues: 16 | 17 | 1. The window buttons do not react to mouse movement. 18 | 2. The title bar could look a lot better. 19 | 20 | ### ORNavigator 21 | 22 | #### View to transition other full views in or out 23 | 24 | ORNavigator is a view that manages a stack of controllers/views and will 25 | transition between additions. If you push a controller on the stack, the old one will go to the left and the new one will come in from the right. Popping a controller is the reverse. 26 | 27 | ORNavigator is in need of testing and is considered unstable right now. 28 | 29 | Supporting Classes 30 | ------------------ 31 | 32 | ### ORTitleBar 33 | 34 | The recreation of a title bar for ORWindow. 35 | 36 | ### NSColor+CGColor 37 | 38 | Adds a CGColor property (no patterns yet) 39 | 40 | ### NSBezierPath+JDAdditions 41 | 42 | Adds corner construction methods 43 | 44 | Classes not Finished 45 | -------------------- 46 | 47 | ### ORController 48 | 49 | An item that manages a view, used with ORNavigator. This might be better as a protocol on an NSViewController. 50 | 51 | License 52 | ------- 53 | 54 | A license hasn't been decided on, but I believe this code has the most utility when it is improved by those who use it for whatever purpose. 55 | 56 | When you use it, a mention would be appreciated, although not required. 57 | 58 | Website 59 | ------- 60 | 61 | ### Main site 62 | Website no longer exists. Will update when made new one. 63 | 64 | ### Source code 65 | [https://github.com/iaefai/OrganicUI](https://github.com/iaefai/OrganicUI) 66 | 67 | -------------------------------------------------------------------------------- /Example/Example.xcodeproj/xcuserdata/jdrake.xcuserdatad/xcschemes/Example.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 8 | 10 | 11 | 12 | 13 | 22 | 23 | 29 | 30 | 31 | 32 | 33 | 34 | 41 | 42 | 48 | 49 | 50 | 51 | 53 | 54 | 55 | -------------------------------------------------------------------------------- /Classes/CATextLayer+autosize.m: -------------------------------------------------------------------------------- 1 | // 2 | // CATextLayer+autosize.m 3 | // OrganicUI 4 | // 5 | // Created by Jeffrey Drake on 10-12-25. 6 | // Copyright 2010 N/A. All rights reserved. 7 | // 8 | 9 | #import "CATextLayer+autosize.h" 10 | 11 | @implementation CATextLayer (autosize) 12 | 13 | // these two methods are from Richard Hult 14 | 15 | - (NSFont *)fontForTextLayer:(CATextLayer *)layer 16 | { 17 | NSFont *font = nil; 18 | 19 | // Convert the separate font and font size to an NSFont. There are four different ways 20 | // to specify the font used in CATextLayer: NSFont/CTFontRef, NSString, CGFontRet. 21 | if ([(id)layer.font isKindOfClass:[NSFont class]]) { 22 | font = [NSFont fontWithName:[(NSFont *)layer.font fontName] size:layer.fontSize]; 23 | } 24 | else if ([(id)layer.font isKindOfClass:[NSString class]]) { 25 | font = [NSFont fontWithName:(NSString *)layer.font size:layer.fontSize]; 26 | } else { 27 | CFTypeID typeID = CFGetTypeID(layer.font); 28 | if (typeID == CGFontGetTypeID()) { 29 | // ... we ignore this here, could be implemented later. 30 | } 31 | } 32 | 33 | return font; 34 | } 35 | 36 | - (NSAttributedString *)attributedStringForTextLayer:(CATextLayer *)layer 37 | { 38 | // We have two different cases, self.string can be either an NSString or NSAttributedString. 39 | // Those need to be handled differently, as the font/fontSize properties are not used in 40 | // in the attributed string case. 41 | 42 | if ([layer.string isKindOfClass:[NSAttributedString class]]) { 43 | return layer.string; 44 | } 45 | 46 | NSDictionary *attributes = [NSDictionary dictionaryWithObject:[self fontForTextLayer:layer] 47 | forKey:NSFontAttributeName]; 48 | 49 | return [[[NSAttributedString alloc] initWithString:layer.string 50 | attributes:attributes] autorelease]; 51 | } 52 | 53 | 54 | - (void) autosize 55 | { 56 | NSAttributedString *string = [self attributedStringForTextLayer: self]; 57 | // CTTypesetterRef typesetter = CTTypesetterCreateWithAttributedString((CFAttributedStringRef)string); 58 | 59 | NSSize s = [string size]; 60 | 61 | self.bounds = CGRectMake(0, 0, s.width, s.height); 62 | } 63 | /* 64 | - (CGSize)frameSizeForTextLayer:(CATextLayer *)layer 65 | { 66 | NSAttributedString *string = [self attributedStringForTextLayer:layer]; 67 | CTTypesetterRef typesetter = CTTypesetterCreateWithAttributedString((CFAttributedStringRef)string); 68 | CGFloat width = layer.bounds.size.width; 69 | 70 | CFIndex offset = 0, length; 71 | CGFloat y = 0; 72 | do { 73 | length = CTTypesetterSuggestLineBreak(typesetter, offset, width); 74 | CTLineRef line = CTTypesetterCreateLine(typesetter, CFRangeMake(offset, length)); 75 | 76 | CGFloat ascent, descent, leading; 77 | CTLineGetTypographicBounds(line, &ascent, &descent, &leading); 78 | 79 | CFRelease(line); 80 | 81 | offset += length; 82 | y += ascent + descent + leading; 83 | } while (offset < [string length]); 84 | 85 | CFRelease(typesetter); 86 | 87 | return CGSizeMake(width, ceil(y)); 88 | } 89 | */ 90 | @end 91 | -------------------------------------------------------------------------------- /Classes/ORWindow.m: -------------------------------------------------------------------------------- 1 | // 2 | // ORWindow.m 3 | // OrganicUI 4 | // 5 | // Created by Jeffrey Drake on 10-11-16. 6 | // Copyright 2010 N/A. All rights reserved. 7 | // 8 | 9 | #import "ORWindow.h" 10 | 11 | 12 | @implementation ORWindow 13 | 14 | //@synthesize ControllerStack, 15 | @synthesize windowTitleBar; 16 | @dynamic backgroundPattern; 17 | 18 | - (id) initWithContentRect:(NSRect)contentRect 19 | { 20 | self = [self initWithContentRect: contentRect styleMask: 0 backing: 0 defer: NO]; 21 | 22 | return self; 23 | } 24 | 25 | - (id) initWithContentRect:(NSRect)contentRect styleMask:(NSUInteger)aStyle backing:(NSBackingStoreType)bufferingType defer:(BOOL)flag 26 | { 27 | self = [super initWithContentRect: contentRect styleMask: NSBorderlessWindowMask backing: NSBackingStoreBuffered defer: NO]; 28 | 29 | if (self) 30 | { 31 | [self setBackgroundColor: [NSColor clearColor]]; 32 | [self setAlphaValue:1.0]; 33 | [self setHasShadow: YES]; 34 | [self setOpaque: NO]; 35 | [self setMovableByWindowBackground:YES]; 36 | 37 | [self setBackgroundColor: self.background]; 38 | 39 | NSRect frame = [self frame]; 40 | self.windowTitleBar = [[[ORTitleBar alloc] 41 | initWithFrame: NSMakeRect(0, frame.size.height - 21, 42 | frame.size.width, 21)] autorelease]; 43 | 44 | [[self contentView] addSubview: self.windowTitleBar 45 | positioned: NSWindowAbove 46 | relativeTo: nil]; 47 | 48 | CALayer *mask = [CALayer layer]; 49 | mask.backgroundColor = [NSColor blackColor].CGColor; 50 | mask.cornerRadius = 6; 51 | [mask removeFromSuperlayer]; 52 | 53 | [[self contentView] makeBackingLayer]; 54 | [[self contentView] layer].mask = mask; 55 | [[self contentView] layer].masksToBounds = YES; 56 | 57 | [self.windowTitleBar setHidden: YES]; 58 | 59 | NSTrackingArea *titlebar = [[[NSTrackingArea alloc] initWithRect: [self.windowTitleBar frame] 60 | options: NSTrackingMouseEnteredAndExited | NSTrackingMouseMoved | NSTrackingActiveInActiveApp 61 | owner: self 62 | userInfo: nil] autorelease]; 63 | 64 | [[self contentView] addTrackingArea: titlebar]; 65 | 66 | [self setAcceptsMouseMovedEvents:YES]; 67 | 68 | } 69 | 70 | return self; 71 | } 72 | 73 | - (BOOL)acceptsMouseMovedEvents 74 | { 75 | return YES; 76 | } 77 | 78 | - (void)mouseEntered:(NSEvent *)theEvent 79 | { 80 | [self.windowTitleBar setAlphaValue: 0.0]; 81 | [self.windowTitleBar setHidden: NO]; 82 | [[self.windowTitleBar animator] setAlphaValue: 1.0]; 83 | 84 | } 85 | 86 | - (void)mouseExited:(NSEvent *)theEvent 87 | { 88 | [[self.windowTitleBar animator] setAlphaValue: 0.0]; 89 | 90 | [[self.windowTitleBar animator] setHidden: YES]; 91 | [self.windowTitleBar setAlphaValue: 1.0]; 92 | 93 | } 94 | 95 | - (NSColor*) background 96 | { 97 | static bool initialized = NO; 98 | 99 | if (initialized == YES) 100 | return backgroundPattern; 101 | 102 | NSImage *_background = [[NSImage alloc] initWithSize: [self frame].size]; 103 | 104 | [_background lockFocus]; 105 | 106 | NSBezierPath *backgroundPath = [NSBezierPath bezierPathWithRoundedRect: [self frame] xRadius: 6 yRadius: 6]; 107 | 108 | [[NSColor blackColor] setFill]; 109 | [[NSColor blackColor] setStroke]; 110 | 111 | [backgroundPath stroke]; 112 | [backgroundPath fill]; 113 | 114 | [_background unlockFocus]; 115 | 116 | backgroundPattern = [NSColor colorWithPatternImage: [_background autorelease]]; 117 | 118 | [backgroundPattern retain]; 119 | 120 | initialized = YES; 121 | 122 | return backgroundPattern; 123 | } 124 | 125 | - (BOOL) canBecomeKeyWindow 126 | { 127 | return YES; 128 | } 129 | 130 | - (BOOL) canBecomeMainWindow 131 | { 132 | return YES; 133 | } 134 | 135 | - (void)dealloc { 136 | [backgroundPattern release]; 137 | 138 | [super dealloc]; 139 | } 140 | @end 141 | -------------------------------------------------------------------------------- /Classes/NSBezierPath+JDAdditions.m: -------------------------------------------------------------------------------- 1 | // 2 | // NSBezierPath+JDAdditions.m 3 | // OrganicUI 4 | // 5 | // Created by Jeffrey Drake on 10-12-21. 6 | // Copyright 2010 N/A. All rights reserved. 7 | // 8 | 9 | #import "NSBezierPath+JDAdditions.h" 10 | 11 | static int quadrantBetweenPoints(NSPoint p1, NSPoint p2) 12 | { 13 | NSPoint p = {p2.x - p1.x, p2.y - p1.y}; 14 | 15 | if (p.x >= 0 && p.y >= 0) return 1; 16 | else if (p.x < 0 && p.y > 0) return 2; 17 | else if (p.x < 0 && p.y < 0) return 3; 18 | else if (p.x > 0 && p.y < 0) return 4; 19 | 20 | return 0; 21 | } 22 | 23 | 24 | @implementation NSBezierPath (JDAdditions) 25 | 26 | - (void)cornerToPoint: (NSPoint)p2 radius: (CGFloat)radius 27 | { 28 | const double percentage = 0.44772; 29 | 30 | NSPoint p1 = [self currentPoint]; 31 | 32 | NSPoint cp1, cp2; 33 | 34 | cp1 = p1; 35 | cp2 = p2; 36 | 37 | switch (quadrantBetweenPoints(p1, p2)) 38 | { 39 | case 1: 40 | cp1.x += (p2.x - p1.x) * percentage; 41 | cp2.y -= (p2.y - p1.y) * percentage; 42 | break; 43 | 44 | case 2: 45 | cp1.y += (p2.y - p1.y) * percentage; 46 | cp2.x -= (p2.x - p1.x) * percentage; 47 | break; 48 | 49 | case 3: 50 | cp1.x -= (p1.x - p2.x) * percentage; 51 | cp2.y += (p1.y - p2.y) * percentage; 52 | break; 53 | 54 | case 4: 55 | cp1.y -= (p1.y - p2.y) * percentage; 56 | cp2.x -= (p2.x - p1.x) * percentage; 57 | 58 | // defaut: 59 | } 60 | 61 | [self curveToPoint: p2 controlPoint1: cp1 controlPoint2: cp2]; 62 | } 63 | 64 | + (NSBezierPath*) bezierPathRoundedCornersOnLeft: (NSRect) box radius: (CGFloat)r 65 | { 66 | NSBezierPath *path = [NSBezierPath bezierPath]; 67 | 68 | NSPoint p = { box.origin.x + r, box.origin.y + box.size.height }; 69 | [path moveToPoint: p]; 70 | 71 | p = NSMakePoint(box.origin.x, box.origin.y + box.size.height - r); 72 | [path cornerToPoint: p radius: r]; 73 | 74 | p = NSMakePoint(box.origin.x, box.origin.y + r); 75 | [path lineToPoint: p]; 76 | 77 | p = NSMakePoint(box.origin.x + r, box.origin.y); 78 | [path cornerToPoint: p radius: r]; 79 | 80 | p = NSMakePoint(box.origin.x + box.size.width, 81 | box.origin.y); 82 | [path lineToPoint: p]; 83 | 84 | p = NSMakePoint(box.origin.x + box.size.width, 85 | box.origin.y + box.size.height); 86 | 87 | [path lineToPoint: p]; 88 | 89 | p = NSMakePoint(box.origin.x + r, box.origin.y + box.size.height); 90 | 91 | [path lineToPoint: p]; 92 | [path closePath]; 93 | 94 | return path; 95 | } 96 | 97 | + (NSBezierPath*) bezierPathRoundedCornersOnRight: (NSRect) box radius: (CGFloat)r 98 | { 99 | NSBezierPath *path = [NSBezierPath bezierPath]; 100 | 101 | NSPoint p = NSMakePoint(box.origin.x, box.origin.y + box.size.height); 102 | 103 | [path moveToPoint: p]; 104 | 105 | p = NSMakePoint(box.origin.x, box.origin.y); 106 | [path lineToPoint: p]; 107 | 108 | p = NSMakePoint(box.origin.x + box.size.width - r, box.origin.y); 109 | [path lineToPoint: p]; 110 | 111 | 112 | p = NSMakePoint(box.origin.x + box.size.width, 113 | box.origin.y + r); 114 | [path cornerToPoint: p radius: r]; 115 | 116 | p = NSMakePoint(box.origin.x + box.size.width, 117 | box.origin.y + box.size.height - r); 118 | [path lineToPoint: p]; 119 | 120 | p = NSMakePoint(box.origin.x + box.size.width - r, 121 | box.origin.y + box.size.height); 122 | 123 | [path cornerToPoint: p radius: r]; 124 | 125 | p = NSMakePoint(box.origin.x, box.origin.y + box.size.height); 126 | 127 | [path lineToPoint: p]; 128 | [path closePath]; 129 | 130 | 131 | return path; 132 | } 133 | 134 | @end 135 | -------------------------------------------------------------------------------- /Classes/ORNavigator.m: -------------------------------------------------------------------------------- 1 | // 2 | // ORNavigator.m 3 | // OrganicUI 4 | // 5 | // Created by Jeffrey Drake on 10-12-22. 6 | // Copyright 2010 N/A. All rights reserved. 7 | // 8 | 9 | #import "ORNavigator.h" 10 | 11 | #import "ORTransition.h" 12 | 13 | @implementation ORNavigator 14 | 15 | @synthesize controllers, root; 16 | 17 | @dynamic left, right, centre; 18 | 19 | + (ORNavigator*) navigator: (NSSize) size rootController: (ORController*) controller 20 | { 21 | NSRect frame = { NSMakePoint(0, 0), size }; 22 | 23 | ORNavigator *nav = [[ORNavigator alloc] initWithFrame: frame]; 24 | if (nav) 25 | { 26 | nav.root = controller; 27 | [nav pushController: nav.root transition: nil]; 28 | } 29 | 30 | return [nav autorelease]; 31 | } 32 | 33 | 34 | - (id) initWithFrame:(NSRect)frameRect 35 | { 36 | self = [super initWithFrame: frameRect]; 37 | 38 | if (self) 39 | { 40 | self.controllers = [NSMutableArray arrayWithCapacity: 5]; 41 | // 42 | } 43 | 44 | return self; 45 | 46 | } 47 | 48 | - (void) dealloc 49 | { 50 | self.controllers = nil; 51 | 52 | [super dealloc]; 53 | } 54 | 55 | - (NSRect) left 56 | { 57 | NSRect frame = [self frame]; 58 | 59 | frame.origin = NSMakePoint(-frame.size.width, 0); 60 | 61 | return frame; 62 | } 63 | 64 | - (NSRect) right 65 | { 66 | NSRect frame = [self frame]; 67 | 68 | frame.origin = NSMakePoint(frame.size.width, 0); 69 | 70 | return frame; 71 | } 72 | 73 | - (NSRect) centre 74 | { 75 | NSRect frame = [self frame]; 76 | frame.origin = NSMakePoint(0, 0); 77 | 78 | return frame; 79 | } 80 | 81 | - (void) pushController:(ORController *)controller transition: (NSString*) transition 82 | { 83 | if ((controller == self.root) && ([self.controllers count]==0)) 84 | { 85 | controller.view.frame = self.centre; 86 | [self addSubview: controller.view]; 87 | [self.controllers addObject: 88 | [NSDictionary dictionaryWithObjectsAndKeys: controller, @"controller", transition, @"transition", nil]]; 89 | return; 90 | } 91 | 92 | [self.controllers addObject: 93 | [NSDictionary dictionaryWithObjectsAndKeys: controller, @"controller", transition, @"transition", nil]]; 94 | 95 | ORTransition *tran = [ORTransition transitionNamed: transition]; 96 | 97 | tran.toView = controller.view; 98 | NSDictionary *from = [self.controllers objectAtIndex: [self.controllers count]-2]; 99 | tran.fromView = [[from objectForKey: @"controller"] view]; 100 | 101 | [tran performInNavigator: self]; 102 | 103 | 104 | } 105 | 106 | - (ORController*) popController 107 | { 108 | return nil; 109 | } 110 | /* 111 | - (void) pushController: (ORController*) controller 112 | { 113 | // check for initialization 114 | if ([self.ControllerStack count] == 0) 115 | { 116 | [self.ControllerStack addObject: controller]; 117 | [self addSubview: controller.view]; 118 | 119 | return; 120 | } 121 | 122 | 123 | ORController *controllerOut = [self.ControllerStack lastObject]; 124 | 125 | [self.ControllerStack addObject: controller]; 126 | 127 | // will animate out the current, and animate in the new at the same time 128 | // controllerOut is assumed to be in the contentView visible 129 | 130 | // add new controller to the right of the screen 131 | 132 | [controller.view setFrame: self.right]; 133 | [self addSubview: controller.view]; 134 | 135 | [NSAnimationContext beginGrouping]; 136 | [[NSAnimationContext currentContext] setDuration: 0.7f]; 137 | 138 | // slide old view out 139 | [[controllerOut.view animator] setFrame: self.left]; 140 | 141 | // slide new view in 142 | [[controller.view animator] setFrame: self.centre]; 143 | 144 | [NSAnimationContext endGrouping]; 145 | 146 | [controllerOut.view removeFromSuperview]; 147 | 148 | } 149 | 150 | - (ORController*) popController 151 | { 152 | if ([self.ControllerStack count] < 1) 153 | { 154 | @throw [NSException exceptionWithName: @"NoControllerToPop" reason:@"There are no more controllers to pop." userInfo: nil]; 155 | } 156 | 157 | ORController *controllerOut = [self.ControllerStack lastObject]; 158 | [self.ControllerStack removeLastObject]; 159 | 160 | ORController *controllerIn = ([self.ControllerStack count] < 1 161 | ? [ORController blankControllerWithSize: self.frame.size] 162 | : [self.ControllerStack lastObject]); 163 | 164 | [controllerIn.view setFrame: self.left]; 165 | [self addSubview: controllerIn.view]; 166 | 167 | [controllerOut.view setFrame: self.centre]; 168 | 169 | [NSAnimationContext beginGrouping]; 170 | [[NSAnimationContext currentContext] setDuration: 0.7f]; 171 | 172 | // slide old view out 173 | [[controllerOut.view animator] setFrame: self.right]; 174 | 175 | // slide new view in 176 | [[controllerIn.view animator] setFrame: self.centre]; 177 | 178 | [NSAnimationContext endGrouping]; 179 | 180 | [controllerOut.view removeFromSuperview]; 181 | 182 | return controllerOut; 183 | } 184 | 185 | */ 186 | @end 187 | -------------------------------------------------------------------------------- /Classes/ORTitleBar.m: -------------------------------------------------------------------------------- 1 | // 2 | // ORTitleBar.m 3 | // OrganicUI 4 | // 5 | // Created by Jeffrey Drake on 10-12-17. 6 | // Copyright 2010 N/A. All rights reserved. 7 | // 8 | 9 | #import "ORTitleBar.h" 10 | #import "NSBezierPath+JDAdditions.h" 11 | 12 | @implementation ORTitleBar 13 | 14 | @synthesize zoomButton, closeButton, minimizeButton, backgroundPattern; 15 | @synthesize outline, buttonArea; 16 | 17 | - (BOOL)_mouseInGroup:(id)sender 18 | { 19 | return [self mouse: 20 | [self convertPoint:[[self window] mouseLocationOutsideOfEventStream] 21 | fromView:nil] 22 | inRect:[self.buttonArea rect]]; 23 | } 24 | 25 | - (BOOL)mouseDownCanMoveWindow 26 | { 27 | return YES; 28 | /* 29 | ([self mouse: [self convertPoint:[[self window] mouseLocationOutsideOfEventStream] 30 | fromView:nil] 31 | inRect: [self.closeButton frame]]) || 32 | ([self mouse: [self convertPoint:[[self window] mouseLocationOutsideOfEventStream] 33 | fromView:nil] 34 | inRect: [self.zoomButton frame]]) || 35 | ([self mouse: [self convertPoint:[[self window] mouseLocationOutsideOfEventStream] 36 | fromView:nil] 37 | inRect: [self.minimizeButton frame]]); 38 | */ 39 | } 40 | 41 | - (id)initWithFrame:(NSRect)frame { 42 | if ((self = [super initWithFrame:frame])) { 43 | self.closeButton = [NSWindow standardWindowButton: NSWindowCloseButton 44 | forStyleMask:NSTexturedBackgroundWindowMask]; 45 | self.minimizeButton = [NSWindow standardWindowButton: NSWindowMiniaturizeButton 46 | forStyleMask:NSTexturedBackgroundWindowMask]; 47 | self.zoomButton = [NSWindow standardWindowButton: NSWindowZoomButton 48 | forStyleMask:NSTexturedBackgroundWindowMask]; 49 | NSRect __bounds = [self bounds]; 50 | NSRect __frame = [self.closeButton frame]; 51 | __frame.origin.x = 8; 52 | __frame.origin.y = 21-__bounds.size.height+3; 53 | 54 | [self.closeButton setFrame: __frame]; 55 | 56 | __frame = [self.minimizeButton frame]; 57 | __frame.origin.x = 8+21; 58 | __frame.origin.y = 21-frame.size.height + 3; 59 | [self.minimizeButton setFrame: __frame]; 60 | 61 | __frame = [self.zoomButton frame]; 62 | __frame.origin.x = 8+21+21; 63 | __frame.origin.y = 21-frame.size.height + 3; 64 | [self.zoomButton setFrame: __frame]; 65 | 66 | [self addSubview: self.closeButton]; 67 | [self addSubview: self.minimizeButton]; 68 | [self addSubview: self.zoomButton]; 69 | 70 | NSRect bound = [self.closeButton frame]; 71 | bound.size.width = [self.zoomButton frame].origin.x 72 | + [self.zoomButton frame].size.width; 73 | 74 | NSTrackingArea *trackingButtons = [[NSTrackingArea alloc] initWithRect: bound 75 | options: NSTrackingMouseEnteredAndExited | NSTrackingActiveInKeyWindow 76 | owner: self 77 | userInfo: nil]; 78 | 79 | [self addTrackingArea: trackingButtons]; 80 | 81 | self.buttonArea = trackingButtons; 82 | 83 | [self updateOutline]; 84 | } 85 | 86 | return self; 87 | } 88 | 89 | - (void)mouseEntered:(NSEvent *)theEvent 90 | { 91 | NSTrackingArea *area = nil; 92 | 93 | @try { 94 | area = [theEvent trackingArea]; 95 | 96 | if (area == self.buttonArea) 97 | { 98 | [self.closeButton setNeedsDisplay: YES]; 99 | [self.minimizeButton setNeedsDisplay: YES]; 100 | [self.zoomButton setNeedsDisplay: YES]; 101 | } 102 | } 103 | @catch (NSException * e) { 104 | // not a tracking area event 105 | } 106 | } 107 | 108 | - (void)dealloc { 109 | // Clean-up code here. 110 | self.backgroundPattern = nil; 111 | 112 | [super dealloc]; 113 | } 114 | 115 | // This method should be called when the window resizes 116 | - (void) updateOutline 117 | { 118 | NSRect __frame = [self bounds]; 119 | 120 | const int radius = 6; 121 | NSBezierPath *background = [NSBezierPath bezierPath]; 122 | [background moveToPoint: NSMakePoint(0, 0)]; 123 | [background lineToPoint: NSMakePoint(__frame.size.width, 0)]; 124 | 125 | [background lineToPoint: NSMakePoint(__frame.size.width, __frame.size.height-radius)]; 126 | [background cornerToPoint: NSMakePoint(__frame.size.width - radius, __frame.size.height) radius: radius]; 127 | 128 | [background lineToPoint: NSMakePoint(radius, __frame.size.height)]; 129 | [background cornerToPoint: NSMakePoint(0, __frame.size.height-radius) radius: radius]; 130 | 131 | [background lineToPoint: NSMakePoint(0, 0)]; 132 | [background closePath]; 133 | 134 | self.outline = background; 135 | } 136 | 137 | - (void)drawRect:(NSRect)dirtyRect { 138 | 139 | 140 | NSGradient *gradient = [[NSGradient alloc] initWithStartingColor:[NSColor colorWithDeviceRed: 0.55 green: 0.55 blue:0.55 alpha:1] 141 | endingColor: [NSColor colorWithDeviceRed: 0.2 green:0.2 blue:0.2 alpha:1]]; 142 | 143 | [gradient drawInBezierPath: self.outline angle: 270]; 144 | [gradient release]; 145 | 146 | [[NSColor colorWithDeviceRed:0.5 green:0.5 blue:0.5 alpha:1.0] setStroke]; 147 | 148 | [self.outline stroke]; 149 | 150 | 151 | // The following code is borrowed from somewhere, but I forget where. 152 | // Probably will change this to something better. 153 | 154 | NSWindow *win = [self window]; 155 | NSString *title = (win? [win title] : @""); 156 | 157 | NSFont *titleFont = [NSFont titleBarFontOfSize: 0]; 158 | NSMutableParagraphStyle *paraStyle = [[[NSMutableParagraphStyle alloc] init] autorelease]; 159 | [paraStyle setParagraphStyle:[NSParagraphStyle defaultParagraphStyle]]; 160 | [paraStyle setAlignment:NSCenterTextAlignment]; 161 | [paraStyle setLineBreakMode:NSLineBreakByTruncatingTail]; 162 | NSMutableDictionary *titleAttrs = [NSMutableDictionary dictionaryWithObjectsAndKeys: 163 | titleFont, NSFontAttributeName, 164 | [NSColor whiteColor], NSForegroundColorAttributeName, 165 | [[paraStyle copy] autorelease], NSParagraphStyleAttributeName, 166 | nil]; 167 | 168 | NSSize titleSize = [title sizeWithAttributes:titleAttrs]; 169 | // We vertically centre the title in the titlbar area, and we also horizontally 170 | // inset the title by 19px, to allow for the 3px space from window's edge to close-widget, 171 | // plus 13px for the close widget itself, plus another 3px space on the other side of 172 | // the widget. 173 | NSRect titleRect = NSInsetRect([self bounds], 200, ([self bounds].size.height - titleSize.height) / 2.0); 174 | [title drawInRect:titleRect withAttributes:titleAttrs]; 175 | 176 | 177 | } 178 | 179 | @end 180 | -------------------------------------------------------------------------------- /Example/Example.xcodeproj/jdrake.pbxuser: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | 8566A63A12BDFD5E004FA3C1 /* Project object */ = { 4 | activeBuildConfigurationName = Debug; 5 | activeExecutable = 85DAC9C712C1349A008716EC /* Example */; 6 | activeTarget = 8566A64612BDFD5E004FA3C1 /* Example */; 7 | addToTargets = ( 8 | 8566A64612BDFD5E004FA3C1 /* Example */, 9 | ); 10 | breakpoints = ( 11 | 85DACA1612C1A4B4008716EC /* QuadratusAppDelegate.m:22 */, 12 | 85DACAB812C1BAC9008716EC /* ExampleAppDelegate.m:22 */, 13 | ); 14 | codeSenseManager = 85DAC9DE12C134DE008716EC /* Code sense */; 15 | executables = ( 16 | 85DAC9C712C1349A008716EC /* Example */, 17 | ); 18 | perUserDictionary = { 19 | PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = { 20 | PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; 21 | PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID; 22 | PBXFileTableDataSourceColumnWidthsKey = ( 23 | 20, 24 | 469, 25 | 20, 26 | 48, 27 | 43, 28 | 43, 29 | 20, 30 | ); 31 | PBXFileTableDataSourceColumnsKey = ( 32 | PBXFileDataSource_FiletypeID, 33 | PBXFileDataSource_Filename_ColumnID, 34 | PBXFileDataSource_Built_ColumnID, 35 | PBXFileDataSource_ObjectSize_ColumnID, 36 | PBXFileDataSource_Errors_ColumnID, 37 | PBXFileDataSource_Warnings_ColumnID, 38 | PBXFileDataSource_Target_ColumnID, 39 | ); 40 | }; 41 | PBXConfiguration.PBXTargetDataSource.PBXTargetDataSource = { 42 | PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; 43 | PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID; 44 | PBXFileTableDataSourceColumnWidthsKey = ( 45 | 20, 46 | 429, 47 | 60, 48 | 20, 49 | 48, 50 | 43, 51 | 43, 52 | ); 53 | PBXFileTableDataSourceColumnsKey = ( 54 | PBXFileDataSource_FiletypeID, 55 | PBXFileDataSource_Filename_ColumnID, 56 | PBXTargetDataSource_PrimaryAttribute, 57 | PBXFileDataSource_Built_ColumnID, 58 | PBXFileDataSource_ObjectSize_ColumnID, 59 | PBXFileDataSource_Errors_ColumnID, 60 | PBXFileDataSource_Warnings_ColumnID, 61 | ); 62 | }; 63 | PBXPerProjectTemplateStateSaveDate = 314686481; 64 | PBXWorkspaceStateSaveDate = 314686481; 65 | }; 66 | perUserProjectItems = { 67 | 85DACA8812C1B9F0008716EC = 85DACA8812C1B9F0008716EC /* PBXTextBookmark */; 68 | 85DACAA512C1BA98008716EC = 85DACAA512C1BA98008716EC /* PBXTextBookmark */; 69 | 85DACABC12C1BAD0008716EC = 85DACABC12C1BAD0008716EC /* PlistBookmark */; 70 | 85DACABD12C1BAD0008716EC = 85DACABD12C1BAD0008716EC /* PBXTextBookmark */; 71 | 85DACAD212C1BBBA008716EC = 85DACAD212C1BBBA008716EC /* PBXTextBookmark */; 72 | 85DACADD12C1BC15008716EC /* PBXTextBookmark */ = 85DACADD12C1BC15008716EC /* PBXTextBookmark */; 73 | 85DACB0212C1BC7D008716EC /* PBXTextBookmark */ = 85DACB0212C1BC7D008716EC /* PBXTextBookmark */; 74 | 85DACB1512C1BC9B008716EC /* PBXTextBookmark */ = 85DACB1512C1BC9B008716EC /* PBXTextBookmark */; 75 | }; 76 | sourceControlManager = 85DAC9DD12C134DE008716EC /* Source Control */; 77 | userBuildSettings = { 78 | }; 79 | }; 80 | 8566A64612BDFD5E004FA3C1 /* Example */ = { 81 | activeExec = 0; 82 | executables = ( 83 | 85DAC9C712C1349A008716EC /* Example */, 84 | ); 85 | }; 86 | 8566A65A12BDFD5F004FA3C1 /* QuadratusAppDelegate.m */ = { 87 | isa = PBXFileReference; 88 | lastKnownFileType = sourcecode.c.objc; 89 | name = QuadratusAppDelegate.m; 90 | path = /Users/jdrake/Projects/OrganicUI/Example/Classes/QuadratusAppDelegate.m; 91 | sourceTree = ""; 92 | }; 93 | 85DAC9C712C1349A008716EC /* Example */ = { 94 | isa = PBXExecutable; 95 | activeArgIndices = ( 96 | ); 97 | argumentStrings = ( 98 | ); 99 | autoAttachOnCrash = 1; 100 | breakpointsEnabled = 0; 101 | configStateDict = { 102 | }; 103 | customDataFormattersEnabled = 1; 104 | dataTipCustomDataFormattersEnabled = 1; 105 | dataTipShowTypeColumn = 1; 106 | dataTipSortType = 0; 107 | debuggerPlugin = GDBDebugging; 108 | disassemblyDisplayState = 0; 109 | dylibVariantSuffix = ""; 110 | enableDebugStr = 1; 111 | environmentEntries = ( 112 | ); 113 | executableSystemSymbolLevel = 0; 114 | executableUserSymbolLevel = 0; 115 | libgmallocEnabled = 0; 116 | name = Example; 117 | savedGlobals = { 118 | }; 119 | showTypeColumn = 0; 120 | sourceDirectories = ( 121 | ); 122 | variableFormatDictionary = { 123 | }; 124 | }; 125 | 85DAC9DD12C134DE008716EC /* Source Control */ = { 126 | isa = PBXSourceControlManager; 127 | fallbackIsa = XCSourceControlManager; 128 | isSCMEnabled = 0; 129 | scmConfiguration = { 130 | repositoryNamesForRoots = { 131 | "" = ""; 132 | }; 133 | }; 134 | }; 135 | 85DAC9DE12C134DE008716EC /* Code sense */ = { 136 | isa = PBXCodeSenseManager; 137 | indexTemplatePath = ""; 138 | }; 139 | 85DACA1612C1A4B4008716EC /* QuadratusAppDelegate.m:22 */ = { 140 | isa = PBXFileBreakpoint; 141 | actions = ( 142 | ); 143 | breakpointStyle = 0; 144 | continueAfterActions = 0; 145 | countType = 0; 146 | delayBeforeContinue = 0; 147 | fileReference = 8566A65A12BDFD5F004FA3C1 /* QuadratusAppDelegate.m */; 148 | functionName = "-applicationDidFinishLaunching:"; 149 | hitCount = 0; 150 | ignoreCount = 0; 151 | lineNumber = 22; 152 | modificationTime = 314686157.073785; 153 | originalNumberOfMultipleMatches = 1; 154 | state = 0; 155 | }; 156 | 85DACA7712C1B92A008716EC /* Example-main.m */ = { 157 | uiCtxt = { 158 | sepNavIntBoundsRect = "{{0, 0}, {647, 383}}"; 159 | sepNavSelRange = "{0, 0}"; 160 | sepNavVisRange = "{0, 253}"; 161 | }; 162 | }; 163 | 85DACA7912C1B938008716EC /* ExampleAppDelegate.h */ = { 164 | uiCtxt = { 165 | sepNavIntBoundsRect = "{{0, 0}, {647, 376}}"; 166 | sepNavSelRange = "{3, 39}"; 167 | sepNavVisRange = "{0, 296}"; 168 | }; 169 | }; 170 | 85DACA7A12C1B938008716EC /* ExampleAppDelegate.m */ = { 171 | uiCtxt = { 172 | sepNavIntBoundsRect = "{{0, 0}, {705, 416}}"; 173 | sepNavSelRange = "{200, 0}"; 174 | sepNavVisRange = "{28, 658}"; 175 | }; 176 | }; 177 | 85DACA8812C1B9F0008716EC /* PBXTextBookmark */ = { 178 | isa = PBXTextBookmark; 179 | fRef = 85DACA7712C1B92A008716EC /* Example-main.m */; 180 | name = "Example-main.m: 1"; 181 | rLen = 0; 182 | rLoc = 0; 183 | rType = 0; 184 | vrLen = 253; 185 | vrLoc = 0; 186 | }; 187 | 85DACAA512C1BA98008716EC /* PBXTextBookmark */ = { 188 | isa = PBXTextBookmark; 189 | fRef = 85DACA7912C1B938008716EC /* ExampleAppDelegate.h */; 190 | name = "ExampleAppDelegate.h: 2"; 191 | rLen = 39; 192 | rLoc = 3; 193 | rType = 0; 194 | vrLen = 296; 195 | vrLoc = 0; 196 | }; 197 | 85DACAB812C1BAC9008716EC /* ExampleAppDelegate.m:22 */ = { 198 | isa = PBXFileBreakpoint; 199 | actions = ( 200 | ); 201 | breakpointStyle = 0; 202 | continueAfterActions = 0; 203 | countType = 0; 204 | delayBeforeContinue = 0; 205 | fileReference = 85DACA7A12C1B938008716EC /* ExampleAppDelegate.m */; 206 | functionName = "-applicationDidFinishLaunching:"; 207 | hitCount = 1; 208 | ignoreCount = 0; 209 | lineNumber = 22; 210 | location = Example; 211 | modificationTime = 314686160.348726; 212 | originalNumberOfMultipleMatches = 1; 213 | state = 1; 214 | }; 215 | 85DACABC12C1BAD0008716EC /* PlistBookmark */ = { 216 | isa = PlistBookmark; 217 | fRef = 85DACA7512C1B90F008716EC /* Example-Info.plist */; 218 | fallbackIsa = PBXBookmark; 219 | isK = 0; 220 | kPath = ( 221 | ); 222 | name = "/Users/jdrake/Projects/OrganicUI/Example/Example-Info.plist"; 223 | rLen = 0; 224 | rLoc = 9223372036854775808; 225 | }; 226 | 85DACABD12C1BAD0008716EC /* PBXTextBookmark */ = { 227 | isa = PBXTextBookmark; 228 | fRef = 85DACA7A12C1B938008716EC /* ExampleAppDelegate.m */; 229 | name = "ExampleAppDelegate.m: 4"; 230 | rLen = 0; 231 | rLoc = 42; 232 | rType = 0; 233 | vrLen = 644; 234 | vrLoc = 42; 235 | }; 236 | 85DACAD212C1BBBA008716EC /* PBXTextBookmark */ = { 237 | isa = PBXTextBookmark; 238 | fRef = 85DACA7A12C1B938008716EC /* ExampleAppDelegate.m */; 239 | name = "ExampleAppDelegate.m: 12"; 240 | rLen = 0; 241 | rLoc = 200; 242 | rType = 0; 243 | vrLen = 658; 244 | vrLoc = 28; 245 | }; 246 | 85DACADD12C1BC15008716EC /* PBXTextBookmark */ = { 247 | isa = PBXTextBookmark; 248 | fRef = 85DACA7A12C1B938008716EC /* ExampleAppDelegate.m */; 249 | name = "ExampleAppDelegate.m: 12"; 250 | rLen = 0; 251 | rLoc = 200; 252 | rType = 0; 253 | vrLen = 658; 254 | vrLoc = 28; 255 | }; 256 | 85DACB0212C1BC7D008716EC /* PBXTextBookmark */ = { 257 | isa = PBXTextBookmark; 258 | fRef = 85DACA7A12C1B938008716EC /* ExampleAppDelegate.m */; 259 | name = "ExampleAppDelegate.m: 12"; 260 | rLen = 0; 261 | rLoc = 200; 262 | rType = 0; 263 | vrLen = 652; 264 | vrLoc = 28; 265 | }; 266 | 85DACB1512C1BC9B008716EC /* PBXTextBookmark */ = { 267 | isa = PBXTextBookmark; 268 | fRef = 85DACA7A12C1B938008716EC /* ExampleAppDelegate.m */; 269 | name = "ExampleAppDelegate.m: 12"; 270 | rLen = 0; 271 | rLoc = 200; 272 | rType = 0; 273 | vrLen = 658; 274 | vrLoc = 28; 275 | }; 276 | } 277 | -------------------------------------------------------------------------------- /OrganicUI.xcodeproj/jdrake.pbxuser: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | 8566A5FE12BD5C92004FA3C1 /* Project object */ = { 4 | activeBuildConfigurationName = Debug; 5 | activeTarget = 8566A60B12BD5C92004FA3C1 /* OrganicUI */; 6 | addToTargets = ( 7 | 8566A60B12BD5C92004FA3C1 /* OrganicUI */, 8 | ); 9 | codeSenseManager = 85DAC9BA12C133EE008716EC /* Code sense */; 10 | perUserDictionary = { 11 | PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = { 12 | PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; 13 | PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID; 14 | PBXFileTableDataSourceColumnWidthsKey = ( 15 | 20, 16 | 528, 17 | 20, 18 | 48, 19 | 43, 20 | 43, 21 | 20, 22 | ); 23 | PBXFileTableDataSourceColumnsKey = ( 24 | PBXFileDataSource_FiletypeID, 25 | PBXFileDataSource_Filename_ColumnID, 26 | PBXFileDataSource_Built_ColumnID, 27 | PBXFileDataSource_ObjectSize_ColumnID, 28 | PBXFileDataSource_Errors_ColumnID, 29 | PBXFileDataSource_Warnings_ColumnID, 30 | PBXFileDataSource_Target_ColumnID, 31 | ); 32 | }; 33 | PBXConfiguration.PBXTargetDataSource.PBXTargetDataSource = { 34 | PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; 35 | PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID; 36 | PBXFileTableDataSourceColumnWidthsKey = ( 37 | 20, 38 | 488, 39 | 60, 40 | 20, 41 | 48, 42 | 43, 43 | 43, 44 | ); 45 | PBXFileTableDataSourceColumnsKey = ( 46 | PBXFileDataSource_FiletypeID, 47 | PBXFileDataSource_Filename_ColumnID, 48 | PBXTargetDataSource_PrimaryAttribute, 49 | PBXFileDataSource_Built_ColumnID, 50 | PBXFileDataSource_ObjectSize_ColumnID, 51 | PBXFileDataSource_Errors_ColumnID, 52 | PBXFileDataSource_Warnings_ColumnID, 53 | ); 54 | }; 55 | PBXPerProjectTemplateStateSaveDate = 314686491; 56 | PBXWorkspaceStateSaveDate = 314686491; 57 | }; 58 | perUserProjectItems = { 59 | 85DACA6012C1B67E008716EC = 85DACA6012C1B67E008716EC /* PBXTextBookmark */; 60 | 85DACA6112C1B67E008716EC = 85DACA6112C1B67E008716EC /* PBXTextBookmark */; 61 | 85DACA6212C1B67E008716EC = 85DACA6212C1B67E008716EC /* PBXTextBookmark */; 62 | 85DACA6312C1B67E008716EC = 85DACA6312C1B67E008716EC /* PBXTextBookmark */; 63 | 85DACA6412C1B67E008716EC = 85DACA6412C1B67E008716EC /* PBXTextBookmark */; 64 | 85DACA6512C1B67E008716EC = 85DACA6512C1B67E008716EC /* PBXTextBookmark */; 65 | 85DACA6612C1B67E008716EC = 85DACA6612C1B67E008716EC /* PBXTextBookmark */; 66 | 85DACA6712C1B67E008716EC = 85DACA6712C1B67E008716EC /* PBXTextBookmark */; 67 | 85DACA6812C1B67E008716EC = 85DACA6812C1B67E008716EC /* PBXTextBookmark */; 68 | 85DACAC612C1BB05008716EC = 85DACAC612C1BB05008716EC /* PBXTextBookmark */; 69 | 85DACAD312C1BBD9008716EC = 85DACAD312C1BBD9008716EC /* PBXTextBookmark */; 70 | 85DACB1612C1BC9B008716EC /* PBXTextBookmark */ = 85DACB1612C1BC9B008716EC /* PBXTextBookmark */; 71 | }; 72 | sourceControlManager = 85DAC9B912C133EE008716EC /* Source Control */; 73 | userBuildSettings = { 74 | }; 75 | }; 76 | 8566A60B12BD5C92004FA3C1 /* OrganicUI */ = { 77 | activeExec = 0; 78 | }; 79 | 8566A61C12BD5CCB004FA3C1 /* NSColor+CGColor.h */ = { 80 | uiCtxt = { 81 | sepNavIntBoundsRect = "{{0, 0}, {706, 437}}"; 82 | sepNavSelRange = "{264, 0}"; 83 | sepNavVisRange = "{0, 269}"; 84 | }; 85 | }; 86 | 8566A61D12BD5CCB004FA3C1 /* NSColor+CGColor.m */ = { 87 | uiCtxt = { 88 | sepNavIntBoundsRect = "{{0, 0}, {706, 437}}"; 89 | sepNavSelRange = "{161, 0}"; 90 | sepNavVisRange = "{0, 578}"; 91 | }; 92 | }; 93 | 8566A61E12BD5CCB004FA3C1 /* ORController.h */ = { 94 | uiCtxt = { 95 | sepNavIntBoundsRect = "{{0, 0}, {706, 437}}"; 96 | sepNavSelRange = "{35, 0}"; 97 | sepNavVisRange = "{0, 326}"; 98 | }; 99 | }; 100 | 8566A61F12BD5CCB004FA3C1 /* ORController.m */ = { 101 | uiCtxt = { 102 | sepNavIntBoundsRect = "{{0, 0}, {706, 650}}"; 103 | sepNavSelRange = "{112, 0}"; 104 | sepNavVisRange = "{0, 519}"; 105 | }; 106 | }; 107 | 8566A62112BD5CCB004FA3C1 /* ORTitleBar.h */ = { 108 | uiCtxt = { 109 | sepNavIntBoundsRect = "{{0, 0}, {706, 437}}"; 110 | sepNavSelRange = "{252, 0}"; 111 | sepNavVisRange = "{0, 494}"; 112 | }; 113 | }; 114 | 8566A62212BD5CCB004FA3C1 /* ORTitleBar.m */ = { 115 | uiCtxt = { 116 | sepNavIntBoundsRect = "{{0, 0}, {964, 1534}}"; 117 | sepNavSelRange = "{4078, 0}"; 118 | sepNavVisRange = "{3201, 1602}"; 119 | }; 120 | }; 121 | 8566A62312BD5CCB004FA3C1 /* ORWindow.h */ = { 122 | uiCtxt = { 123 | sepNavIntBoundsRect = "{{0, 0}, {957, 437}}"; 124 | sepNavSelRange = "{207, 0}"; 125 | sepNavVisRange = "{0, 815}"; 126 | }; 127 | }; 128 | 8566A62412BD5CCB004FA3C1 /* ORWindow.m */ = { 129 | uiCtxt = { 130 | sepNavIntBoundsRect = "{{0, 0}, {964, 2834}}"; 131 | sepNavSelRange = "{90, 0}"; 132 | sepNavVisRange = "{0, 826}"; 133 | }; 134 | }; 135 | 85DAC9B912C133EE008716EC /* Source Control */ = { 136 | isa = PBXSourceControlManager; 137 | fallbackIsa = XCSourceControlManager; 138 | isSCMEnabled = 0; 139 | scmConfiguration = { 140 | repositoryNamesForRoots = { 141 | "" = ""; 142 | }; 143 | }; 144 | }; 145 | 85DAC9BA12C133EE008716EC /* Code sense */ = { 146 | isa = PBXCodeSenseManager; 147 | indexTemplatePath = ""; 148 | }; 149 | 85DACA4B12C1AFC0008716EC /* NSBezierPath+JDAdditions.h */ = { 150 | uiCtxt = { 151 | sepNavIntBoundsRect = "{{0, 0}, {706, 437}}"; 152 | sepNavSelRange = "{372, 0}"; 153 | sepNavVisRange = "{0, 439}"; 154 | }; 155 | }; 156 | 85DACA4C12C1AFC0008716EC /* NSBezierPath+JDAdditions.m */ = { 157 | uiCtxt = { 158 | sepNavIntBoundsRect = "{{0, 0}, {706, 1768}}"; 159 | sepNavSelRange = "{3418, 0}"; 160 | sepNavVisRange = "{0, 710}"; 161 | }; 162 | }; 163 | 85DACA6012C1B67E008716EC /* PBXTextBookmark */ = { 164 | isa = PBXTextBookmark; 165 | fRef = 8566A62312BD5CCB004FA3C1 /* ORWindow.h */; 166 | name = "ORWindow.h: 13"; 167 | rLen = 0; 168 | rLoc = 207; 169 | rType = 0; 170 | vrLen = 815; 171 | vrLoc = 0; 172 | }; 173 | 85DACA6112C1B67E008716EC /* PBXTextBookmark */ = { 174 | isa = PBXTextBookmark; 175 | fRef = 8566A62412BD5CCB004FA3C1 /* ORWindow.m */; 176 | name = "ORWindow.m: 6"; 177 | rLen = 0; 178 | rLoc = 90; 179 | rType = 0; 180 | vrLen = 826; 181 | vrLoc = 0; 182 | }; 183 | 85DACA6212C1B67E008716EC /* PBXTextBookmark */ = { 184 | isa = PBXTextBookmark; 185 | fRef = 8566A61E12BD5CCB004FA3C1 /* ORController.h */; 186 | name = "ORController.h: 3"; 187 | rLen = 0; 188 | rLoc = 35; 189 | rType = 0; 190 | vrLen = 326; 191 | vrLoc = 0; 192 | }; 193 | 85DACA6312C1B67E008716EC /* PBXTextBookmark */ = { 194 | isa = PBXTextBookmark; 195 | fRef = 8566A61F12BD5CCB004FA3C1 /* ORController.m */; 196 | name = "ORController.m: 6"; 197 | rLen = 0; 198 | rLoc = 112; 199 | rType = 0; 200 | vrLen = 519; 201 | vrLoc = 0; 202 | }; 203 | 85DACA6412C1B67E008716EC /* PBXTextBookmark */ = { 204 | isa = PBXTextBookmark; 205 | fRef = 85DACA4C12C1AFC0008716EC /* NSBezierPath+JDAdditions.m */; 206 | name = "NSBezierPath+JDAdditions.m: 135"; 207 | rLen = 0; 208 | rLoc = 3418; 209 | rType = 0; 210 | vrLen = 710; 211 | vrLoc = 0; 212 | }; 213 | 85DACA6512C1B67E008716EC /* PBXTextBookmark */ = { 214 | isa = PBXTextBookmark; 215 | fRef = 8566A62112BD5CCB004FA3C1 /* ORTitleBar.h */; 216 | name = "ORTitleBar.h: 15"; 217 | rLen = 0; 218 | rLoc = 252; 219 | rType = 0; 220 | vrLen = 494; 221 | vrLoc = 0; 222 | }; 223 | 85DACA6612C1B67E008716EC /* PBXTextBookmark */ = { 224 | isa = PBXTextBookmark; 225 | fRef = 8566A61C12BD5CCB004FA3C1 /* NSColor+CGColor.h */; 226 | name = "NSColor+CGColor.h: 16"; 227 | rLen = 0; 228 | rLoc = 264; 229 | rType = 0; 230 | vrLen = 269; 231 | vrLoc = 0; 232 | }; 233 | 85DACA6712C1B67E008716EC /* PBXTextBookmark */ = { 234 | isa = PBXTextBookmark; 235 | fRef = 8566A62212BD5CCB004FA3C1 /* ORTitleBar.m */; 236 | name = "ORTitleBar.m: 78"; 237 | rLen = 0; 238 | rLoc = 2947; 239 | rType = 0; 240 | vrLen = 1558; 241 | vrLoc = 1727; 242 | }; 243 | 85DACA6812C1B67E008716EC /* PBXTextBookmark */ = { 244 | isa = PBXTextBookmark; 245 | fRef = 85DACA4B12C1AFC0008716EC /* NSBezierPath+JDAdditions.h */; 246 | name = "NSBezierPath+JDAdditions.h: 15"; 247 | rLen = 0; 248 | rLoc = 372; 249 | rType = 0; 250 | vrLen = 439; 251 | vrLoc = 0; 252 | }; 253 | 85DACAC612C1BB05008716EC /* PBXTextBookmark */ = { 254 | isa = PBXTextBookmark; 255 | fRef = 8566A61D12BD5CCB004FA3C1 /* NSColor+CGColor.m */; 256 | name = "NSColor+CGColor.m: 10"; 257 | rLen = 0; 258 | rLoc = 161; 259 | rType = 0; 260 | vrLen = 578; 261 | vrLoc = 0; 262 | }; 263 | 85DACAD312C1BBD9008716EC /* PBXTextBookmark */ = { 264 | isa = PBXTextBookmark; 265 | fRef = 8566A62212BD5CCB004FA3C1 /* ORTitleBar.m */; 266 | name = "ORTitleBar.m: 102"; 267 | rLen = 0; 268 | rLoc = 4078; 269 | rType = 0; 270 | vrLen = 1523; 271 | vrLoc = 3280; 272 | }; 273 | 85DACB1612C1BC9B008716EC /* PBXTextBookmark */ = { 274 | isa = PBXTextBookmark; 275 | fRef = 8566A62212BD5CCB004FA3C1 /* ORTitleBar.m */; 276 | name = "ORTitleBar.m: 102"; 277 | rLen = 0; 278 | rLoc = 4078; 279 | rType = 0; 280 | vrLen = 1602; 281 | vrLoc = 3201; 282 | }; 283 | } 284 | -------------------------------------------------------------------------------- /Example/Example.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 46; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 8566A64B12BDFD5E004FA3C1 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8566A64A12BDFD5E004FA3C1 /* Cocoa.framework */; }; 11 | 8566A65012BDFD5E004FA3C1 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 8566A64E12BDFD5E004FA3C1 /* InfoPlist.strings */; }; 12 | 8566A65512BDFD5F004FA3C1 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8566A65312BDFD5F004FA3C1 /* MainMenu.xib */; }; 13 | 8566A65812BDFD5F004FA3C1 /* Credits.rtf in Resources */ = {isa = PBXBuildFile; fileRef = 8566A65612BDFD5F004FA3C1 /* Credits.rtf */; }; 14 | 85DACA7812C1B92A008716EC /* Example-main.m in Sources */ = {isa = PBXBuildFile; fileRef = 85DACA7712C1B92A008716EC /* Example-main.m */; }; 15 | 85DACA7B12C1B938008716EC /* ExampleAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 85DACA7A12C1B938008716EC /* ExampleAppDelegate.m */; }; 16 | 85DACAEE12C1BC44008716EC /* OrganicUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 85DACAED12C1BC44008716EC /* OrganicUI.framework */; }; 17 | 85DACAFB12C1BC77008716EC /* OrganicUI.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = 85DACAED12C1BC44008716EC /* OrganicUI.framework */; }; 18 | /* End PBXBuildFile section */ 19 | 20 | /* Begin PBXCopyFilesBuildPhase section */ 21 | 8566A66312BE08E1004FA3C1 /* CopyFiles */ = { 22 | isa = PBXCopyFilesBuildPhase; 23 | buildActionMask = 2147483647; 24 | dstPath = ""; 25 | dstSubfolderSpec = 10; 26 | files = ( 27 | 85DACAFB12C1BC77008716EC /* OrganicUI.framework in CopyFiles */, 28 | ); 29 | runOnlyForDeploymentPostprocessing = 0; 30 | }; 31 | /* End PBXCopyFilesBuildPhase section */ 32 | 33 | /* Begin PBXFileReference section */ 34 | 8566A64712BDFD5E004FA3C1 /* Example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Example.app; sourceTree = BUILT_PRODUCTS_DIR; }; 35 | 8566A64A12BDFD5E004FA3C1 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; }; 36 | 8566A64F12BDFD5E004FA3C1 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; 37 | 8566A65412BDFD5F004FA3C1 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/MainMenu.xib; sourceTree = ""; }; 38 | 8566A65712BDFD5F004FA3C1 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = en; path = en.lproj/Credits.rtf; sourceTree = ""; }; 39 | 85DACA7512C1B90F008716EC /* Example-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "Example-Info.plist"; sourceTree = ""; }; 40 | 85DACA7712C1B92A008716EC /* Example-main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "Example-main.m"; sourceTree = ""; }; 41 | 85DACA7912C1B938008716EC /* ExampleAppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ExampleAppDelegate.h; sourceTree = ""; }; 42 | 85DACA7A12C1B938008716EC /* ExampleAppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ExampleAppDelegate.m; sourceTree = ""; }; 43 | 85DACAED12C1BC44008716EC /* OrganicUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OrganicUI.framework; path = /Users/jdrake/Projects/OrganicUI/Debug/OrganicUI.framework; sourceTree = ""; }; 44 | /* End PBXFileReference section */ 45 | 46 | /* Begin PBXFrameworksBuildPhase section */ 47 | 8566A64412BDFD5E004FA3C1 /* Frameworks */ = { 48 | isa = PBXFrameworksBuildPhase; 49 | buildActionMask = 2147483647; 50 | files = ( 51 | 8566A64B12BDFD5E004FA3C1 /* Cocoa.framework in Frameworks */, 52 | 85DACAEE12C1BC44008716EC /* OrganicUI.framework in Frameworks */, 53 | ); 54 | runOnlyForDeploymentPostprocessing = 0; 55 | }; 56 | /* End PBXFrameworksBuildPhase section */ 57 | 58 | /* Begin PBXGroup section */ 59 | 8566A63812BDFD5E004FA3C1 = { 60 | isa = PBXGroup; 61 | children = ( 62 | 8566A63F12BDFD5E004FA3C1 /* Classes */, 63 | 8566A64012BDFD5E004FA3C1 /* Other Sources */, 64 | 8566A64112BDFD5E004FA3C1 /* Resources */, 65 | 8566A64212BDFD5E004FA3C1 /* Frameworks */, 66 | 8566A64812BDFD5E004FA3C1 /* Products */, 67 | ); 68 | sourceTree = ""; 69 | }; 70 | 8566A63F12BDFD5E004FA3C1 /* Classes */ = { 71 | isa = PBXGroup; 72 | children = ( 73 | 85DACA7912C1B938008716EC /* ExampleAppDelegate.h */, 74 | 85DACA7A12C1B938008716EC /* ExampleAppDelegate.m */, 75 | ); 76 | path = Classes; 77 | sourceTree = ""; 78 | }; 79 | 8566A64012BDFD5E004FA3C1 /* Other Sources */ = { 80 | isa = PBXGroup; 81 | children = ( 82 | 85DACA7712C1B92A008716EC /* Example-main.m */, 83 | ); 84 | name = "Other Sources"; 85 | sourceTree = ""; 86 | }; 87 | 8566A64112BDFD5E004FA3C1 /* Resources */ = { 88 | isa = PBXGroup; 89 | children = ( 90 | 85DACA7512C1B90F008716EC /* Example-Info.plist */, 91 | 8566A64E12BDFD5E004FA3C1 /* InfoPlist.strings */, 92 | 8566A65312BDFD5F004FA3C1 /* MainMenu.xib */, 93 | 8566A65612BDFD5F004FA3C1 /* Credits.rtf */, 94 | ); 95 | name = Resources; 96 | sourceTree = ""; 97 | }; 98 | 8566A64212BDFD5E004FA3C1 /* Frameworks */ = { 99 | isa = PBXGroup; 100 | children = ( 101 | 8566A64A12BDFD5E004FA3C1 /* Cocoa.framework */, 102 | 85DACAED12C1BC44008716EC /* OrganicUI.framework */, 103 | ); 104 | name = Frameworks; 105 | sourceTree = ""; 106 | }; 107 | 8566A64812BDFD5E004FA3C1 /* Products */ = { 108 | isa = PBXGroup; 109 | children = ( 110 | 8566A64712BDFD5E004FA3C1 /* Example.app */, 111 | ); 112 | name = Products; 113 | sourceTree = ""; 114 | }; 115 | /* End PBXGroup section */ 116 | 117 | /* Begin PBXNativeTarget section */ 118 | 8566A64612BDFD5E004FA3C1 /* Example */ = { 119 | isa = PBXNativeTarget; 120 | buildConfigurationList = 8566A65E12BDFD5F004FA3C1 /* Build configuration list for PBXNativeTarget "Example" */; 121 | buildPhases = ( 122 | 8566A64312BDFD5E004FA3C1 /* Sources */, 123 | 8566A66312BE08E1004FA3C1 /* CopyFiles */, 124 | 8566A64412BDFD5E004FA3C1 /* Frameworks */, 125 | 8566A64512BDFD5E004FA3C1 /* Resources */, 126 | ); 127 | buildRules = ( 128 | ); 129 | dependencies = ( 130 | ); 131 | name = Example; 132 | productName = Quadratus; 133 | productReference = 8566A64712BDFD5E004FA3C1 /* Example.app */; 134 | productType = "com.apple.product-type.application"; 135 | }; 136 | /* End PBXNativeTarget section */ 137 | 138 | /* Begin PBXProject section */ 139 | 8566A63A12BDFD5E004FA3C1 /* Project object */ = { 140 | isa = PBXProject; 141 | attributes = { 142 | ORGANIZATIONNAME = N/A; 143 | }; 144 | buildConfigurationList = 8566A63D12BDFD5E004FA3C1 /* Build configuration list for PBXProject "Example" */; 145 | compatibilityVersion = "Xcode 3.2"; 146 | developmentRegion = English; 147 | hasScannedForEncodings = 0; 148 | knownRegions = ( 149 | en, 150 | ); 151 | mainGroup = 8566A63812BDFD5E004FA3C1; 152 | productRefGroup = 8566A64812BDFD5E004FA3C1 /* Products */; 153 | projectDirPath = ""; 154 | projectRoot = ""; 155 | targets = ( 156 | 8566A64612BDFD5E004FA3C1 /* Example */, 157 | ); 158 | }; 159 | /* End PBXProject section */ 160 | 161 | /* Begin PBXResourcesBuildPhase section */ 162 | 8566A64512BDFD5E004FA3C1 /* Resources */ = { 163 | isa = PBXResourcesBuildPhase; 164 | buildActionMask = 2147483647; 165 | files = ( 166 | 8566A65012BDFD5E004FA3C1 /* InfoPlist.strings in Resources */, 167 | 8566A65512BDFD5F004FA3C1 /* MainMenu.xib in Resources */, 168 | 8566A65812BDFD5F004FA3C1 /* Credits.rtf in Resources */, 169 | ); 170 | runOnlyForDeploymentPostprocessing = 0; 171 | }; 172 | /* End PBXResourcesBuildPhase section */ 173 | 174 | /* Begin PBXSourcesBuildPhase section */ 175 | 8566A64312BDFD5E004FA3C1 /* Sources */ = { 176 | isa = PBXSourcesBuildPhase; 177 | buildActionMask = 2147483647; 178 | files = ( 179 | 85DACA7812C1B92A008716EC /* Example-main.m in Sources */, 180 | 85DACA7B12C1B938008716EC /* ExampleAppDelegate.m in Sources */, 181 | ); 182 | runOnlyForDeploymentPostprocessing = 0; 183 | }; 184 | /* End PBXSourcesBuildPhase section */ 185 | 186 | /* Begin PBXVariantGroup section */ 187 | 8566A64E12BDFD5E004FA3C1 /* InfoPlist.strings */ = { 188 | isa = PBXVariantGroup; 189 | children = ( 190 | 8566A64F12BDFD5E004FA3C1 /* en */, 191 | ); 192 | name = InfoPlist.strings; 193 | sourceTree = ""; 194 | }; 195 | 8566A65312BDFD5F004FA3C1 /* MainMenu.xib */ = { 196 | isa = PBXVariantGroup; 197 | children = ( 198 | 8566A65412BDFD5F004FA3C1 /* en */, 199 | ); 200 | name = MainMenu.xib; 201 | sourceTree = ""; 202 | }; 203 | 8566A65612BDFD5F004FA3C1 /* Credits.rtf */ = { 204 | isa = PBXVariantGroup; 205 | children = ( 206 | 8566A65712BDFD5F004FA3C1 /* en */, 207 | ); 208 | name = Credits.rtf; 209 | sourceTree = ""; 210 | }; 211 | /* End PBXVariantGroup section */ 212 | 213 | /* Begin XCBuildConfiguration section */ 214 | 8566A65C12BDFD5F004FA3C1 /* Debug */ = { 215 | isa = XCBuildConfiguration; 216 | buildSettings = { 217 | ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; 218 | FRAMEWORK_SEARCH_PATHS = "/Users/jdrake/Projects/OrganicUI/Debug//**"; 219 | GCC_C_LANGUAGE_STANDARD = gnu99; 220 | GCC_OPTIMIZATION_LEVEL = 0; 221 | GCC_PREPROCESSOR_DEFINITIONS = DEBUG; 222 | GCC_VERSION = 4.2; 223 | GCC_WARN_ABOUT_RETURN_TYPE = YES; 224 | GCC_WARN_UNUSED_VARIABLE = YES; 225 | MACOSX_DEPLOYMENT_TARGET = 10.6; 226 | ONLY_ACTIVE_ARCH = YES; 227 | PREBINDING = NO; 228 | SDKROOT = macosx10.6; 229 | }; 230 | name = Debug; 231 | }; 232 | 8566A65D12BDFD5F004FA3C1 /* Release */ = { 233 | isa = XCBuildConfiguration; 234 | buildSettings = { 235 | ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; 236 | GCC_C_LANGUAGE_STANDARD = gnu99; 237 | GCC_VERSION = com.apple.compilers.llvm.clang.1_0; 238 | GCC_WARN_ABOUT_RETURN_TYPE = YES; 239 | GCC_WARN_UNUSED_VARIABLE = YES; 240 | MACOSX_DEPLOYMENT_TARGET = 10.6; 241 | PREBINDING = NO; 242 | SDKROOT = macosx10.6; 243 | }; 244 | name = Release; 245 | }; 246 | 8566A65F12BDFD5F004FA3C1 /* Debug */ = { 247 | isa = XCBuildConfiguration; 248 | buildSettings = { 249 | ALWAYS_SEARCH_USER_PATHS = NO; 250 | COPY_PHASE_STRIP = NO; 251 | FRAMEWORK_SEARCH_PATHS = ( 252 | "$(inherited)", 253 | "\"$(SRCROOT)\"", 254 | "\"$(SRCROOT)/../Debug\"", 255 | ); 256 | GCC_DYNAMIC_NO_PIC = NO; 257 | GCC_ENABLE_OBJC_EXCEPTIONS = YES; 258 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 259 | GCC_PREFIX_HEADER = "Example-Prefix.pch"; 260 | INFOPLIST_FILE = "Example-Info.plist"; 261 | INSTALL_PATH = "$(HOME)/Applications"; 262 | PRODUCT_NAME = "$(TARGET_NAME)"; 263 | WRAPPER_EXTENSION = app; 264 | }; 265 | name = Debug; 266 | }; 267 | 8566A66012BDFD5F004FA3C1 /* Release */ = { 268 | isa = XCBuildConfiguration; 269 | buildSettings = { 270 | ALWAYS_SEARCH_USER_PATHS = NO; 271 | COPY_PHASE_STRIP = YES; 272 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 273 | FRAMEWORK_SEARCH_PATHS = ( 274 | "$(inherited)", 275 | "\"$(SRCROOT)\"", 276 | "\"$(SRCROOT)/../Debug\"", 277 | ); 278 | GCC_ENABLE_OBJC_EXCEPTIONS = YES; 279 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 280 | GCC_PREFIX_HEADER = "Quadratus-Prefix.pch"; 281 | INFOPLIST_FILE = "Quadratus-Info.plist"; 282 | INSTALL_PATH = "$(HOME)/Applications"; 283 | PRODUCT_NAME = "$(TARGET_NAME)"; 284 | WRAPPER_EXTENSION = app; 285 | }; 286 | name = Release; 287 | }; 288 | /* End XCBuildConfiguration section */ 289 | 290 | /* Begin XCConfigurationList section */ 291 | 8566A63D12BDFD5E004FA3C1 /* Build configuration list for PBXProject "Example" */ = { 292 | isa = XCConfigurationList; 293 | buildConfigurations = ( 294 | 8566A65C12BDFD5F004FA3C1 /* Debug */, 295 | 8566A65D12BDFD5F004FA3C1 /* Release */, 296 | ); 297 | defaultConfigurationIsVisible = 0; 298 | defaultConfigurationName = Release; 299 | }; 300 | 8566A65E12BDFD5F004FA3C1 /* Build configuration list for PBXNativeTarget "Example" */ = { 301 | isa = XCConfigurationList; 302 | buildConfigurations = ( 303 | 8566A65F12BDFD5F004FA3C1 /* Debug */, 304 | 8566A66012BDFD5F004FA3C1 /* Release */, 305 | ); 306 | defaultConfigurationIsVisible = 0; 307 | defaultConfigurationName = Release; 308 | }; 309 | /* End XCConfigurationList section */ 310 | }; 311 | rootObject = 8566A63A12BDFD5E004FA3C1 /* Project object */; 312 | } 313 | -------------------------------------------------------------------------------- /OrganicUI.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 46; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 8566A60F12BD5C92004FA3C1 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8566A60E12BD5C92004FA3C1 /* Cocoa.framework */; }; 11 | 8566A61412BD5C92004FA3C1 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 8566A61212BD5C92004FA3C1 /* InfoPlist.strings */; }; 12 | 8566A62712BD5CCB004FA3C1 /* NSColor+CGColor.h in Headers */ = {isa = PBXBuildFile; fileRef = 8566A61C12BD5CCB004FA3C1 /* NSColor+CGColor.h */; settings = {ATTRIBUTES = (Public, ); }; }; 13 | 8566A62812BD5CCB004FA3C1 /* NSColor+CGColor.m in Sources */ = {isa = PBXBuildFile; fileRef = 8566A61D12BD5CCB004FA3C1 /* NSColor+CGColor.m */; }; 14 | 8566A62912BD5CCB004FA3C1 /* ORController.h in Headers */ = {isa = PBXBuildFile; fileRef = 8566A61E12BD5CCB004FA3C1 /* ORController.h */; settings = {ATTRIBUTES = (Public, ); }; }; 15 | 8566A62A12BD5CCB004FA3C1 /* ORController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8566A61F12BD5CCB004FA3C1 /* ORController.m */; }; 16 | 8566A62B12BD5CCB004FA3C1 /* OrganicUI.h in Headers */ = {isa = PBXBuildFile; fileRef = 8566A62012BD5CCB004FA3C1 /* OrganicUI.h */; settings = {ATTRIBUTES = (Public, ); }; }; 17 | 8566A62C12BD5CCB004FA3C1 /* ORTitleBar.h in Headers */ = {isa = PBXBuildFile; fileRef = 8566A62112BD5CCB004FA3C1 /* ORTitleBar.h */; settings = {ATTRIBUTES = (Public, ); }; }; 18 | 8566A62D12BD5CCB004FA3C1 /* ORTitleBar.m in Sources */ = {isa = PBXBuildFile; fileRef = 8566A62212BD5CCB004FA3C1 /* ORTitleBar.m */; }; 19 | 8566A62E12BD5CCB004FA3C1 /* ORWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = 8566A62312BD5CCB004FA3C1 /* ORWindow.h */; settings = {ATTRIBUTES = (Public, ); }; }; 20 | 8566A62F12BD5CCB004FA3C1 /* ORWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 8566A62412BD5CCB004FA3C1 /* ORWindow.m */; }; 21 | 8566A63612BD6A32004FA3C1 /* Quartz.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8566A63412BD6A32004FA3C1 /* Quartz.framework */; }; 22 | 8566A63712BD6A32004FA3C1 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8566A63512BD6A32004FA3C1 /* QuartzCore.framework */; }; 23 | 85DACA4D12C1AFC0008716EC /* NSBezierPath+JDAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 85DACA4B12C1AFC0008716EC /* NSBezierPath+JDAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; 24 | 85DACA4E12C1AFC0008716EC /* NSBezierPath+JDAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 85DACA4C12C1AFC0008716EC /* NSBezierPath+JDAdditions.m */; }; 25 | 85F3F4D512C2B0520076AF3C /* ORNavigator.h in Headers */ = {isa = PBXBuildFile; fileRef = 85F3F4D312C2B0520076AF3C /* ORNavigator.h */; settings = {ATTRIBUTES = (Public, ); }; }; 26 | 85F3F4D612C2B0520076AF3C /* ORNavigator.m in Sources */ = {isa = PBXBuildFile; fileRef = 85F3F4D412C2B0520076AF3C /* ORNavigator.m */; }; 27 | 85FBE79312C5B194002C1290 /* ORGameWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = 85FBE79112C5B194002C1290 /* ORGameWindow.h */; settings = {ATTRIBUTES = (Public, ); }; }; 28 | 85FBE79412C5B194002C1290 /* ORGameWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 85FBE79212C5B194002C1290 /* ORGameWindow.m */; }; 29 | 85FBE80A12C5D30A002C1290 /* CATextLayer+autosize.h in Headers */ = {isa = PBXBuildFile; fileRef = 85FBE80812C5D30A002C1290 /* CATextLayer+autosize.h */; settings = {ATTRIBUTES = (Public, ); }; }; 30 | 85FBE80B12C5D30A002C1290 /* CATextLayer+autosize.m in Sources */ = {isa = PBXBuildFile; fileRef = 85FBE80912C5D30A002C1290 /* CATextLayer+autosize.m */; }; 31 | 85FBE80D12C5D3F0002C1290 /* ApplicationServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 85FBE80C12C5D3F0002C1290 /* ApplicationServices.framework */; }; 32 | 85FBE95612C69899002C1290 /* ORTransition.h in Headers */ = {isa = PBXBuildFile; fileRef = 85FBE95412C69899002C1290 /* ORTransition.h */; settings = {ATTRIBUTES = (Public, ); }; }; 33 | 85FBE95712C69899002C1290 /* ORTransition.m in Sources */ = {isa = PBXBuildFile; fileRef = 85FBE95512C69899002C1290 /* ORTransition.m */; }; 34 | /* End PBXBuildFile section */ 35 | 36 | /* Begin PBXFileReference section */ 37 | 8566A60C12BD5C92004FA3C1 /* OrganicUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = OrganicUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 38 | 8566A60E12BD5C92004FA3C1 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; }; 39 | 8566A61012BD5C92004FA3C1 /* OrganicUI-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "OrganicUI-Info.plist"; sourceTree = ""; }; 40 | 8566A61112BD5C92004FA3C1 /* OrganicUI-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "OrganicUI-Prefix.pch"; sourceTree = ""; }; 41 | 8566A61312BD5C92004FA3C1 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; 42 | 8566A61C12BD5CCB004FA3C1 /* NSColor+CGColor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSColor+CGColor.h"; sourceTree = ""; }; 43 | 8566A61D12BD5CCB004FA3C1 /* NSColor+CGColor.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSColor+CGColor.m"; sourceTree = ""; }; 44 | 8566A61E12BD5CCB004FA3C1 /* ORController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ORController.h; sourceTree = ""; }; 45 | 8566A61F12BD5CCB004FA3C1 /* ORController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ORController.m; sourceTree = ""; }; 46 | 8566A62012BD5CCB004FA3C1 /* OrganicUI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OrganicUI.h; path = Classes/OrganicUI.h; sourceTree = ""; }; 47 | 8566A62112BD5CCB004FA3C1 /* ORTitleBar.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ORTitleBar.h; sourceTree = ""; }; 48 | 8566A62212BD5CCB004FA3C1 /* ORTitleBar.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ORTitleBar.m; sourceTree = ""; }; 49 | 8566A62312BD5CCB004FA3C1 /* ORWindow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ORWindow.h; sourceTree = ""; }; 50 | 8566A62412BD5CCB004FA3C1 /* ORWindow.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ORWindow.m; sourceTree = ""; }; 51 | 8566A63412BD6A32004FA3C1 /* Quartz.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Quartz.framework; path = /System/Library/Frameworks/Quartz.framework; sourceTree = ""; }; 52 | 8566A63512BD6A32004FA3C1 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = /System/Library/Frameworks/QuartzCore.framework; sourceTree = ""; }; 53 | 85DACA4B12C1AFC0008716EC /* NSBezierPath+JDAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSBezierPath+JDAdditions.h"; sourceTree = ""; }; 54 | 85DACA4C12C1AFC0008716EC /* NSBezierPath+JDAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSBezierPath+JDAdditions.m"; sourceTree = ""; }; 55 | 85F3F4D312C2B0520076AF3C /* ORNavigator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ORNavigator.h; sourceTree = ""; }; 56 | 85F3F4D412C2B0520076AF3C /* ORNavigator.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ORNavigator.m; sourceTree = ""; }; 57 | 85FBE79112C5B194002C1290 /* ORGameWindow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ORGameWindow.h; sourceTree = ""; }; 58 | 85FBE79212C5B194002C1290 /* ORGameWindow.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ORGameWindow.m; sourceTree = ""; }; 59 | 85FBE80812C5D30A002C1290 /* CATextLayer+autosize.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "CATextLayer+autosize.h"; sourceTree = ""; }; 60 | 85FBE80912C5D30A002C1290 /* CATextLayer+autosize.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "CATextLayer+autosize.m"; sourceTree = ""; }; 61 | 85FBE80C12C5D3F0002C1290 /* ApplicationServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ApplicationServices.framework; path = System/Library/Frameworks/ApplicationServices.framework; sourceTree = SDKROOT; }; 62 | 85FBE95412C69899002C1290 /* ORTransition.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ORTransition.h; sourceTree = ""; }; 63 | 85FBE95512C69899002C1290 /* ORTransition.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ORTransition.m; sourceTree = ""; }; 64 | /* End PBXFileReference section */ 65 | 66 | /* Begin PBXFrameworksBuildPhase section */ 67 | 8566A60812BD5C92004FA3C1 /* Frameworks */ = { 68 | isa = PBXFrameworksBuildPhase; 69 | buildActionMask = 2147483647; 70 | files = ( 71 | 8566A60F12BD5C92004FA3C1 /* Cocoa.framework in Frameworks */, 72 | 8566A63612BD6A32004FA3C1 /* Quartz.framework in Frameworks */, 73 | 8566A63712BD6A32004FA3C1 /* QuartzCore.framework in Frameworks */, 74 | 85FBE80D12C5D3F0002C1290 /* ApplicationServices.framework in Frameworks */, 75 | ); 76 | runOnlyForDeploymentPostprocessing = 0; 77 | }; 78 | /* End PBXFrameworksBuildPhase section */ 79 | 80 | /* Begin PBXGroup section */ 81 | 8566A5FC12BD5C92004FA3C1 = { 82 | isa = PBXGroup; 83 | children = ( 84 | 8566A60312BD5C92004FA3C1 /* Classes */, 85 | 8566A60412BD5C92004FA3C1 /* Other Sources */, 86 | 8566A60512BD5C92004FA3C1 /* Resources */, 87 | 8566A60612BD5C92004FA3C1 /* Frameworks */, 88 | 8566A60D12BD5C92004FA3C1 /* Products */, 89 | ); 90 | sourceTree = ""; 91 | }; 92 | 8566A60312BD5C92004FA3C1 /* Classes */ = { 93 | isa = PBXGroup; 94 | children = ( 95 | 85FBE80812C5D30A002C1290 /* CATextLayer+autosize.h */, 96 | 85FBE80912C5D30A002C1290 /* CATextLayer+autosize.m */, 97 | 85FBE79112C5B194002C1290 /* ORGameWindow.h */, 98 | 85FBE79212C5B194002C1290 /* ORGameWindow.m */, 99 | 85DACA4B12C1AFC0008716EC /* NSBezierPath+JDAdditions.h */, 100 | 85DACA4C12C1AFC0008716EC /* NSBezierPath+JDAdditions.m */, 101 | 8566A61C12BD5CCB004FA3C1 /* NSColor+CGColor.h */, 102 | 8566A61D12BD5CCB004FA3C1 /* NSColor+CGColor.m */, 103 | 8566A61E12BD5CCB004FA3C1 /* ORController.h */, 104 | 8566A61F12BD5CCB004FA3C1 /* ORController.m */, 105 | 8566A62112BD5CCB004FA3C1 /* ORTitleBar.h */, 106 | 8566A62212BD5CCB004FA3C1 /* ORTitleBar.m */, 107 | 8566A62312BD5CCB004FA3C1 /* ORWindow.h */, 108 | 8566A62412BD5CCB004FA3C1 /* ORWindow.m */, 109 | 85F3F4D312C2B0520076AF3C /* ORNavigator.h */, 110 | 85F3F4D412C2B0520076AF3C /* ORNavigator.m */, 111 | 85FBE95412C69899002C1290 /* ORTransition.h */, 112 | 85FBE95512C69899002C1290 /* ORTransition.m */, 113 | ); 114 | path = Classes; 115 | sourceTree = ""; 116 | }; 117 | 8566A60412BD5C92004FA3C1 /* Other Sources */ = { 118 | isa = PBXGroup; 119 | children = ( 120 | 8566A61112BD5C92004FA3C1 /* OrganicUI-Prefix.pch */, 121 | ); 122 | name = "Other Sources"; 123 | sourceTree = ""; 124 | }; 125 | 8566A60512BD5C92004FA3C1 /* Resources */ = { 126 | isa = PBXGroup; 127 | children = ( 128 | 8566A62012BD5CCB004FA3C1 /* OrganicUI.h */, 129 | 8566A61012BD5C92004FA3C1 /* OrganicUI-Info.plist */, 130 | 8566A61212BD5C92004FA3C1 /* InfoPlist.strings */, 131 | ); 132 | name = Resources; 133 | sourceTree = ""; 134 | }; 135 | 8566A60612BD5C92004FA3C1 /* Frameworks */ = { 136 | isa = PBXGroup; 137 | children = ( 138 | 8566A63412BD6A32004FA3C1 /* Quartz.framework */, 139 | 8566A63512BD6A32004FA3C1 /* QuartzCore.framework */, 140 | 8566A60E12BD5C92004FA3C1 /* Cocoa.framework */, 141 | 85FBE80C12C5D3F0002C1290 /* ApplicationServices.framework */, 142 | ); 143 | name = Frameworks; 144 | sourceTree = ""; 145 | }; 146 | 8566A60D12BD5C92004FA3C1 /* Products */ = { 147 | isa = PBXGroup; 148 | children = ( 149 | 8566A60C12BD5C92004FA3C1 /* OrganicUI.framework */, 150 | ); 151 | name = Products; 152 | sourceTree = ""; 153 | }; 154 | /* End PBXGroup section */ 155 | 156 | /* Begin PBXHeadersBuildPhase section */ 157 | 8566A60912BD5C92004FA3C1 /* Headers */ = { 158 | isa = PBXHeadersBuildPhase; 159 | buildActionMask = 2147483647; 160 | files = ( 161 | 8566A62B12BD5CCB004FA3C1 /* OrganicUI.h in Headers */, 162 | 8566A62712BD5CCB004FA3C1 /* NSColor+CGColor.h in Headers */, 163 | 8566A62912BD5CCB004FA3C1 /* ORController.h in Headers */, 164 | 8566A62C12BD5CCB004FA3C1 /* ORTitleBar.h in Headers */, 165 | 8566A62E12BD5CCB004FA3C1 /* ORWindow.h in Headers */, 166 | 85DACA4D12C1AFC0008716EC /* NSBezierPath+JDAdditions.h in Headers */, 167 | 85F3F4D512C2B0520076AF3C /* ORNavigator.h in Headers */, 168 | 85FBE79312C5B194002C1290 /* ORGameWindow.h in Headers */, 169 | 85FBE80A12C5D30A002C1290 /* CATextLayer+autosize.h in Headers */, 170 | 85FBE95612C69899002C1290 /* ORTransition.h in Headers */, 171 | ); 172 | runOnlyForDeploymentPostprocessing = 0; 173 | }; 174 | /* End PBXHeadersBuildPhase section */ 175 | 176 | /* Begin PBXNativeTarget section */ 177 | 8566A60B12BD5C92004FA3C1 /* OrganicUI */ = { 178 | isa = PBXNativeTarget; 179 | buildConfigurationList = 8566A61712BD5C92004FA3C1 /* Build configuration list for PBXNativeTarget "OrganicUI" */; 180 | buildPhases = ( 181 | 8566A60712BD5C92004FA3C1 /* Sources */, 182 | 8566A60812BD5C92004FA3C1 /* Frameworks */, 183 | 8566A60912BD5C92004FA3C1 /* Headers */, 184 | 8566A60A12BD5C92004FA3C1 /* Resources */, 185 | ); 186 | buildRules = ( 187 | ); 188 | dependencies = ( 189 | ); 190 | name = OrganicUI; 191 | productName = OrganicUI; 192 | productReference = 8566A60C12BD5C92004FA3C1 /* OrganicUI.framework */; 193 | productType = "com.apple.product-type.framework"; 194 | }; 195 | /* End PBXNativeTarget section */ 196 | 197 | /* Begin PBXProject section */ 198 | 8566A5FE12BD5C92004FA3C1 /* Project object */ = { 199 | isa = PBXProject; 200 | attributes = { 201 | ORGANIZATIONNAME = N/A; 202 | }; 203 | buildConfigurationList = 8566A60112BD5C92004FA3C1 /* Build configuration list for PBXProject "OrganicUI" */; 204 | compatibilityVersion = "Xcode 3.2"; 205 | developmentRegion = English; 206 | hasScannedForEncodings = 0; 207 | knownRegions = ( 208 | en, 209 | ); 210 | mainGroup = 8566A5FC12BD5C92004FA3C1; 211 | productRefGroup = 8566A60D12BD5C92004FA3C1 /* Products */; 212 | projectDirPath = ""; 213 | projectRoot = ""; 214 | targets = ( 215 | 8566A60B12BD5C92004FA3C1 /* OrganicUI */, 216 | ); 217 | }; 218 | /* End PBXProject section */ 219 | 220 | /* Begin PBXResourcesBuildPhase section */ 221 | 8566A60A12BD5C92004FA3C1 /* Resources */ = { 222 | isa = PBXResourcesBuildPhase; 223 | buildActionMask = 2147483647; 224 | files = ( 225 | 8566A61412BD5C92004FA3C1 /* InfoPlist.strings in Resources */, 226 | ); 227 | runOnlyForDeploymentPostprocessing = 0; 228 | }; 229 | /* End PBXResourcesBuildPhase section */ 230 | 231 | /* Begin PBXSourcesBuildPhase section */ 232 | 8566A60712BD5C92004FA3C1 /* Sources */ = { 233 | isa = PBXSourcesBuildPhase; 234 | buildActionMask = 2147483647; 235 | files = ( 236 | 8566A62812BD5CCB004FA3C1 /* NSColor+CGColor.m in Sources */, 237 | 8566A62A12BD5CCB004FA3C1 /* ORController.m in Sources */, 238 | 8566A62D12BD5CCB004FA3C1 /* ORTitleBar.m in Sources */, 239 | 8566A62F12BD5CCB004FA3C1 /* ORWindow.m in Sources */, 240 | 85DACA4E12C1AFC0008716EC /* NSBezierPath+JDAdditions.m in Sources */, 241 | 85F3F4D612C2B0520076AF3C /* ORNavigator.m in Sources */, 242 | 85FBE79412C5B194002C1290 /* ORGameWindow.m in Sources */, 243 | 85FBE80B12C5D30A002C1290 /* CATextLayer+autosize.m in Sources */, 244 | 85FBE95712C69899002C1290 /* ORTransition.m in Sources */, 245 | ); 246 | runOnlyForDeploymentPostprocessing = 0; 247 | }; 248 | /* End PBXSourcesBuildPhase section */ 249 | 250 | /* Begin PBXVariantGroup section */ 251 | 8566A61212BD5C92004FA3C1 /* InfoPlist.strings */ = { 252 | isa = PBXVariantGroup; 253 | children = ( 254 | 8566A61312BD5C92004FA3C1 /* en */, 255 | ); 256 | name = InfoPlist.strings; 257 | sourceTree = ""; 258 | }; 259 | /* End PBXVariantGroup section */ 260 | 261 | /* Begin XCBuildConfiguration section */ 262 | 8566A61512BD5C92004FA3C1 /* Debug */ = { 263 | isa = XCBuildConfiguration; 264 | buildSettings = { 265 | ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; 266 | GCC_C_LANGUAGE_STANDARD = gnu99; 267 | GCC_OPTIMIZATION_LEVEL = 0; 268 | GCC_PREPROCESSOR_DEFINITIONS = DEBUG; 269 | GCC_VERSION = com.apple.compilers.llvm.clang.1_0; 270 | GCC_WARN_ABOUT_RETURN_TYPE = YES; 271 | GCC_WARN_UNUSED_VARIABLE = YES; 272 | MACOSX_DEPLOYMENT_TARGET = 10.6; 273 | ONLY_ACTIVE_ARCH = YES; 274 | PREBINDING = NO; 275 | SDKROOT = macosx10.6; 276 | }; 277 | name = Debug; 278 | }; 279 | 8566A61612BD5C92004FA3C1 /* Release */ = { 280 | isa = XCBuildConfiguration; 281 | buildSettings = { 282 | ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; 283 | GCC_C_LANGUAGE_STANDARD = gnu99; 284 | GCC_VERSION = com.apple.compilers.llvm.clang.1_0; 285 | GCC_WARN_ABOUT_RETURN_TYPE = YES; 286 | GCC_WARN_UNUSED_VARIABLE = YES; 287 | MACOSX_DEPLOYMENT_TARGET = 10.6; 288 | PREBINDING = NO; 289 | SDKROOT = macosx10.6; 290 | }; 291 | name = Release; 292 | }; 293 | 8566A61812BD5C92004FA3C1 /* Debug */ = { 294 | isa = XCBuildConfiguration; 295 | buildSettings = { 296 | ALWAYS_SEARCH_USER_PATHS = NO; 297 | COPY_PHASE_STRIP = NO; 298 | DYLIB_COMPATIBILITY_VERSION = 1; 299 | DYLIB_CURRENT_VERSION = 1; 300 | FRAMEWORK_VERSION = A; 301 | GCC_DYNAMIC_NO_PIC = NO; 302 | GCC_ENABLE_OBJC_EXCEPTIONS = YES; 303 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 304 | GCC_PREFIX_HEADER = "OrganicUI-Prefix.pch"; 305 | INFOPLIST_FILE = "OrganicUI-Info.plist"; 306 | INSTALL_PATH = "@executable_path/../Frameworks"; 307 | PRODUCT_NAME = "$(TARGET_NAME)"; 308 | SYMROOT = /Users/jdrake/Projects/OrganicUI; 309 | WRAPPER_EXTENSION = framework; 310 | }; 311 | name = Debug; 312 | }; 313 | 8566A61912BD5C92004FA3C1 /* Release */ = { 314 | isa = XCBuildConfiguration; 315 | buildSettings = { 316 | ALWAYS_SEARCH_USER_PATHS = NO; 317 | COPY_PHASE_STRIP = YES; 318 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 319 | DYLIB_COMPATIBILITY_VERSION = 1; 320 | DYLIB_CURRENT_VERSION = 1; 321 | FRAMEWORK_VERSION = A; 322 | GCC_ENABLE_OBJC_EXCEPTIONS = YES; 323 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 324 | GCC_PREFIX_HEADER = "OrganicUI-Prefix.pch"; 325 | INFOPLIST_FILE = "OrganicUI-Info.plist"; 326 | INSTALL_PATH = "@executable_path/../Frameworks"; 327 | PRODUCT_NAME = "$(TARGET_NAME)"; 328 | SYMROOT = /Users/jdrake/Projects/OrganicUI; 329 | WRAPPER_EXTENSION = framework; 330 | }; 331 | name = Release; 332 | }; 333 | /* End XCBuildConfiguration section */ 334 | 335 | /* Begin XCConfigurationList section */ 336 | 8566A60112BD5C92004FA3C1 /* Build configuration list for PBXProject "OrganicUI" */ = { 337 | isa = XCConfigurationList; 338 | buildConfigurations = ( 339 | 8566A61512BD5C92004FA3C1 /* Debug */, 340 | 8566A61612BD5C92004FA3C1 /* Release */, 341 | ); 342 | defaultConfigurationIsVisible = 0; 343 | defaultConfigurationName = Release; 344 | }; 345 | 8566A61712BD5C92004FA3C1 /* Build configuration list for PBXNativeTarget "OrganicUI" */ = { 346 | isa = XCConfigurationList; 347 | buildConfigurations = ( 348 | 8566A61812BD5C92004FA3C1 /* Debug */, 349 | 8566A61912BD5C92004FA3C1 /* Release */, 350 | ); 351 | defaultConfigurationIsVisible = 0; 352 | defaultConfigurationName = Release; 353 | }; 354 | /* End XCConfigurationList section */ 355 | }; 356 | rootObject = 8566A5FE12BD5C92004FA3C1 /* Project object */; 357 | } 358 | -------------------------------------------------------------------------------- /OrganicUI.xcodeproj/jdrake.mode1v3: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | ActivePerspectiveName 6 | Project 7 | AllowedModules 8 | 9 | 10 | BundleLoadPath 11 | 12 | MaxInstances 13 | n 14 | Module 15 | PBXSmartGroupTreeModule 16 | Name 17 | Groups and Files Outline View 18 | 19 | 20 | BundleLoadPath 21 | 22 | MaxInstances 23 | n 24 | Module 25 | PBXNavigatorGroup 26 | Name 27 | Editor 28 | 29 | 30 | BundleLoadPath 31 | 32 | MaxInstances 33 | n 34 | Module 35 | XCTaskListModule 36 | Name 37 | Task List 38 | 39 | 40 | BundleLoadPath 41 | 42 | MaxInstances 43 | n 44 | Module 45 | XCDetailModule 46 | Name 47 | File and Smart Group Detail Viewer 48 | 49 | 50 | BundleLoadPath 51 | 52 | MaxInstances 53 | 1 54 | Module 55 | PBXBuildResultsModule 56 | Name 57 | Detailed Build Results Viewer 58 | 59 | 60 | BundleLoadPath 61 | 62 | MaxInstances 63 | 1 64 | Module 65 | PBXProjectFindModule 66 | Name 67 | Project Batch Find Tool 68 | 69 | 70 | BundleLoadPath 71 | 72 | MaxInstances 73 | n 74 | Module 75 | XCProjectFormatConflictsModule 76 | Name 77 | Project Format Conflicts List 78 | 79 | 80 | BundleLoadPath 81 | 82 | MaxInstances 83 | n 84 | Module 85 | PBXBookmarksModule 86 | Name 87 | Bookmarks Tool 88 | 89 | 90 | BundleLoadPath 91 | 92 | MaxInstances 93 | n 94 | Module 95 | PBXClassBrowserModule 96 | Name 97 | Class Browser 98 | 99 | 100 | BundleLoadPath 101 | 102 | MaxInstances 103 | n 104 | Module 105 | PBXCVSModule 106 | Name 107 | Source Code Control Tool 108 | 109 | 110 | BundleLoadPath 111 | 112 | MaxInstances 113 | n 114 | Module 115 | PBXDebugBreakpointsModule 116 | Name 117 | Debug Breakpoints Tool 118 | 119 | 120 | BundleLoadPath 121 | 122 | MaxInstances 123 | n 124 | Module 125 | XCDockableInspector 126 | Name 127 | Inspector 128 | 129 | 130 | BundleLoadPath 131 | 132 | MaxInstances 133 | n 134 | Module 135 | PBXOpenQuicklyModule 136 | Name 137 | Open Quickly Tool 138 | 139 | 140 | BundleLoadPath 141 | 142 | MaxInstances 143 | 1 144 | Module 145 | PBXDebugSessionModule 146 | Name 147 | Debugger 148 | 149 | 150 | BundleLoadPath 151 | 152 | MaxInstances 153 | 1 154 | Module 155 | PBXDebugCLIModule 156 | Name 157 | Debug Console 158 | 159 | 160 | BundleLoadPath 161 | 162 | MaxInstances 163 | n 164 | Module 165 | XCSnapshotModule 166 | Name 167 | Snapshots Tool 168 | 169 | 170 | BundlePath 171 | /Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources 172 | Description 173 | DefaultDescriptionKey 174 | DockingSystemVisible 175 | 176 | Extension 177 | mode1v3 178 | FavBarConfig 179 | 180 | PBXProjectModuleGUID 181 | 85DAC9B612C133ED008716EC 182 | XCBarModuleItemNames 183 | 184 | XCBarModuleItems 185 | 186 | 187 | FirstTimeWindowDisplayed 188 | 189 | Identifier 190 | com.apple.perspectives.project.mode1v3 191 | MajorVersion 192 | 33 193 | MinorVersion 194 | 0 195 | Name 196 | Default 197 | Notifications 198 | 199 | OpenEditors 200 | 201 | PerspectiveWidths 202 | 203 | -1 204 | -1 205 | 206 | Perspectives 207 | 208 | 209 | ChosenToolbarItems 210 | 211 | active-combo-popup 212 | action 213 | NSToolbarFlexibleSpaceItem 214 | debugger-enable-breakpoints 215 | build 216 | build-and-go 217 | com.apple.ide.PBXToolbarStopButton 218 | get-info 219 | NSToolbarFlexibleSpaceItem 220 | com.apple.pbx.toolbar.searchfield 221 | 222 | ControllerClassBaseName 223 | 224 | IconName 225 | WindowOfProjectWithEditor 226 | Identifier 227 | perspective.project 228 | IsVertical 229 | 230 | Layout 231 | 232 | 233 | ContentConfiguration 234 | 235 | PBXBottomSmartGroupGIDs 236 | 237 | 1C37FBAC04509CD000000102 238 | 1C37FAAC04509CD000000102 239 | 1C37FABC05509CD000000102 240 | 1C37FABC05539CD112110102 241 | E2644B35053B69B200211256 242 | 1C37FABC04509CD000100104 243 | 1CC0EA4004350EF90044410B 244 | 1CC0EA4004350EF90041110B 245 | 246 | PBXProjectModuleGUID 247 | 1CE0B1FE06471DED0097A5F4 248 | PBXProjectModuleLabel 249 | Files 250 | PBXProjectStructureProvided 251 | yes 252 | PBXSmartGroupTreeModuleColumnData 253 | 254 | PBXSmartGroupTreeModuleColumnWidthsKey 255 | 256 | 186 257 | 258 | PBXSmartGroupTreeModuleColumnsKey_v4 259 | 260 | MainColumn 261 | 262 | 263 | PBXSmartGroupTreeModuleOutlineStateKey_v7 264 | 265 | PBXSmartGroupTreeModuleOutlineStateExpansionKey 266 | 267 | 8566A5FC12BD5C92004FA3C1 268 | 8566A60312BD5C92004FA3C1 269 | 8566A60D12BD5C92004FA3C1 270 | 1C37FBAC04509CD000000102 271 | 1C37FABC05509CD000000102 272 | 273 | PBXSmartGroupTreeModuleOutlineStateSelectionKey 274 | 275 | 276 | 9 277 | 1 278 | 0 279 | 280 | 281 | PBXSmartGroupTreeModuleOutlineStateVisibleRectKey 282 | {{0, 0}, {186, 637}} 283 | 284 | PBXTopSmartGroupGIDs 285 | 286 | XCIncludePerspectivesSwitch 287 | 288 | XCSharingToken 289 | com.apple.Xcode.GFSharingToken 290 | 291 | GeometryConfiguration 292 | 293 | Frame 294 | {{0, 0}, {203, 655}} 295 | GroupTreeTableConfiguration 296 | 297 | MainColumn 298 | 186 299 | 300 | RubberWindowFrame 301 | 460 180 975 696 0 0 1440 878 302 | 303 | Module 304 | PBXSmartGroupTreeModule 305 | Proportion 306 | 203pt 307 | 308 | 309 | Dock 310 | 311 | 312 | BecomeActive 313 | 314 | ContentConfiguration 315 | 316 | PBXProjectModuleGUID 317 | 1CE0B20306471E060097A5F4 318 | PBXProjectModuleLabel 319 | ORTitleBar.m 320 | PBXSplitModuleInNavigatorKey 321 | 322 | Split0 323 | 324 | PBXProjectModuleGUID 325 | 1CE0B20406471E060097A5F4 326 | PBXProjectModuleLabel 327 | ORTitleBar.m 328 | _historyCapacity 329 | 0 330 | bookmark 331 | 85DACB1612C1BC9B008716EC 332 | history 333 | 334 | 85DACA6012C1B67E008716EC 335 | 85DACA6112C1B67E008716EC 336 | 85DACA6212C1B67E008716EC 337 | 85DACA6312C1B67E008716EC 338 | 85DACA6412C1B67E008716EC 339 | 85DACA6512C1B67E008716EC 340 | 85DACA6612C1B67E008716EC 341 | 85DACA6812C1B67E008716EC 342 | 85DACAC612C1BB05008716EC 343 | 85DACAD312C1BBD9008716EC 344 | 345 | 346 | SplitCount 347 | 1 348 | 349 | StatusBarVisibility 350 | 351 | 352 | GeometryConfiguration 353 | 354 | Frame 355 | {{0, 0}, {767, 463}} 356 | RubberWindowFrame 357 | 460 180 975 696 0 0 1440 878 358 | 359 | Module 360 | PBXNavigatorGroup 361 | Proportion 362 | 463pt 363 | 364 | 365 | ContentConfiguration 366 | 367 | PBXProjectModuleGUID 368 | 1CE0B20506471E060097A5F4 369 | PBXProjectModuleLabel 370 | Detail 371 | 372 | GeometryConfiguration 373 | 374 | Frame 375 | {{0, 468}, {767, 187}} 376 | RubberWindowFrame 377 | 460 180 975 696 0 0 1440 878 378 | 379 | Module 380 | XCDetailModule 381 | Proportion 382 | 187pt 383 | 384 | 385 | Proportion 386 | 767pt 387 | 388 | 389 | Name 390 | Project 391 | ServiceClasses 392 | 393 | XCModuleDock 394 | PBXSmartGroupTreeModule 395 | XCModuleDock 396 | PBXNavigatorGroup 397 | XCDetailModule 398 | 399 | TableOfContents 400 | 401 | 85DACB1712C1BC9B008716EC 402 | 1CE0B1FE06471DED0097A5F4 403 | 85DACB1812C1BC9B008716EC 404 | 1CE0B20306471E060097A5F4 405 | 1CE0B20506471E060097A5F4 406 | 407 | ToolbarConfigUserDefaultsMinorVersion 408 | 2 409 | ToolbarConfiguration 410 | xcode.toolbar.config.defaultV3 411 | 412 | 413 | ControllerClassBaseName 414 | 415 | IconName 416 | WindowOfProject 417 | Identifier 418 | perspective.morph 419 | IsVertical 420 | 0 421 | Layout 422 | 423 | 424 | BecomeActive 425 | 1 426 | ContentConfiguration 427 | 428 | PBXBottomSmartGroupGIDs 429 | 430 | 1C37FBAC04509CD000000102 431 | 1C37FAAC04509CD000000102 432 | 1C08E77C0454961000C914BD 433 | 1C37FABC05509CD000000102 434 | 1C37FABC05539CD112110102 435 | E2644B35053B69B200211256 436 | 1C37FABC04509CD000100104 437 | 1CC0EA4004350EF90044410B 438 | 1CC0EA4004350EF90041110B 439 | 440 | PBXProjectModuleGUID 441 | 11E0B1FE06471DED0097A5F4 442 | PBXProjectModuleLabel 443 | Files 444 | PBXProjectStructureProvided 445 | yes 446 | PBXSmartGroupTreeModuleColumnData 447 | 448 | PBXSmartGroupTreeModuleColumnWidthsKey 449 | 450 | 186 451 | 452 | PBXSmartGroupTreeModuleColumnsKey_v4 453 | 454 | MainColumn 455 | 456 | 457 | PBXSmartGroupTreeModuleOutlineStateKey_v7 458 | 459 | PBXSmartGroupTreeModuleOutlineStateExpansionKey 460 | 461 | 29B97314FDCFA39411CA2CEA 462 | 1C37FABC05509CD000000102 463 | 464 | PBXSmartGroupTreeModuleOutlineStateSelectionKey 465 | 466 | 467 | 0 468 | 469 | 470 | PBXSmartGroupTreeModuleOutlineStateVisibleRectKey 471 | {{0, 0}, {186, 337}} 472 | 473 | PBXTopSmartGroupGIDs 474 | 475 | XCIncludePerspectivesSwitch 476 | 1 477 | XCSharingToken 478 | com.apple.Xcode.GFSharingToken 479 | 480 | GeometryConfiguration 481 | 482 | Frame 483 | {{0, 0}, {203, 355}} 484 | GroupTreeTableConfiguration 485 | 486 | MainColumn 487 | 186 488 | 489 | RubberWindowFrame 490 | 373 269 690 397 0 0 1440 878 491 | 492 | Module 493 | PBXSmartGroupTreeModule 494 | Proportion 495 | 100% 496 | 497 | 498 | Name 499 | Morph 500 | PreferredWidth 501 | 300 502 | ServiceClasses 503 | 504 | XCModuleDock 505 | PBXSmartGroupTreeModule 506 | 507 | TableOfContents 508 | 509 | 11E0B1FE06471DED0097A5F4 510 | 511 | ToolbarConfiguration 512 | xcode.toolbar.config.default.shortV3 513 | 514 | 515 | PerspectivesBarVisible 516 | 517 | ShelfIsVisible 518 | 519 | SourceDescription 520 | file at '/Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources/XCPerspectivesSpecificationMode1.xcperspec' 521 | StatusbarIsVisible 522 | 523 | TimeStamp 524 | 0.0 525 | ToolbarConfigUserDefaultsMinorVersion 526 | 2 527 | ToolbarDisplayMode 528 | 1 529 | ToolbarIsVisible 530 | 531 | ToolbarSizeMode 532 | 1 533 | Type 534 | Perspectives 535 | UpdateMessage 536 | The Default Workspace in this version of Xcode now includes support to hide and show the detail view (what has been referred to as the "Metro-Morph" feature). You must discard your current Default Workspace settings and update to the latest Default Workspace in order to gain this feature. Do you wish to update to the latest Workspace defaults for project '%@'? 537 | WindowJustification 538 | 5 539 | WindowOrderList 540 | 541 | 85DAC9B712C133ED008716EC 542 | /Users/jdrake/Projects/OrganicUI/OrganicUI.xcodeproj 543 | 544 | WindowString 545 | 460 180 975 696 0 0 1440 878 546 | WindowToolsV3 547 | 548 | 549 | FirstTimeWindowDisplayed 550 | 551 | Identifier 552 | windowTool.build 553 | IsVertical 554 | 555 | Layout 556 | 557 | 558 | Dock 559 | 560 | 561 | ContentConfiguration 562 | 563 | PBXProjectModuleGUID 564 | 1CD0528F0623707200166675 565 | PBXProjectModuleLabel 566 | 567 | StatusBarVisibility 568 | 569 | 570 | GeometryConfiguration 571 | 572 | Frame 573 | {{0, 0}, {500, 218}} 574 | RubberWindowFrame 575 | 25 136 500 500 0 0 1440 878 576 | 577 | Module 578 | PBXNavigatorGroup 579 | Proportion 580 | 218pt 581 | 582 | 583 | ContentConfiguration 584 | 585 | PBXProjectModuleGUID 586 | XCMainBuildResultsModuleGUID 587 | PBXProjectModuleLabel 588 | Build Results 589 | XCBuildResultsTrigger_Collapse 590 | 1021 591 | XCBuildResultsTrigger_Open 592 | 1011 593 | 594 | GeometryConfiguration 595 | 596 | Frame 597 | {{0, 223}, {500, 236}} 598 | RubberWindowFrame 599 | 25 136 500 500 0 0 1440 878 600 | 601 | Module 602 | PBXBuildResultsModule 603 | Proportion 604 | 236pt 605 | 606 | 607 | Proportion 608 | 459pt 609 | 610 | 611 | Name 612 | Build Results 613 | ServiceClasses 614 | 615 | PBXBuildResultsModule 616 | 617 | StatusbarIsVisible 618 | 619 | TableOfContents 620 | 621 | 85DAC9B712C133ED008716EC 622 | 85DACB1912C1BC9B008716EC 623 | 1CD0528F0623707200166675 624 | XCMainBuildResultsModuleGUID 625 | 626 | ToolbarConfiguration 627 | xcode.toolbar.config.buildV3 628 | WindowContentMinSize 629 | 486 300 630 | WindowString 631 | 25 136 500 500 0 0 1440 878 632 | WindowToolGUID 633 | 85DAC9B712C133ED008716EC 634 | WindowToolIsVisible 635 | 636 | 637 | 638 | Identifier 639 | windowTool.debugger 640 | Layout 641 | 642 | 643 | Dock 644 | 645 | 646 | ContentConfiguration 647 | 648 | Debugger 649 | 650 | HorizontalSplitView 651 | 652 | _collapsingFrameDimension 653 | 0.0 654 | _indexOfCollapsedView 655 | 0 656 | _percentageOfCollapsedView 657 | 0.0 658 | isCollapsed 659 | yes 660 | sizes 661 | 662 | {{0, 0}, {317, 164}} 663 | {{317, 0}, {377, 164}} 664 | 665 | 666 | VerticalSplitView 667 | 668 | _collapsingFrameDimension 669 | 0.0 670 | _indexOfCollapsedView 671 | 0 672 | _percentageOfCollapsedView 673 | 0.0 674 | isCollapsed 675 | yes 676 | sizes 677 | 678 | {{0, 0}, {694, 164}} 679 | {{0, 164}, {694, 216}} 680 | 681 | 682 | 683 | LauncherConfigVersion 684 | 8 685 | PBXProjectModuleGUID 686 | 1C162984064C10D400B95A72 687 | PBXProjectModuleLabel 688 | Debug - GLUTExamples (Underwater) 689 | 690 | GeometryConfiguration 691 | 692 | DebugConsoleDrawerSize 693 | {100, 120} 694 | DebugConsoleVisible 695 | None 696 | DebugConsoleWindowFrame 697 | {{200, 200}, {500, 300}} 698 | DebugSTDIOWindowFrame 699 | {{200, 200}, {500, 300}} 700 | Frame 701 | {{0, 0}, {694, 380}} 702 | RubberWindowFrame 703 | 321 238 694 422 0 0 1440 878 704 | 705 | Module 706 | PBXDebugSessionModule 707 | Proportion 708 | 100% 709 | 710 | 711 | Proportion 712 | 100% 713 | 714 | 715 | Name 716 | Debugger 717 | ServiceClasses 718 | 719 | PBXDebugSessionModule 720 | 721 | StatusbarIsVisible 722 | 1 723 | TableOfContents 724 | 725 | 1CD10A99069EF8BA00B06720 726 | 1C0AD2AB069F1E9B00FABCE6 727 | 1C162984064C10D400B95A72 728 | 1C0AD2AC069F1E9B00FABCE6 729 | 730 | ToolbarConfiguration 731 | xcode.toolbar.config.debugV3 732 | WindowString 733 | 321 238 694 422 0 0 1440 878 734 | WindowToolGUID 735 | 1CD10A99069EF8BA00B06720 736 | WindowToolIsVisible 737 | 0 738 | 739 | 740 | Identifier 741 | windowTool.find 742 | Layout 743 | 744 | 745 | Dock 746 | 747 | 748 | Dock 749 | 750 | 751 | ContentConfiguration 752 | 753 | PBXProjectModuleGUID 754 | 1CDD528C0622207200134675 755 | PBXProjectModuleLabel 756 | <No Editor> 757 | PBXSplitModuleInNavigatorKey 758 | 759 | Split0 760 | 761 | PBXProjectModuleGUID 762 | 1CD0528D0623707200166675 763 | 764 | SplitCount 765 | 1 766 | 767 | StatusBarVisibility 768 | 1 769 | 770 | GeometryConfiguration 771 | 772 | Frame 773 | {{0, 0}, {781, 167}} 774 | RubberWindowFrame 775 | 62 385 781 470 0 0 1440 878 776 | 777 | Module 778 | PBXNavigatorGroup 779 | Proportion 780 | 781pt 781 | 782 | 783 | Proportion 784 | 50% 785 | 786 | 787 | BecomeActive 788 | 1 789 | ContentConfiguration 790 | 791 | PBXProjectModuleGUID 792 | 1CD0528E0623707200166675 793 | PBXProjectModuleLabel 794 | Project Find 795 | 796 | GeometryConfiguration 797 | 798 | Frame 799 | {{8, 0}, {773, 254}} 800 | RubberWindowFrame 801 | 62 385 781 470 0 0 1440 878 802 | 803 | Module 804 | PBXProjectFindModule 805 | Proportion 806 | 50% 807 | 808 | 809 | Proportion 810 | 428pt 811 | 812 | 813 | Name 814 | Project Find 815 | ServiceClasses 816 | 817 | PBXProjectFindModule 818 | 819 | StatusbarIsVisible 820 | 1 821 | TableOfContents 822 | 823 | 1C530D57069F1CE1000CFCEE 824 | 1C530D58069F1CE1000CFCEE 825 | 1C530D59069F1CE1000CFCEE 826 | 1CDD528C0622207200134675 827 | 1C530D5A069F1CE1000CFCEE 828 | 1CE0B1FE06471DED0097A5F4 829 | 1CD0528E0623707200166675 830 | 831 | WindowString 832 | 62 385 781 470 0 0 1440 878 833 | WindowToolGUID 834 | 1C530D57069F1CE1000CFCEE 835 | WindowToolIsVisible 836 | 0 837 | 838 | 839 | Identifier 840 | MENUSEPARATOR 841 | 842 | 843 | Identifier 844 | windowTool.debuggerConsole 845 | Layout 846 | 847 | 848 | Dock 849 | 850 | 851 | BecomeActive 852 | 1 853 | ContentConfiguration 854 | 855 | PBXProjectModuleGUID 856 | 1C78EAAC065D492600B07095 857 | PBXProjectModuleLabel 858 | Debugger Console 859 | 860 | GeometryConfiguration 861 | 862 | Frame 863 | {{0, 0}, {650, 250}} 864 | RubberWindowFrame 865 | 516 632 650 250 0 0 1680 1027 866 | 867 | Module 868 | PBXDebugCLIModule 869 | Proportion 870 | 209pt 871 | 872 | 873 | Proportion 874 | 209pt 875 | 876 | 877 | Name 878 | Debugger Console 879 | ServiceClasses 880 | 881 | PBXDebugCLIModule 882 | 883 | StatusbarIsVisible 884 | 1 885 | TableOfContents 886 | 887 | 1C78EAAD065D492600B07095 888 | 1C78EAAE065D492600B07095 889 | 1C78EAAC065D492600B07095 890 | 891 | ToolbarConfiguration 892 | xcode.toolbar.config.consoleV3 893 | WindowString 894 | 650 41 650 250 0 0 1280 1002 895 | WindowToolGUID 896 | 1C78EAAD065D492600B07095 897 | WindowToolIsVisible 898 | 0 899 | 900 | 901 | Identifier 902 | windowTool.snapshots 903 | Layout 904 | 905 | 906 | Dock 907 | 908 | 909 | Module 910 | XCSnapshotModule 911 | Proportion 912 | 100% 913 | 914 | 915 | Proportion 916 | 100% 917 | 918 | 919 | Name 920 | Snapshots 921 | ServiceClasses 922 | 923 | XCSnapshotModule 924 | 925 | StatusbarIsVisible 926 | Yes 927 | ToolbarConfiguration 928 | xcode.toolbar.config.snapshots 929 | WindowString 930 | 315 824 300 550 0 0 1440 878 931 | WindowToolIsVisible 932 | Yes 933 | 934 | 935 | Identifier 936 | windowTool.scm 937 | Layout 938 | 939 | 940 | Dock 941 | 942 | 943 | ContentConfiguration 944 | 945 | PBXProjectModuleGUID 946 | 1C78EAB2065D492600B07095 947 | PBXProjectModuleLabel 948 | <No Editor> 949 | PBXSplitModuleInNavigatorKey 950 | 951 | Split0 952 | 953 | PBXProjectModuleGUID 954 | 1C78EAB3065D492600B07095 955 | 956 | SplitCount 957 | 1 958 | 959 | StatusBarVisibility 960 | 1 961 | 962 | GeometryConfiguration 963 | 964 | Frame 965 | {{0, 0}, {452, 0}} 966 | RubberWindowFrame 967 | 743 379 452 308 0 0 1280 1002 968 | 969 | Module 970 | PBXNavigatorGroup 971 | Proportion 972 | 0pt 973 | 974 | 975 | BecomeActive 976 | 1 977 | ContentConfiguration 978 | 979 | PBXProjectModuleGUID 980 | 1CD052920623707200166675 981 | PBXProjectModuleLabel 982 | SCM 983 | 984 | GeometryConfiguration 985 | 986 | ConsoleFrame 987 | {{0, 259}, {452, 0}} 988 | Frame 989 | {{0, 7}, {452, 259}} 990 | RubberWindowFrame 991 | 743 379 452 308 0 0 1280 1002 992 | TableConfiguration 993 | 994 | Status 995 | 30 996 | FileName 997 | 199 998 | Path 999 | 197.0950012207031 1000 | 1001 | TableFrame 1002 | {{0, 0}, {452, 250}} 1003 | 1004 | Module 1005 | PBXCVSModule 1006 | Proportion 1007 | 262pt 1008 | 1009 | 1010 | Proportion 1011 | 266pt 1012 | 1013 | 1014 | Name 1015 | SCM 1016 | ServiceClasses 1017 | 1018 | PBXCVSModule 1019 | 1020 | StatusbarIsVisible 1021 | 1 1022 | TableOfContents 1023 | 1024 | 1C78EAB4065D492600B07095 1025 | 1C78EAB5065D492600B07095 1026 | 1C78EAB2065D492600B07095 1027 | 1CD052920623707200166675 1028 | 1029 | ToolbarConfiguration 1030 | xcode.toolbar.config.scm 1031 | WindowString 1032 | 743 379 452 308 0 0 1280 1002 1033 | 1034 | 1035 | Identifier 1036 | windowTool.breakpoints 1037 | IsVertical 1038 | 0 1039 | Layout 1040 | 1041 | 1042 | Dock 1043 | 1044 | 1045 | BecomeActive 1046 | 1 1047 | ContentConfiguration 1048 | 1049 | PBXBottomSmartGroupGIDs 1050 | 1051 | 1C77FABC04509CD000000102 1052 | 1053 | PBXProjectModuleGUID 1054 | 1CE0B1FE06471DED0097A5F4 1055 | PBXProjectModuleLabel 1056 | Files 1057 | PBXProjectStructureProvided 1058 | no 1059 | PBXSmartGroupTreeModuleColumnData 1060 | 1061 | PBXSmartGroupTreeModuleColumnWidthsKey 1062 | 1063 | 168 1064 | 1065 | PBXSmartGroupTreeModuleColumnsKey_v4 1066 | 1067 | MainColumn 1068 | 1069 | 1070 | PBXSmartGroupTreeModuleOutlineStateKey_v7 1071 | 1072 | PBXSmartGroupTreeModuleOutlineStateExpansionKey 1073 | 1074 | 1C77FABC04509CD000000102 1075 | 1076 | PBXSmartGroupTreeModuleOutlineStateSelectionKey 1077 | 1078 | 1079 | 0 1080 | 1081 | 1082 | PBXSmartGroupTreeModuleOutlineStateVisibleRectKey 1083 | {{0, 0}, {168, 350}} 1084 | 1085 | PBXTopSmartGroupGIDs 1086 | 1087 | XCIncludePerspectivesSwitch 1088 | 0 1089 | 1090 | GeometryConfiguration 1091 | 1092 | Frame 1093 | {{0, 0}, {185, 368}} 1094 | GroupTreeTableConfiguration 1095 | 1096 | MainColumn 1097 | 168 1098 | 1099 | RubberWindowFrame 1100 | 315 424 744 409 0 0 1440 878 1101 | 1102 | Module 1103 | PBXSmartGroupTreeModule 1104 | Proportion 1105 | 185pt 1106 | 1107 | 1108 | ContentConfiguration 1109 | 1110 | PBXProjectModuleGUID 1111 | 1CA1AED706398EBD00589147 1112 | PBXProjectModuleLabel 1113 | Detail 1114 | 1115 | GeometryConfiguration 1116 | 1117 | Frame 1118 | {{190, 0}, {554, 368}} 1119 | RubberWindowFrame 1120 | 315 424 744 409 0 0 1440 878 1121 | 1122 | Module 1123 | XCDetailModule 1124 | Proportion 1125 | 554pt 1126 | 1127 | 1128 | Proportion 1129 | 368pt 1130 | 1131 | 1132 | MajorVersion 1133 | 3 1134 | MinorVersion 1135 | 0 1136 | Name 1137 | Breakpoints 1138 | ServiceClasses 1139 | 1140 | PBXSmartGroupTreeModule 1141 | XCDetailModule 1142 | 1143 | StatusbarIsVisible 1144 | 1 1145 | TableOfContents 1146 | 1147 | 1CDDB66807F98D9800BB5817 1148 | 1CDDB66907F98D9800BB5817 1149 | 1CE0B1FE06471DED0097A5F4 1150 | 1CA1AED706398EBD00589147 1151 | 1152 | ToolbarConfiguration 1153 | xcode.toolbar.config.breakpointsV3 1154 | WindowString 1155 | 315 424 744 409 0 0 1440 878 1156 | WindowToolGUID 1157 | 1CDDB66807F98D9800BB5817 1158 | WindowToolIsVisible 1159 | 1 1160 | 1161 | 1162 | Identifier 1163 | windowTool.debugAnimator 1164 | Layout 1165 | 1166 | 1167 | Dock 1168 | 1169 | 1170 | Module 1171 | PBXNavigatorGroup 1172 | Proportion 1173 | 100% 1174 | 1175 | 1176 | Proportion 1177 | 100% 1178 | 1179 | 1180 | Name 1181 | Debug Visualizer 1182 | ServiceClasses 1183 | 1184 | PBXNavigatorGroup 1185 | 1186 | StatusbarIsVisible 1187 | 1 1188 | ToolbarConfiguration 1189 | xcode.toolbar.config.debugAnimatorV3 1190 | WindowString 1191 | 100 100 700 500 0 0 1280 1002 1192 | 1193 | 1194 | Identifier 1195 | windowTool.bookmarks 1196 | Layout 1197 | 1198 | 1199 | Dock 1200 | 1201 | 1202 | Module 1203 | PBXBookmarksModule 1204 | Proportion 1205 | 100% 1206 | 1207 | 1208 | Proportion 1209 | 100% 1210 | 1211 | 1212 | Name 1213 | Bookmarks 1214 | ServiceClasses 1215 | 1216 | PBXBookmarksModule 1217 | 1218 | StatusbarIsVisible 1219 | 0 1220 | WindowString 1221 | 538 42 401 187 0 0 1280 1002 1222 | 1223 | 1224 | Identifier 1225 | windowTool.projectFormatConflicts 1226 | Layout 1227 | 1228 | 1229 | Dock 1230 | 1231 | 1232 | Module 1233 | XCProjectFormatConflictsModule 1234 | Proportion 1235 | 100% 1236 | 1237 | 1238 | Proportion 1239 | 100% 1240 | 1241 | 1242 | Name 1243 | Project Format Conflicts 1244 | ServiceClasses 1245 | 1246 | XCProjectFormatConflictsModule 1247 | 1248 | StatusbarIsVisible 1249 | 0 1250 | WindowContentMinSize 1251 | 450 300 1252 | WindowString 1253 | 50 850 472 307 0 0 1440 877 1254 | 1255 | 1256 | Identifier 1257 | windowTool.classBrowser 1258 | Layout 1259 | 1260 | 1261 | Dock 1262 | 1263 | 1264 | BecomeActive 1265 | 1 1266 | ContentConfiguration 1267 | 1268 | OptionsSetName 1269 | Hierarchy, all classes 1270 | PBXProjectModuleGUID 1271 | 1CA6456E063B45B4001379D8 1272 | PBXProjectModuleLabel 1273 | Class Browser - NSObject 1274 | 1275 | GeometryConfiguration 1276 | 1277 | ClassesFrame 1278 | {{0, 0}, {374, 96}} 1279 | ClassesTreeTableConfiguration 1280 | 1281 | PBXClassNameColumnIdentifier 1282 | 208 1283 | PBXClassBookColumnIdentifier 1284 | 22 1285 | 1286 | Frame 1287 | {{0, 0}, {630, 331}} 1288 | MembersFrame 1289 | {{0, 105}, {374, 395}} 1290 | MembersTreeTableConfiguration 1291 | 1292 | PBXMemberTypeIconColumnIdentifier 1293 | 22 1294 | PBXMemberNameColumnIdentifier 1295 | 216 1296 | PBXMemberTypeColumnIdentifier 1297 | 97 1298 | PBXMemberBookColumnIdentifier 1299 | 22 1300 | 1301 | PBXModuleWindowStatusBarHidden2 1302 | 1 1303 | RubberWindowFrame 1304 | 385 179 630 352 0 0 1440 878 1305 | 1306 | Module 1307 | PBXClassBrowserModule 1308 | Proportion 1309 | 332pt 1310 | 1311 | 1312 | Proportion 1313 | 332pt 1314 | 1315 | 1316 | Name 1317 | Class Browser 1318 | ServiceClasses 1319 | 1320 | PBXClassBrowserModule 1321 | 1322 | StatusbarIsVisible 1323 | 0 1324 | TableOfContents 1325 | 1326 | 1C0AD2AF069F1E9B00FABCE6 1327 | 1C0AD2B0069F1E9B00FABCE6 1328 | 1CA6456E063B45B4001379D8 1329 | 1330 | ToolbarConfiguration 1331 | xcode.toolbar.config.classbrowser 1332 | WindowString 1333 | 385 179 630 352 0 0 1440 878 1334 | WindowToolGUID 1335 | 1C0AD2AF069F1E9B00FABCE6 1336 | WindowToolIsVisible 1337 | 0 1338 | 1339 | 1340 | Identifier 1341 | windowTool.refactoring 1342 | IncludeInToolsMenu 1343 | 0 1344 | Layout 1345 | 1346 | 1347 | Dock 1348 | 1349 | 1350 | BecomeActive 1351 | 1 1352 | GeometryConfiguration 1353 | 1354 | Frame 1355 | {0, 0}, {500, 335} 1356 | RubberWindowFrame 1357 | {0, 0}, {500, 335} 1358 | 1359 | Module 1360 | XCRefactoringModule 1361 | Proportion 1362 | 100% 1363 | 1364 | 1365 | Proportion 1366 | 100% 1367 | 1368 | 1369 | Name 1370 | Refactoring 1371 | ServiceClasses 1372 | 1373 | XCRefactoringModule 1374 | 1375 | WindowString 1376 | 200 200 500 356 0 0 1920 1200 1377 | 1378 | 1379 | 1380 | 1381 | -------------------------------------------------------------------------------- /Example/Example.xcodeproj/jdrake.mode1v3: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | ActivePerspectiveName 6 | Project 7 | AllowedModules 8 | 9 | 10 | BundleLoadPath 11 | 12 | MaxInstances 13 | n 14 | Module 15 | PBXSmartGroupTreeModule 16 | Name 17 | Groups and Files Outline View 18 | 19 | 20 | BundleLoadPath 21 | 22 | MaxInstances 23 | n 24 | Module 25 | PBXNavigatorGroup 26 | Name 27 | Editor 28 | 29 | 30 | BundleLoadPath 31 | 32 | MaxInstances 33 | n 34 | Module 35 | XCTaskListModule 36 | Name 37 | Task List 38 | 39 | 40 | BundleLoadPath 41 | 42 | MaxInstances 43 | n 44 | Module 45 | XCDetailModule 46 | Name 47 | File and Smart Group Detail Viewer 48 | 49 | 50 | BundleLoadPath 51 | 52 | MaxInstances 53 | 1 54 | Module 55 | PBXBuildResultsModule 56 | Name 57 | Detailed Build Results Viewer 58 | 59 | 60 | BundleLoadPath 61 | 62 | MaxInstances 63 | 1 64 | Module 65 | PBXProjectFindModule 66 | Name 67 | Project Batch Find Tool 68 | 69 | 70 | BundleLoadPath 71 | 72 | MaxInstances 73 | n 74 | Module 75 | XCProjectFormatConflictsModule 76 | Name 77 | Project Format Conflicts List 78 | 79 | 80 | BundleLoadPath 81 | 82 | MaxInstances 83 | n 84 | Module 85 | PBXBookmarksModule 86 | Name 87 | Bookmarks Tool 88 | 89 | 90 | BundleLoadPath 91 | 92 | MaxInstances 93 | n 94 | Module 95 | PBXClassBrowserModule 96 | Name 97 | Class Browser 98 | 99 | 100 | BundleLoadPath 101 | 102 | MaxInstances 103 | n 104 | Module 105 | PBXCVSModule 106 | Name 107 | Source Code Control Tool 108 | 109 | 110 | BundleLoadPath 111 | 112 | MaxInstances 113 | n 114 | Module 115 | PBXDebugBreakpointsModule 116 | Name 117 | Debug Breakpoints Tool 118 | 119 | 120 | BundleLoadPath 121 | 122 | MaxInstances 123 | n 124 | Module 125 | XCDockableInspector 126 | Name 127 | Inspector 128 | 129 | 130 | BundleLoadPath 131 | 132 | MaxInstances 133 | n 134 | Module 135 | PBXOpenQuicklyModule 136 | Name 137 | Open Quickly Tool 138 | 139 | 140 | BundleLoadPath 141 | 142 | MaxInstances 143 | 1 144 | Module 145 | PBXDebugSessionModule 146 | Name 147 | Debugger 148 | 149 | 150 | BundleLoadPath 151 | 152 | MaxInstances 153 | 1 154 | Module 155 | PBXDebugCLIModule 156 | Name 157 | Debug Console 158 | 159 | 160 | BundleLoadPath 161 | 162 | MaxInstances 163 | n 164 | Module 165 | XCSnapshotModule 166 | Name 167 | Snapshots Tool 168 | 169 | 170 | BundlePath 171 | /Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources 172 | Description 173 | DefaultDescriptionKey 174 | DockingSystemVisible 175 | 176 | Extension 177 | mode1v3 178 | FavBarConfig 179 | 180 | PBXProjectModuleGUID 181 | 85DAC9DA12C134DE008716EC 182 | XCBarModuleItemNames 183 | 184 | XCBarModuleItems 185 | 186 | 187 | FirstTimeWindowDisplayed 188 | 189 | Identifier 190 | com.apple.perspectives.project.mode1v3 191 | MajorVersion 192 | 33 193 | MinorVersion 194 | 0 195 | Name 196 | Default 197 | Notifications 198 | 199 | OpenEditors 200 | 201 | PerspectiveWidths 202 | 203 | -1 204 | -1 205 | 206 | Perspectives 207 | 208 | 209 | ChosenToolbarItems 210 | 211 | active-combo-popup 212 | action 213 | NSToolbarFlexibleSpaceItem 214 | debugger-enable-breakpoints 215 | build 216 | build-and-go 217 | com.apple.ide.PBXToolbarStopButton 218 | get-info 219 | NSToolbarFlexibleSpaceItem 220 | com.apple.pbx.toolbar.searchfield 221 | 222 | ControllerClassBaseName 223 | 224 | IconName 225 | WindowOfProjectWithEditor 226 | Identifier 227 | perspective.project 228 | IsVertical 229 | 230 | Layout 231 | 232 | 233 | BecomeActive 234 | 235 | ContentConfiguration 236 | 237 | PBXBottomSmartGroupGIDs 238 | 239 | 1C37FBAC04509CD000000102 240 | 1C37FAAC04509CD000000102 241 | 1C37FABC05509CD000000102 242 | 1C37FABC05539CD112110102 243 | E2644B35053B69B200211256 244 | 1C37FABC04509CD000100104 245 | 1CC0EA4004350EF90044410B 246 | 1CC0EA4004350EF90041110B 247 | 248 | PBXProjectModuleGUID 249 | 1CE0B1FE06471DED0097A5F4 250 | PBXProjectModuleLabel 251 | Files 252 | PBXProjectStructureProvided 253 | yes 254 | PBXSmartGroupTreeModuleColumnData 255 | 256 | PBXSmartGroupTreeModuleColumnWidthsKey 257 | 258 | 186 259 | 260 | PBXSmartGroupTreeModuleColumnsKey_v4 261 | 262 | MainColumn 263 | 264 | 265 | PBXSmartGroupTreeModuleOutlineStateKey_v7 266 | 267 | PBXSmartGroupTreeModuleOutlineStateExpansionKey 268 | 269 | 8566A63812BDFD5E004FA3C1 270 | 8566A63F12BDFD5E004FA3C1 271 | 8566A64012BDFD5E004FA3C1 272 | 8566A64112BDFD5E004FA3C1 273 | 8566A65312BDFD5F004FA3C1 274 | 8566A64212BDFD5E004FA3C1 275 | 8566A64812BDFD5E004FA3C1 276 | 1C37FBAC04509CD000000102 277 | 85DACADA12C1BC11008716EC 278 | 85DACB0012C1BC7D008716EC 279 | 85DACB0112C1BC7D008716EC 280 | 1C37FABC05509CD000000102 281 | 282 | PBXSmartGroupTreeModuleOutlineStateSelectionKey 283 | 284 | 285 | 23 286 | 22 287 | 18 288 | 17 289 | 290 | 291 | PBXSmartGroupTreeModuleOutlineStateVisibleRectKey 292 | {{0, 0}, {186, 589}} 293 | 294 | PBXTopSmartGroupGIDs 295 | 296 | XCIncludePerspectivesSwitch 297 | 298 | XCSharingToken 299 | com.apple.Xcode.GFSharingToken 300 | 301 | GeometryConfiguration 302 | 303 | Frame 304 | {{0, 0}, {203, 607}} 305 | GroupTreeTableConfiguration 306 | 307 | MainColumn 308 | 186 309 | 310 | RubberWindowFrame 311 | 98 101 916 648 0 0 1440 878 312 | 313 | Module 314 | PBXSmartGroupTreeModule 315 | Proportion 316 | 203pt 317 | 318 | 319 | Dock 320 | 321 | 322 | ContentConfiguration 323 | 324 | PBXProjectModuleGUID 325 | 1CE0B20306471E060097A5F4 326 | PBXProjectModuleLabel 327 | ExampleAppDelegate.m 328 | PBXSplitModuleInNavigatorKey 329 | 330 | Split0 331 | 332 | PBXProjectModuleGUID 333 | 1CE0B20406471E060097A5F4 334 | PBXProjectModuleLabel 335 | ExampleAppDelegate.m 336 | _historyCapacity 337 | 0 338 | bookmark 339 | 85DACB1512C1BC9B008716EC 340 | history 341 | 342 | 85DACA8812C1B9F0008716EC 343 | 85DACAA512C1BA98008716EC 344 | 85DACABC12C1BAD0008716EC 345 | 85DACAD212C1BBBA008716EC 346 | 347 | 348 | SplitCount 349 | 1 350 | 351 | StatusBarVisibility 352 | 353 | 354 | GeometryConfiguration 355 | 356 | Frame 357 | {{0, 0}, {708, 401}} 358 | RubberWindowFrame 359 | 98 101 916 648 0 0 1440 878 360 | 361 | Module 362 | PBXNavigatorGroup 363 | Proportion 364 | 401pt 365 | 366 | 367 | ContentConfiguration 368 | 369 | PBXProjectModuleGUID 370 | 1CE0B20506471E060097A5F4 371 | PBXProjectModuleLabel 372 | Detail 373 | 374 | GeometryConfiguration 375 | 376 | Frame 377 | {{0, 406}, {708, 201}} 378 | RubberWindowFrame 379 | 98 101 916 648 0 0 1440 878 380 | 381 | Module 382 | XCDetailModule 383 | Proportion 384 | 201pt 385 | 386 | 387 | Proportion 388 | 708pt 389 | 390 | 391 | Name 392 | Project 393 | ServiceClasses 394 | 395 | XCModuleDock 396 | PBXSmartGroupTreeModule 397 | XCModuleDock 398 | PBXNavigatorGroup 399 | XCDetailModule 400 | 401 | TableOfContents 402 | 403 | 85DACADE12C1BC15008716EC 404 | 1CE0B1FE06471DED0097A5F4 405 | 85DACADF12C1BC15008716EC 406 | 1CE0B20306471E060097A5F4 407 | 1CE0B20506471E060097A5F4 408 | 409 | ToolbarConfigUserDefaultsMinorVersion 410 | 2 411 | ToolbarConfiguration 412 | xcode.toolbar.config.defaultV3 413 | 414 | 415 | ControllerClassBaseName 416 | 417 | IconName 418 | WindowOfProject 419 | Identifier 420 | perspective.morph 421 | IsVertical 422 | 0 423 | Layout 424 | 425 | 426 | BecomeActive 427 | 1 428 | ContentConfiguration 429 | 430 | PBXBottomSmartGroupGIDs 431 | 432 | 1C37FBAC04509CD000000102 433 | 1C37FAAC04509CD000000102 434 | 1C08E77C0454961000C914BD 435 | 1C37FABC05509CD000000102 436 | 1C37FABC05539CD112110102 437 | E2644B35053B69B200211256 438 | 1C37FABC04509CD000100104 439 | 1CC0EA4004350EF90044410B 440 | 1CC0EA4004350EF90041110B 441 | 442 | PBXProjectModuleGUID 443 | 11E0B1FE06471DED0097A5F4 444 | PBXProjectModuleLabel 445 | Files 446 | PBXProjectStructureProvided 447 | yes 448 | PBXSmartGroupTreeModuleColumnData 449 | 450 | PBXSmartGroupTreeModuleColumnWidthsKey 451 | 452 | 186 453 | 454 | PBXSmartGroupTreeModuleColumnsKey_v4 455 | 456 | MainColumn 457 | 458 | 459 | PBXSmartGroupTreeModuleOutlineStateKey_v7 460 | 461 | PBXSmartGroupTreeModuleOutlineStateExpansionKey 462 | 463 | 29B97314FDCFA39411CA2CEA 464 | 1C37FABC05509CD000000102 465 | 466 | PBXSmartGroupTreeModuleOutlineStateSelectionKey 467 | 468 | 469 | 0 470 | 471 | 472 | PBXSmartGroupTreeModuleOutlineStateVisibleRectKey 473 | {{0, 0}, {186, 337}} 474 | 475 | PBXTopSmartGroupGIDs 476 | 477 | XCIncludePerspectivesSwitch 478 | 1 479 | XCSharingToken 480 | com.apple.Xcode.GFSharingToken 481 | 482 | GeometryConfiguration 483 | 484 | Frame 485 | {{0, 0}, {203, 355}} 486 | GroupTreeTableConfiguration 487 | 488 | MainColumn 489 | 186 490 | 491 | RubberWindowFrame 492 | 373 269 690 397 0 0 1440 878 493 | 494 | Module 495 | PBXSmartGroupTreeModule 496 | Proportion 497 | 100% 498 | 499 | 500 | Name 501 | Morph 502 | PreferredWidth 503 | 300 504 | ServiceClasses 505 | 506 | XCModuleDock 507 | PBXSmartGroupTreeModule 508 | 509 | TableOfContents 510 | 511 | 11E0B1FE06471DED0097A5F4 512 | 513 | ToolbarConfiguration 514 | xcode.toolbar.config.default.shortV3 515 | 516 | 517 | PerspectivesBarVisible 518 | 519 | ShelfIsVisible 520 | 521 | SourceDescription 522 | file at '/Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources/XCPerspectivesSpecificationMode1.xcperspec' 523 | StatusbarIsVisible 524 | 525 | TimeStamp 526 | 0.0 527 | ToolbarConfigUserDefaultsMinorVersion 528 | 2 529 | ToolbarDisplayMode 530 | 1 531 | ToolbarIsVisible 532 | 533 | ToolbarSizeMode 534 | 1 535 | Type 536 | Perspectives 537 | UpdateMessage 538 | The Default Workspace in this version of Xcode now includes support to hide and show the detail view (what has been referred to as the "Metro-Morph" feature). You must discard your current Default Workspace settings and update to the latest Default Workspace in order to gain this feature. Do you wish to update to the latest Workspace defaults for project '%@'? 539 | WindowJustification 540 | 5 541 | WindowOrderList 542 | 543 | 85DACB0B12C1BC7D008716EC 544 | 85DACB0C12C1BC7D008716EC 545 | 1C78EAAD065D492600B07095 546 | 1CD10A99069EF8BA00B06720 547 | 85DAC9DB12C134DE008716EC 548 | /Users/jdrake/Projects/OrganicUI/Example/Example.xcodeproj 549 | 550 | WindowString 551 | 98 101 916 648 0 0 1440 878 552 | WindowToolsV3 553 | 554 | 555 | FirstTimeWindowDisplayed 556 | 557 | Identifier 558 | windowTool.build 559 | IsVertical 560 | 561 | Layout 562 | 563 | 564 | Dock 565 | 566 | 567 | ContentConfiguration 568 | 569 | PBXProjectModuleGUID 570 | 1CD0528F0623707200166675 571 | PBXProjectModuleLabel 572 | 573 | StatusBarVisibility 574 | 575 | 576 | GeometryConfiguration 577 | 578 | Frame 579 | {{0, 0}, {500, 218}} 580 | RubberWindowFrame 581 | 897 155 500 500 0 0 1440 878 582 | 583 | Module 584 | PBXNavigatorGroup 585 | Proportion 586 | 218pt 587 | 588 | 589 | ContentConfiguration 590 | 591 | PBXProjectModuleGUID 592 | XCMainBuildResultsModuleGUID 593 | PBXProjectModuleLabel 594 | Build Results 595 | XCBuildResultsTrigger_Collapse 596 | 1021 597 | XCBuildResultsTrigger_Open 598 | 1011 599 | 600 | GeometryConfiguration 601 | 602 | Frame 603 | {{0, 223}, {500, 236}} 604 | RubberWindowFrame 605 | 897 155 500 500 0 0 1440 878 606 | 607 | Module 608 | PBXBuildResultsModule 609 | Proportion 610 | 236pt 611 | 612 | 613 | Proportion 614 | 459pt 615 | 616 | 617 | Name 618 | Build Results 619 | ServiceClasses 620 | 621 | PBXBuildResultsModule 622 | 623 | StatusbarIsVisible 624 | 625 | TableOfContents 626 | 627 | 85DAC9DB12C134DE008716EC 628 | 85DACAE012C1BC15008716EC 629 | 1CD0528F0623707200166675 630 | XCMainBuildResultsModuleGUID 631 | 632 | ToolbarConfiguration 633 | xcode.toolbar.config.buildV3 634 | WindowContentMinSize 635 | 486 300 636 | WindowString 637 | 897 155 500 500 0 0 1440 878 638 | WindowToolGUID 639 | 85DAC9DB12C134DE008716EC 640 | WindowToolIsVisible 641 | 642 | 643 | 644 | FirstTimeWindowDisplayed 645 | 646 | Identifier 647 | windowTool.debugger 648 | IsVertical 649 | 650 | Layout 651 | 652 | 653 | Dock 654 | 655 | 656 | ContentConfiguration 657 | 658 | Debugger 659 | 660 | HorizontalSplitView 661 | 662 | _collapsingFrameDimension 663 | 0.0 664 | _indexOfCollapsedView 665 | 0 666 | _percentageOfCollapsedView 667 | 0.0 668 | isCollapsed 669 | yes 670 | sizes 671 | 672 | {{0, 0}, {316, 198}} 673 | {{316, 0}, {378, 198}} 674 | 675 | 676 | VerticalSplitView 677 | 678 | _collapsingFrameDimension 679 | 0.0 680 | _indexOfCollapsedView 681 | 0 682 | _percentageOfCollapsedView 683 | 0.0 684 | isCollapsed 685 | yes 686 | sizes 687 | 688 | {{0, 0}, {694, 198}} 689 | {{0, 198}, {694, 183}} 690 | 691 | 692 | 693 | LauncherConfigVersion 694 | 8 695 | PBXProjectModuleGUID 696 | 1C162984064C10D400B95A72 697 | PBXProjectModuleLabel 698 | Debug - GLUTExamples (Underwater) 699 | 700 | GeometryConfiguration 701 | 702 | DebugConsoleVisible 703 | None 704 | DebugConsoleWindowFrame 705 | {{200, 200}, {500, 300}} 706 | DebugSTDIOWindowFrame 707 | {{200, 200}, {500, 300}} 708 | Frame 709 | {{0, 0}, {694, 381}} 710 | PBXDebugSessionStackFrameViewKey 711 | 712 | DebugVariablesTableConfiguration 713 | 714 | Name 715 | 120 716 | Value 717 | 85 718 | Summary 719 | 148 720 | 721 | Frame 722 | {{316, 0}, {378, 198}} 723 | RubberWindowFrame 724 | 31 210 694 422 0 0 1440 878 725 | 726 | RubberWindowFrame 727 | 31 210 694 422 0 0 1440 878 728 | 729 | Module 730 | PBXDebugSessionModule 731 | Proportion 732 | 381pt 733 | 734 | 735 | Proportion 736 | 381pt 737 | 738 | 739 | Name 740 | Debugger 741 | ServiceClasses 742 | 743 | PBXDebugSessionModule 744 | 745 | StatusbarIsVisible 746 | 747 | TableOfContents 748 | 749 | 1CD10A99069EF8BA00B06720 750 | 85DACB0312C1BC7D008716EC 751 | 1C162984064C10D400B95A72 752 | 85DACB0412C1BC7D008716EC 753 | 85DACB0512C1BC7D008716EC 754 | 85DACB0612C1BC7D008716EC 755 | 85DACB0712C1BC7D008716EC 756 | 85DACB0812C1BC7D008716EC 757 | 758 | ToolbarConfiguration 759 | xcode.toolbar.config.debugV3 760 | WindowString 761 | 31 210 694 422 0 0 1440 878 762 | WindowToolGUID 763 | 1CD10A99069EF8BA00B06720 764 | WindowToolIsVisible 765 | 766 | 767 | 768 | Identifier 769 | windowTool.find 770 | Layout 771 | 772 | 773 | Dock 774 | 775 | 776 | Dock 777 | 778 | 779 | ContentConfiguration 780 | 781 | PBXProjectModuleGUID 782 | 1CDD528C0622207200134675 783 | PBXProjectModuleLabel 784 | <No Editor> 785 | PBXSplitModuleInNavigatorKey 786 | 787 | Split0 788 | 789 | PBXProjectModuleGUID 790 | 1CD0528D0623707200166675 791 | 792 | SplitCount 793 | 1 794 | 795 | StatusBarVisibility 796 | 1 797 | 798 | GeometryConfiguration 799 | 800 | Frame 801 | {{0, 0}, {781, 167}} 802 | RubberWindowFrame 803 | 62 385 781 470 0 0 1440 878 804 | 805 | Module 806 | PBXNavigatorGroup 807 | Proportion 808 | 781pt 809 | 810 | 811 | Proportion 812 | 50% 813 | 814 | 815 | BecomeActive 816 | 1 817 | ContentConfiguration 818 | 819 | PBXProjectModuleGUID 820 | 1CD0528E0623707200166675 821 | PBXProjectModuleLabel 822 | Project Find 823 | 824 | GeometryConfiguration 825 | 826 | Frame 827 | {{8, 0}, {773, 254}} 828 | RubberWindowFrame 829 | 62 385 781 470 0 0 1440 878 830 | 831 | Module 832 | PBXProjectFindModule 833 | Proportion 834 | 50% 835 | 836 | 837 | Proportion 838 | 428pt 839 | 840 | 841 | Name 842 | Project Find 843 | ServiceClasses 844 | 845 | PBXProjectFindModule 846 | 847 | StatusbarIsVisible 848 | 1 849 | TableOfContents 850 | 851 | 1C530D57069F1CE1000CFCEE 852 | 1C530D58069F1CE1000CFCEE 853 | 1C530D59069F1CE1000CFCEE 854 | 1CDD528C0622207200134675 855 | 1C530D5A069F1CE1000CFCEE 856 | 1CE0B1FE06471DED0097A5F4 857 | 1CD0528E0623707200166675 858 | 859 | WindowString 860 | 62 385 781 470 0 0 1440 878 861 | WindowToolGUID 862 | 1C530D57069F1CE1000CFCEE 863 | WindowToolIsVisible 864 | 0 865 | 866 | 867 | Identifier 868 | MENUSEPARATOR 869 | 870 | 871 | FirstTimeWindowDisplayed 872 | 873 | Identifier 874 | windowTool.debuggerConsole 875 | IsVertical 876 | 877 | Layout 878 | 879 | 880 | Dock 881 | 882 | 883 | ContentConfiguration 884 | 885 | PBXProjectModuleGUID 886 | 1C78EAAC065D492600B07095 887 | PBXProjectModuleLabel 888 | Debugger Console 889 | 890 | GeometryConfiguration 891 | 892 | Frame 893 | {{0, 0}, {650, 209}} 894 | RubberWindowFrame 895 | 41 382 650 250 0 0 1440 878 896 | 897 | Module 898 | PBXDebugCLIModule 899 | Proportion 900 | 209pt 901 | 902 | 903 | Proportion 904 | 209pt 905 | 906 | 907 | Name 908 | Debugger Console 909 | ServiceClasses 910 | 911 | PBXDebugCLIModule 912 | 913 | StatusbarIsVisible 914 | 915 | TableOfContents 916 | 917 | 1C78EAAD065D492600B07095 918 | 85DACB0912C1BC7D008716EC 919 | 1C78EAAC065D492600B07095 920 | 921 | ToolbarConfiguration 922 | xcode.toolbar.config.consoleV3 923 | WindowString 924 | 41 382 650 250 0 0 1440 878 925 | WindowToolGUID 926 | 1C78EAAD065D492600B07095 927 | WindowToolIsVisible 928 | 929 | 930 | 931 | Identifier 932 | windowTool.snapshots 933 | Layout 934 | 935 | 936 | Dock 937 | 938 | 939 | Module 940 | XCSnapshotModule 941 | Proportion 942 | 100% 943 | 944 | 945 | Proportion 946 | 100% 947 | 948 | 949 | Name 950 | Snapshots 951 | ServiceClasses 952 | 953 | XCSnapshotModule 954 | 955 | StatusbarIsVisible 956 | Yes 957 | ToolbarConfiguration 958 | xcode.toolbar.config.snapshots 959 | WindowString 960 | 315 824 300 550 0 0 1440 878 961 | WindowToolIsVisible 962 | Yes 963 | 964 | 965 | Identifier 966 | windowTool.scm 967 | Layout 968 | 969 | 970 | Dock 971 | 972 | 973 | ContentConfiguration 974 | 975 | PBXProjectModuleGUID 976 | 1C78EAB2065D492600B07095 977 | PBXProjectModuleLabel 978 | <No Editor> 979 | PBXSplitModuleInNavigatorKey 980 | 981 | Split0 982 | 983 | PBXProjectModuleGUID 984 | 1C78EAB3065D492600B07095 985 | 986 | SplitCount 987 | 1 988 | 989 | StatusBarVisibility 990 | 1 991 | 992 | GeometryConfiguration 993 | 994 | Frame 995 | {{0, 0}, {452, 0}} 996 | RubberWindowFrame 997 | 743 379 452 308 0 0 1280 1002 998 | 999 | Module 1000 | PBXNavigatorGroup 1001 | Proportion 1002 | 0pt 1003 | 1004 | 1005 | BecomeActive 1006 | 1 1007 | ContentConfiguration 1008 | 1009 | PBXProjectModuleGUID 1010 | 1CD052920623707200166675 1011 | PBXProjectModuleLabel 1012 | SCM 1013 | 1014 | GeometryConfiguration 1015 | 1016 | ConsoleFrame 1017 | {{0, 259}, {452, 0}} 1018 | Frame 1019 | {{0, 7}, {452, 259}} 1020 | RubberWindowFrame 1021 | 743 379 452 308 0 0 1280 1002 1022 | TableConfiguration 1023 | 1024 | Status 1025 | 30 1026 | FileName 1027 | 199 1028 | Path 1029 | 197.0950012207031 1030 | 1031 | TableFrame 1032 | {{0, 0}, {452, 250}} 1033 | 1034 | Module 1035 | PBXCVSModule 1036 | Proportion 1037 | 262pt 1038 | 1039 | 1040 | Proportion 1041 | 266pt 1042 | 1043 | 1044 | Name 1045 | SCM 1046 | ServiceClasses 1047 | 1048 | PBXCVSModule 1049 | 1050 | StatusbarIsVisible 1051 | 1 1052 | TableOfContents 1053 | 1054 | 1C78EAB4065D492600B07095 1055 | 1C78EAB5065D492600B07095 1056 | 1C78EAB2065D492600B07095 1057 | 1CD052920623707200166675 1058 | 1059 | ToolbarConfiguration 1060 | xcode.toolbar.config.scm 1061 | WindowString 1062 | 743 379 452 308 0 0 1280 1002 1063 | 1064 | 1065 | Identifier 1066 | windowTool.breakpoints 1067 | IsVertical 1068 | 0 1069 | Layout 1070 | 1071 | 1072 | Dock 1073 | 1074 | 1075 | BecomeActive 1076 | 1 1077 | ContentConfiguration 1078 | 1079 | PBXBottomSmartGroupGIDs 1080 | 1081 | 1C77FABC04509CD000000102 1082 | 1083 | PBXProjectModuleGUID 1084 | 1CE0B1FE06471DED0097A5F4 1085 | PBXProjectModuleLabel 1086 | Files 1087 | PBXProjectStructureProvided 1088 | no 1089 | PBXSmartGroupTreeModuleColumnData 1090 | 1091 | PBXSmartGroupTreeModuleColumnWidthsKey 1092 | 1093 | 168 1094 | 1095 | PBXSmartGroupTreeModuleColumnsKey_v4 1096 | 1097 | MainColumn 1098 | 1099 | 1100 | PBXSmartGroupTreeModuleOutlineStateKey_v7 1101 | 1102 | PBXSmartGroupTreeModuleOutlineStateExpansionKey 1103 | 1104 | 1C77FABC04509CD000000102 1105 | 1106 | PBXSmartGroupTreeModuleOutlineStateSelectionKey 1107 | 1108 | 1109 | 0 1110 | 1111 | 1112 | PBXSmartGroupTreeModuleOutlineStateVisibleRectKey 1113 | {{0, 0}, {168, 350}} 1114 | 1115 | PBXTopSmartGroupGIDs 1116 | 1117 | XCIncludePerspectivesSwitch 1118 | 0 1119 | 1120 | GeometryConfiguration 1121 | 1122 | Frame 1123 | {{0, 0}, {185, 368}} 1124 | GroupTreeTableConfiguration 1125 | 1126 | MainColumn 1127 | 168 1128 | 1129 | RubberWindowFrame 1130 | 315 424 744 409 0 0 1440 878 1131 | 1132 | Module 1133 | PBXSmartGroupTreeModule 1134 | Proportion 1135 | 185pt 1136 | 1137 | 1138 | ContentConfiguration 1139 | 1140 | PBXProjectModuleGUID 1141 | 1CA1AED706398EBD00589147 1142 | PBXProjectModuleLabel 1143 | Detail 1144 | 1145 | GeometryConfiguration 1146 | 1147 | Frame 1148 | {{190, 0}, {554, 368}} 1149 | RubberWindowFrame 1150 | 315 424 744 409 0 0 1440 878 1151 | 1152 | Module 1153 | XCDetailModule 1154 | Proportion 1155 | 554pt 1156 | 1157 | 1158 | Proportion 1159 | 368pt 1160 | 1161 | 1162 | MajorVersion 1163 | 3 1164 | MinorVersion 1165 | 0 1166 | Name 1167 | Breakpoints 1168 | ServiceClasses 1169 | 1170 | PBXSmartGroupTreeModule 1171 | XCDetailModule 1172 | 1173 | StatusbarIsVisible 1174 | 1 1175 | TableOfContents 1176 | 1177 | 1CDDB66807F98D9800BB5817 1178 | 1CDDB66907F98D9800BB5817 1179 | 1CE0B1FE06471DED0097A5F4 1180 | 1CA1AED706398EBD00589147 1181 | 1182 | ToolbarConfiguration 1183 | xcode.toolbar.config.breakpointsV3 1184 | WindowString 1185 | 315 424 744 409 0 0 1440 878 1186 | WindowToolGUID 1187 | 1CDDB66807F98D9800BB5817 1188 | WindowToolIsVisible 1189 | 1 1190 | 1191 | 1192 | Identifier 1193 | windowTool.debugAnimator 1194 | Layout 1195 | 1196 | 1197 | Dock 1198 | 1199 | 1200 | Module 1201 | PBXNavigatorGroup 1202 | Proportion 1203 | 100% 1204 | 1205 | 1206 | Proportion 1207 | 100% 1208 | 1209 | 1210 | Name 1211 | Debug Visualizer 1212 | ServiceClasses 1213 | 1214 | PBXNavigatorGroup 1215 | 1216 | StatusbarIsVisible 1217 | 1 1218 | ToolbarConfiguration 1219 | xcode.toolbar.config.debugAnimatorV3 1220 | WindowString 1221 | 100 100 700 500 0 0 1280 1002 1222 | 1223 | 1224 | Identifier 1225 | windowTool.bookmarks 1226 | Layout 1227 | 1228 | 1229 | Dock 1230 | 1231 | 1232 | Module 1233 | PBXBookmarksModule 1234 | Proportion 1235 | 100% 1236 | 1237 | 1238 | Proportion 1239 | 100% 1240 | 1241 | 1242 | Name 1243 | Bookmarks 1244 | ServiceClasses 1245 | 1246 | PBXBookmarksModule 1247 | 1248 | StatusbarIsVisible 1249 | 0 1250 | WindowString 1251 | 538 42 401 187 0 0 1280 1002 1252 | 1253 | 1254 | Identifier 1255 | windowTool.projectFormatConflicts 1256 | Layout 1257 | 1258 | 1259 | Dock 1260 | 1261 | 1262 | Module 1263 | XCProjectFormatConflictsModule 1264 | Proportion 1265 | 100% 1266 | 1267 | 1268 | Proportion 1269 | 100% 1270 | 1271 | 1272 | Name 1273 | Project Format Conflicts 1274 | ServiceClasses 1275 | 1276 | XCProjectFormatConflictsModule 1277 | 1278 | StatusbarIsVisible 1279 | 0 1280 | WindowContentMinSize 1281 | 450 300 1282 | WindowString 1283 | 50 850 472 307 0 0 1440 877 1284 | 1285 | 1286 | Identifier 1287 | windowTool.classBrowser 1288 | Layout 1289 | 1290 | 1291 | Dock 1292 | 1293 | 1294 | BecomeActive 1295 | 1 1296 | ContentConfiguration 1297 | 1298 | OptionsSetName 1299 | Hierarchy, all classes 1300 | PBXProjectModuleGUID 1301 | 1CA6456E063B45B4001379D8 1302 | PBXProjectModuleLabel 1303 | Class Browser - NSObject 1304 | 1305 | GeometryConfiguration 1306 | 1307 | ClassesFrame 1308 | {{0, 0}, {374, 96}} 1309 | ClassesTreeTableConfiguration 1310 | 1311 | PBXClassNameColumnIdentifier 1312 | 208 1313 | PBXClassBookColumnIdentifier 1314 | 22 1315 | 1316 | Frame 1317 | {{0, 0}, {630, 331}} 1318 | MembersFrame 1319 | {{0, 105}, {374, 395}} 1320 | MembersTreeTableConfiguration 1321 | 1322 | PBXMemberTypeIconColumnIdentifier 1323 | 22 1324 | PBXMemberNameColumnIdentifier 1325 | 216 1326 | PBXMemberTypeColumnIdentifier 1327 | 97 1328 | PBXMemberBookColumnIdentifier 1329 | 22 1330 | 1331 | PBXModuleWindowStatusBarHidden2 1332 | 1 1333 | RubberWindowFrame 1334 | 385 179 630 352 0 0 1440 878 1335 | 1336 | Module 1337 | PBXClassBrowserModule 1338 | Proportion 1339 | 332pt 1340 | 1341 | 1342 | Proportion 1343 | 332pt 1344 | 1345 | 1346 | Name 1347 | Class Browser 1348 | ServiceClasses 1349 | 1350 | PBXClassBrowserModule 1351 | 1352 | StatusbarIsVisible 1353 | 0 1354 | TableOfContents 1355 | 1356 | 1C0AD2AF069F1E9B00FABCE6 1357 | 1C0AD2B0069F1E9B00FABCE6 1358 | 1CA6456E063B45B4001379D8 1359 | 1360 | ToolbarConfiguration 1361 | xcode.toolbar.config.classbrowser 1362 | WindowString 1363 | 385 179 630 352 0 0 1440 878 1364 | WindowToolGUID 1365 | 1C0AD2AF069F1E9B00FABCE6 1366 | WindowToolIsVisible 1367 | 0 1368 | 1369 | 1370 | Identifier 1371 | windowTool.refactoring 1372 | IncludeInToolsMenu 1373 | 0 1374 | Layout 1375 | 1376 | 1377 | Dock 1378 | 1379 | 1380 | BecomeActive 1381 | 1 1382 | GeometryConfiguration 1383 | 1384 | Frame 1385 | {0, 0}, {500, 335} 1386 | RubberWindowFrame 1387 | {0, 0}, {500, 335} 1388 | 1389 | Module 1390 | XCRefactoringModule 1391 | Proportion 1392 | 100% 1393 | 1394 | 1395 | Proportion 1396 | 100% 1397 | 1398 | 1399 | Name 1400 | Refactoring 1401 | ServiceClasses 1402 | 1403 | XCRefactoringModule 1404 | 1405 | WindowString 1406 | 200 200 500 356 0 0 1920 1200 1407 | 1408 | 1409 | 1410 | 1411 | --------------------------------------------------------------------------------