home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 7 / 07.iso / c / c083 / 19.ddi / OWLINC.PAK / OPENSAVE.H < prev    next >
Encoding:
C/C++ Source or Header  |  1993-12-02  |  3.8 KB  |  137 lines

  1. //----------------------------------------------------------------------------
  2. // ObjectWindows - (C) Copyright 1992, 1993 by Borland International
  3. //   include\owl\opensave.cpp
  4. //   Definition of TOpenSave- abstract, TFileOpen-, TFileSave- common Dialog 
  5. //   classes
  6. //----------------------------------------------------------------------------
  7. #if !defined(__OWL_OPENSAVE_H)
  8. #define __OWL_OPENSAVE_H
  9.  
  10. #if !defined(__COMMDIAL_H)
  11.   #include <owl\commdial.h>
  12. #endif
  13.  
  14. //
  15. //  class TOpenSaveDialog
  16. //  ----- ---------------
  17. //
  18. class _OWLCLASS TOpenSaveDialog : public TCommonDialog {
  19.   public:
  20.     class _OWLCLASS TData {
  21.       public:
  22.         DWORD      Flags;
  23.         DWORD      Error;
  24.         char*      FileName;
  25.         char*      Filter;
  26.         char*      CustomFilter;
  27.         int        FilterIndex;
  28.         char*      InitialDir;
  29.         char*      DefExt;
  30.       
  31.         TData(DWORD flags=0, char* filter=0, char* customFilter=0, 
  32.               char* initialDir=0, char* defExt=0);
  33.         ~TData();
  34.  
  35.         void     SetFilter(const char* filter = 0);
  36.  
  37.         void     Write(opstream& os);
  38.         void     Read(ipstream& is);
  39.     };
  40.  
  41.     TOpenSaveDialog(TWindow*        parent,
  42.                     TData&          data,
  43.                     TResId          templateId = 0,
  44.                     const char far* title = 0,
  45.                     TModule*        module = 0);
  46.  
  47.     static int GetFileTitleLen(const char far* fileName)
  48.            {return ::GetFileTitle((LPSTR)fileName, 0, 0);} //Win32 cast
  49.  
  50.     static int GetFileTitle(const char far* fileName, char far* fileTitle, 
  51.                             int fileTitleLen) //Win32 casts
  52.            {return ::GetFileTitle((LPSTR)fileName, fileTitle,(WORD)fileTitleLen);}
  53.  
  54.   protected:
  55.     OPENFILENAME ofn;
  56.     TData&       Data;
  57.  
  58.     TOpenSaveDialog(TWindow* parent, TData& data, TModule*   module = 0);
  59.     void    Init(TResId templateId);
  60.     BOOL    DialogFunction(UINT message, WPARAM, LPARAM);
  61.  
  62.     //
  63.     // override TWindow & TDialog virtuals
  64.     //
  65.     int     DoExecute() = 0;
  66.  
  67.     //
  68.     // Virtual function called when a share violation occurs in dlg
  69.     //
  70.     virtual int ShareViolation();
  71.  
  72.     //
  73.     // Messages registered by the common dialog DLL
  74.     //
  75.     static UINT ShareViMsgId;
  76.  
  77.     //
  78.     // Default behavior inline for message response functions
  79.     //
  80.     void    CmOk() {DefaultProcessing();}           //EV_COMMAND(IDOK,
  81.     void    CmLbSelChanged() {DefaultProcessing();} //EV_COMMAND(lst1 or lst2
  82.   
  83.   private:
  84.     TOpenSaveDialog(const TOpenSaveDialog&);
  85.     TOpenSaveDialog& operator =(const TOpenSaveDialog&);
  86.  
  87.   DECLARE_RESPONSE_TABLE(TOpenSaveDialog);
  88. };
  89.  
  90.  
  91. //
  92. //  class TFileOpenDialog
  93. //  ----- ---------------
  94. //
  95. class _OWLCLASS TFileOpenDialog : public TOpenSaveDialog {
  96.   public:
  97.     TFileOpenDialog(TWindow*        parent,
  98.                     TData&          data,
  99.                     TResId          templateId = 0,
  100.                     const char far* title = 0,
  101.                     TModule*        module = 0);
  102.  
  103.     //
  104.     // override TDialog virtual functions
  105.     //
  106.     int  DoExecute();
  107.  
  108.   private:
  109.     TFileOpenDialog(const TOpenSaveDialog&);
  110.     TFileOpenDialog& operator=(const TOpenSaveDialog&);
  111. };
  112.  
  113.  
  114. //
  115. //  class TFileSaveDialog
  116. //  ----- ---------------
  117. //
  118. class _OWLCLASS TFileSaveDialog : public TOpenSaveDialog {
  119.   public:
  120.     TFileSaveDialog(TWindow*        parent,
  121.                     TData&          data,
  122.                     TResId          templateId = 0,
  123.                     const char far* title = 0,
  124.                     TModule*        module = 0);
  125.  
  126.     //
  127.     // override TDialog virtual functions
  128.     //
  129.     int  DoExecute();
  130.  
  131.   private:
  132.     TFileSaveDialog(const TFileSaveDialog&);
  133.     TFileSaveDialog& operator=(const TFileSaveDialog&);
  134. };
  135.  
  136. #endif  // __OWL_OPENSAVE_H
  137.