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

  1. IMPLEMENTATION MODULE WINMENU;
  2.  
  3. (************************************************************************
  4.   OS/2 2.0 implementation for additional menu functions.
  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 HWND;
  15. FROM   WINDEF        IMPORT MPARAM, MPFROM2SHORT, MPFROMLONG, MPFROMP;
  16. FROM   WINMENUS      IMPORT MIA_DISABLED, MIA_CHECKED;
  17. FROM   WINMENUS      IMPORT MM_SETITEMATTR, MM_QUERYITEMATTR;
  18. FROM   WINMENUS      IMPORT MM_SETITEMTEXT, MM_ISITEMVALID;
  19. FROM   WINMESSAGEMGR IMPORT WinSendMsg;
  20.  
  21.  
  22. PROCEDURE WinCheckMenuItem
  23. ( MenuWinHandle        : HWND;
  24.   ItemId               : CARDINAL;
  25.   Check                : BOOLEAN
  26. )                      : BOOLEAN;
  27. VAR
  28.   MParam1              : MPARAM;
  29.   MParam2              : MPARAM;
  30.   MResult              : LONGCARD;
  31. BEGIN
  32.   MParam1 := MPFROM2SHORT( ItemId, LONG( SHORTCARD( TRUE ) ) );
  33.   IF Check THEN
  34.     MParam2 := MPFROM2SHORT( MIA_CHECKED, MIA_CHECKED );
  35.   ELSE
  36.     MParam2 := MPFROM2SHORT( MIA_CHECKED, 0 );
  37.   END;
  38.   MResult := WinSendMsg( MenuWinHandle, MM_SETITEMATTR, MParam1, MParam2 );
  39.   RETURN (MResult <> 0);
  40. END WinCheckMenuItem;
  41.  
  42.  
  43. PROCEDURE WinIsMenuItemChecked
  44. ( MenuWinHandle        : HWND;
  45.   ItemId               : CARDINAL
  46. )                      : BOOLEAN;
  47. VAR
  48.   MParam1              : MPARAM;
  49.   MParam2              : MPARAM;
  50.   MResult              : LONGCARD;
  51. BEGIN
  52.   MParam1 := MPFROM2SHORT( ItemId, LONG( SHORTCARD( TRUE ) ) );
  53.   MParam2 := MPFROMLONG( MIA_CHECKED );
  54.   MResult := WinSendMsg( MenuWinHandle, MM_QUERYITEMATTR, MParam1, MParam2 );
  55.   RETURN (MResult <> 0);
  56. END WinIsMenuItemChecked;
  57.  
  58.  
  59. PROCEDURE WinEnableMenuItem
  60. ( MenuWinHandle        : HWND;
  61.   ItemId               : CARDINAL;
  62.   Enable               : BOOLEAN
  63. )                      : BOOLEAN;
  64. VAR
  65.   MParam1              : MPARAM;
  66.   MParam2              : MPARAM;
  67.   MResult              : LONGCARD;
  68. BEGIN
  69.   MParam1 := MPFROM2SHORT( ItemId, LONG( SHORTCARD( TRUE ) ) );
  70.   IF Enable THEN
  71.     MParam2 := MPFROM2SHORT( MIA_DISABLED, 0 );
  72.   ELSE
  73.     MParam2 := MPFROM2SHORT( MIA_DISABLED, MIA_DISABLED );
  74.   END;
  75.   MResult := WinSendMsg( MenuWinHandle, MM_SETITEMATTR, MParam1, MParam2 );
  76.   RETURN (MResult <> 0);
  77. END WinEnableMenuItem;
  78.  
  79.  
  80. PROCEDURE WinIsMenuItemEnabled
  81. ( MenuWinHandle        : HWND;
  82.   ItemId               : CARDINAL
  83. )                      : BOOLEAN;
  84. VAR
  85.   MParam1              : MPARAM;
  86.   MParam2              : MPARAM;
  87.   MResult              : LONGCARD;
  88. BEGIN
  89.   MParam1 := MPFROM2SHORT( ItemId, LONG( SHORTCARD( TRUE ) ) );
  90.   MParam2 := MPFROMLONG( MIA_DISABLED );
  91.   MResult := WinSendMsg( MenuWinHandle, MM_QUERYITEMATTR, MParam1, MParam2 );
  92.   RETURN (MResult <> 0);
  93. END WinIsMenuItemEnabled;
  94.  
  95.  
  96. PROCEDURE WinSetMenuItemText
  97. ( MenuWinHandle        : HWND;
  98.   ItemId               : CARDINAL;
  99.   Text                 : ARRAY OF CHAR
  100. )                      : BOOLEAN;
  101. VAR
  102.   MParam1              : MPARAM;
  103.   MParam2              : MPARAM;
  104.   MResult              : LONGCARD;
  105. BEGIN
  106.   MParam1 := MPFROMLONG( LONG( ItemId ) );
  107.   MParam2 := MPFROMP( SYSTEM.ADR( Text ) );
  108.   MResult := WinSendMsg( MenuWinHandle, MM_SETITEMTEXT, MParam1, MParam2 );
  109.   RETURN (MResult <> 0);
  110. END WinSetMenuItemText;
  111.  
  112.  
  113. PROCEDURE WinIsMenuItemValid
  114. ( MenuWinHandle        : HWND;
  115.   ItemId               : CARDINAL
  116. )                      : BOOLEAN;
  117. VAR
  118.   MParam1              : MPARAM;
  119.   MParam2              : MPARAM;
  120.   MResult              : LONGCARD;
  121. BEGIN
  122.   MParam1 := MPFROM2SHORT( ItemId, LONG( SHORTCARD( TRUE ) ) );
  123.   MParam2 := MPFROMLONG( LONG( LONG( SHORTCARD( FALSE ) ) ) );
  124.   MResult := WinSendMsg( MenuWinHandle, MM_ISITEMVALID, MParam1, MParam2 );
  125.   RETURN (MResult <> 0);
  126. END WinIsMenuItemValid;
  127.  
  128. END WINMENU.
  129.