home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / basic / interpre / liberty / os2 / draw.bas < prev    next >
BASIC Source File  |  1994-03-07  |  4KB  |  176 lines

  1.  
  2.     'Example drawing program for Liberty BASIC for OS/2
  3.     'This newer version uses the  rule xor  command
  4.  
  5.     'no main window, please
  6.     nomainwin
  7.  
  8.     lineThickness$ = "1"
  9.     color$ = "black"
  10.  
  11.     button #1, "red", [colorRed], UL, 5, 5
  12.     button #1, "yellow", [colorYellow], UL, 40, 5
  13.     button #1, "green", [colorGreen], UL, 95, 5
  14.     button #1, "blue", [colorBlue], UL, 143, 5
  15.     button #1, "circle", [setForEllipse], UR, 75, 5
  16.     button #1, "square", [setForBox], UR, 20, 5
  17.     button #1, "line", [setForLine], UR, 125, 5
  18.     button #1, "size", [lineThickness], UR, 165, 5
  19.  
  20.     open "Liberty Draw" for graphics_fs_nsb as #1
  21.     print #1, "trapclose [quit]"
  22.     print #1, "when leftButtonDown [startDraw]"
  23.     print #1, "when rightButtonUp [cls]"
  24.     print #1, "down"
  25.     print #1, "color black"
  26.     goto [setForLine]
  27.  
  28. [inputLoop]
  29.     input r$
  30.     goto [inputLoop]
  31.  
  32. [startDraw]
  33.     startX = MouseX
  34.     startY = MouseY
  35.     print #1, "place "; startX; " "; startY
  36.     goto [inputLoop]
  37.  
  38. [firstLine]
  39.     print #1, "when leftButtonMove [trackLine]"
  40.     print #1, "line "; startX; " "; startY; " "; MouseX; " "; MouseY
  41.     oMouseY = MouseY
  42.     oMouseX = MouseX
  43.     goto [inputLoop]
  44.  
  45. [firstFrame]
  46.     print #1, "when leftButtonMove [trackBox]"
  47.     print #1, "box "; MouseX; " "; MouseY
  48.     oMouseY = MouseY
  49.     oMouseX = MouseX
  50.     goto [inputLoop]
  51.  
  52. [trackBox]
  53.     'print #1, "color white"
  54.     print #1, "box "; oMouseX; " "; oMouseY
  55.     print #1, "color black"
  56.     print #1, "place "; startX; " "; startY
  57.     print #1, "box "; MouseX; " "; MouseY
  58.     oMouseY = MouseY
  59.     oMouseX = MouseX
  60.     goto [inputLoop]
  61.  
  62. [trackEllipse]
  63.     'print #1, "color white"
  64.     print #1, "box "; oMouseX; " "; oMouseY
  65.     print #1, "color black"
  66.     print #1, "place "; startX; " "; startY
  67.     print #1, "box "; MouseX; " "; MouseY
  68.     oMouseY = MouseY
  69.     oMouseX = MouseX
  70.     goto [inputLoop]
  71.  
  72. [trackLine]
  73.     'print #1, "color white"
  74.     print #1, "line "; startX; " "; startY; " "; oMouseX; " "; oMouseY
  75.     print #1, "color black"
  76.     print #1, "place "; startX; " "; startY
  77.     print #1, "line "; startX; " "; startY; " "; MouseX; " "; MouseY
  78.     oMouseY = MouseY
  79.     oMouseX = MouseX
  80.     goto [inputLoop]
  81.  
  82. [finishLine]
  83.     print #1, "when leftButtonMove [firstLine]"
  84.     print #1, "discard"
  85.     print #1, "rule over"
  86.     print #1, "color "; color$; " ; line "; startX; " "; startY; " "; MouseX; " "; MouseY
  87.     print #1, "flush ; rule xor"
  88.     goto [inputLoop]
  89.  
  90. [finishBox]
  91.     print #1, "when leftButtonMove [firstFrame]"
  92.     print #1, "discard"
  93.     print #1, "color "; color$; " ; rule over ; box "; MouseX; " "; MouseY
  94.     print #1, "flush ;  rule xor"
  95.     goto [inputLoop]
  96.  
  97. [finishEllipse]
  98.     print #1, "when leftButtonMove [firstFrame]"
  99.     print #1, "box "; oMouseX; " "; oMouseY
  100.     print #1, "discard"
  101.     print #1, "place "; int((startX+MouseX)/2); " ";  int((startY+MouseY)/2)
  102.     print #1, "color "; color$; " ; rule over ; ellipse "; abs(MouseX-startX); " "; abs(MouseY-startY)
  103.     print #1, "flush ;  rule xor"
  104.     goto [inputLoop]
  105.  
  106. [cls]
  107.     print #1, "cls"
  108.     goto [inputLoop]
  109.  
  110.  
  111. [setForLine]
  112.  
  113.     print #1, "rule xor"
  114.     print #1, "when leftButtonMove [firstLine]"
  115.     print #1, "when leftButtonUp [finishLine]"
  116.     goto [inputLoop]
  117.  
  118. [setForBox]
  119.  
  120.     print #1, "when leftButtonMove [firstFrame]"
  121.     print #1, "when leftButtonUp [finishBox]"
  122.     goto [inputLoop]
  123.  
  124. [setForEllipse]
  125.  
  126.     print #1, "when leftButtonMove [firstFrame]"
  127.     print #1, "when leftButtonUp [finishEllipse]"
  128.     goto [inputLoop]
  129.  
  130.  
  131. [colorRed]
  132.  
  133.     color$ = "red"
  134.     goto [inputLoop]
  135.  
  136.  
  137. [colorYellow]
  138.  
  139.     color$ = "yellow"
  140.     goto [inputLoop]
  141.  
  142.  
  143. [colorGreen]
  144.  
  145.     color$ = "green"
  146.     goto [inputLoop]
  147.  
  148.  
  149. [colorBlue]
  150.  
  151.     color$ = "blue"
  152.     goto [inputLoop]
  153.  
  154.  
  155. [lineThickness]
  156.  
  157.     prompt "Line Thickness"; lineThickness$
  158.     print #1, "size "; lineThickness$
  159.     goto [inputLoop]
  160.  
  161.  
  162. [printIt]
  163.  
  164.     print #1, "print"
  165.     goto [inputLoop]
  166.  
  167.  
  168. [quit]
  169.  
  170.     confirm "Quit Draw?"; answer$
  171.     if answer$ <> "yes" then [inputLoop]
  172.     close #1
  173.  
  174.     'end of program
  175.     end
  176.