ProjectManager  0.2
ApplicationProjectType.h
1 /*
2  ApplicationProjectType.h
3 
4  Interface declaration of the ApplicationProjectType class for the
5  ProjectManager application.
6 
7  Copyright (C) 2005, 2006 Saso Kiselkov
8 
9  This program is free software; you can redistribute it and/or modify
10  it under the terms of the GNU General Public License as published by
11  the Free Software Foundation; either version 2 of the License, or
12  (at your option) any later version.
13 
14  This program is distributed in the hope that it will be useful,
15  but WITHOUT ANY WARRANTY; without even the implied warranty of
16  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17  GNU General Public License for more details.
18 
19  You should have received a copy of the GNU General Public License
20  along with this program; if not, write to the Free Software
21  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
22 */
23 
24 #import <Foundation/NSObject.h>
25 #import "../../ProjectType.h"
26 
27 #import "../../ProjectModules/MakeBuilder/MakeBuilderDelegate.h"
28 #import "../../ProjectModules/GNUstepAppLauncher/GNUstepAppLauncherDelegate.h"
29 #import "../../ProjectModules/FileManager/FileManagerDelegate.h"
30 #import "../../ProjectModules/ProjectAttributes/ProjectAttributesDelegate.h"
31 #import "../../ProjectModules/SubprojectsManager/SubprojectsManagerDelegate.h"
32 
33 @class NSString,
34  NSDictionary,
35  NSArray,
36  NSMutableArray,
37  NSNotification;
38 
39 @class ProjectDocument,
43 
46 
47 @interface ApplicationProjectType : NSObject <ProjectType,
53 {
54  // weak reference
55  ProjectDocument * owner;
56 
57  NSString * appName;
58  NSString * mainNibFile;
59  NSString * principalClass;
60  NSArray * authors;
61  NSString * appRelease;
62  NSString * appDescription;
63  NSString * copyright;
64  NSString * copyrightDescription;
65  NSString * iconName;
66 
67  NSMutableArray * types;
68 
69  ApplicationGeneralAttributes * generalAttributes;
70  ApplicationTypeAttributes * typeAttributes;
71 
72  FileManager * fileManager;
73  MakeBuilder * builder;
74  GNUstepAppLauncher * launcher;
75 
76  // YES while we're delaying a launch until a build is complete, NO
77  // in the case of a normal build
78  BOOL waitingForBuildCompletion;
79 
80  unsigned int oldMakeHash;
81 }
82 
83 - (void) setApplicationName: (NSString *) aName;
84 - (NSString *) applicationName;
85 
86 - (void) setMainNibFile: (NSString *) aFile;
87 - (NSString *) mainNibFile;
88 
89 - (void) setPrincipalClass: (NSString *) aClass;
90 - (NSString *) principalClass;
91 
92 - (void) setAuthors: (NSArray *) anArray;
93 - (NSArray *) authors;
94 
95 - (void) setApplicationRelease: (NSString *) aRelease;
96 - (NSString *) applicationRelease;
97 
98 - (void) setApplicationDescription: (NSString *) aDescription;
99 - (NSString *) applicationDescription;
100 
101 - (void) setCopyright: (NSString *) aCopyright;
102 - (NSString *) copyright;
103 
104 - (void) setCopyrightDescription: (NSString *) aCopyrightDescription;
105 - (NSString *) copyrightDescription;
106 
107 - (void) setIconName: (NSString *) iconName;
108 - (NSString *) iconName;
109 
110 - (void) buildEnded: (NSNotification *) notif;
111 
112 @end
SubprojectsManagerDelegate-p
Definition: SubprojectsManagerDelegate.h:30
ProjectDocument
Definition: ProjectDocument.h:43
GNUstepAppLauncherDelegate-p
Definition: GNUstepAppLauncherDelegate.h:28
GNUstepAppLauncher
Definition: GNUstepAppLauncher.h:48
ApplicationTypeAttributes
Definition: ApplicationTypeAttributes.h:29
MakeBuilderDelegate-p
Definition: MakeBuilderDelegate.h:25
FileManagerDelegate-p
This protocol declares what methods should be implemented by a FileManager delegate object.
Definition: FileManagerDelegate.h:43
FileManager
Definition: FileManager.h:92
ApplicationProjectType
Definition: ApplicationProjectType.h:47
ProjectAttributesDelegate-p
Definition: ProjectAttributesDelegate.h:30
MakeBuilder
Definition: MakeBuilder.h:91
ApplicationGeneralAttributes
Definition: ApplicationGeneralAttributes.h:34
ProjectType-p
This protocol is adopted by project type support objects.
Definition: ProjectType.h:40