mirror of
https://github.com/gnustep/apps-projectcenter.git
synced 2025-02-19 01:51:09 +00:00
new style interface - simpler but hopefully more usable
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/apps/projectcenter/trunk@7926 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
6aa26d3356
commit
1d7a3dbf06
7 changed files with 136 additions and 227 deletions
|
@ -54,6 +54,7 @@ libProjectCenter_MFILES = \
|
|||
PCFileManager.m \
|
||||
PCProject.m \
|
||||
PCProjectBuilder.m \
|
||||
PCProjectDebugger.m \
|
||||
PCProjectManager.m \
|
||||
PCServer.m
|
||||
|
||||
|
@ -68,6 +69,7 @@ libProjectCenter_HFILES = \
|
|||
PCFileManager.h \
|
||||
PCProject.h \
|
||||
PCProjectBuilder.h \
|
||||
PCProjectDebugger.h \
|
||||
PCProjectManager.h \
|
||||
PCServer.h \
|
||||
PreferenceController.h \
|
||||
|
|
|
@ -47,27 +47,6 @@ NSString *FileShouldOpenNotification = @"FileShouldOpenNotification";
|
|||
NSString *ctitlef = [[project projectPath] stringByAppendingPathComponent:ltitle];
|
||||
|
||||
[project browserDidSelectFileNamed:ltitle];
|
||||
|
||||
if ([ctitle isEqualToString:@"Classes"]) {
|
||||
NSString *f = [NSString stringWithContentsOfFile:ctitlef];
|
||||
|
||||
[project editSelectedFile:f];
|
||||
}
|
||||
else if ([ctitle isEqualToString:@"Headers"]) {
|
||||
NSString *f = [NSString stringWithContentsOfFile:ctitlef];
|
||||
|
||||
[project editSelectedFile:f];
|
||||
}
|
||||
else if ([ctitle isEqualToString:@"Other Sources"]) {
|
||||
NSString *f = [NSString stringWithContentsOfFile:ctitlef];
|
||||
|
||||
[project editSelectedFile:f];
|
||||
}
|
||||
else if ([ctitle isEqualToString:@"Other Resources"]) {
|
||||
NSString *f = [NSString stringWithContentsOfFile:ctitlef];
|
||||
|
||||
[project editSelectedFile:f];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -84,6 +84,9 @@ static NSString * const PCMainGModelFile = @"MAININTERFACE";
|
|||
static NSString * const PCPackageName = @"PACKAGE_NAME";
|
||||
static NSString * const PCLibraryVar = @"LIBRARY_VAR";
|
||||
|
||||
@class PCProjectBuilder;
|
||||
@class PCProjectDebugger;
|
||||
|
||||
@interface PCProject : NSObject
|
||||
{
|
||||
id projectWindow;
|
||||
|
@ -91,7 +94,9 @@ static NSString * const PCLibraryVar = @"LIBRARY_VAR";
|
|||
id projectManager;
|
||||
id browserController;
|
||||
|
||||
id textView;
|
||||
PCProjectBuilder *projectBuilder;
|
||||
PCProjectDebugger *projectDebugger;
|
||||
NSBox *box;
|
||||
|
||||
id projectAttributeInspectorView;
|
||||
NSTextField *installPathField;
|
||||
|
@ -169,17 +174,12 @@ static NSString * const PCLibraryVar = @"LIBRARY_VAR";
|
|||
- (NSString *)projectDescription;
|
||||
// Returns a string describing the project type
|
||||
|
||||
- (id)textView;
|
||||
|
||||
//===========================================================================================
|
||||
// ==== Miscellaneous
|
||||
//===========================================================================================
|
||||
|
||||
- (void)browserDidSelectFileNamed:(NSString *)fileName;
|
||||
|
||||
- (void)editSelectedFile:(NSString *)file;
|
||||
- (void)structureEditedFile:(id)sender;
|
||||
|
||||
- (BOOL)doesAcceptFile:(NSString *)file forKey:(NSString *)key;
|
||||
// Returns YES if type is a valid key and file is not contained in the project already
|
||||
|
||||
|
@ -217,6 +217,10 @@ static NSString * const PCLibraryVar = @"LIBRARY_VAR";
|
|||
|
||||
@interface PCProject (ProjectBuilding)
|
||||
|
||||
- (void)topButtonsPressed:(id)sender;
|
||||
- (void)showBuildView:(id)sender;
|
||||
- (void)showRunView:(id)sender;
|
||||
|
||||
- (void)showInspector:(id)sender;
|
||||
|
||||
- (id)updatedAttributeView;
|
||||
|
@ -227,8 +231,6 @@ static NSString * const PCLibraryVar = @"LIBRARY_VAR";
|
|||
- (void)setHost:(id)sender;
|
||||
- (void)setArguments:(id)sender;
|
||||
|
||||
- (void)build:(id)sender;
|
||||
|
||||
- (NSDictionary *)buildOptions;
|
||||
|
||||
@end
|
||||
|
@ -248,9 +250,3 @@ static NSString * const PCLibraryVar = @"LIBRARY_VAR";
|
|||
- (void)windowWillClose:(NSNotification *)aNotification;
|
||||
|
||||
@end
|
||||
|
||||
@interface PCProject (TextDelegate)
|
||||
|
||||
- (void)textDidEndEditing:(NSNotification *)aNotification;
|
||||
|
||||
@end
|
||||
|
|
|
@ -46,8 +46,6 @@
|
|||
unsigned int style = NSTitledWindowMask | NSClosableWindowMask |
|
||||
NSMiniaturizableWindowMask | NSResizableWindowMask;
|
||||
NSBrowser *browser;
|
||||
NSSplitView *split;
|
||||
NSScrollView * scrollView;
|
||||
NSRect _w_frame;
|
||||
NSMatrix* matrix;
|
||||
NSButtonCell* buttonCell = [[[NSButtonCell alloc] init] autorelease];
|
||||
|
@ -61,103 +59,88 @@
|
|||
*
|
||||
*/
|
||||
|
||||
_w_frame = NSMakeRect(100,100,560,360);
|
||||
_w_frame = NSMakeRect(100,100,560,440);
|
||||
projectWindow = [[NSWindow alloc] initWithContentRect:_w_frame
|
||||
styleMask:style
|
||||
backing:NSBackingStoreBuffered
|
||||
defer:YES];
|
||||
[projectWindow setDelegate:self];
|
||||
[projectWindow setMinSize:NSMakeSize(512,320)];
|
||||
[projectWindow setMinSize:NSMakeSize(560,448)];
|
||||
|
||||
browser = [[[NSBrowser alloc] initWithFrame:NSMakeRect(30,30,288,128)] autorelease];
|
||||
browser = [[NSBrowser alloc] initWithFrame:NSMakeRect(8,251,544,128)];
|
||||
[browser setDelegate:browserController];
|
||||
[browser setMaxVisibleColumns:3];
|
||||
[browser setAllowsMultipleSelection:NO];
|
||||
[browser setAutoresizingMask: NSViewWidthSizable | NSViewMinYMargin];
|
||||
|
||||
[browserController setBrowser:browser];
|
||||
[browserController setProject:self];
|
||||
[browser autorelease];
|
||||
|
||||
textView = [[PCEditorView alloc] initWithFrame:NSMakeRect(0,0,520,168)];
|
||||
[textView setMaxSize:NSMakeSize(1e7, 1e7)];
|
||||
[textView setRichText:NO];
|
||||
[textView setEditable:NO];
|
||||
[textView setSelectable:YES];
|
||||
[textView setAutoresizingMask: NSViewWidthSizable | NSViewHeightSizable];
|
||||
[textView setVerticallyResizable:YES];
|
||||
[textView setHorizontallyResizable:YES];
|
||||
[textView setBackgroundColor:[NSColor whiteColor]];
|
||||
[[textView textContainer] setWidthTracksTextView:YES];
|
||||
|
||||
scrollView = [[NSScrollView alloc] initWithFrame:NSMakeRect (0,0,544,172)];
|
||||
[scrollView setDocumentView:textView];
|
||||
[textView setMinSize:NSMakeSize(0.0,[scrollView contentSize].height)];
|
||||
[[textView textContainer] setContainerSize:NSMakeSize([scrollView contentSize].width,1e7)];
|
||||
[scrollView setHasHorizontalScroller: NO];
|
||||
[scrollView setHasVerticalScroller: YES];
|
||||
[scrollView setBorderType: NSBezelBorder];
|
||||
[scrollView setAutoresizingMask: (NSViewWidthSizable | NSViewHeightSizable)];
|
||||
[scrollView autorelease];
|
||||
|
||||
split = [[[NSSplitView alloc] initWithFrame:NSMakeRect(8,0,544,304)] autorelease];
|
||||
[split setAutoresizingMask: (NSViewWidthSizable | NSViewHeightSizable)];
|
||||
[split addSubview: browser];
|
||||
[split addSubview: scrollView];
|
||||
box = [[NSBox alloc] initWithFrame:NSMakeRect (0,-1,560,252)];
|
||||
[box setTitlePosition:NSNoTitle];
|
||||
[box setBorderType:NSNoBorder];
|
||||
[box setAutoresizingMask: NSViewWidthSizable | NSViewHeightSizable];
|
||||
|
||||
_c_view = [projectWindow contentView];
|
||||
[_c_view addSubview:split];
|
||||
[_c_view addSubview:browser];
|
||||
[_c_view addSubview:box];
|
||||
|
||||
/*
|
||||
* Left button matrix
|
||||
*/
|
||||
|
||||
_w_frame = NSMakeRect(8,308,330,48);
|
||||
_w_frame = NSMakeRect(8,388,330,48);
|
||||
matrix = [[[NSMatrix alloc] initWithFrame: _w_frame
|
||||
mode: NSHighlightModeMatrix
|
||||
prototype: buttonCell
|
||||
numberOfRows: 1
|
||||
numberOfColumns: 7] autorelease];
|
||||
[matrix sizeToCells];
|
||||
[matrix setTarget:self];
|
||||
[matrix setAction:@selector(topButtonsPressed:)];
|
||||
[matrix setSelectionByRect:YES];
|
||||
[matrix setAutoresizingMask: (NSViewMaxXMargin | NSViewMinYMargin)];
|
||||
[_c_view addSubview:matrix];
|
||||
|
||||
button = [matrix cellAtRow:0 column:0];
|
||||
[button setTag:0];
|
||||
[button setImagePosition:NSImageOnly];
|
||||
[button setImage:IMAGE(@"ProjectCentre_build")];
|
||||
[button setButtonType:NSMomentaryPushButton];
|
||||
[button setTarget:self];
|
||||
[button setAction:@selector(build:)];
|
||||
|
||||
button = [matrix cellAtRow:0 column:1];
|
||||
[button setTag:1];
|
||||
[button setImagePosition:NSImageOnly];
|
||||
[button setImage:IMAGE(@"ProjectCentre_settings.tiff")];
|
||||
[button setButtonType:NSMomentaryPushButton];
|
||||
[button setTarget:self];
|
||||
[button setAction:@selector(showInspector:)];
|
||||
|
||||
button = [matrix cellAtRow:0 column:2];
|
||||
[button setTag:2];
|
||||
[button setImagePosition:NSImageOnly];
|
||||
[button setImage:IMAGE(@"ProjectCentre_prefs.tiff")];
|
||||
[button setButtonType:NSMomentaryPushButton];
|
||||
[button setTarget:self];
|
||||
[button setAction:@selector(showBuildTargetPanel:)];
|
||||
|
||||
button = [matrix cellAtRow:0 column:3];
|
||||
[button setTag:3];
|
||||
[button setImagePosition:NSImageOnly];
|
||||
[button setImage:IMAGE(@"ProjectCentre_run.tiff")];
|
||||
[button setButtonType:NSMomentaryPushButton];
|
||||
|
||||
button = [matrix cellAtRow:0 column:4];
|
||||
[button setTag:4];
|
||||
[button setImagePosition:NSImageOnly];
|
||||
[button setImage:IMAGE(@"ProjectCentre_uml.tiff")];
|
||||
[button setButtonType:NSMomentaryPushButton];
|
||||
|
||||
button = [matrix cellAtRow:0 column:5];
|
||||
[button setTag:5];
|
||||
[button setImagePosition:NSImageOnly];
|
||||
[button setImage:IMAGE(@"ProjectCentre_documentation.tiff")];
|
||||
[button setButtonType:NSMomentaryPushButton];
|
||||
|
||||
button = [matrix cellAtRow:0 column:6];
|
||||
[button setTag:6];
|
||||
[button setImagePosition:NSImageOnly];
|
||||
[button setImage:IMAGE(@"ProjectCentre_find.tiff")];
|
||||
[button setButtonType:NSMomentaryPushButton];
|
||||
|
@ -168,7 +151,11 @@
|
|||
*/
|
||||
|
||||
_w_frame = NSMakeRect(100,100,272,80);
|
||||
buildTargetPanel = [[NSWindow alloc] initWithContentRect:_w_frame styleMask:style backing:NSBackingStoreBuffered defer:NO];
|
||||
style = NSTitledWindowMask | NSClosableWindowMask;
|
||||
buildTargetPanel = [[NSWindow alloc] initWithContentRect:_w_frame
|
||||
styleMask:style
|
||||
backing:NSBackingStoreBuffered
|
||||
defer:YES];
|
||||
[buildTargetPanel setDelegate:self];
|
||||
[buildTargetPanel setReleasedWhenClosed:NO];
|
||||
[buildTargetPanel setTitle:@"Build Options"];
|
||||
|
@ -427,6 +414,8 @@
|
|||
[fileNameField release];
|
||||
[changeFileNameButton release];
|
||||
|
||||
[box release];
|
||||
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
|
@ -559,11 +548,6 @@
|
|||
return @"Abstract PCProject class!";
|
||||
}
|
||||
|
||||
- (id)textView
|
||||
{
|
||||
return textView;
|
||||
}
|
||||
|
||||
//===========================================================================================
|
||||
// ==== Miscellaneous
|
||||
//===========================================================================================
|
||||
|
@ -573,34 +557,6 @@
|
|||
[fileNameField setStringValue:fileName];
|
||||
}
|
||||
|
||||
- (void)editSelectedFile:(NSString *)file
|
||||
{
|
||||
// NSLayoutManager *_lm = [textView layoutManager];
|
||||
// NSTextStorage *_ts = [[NSTextStorage alloc] initWithString:file];
|
||||
|
||||
/*
|
||||
[_ts beginEditing];
|
||||
[[_ts mutableString] setString:file];
|
||||
[_ts endEditing];
|
||||
*/
|
||||
|
||||
/*
|
||||
if (_lm) {
|
||||
[_lm replaceTextStorage:_ts];
|
||||
}
|
||||
*/
|
||||
|
||||
[textView setString:file];
|
||||
// [textView structure:self];
|
||||
[textView display];
|
||||
// [_ts autorelease];
|
||||
}
|
||||
|
||||
- (void)structureEditedFile:(id)sender
|
||||
{
|
||||
// [textView structure:self];
|
||||
}
|
||||
|
||||
- (BOOL)doesAcceptFile:(NSString *)file forKey:(NSString *)type
|
||||
{
|
||||
if ([[projectDict allKeys] containsObject:type]) {
|
||||
|
@ -815,6 +771,59 @@
|
|||
|
||||
@implementation PCProject (ProjectBuilding)
|
||||
|
||||
- (void)topButtonsPressed:(id)sender
|
||||
{
|
||||
switch ([[sender selectedCell] tag]) {
|
||||
case 0:
|
||||
[self showBuildView:self];
|
||||
break;
|
||||
case 1:
|
||||
[self showInspector:self];
|
||||
break;
|
||||
case 2:
|
||||
[self showBuildTargetPanel:self];
|
||||
break;
|
||||
case 3:
|
||||
[self showRunView:self];
|
||||
break;
|
||||
case 4:
|
||||
case 5:
|
||||
case 6:
|
||||
NSRunAlertPanel(@"Help!",@"This feature is not yet implemented! Please contact me if you are interested in volunteering.",@"Of course!",nil,nil);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
- (void)showBuildView:(id)sender
|
||||
{
|
||||
NSView *view = nil;
|
||||
|
||||
if (!projectBuilder) {
|
||||
projectBuilder = [[PCProjectBuilder alloc] initWithProject:self];
|
||||
}
|
||||
|
||||
view = [[projectBuilder componentView] retain];
|
||||
|
||||
[box setContentView:view];
|
||||
[box display];
|
||||
}
|
||||
|
||||
- (void)showRunView:(id)sender
|
||||
{
|
||||
NSView *view = nil;
|
||||
|
||||
if (!projectDebugger) {
|
||||
projectDebugger = [[PCProjectDebugger alloc] initWithProject:self];
|
||||
}
|
||||
|
||||
view = [[projectDebugger componentView] retain];
|
||||
|
||||
[box setContentView:view];
|
||||
[box display];
|
||||
}
|
||||
|
||||
- (void)showInspector:(id)sender
|
||||
{
|
||||
[projectManager showInspectorForProject:self];
|
||||
|
@ -847,8 +856,6 @@
|
|||
{
|
||||
NSString *host = [buildTargetHostField stringValue];
|
||||
[buildOptions setObject:host forKey:BUILD_HOST_KEY];
|
||||
|
||||
NSLog(@"New host %@",host);
|
||||
}
|
||||
|
||||
- (void)setArguments:(id)sender
|
||||
|
@ -857,11 +864,6 @@
|
|||
[buildOptions setObject:args forKey:BUILD_ARGS_KEY];
|
||||
}
|
||||
|
||||
- (void)build:(id)sender
|
||||
{
|
||||
[[PCProjectBuilder sharedBuilder] showPanelWithProject:self options:buildOptions];
|
||||
}
|
||||
|
||||
- (NSDictionary *)buildOptions
|
||||
{
|
||||
return (NSDictionary *)buildOptions;
|
||||
|
@ -942,13 +944,3 @@
|
|||
}
|
||||
|
||||
@end
|
||||
|
||||
@implementation PCProject (TextDelegate)
|
||||
|
||||
- (void)textDidEndEditing:(NSNotification *)aNotification
|
||||
{
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
|
||||
|
|
|
@ -24,21 +24,17 @@
|
|||
$Id$
|
||||
*/
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <AppKit/AppKit.h>
|
||||
|
||||
@class PCProject;
|
||||
|
||||
@class NSWindow;
|
||||
@class NSTextView;
|
||||
|
||||
@interface PCProjectBuilder : NSObject
|
||||
{
|
||||
NSWindow *buildWindow;
|
||||
NSBox *componentView;
|
||||
|
||||
NSTextView *logOutput;
|
||||
NSTextView *errorOutput;
|
||||
|
||||
NSMutableDictionary *buildTasks;
|
||||
NSString *makePath;
|
||||
|
||||
id buildStatusField;
|
||||
|
@ -51,12 +47,10 @@
|
|||
NSFileHandle *errorReadHandle;
|
||||
}
|
||||
|
||||
+ (id)sharedBuilder;
|
||||
|
||||
- (id)init;
|
||||
- (id)initWithProject:(PCProject *)aProject;
|
||||
- (void)dealloc;
|
||||
|
||||
- (void)showPanelWithProject:(PCProject *)proj options:(NSDictionary *)options;
|
||||
- (NSView *)componentView;
|
||||
|
||||
- (void)build:(id)sender;
|
||||
|
||||
|
@ -65,8 +59,6 @@
|
|||
|
||||
- (void)buildDidTerminate:(NSNotification *)aNotif;
|
||||
|
||||
- (void)projectDidChange:(NSNotification *)aNotif;
|
||||
|
||||
@end
|
||||
|
||||
@interface PCProjectBuilder (BuildLogging)
|
||||
|
|
|
@ -40,17 +40,14 @@
|
|||
|
||||
@interface PCProjectBuilder (CreateUI)
|
||||
|
||||
- (void)_initUI;
|
||||
- (void)_createComponentView;
|
||||
|
||||
@end
|
||||
|
||||
@implementation PCProjectBuilder (CreateUI)
|
||||
|
||||
- (void)_initUI
|
||||
- (void)_createComponentView
|
||||
{
|
||||
NSView *_c_view;
|
||||
unsigned int style = NSTitledWindowMask | NSClosableWindowMask |
|
||||
NSMiniaturizableWindowMask | NSResizableWindowMask;
|
||||
NSSplitView *split;
|
||||
NSScrollView *scrollView1;
|
||||
NSScrollView *scrollView2;
|
||||
|
@ -60,35 +57,26 @@
|
|||
id button;
|
||||
id textField;
|
||||
|
||||
componentView = [[NSBox alloc] initWithFrame:NSMakeRect(0,0,544,248)];
|
||||
[componentView setTitlePosition:NSNoTitle];
|
||||
[componentView setBorderType:NSNoBorder];
|
||||
[componentView setAutoresizingMask:NSViewWidthSizable | NSViewHeightSizable];
|
||||
|
||||
/*
|
||||
* Build Window
|
||||
*
|
||||
*/
|
||||
|
||||
_w_frame = NSMakeRect(100,100,512,320);
|
||||
buildWindow = [[NSWindow alloc] initWithContentRect:_w_frame
|
||||
styleMask:style
|
||||
backing:NSBackingStoreBuffered
|
||||
defer:NO];
|
||||
[buildWindow setDelegate:self];
|
||||
[buildWindow setReleasedWhenClosed:NO];
|
||||
[buildWindow setMinSize:NSMakeSize(512,320)];
|
||||
[buildWindow setFrameAutosaveName:@"Builder"];
|
||||
|
||||
logOutput = [[NSTextView alloc] initWithFrame:NSMakeRect(0,0,472,80)];
|
||||
logOutput = [[NSTextView alloc] initWithFrame:NSMakeRect(0,0,516,32)];
|
||||
[logOutput setMaxSize:NSMakeSize(1e7, 1e7)];
|
||||
[logOutput setMinSize:NSMakeSize(516, 48)];
|
||||
[logOutput setRichText:NO];
|
||||
[logOutput setEditable:NO];
|
||||
[logOutput setSelectable:YES];
|
||||
[logOutput setVerticallyResizable:YES];
|
||||
[logOutput setHorizontallyResizable:NO];
|
||||
[logOutput setAutoresizingMask: NSViewWidthSizable | NSViewHeightSizable];
|
||||
[logOutput setBackgroundColor:[NSColor lightGrayColor]];
|
||||
[[logOutput textContainer] setWidthTracksTextView:YES];
|
||||
|
||||
scrollView1 = [[NSScrollView alloc] initWithFrame:NSMakeRect (0,0,496,92)];
|
||||
scrollView1 = [[NSScrollView alloc] initWithFrame:NSMakeRect (0,0,540,46)];
|
||||
[scrollView1 setDocumentView:logOutput];
|
||||
[logOutput setMinSize:NSMakeSize(0.0,[scrollView1 contentSize].height)];
|
||||
[[logOutput textContainer] setContainerSize:NSMakeSize([scrollView1 contentSize].width,1e7)];
|
||||
[scrollView1 setHasHorizontalScroller: NO];
|
||||
[scrollView1 setHasVerticalScroller: YES];
|
||||
|
@ -100,20 +88,18 @@
|
|||
*
|
||||
*/
|
||||
|
||||
errorOutput = [[NSTextView alloc] initWithFrame:NSMakeRect(0,0,472,80)];
|
||||
errorOutput = [[NSTextView alloc] initWithFrame:NSMakeRect(0,0,516,80)];
|
||||
[errorOutput setMaxSize:NSMakeSize(1e7, 1e7)];
|
||||
[errorOutput setMinSize:NSMakeSize(516, 48)];
|
||||
[errorOutput setRichText:NO];
|
||||
[errorOutput setEditable:NO];
|
||||
[errorOutput setSelectable:YES];
|
||||
[errorOutput setVerticallyResizable:YES];
|
||||
[errorOutput setHorizontallyResizable:NO];
|
||||
[errorOutput setAutoresizingMask: NSViewWidthSizable | NSViewHeightSizable];
|
||||
[errorOutput setBackgroundColor:[NSColor whiteColor]];
|
||||
[[errorOutput textContainer] setWidthTracksTextView:YES];
|
||||
|
||||
scrollView2 = [[NSScrollView alloc] initWithFrame:NSMakeRect (0,0,496,92)];
|
||||
scrollView2 = [[NSScrollView alloc] initWithFrame:NSMakeRect (0,0,540,92)];
|
||||
[scrollView2 setDocumentView:errorOutput];
|
||||
[errorOutput setMinSize:NSMakeSize(0.0,[scrollView2 contentSize].height)];
|
||||
[[errorOutput textContainer] setContainerSize:NSMakeSize([scrollView2 contentSize].width,1e7)];
|
||||
[scrollView2 setHasHorizontalScroller:NO];
|
||||
[scrollView2 setHasVerticalScroller:YES];
|
||||
|
@ -121,19 +107,20 @@
|
|||
[scrollView2 setAutoresizingMask:(NSViewWidthSizable | NSViewHeightSizable)];
|
||||
[scrollView2 autorelease];
|
||||
|
||||
split = [[[NSSplitView alloc] initWithFrame:NSMakeRect(8,0,496,264)] autorelease];
|
||||
split = [[NSSplitView alloc] initWithFrame:NSMakeRect(0,0,540,188)];
|
||||
[split setAutoresizingMask: (NSViewWidthSizable | NSViewHeightSizable)];
|
||||
[split addSubview: scrollView1];
|
||||
[split addSubview: scrollView2];
|
||||
|
||||
_c_view = [buildWindow contentView];
|
||||
[_c_view addSubview:split];
|
||||
[split adjustSubviews];
|
||||
|
||||
[componentView addSubview:split];
|
||||
[split autorelease];
|
||||
|
||||
/*
|
||||
* 5 build Buttons
|
||||
*/
|
||||
|
||||
_w_frame = NSMakeRect(8,272,244,44);
|
||||
_w_frame = NSMakeRect(0,194,244,44);
|
||||
matrix = [[[NSMatrix alloc] initWithFrame: _w_frame
|
||||
mode: NSHighlightModeMatrix
|
||||
prototype: buttonCell
|
||||
|
@ -144,11 +131,10 @@
|
|||
[matrix setAutoresizingMask: (NSViewMaxXMargin | NSViewMinYMargin)];
|
||||
[matrix setTarget:self];
|
||||
[matrix setAction:@selector(build:)];
|
||||
[_c_view addSubview:matrix];
|
||||
[componentView addSubview:matrix];
|
||||
|
||||
button = [matrix cellAtRow:0 column:0];
|
||||
[button setTag:0];
|
||||
//[button setImagePosition:NSNoImage];
|
||||
[button setImagePosition:NSImageOnly];
|
||||
[button setImage:IMAGE(@"ProjectCenter_make")];
|
||||
[button setButtonType:NSMomentaryPushButton];
|
||||
|
@ -156,7 +142,6 @@
|
|||
|
||||
button = [matrix cellAtRow:0 column:1];
|
||||
[button setTag:1];
|
||||
//[button setImagePosition:NSNoImage];
|
||||
[button setImagePosition:NSImageOnly];
|
||||
[button setImage:IMAGE(@"ProjectCenter_clean")];
|
||||
[button setButtonType:NSMomentaryPushButton];
|
||||
|
@ -164,7 +149,6 @@
|
|||
|
||||
button = [matrix cellAtRow:0 column:2];
|
||||
[button setTag:2];
|
||||
//[button setImagePosition:NSNoImage];
|
||||
[button setImagePosition:NSImageOnly];
|
||||
[button setImage:IMAGE(@"ProjectCenter_debug")];
|
||||
[button setButtonType:NSMomentaryPushButton];
|
||||
|
@ -172,7 +156,6 @@
|
|||
|
||||
button = [matrix cellAtRow:0 column:3];
|
||||
[button setTag:3];
|
||||
//[button setImagePosition:NSNoImage];
|
||||
[button setImagePosition:NSImageOnly];
|
||||
[button setImage:IMAGE(@"ProjectCenter_profile")];
|
||||
[button setButtonType:NSMomentaryPushButton];
|
||||
|
@ -180,7 +163,6 @@
|
|||
|
||||
button = [matrix cellAtRow:0 column:4];
|
||||
[button setTag:4];
|
||||
//[button setImagePosition:NSNoImage];
|
||||
[button setImagePosition:NSImageOnly];
|
||||
[button setImage:IMAGE(@"ProjectCenter_install")];
|
||||
[button setButtonType:NSMomentaryPushButton];
|
||||
|
@ -190,7 +172,7 @@
|
|||
* Status
|
||||
*/
|
||||
|
||||
textField = [[NSTextField alloc] initWithFrame:NSMakeRect(256,296,48,15)];
|
||||
textField = [[NSTextField alloc] initWithFrame:NSMakeRect(256,220,48,15)];
|
||||
[textField setAlignment: NSRightTextAlignment];
|
||||
[textField setBordered: NO];
|
||||
[textField setEditable: NO];
|
||||
|
@ -199,13 +181,13 @@
|
|||
[textField setStringValue:@"Status:"];
|
||||
[textField setAutoresizingMask: (NSViewMaxXMargin |
|
||||
NSViewMinYMargin)];
|
||||
[_c_view addSubview:[textField autorelease]];
|
||||
[componentView addSubview:[textField autorelease]];
|
||||
|
||||
/*
|
||||
* Status message
|
||||
*/
|
||||
|
||||
buildStatusField = [[NSTextField alloc] initWithFrame:NSMakeRect(308,296,104,15)];
|
||||
buildStatusField = [[NSTextField alloc] initWithFrame:NSMakeRect(308,220,104,15)];
|
||||
[buildStatusField setAlignment: NSLeftTextAlignment];
|
||||
[buildStatusField setBordered: NO];
|
||||
[buildStatusField setEditable: NO];
|
||||
|
@ -215,13 +197,13 @@
|
|||
[buildStatusField setAutoresizingMask: (NSViewMaxXMargin |
|
||||
NSViewWidthSizable |
|
||||
NSViewMinYMargin)];
|
||||
[_c_view addSubview:[buildStatusField autorelease]];
|
||||
[componentView addSubview:[buildStatusField autorelease]];
|
||||
|
||||
/*
|
||||
* Target
|
||||
*/
|
||||
|
||||
textField = [[NSTextField alloc] initWithFrame:NSMakeRect(256,272,48,15)];
|
||||
textField = [[NSTextField alloc] initWithFrame:NSMakeRect(256,196,48,15)];
|
||||
[textField setAlignment: NSRightTextAlignment];
|
||||
[textField setBordered: NO];
|
||||
[textField setBezeled: NO];
|
||||
|
@ -230,13 +212,13 @@
|
|||
[textField setStringValue:@"Target:"];
|
||||
[textField setAutoresizingMask: (NSViewMaxXMargin |
|
||||
NSViewMinYMargin)];
|
||||
[_c_view addSubview:[textField autorelease]];
|
||||
[componentView addSubview:[textField autorelease]];
|
||||
|
||||
/*
|
||||
* Target message
|
||||
*/
|
||||
|
||||
targetField = [[NSTextField alloc] initWithFrame:NSMakeRect(308,272,104,15)];
|
||||
targetField = [[NSTextField alloc] initWithFrame:NSMakeRect(308,196,104,15)];
|
||||
[targetField setAlignment: NSLeftTextAlignment];
|
||||
[targetField setBordered: NO];
|
||||
[targetField setEditable: NO];
|
||||
|
@ -246,57 +228,39 @@
|
|||
[targetField setAutoresizingMask: (NSViewMaxXMargin |
|
||||
NSViewWidthSizable |
|
||||
NSViewMinYMargin)];
|
||||
[_c_view addSubview:[targetField autorelease]];
|
||||
[componentView addSubview:[targetField autorelease]];
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@implementation PCProjectBuilder
|
||||
|
||||
static PCProjectBuilder *_builder;
|
||||
|
||||
+ (id)sharedBuilder
|
||||
- (id)initWithProject:(PCProject *)aProject
|
||||
{
|
||||
if (!_builder) {
|
||||
_builder = [[PCProjectBuilder alloc] init];
|
||||
}
|
||||
return _builder;
|
||||
}
|
||||
NSAssert(aProject,@"No project specified!");
|
||||
|
||||
- (id)init
|
||||
{
|
||||
if ((self = [super init])) {
|
||||
[self _initUI];
|
||||
makePath = [[NSString stringWithString:@"/usr/bin/make"] retain];
|
||||
buildTasks = [[NSMutableDictionary dictionary] retain];
|
||||
|
||||
[NOTIFICATION_CENTER addObserver:self selector:@selector(projectDidChange:) name:ActiveProjectDidChangeNotification object:nil];
|
||||
currentProject = aProject;
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)dealloc
|
||||
{
|
||||
[NOTIFICATION_CENTER removeObserver:self];
|
||||
|
||||
[buildWindow release];
|
||||
[componentView release];
|
||||
[makePath release];
|
||||
[buildTasks release];
|
||||
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
- (void)showPanelWithProject:(PCProject *)proj options:(NSDictionary *)options;
|
||||
- (NSView *)componentView;
|
||||
{
|
||||
if (![buildWindow isVisible]) {
|
||||
[buildWindow setFrameUsingName:@"Builder"];
|
||||
if (!componentView) {
|
||||
[self _createComponentView];
|
||||
}
|
||||
[buildWindow makeKeyAndOrderFront:self];
|
||||
|
||||
currentProject = proj;
|
||||
currentOptions = options;
|
||||
|
||||
[buildWindow setTitle:[proj projectName]];
|
||||
return componentView;
|
||||
}
|
||||
|
||||
- (void)build:(id)sender
|
||||
|
@ -310,10 +274,6 @@ static PCProjectBuilder *_builder;
|
|||
NSString *status;
|
||||
NSString *target;
|
||||
|
||||
if (!currentProject) {
|
||||
return;
|
||||
}
|
||||
|
||||
logPipe = [NSPipe pipe];
|
||||
readHandle = [[logPipe fileHandleForReading] retain];
|
||||
|
||||
|
@ -445,20 +405,6 @@ static PCProjectBuilder *_builder;
|
|||
}
|
||||
}
|
||||
|
||||
- (void)projectDidChange:(NSNotification *)aNotif
|
||||
{
|
||||
PCProject *project = [aNotif object];
|
||||
|
||||
if (project) {
|
||||
currentProject = project;
|
||||
[buildWindow setTitle:[project projectName]];
|
||||
}
|
||||
else {
|
||||
currentProject = nil;
|
||||
[buildWindow orderOut:self];
|
||||
}
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@implementation PCProjectBuilder (BuildLogging)
|
||||
|
@ -497,3 +443,4 @@ static PCProjectBuilder *_builder;
|
|||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -60,6 +60,8 @@
|
|||
#import "PCProjectManager.h"
|
||||
#import "PCServer.h"
|
||||
#import "PCProject.h"
|
||||
#import "PCProjectBuilder.h"
|
||||
#import "PCProjectDebugger.h"
|
||||
#import "PCFileManager.h"
|
||||
#import "PCBrowserController.h"
|
||||
#import "ProjectDebugger.h"
|
||||
|
@ -69,7 +71,6 @@
|
|||
#import "PreferenceController.h"
|
||||
#import "ProjectBuilder.h"
|
||||
#import "FileCreator.h"
|
||||
#import "PCProjectBuilder.h"
|
||||
#import "PCEditorView.h"
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue