ProjectManager  0.2
SubprojectsManager.h
00001 /*
00002     SubprojectsManager.h
00003 
00004     Interface declaration of the SubprojectsManager 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 "../../ProjectModule.h"
00025 
00026 @class NSDictionary,
00027        NSMutableDictionary,
00028        NSBox,
00029        NSNotification,
00030        NSOutlineView,
00031        NSTableColumn,
00032        NSFileManager;
00033 
00034 @class ProjectDocument;
00035 
00036 @protocol SubprojectsManagerDelegate;
00037 
00038 @interface SubprojectsManager : NSObject <ProjectModule>
00039 {
00040   // weak references
00041   ProjectDocument * document;
00042   id <SubprojectsManagerDelegate> delegate;
00043 
00044   id bogusWindow, view;
00045   id outline;
00046 
00067   NSMutableArray * subprojects;
00068   // an unsorted list of names of all subproject names
00069   NSMutableArray * subprojectNames;
00070 
00071   // file operation errors from the file manager
00072   NSDictionary * fileOpErrorDict;
00073 }
00074 
00075 - (NSArray *) subprojectNames;
00076 
00077 - (id)outlineView: (NSOutlineView *)outlineView 
00078             child: (int)index 
00079            ofItem: (id)item;
00080 - (BOOL)outlineView: (NSOutlineView *)outlineView
00081    isItemExpandable: (id)item;
00082 - (int)outlineView: (NSOutlineView *)outlineView
00083 numberOfChildrenOfItem: (id)item;
00084 - (id)outlineView: (NSOutlineView *)outlineView
00085 objectValueForTableColumn:(NSTableColumn *)tableColumn
00086            byItem:(id)item;
00087 - (void)outlineView: (NSOutlineView *)outlineView
00088      setObjectValue: (id)object
00089      forTableColumn: (NSTableColumn *)tableColumn
00090              byItem: (id)item;
00091 
00092 - (BOOL) fileManager: (NSFileManager*)fileManager
00093   shouldProceedAfterError: (NSDictionary*)errorDictionary;
00094 
00095 - (void) fileManager: (NSFileManager*)fileManager
00096      willProcessPath: (NSString*)path;
00097 
00098 - (void) newSubprojectAction: sender;
00099 - (void) addSubprojectAction: sender;
00100 - (void) removeSubprojectAction: sender;
00101 - (void) openSubprojectAction: sender;
00102 - (void) newSubprojectCategoryAction: sender;
00103 - (void) removeSubprojectCategoryAction: sender;
00104 
00105 @end