ProjectManager  0.2
ApplicationProjectType.h
00001 /*
00002     ApplicationProjectType.h
00003 
00004     Interface declaration of the ApplicationProjectType class for the
00005     ProjectManager application.
00006 
00007     Copyright (C) 2005, 2006  Saso Kiselkov
00008 
00009     This program is free software; you can redistribute it and/or modify
00010     it under the terms of the GNU General Public License as published by
00011     the Free Software Foundation; either version 2 of the License, or
00012     (at your option) any later version.
00013 
00014     This program is distributed in the hope that it will be useful,
00015     but WITHOUT ANY WARRANTY; without even the implied warranty of
00016     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00017     GNU General Public License for more details.
00018 
00019     You should have received a copy of the GNU General Public License
00020     along with this program; if not, write to the Free Software
00021     Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
00022 */
00023 
00024 #import <Foundation/NSObject.h>
00025 #import "../../ProjectType.h"
00026 
00027 #import "../../ProjectModules/MakeBuilder/MakeBuilderDelegate.h"
00028 #import "../../ProjectModules/GNUstepAppLauncher/GNUstepAppLauncherDelegate.h"
00029 #import "../../ProjectModules/FileManager/FileManagerDelegate.h"
00030 #import "../../ProjectModules/ProjectAttributes/ProjectAttributesDelegate.h"
00031 #import "../../ProjectModules/SubprojectsManager/SubprojectsManagerDelegate.h"
00032 
00033 @class NSString,
00034        NSDictionary,
00035        NSArray,
00036        NSMutableArray,
00037        NSNotification;
00038 
00039 @class ProjectDocument,
00040        FileManager,
00041        MakeBuilder,
00042        GNUstepAppLauncher;
00043 
00044 @class ApplicationGeneralAttributes,
00045        ApplicationTypeAttributes;
00046 
00047 @interface ApplicationProjectType : NSObject <ProjectType,
00048                                               ProjectAttributesDelegate,
00049                                               FileManagerDelegate,
00050                                               MakeBuilderDelegate,
00051                                               GNUstepAppLauncherDelegate,
00052                                               SubprojectsManagerDelegate>
00053 {
00054   // weak reference
00055   ProjectDocument * owner;
00056 
00057   NSString * appName;
00058   NSString * mainNibFile;
00059   NSString * principalClass;
00060   NSArray  * authors;
00061   NSString * appRelease;
00062   NSString * appDescription;
00063   NSString * copyright;
00064   NSString * copyrightDescription;
00065   NSString * iconName;
00066 
00067   NSMutableArray * types;
00068 
00069   ApplicationGeneralAttributes * generalAttributes;
00070   ApplicationTypeAttributes * typeAttributes;
00071 
00072   FileManager * fileManager;
00073   MakeBuilder * builder;
00074   GNUstepAppLauncher * launcher;
00075 
00076   // YES while we're delaying a launch until a build is complete, NO
00077   // in the case of a normal build
00078   BOOL waitingForBuildCompletion;
00079 
00080   unsigned int oldMakeHash;
00081 }
00082 
00083 - (void) setApplicationName: (NSString *) aName;
00084 - (NSString *) applicationName;
00085 
00086 - (void) setMainNibFile: (NSString *) aFile;
00087 - (NSString *) mainNibFile;
00088 
00089 - (void) setPrincipalClass: (NSString *) aClass;
00090 - (NSString *) principalClass;
00091 
00092 - (void) setAuthors: (NSArray *) anArray;
00093 - (NSArray *) authors;
00094 
00095 - (void) setApplicationRelease: (NSString *) aRelease;
00096 - (NSString *) applicationRelease;
00097 
00098 - (void) setApplicationDescription: (NSString *) aDescription;
00099 - (NSString *) applicationDescription;
00100 
00101 - (void) setCopyright: (NSString *) aCopyright;
00102 - (NSString *) copyright;
00103 
00104 - (void) setCopyrightDescription: (NSString *) aCopyrightDescription;
00105 - (NSString *) copyrightDescription;
00106 
00107 - (void) setIconName: (NSString *) iconName;
00108 - (NSString *) iconName;
00109 
00110 - (void) buildEnded: (NSNotification *) notif;
00111 
00112 @end