1 /*
2    GNUstep ProjectCenter - http://www.gnustep.org/experience/ProjectCenter.html
3 
4    Copyright (C) 2001 Free Software Foundation
5 
6    This file is part of GNUstep.
7 
8    This application is free software; you can redistribute it and/or
9    modify it under the terms of the GNU General Public
10    License as published by the Free Software Foundation; either
11    version 2 of the License, or (at your option) any later version.
12 
13    This application is distributed in the hope that it will be useful,
14    but WITHOUT ANY WARRANTY; without even the implied warranty of
15    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16    Library General Public License for more details.
17 
18    You should have received a copy of the GNU General Public
19    License along with this library; if not, write to the Free
20    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA.
21 */
22 
23 #ifndef _PCMENUCONTROLLER_H
24 #define _PCMENUCONTROLLER_H
25 
26 #import <AppKit/AppKit.h>
27 
28 @class PCProjectManager;
29 @class PCFileManager;
30 @class PCAppController;
31 
32 @interface PCMenuController : NSObject
33 {
34   PCProjectManager *projectManager;
35   PCAppController  *appController;
36 
37   BOOL             editorIsActive;
38 }
39 
40 //============================================================================
41 //==== Init and free
42 //============================================================================
43 
44 - (id)init;
45 - (void)dealloc;
46 
47 - (void)setAppController:(id)anObject;
48 - (void)setProjectManager:(id)anObject;
49 
50 //============================================================================
51 //==== Menu stuff
52 //============================================================================
53 
54 // Info
55 - (void)showInfoPanel:(id)sender;
56 - (void)showPrefWindow:(id)sender;
57 - (void)showLogPanel:(id)sender;
58 
59 // Project
60 - (void)projectOpen:(id)sender;
61 - (void)projectNew:(id)sender;
62 - (void)projectSave:(id)sender;
63 - (void)projectAddFiles:(id)sender;
64 - (void)projectSaveFiles:(id)sender;
65 - (void)projectRemoveFiles:(id)sender;
66 - (void)projectClose:(id)sender;
67 
68 // Subproject
69 - (void)subprojectNew:(id)sender;
70 - (void)subprojectAdd:(id)sender;
71 
72 // File
73 - (void)fileNew:(id)sender;
74 - (void)fileOpen:(id)sender;
75 - (void)fileSave:(id)sender;
76 - (void)fileSaveAs:(id)sender;
77 - (void)fileSaveTo:(id)sender;
78 - (void)fileRevertToSaved:(id)sender;
79 - (void)fileClose:(id)sender;
80 - (void)fileOpenQuickly:(id)sender;
81 - (void)fileRename:(id)sender;
82 - (void)fileNewUntitled:(id)sender;
83 
84 // Tools
85 - (void)showInspector:(id)sender;
86 - (void)showEditorPanel:(id)sender;
87 // Project Build
88 - (void)showBuildPanel:(id)sender;
89 - (void)executeBuild:(id)sender;
90 - (void)stopBuild:(id)sender;
91 - (void)startClean:(id)sender;
92 // Loaded Files
93 - (void)showLoadedFilesPanel:(id)sender;
94 - (void)loadedFilesSortByTime:(id)sender;
95 - (void)loadedFilesSortByName:(id)sender;
96 - (void)loadedFilesNextFile:(id)sender;
97 - (void)loadedFilesPreviousFile:(id)sender;
98 // Launcher
99 - (void)showLaunchPanel:(id)sender;
100 - (void)runTarget:(id)sender;
101 - (void)debugTarget:(id)sender;
102 
103 //============================================================================
104 //==== Delegate stuff
105 //============================================================================
106 
107 - (BOOL)validateMenuItem:(id <NSMenuItem>)menuItem;
108 
109 - (void)editorDidBecomeActive:(NSNotification *)aNotif;
110 - (void)editorDidResignActive:(NSNotification *)aNotif;
111 
112 @end
113 
114 #endif
115 
116