DIALOG CREATE, "Mac's Tab Example",-1,0,250,195
  DIALOG ADD,TAB,Tabs,1,5,240,190,Tab 1|Tab 2|Tab 3|Tab 4|Hide All

  rem -- Add 4 groups of 3 checkboxes and 1 radio button.
  %x = 1
  REPEAT
    DIALOG ADD,GROUP,Group%x,80,15,220,90,Group %x
    DIALOG ADD,CHECK,Check%xa,100,20,90,14,Checkbox %x A
    DIALOG ADD,CHECK,Check%xb,125,20,90,14,Checkbox %x B 
    DIALOG ADD,CHECK,Check%xc,150,20,90,14,Checkbox %x C
    DIALOG ADD,RADIO,Radio%x,94,120,110,70,Radio %x,Start|Stop|Hesitate

    rem -- We have to move each group to a different place
    rem -- off the window so we can make another one.
    DIALOG SETPOS, Group%x, @sum(105, @prod(%x, 90)), 0
    %x = @succ(%x)
  UNTIL @greater(%x, 4)

DIALOG SHOW

goto "Tab 1CLICK"

:EVLOOP
  WAIT EVENT
  goto @event()

:Tab 1CLICK
  %s = 1
  GOSUB Hide_Show
  goto EVLOOP

:Tab 2CLICK
  %s = 2
  GOSUB Hide_Show
  goto EVLOOP

:Tab 3CLICK
  %s = 3
  GOSUB Hide_Show
  goto EVLOOP

:Tab 4CLICK
  %s = 4
  GOSUB Hide_Show
  goto EVLOOP

:Hide AllCLICK
  %s = ""
  GOSUB Hide_Show
  goto EVLOOP

:CLOSE
  EXIT
  STOP

rem --------------------- GOSUB routines ------------------------

:Hide_Show
  rem -- Move each group to different locations
  rem -- off the window and hide them.
  %x = 1
  REPEAT
    DIALOG SETPOS, Group%x, @sum(105, @prod(%x, 90)), 0
    DIALOG HIDE, Group%x
    %x = @succ(%x)
  UNTIL @greater(%x, 4)

  rem -- Position and show only the chosen group.
  if %s
     DIALOG SETPOS, Group%s, 80, 15 
     DIALOG SHOW, Group%s
  end
  exit
