home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 January: Mac OS SDK / Dev.CD Jan 97 SDK2.toast / Development Kits (Disc 2) / OpenDoc Development Framework / ODFDev / ODF / OS / FWOSMisc / FWFileOp.h < prev    next >
Encoding:
Text File  |  1996-09-17  |  10.2 KB  |  300 lines  |  [TEXT/MPS ]

  1. //========================================================================================
  2. //
  3. //    File:        FWFileOp.h
  4. //    Release Version:    $ ODF 2 $
  5. //
  6. //    Copyright:    (c) 1993 - 1996 by Apple Computer, Inc., all rights reserved.
  7. //
  8. //========================================================================================
  9.  
  10. #ifndef FWFILEOP_H
  11. #define FWFILEOP_H
  12.  
  13. #ifndef SLFILEOP_H
  14. #include "SLFileOp.h"
  15. #endif
  16.  
  17. //========================================================================================
  18. //    CLASS FW_COpenFileParameters - parameters for StandardGetFile (Mac) and GetOpenFileName (Windows)
  19. //========================================================================================
  20.  
  21. class FW_COpenFileParameters
  22. {
  23. public:
  24.     FW_DECLARE_AUTO(FW_COpenFileParameters)
  25.  
  26.     FW_COpenFileParameters();
  27.     ~FW_COpenFileParameters();
  28.     
  29. #ifdef FW_BUILD_MAC
  30.     FW_COpenFileParameters(OSType fileType, FileFilterProcPtr fileFilterProc = NULL);
  31.         // Use when there's only one file type
  32.     
  33.     FW_COpenFileParameters(short numTypes, 
  34.                            OSType* fileTypeArray, 
  35.                            FileFilterProcPtr fileFilterProcc = NULL);
  36.         // Use for more than 2 file types
  37.  
  38.     FW_COpenFileParameters(FileFilterProcPtr fileFilterProc);
  39.         // Use for filter proc only
  40.     
  41.     void                Set(short numTypes, 
  42.                             OSType* fileTypeArray, 
  43.                             FileFilterProcPtr fileFilterProc);
  44.  
  45.     short                MacCountTypes() const;
  46.     FileFilterProcPtr    MacGetFilterProc() const;
  47.     OSType*                MacGetTypes() const;
  48. #endif
  49.  
  50. #ifdef FW_BUILD_WIN
  51.     FW_COpenFileParameters(const FW_CString& filterString,
  52.                            const FW_CString& defaultExt,
  53.                            HWND ownerWindow = NULL);
  54.  
  55.     void        Set(const FW_CString& filterString,
  56.                     const FW_CString& defaultExt);
  57.  
  58.     char*        WinGetFilterString() const;
  59.     char*        WinGetDefaultExt() const;
  60.     HWND        WinGetOwnerWindow() const;
  61. #endif
  62.  
  63. private:
  64.     friend class FW_CChooseFile;
  65.     FW_SOpenFileParameters fRep;
  66. };
  67.  
  68.  
  69.  
  70. //========================================================================================
  71. //    CLASS FW_CSaveFileParameters - parameters for StandardPutFile (Mac) and GetSaveFileName (Windows)
  72. //========================================================================================
  73.  
  74. class FW_CSaveFileParameters
  75. {
  76. public:
  77.     FW_DECLARE_AUTO(FW_CSaveFileParameters)
  78.  
  79.     FW_CSaveFileParameters();
  80.     ~ FW_CSaveFileParameters();
  81.     
  82. #ifdef FW_BUILD_MAC
  83. public:
  84.     FW_CSaveFileParameters(const FW_CString& savePrompt,
  85.                            const FW_CString& defaultName);
  86.  
  87.     void MacGetSavePrompt(FW_CString& savePrompt) const;
  88.     void MacGetDefaultName(FW_CString& defaultName) const;
  89. #endif
  90.  
  91. #ifdef FW_BUILD_WIN
  92. public:
  93.     FW_CSaveFileParameters(const FW_CString& filterString,
  94.                            const FW_CString& defaultExt,
  95.                            const FW_CString& defaultName,
  96.                            HWND ownerWindow = NULL);
  97.  
  98.     void Set(const FW_CString& filterString,
  99.              const FW_CString& defaultExt,
  100.              const FW_CString& defaultName);
  101.                                         
  102.     char* WinGetFilterString() const;
  103.     char* WinGetDefaultExt() const;
  104.     char* WinGetDefaultName() const;
  105.     HWND WinGetOwnerWindow() const;
  106. #endif
  107.  
  108. private:
  109.     friend class FW_CChooseFile;
  110.     FW_SSaveFileParameters fRep;
  111. };
  112.  
  113. //========================================================================================
  114. //    CLASS FW_CChooseFile - choose a file to open or save
  115. //========================================================================================
  116.  
  117. class FW_CChooseFile
  118. {
  119.   public:
  120.     static FW_OFileSpecification* ChooseFileToOpen(const FW_COpenFileParameters& openFileParam)
  121.     {
  122.         return FW_ChooseFileToOpen((FW_SOpenFileParameters*)&openFileParam.fRep);
  123.     }
  124.     
  125.     static FW_OFileSpecification* ChooseFileToSave(const FW_CSaveFileParameters& saveFileParam)
  126.     {
  127.         return FW_ChooseFileToSave((FW_SSaveFileParameters*)&saveFileParam.fRep);
  128.     }
  129.  
  130.   private:
  131.     FW_CChooseFile();
  132. };
  133.  
  134. //========================================================================================
  135. //    CLASS FW_COpenFileParameters inlines
  136. //========================================================================================
  137.  
  138. #ifdef FW_BUILD_MAC
  139. //----------------------------------------------------------------------------------------
  140. //    FW_COpenFileParameters::Set
  141. //----------------------------------------------------------------------------------------
  142.  
  143. inline void FW_COpenFileParameters::Set(short numTypes, 
  144.                                         OSType* fileTypeArray, 
  145.                                         FileFilterProcPtr fileFilterProc)
  146. {
  147.     ::FW_FailOnError(FW_OpenFileParameters_MacSet(&fRep, numTypes, fileTypeArray, fileFilterProc));
  148. }
  149. #endif
  150.  
  151. #ifdef FW_BUILD_MAC
  152. //----------------------------------------------------------------------------------------
  153. //    FW_COpenFileParameters::MacCountTypes
  154. //----------------------------------------------------------------------------------------
  155. inline short FW_COpenFileParameters::MacCountTypes() const
  156. {
  157.     return FW_OpenFileParameters_MacCountTypes((FW_SOpenFileParameters*)&fRep);
  158. }
  159. #endif
  160.  
  161. #ifdef FW_BUILD_MAC
  162. //----------------------------------------------------------------------------------------
  163. //    FW_COpenFileParameters::MacGetFilterProc
  164. //----------------------------------------------------------------------------------------
  165. inline FileFilterProcPtr FW_COpenFileParameters::MacGetFilterProc() const
  166. {
  167.     return FW_OpenFileParameters_MacGetFilterProc((FW_SOpenFileParameters*)&fRep);
  168. }
  169. #endif
  170.  
  171. #ifdef FW_BUILD_MAC
  172. //----------------------------------------------------------------------------------------
  173. //    FW_COpenFileParameters::MacGetTypes
  174. //----------------------------------------------------------------------------------------
  175. inline OSType* FW_COpenFileParameters::MacGetTypes() const
  176. {
  177.     return FW_OpenFileParameters_MacGetTypes((FW_SOpenFileParameters*)&fRep);
  178. }
  179. #endif
  180.  
  181. #ifdef FW_BUILD_WIN
  182. //----------------------------------------------------------------------------------------
  183. //    FW_COpenFileParameters::Set
  184. //----------------------------------------------------------------------------------------
  185.  
  186. inline void FW_COpenFileParameters::Set(const FW_CString& filterString,
  187.                                         const FW_CString& defaultExt)
  188. {
  189.     ::FW_FailOnError(FW_OpenFileParameters_WinSet(&fRep, filterString, defaultExt));
  190. }
  191. #endif
  192.  
  193. #ifdef FW_BUILD_WIN
  194. //----------------------------------------------------------------------------------------
  195. //    FW_COpenFileParameters::WinGetFilterString
  196. //----------------------------------------------------------------------------------------
  197. inline char* FW_COpenFileParameters::WinGetFilterString() const
  198. {
  199.     return FW_OpenFileParameters_WinGetFilterString((FW_SOpenFileParameters*)&fRep);
  200. }
  201. #endif
  202.  
  203. #ifdef FW_BUILD_WIN
  204. //----------------------------------------------------------------------------------------
  205. //    FW_COpenFileParameters::WinGetDefaultExt
  206. //----------------------------------------------------------------------------------------
  207. inline char* FW_COpenFileParameters::WinGetDefaultExt() const
  208. {
  209.     return FW_OpenFileParameters_WinGetDefaultExt((FW_SOpenFileParameters*)&fRep);
  210. }
  211. #endif
  212.  
  213. #ifdef FW_BUILD_WIN
  214. //----------------------------------------------------------------------------------------
  215. //    FW_COpenFileParameters::WinGetOwnerWindow
  216. //----------------------------------------------------------------------------------------
  217. inline HWND FW_COpenFileParameters::WinGetOwnerWindow() const
  218. {
  219.     return FW_OpenFileParameters_WinGetOwnerWindow((FW_SOpenFileParameters*)&fRep);
  220. }
  221. #endif
  222.  
  223. //========================================================================================
  224. //    CLASS FW_CSaveFileParameters inlines
  225. //========================================================================================
  226.  
  227. #ifdef FW_BUILD_MAC
  228. //----------------------------------------------------------------------------------------
  229. //    FW_CSaveFileParameters::MacGetSavePrompt
  230. //----------------------------------------------------------------------------------------
  231. inline void    FW_CSaveFileParameters::MacGetSavePrompt(FW_CString& savePrompt) const
  232. {
  233.     savePrompt = FW_SaveFileParameters_MacGetSavePrompt((FW_SSaveFileParameters*)&fRep);
  234. }
  235. #endif
  236.  
  237. #ifdef FW_BUILD_MAC
  238. //----------------------------------------------------------------------------------------
  239. //    FW_CSaveFileParameters::MacGetDefaultName
  240. //----------------------------------------------------------------------------------------
  241. inline void    FW_CSaveFileParameters::MacGetDefaultName(FW_CString& defaultName) const
  242. {
  243.     defaultName = FW_SaveFileParameters_MacGetDefaultName((FW_SSaveFileParameters*)&fRep);
  244. }
  245. #endif
  246.  
  247. #ifdef FW_BUILD_WIN
  248. //----------------------------------------------------------------------------------------
  249. //    FW_CSaveFileParameters::Set
  250. //----------------------------------------------------------------------------------------
  251. inline void FW_CSaveFileParameters::Set(const FW_CString& filterString,
  252.                                         const FW_CString& defaultExt,
  253.                                         const FW_CString& defaultName)
  254. {
  255.     ::FW_FailOnError(FW_SaveFileParameters_WinSet(&fRep, filterString, defaultExt, defaultName));
  256. }
  257. #endif
  258.  
  259. #ifdef FW_BUILD_WIN
  260. //----------------------------------------------------------------------------------------
  261. //    FW_CSaveFileParameters::WinGetFilterString
  262. //----------------------------------------------------------------------------------------
  263. inline char* FW_CSaveFileParameters::WinGetFilterString() const
  264. {
  265.     return FW_SaveFileParameters_WinGetFilterString((FW_SSaveFileParameters*)&fRep);
  266. }
  267. #endif
  268.  
  269. #ifdef FW_BUILD_WIN
  270. //----------------------------------------------------------------------------------------
  271. //    FW_CSaveFileParameters::WinGetDefaultExt
  272. //----------------------------------------------------------------------------------------
  273. inline char* FW_CSaveFileParameters::WinGetDefaultExt() const
  274. {
  275.     return FW_SaveFileParameters_WinGetDefaultExt((FW_SSaveFileParameters*)&fRep);
  276. }
  277. #endif
  278.  
  279. #ifdef FW_BUILD_WIN
  280. //----------------------------------------------------------------------------------------
  281. //    FW_CSaveFileParameters::WinGetDefaultName
  282. //----------------------------------------------------------------------------------------
  283. inline char* FW_CSaveFileParameters::WinGetDefaultName() const
  284. {
  285.     return FW_SaveFileParameters_WinGetDefaultName((FW_SSaveFileParameters*)&fRep);
  286. }
  287. #endif
  288.  
  289. #ifdef FW_BUILD_WIN
  290. //----------------------------------------------------------------------------------------
  291. //    FW_CSaveFileParameters::WinGetOwnerWindow
  292. //----------------------------------------------------------------------------------------
  293. inline HWND FW_CSaveFileParameters::WinGetOwnerWindow() const
  294. {
  295.     return FW_SaveFileParameters_WinGetOwnerWindow((FW_SSaveFileParameters*)&fRep);
  296. }
  297. #endif
  298.  
  299. #endif
  300.