/*============================================================================= * CAFileBrowser.h * PlayPen *----------------------------------------------------------------------------- * * $Log: CAFileBrowser.h,v $ * Revision 1.3 2004/12/19 20:27:18 luke * add 'presetName:ExistsAsChildOf:' method * * Revision 1.2 2004/11/16 17:36:17 luke * last part of fix for [3747338] * * Revision 1.1 2004/07/29 00:21:15 luke * factored out from PlayPen * * Revision 1.10 2004/07/28 23:57:20 luke * pass 3: final * * Revision 1.9 2004/07/28 21:43:26 luke * 2nd pass: CAFileBrowser API breakup * * Revision 1.8 2004/07/28 20:50:15 luke * first pass: transition into approved API * * Revision 1.7 2004/07/02 01:02:31 mhopkins * Fixed hang renaming files * * Revision 1.6 2004/06/24 23:21:30 mhopkins * added methods to return name and data key strings * * Revision 1.5 2004/05/27 22:56:16 luke * sync with changes to .mm file * * Revision 1.4 2004/05/26 21:09:54 luke * add hasPresets method * * Revision 1.3 2004/05/26 19:41:23 luke * fix font clipping * * Revision 1.2 2004/05/25 22:25:19 luke * allow preset renaming (per [3616417]) * * Revision 1.1 2004/04/17 20:05:20 luke * source reorg. * * Revision 1.8 2003/12/18 19:48:29 luke * push directory-creation code into CAFileBrowser superclass * * Revision 1.7 2003/11/06 19:28:23 luke * pull 'savePresetWithName:asLocal: into superclass * * Revision 1.6 2003/10/22 22:17:32 luke * add path accessor * * Revision 1.5 2003/10/21 23:28:26 luke * added features that future subclasses may need * * Revision 1.4 2003/10/21 22:03:31 luke * inherit from NSOutlineView & change some behavior per discussion with Bill * * Revision 1.3 2003/10/15 16:56:43 luke * tighten up code. * * Revision 1.2 2003/10/15 00:46:03 luke * tighten up code * * Revision 1.1 2003/10/15 00:12:30 luke * new file * * *----------------------------------------------------------------------------- * Created by Luke Bellandi on Tue Oct 14 2003. * Copyright (c) 2003 Apple Computer Inc. All rights reserved. *=============================================================================*/ #import extern NSString *CARootUserDirectory; extern NSString *CARootLocalDirectory; extern NSString *CARootNetworkDirectory; class CAFileHandling; @interface CAFileBrowser : NSOutlineView { @private NSTextFieldCell * mCell; NSString * mCachedRenameValue; CAFileHandling * mFileHandler; NSMutableArray * mBrowserTreeList; NSMutableArray * mOutlineViewDataRetentionPool; BOOL mBrowserWasDoubleClicked; BOOL mFileIsBeingRenamed; BOOL mScanNetworkForFiles; } // public functions - (id)initWithFrame:(NSRect)inRect shouldScanNetworkForFiles:(BOOL)shouldScanNetworkForFiles; // scanning the network can prove time-consuming for some users, so we leave it // up to the client whether or not to scan it. - (BOOL)scansNetworkForFiles; // self explanatory - (NSURL *)URLForItem:(id)item; // returns autoreleased URL - (CFPropertyListRef)readPropertyListForItem:(id)item; // client is responsible for releasing returned CFPropertyListRef // returns NULL if property list could not be retrieved - (BOOL)presetName:(NSString *)inPresetName existsAsChildOf:(id)item; // use before calling savePresetWithName:asChildOf: to detect a potential overwrite - (BOOL)savePresetWithName:(NSString *)inPresetName asChildOf:(id)item; // subclasses should implement this method to save appropriate // data at the location specified by the client. // returns: YES if operation was successful - (BOOL)createDirectory:(NSString *)inName asChildOfItem:(id)parent; // creates an empty directory as a child of the specified item // (specified item must be a directory.) // returns: YES if operation was successful - (void)rescanFiles; // implemented by subclasses to rescan file system to pick up any // changes made on disk and integrate those into the hierarchy. // Subclasses should delete their CAFileHandlingObject here, // create a new one, and reset it using the protected // setCAFileHandlingObject method. @end