home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / mod201j.zip / modula2.exe / os2api / windialo.def < prev    next >
Text File  |  1995-08-15  |  10KB  |  289 lines

  1. DEFINITION MODULE WINDIALOGS;
  2.  
  3. (************************************************************************
  4.   OS/2 2.0 interface for Presentation Manager
  5.            dialog boxes.
  6.  
  7.            Aug 15, 1995 : WinLoadDlg() and WinDlgBox() changed
  8.  
  9.   Copyright (c) 1992 by Juergen Neuhoff
  10. *************************************************************************)
  11.  
  12. (*$XL+       Modula-2 language extensions: '_' allowed for symbol names *)
  13. (*$CDECL+    C-style procedures                                         *)
  14. (*$A         default alignment for record fields                        *)
  15.  
  16. IMPORT SYSTEM;
  17. FROM   OS2DEF        IMPORT TYPEPREFIX, HWND, HMODULE, POINTL;
  18. FROM   WINDEF        IMPORT PFNWP, MPARAM, MRESULT;
  19. FROM   WINMESSAGEMGR IMPORT QMSG;
  20.  
  21.  
  22. PROCEDURE WinGetDlgMsg
  23. ( DlgWinHandle          : HWND;
  24.   VAR QueueMessage      : QMSG
  25. )                       : BOOLEAN;
  26.  
  27. PROCEDURE WinLoadDlg
  28. ( ParentWinHandle       : HWND;
  29.   OwnerWinHandle        : HWND;
  30.   DlgProc               : PFNWP;
  31.   ResourceId            : HMODULE;
  32.   DlgId                 : LONGCARD;
  33.   CreateParams          : SYSTEM.ADDRESS
  34. )                       : HWND;
  35.  
  36. PROCEDURE WinDlgBox
  37. ( ParentWinHandle       : HWND;
  38.   OwnerWinHandle        : HWND;
  39.   DlgProc               : PFNWP;
  40.   ResourceId            : HMODULE;
  41.   DlgId                 : LONGCARD;
  42.   CreatParams           : SYSTEM.ADDRESS
  43. )                       : LONGCARD;
  44.  
  45. PROCEDURE WinDismissDlg
  46. ( DlgWinHandle          : HWND;
  47.   Result                : LONGCARD
  48. )                       : BOOLEAN;
  49.  
  50. PROCEDURE WinQueryDlgItemShort
  51. ( ParentWinHandle       : HWND;
  52.   ItemId                : LONGCARD;
  53.   VAR Result            : INTEGER;
  54.   Signed                : BOOLEAN
  55. )                       : BOOLEAN;
  56.  
  57. PROCEDURE WinSetDlgItemShort
  58. ( ParentWinHandle       : HWND;
  59.   ItemId                : LONGCARD;
  60.   Value                 : CARDINAL;
  61.   Signed                : BOOLEAN
  62. )                       : BOOLEAN;
  63.  
  64. PROCEDURE WinSetDlgItemText
  65. ( ParentWinHandle       : HWND;
  66.   ItemId                : LONGCARD;
  67.   Text                  : ARRAY OF CHAR
  68. )                       : BOOLEAN;
  69.  
  70. PROCEDURE WinQueryDlgItemText
  71. ( ParentWinHandle       : HWND;
  72.   ItemId                : LONGCARD;
  73.   TextMax               : LONGINT;
  74.   VAR Text              : ARRAY OF CHAR
  75. )                       : LONGCARD;
  76.  
  77. PROCEDURE WinQueryDlgItemTextLength
  78. ( ParentWinHandle       : HWND;
  79.   ItemId                : LONGCARD
  80. )                       : LONGINT;
  81.  
  82. PROCEDURE WinDefDlgProc
  83. ( DlgWinHandle          : HWND;
  84.   MsgId                 : LONGCARD;
  85.   Param1                : MPARAM;
  86.   Param2                : MPARAM
  87. )                       : MRESULT;
  88.  
  89. CONST (* Special item IDs *)
  90.   DID_OK      = 1;
  91.   DID_CANCEL  = 2;
  92.   DID_ERROR   = 0FFFFH;
  93.  
  94. PROCEDURE WinAlarm
  95. ( DesktopWinHandle      : HWND;
  96.   Style                 : LONGCARD
  97. )                       : BOOLEAN;
  98.  
  99. CONST (* WinAlarm() Codes *)
  100.   WA_WARNING            = 0;
  101.   WA_NOTE               = 1;
  102.   WA_ERROR              = 2;
  103.   WA_CWINALARMS         = 3;    (* count of valid alarms *)
  104.  
  105. PROCEDURE WinMessageBox
  106. ( ParentWinHandle       : HWND;
  107.   OwnerWinHandle        : HWND;
  108.   Text                  : ARRAY OF CHAR;
  109.   Title                 : ARRAY OF CHAR;
  110.   WindowId              : CARDINAL;
  111.   Style                 : LONGCARD
  112. )                       : LONGCARD;
  113.  
  114. CONST (* Message box types *)
  115.   MB_OK                 = 0000H;
  116.   MB_OKCANCEL           = 0001H;
  117.   MB_RETRYCANCEL        = 0002H;
  118.   MB_ABORTRETRYIGNORE   = 0003H;
  119.   MB_YESNO              = 0004H;
  120.   MB_YESNOCANCEL        = 0005H;
  121.   MB_CANCEL             = 0006H;
  122.   MB_ENTER              = 0007H;
  123.   MB_ENTERCANCEL        = 0008H;
  124.   MB_NOICON             = 0000H;
  125.   MB_CUANOTIFICATION    = 0000H;
  126.   MB_ICONQUESTION       = 0010H;
  127.   MB_ICONEXCLAMATION    = 0020H;
  128.   MB_CUAWARNING         = 0020H;
  129.   MB_ICONASTERISK       = 0030H;
  130.   MB_ICONHAND           = 0040H;
  131.   MB_CUACRITICAL        = 0040H;
  132.   MB_QUERY              = MB_ICONQUESTION;
  133.   MB_WARNING            = MB_CUAWARNING;
  134.   MB_INFORMATION        = MB_ICONASTERISK;
  135.   MB_CRITICAL           = MB_CUACRITICAL;
  136.   MB_ERROR              = MB_CRITICAL;
  137.   MB_DEFBUTTON1         = 0000H;
  138.   MB_DEFBUTTON2         = 0100H;
  139.   MB_DEFBUTTON3         = 0200H;
  140.   MB_APPLMODAL          = 0000H;
  141.   MB_SYSTEMMODAL        = 1000H;
  142.   MB_HELP               = 2000H;
  143.   MB_MOVEABLE           = 4000H;
  144.  
  145. CONST (* Message box return codes *)
  146.   MBID_OK               = 1;
  147.   MBID_CANCEL           = 2;
  148.   MBID_ABORT            = 3;
  149.   MBID_RETRY            = 4;
  150.   MBID_IGNORE           = 5;
  151.   MBID_YES              = 6;
  152.   MBID_NO               = 7;
  153.   MBID_HELP             = 8;
  154.   MBID_ENTER            = 9;
  155.   MBID_ERROR            = 0FFFFH;
  156.  
  157. CONST (* Dialog codes: returned by WM_QUERYDLGCODE msg     *)
  158.   DLGC_ENTRYFIELD  = 0001H;  (* Entry field item understands EM_SETSEL) *)
  159.   DLGC_BUTTON      = 0002H;  (* Button item                             *)
  160.   DLGC_RADIOBUTTON = 0004H;  (* Radio button                            *)
  161.   DLGC_STATIC      = 0008H;  (* Static item                             *)
  162.   DLGC_DEFAULT     = 0010H;  (* Default push button                     *)
  163.   DLGC_PUSHBUTTON  = 0020H;  (* Normal (Non-default) push button        *)
  164.   DLGC_CHECKBOX    = 0040H;  (* Check box button control                *)
  165.   DLGC_SCROLLBAR   = 0080H;  (* Scroll bar                              *)
  166.   DLGC_MENU        = 0100H;  (* Menu                                    *)
  167.   DLGC_TABONCLICK  = 0200H;
  168.   DLGC_MLE         = 0400H;  (* Multiple Line Entry                     *)
  169.  
  170. PROCEDURE WinProcessDlg
  171. ( DlgWinHandle          : HWND
  172. )                       : LONGCARD;
  173.  
  174. PROCEDURE WinSendDlgItemMsg
  175. ( ParentWinHandle       : HWND;
  176.   ItemId                : LONGCARD;
  177.   MsgId                 : LONGCARD;
  178.   Param1                : MPARAM;
  179.   Param2                : MPARAM
  180. )                       : MRESULT;
  181.  
  182. PROCEDURE WinMapDlgPoints
  183. ( DlgWinHandle          : HWND;
  184.   VAR Points            : ARRAY OF POINTL;
  185.   Count                 : LONGCARD;
  186.   Options               : BOOLEAN
  187. )                       : BOOLEAN;
  188.  
  189. PROCEDURE WinEnumDlgItem
  190. ( DlgWinHandle          : HWND;
  191.   ChildWinHandle        : HWND;
  192.   Code                  : LONGCARD
  193. )                       : HWND;
  194.  
  195. PROCEDURE WinSubstituteStrings
  196. ( WinHandle             : HWND;
  197.   Source                : ARRAY OF CHAR;
  198.   DestMax               : LONGINT;
  199.   VAR Dest              : ARRAY OF CHAR
  200. )                       : LONGINT;
  201.  
  202. CONST (* WinEnumDlgItem() constants *)
  203.   EDI_FIRSTTABITEM      = 0;
  204.   EDI_LASTTABITEM       = 1;
  205.   EDI_NEXTTABITEM       = 2;
  206.   EDI_PREVTABITEM       = 3;
  207.   EDI_FIRSTGROUPITEM    = 4;
  208.   EDI_LASTGROUPITEM     = 5;
  209.   EDI_NEXTGROUPITEM     = 6;
  210.   EDI_PREVGROUPITEM     = 7;
  211.  
  212. TYPE
  213.   (* Binary resources may be bound into application executables or *)
  214.   (* passed as a parameter when creating a window or dialog        *)
  215.   (* Currently they must be the same for both 16-bit and 32-bit    *)
  216.   (* so we pack the structures.                                    *)
  217.   (*$A2 WORD alignment for record fields *)
  218.   DLGTITEM              = RECORD
  219.     CASE                  : TYPEPREFIX OF
  220.     | TRUE                :
  221.       fsItemStatus        : CARDINAL;
  222.       cChildren           : CARDINAL;
  223.       cchClassName        : CARDINAL;
  224.       offClassName        : CARDINAL;
  225.       cchText             : CARDINAL;
  226.       offText             : CARDINAL;
  227.       flStyle             : LONGCARD;
  228.     | FALSE               :
  229.       ItemStatus          : CARDINAL;
  230.       ChildrenCount       : CARDINAL;
  231.       ClassNameSize       : CARDINAL;
  232.       ClassNameOffset     : CARDINAL;
  233.       TextSize            : CARDINAL;
  234.       TextOffset          : CARDINAL;
  235.       Style               : LONGCARD;
  236.     END;
  237.     x                     : INTEGER;
  238.     y                     : INTEGER;
  239.     CASE                  : TYPEPREFIX OF
  240.     | TRUE                :
  241.       cx                  : INTEGER;
  242.       cy                  : INTEGER;
  243.       id                  : CARDINAL;
  244.       offPresParams       : CARDINAL;
  245.       offCtlData          : CARDINAL;
  246.     | FALSE               :
  247.       xSize               : INTEGER;
  248.       ySize               : INTEGER;
  249.       Ident               : CARDINAL;
  250.       PresParamsOffset    : CARDINAL;
  251.       CtlDataOffset       : CARDINAL;
  252.     END;                  END;
  253.   (*$A restore default alignment for record fields *)
  254.   PDLGTITEM             = POINTER TO DLGTITEM;
  255.   (*$A2 WORD alignment for record fields *)
  256.   DLGTEMPLATE           = RECORD (* Dialog Template structure *)
  257.     CASE                  : TYPEPREFIX OF
  258.     | TRUE                :
  259.       cbTemplate          : CARDINAL;
  260.       type                : CARDINAL;
  261.       codepage            : CARDINAL;
  262.       offadlgti           : CARDINAL;
  263.       fsTemplateStatus    : CARDINAL;
  264.       iItemFocus          : CARDINAL;
  265.       coffPresParams      : CARDINAL;
  266.       adlgti              : ARRAY [0..0] OF DLGTITEM;
  267.     | FALSE               :
  268.       TemplateSize        : CARDINAL;
  269.       Type                : CARDINAL;
  270.       CodePage            : CARDINAL;
  271.       DlgItemOffset       : CARDINAL;
  272.       TemplateStatus      : CARDINAL;
  273.       ItemFocus           : CARDINAL;
  274.       PresParamsCntOffset : CARDINAL;
  275.       DlgItem             : ARRAY [0..0] OF DLGTITEM;
  276.     END;                  END;
  277.   PDLGTEMPLATE          = POINTER TO DLGTEMPLATE;
  278.   (*$A restore default alignment for record fields *)
  279.  
  280. PROCEDURE WinCreateDlg
  281. ( ParentWinHandle       : HWND;
  282.   OwnerWinHandle        : HWND;
  283.   DlgProc               : PFNWP;
  284.   VAR DialogTemplate    : DLGTEMPLATE;
  285.   VAR CreateParams      : ARRAY OF SYSTEM.BYTE
  286. )                       : HWND;
  287.  
  288. END WINDIALOGS.
  289.