ProjectManager  0.2
ProjectWindowController.h
00001 /*
00002     ProjectWindowController.h
00003 
00004     Interface declaration of the ProjectWindowController 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 <AppKit/NSWindowController.h>
00025 #import <AppKit/NSMenu.h>
00026 
00027 @class NSArray,
00028        NSBox,
00029        NSMutableDictionary,
00030        NSNotification,
00031        NSPopUpButton,
00032        NSString,
00033        NSTextView,
00034        NSToolbar,
00035        NSToolbarItem;
00036 @class ProjectDocument;
00037 @protocol ProjectModule;
00038 
00039 @interface ProjectWindowController : NSWindowController
00040 {
00041   id myWindow;
00042   NSBox * box;
00043 
00044   NSObject <ProjectModule> * currentModule;
00045 
00046   NSToolbar * toolbar;
00047   NSToolbarItem * switcherItem, * logItem;
00048   NSPopUpButton * moduleSwitcher;
00049   NSTextView * log;
00050 
00051   // weak reference
00052   ProjectDocument * owner;
00053 }
00054 
00055 - initWithWindowNibName: (NSString *) nibName
00056           ownerDocument: (ProjectDocument *) anOwner;
00057 
00058 - (void) switchView: sender;
00059 
00060 - (void) selectModule: (unsigned int) moduleNumber;
00061 
00062 - (void) setCurrentModule: (id <ProjectModule>) aModule;
00063 - (id <ProjectModule>) currentModule;
00064 
00065 // toolbar delegate methods
00066 - (NSToolbarItem*)toolbar: (NSToolbar*) toolbar
00067     itemForItemIdentifier: (NSString*) itemIdentifier
00068 willBeInsertedIntoToolbar: (BOOL) flag;
00069 - (NSArray*) toolbarAllowedItemIdentifiers: (NSToolbar*) toolbar;
00070 - (NSArray*) toolbarDefaultItemIdentifiers: (NSToolbar*) toolbar;
00071 - (BOOL) validateToolbarItem: (NSToolbarItem *)toolbarItem;
00072 
00073 // notifications
00074 - (void) projectNameChanged: (NSNotification *) notif;
00075 
00076 - (void) logMessage: (NSString *) aMessage;
00077 
00078 @end