[25087] users/rhwood/Pallet
source_changes at macosforge.org
source_changes at macosforge.org
Sun May 13 10:51:34 PDT 2007
Revision: 25087
http://trac.macosforge.org/projects/macports/changeset/25087
Author: rhwood at macports.org
Date: 2007-05-13 10:51:33 -0700 (Sun, 13 May 2007)
Log Message:
-----------
Add reference class for self-expanding text fields
Don't use it since it does not do bindings as of yet
Modified Paths:
--------------
users/rhwood/Pallet/Pallet.xcodeproj/project.pbxproj
Added Paths:
-----------
users/rhwood/Pallet/IFVerticallyExpandingTextField.h
users/rhwood/Pallet/IFVerticallyExpandingTextField.m
Added: users/rhwood/Pallet/IFVerticallyExpandingTextField.h
===================================================================
--- users/rhwood/Pallet/IFVerticallyExpandingTextField.h (rev 0)
+++ users/rhwood/Pallet/IFVerticallyExpandingTextField.h 2007-05-13 17:51:33 UTC (rev 25087)
@@ -0,0 +1,56 @@
+/*
+ Copyright (c) 2006, Andrew Bowman. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ * Neither the name of Inverse Falcon nor the names of its contributors may be
+ used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/* IFVerticallyExpandingTextField
+
+ This textfield expands and contracts as it is edited and resized, and behaves
+ in a similar manner to the input field in Apple's iChat message windows.
+
+ Superviews of the textfield and the window containing the textfield autosize
+ accordingly.
+
+*/
+
+
+#import <Cocoa/Cocoa.h>
+
+enum { IFVerticalPadding = 5 };
+
+
+ at interface IFVerticallyExpandingTextField : NSTextField
+{
+ BOOL superviewsExpandOnGrowth;
+ BOOL isCollapsed;
+ NSMutableArray *viewMaskPairs;
+}
+
+- (void) awakeFromNib;
+- (void) setSuperviewsExpandOnGrowth: (BOOL)shouldExpand;
+- (BOOL) superviewsExpandOnGrowth;
+- (void) forceAutosize;
+
+ at end
\ No newline at end of file
Added: users/rhwood/Pallet/IFVerticallyExpandingTextField.m
===================================================================
--- users/rhwood/Pallet/IFVerticallyExpandingTextField.m (rev 0)
+++ users/rhwood/Pallet/IFVerticallyExpandingTextField.m 2007-05-13 17:51:33 UTC (rev 25087)
@@ -0,0 +1,327 @@
+/*
+ Copyright (c) 2006, Andrew Bowman. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ * Neither the name of Inverse Falcon nor the names of its contributors may be
+ used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import "IFVerticallyExpandingTextField.h"
+
+// Private helper class for associating NSViews with autoresizingMasks
+ at interface IFViewMaskPair : NSObject
+{
+ NSView *view;
+ unsigned int savedAutoresizingMask;
+}
+
+- (id) initWithView: (NSView *)aView;
+- (void) restoreAutoresizingMask;
+
+ at end
+
+
+ at implementation IFViewMaskPair
+
+- (id) initWithView: (NSView *)aView {
+ self = [super init];
+ view = aView;
+ savedAutoresizingMask = [view autoresizingMask];
+
+ return self;
+}
+
+- (void) restoreAutoresizingMask {
+ [view setAutoresizingMask: savedAutoresizingMask];
+}
+
+ at end
+
+
+
+ at interface IFVerticallyExpandingTextField (PRIVATE)
+
+- (void) autosizeHeight: (NSTextView *)fieldEditor;
+- (void) autosizeSuperviewOfView: (NSView *)originView withGrowth: (float)growth;
+
+- (void) alterAutoresizeMasksForViews: (NSArray *)sibViews
+ surroundingView: (NSView *)originView;
+- (void) restoreAutoresizeMasks;
+
+ at end
+
+
+ at implementation IFVerticallyExpandingTextField
+
+- (void) awakeFromNib {
+ superviewsExpandOnGrowth = YES;
+ isCollapsed = NO;
+ viewMaskPairs = [[NSMutableArray alloc] init];
+
+ if ([self autoresizingMask] & NSViewHeightSizable) {
+ [self setAutoresizingMask: [self autoresizingMask] & ~NSViewHeightSizable];
+
+ NSLog(@"Warning: IFVerticallyExpandingTextField: Vertical autosizing option "
+ "in Interface Builder interferes with this class's functionality and has "
+ "been temporarily disabled. Turn off this option for all "
+ "IFVerticallyExpandingTextFields in Interface Builder to prevent this warning.");
+ }
+}
+
+- (void) setSuperviewsExpandOnGrowth: (BOOL)shouldExpand {
+ superviewsExpandOnGrowth = shouldExpand;
+}
+
+- (BOOL) superviewsExpandOnGrowth {
+ return superviewsExpandOnGrowth;
+}
+
+- (void) forceAutosize {
+
+ // Entry point for vertical expansion. Call this method if you need to manually
+ // force an autosize. Most of the time this is done for you in response to the
+ // textDidChange and viewDidEndLiveResize callbacks.
+ //
+ // Note that if we're forced to steal the field editor and first responder status,
+ // quirky behavior can occur if we just throw first responder back to whoever
+ // had it last (especially with several expanding text fields), so we resign
+ // first responder.
+
+ BOOL stolenEditor = NO;
+ NSWindow *myWindow = [self window];
+ NSTextView *fieldEditor = [myWindow fieldEditor: YES forObject: self];
+
+ if ([fieldEditor delegate] != self) {
+ stolenEditor = YES;
+
+ [myWindow endEditingFor: nil];
+ [myWindow makeFirstResponder: self];
+
+ // Set cursor to end, breaking the selection
+ [fieldEditor setSelectedRange: NSMakeRange([[self stringValue] length], 0)];
+ }
+
+ [self autosizeHeight: fieldEditor];
+
+ if (stolenEditor) {
+ // Odd things can occur when messing with the first responder when using
+ // several IFVerticallyExpandingTextFields. Best not to mess with it, for now.
+
+ [myWindow makeFirstResponder: nil];
+ }
+}
+
+
+/* Private methods */
+
+- (void) autosizeHeight: (NSTextView *)fieldEditor {
+ NSRect newFrame = [self frame];
+ float oldHeight = newFrame.size.height;
+ float newHeight;
+ float fieldGrowth;
+
+ if (isCollapsed)
+ newHeight = 0;
+ else
+ newHeight = [[fieldEditor layoutManager] usedRectForTextContainer:
+ [fieldEditor textContainer]].size.height + IFVerticalPadding;
+
+ fieldGrowth = newHeight - oldHeight;
+
+ if (fieldGrowth != 0) {
+
+ // We're expanding or contracting. First adjust our frame,
+ // then see about superviews.
+
+ newFrame.size = NSMakeSize(newFrame.size.width, newHeight);
+
+ if ([self autoresizingMask] & NSViewMinYMargin)
+ newFrame.origin.y -= fieldGrowth;
+
+ [self setFrame: newFrame];
+
+ if (superviewsExpandOnGrowth) {
+ [self autosizeSuperviewOfView: self withGrowth: fieldGrowth];
+ }
+
+ // If superviews are set not to expand on growth, it's best to call display
+ // on the window in reponse to this notification to prevent artifacts.
+ [[NSNotificationCenter defaultCenter] postNotificationName: @"IFTextFieldDidExpandNotification"
+ object: self
+ userInfo:
+ [NSDictionary dictionaryWithObject: [NSNumber numberWithFloat: fieldGrowth]
+ forKey: @"IFTextFieldNotificationFieldGrowthItem"]];
+ }
+}
+
+
+
+- (void) autosizeSuperviewOfView: (NSView *)originView withGrowth: (float)growth {
+
+ // Recursively autosize superviews until we get to a window or scroll view
+
+ NSView *currentView = [originView superview]; // current view we are working in
+
+ [self alterAutoresizeMasksForViews: [currentView subviews] surroundingView: originView];
+
+ if (currentView == [[originView window] contentView]) {
+ // First base case, stop recursion when we've reached window's content view
+
+ NSWindow *myWindow = [originView window];
+ NSRect windowFrame = [myWindow frame];
+
+ windowFrame.size.height += growth;
+ windowFrame.origin.y -= growth;
+
+ // Using animate: YES causes some brief drawing artifacts and makes multiple
+ // troublesome viewDidEndLiveResize calls. Stick with NO for now.
+ [myWindow setFrame: windowFrame display: [myWindow isVisible] animate: NO];
+
+ [self restoreAutoresizeMasks];
+ }
+ else if ([currentView isKindOfClass: [NSScrollView class]]) {
+ // Second base case, stop at scrollviews.
+ // Trying to get scrollviews' content to expand.
+ // Scrollview blocks do appear, but with no arrows or scrolling controls
+ // Some help here would be appreciated
+
+ NSScrollView *scrollView = (NSScrollView *) currentView;
+ NSRect contentFrame = [[scrollView contentView] frame];
+
+ contentFrame.size.height += growth;
+ contentFrame.origin.y -= growth;
+
+ [[scrollView contentView] setFrame: contentFrame];
+ [scrollView tile];
+
+ [self restoreAutoresizeMasks];
+
+ }
+ else {
+ // Recursive case, modify our current frame then step up to its superview
+
+ NSRect currentFrame = [currentView frame];
+ currentFrame.size.height += growth;
+ currentFrame.origin.y -= growth;
+
+ [currentView setFrame: currentFrame];
+
+ [self autosizeSuperviewOfView: currentView withGrowth: growth];
+ }
+
+}
+
+
+- (void) alterAutoresizeMasksForViews: (NSArray *)siblingViews
+ surroundingView: (NSView *)originView {
+
+ // We need to alter the autoresizing masks of surrounding views so they don't
+ // mess up the originView's vertical expansion or contraction.
+ //
+ // This method uses BSD-licensed code from the Disclosable View application
+ // copyright (c) 2002, Kurt Revis of Snoize (www.snoize.com)
+
+ NSEnumerator *enumerator = [siblingViews objectEnumerator];
+ NSView *sibView;
+ unsigned int mask;
+
+ while (sibView = [enumerator nextObject]) {
+ if (sibView != originView) {
+
+ // save autoresizingMask for restoration later
+ [viewMaskPairs addObject:
+ [[[IFViewMaskPair alloc] initWithView: sibView] autorelease]];
+
+ mask = [sibView autoresizingMask];
+
+ if (NSMaxY([sibView frame]) <= NSMaxY([originView frame])) {
+ // This subview is below us. Make it stick to the bottom of the window.
+ // It should not change height.
+ mask &= ~NSViewHeightSizable;
+ mask |= NSViewMaxYMargin;
+ mask &= ~NSViewMinYMargin;
+ }
+ else {
+ // This subview is above us. Make it stick to the top of the window.
+ // It should not change height.
+ mask &= ~NSViewHeightSizable;
+ mask &= ~NSViewMaxYMargin;
+ mask |= NSViewMinYMargin;
+ }
+
+ [sibView setAutoresizingMask: mask];
+ }
+ }
+}
+
+- (void) restoreAutoresizeMasks {
+ IFViewMaskPair *pair;
+
+ while ([viewMaskPairs count]) {
+ pair = [viewMaskPairs lastObject];
+ [pair restoreAutoresizingMask];
+ [viewMaskPairs removeLastObject];
+ }
+}
+
+
+/* Overridden methods */
+
+- (void) textDidChange: (NSNotification *)note {
+ [self forceAutosize];
+}
+
+- (void) viewDidEndLiveResize {
+ [self forceAutosize];
+}
+
+- (void) setStringValue: (NSString *)aString {
+ NSTextView *myEditor = [self currentEditor];
+
+ if (myEditor)
+ [myEditor setString: aString];
+ else
+ [super setStringValue: aString];
+
+ // If we don't delay, autosizing won't display correctly
+ [NSThread sleepUntilDate: [NSDate dateWithTimeIntervalSinceNow: .05]];
+ [self forceAutosize];
+}
+
+- (void) setCollapsed: (BOOL)flag {
+ if (isCollapsed != flag) {
+ isCollapsed = flag;
+ [self setHidden: flag];
+ [self forceAutosize];
+ }
+}
+
+- (BOOL) isCollapsed {
+ return isCollapsed;
+}
+
+- (void) dealloc {
+ [viewMaskPairs release];
+ [super dealloc];
+}
+
+ at end
\ No newline at end of file
Modified: users/rhwood/Pallet/Pallet.xcodeproj/project.pbxproj
===================================================================
--- users/rhwood/Pallet/Pallet.xcodeproj/project.pbxproj 2007-05-13 17:18:32 UTC (rev 25086)
+++ users/rhwood/Pallet/Pallet.xcodeproj/project.pbxproj 2007-05-13 17:51:33 UTC (rev 25087)
@@ -10,6 +10,7 @@
480062BF0B597D9A005F27E4 /* PAStatusTransformer.m in Sources */ = {isa = PBXBuildFile; fileRef = 480062BE0B597D9A005F27E4 /* PAStatusTransformer.m */; };
481B84120BA254A4000D1385 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4854CE0F0B420D8C00950EE4 /* Security.framework */; };
4828C6310AD7B84D002AF0DD /* TaskWrapper.m in Sources */ = {isa = PBXBuildFile; fileRef = 4828C6300AD7B84D002AF0DD /* TaskWrapper.m */; };
+ 482C61D50BD2286700F7AC59 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 482C61D40BD2286700F7AC59 /* main.m */; };
483A5E460B57A50900712840 /* MPPortsController.m in Sources */ = {isa = PBXBuildFile; fileRef = 483A5E450B57A50900712840 /* MPPortsController.m */; };
4844B92B0AD91F5800A4A4DB /* UserDefaults.plist in Resources */ = {isa = PBXBuildFile; fileRef = 4844B92A0AD91F5800A4A4DB /* UserDefaults.plist */; };
4875A7410B468DEB00FDDC21 /* ApplicationIconBusy.icns in Resources */ = {isa = PBXBuildFile; fileRef = 4875A7400B468DEB00FDDC21 /* ApplicationIconBusy.icns */; };
@@ -22,6 +23,7 @@
487EB9280B4533CB001B0F72 /* getpath.c in Sources */ = {isa = PBXBuildFile; fileRef = 48BBCE870B41B37F0063A19F /* getpath.c */; };
487EB9490B453786001B0F72 /* AuthorizedExecutable.m in Sources */ = {isa = PBXBuildFile; fileRef = 487EB9480B453786001B0F72 /* AuthorizedExecutable.m */; };
48ACD7930B4284A400D34B4C /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4854CE0F0B420D8C00950EE4 /* Security.framework */; };
+ 48B1714D0BEDFC6B0039AFC4 /* PalletHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 48B1714C0BEDFC6B0039AFC4 /* PalletHelper.m */; };
48B63D820BCA40760028248A /* CFLib.c in Sources */ = {isa = PBXBuildFile; fileRef = 48B63D810BCA40760028248A /* CFLib.c */; };
48D470190AD6867C00352CE9 /* PortAuthority.m in Sources */ = {isa = PBXBuildFile; fileRef = 48D470180AD6867C00352CE9 /* PortAuthority.m */; };
48D470790AD6CFFB00352CE9 /* MPToolbar.m in Sources */ = {isa = PBXBuildFile; fileRef = 48D470780AD6CFFB00352CE9 /* MPToolbar.m */; };
@@ -32,7 +34,9 @@
48D4718F0AD73ECD00352CE9 /* Upgrade.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 48D4718C0AD73ECD00352CE9 /* Upgrade.tiff */; };
48D471FB0AD7A99500352CE9 /* Install.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 48D471FA0AD7A99500352CE9 /* Install.tiff */; };
48D4721F0AD7B10600352CE9 /* ApplicationIcon.icns in Resources */ = {isa = PBXBuildFile; fileRef = 48D4721E0AD7B10600352CE9 /* ApplicationIcon.icns */; };
+ 48D5EF700BDE169B003EE169 /* Tcl.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 48EE4F7C0B515B7D0066DCBA /* Tcl.framework */; };
48EE4F7D0B515B7D0066DCBA /* Tcl.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 48EE4F7C0B515B7D0066DCBA /* Tcl.framework */; };
+ 48F00D280BD773D500F2E7D8 /* IFVerticallyExpandingTextField.m in Sources */ = {isa = PBXBuildFile; fileRef = 48F00D270BD773D500F2E7D8 /* IFVerticallyExpandingTextField.m */; };
8D11072A0486CEB800E47090 /* MainMenu.nib in Resources */ = {isa = PBXBuildFile; fileRef = 29B97318FDCFA39411CA2CEA /* MainMenu.nib */; };
8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */; };
8D11072D0486CEB800E47090 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; settings = {ATTRIBUTES = (); }; };
@@ -64,6 +68,8 @@
480062BE0B597D9A005F27E4 /* PAStatusTransformer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PAStatusTransformer.m; sourceTree = "<group>"; };
4828C62F0AD7B84D002AF0DD /* TaskWrapper.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = TaskWrapper.h; sourceTree = "<group>"; };
4828C6300AD7B84D002AF0DD /* TaskWrapper.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = TaskWrapper.m; sourceTree = "<group>"; };
+ 482C61C90BD225F400F7AC59 /* PalletHelper */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = PalletHelper; sourceTree = BUILT_PRODUCTS_DIR; };
+ 482C61D40BD2286700F7AC59 /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = Helper/main.m; sourceTree = "<group>"; };
483A5E440B57A50900712840 /* MPPortsController.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = MPPortsController.h; sourceTree = "<group>"; };
483A5E450B57A50900712840 /* MPPortsController.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = MPPortsController.m; sourceTree = "<group>"; };
4844B92A0AD91F5800A4A4DB /* UserDefaults.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = UserDefaults.plist; sourceTree = "<group>"; };
@@ -79,6 +85,8 @@
48ACD7D10B42855600D34B4C /* Launcher.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Launcher.h; sourceTree = "<group>"; };
48ACD7D20B42855600D34B4C /* Launcher.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Launcher.m; sourceTree = "<group>"; };
48AFB8B70BA4E20300896AF1 /* Debug.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Debug.h; sourceTree = "<group>"; };
+ 48B1714B0BEDFC6B0039AFC4 /* PalletHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PalletHelper.h; path = Helper/PalletHelper.h; sourceTree = "<group>"; };
+ 48B1714C0BEDFC6B0039AFC4 /* PalletHelper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PalletHelper.m; path = Helper/PalletHelper.m; sourceTree = "<group>"; };
48B63D810BCA40760028248A /* CFLib.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = CFLib.c; sourceTree = "<group>"; };
48BBCE7D0B41B2450063A19F /* Launcher.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = Launcher.c; sourceTree = "<group>"; };
48BBCE870B41B37F0063A19F /* getpath.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = getpath.c; sourceTree = "<group>"; };
@@ -102,11 +110,21 @@
48D471FA0AD7A99500352CE9 /* Install.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = Install.tiff; sourceTree = "<group>"; };
48D4721E0AD7B10600352CE9 /* ApplicationIcon.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = ApplicationIcon.icns; sourceTree = "<group>"; };
48EE4F7C0B515B7D0066DCBA /* Tcl.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Tcl.framework; path = /System/Library/Frameworks/Tcl.framework; sourceTree = "<absolute>"; };
+ 48F00D180BD7738000F2E7D8 /* IFVerticallyExpandingTextField.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = IFVerticallyExpandingTextField.h; sourceTree = "<group>"; };
+ 48F00D270BD773D500F2E7D8 /* IFVerticallyExpandingTextField.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = IFVerticallyExpandingTextField.m; sourceTree = "<group>"; };
8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
8D1107320486CEB800E47090 /* Pallet.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Pallet.app; sourceTree = BUILT_PRODUCTS_DIR; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
+ 482C61C70BD225F400F7AC59 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 48D5EF700BDE169B003EE169 /* Tcl.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
48ACD7890B42846B00D34B4C /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
@@ -175,6 +193,7 @@
children = (
8D1107320486CEB800E47090 /* Pallet.app */,
48ACD78B0B42846B00D34B4C /* Launcher */,
+ 482C61C90BD225F400F7AC59 /* PalletHelper */,
);
name = Products;
sourceTree = "<group>";
@@ -195,6 +214,11 @@
29B97315FDCFA39411CA2CEA /* Other Sources */ = {
isa = PBXGroup;
children = (
+ 48B1714B0BEDFC6B0039AFC4 /* PalletHelper.h */,
+ 48B1714C0BEDFC6B0039AFC4 /* PalletHelper.m */,
+ 482C61D40BD2286700F7AC59 /* main.m */,
+ 48F00D270BD773D500F2E7D8 /* IFVerticallyExpandingTextField.m */,
+ 48F00D180BD7738000F2E7D8 /* IFVerticallyExpandingTextField.h */,
48B63D810BCA40760028248A /* CFLib.c */,
48ACD7D10B42855600D34B4C /* Launcher.h */,
48AFB8B70BA4E20300896AF1 /* Debug.h */,
@@ -257,6 +281,22 @@
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
+ 482C61C80BD225F400F7AC59 /* PalletHelper */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 482C61CB0BD2260700F7AC59 /* Build configuration list for PBXNativeTarget "PalletHelper" */;
+ buildPhases = (
+ 482C61C60BD225F400F7AC59 /* Sources */,
+ 482C61C70BD225F400F7AC59 /* Frameworks */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = PalletHelper;
+ productName = PalletHelper;
+ productReference = 482C61C90BD225F400F7AC59 /* PalletHelper */;
+ productType = "com.apple.product-type.tool";
+ };
48ACD78A0B42846B00D34B4C /* Launcher */ = {
isa = PBXNativeTarget;
buildConfigurationList = 48ACD78D0B42848A00D34B4C /* Build configuration list for PBXNativeTarget "Launcher" */;
@@ -304,6 +344,7 @@
targets = (
8D1107260486CEB800E47090 /* Pallet */,
48ACD78A0B42846B00D34B4C /* Launcher */,
+ 482C61C80BD225F400F7AC59 /* PalletHelper */,
);
};
/* End PBXProject section */
@@ -334,6 +375,15 @@
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
+ 482C61C60BD225F400F7AC59 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 482C61D50BD2286700F7AC59 /* main.m in Sources */,
+ 48B1714D0BEDFC6B0039AFC4 /* PalletHelper.m in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
48ACD7880B42846B00D34B4C /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
@@ -355,6 +405,7 @@
483A5E460B57A50900712840 /* MPPortsController.m in Sources */,
480062BF0B597D9A005F27E4 /* PAStatusTransformer.m in Sources */,
48B63D820BCA40760028248A /* CFLib.c in Sources */,
+ 48F00D280BD773D500F2E7D8 /* IFVerticallyExpandingTextField.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -388,6 +439,52 @@
/* End PBXVariantGroup section */
/* Begin XCBuildConfiguration section */
+ 482C61CC0BD2260700F7AC59 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ COPY_PHASE_STRIP = NO;
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_ENABLE_FIX_AND_CONTINUE = YES;
+ GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
+ GCC_MODEL_TUNING = G5;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h";
+ INSTALL_PATH = "$(HOME)/bin";
+ OTHER_LDFLAGS = (
+ "-framework",
+ Foundation,
+ "-framework",
+ AppKit,
+ );
+ PREBINDING = NO;
+ PRODUCT_NAME = PalletHelper;
+ ZERO_LINK = NO;
+ };
+ name = Debug;
+ };
+ 482C61CD0BD2260700F7AC59 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ COPY_PHASE_STRIP = YES;
+ GCC_ENABLE_FIX_AND_CONTINUE = NO;
+ GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+ GCC_MODEL_TUNING = G5;
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h";
+ INSTALL_PATH = "$(HOME)/bin";
+ OTHER_LDFLAGS = (
+ "-framework",
+ Foundation,
+ "-framework",
+ AppKit,
+ );
+ PREBINDING = NO;
+ PRODUCT_NAME = PalletHelper;
+ ZERO_LINK = NO;
+ };
+ name = Release;
+ };
48ACD78E0B42848A00D34B4C /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
@@ -503,6 +600,15 @@
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
+ 482C61CB0BD2260700F7AC59 /* Build configuration list for PBXNativeTarget "PalletHelper" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 482C61CC0BD2260700F7AC59 /* Debug */,
+ 482C61CD0BD2260700F7AC59 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
48ACD78D0B42848A00D34B4C /* Build configuration list for PBXNativeTarget "Launcher" */ = {
isa = XCConfigurationList;
buildConfigurations = (
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/macports-changes/attachments/20070513/4cb30477/attachment.html
More information about the macports-changes
mailing list