home *** CD-ROM | disk | FTP | other *** search
/ CD Shareware Magazine 1996 December / CD_shareware_12-96.iso / DOS / Programa / AGSPC1B2.ZIP / MENU.PPS < prev    next >
Encoding:
Text File  |  1996-07-29  |  2.2 KB  |  85 lines

  1. ;----------------------------------------------------------------------------
  2. ; Copyright(C) 1996, The AEGiS Corporation
  3. ;----------------------------------------------------------------------------
  4. ;
  5. ; FUNCTION Menu()
  6. ;
  7. ; Full featured lightbar menu function!
  8. ; Returns the item selected
  9. ;
  10. ;----------------------------------------------------------------------------
  11. #lib
  12. Declare Function Menu(String PageName, Int FirstLine, Int nLines, Int DefaultLine) Integer
  13. Declare Procedure Menu_DispSelected(Integer Seln)
  14. Declare Procedure Menu_RemoveSelected(Integer Seln)
  15. Declare Procedure Menu_RemCursor()
  16.  
  17. String Menu_Key, Menu_BackupLightbar
  18. Int Menu_FirstLine
  19.  
  20. ;----------------------------------------------------------------------------
  21. Function Menu(String PageName, Int Firstline, Int nLines, Int DefaultLine) Integer
  22.  
  23. Int Sel
  24. Sel = DefaultLine
  25.  
  26. Menu_FirstLine = FirstLine
  27.  
  28. Color @X0F
  29. Cls
  30. StartDisp FNS
  31. DispFile PPEPath() + PageName, Graph + Lang
  32.  
  33. Menu_DispSelected(Sel)
  34.  
  35. While (1) Do
  36.     Menu_Key = Inkey()
  37.     If (Menu_Key <> "") Then
  38.         Select case Menu_Key
  39.             Case "DOWN", "2","5"
  40.                 Menu_RemoveSelected(Sel)
  41.                 Sel = Sel + 1
  42.                 If (Sel = nLines + 1) Sel = 1
  43.                 Menu_DispSelected(Sel)
  44.             Case "UP","8"
  45.                 Menu_RemoveSelected(Sel)
  46.                 Sel = Sel - 1
  47.                 If (Sel = 0) Sel = nLines
  48.                 Menu_DispSelected(Sel)
  49.             Case Chr(13)
  50.                 Menu = Sel
  51.                 Break
  52.             Case Chr(27)
  53.                 Menu = 0
  54.                 Break
  55.         End Select
  56.     EndIf
  57. EndWhile
  58.  
  59. Endfunc
  60.  
  61. ;----------------------------------------------------------------------------
  62. Procedure Menu_DispSelected(Integer Seln)
  63. AnsiPos 22,Menu_FirstLine+Seln-1
  64. Menu_BackupLightbar = ScrText(22,Menu_FirstLine+Seln-1,36,True)
  65. Print "@X1F",ScrText(22,Menu_FirstLine+Seln-1,36,False)
  66. Menu_RemCursor()
  67. Endproc
  68.  
  69. ;----------------------------------------------------------------------------
  70. Procedure Menu_RemoveSelected(Integer Seln)
  71. AnsiPos 22,Menu_FirstLine+Seln-1
  72. Print "@X0F",Menu_BackupLightbar
  73. Menu_RemCursor()
  74. Endproc
  75.  
  76. ;----------------------------------------------------------------------------
  77. Procedure Menu_RemCursor()
  78. AnsiPos 1,22
  79. Color 0
  80. Print " "
  81. Backup 1
  82. EndProc
  83.  
  84.  
  85.