home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / mod201j.zip / modula2.exe / os2api / winstdfi.def < prev    next >
Text File  |  1995-02-16  |  12KB  |  248 lines

  1. DEFINITION MODULE WINSTDFILE;
  2.  
  3. (************************************************************************
  4.   OS/2 2.0 interface for Presentation Manager
  5.            CUA standard file dialog.
  6.            16.02.95 22.54 : Bugs fixed FILEDLG.szFullFile
  7.  
  8.   Copyright (c) 1992 by Juergen Neuhoff
  9. *************************************************************************)
  10.  
  11. (*$XL+       Modula-2 language extensions: '_' allowed for symbol names *)
  12. (*$CDECL+    C-style procedures                                         *)
  13. (*$A         default alignment for record fields                        *)
  14.  
  15. FROM OS2DEF        IMPORT TYPEPREFIX, PSZ, HWND, HMODULE, CCHMAXPATH;
  16. FROM WINDEF        IMPORT PFNWP, MPARAM, MRESULT;
  17. FROM WINMESSAGEMGR IMPORT WM_USER;
  18. FROM WINDIALOGS    IMPORT DID_OK, DID_CANCEL;
  19.  
  20. (**********************************************************************)
  21. (*                                                                    *)
  22. (*                     F I L E    D I A L O G                         *)
  23. (*                                                                    *)
  24. (**********************************************************************)
  25.  
  26. (*--------------------------------------------------------------------*)
  27. (* File Dialog Invocation Flag Definitions.                           *)
  28. (*--------------------------------------------------------------------*)
  29. CONST
  30.   FDS_CENTER           = 00000001H; (* Center within owner wnd   *)
  31.   FDS_CUSTOM           = 00000002H; (* Use custom user template  *)
  32.   FDS_FILTERUNION      = 00000004H; (* Use union of filters      *)
  33.   FDS_HELPBUTTON       = 00000008H; (* Display Help button       *)
  34.   FDS_APPLYBUTTON      = 00000010H; (* Display Apply button      *)
  35.   FDS_PRELOAD_VOLINFO  = 00000020H; (* Preload volume info       *)
  36.   FDS_MODELESS         = 00000040H; (* Make dialog modeless      *)
  37.   FDS_INCLUDE_EAS      = 00000080H; (* Always load EA info       *)
  38.   FDS_OPEN_DIALOG      = 00000100H; (* Select Open dialog        *)
  39.   FDS_SAVEAS_DIALOG    = 00000200H; (* Select SaveAs dialog      *)
  40.   FDS_MULTIPLESEL      = 00000400H; (* Enable multiple selection *)
  41.   FDS_ENABLEFILELB     = 00000800H; (* Enable SaveAs Listbox     *)
  42.  
  43. (*--------------------------------------------------------------------*)
  44. (* File Dialog Selection returned attribute                           *)
  45. (*--------------------------------------------------------------------*)
  46. CONST
  47.   FDS_EFSELECTION     = 0;
  48.   FDS_LBSELECTION     = 1;
  49.  
  50. (*--------------------------------------------------------------------*)
  51. (* Error Return Codes from dialog (self defining)                     *)
  52. (*--------------------------------------------------------------------*)
  53. CONST
  54.   FDS_SUCCESSFUL                          = 0;
  55.   FDS_ERR_DEALLOCATE_MEMORY               = 1;
  56.   FDS_ERR_FILTER_TRUNC                    = 2;
  57.   FDS_ERR_INVALID_DIALOG                  = 3;
  58.   FDS_ERR_INVALID_DRIVE                   = 4;
  59.   FDS_ERR_INVALID_FILTER                  = 5;
  60.   FDS_ERR_INVALID_PATHFILE                = 6;
  61.   FDS_ERR_OUT_OF_MEMORY                   = 7;
  62.   FDS_ERR_PATH_TOO_LONG                   = 8;
  63.   FDS_ERR_TOO_MANY_FILE_TYPES             = 9;
  64.   FDS_ERR_INVALID_VERSION                 = 10;
  65.   FDS_ERR_INVALID_CUSTOM_HANDLE           = 11;
  66.   FDS_ERR_DIALOG_LOAD_ERROR               = 12;
  67.   FDS_ERR_DRIVE_ERROR                     = 13;
  68.  
  69. (*--------------------------------------------------------------------*)
  70. (* File Dialog Messages.                                              *)
  71. (*--------------------------------------------------------------------*)
  72. CONST
  73.   FDM_FILTER            = WM_USER+40;  (* mp1 = PSZ pszFileName         *)
  74.                                        (* mp2 = PSZ EA .TYPE value      *)
  75.                                        (* mr  = TRUE -> keep file.      *)
  76.   FDM_VALIDATE          = WM_USER+41;  (* mp1 = PSZ pszPathName         *)
  77.                                        (* mp2 = USHORT Field name id    *)
  78.                                        (* mr  = TRUE -> Valid name      *)
  79.   FDM_ERROR             = WM_USER+42;  (* mp1 = USHORT Error message id *)
  80.                                        (* mp2 = NULL   reserved         *)
  81.                                        (* mr  = NULL -> Use default msg *)
  82.  
  83. (*--------------------------------------------------------------------*)
  84. (* Define the type that is a pointer to an array of pointers.         *)
  85. (*     Hence: pointer to an array of Z string pointers.               *)
  86. (*--------------------------------------------------------------------*)
  87. TYPE
  88.   APSZ                  = ARRAY [0..0] OF PSZ;
  89.   PAPSZ                 = POINTER TO APSZ;         (* papsz *)
  90.  
  91. (*--------------------------------------------------------------------*)
  92. (* File Dialog application data structure.                            *)
  93. (*--------------------------------------------------------------------*)
  94. TYPE
  95.   FILEDLG               = RECORD  (* fildlg *)
  96.     CASE                  : TYPEPREFIX OF
  97.     | TRUE                :
  98.       cbSize              : LONGCARD; (* Size of FILEDLG structure.         *)
  99.       fl                  : LONGCARD; (* FDS_ flags. Alter behavior of dlg. *)
  100.       ulUser              : LONGCARD; (* User defined field.                *)
  101.       lReturn             : LONGINT;  (* Result code from dialog dismissal. *)
  102.       lSRC                : LONGINT;  (* System return code.                *)
  103.       pszTitle            : PSZ;      (* String to display in title bar.    *)
  104.       pszOKButton         : PSZ;      (* String to display in OK button.    *)
  105.       pfnDlgProc          : PFNWP;    (* Entry point to custom dialog proc. *)
  106.       pszIType            : PSZ;      (* Pointer to string containing       *)
  107.                                       (*   initial EA type filter. Type     *)
  108.                                       (*   does not have to exist in list.  *)
  109.       papszITypeList      : PAPSZ;    (* Pointer to table of pointers that  *)
  110.                                       (*    point to null terminated Type   *)
  111.                                       (*    strings. End of table is marked *)
  112.                                       (*    by a NULL pointer.              *)
  113.       pszIDrive           : PSZ;      (* Pointer to string containing       *)
  114.                                       (*   initial drive. Drive does not    *)
  115.                                       (*   have to exist in drive list.     *)
  116.       papszIDriveList     : PAPSZ;    (* Pointer to table of pointers that  *)
  117.                                       (*    point to null terminated Drive  *)
  118.                                       (*    strings. End of table is marked *)
  119.                                       (*    by a NULL pointer.              *)
  120.       hMod                : HMODULE;  (* Custom File Dialog template.       *)
  121.       szFullFile          : ARRAY [0..CCHMAXPATH-1] OF CHAR;
  122.                                       (* Initial or selected fully          *)
  123.                                       (*      qualified path and file.      *)
  124.       papszFQFilename     : PAPSZ;    (* Pointer to table of pointers that  *)
  125.                                       (*    point to null terminated FQFname*)
  126.                                       (*    strings. End of table is marked *)
  127.                                       (*    by a NULL pointer.              *)
  128.       ulFQFCount          : LONGCARD; (* Number of files selected           *)
  129.       usDlgId             : CARDINAL; (* Custom dialog id.                  *)
  130.       x                   : INTEGER;  (* X coordinate of the dialog         *)
  131.       y                   : INTEGER;  (* Y coordinate of the dialog         *)
  132.       sEAType             : INTEGER;  (* Selected file's EA Type.           *)
  133.     | FALSE               :
  134.       Size                : LONGCARD;
  135.       Flags               : LONGCARD;
  136.       User                : LONGCARD;
  137.       Return              : LONGINT;
  138.       SRC                 : LONGINT;
  139.       Title               : PSZ;
  140.       OKButton            : PSZ;
  141.       DlgProc             : PFNWP;
  142.       Type                : PSZ;
  143.       TypeList            : PAPSZ;
  144.       Drive               : PSZ;
  145.       DriveList           : PAPSZ;
  146.       ModHandle           : HMODULE;
  147.       FullFile            : ARRAY [0..CCHMAXPATH-1] OF CHAR;
  148.       FQFilename          : PAPSZ;
  149.       FQFCount            : LONGCARD;
  150.       DlgId               : CARDINAL;
  151.       xPos                : INTEGER;
  152.       yPos                : INTEGER;
  153.       EAType              : INTEGER;
  154.     END;                  END;
  155.   PFILEDLG              = POINTER TO FILEDLG;
  156.  
  157. (*--------------------------------------------------------------------*)
  158. (* File Dialog - Function Prototype                                   *)
  159. (*--------------------------------------------------------------------*)
  160.  
  161. PROCEDURE WinFileDlg
  162. ( ParentWinHandle         : HWND;
  163.   OwnerWinHandle          : HWND;
  164.   VAR FileDlg             : FILEDLG
  165. )                         : HWND;
  166.  
  167. PROCEDURE WinDefFileDlgProc
  168. ( DlgWinHandle            : HWND;
  169.   MsgId                   : LONGCARD;
  170.   Param1                  : MPARAM;
  171.   Param2                  : MPARAM
  172. )                         : MRESULT;
  173.  
  174. PROCEDURE WinFreeFileDlgList
  175. ( VAR FQFileName          : APSZ
  176. )                         : BOOLEAN;
  177.  
  178. (*--------------------------------------------------------------------*)
  179. (* File Dialog - dialog and control ids                               *)
  180. (*--------------------------------------------------------------------*)
  181. CONST
  182.   DID_FILE_DIALOG         = 256;
  183.   DID_FILENAME_TXT        = 257;
  184.   DID_FILENAME_ED         = 258;
  185.   DID_DRIVE_TXT           = 259;
  186.   DID_DRIVE_CB            = 260;
  187.   DID_FILTER_TXT          = 261;
  188.   DID_FILTER_CB           = 262;
  189.   DID_DIRECTORY_TXT       = 263;
  190.   DID_DIRECTORY_LB        = 264;
  191.   DID_FILES_TXT           = 265;
  192.   DID_FILES_LB            = 266;
  193.   DID_HELP_PB             = 267;
  194.   DID_APPLY_PB            = 268;
  195.   DID_OK_PB               = DID_OK;
  196.   DID_CANCEL_PB           = DID_CANCEL;
  197.  
  198. CONST
  199.   IDS_FILE_ALL_FILES_SELECTOR     = 1000;
  200.   IDS_FILE_BACK_CUR_PATH          = 1001;
  201.   IDS_FILE_BACK_PREV_PATH         = 1002;
  202.   IDS_FILE_BACK_SLASH             = 1003;
  203.   IDS_FILE_BASE_FILTER            = 1004;
  204.   IDS_FILE_BLANK                  = 1005;
  205.   IDS_FILE_COLON                  = 1006;
  206.   IDS_FILE_DOT                    = 1007;
  207.   IDS_FILE_DRIVE_LETTERS          = 1008;
  208.   IDS_FILE_FWD_CUR_PATH           = 1009;
  209.   IDS_FILE_FWD_PREV_PATH          = 1010;
  210.   IDS_FILE_FORWARD_SLASH          = 1011;
  211.   IDS_FILE_PARENT_DIR             = 1012;
  212.   IDS_FILE_Q_MARK                 = 1013;
  213.   IDS_FILE_SPLAT                  = 1014;
  214.   IDS_FILE_SPLAT_DOT              = 1015;
  215.   IDS_FILE_SAVEAS_TITLE           = 1016;
  216.   IDS_FILE_SAVEAS_FILTER_TXT      = 1017;
  217.   IDS_FILE_SAVEAS_FILENM_TXT      = 1018;
  218.   IDS_FILE_DUMMY_FILE_NAME        = 1019;
  219.   IDS_FILE_DUMMY_FILE_EXT         = 1020;
  220.   IDS_FILE_DUMMY_DRIVE            = 1021;
  221.   IDS_FILE_DUMMY_ROOT_DIR         = 1022;
  222.   IDS_FILE_PATH_PTR               = 1023;
  223.   IDS_FILE_VOLUME_PREFIX          = 1024;
  224.   IDS_FILE_VOLUME_SUFFIX          = 1025;
  225.   IDS_FILE_PATH_PTR2              = 1026;
  226.   IDS_FILE_INVALID_CHARS          = 1027;
  227.   IDS_FILE_BAD_DRIVE_NAME         = 1100;
  228.   IDS_FILE_BAD_DRIVE_OR_PATH_NAME = 1101;
  229.   IDS_FILE_BAD_FILE_NAME          = 1102;
  230.   IDS_FILE_BAD_FQF                = 1103;
  231.   IDS_FILE_BAD_NETWORK_NAME       = 1104;
  232.   IDS_FILE_BAD_SUB_DIR_NAME       = 1105;
  233.   IDS_FILE_DRIVE_NOT_AVAILABLE    = 1106;
  234.   IDS_FILE_FQFNAME_TOO_LONG       = 1107;
  235.   IDS_FILE_OPEN_DIALOG_NOTE       = 1108;
  236.   IDS_FILE_PATH_TOO_LONG          = 1109;
  237.   IDS_FILE_SAVEAS_DIALOG_NOTE     = 1110;
  238.   IDS_FILE_DRIVE_DISK_CHANGE      = 1120;
  239.   IDS_FILE_DRIVE_NOT_READY        = 1122;
  240.   IDS_FILE_DRIVE_LOCKED           = 1123;
  241.   IDS_FILE_DRIVE_NO_SECTOR        = 1124;
  242.   IDS_FILE_DRIVE_SOME_ERROR       = 1125;
  243.   IDS_FILE_DRIVE_INVALID          = 1126;
  244.   IDS_FILE_INSERT_DISK_NOTE       = 1127;
  245.   IDS_FILE_OK_WHEN_READY          = 1128;
  246.  
  247. END WINSTDFILE.
  248.