aUCBLogo Demos and Tests / buttontest


be buttontest
   
btest
;   thread [btest]
end

be btest
   
be grun :commands
      
GraphEnter
      
run :commands
      
updateGraph
      
GraphLeave
   
end
;   local [f dist angle bfd bbk brt blt tb cb rb1 rb2 rb3
;      distC angleC bclose bs bsrl finish]
comment [
   bfd=(Button [][forward 10]
   [   forward 10
      updateGraph
   ] 0 [10 220])
   bbk=(Button [][back 10]
   [   back 10
      updateGraph
   ] 0 [10 250])
   brt=(Button [][right 30]
   [   right 30
      updateGraph
   ] 0 [10 280])
   blt=(Button [][left 30]
   [   left 30
      updateGraph
   ] 0 [10 310])
]

   
f=(Frame [][MyFrame] 
      
wxFrame_Tool_Window+wxCaption+wxClose_Box
      
+wxSystem_Menu+wxResize_Border+wxTab_traversal+wxStay_on_Top
      
[100 300][--1])
   
WindowSetBackgroundColor [.9 .9 .85]
   
WindowSetClientSize 100 30*12
   
WindowOnClose [finish=true]

   
dist=10
   
angle=30
   
   
bfd=Button [&forward]
   
[   grun [forward dist]
   
]
   
blt=Button [&left]
   
[   grun [left angle]
   
]
   
brt=Button [&right]
   
[   grun [right angle]
   
]
   
bbk=Button [&back]
   
[   grun [back dist]
   
]
   
   
tb=(ToggleButton [&PenDown?]
   
[   ifelse ToggleButtonValue tb 
      
[PenDown]
      
[PenUp]
   
[--1][--1])
   
ToggleButtonSetValue tb PenDown?
   
   
cb=CheckBox [&shown?]
   
[   grun
      
[   ifelse CheckBoxValue cb 
         
[showTurtle]
         
[hideTurtle]
      
]
   
]
   
CheckBoxSet cb shown?
   
   
rb1=(RadioButton [PenPaint]
   
[   if RadioButtonValue rb1 [PenPaint setPC 0]
   
wxRB_GROUP)
   
rb2=(RadioButton [PenErase]
   
[   if RadioButtonValue rb2 [PenErase]
   
])
   
rb3=(RadioButton [PenReverse]
   
[   if RadioButtonValue rb3 [PenReverse]
   
])

   
distC=(IntControl [&Distancedist 100 
      
[   dist=IntControlValue
      
])
   
WindowSetBackgroundColor distC "green

   
angleC=(FloatControl [&Angleangle 360 10 2
      
[   angle=FloatControlValue
      
wxSP_Arrow_Keys [--1][-1 40])
   
WindowSetForegroundColor angleC "red

   
bclose=(Button " 
   
[   finish=true
   
[--1][--1wxID_Close)

   
bs=BoxSizer wxVertical
   
BoxSizerAdd bs bfd 100 wxExpand 0
   
bsrl=BoxSizer wxHorizontal
   
BoxSizerAdd bsrl blt 100 wxExpand 0
   
BoxSizerAdd bsrl brt 100 wxExpand 0
   
BoxSizerAdd bs bsrl 100 wxExpand 0
   
BoxSizerAdd bs bbk 100 wxExpand 0
   
BoxSizerAdd bs tb  100 wxExpand 0
   
BoxSizerAdd bs cb  100 wxExpand 0
   
BoxSizerAdd bs rb1 100 wxExpand 0
   
BoxSizerAdd bs rb2 100 wxExpand 0
   
BoxSizerAdd bs rb3 100 wxExpand 0
   
BoxSizerAdd bs distC 180 wxExpand 0
   
BoxSizerAdd bs angleC 180 wxExpand 0
   
BoxSizerAdd bs bclose 100 wxExpand 0
   
WindowSetSizer f bs
stop
   
finish=false
   
until [finish]
   
[   dispatchMessages
      
waituS 100000
   
]   
end