home *** CD-ROM | disk | FTP | other *** search
/ Nebula 1995 August / NEBULA.mdf / SourceCode / Palettes / PAStringList / PAFilenameList.h < prev    next >
Encoding:
C/C++ Source or Header  |  1993-05-12  |  3.2 KB  |  88 lines

  1. #import "PAStringList.h"
  2.  
  3. /******************************************************************************
  4. PAFilenameList
  5.  
  6.     The PAFilenameList (a subclass of PAStringList) is a convenient way to deal with lists of filenames. It contains methods for generating lists of filenames from given directories. There is also a specific method for searching the standard libraries (/NextLibrary, /LocalLibrary, ~/Libary). Files can be limited to particular extensions and can be returned with or without their full path and extension.
  7.     
  8.     Copyright 1992, Jeff Martin (jmartin@next.com) (415) 780-3833.
  9. ******************************************************************************/
  10.  
  11. @interface PAFilenameList : PAStringList
  12. {
  13.     char    *plLibs;                // Libary directories to be preloaded
  14.     char    *plDirs;                // Directories to be preloaded
  15.     char    *plExts;                // Extensions to be preloaded
  16.     BOOL    plFromAppDir;            // Whether to preload from the AppWrapper
  17.     BOOL    plFromBundleDir;        // Whether to preload from this bundle
  18.     BOOL    plStripPath, plStripExt;// Whether to strip paths & ext from files
  19.     BOOL    plIfAbsent, plSorted;    // Whether to 'add if absent' and sort
  20. }
  21.  
  22. // Adding filenames
  23. - addFilename:(const char *)filename stripPath:(BOOL)stripPath 
  24.     stripExt:(BOOL)stripExt ifAbsent:(BOOL)ifAbsent noCopy:(BOOL)noCopy 
  25.     sorted:(BOOL)sorted at:(int)at;
  26.  
  27. // Adding arrays of filenames or another PAFilenameList
  28. - addFilenames:(const char *const*)filenames stripPath:(BOOL)stripPath 
  29.     stripExt:(BOOL)stripExt ifAbsent:(BOOL)ifAbsent noCopy:(BOOL)noCopy 
  30.     sorted:(BOOL)sorted at:(int)at;
  31. - addPAFilenameList:filenameListObject stripPath:(BOOL)stripPath 
  32.     stripExt:(BOOL)stripExt ifAbsent:(BOOL)ifAbsent noCopy:(BOOL)noCopy 
  33.     sorted:(BOOL)sorted at:(int)at;
  34.  
  35. // Adding individual filenames from delimited (tab or otherwise) string
  36. - addDelimitedFilenames:(const char *)string delimiters:(const char *)dels 
  37.     stripPath:(BOOL)stripPath stripExt:(BOOL)stripExt ifAbsent:(BOOL)ifAbsent 
  38.     sorted:(BOOL)sorted at:(int)at;
  39.  
  40. // Adding filenames from directories
  41. - addFilenamesFromDirectories:(const char *)dirs withExts:(const char *)exts 
  42.     stripPath:(BOOL)stripPath stripExt:(BOOL)stripExt ifAbsent:(BOOL)ifAbsent 
  43.     sorted:(BOOL)sorted at:(int)at;
  44. - addFilenamesFromStandardLibrariesDirectories:(const char *)dirs
  45.     withExts:(const char *)exts stripPath:(BOOL)stripPath 
  46.     stripExt:(BOOL)stripExt ifAbsent:(BOOL)ifAbsent sorted:(BOOL)sorted 
  47.     at:(int)at;
  48.  
  49. // Sorting Strings
  50. - sortFilenamesIgnoringPath:sender;
  51. int filenameCmp(const void *s1, const void *s2);
  52.  
  53. // Preloading strings
  54. - (const char *)preLoadLibraries;
  55. - setPreLoadLibraries:(const char *)libraries;
  56.  
  57. - (const char *)preLoadDirectories;
  58. - setPreLoadDirectories:(const char *)directories;
  59.  
  60. - (const char *)preLoadExtensions;
  61. - setPreLoadExtensions:(const char *)extensions;
  62.  
  63. - (BOOL)preLoadFromAppDir;
  64. - setPreLoadFromAppDir:(BOOL)flag;
  65.  
  66. - (BOOL)preLoadFromBundleDir;
  67. - setPreLoadFromBundleDir:(BOOL)flag;
  68.  
  69. - (BOOL)preLoadStripPath;
  70. - setPreLoadStripPath:(BOOL)flag;
  71.  
  72. - (BOOL)preLoadStripExt;
  73. - setPreLoadStripExt:(BOOL)flag;
  74.  
  75. - (BOOL)preLoadIfAbsent;
  76. - setPreLoadIfAbsent:(BOOL)flag;
  77.  
  78. - (BOOL)preLoadSorted;
  79. - setPreLoadSorted:(BOOL)flag;
  80.  
  81. // Archiving
  82. - write:(NXTypedStream *)stream;
  83. - read:(NXTypedStream *)stream;
  84.  
  85. @end
  86.  
  87. char *PAExpandFilename(char *fn);
  88.