home *** CD-ROM | disk | FTP | other *** search
/ World of Shareware - Software Farm 2 / wosw_2.zip / wosw_2 / QBAS / PBMENUS.ZIP / MNSSHELL.BAS < prev    next >
BASIC Source File  |  1993-09-08  |  4KB  |  133 lines

  1. 'Menusys / Menulib Shell
  2. 'Power BASIC Version
  3. '(C) Copyright 1993 by Tim Gerchmez
  4. 'All Rights Reserved.
  5.  
  6. '---------------------
  7. 'Tell PB to link in
  8. 'necessary routines
  9. '---------------------
  10.  
  11. $compile exe
  12. $link "menusys.pbu"
  13. $link "menulib.pbu"
  14. $option GOSUB on
  15.  
  16. '----------------------------
  17. 'Declare Public Variables for
  18. 'MENUSYS and MENULIB
  19. '----------------------------
  20.  
  21. public mouse%, segment&        'Mouse Flag and Video Segment
  22. public msx%, msy%, lb%, rb%    'Mouse X and Y pos, Left/Right Buttons
  23. public topcount%, bottomcount% 'Top/Bottom Menu Counts
  24. public mainclr%, mainbckg%     '"Main" Screen Colors
  25. public clr%, bckg%             'Temporary (Current) Colors
  26. public clr1%, clr2%, clr3%     'Alternate Character Colors
  27. public bckg1%, bckg2%, bckg3%  'Alternate Background Colors
  28. public helpfn$, progname$      'Help File and Program Name
  29.                    'Help filename should contain path as
  30.                    'well as main filename.  Leave helpfn$
  31.                    'undefined for no help.
  32.  
  33. '---------------------
  34. 'Check Mouse and Video
  35. '---------------------
  36.  
  37. CALL mhardreset(ms%, nb%)
  38. IF ms% = 0 THEN mouse% = 0 ELSE mouse% = 1
  39. segment& = vidseg&
  40. IF segment& = &HB000 THEN
  41.     mainclr% = 7: mainbckg% = 0
  42.     clr1% = 0: clr2% = 15
  43.     clr3% = 0
  44.     bckg1% = 7: bckg2% = 7
  45.     bckg3% = 7
  46. ELSE
  47.     mainclr% = 15: mainbckg% = 1
  48.     clr1% = 0: clr2% = 15
  49.     clr3% = 8
  50.     bckg1% = 7: bckg2% = 7
  51.     bckg3% = 3
  52. END IF
  53.  
  54.  
  55. '--------------
  56. 'Read Menu Data
  57. '--------------
  58.  
  59. topcount% = 2: bottomcount% = 2
  60.  
  61. REDIM menu$(0 : topcount%, 1 : bottomcount%)
  62. REDIM help$(1 : topcount%, 1 : bottomcount%)
  63. REDIM menutype%(1 : topcount%, 1 : bottomcount%)
  64. REDIM menucount%(1 : topcount%)
  65.  
  66. RESTORE menudatapoint
  67.  
  68. FOR t% = 1 TO topcount%
  69.     READ menu$(0, t%)
  70. NEXT t%
  71.  
  72. FOR t% = 1 TO topcount%
  73.     READ menucount%(t%)
  74.     FOR u% = 1 TO menucount%(t%)
  75.         READ menu$(t%, u%)
  76.     NEXT u%
  77. NEXT t%
  78.  
  79. FOR t% = 1 TO topcount%
  80.     FOR u% = 1 TO menucount%(t%)
  81.     READ help$(t%, u%)
  82.     NEXT u%
  83. NEXT t%
  84.  
  85.  
  86. '---------------------------------
  87. 'Substitute the following with
  88. 'your own program.
  89. '---------------------------------
  90.  
  91. color mainclr%, mainbckg%  'Main Screen Colors
  92. cls
  93. CALL MENUSYS(menu$(), help$(), menucount%(), menutype%(), topchoice%, bottomchoice%)
  94. locate 10,1
  95. print "Top Menu: ";topchoice%
  96. print "Bottom Menu: ";bottomchoice%
  97. END
  98.  
  99.  
  100. '---------------------
  101. 'Menu Data Starts Here
  102. '---------------------
  103.  
  104. menudatapoint:
  105.  
  106. '--------------------------------------------
  107. 'TOP MENU BAR SELECTION TITLES (Enclose The
  108. 'Hot-Key Letter to Highlight in Parentheses).
  109. 'Set topcount% to number of top menu entries
  110. 'before reading (2 entries, in this case.)
  111.  
  112. DATA "  (F)ile", "  (E)dit"
  113.  
  114. '--------------------------------------------
  115. 'BOX MENU TITLES (For each box menu: Number of Entries
  116. 'followed by the text for the entries.  Use "-" for horiz.
  117. 'line.  Set bottomcount% to MAXIMUM number of bottom menu
  118. 'entries (should be >= topcount% - quirk of the program).
  119. 'bottomcount% = 3, in this case.
  120.  
  121. DATA 3,(N)ew Program, "-", (O)pen Program
  122. DATA 2, (U)ndo, (C)ut
  123.  
  124. '--------------------------------------------
  125. 'BOX MENU HELP
  126. 'Must correspond to (be in the same order and
  127. 'the same quantity as) the Box Menu Titles, including
  128. 'the "-" corresponding to the "-" entries in the box
  129. 'menu titles.
  130.  
  131. DATA Removes currently loaded program from memory, "-", Loads new program into memory
  132. DATA Restores current edited line to its original condition, Deletes selected text and copies it to buffer
  133.