home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / lb091.zip / DRAW1.BAS < prev    next >
BASIC Source File  |  1995-09-26  |  5KB  |  179 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.     menu #1, &Object, "&Line", [setForLine], &Ellipse, [setForEllipse], &Box, [setForBox]
  12.     menu #1, &Color, &Red, [colorRed], &Yellow, [colorYellow], &Green, [colorGreen], &Blue, [colorBlue]
  13.     menu #1, &Drawing, "&Line Thickness", [lineThickness], "&Print", [printIt]
  14.  
  15.     bmpbutton #1, "redbttn.bmp", [colorRed], UL, 5, 5
  16.     bmpbutton #1, "yllwbttn.bmp", [colorYellow], UL, 40, 5
  17.     bmpbutton #1, "grnbttn.bmp", [colorGreen], UL, 75, 5
  18.     bmpbutton #1, "bluebttn.bmp", [colorBlue], UL, 110, 5
  19.     bmpbutton #1, "circbttn.bmp", [setForEllipse], UR, 40, 5
  20.     bmpbutton #1, "sqrbttn.bmp", [setForBox], UR, 5, 5
  21.     bmpbutton #1, "linebttn.bmp", [setForLine], UR, 75, 5
  22.  
  23.     open "Liberty Draw" for graphics_fs_nsb as #1
  24.     print #1, "trapclose [quit]"
  25.     print #1, "when leftButtonDown [startDraw]"
  26.     print #1, "when rightButtonUp [cls]"
  27.     print #1, "down"
  28.     print #1, "color black"
  29.     goto [setForLine]
  30.  
  31. [inputLoop]
  32.     input r$
  33.     goto [inputLoop]
  34.  
  35. [startDraw]
  36.     startX = MouseX
  37.     startY = MouseY
  38.     print #1, "place "; startX; " "; startY
  39.     goto [inputLoop]
  40.  
  41. [firstLine]
  42.     print #1, "when leftButtonMove [trackLine]"
  43.     print #1, "line "; startX; " "; startY; " "; MouseX; " "; MouseY
  44.     oMouseY = MouseY
  45.     oMouseX = MouseX
  46.     goto [inputLoop]
  47.  
  48. [firstFrame]
  49.     print #1, "when leftButtonMove [trackBox]"
  50.     print #1, "box "; MouseX; " "; MouseY
  51.     oMouseY = MouseY
  52.     oMouseX = MouseX
  53.     goto [inputLoop]
  54.  
  55. [trackBox]
  56.     'print #1, "color white"
  57.     print #1, "box "; oMouseX; " "; oMouseY
  58.     print #1, "color black"
  59.     print #1, "place "; startX; " "; startY
  60.     print #1, "box "; MouseX; " "; MouseY
  61.     oMouseY = MouseY
  62.     oMouseX = MouseX
  63.     goto [inputLoop]
  64.  
  65. [trackEllipse]
  66.     'print #1, "color white"
  67.     print #1, "box "; oMouseX; " "; oMouseY
  68.     print #1, "color black"
  69.     print #1, "place "; startX; " "; startY
  70.     print #1, "box "; MouseX; " "; MouseY
  71.     oMouseY = MouseY
  72.     oMouseX = MouseX
  73.     goto [inputLoop]
  74.  
  75. [trackLine]
  76.     'print #1, "color white"
  77.     print #1, "line "; startX; " "; startY; " "; oMouseX; " "; oMouseY
  78.     print #1, "color black"
  79.     print #1, "place "; startX; " "; startY
  80.     print #1, "line "; startX; " "; startY; " "; MouseX; " "; MouseY
  81.     oMouseY = MouseY
  82.     oMouseX = MouseX
  83.     goto [inputLoop]
  84.  
  85. [finishLine]
  86.     print #1, "when leftButtonMove [firstLine]"
  87.     print #1, "discard"
  88.     print #1, "rule over"
  89.     print #1, "color "; color$; " ; line "; startX; " "; startY; " "; MouseX; " "; MouseY
  90.     print #1, "flush ; rule xor"
  91.     goto [inputLoop]
  92.  
  93. [finishBox]
  94.     print #1, "when leftButtonMove [firstFrame]"
  95.     print #1, "discard"
  96.     print #1, "color "; color$; " ; rule over ; box "; MouseX; " "; MouseY
  97.     print #1, "flush ;  rule xor"
  98.     goto [inputLoop]
  99.  
  100. [finishEllipse]
  101.     print #1, "when leftButtonMove [firstFrame]"
  102.     print #1, "box "; oMouseX; " "; oMouseY
  103.     print #1, "discard"
  104.     print #1, "place "; int((startX+MouseX)/2); " ";  int((startY+MouseY)/2)
  105.     print #1, "color "; color$; " ; rule over ; ellipse "; abs(MouseX-startX); " "; abs(MouseY-startY)
  106.     print #1, "flush ;  rule xor"
  107.     goto [inputLoop]
  108.  
  109. [cls]
  110.     print #1, "cls"
  111.     goto [inputLoop]
  112.  
  113.  
  114. [setForLine]
  115.  
  116.     print #1, "rule xor"
  117.     print #1, "when leftButtonMove [firstLine]"
  118.     print #1, "when leftButtonUp [finishLine]"
  119.     goto [inputLoop]
  120.  
  121. [setForBox]
  122.  
  123.     print #1, "when leftButtonMove [firstFrame]"
  124.     print #1, "when leftButtonUp [finishBox]"
  125.     goto [inputLoop]
  126.  
  127. [setForEllipse]
  128.  
  129.     print #1, "when leftButtonMove [firstFrame]"
  130.     print #1, "when leftButtonUp [finishEllipse]"
  131.     goto [inputLoop]
  132.  
  133.  
  134. [colorRed]
  135.  
  136.     color$ = "red"
  137.     goto [inputLoop]
  138.  
  139.  
  140. [colorYellow]
  141.  
  142.     color$ = "yellow"
  143.     goto [inputLoop]
  144.  
  145.  
  146. [colorGreen]
  147.  
  148.     color$ = "green"
  149.     goto [inputLoop]
  150.  
  151.  
  152. [colorBlue]
  153.  
  154.     color$ = "blue"
  155.     goto [inputLoop]
  156.  
  157.  
  158. [lineThickness]
  159.  
  160.     prompt "Line Thickness"; lineThickness$
  161.     print #1, "size "; lineThickness$
  162.     goto [inputLoop]
  163.  
  164.  
  165. [printIt]
  166.  
  167.     print #1, "print"
  168.     goto [inputLoop]
  169.  
  170.  
  171. [quit]
  172.  
  173.     confirm "Quit Draw?"; answer$
  174.     if answer$ <> "yes" then [inputLoop]
  175.     close #1
  176.  
  177.     'end of program
  178.     end
  179.