apps-projectcenter/Framework/PCProjectBuilderPanel.m
Sergii Stoian c47403f9b0 Project Builder make errors parsing: finished formatting, testing
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/apps/projectcenter/trunk@24343 72102866-910b-0410-8b05-ffd578937521
2007-01-12 18:02:41 +00:00

147 lines
3.5 KiB
Objective-C

/*
GNUstep ProjectCenter - http://www.gnustep.org/experience/ProjectCenter.html
Copyright (C) 2003 Free Software Foundation
Authors: Serg Stoyan
This file is part of GNUstep.
This application is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This application is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU General Public
License along with this library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA.
*/
#include <ProjectCenter/PCProjectManager.h>
#include <ProjectCenter/PCProject.h>
#include <ProjectCenter/PCProjectBuilder.h>
#include <ProjectCenter/PCProjectBuilderPanel.h>
#include <ProjectCenter/PCLogController.h>
@implementation PCProjectBuilderPanel
- (void)awakeFromNib
{
PCProject *activeProject = [projectManager rootActiveProject];
[panel setFrameAutosaveName:@"ProjectBuilder"];
[panel setTitle:[NSString stringWithFormat:
@"%@ - Project Build", [activeProject projectName]]];
// Panel's content view
[panel setContentView:contentBox];
// Empty content view of contentBox
RETAIN(emptyBox);
// Track project switching
[[NSNotificationCenter defaultCenter]
addObserver:self
selector:@selector(activeProjectDidChange:)
name:PCActiveProjectDidChangeNotification
object:nil];
if (![panel setFrameUsingName:@"ProjectBuilder"])
{
[panel center];
}
}
- (id)initWithProjectManager:(PCProjectManager *)aManager
{
projectManager = aManager;
if ([NSBundle loadNibNamed:@"BuilderPanel" owner:self] == NO)
{
PCLogError(self, @"error loading BuilderPanel NIB file!");
return nil;
}
return self;
}
- (void)dealloc
{
#ifdef DEVELOPMENT
NSLog(@"PCBuildPanel: dealloc");
#endif
[[NSNotificationCenter defaultCenter] removeObserver:self];
RELEASE(emptyBox);
[super dealloc];
}
- (void)orderFront:(id)sender
{
PCProject *activeProject = [projectManager rootActiveProject];
NSView *builderView = [[activeProject projectBuilder] componentView];
if (!([contentBox contentView] == builderView))
{
[contentBox setContentView:builderView];
[contentBox display];
}
/* PCLogInfo(self, @"orderFront: %@ -> %@",
builderView, [builderView superview]);*/
[panel orderFront:self];
}
- (void)close
{
// PCLogInfo(self, @"close: %@", [contentBox contentView]);
[contentBox setContentView:emptyBox];
// PCLogInfo(self, @"close: %@", [contentBox contentView]);
[panel close];
}
- (void)activeProjectDidChange:(NSNotification *)aNotif
{
PCProject *rootProject = [projectManager rootActiveProject];
if (rootProject == currentProject)
{
return;
}
currentProject = rootProject;
/* PCLogInfo(self, @"activeProjectDidChange to: %@",
[rootProject projectName]);*/
if (!rootProject)
{
[contentBox setContentView:emptyBox];
}
else
{
[panel setTitle:[NSString stringWithFormat:
@"%@ - Project Build", [rootProject projectName]]];
[contentBox setContentView:[[rootProject projectBuilder] componentView]];
}
}
- (BOOL)isVisible
{
return [panel isVisible];
}
@end