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

  1. IMPLEMENTATION MODULE WINLISTBOXES;
  2.  
  3. (************************************************************************
  4.   OS/2 2.0 functions for Presentation Manager List box controls.
  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, MPFROMLONG, MPFROMP;
  16. FROM   WINDEF        IMPORT MPFROM2SHORT, MPFROMSHORT;
  17. FROM   WINMESSAGEMGR IMPORT WinSendMsg;
  18.  
  19.  
  20. PROCEDURE WinDeleteLboxItem
  21. ( ListBoxWinHandle       : HWND;
  22.   Index                  : LONGINT
  23. )                        : LONGINT;
  24. VAR
  25.   MResult                : LONGCARD;
  26.   MParam1                : MPARAM;
  27.   MParam2                : MPARAM;
  28. BEGIN
  29.   MParam1 := MPFROMLONG( Index );
  30.   MParam2 := NIL;
  31.   MResult := WinSendMsg( ListBoxWinHandle, LM_DELETEITEM, MParam1, MParam2 );
  32.   RETURN VAL( LONGINT, MResult );
  33. END WinDeleteLboxItem;
  34.  
  35.  
  36. PROCEDURE WinInsertLboxItem
  37. ( ListBoxWinHandle       : HWND;
  38.   Index                  : LONGINT;
  39.   Text                   : ARRAY OF CHAR
  40. )                        : LONGINT;
  41. VAR
  42.   MResult                : LONGCARD;
  43.   MParam1                : MPARAM;
  44.   MParam2                : MPARAM;
  45. BEGIN
  46.   MParam1 := MPFROMLONG( Index );
  47.   MParam2 := MPFROMP( SYSTEM.ADR( Text ) );
  48.   MResult := WinSendMsg( ListBoxWinHandle, LM_INSERTITEM, MParam1, MParam2 );
  49.   RETURN VAL( LONGINT, MResult );
  50. END WinInsertLboxItem;
  51.  
  52.  
  53. PROCEDURE WinQueryLboxCount
  54. ( ListBoxWinHandle       : HWND
  55. )                        : LONGINT;
  56. VAR
  57.   MResult                : LONGCARD;
  58. BEGIN
  59.   MResult := WinSendMsg( ListBoxWinHandle, LM_QUERYITEMCOUNT, NIL, NIL );
  60.   RETURN VAL( LONGINT, MResult );
  61. END WinQueryLboxCount;
  62.  
  63.  
  64. PROCEDURE WinQueryLboxItemText
  65. ( ListBoxWinHandle       : HWND;
  66.   Index                  : LONGINT;
  67.   VAR Text               : ARRAY OF CHAR;
  68.   TextMax                : LONGINT
  69. )                        : LONGINT;
  70. VAR
  71.   MResult                : LONGCARD;
  72.   MParam1                : MPARAM;
  73.   MParam2                : MPARAM;
  74. BEGIN
  75.   MParam1 := MPFROM2SHORT( SHORT( Index ), SHORT( TextMax ) );
  76.   MParam2 := MPFROMP( SYSTEM.ADR( Text ) );
  77.   MResult := WinSendMsg( ListBoxWinHandle, LM_QUERYITEMTEXT, MParam1, MParam2 );
  78.   RETURN VAL( LONGINT, MResult );
  79. END WinQueryLboxItemText;
  80.  
  81.  
  82. PROCEDURE WinQueryLboxItemTextLength
  83. ( ListBoxWinHandle       : HWND;
  84.   Index                  : LONGINT
  85. )                        : INTEGER;
  86. VAR
  87.   MResult                : LONGCARD;
  88.   MParam1                : MPARAM;
  89. BEGIN
  90.   MParam1 := MPFROMSHORT( SHORT( Index ) );
  91.   MResult := WinSendMsg( ListBoxWinHandle, LM_QUERYITEMTEXTLENGTH, MParam1, NIL );
  92.   RETURN SHORT( VAL( LONGINT, MResult ) );
  93. END WinQueryLboxItemTextLength;
  94.  
  95.  
  96. PROCEDURE WinSetLboxItemText
  97. ( ListBoxWinHandle       : HWND;
  98.   Index                  : LONGINT;
  99.   Text                   : ARRAY OF CHAR
  100. )                        : BOOLEAN;
  101. VAR
  102.   MResult                : LONGCARD;
  103.   MParam1                : MPARAM;
  104.   MParam2                : MPARAM;
  105. BEGIN
  106.   MParam1 := MPFROMLONG( Index );
  107.   MParam2 := MPFROMP( SYSTEM.ADR( Text ) );
  108.   MResult := WinSendMsg( ListBoxWinHandle, LM_SETITEMTEXT, MParam1, MParam2 );
  109.   RETURN (VAL( SHORTCARD, VAL( LONGCARD, MResult ) ) <> 0);
  110. END WinSetLboxItemText;
  111.  
  112.  
  113. PROCEDURE WinQueryLboxSelectedItem
  114. ( ListBoxWinHandle       : HWND
  115. )                        : LONGINT;
  116. VAR
  117.   MResult                : LONGCARD;
  118.   MParam1                : MPARAM;
  119. BEGIN
  120.   MParam1 := MPFROMLONG( LIT_FIRST );
  121.   MResult := WinSendMsg( ListBoxWinHandle, LM_QUERYSELECTION, MParam1, NIL );
  122.   RETURN VAL( LONGINT, MResult );
  123. END WinQueryLboxSelectedItem;
  124.  
  125.  
  126. END WINLISTBOXES.
  127.