ProjectManager 0.2
ProjectModule.h
1/*
2 ProjectModule.h
3
4 Interface declaration of the ProjectModule 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 <AppKit/NSMenu.h>
26
27@class NSString, NSToolbarItem, ProjectDocument, NSView;
28
29extern NSString * const CurrentProjectModuleDidChangeNotification;
30
44@protocol ProjectModule <NSObject, NSMenuValidation>
45
49+ (NSString *) moduleName;
50
51+ (NSString *) humanReadableModuleName;
52
56- initWithDocument: (ProjectDocument *) document
57 infoDictionary: (NSDictionary *) infoDict;
58
72- (void) finishInit;
73
78- (ProjectDocument *) document;
79
84- (NSView *) view;
85
94- (NSDictionary *) infoDictionary;
95
102- (BOOL) regenerateDerivedFiles;
103
108- (NSArray *) moduleMenuItems;
109
114- (NSArray *) toolbarItemIdentifiers;
115
122- (NSToolbarItem *) toolbarItemForItemIdentifier: (NSString *) itemIdentifier;
123
128- (BOOL) validateToolbarItem: (NSToolbarItem *) toolbarItem;
129
130@end
131
132static inline NSMenuItem *
133PMMakeMenuItem (NSString * title, SEL action, NSString * keyEquivalent,
134 id target)
135{
136 NSMenuItem * item;
137
138 item = [[[NSMenuItem alloc]
139 initWithTitle: title action: action keyEquivalent: keyEquivalent]
140 autorelease];
141 [item setTarget: target];
142
143 return item;
144}
This class is the principal document class for project files.
Definition ProjectDocument.h:44