home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / mod201j.zip / modula2.exe / os2api / winframe.def < prev    next >
Text File  |  1994-05-03  |  9KB  |  237 lines

  1. DEFINITION MODULE WINFRAMEMGR;
  2.  
  3. (************************************************************************
  4.   OS/2 2.0 interface for Presentation Manager Frame Manager.
  5.  
  6.   Copyright (c) 1992 by Juergen Neuhoff
  7. *************************************************************************)
  8.  
  9. (*$XL+       Modula-2 language extensions: '_' allowed for symbol names *)
  10. (*$CDECL+    C-style procedures                                         *)
  11. (*$A         default alignment for record fields                        *)
  12.  
  13. IMPORT SYSTEM;
  14. FROM   OS2DEF       IMPORT TYPEPREFIX, HWND, HMODULE, RECTL, POINTL, LHANDLE;
  15. FROM   WINWINDOWMGR IMPORT SWP;
  16.  
  17. TYPE
  18.   (* Binary resources may be bound into application executables or *)
  19.   (* passed as a parameter when creating a window or dialog        *)
  20.   (* Currently they must be the same for both 16-bit and 32-bit    *)
  21.   (* so we pack the structures.                                    *)
  22.   (*                                                               *)
  23.   (*$A2 WORD alignment for record fields >= 2 bytes                *)
  24.   FRAMECDATA                = RECORD (* fcdata *)
  25.     CASE                      : TYPEPREFIX OF
  26.     | TRUE                    :
  27.       cb                      : CARDINAL;
  28.       flCreateFlags           : LONGCARD;
  29.       hmodResources           : CARDINAL;
  30.       idResources             : CARDINAL;
  31.     | FALSE                   :
  32.       Count                   : CARDINAL;
  33.       CreateFlags             : LONGCARD;
  34.       ResourcesModHandle      : CARDINAL;
  35.       ResourcesIdent          : CARDINAL;
  36.     END;                      END;
  37.   PFRAMECDATA               = POINTER TO FRAMECDATA;
  38.   (*$A restore default alignment for record fields *)
  39.  
  40. CONST
  41.   (* Frame window styles *)
  42.   (* All unused FCF_xxx bits are reserved *)
  43.   FCF_TITLEBAR              = 00000001H;
  44.   FCF_SYSMENU               = 00000002H;
  45.   FCF_MENU                  = 00000004H;
  46.   FCF_SIZEBORDER            = 00000008H;
  47.   FCF_MINBUTTON             = 00000010H;
  48.   FCF_MAXBUTTON             = 00000020H;
  49.   FCF_MINMAX                = 00000030H; (* minmax means BOTH buttons *)
  50.   FCF_VERTSCROLL            = 00000040H;
  51.   FCF_HORZSCROLL            = 00000080H;
  52.   FCF_DLGBORDER             = 00000100H;
  53.   FCF_BORDER                = 00000200H;
  54.   FCF_SHELLPOSITION         = 00000400H;
  55.   FCF_TASKLIST              = 00000800H;
  56.   FCF_NOBYTEALIGN           = 00001000H;
  57.   FCF_NOMOVEWITHOWNER       = 00002000H;
  58.   FCF_ICON                  = 00004000H;
  59.   FCF_ACCELTABLE            = 00008000H;
  60.   FCF_SYSMODAL              = 00010000H;
  61.   FCF_SCREENALIGN           = 00020000H;
  62.   FCF_MOUSEALIGN            = 00040000H;
  63.   FCF_HIDEBUTTON            = 01000000H;
  64.   FCF_HIDEMAX               = 01000020H; (* hidemax means BOTH buttons *)
  65.   FCF_DBE_APPSTAT           = 80000000H;
  66.   FCF_AUTOICON              = 40000000H;
  67.   FCF_STANDARD              = FCF_TITLEBAR   OR FCF_SYSMENU       OR
  68.                               FCF_MENU       OR FCF_SIZEBORDER    OR
  69.                               FCF_MINMAX     OR FCF_ICON          OR
  70.                               FCF_ACCELTABLE OR FCF_SHELLPOSITION OR
  71.                               FCF_TASKLIST;
  72.  
  73. CONST
  74.   FS_ICON                   = 00000001H;
  75.   FS_ACCELTABLE             = 00000002H;
  76.   FS_SHELLPOSITION          = 00000004H;
  77.   FS_TASKLIST               = 00000008H;
  78.   FS_NOBYTEALIGN            = 00000010H;
  79.   FS_NOMOVEWITHOWNER        = 00000020H;
  80.   FS_SYSMODAL               = 00000040H;
  81.   FS_DLGBORDER              = 00000080H;
  82.   FS_BORDER                 = 00000100H;
  83.   FS_SCREENALIGN            = 00000200H;
  84.   FS_MOUSEALIGN             = 00000400H;
  85.   FS_SIZEBORDER             = 00000800H;
  86.   FS_AUTOICON               = 00001000H;
  87.   FS_DBE_APPSTAT            = 00008000H;
  88.   FS_STANDARD               = FS_ICON          OR  FS_ACCELTABLE  OR
  89.                               FS_SHELLPOSITION OR  FS_TASKLIST;
  90.  
  91.  
  92. CONST (* Frame Window Flags accessed via WinSet/QueryWindowUShort(QWS_FLAGS) *)
  93.   FF_FLASHWINDOW            = 0001H;
  94.   FF_ACTIVE                 = 0002H;
  95.   FF_FLASHHILITE            = 0004H;
  96.   FF_OWNERHIDDEN            = 0008H;
  97.   FF_DLGDISMISSED           = 0010H;
  98.   FF_OWNERDISABLED          = 0020H;
  99.   FF_SELECTED               = 0040H;
  100.   FF_NOACTIVATESWP          = 0080H;
  101.  
  102. PROCEDURE WinCreateStdWindow
  103. ( ParentWinHandle           : HWND;
  104.   Style                     : LONGCARD;
  105.   VAR CreateFlags           : LONGCARD;
  106.   ClientClass               : ARRAY OF CHAR;
  107.   Title                     : ARRAY OF CHAR;
  108.   StyleClient               : LONGCARD;
  109.   Resource                  : HMODULE;
  110.   FrameWinId                : LONGCARD;
  111.   VAR ClientWinHandle       : HWND
  112. )                           : HWND;
  113.  
  114. PROCEDURE WinFlashWindow
  115. ( WinHandle                 : HWND;
  116.   Flash                     : BOOLEAN
  117. )                           : BOOLEAN;
  118.  
  119. CONST (* Frame window related messages *)
  120.   WM_FLASHWINDOW            = 0040H;
  121.   WM_FORMATFRAME            = 0041H;
  122.   WM_UPDATEFRAME            = 0042H;
  123.   WM_FOCUSCHANGE            = 0043H;
  124.   WM_SETBORDERSIZE          = 0044H;
  125.   WM_TRACKFRAME             = 0045H;
  126.   WM_MINMAXFRAME            = 0046H;
  127.   WM_SETICON                = 0047H;
  128.   WM_QUERYICON              = 0048H;
  129.   WM_SETACCELTABLE          = 0049H;
  130.   WM_QUERYACCELTABLE        = 004AH;
  131.   WM_TRANSLATEACCEL         = 004BH;
  132.   WM_QUERYTRACKINFO         = 004CH;
  133.   WM_QUERYBORDERSIZE        = 004DH;
  134.   WM_NEXTMENU               = 004EH;
  135.   WM_ERASEBACKGROUND        = 004FH;
  136.   WM_QUERYFRAMEINFO         = 0050H;
  137.   WM_QUERYFOCUSCHAIN        = 0051H;
  138.   WM_OWNERPOSCHANGE         = 0052H;
  139.   WM_CALCFRAMERECT          = 0053H;
  140.                              (* Note 0054H is reserved *)
  141.   WM_WINDOWPOSCHANGED       = 0055H;
  142.   WM_ADJUSTFRAMEPOS         = 0056H;
  143.   WM_QUERYFRAMECTLCOUNT     = 0059H;
  144.                              (* Note 005AH is reserved *)
  145.   WM_QUERYHELPINFO          = 005BH;
  146.   WM_SETHELPINFO            = 005CH;
  147.   WM_ERROR                  = 005DH;
  148.   WM_REALIZEPALETTE         = 005EH;
  149.  
  150. CONST (* WM_QUERYFRAMEINFO constants *)
  151.   FI_FRAME                  = 00000001H;
  152.   FI_OWNERHIDE              = 00000002H;
  153.   FI_ACTIVATEOK             = 00000004H;
  154.   FI_NOMOVEWITHOWNER        = 00000008H;
  155.  
  156. PROCEDURE WinCreateFrameControls
  157. ( FrameWinHandle            : HWND;
  158.   VAR FrameControlData      : FRAMECDATA;
  159.   Title                     : ARRAY OF CHAR
  160. )                           : BOOLEAN;
  161.  
  162. PROCEDURE WinCalcFrameRect
  163. ( FrameWinHandle            : HWND;
  164.   VAR Rectangle             : RECTL;
  165.   Frame                     : BOOLEAN
  166. )                           : BOOLEAN;
  167.  
  168. PROCEDURE WinGetMinPosition
  169. ( FrameWinHandle            : HWND;
  170.   VAR Swp                   : SWP;
  171.   VAR Point                 : POINTL
  172. )                           : BOOLEAN;
  173.  
  174. PROCEDURE WinGetMaxPosition
  175. ( FrameWinHandle            : HWND;
  176.   VAR Swp                   : SWP
  177. )                           : BOOLEAN;
  178.  
  179. TYPE HSAVEWP                = LHANDLE; (* hsvwp *)
  180.  
  181. PROCEDURE WinSaveWindowPos
  182. ( SaveWinPosHandle          : HSAVEWP;
  183.   Swp                       : ARRAY OF SWP;
  184.   SwpCount                  : LONGCARD
  185. )                           : BOOLEAN;
  186.  
  187. CONST (* Frame control IDs    *)
  188.   FID_SYSMENU               = 8002H;
  189.   FID_TITLEBAR              = 8003H;
  190.   FID_MINMAX                = 8004H;
  191.   FID_MENU                  = 8005H;
  192.   FID_VERTSCROLL            = 8006H;
  193.   FID_HORZSCROLL            = 8007H;
  194.   FID_CLIENT                = 8008H;
  195.                               (* Note 8009H is reserved *)
  196.   FID_DBE_APPSTAT           = 8010H;
  197.   FID_DBE_KBDSTAT           = 8011H;
  198.   FID_DBE_PECIC             = 8012H;
  199.   FID_DBE_KKPOPUP           = 8013H;
  200.  
  201. CONST (* Standard WM_SYSCOMMAND command values *)
  202.   SC_SIZE                   = 8000H;
  203.   SC_MOVE                   = 8001H;
  204.   SC_MINIMIZE               = 8002H;
  205.   SC_MAXIMIZE               = 8003H;
  206.   SC_CLOSE                  = 8004H;
  207.   SC_NEXT                   = 8005H;
  208.   SC_APPMENU                = 8006H;
  209.   SC_SYSMENU                = 8007H;
  210.   SC_RESTORE                = 8008H;
  211.   SC_NEXTFRAME              = 8009H;
  212.   SC_NEXTWINDOW             = 8010H;
  213.   SC_TASKMANAGER            = 8011H;
  214.   SC_HELPKEYS               = 8012H;
  215.   SC_HELPINDEX              = 8013H;
  216.   SC_HELPEXTENDED           = 8014H;
  217.   SC_SWITCHPANELIDS         = 8015H;
  218.   SC_DBE_FIRST              = 8018H;
  219.   SC_DBE_LAST               = 801FH;
  220.   SC_BEGINDRAG              = 8020H;
  221.   SC_ENDDRAG                = 8021H;
  222.   SC_SELECT                 = 8022H;
  223.   SC_OPEN                   = 8023H;
  224.   SC_CONTEXTMENU            = 8024H;
  225.   SC_CONTEXTHELP            = 8025H;
  226.   SC_TEXTEDIT               = 8026H;
  227.   SC_BEGINSELECT            = 8027H;
  228.   SC_ENDSELECT              = 8028H;
  229.   SC_WINDOW                 = 8029H;
  230.   SC_HIDE                   = 802AH;
  231.  
  232. CONST (* Title bar control messages *)
  233.   TBM_SETHILITE             = 01E3H;
  234.   TBM_QUERYHILITE           = 01E4H;
  235.  
  236. END WINFRAMEMGR.
  237.