rem ' BBjTabCtrl sysgui = unt open (sysgui)"X0" sysgui! = bbjapi().getSysGui() window! = sysgui!.addWindow(50,50,400,300,"BBjTabCtrl",$00890083$) window!.setCallback(window!.ON_CLOSE,"eoj") window!.setCallback(window!.ON_RESIZE,"resize") tabctrl! = window!.addTabCtrl(101,25,25,350,200) tabctrl!.setCallback(tabctrl!.ON_TAB_SELECT,"select") tabctrl!.setCallback(tabctrl!.ON_TAB_CLOSE,"close") for i = 0 to 20 child! = window!.addChildWindow(200+i,50,50,200,100,"",$00000800$,200+i,$$) text$ = "Child Window " + str(i) text! = child!.addStaticText(300+i,i+10,i+10,150,25,text$) title$ = "Tab " + str(i) tabctrl!.addTab(title$,child!) next i closeable! = window!.addCheckBox(102,25,250,150,25,"setCloseable",$$) closeable!.setCallback(closeable!.ON_CHECK_ON,"setCloseable1") closeable!.setCallback(closeable!.ON_CHECK_OFF,"setCloseable0") closeableAt! = window!.addCheckBox(103,200,250,150,25,"setCloseableAt",$$) closeableAt!.setCallback(closeable!.ON_CHECK_ON,"setCloseableAt1") closeableAt!.setCallback(closeable!.ON_CHECK_OFF,"setCloseableAt0") process_events eoj: release resize: event! = sysgui!.getLastEvent() width = event!.getWidth() height = event!.getHeight() tabctrl!.setSize(width-50,height-100) closeable!.setLocation(closeable!.getX(),height-50) closeableAt!.setLocation(closeableAt!.getX(),height-50) return select: event! = sysgui!.getLastEvent() index = event!.getIndex() title$ = event!.getTitle() print "Selected index",index,": ",title$ closeableAt!.setSelected(tabctrl!.isCloseableAt(index)) closeableAt!.setText("setClosebleAt "+str(index)) return setCloseable0: tabctrl!.setCloseable(0) return setCloseable1: tabctrl!.setCloseable(1) return setCloseableAt0: tabctrl!.setCloseableAt(tabctrl!.getSelectedIndex(),0) return setCloseableAt1: tabctrl!.setCloseableAt(tabctrl!.getSelectedIndex(),1) return close: event! = sysgui!.getLastEvent() index = event!.getIndex() title$ = event!.getTitle() query$ = "Close tab #"+str(index)+" ("""+title$+""")?" if msgbox(query$,4+32+256,"ON_TAB_CLOSE")=6 then tabctrl!.removeTab(index) endif return