home *** CD-ROM | disk | FTP | other *** search
/ Power Programming / powerprogramming1994.iso / progtool / microcrn / issue_43.arc / DBMENU.ARC / DRAWMENU.PRG < prev    next >
Text File  |  1988-05-23  |  2KB  |  95 lines

  1. **************************************************
  2. *** NAME: DRAWMENU.PRG
  3. ***
  4. *** AUTHOR: BRETT FISHBURNE
  5. ***
  6. *** PURPOSE: DRAW A MENU DEFINED IN THE MENUFILE DATABASE
  7. ***
  8. **************************************************
  9. PARAMETER Layout, Instruction, Menu
  10.  
  11. *** ESTABLISH ENVIRONMENT
  12. SET TALK OFF
  13. SET ECHO OFF
  14. SET STATUS OFF
  15. SET SCOREBOARD OFF
  16. SET EXACT ON
  17.  
  18. *** PREPARE THE DATABASE
  19. SELECT 1
  20. USE MENUFILE
  21. SET FILTER TO TRIM(TITLE)=TRIM(Menu)
  22. GOTO TOP
  23. SELECT 2
  24. USE TILESETS
  25. SELECT 1
  26.  
  27. *** DRAW BOX
  28. @ 2,0 TO 2,79 DOUBLE
  29. @ 0,0 TO 21,79 DOUBLE
  30.  
  31. *** FILL IN HEADER AND FOOTER
  32. @ 1,2 SAY SYSTEM
  33. @ 1,40-INT(LEN(TRIM(TITLE))/2) SAY TITLE
  34. @ 1,55 SAY TIME()
  35. @ 1,71 SAY DATE()
  36. @ 22,40-INT(LEN(TRIM(Instruction))/2) SAY Instruction
  37.  
  38. *** ESTABLISH TILE BOUNDARIES
  39. SELECT 2
  40. GOTO Layout
  41.  
  42. *** DRAW TILES
  43. i = '0'
  44. temp2 = 1
  45. DO WHILE temp2 # 0
  46.  
  47.   mline&i = VAL(LEFT(TILE&i,2)) + 1
  48.   mHorz&i = VAL(SUBSTR(TILE&i,4,2)) + 2
  49.   temp = TILE&i
  50.   @ &temp
  51.  
  52.   i = STR(VAL(i) + 1)
  53.   IF i = '10'
  54.     EXIT
  55.   ELSE
  56.     i = LTRIM(i)
  57.     temp2 = LEN(TRIM(TILE&i))
  58.   ENDIF
  59.  
  60. ENDDO
  61.  
  62. *** PUT OPTIONS AND TITLES IN TILES
  63. SELECT 1
  64. DO WHILE .NOT. EOF()
  65.  
  66.   temp = STR(TILE,1)
  67.   DO CASE
  68.  
  69.     CASE ELEMENT_TY = 1
  70.       *** TITLE
  71.       @ mline&temp, mHorz&temp + ELEMENT_NO SAY TRIM(ELEMENT)
  72.       @ mline&temp + 1,mHorz&temp + ELEMENT_NO SAY ;
  73.         REPLICATE('-',ELEMENT_SI)
  74.       mline&temp = mline&temp + 2
  75.  
  76.     CASE ELEMENT_TY = 2
  77.       *** OPTION
  78.       @ mline&temp, mHorz&temp SAY CHR(64 + ELEMENT_NO) + ' -- ';
  79.                                    + TRIM(ELEMENT)
  80.       mline&temp = mline&temp + 1
  81.  
  82.     CASE ELEMENT_TY = 3
  83.       *** CONTINUATION
  84.       @ mline&temp, mHorz&temp + 5 SAY TRIM(ELEMENT)
  85.       mline&temp = mline&temp + 1
  86.  
  87.     CASE ELEMENT_TY = 4
  88.       *** MESSAGE
  89.       @ mline&temp, ELEMENT_NO SAY TRIM(ELEMENT)
  90.  
  91.   ENDCASE
  92.  
  93.   SKIP
  94. ENDDO
  95.