rem ' sample.src rem ' This options setting can be used to have iOS BUI fire rem ' button click events based on touchstart/touchend instead rem ' of waiting about 350 ms for iOS to synthesize the click rem ' event. This is a potentially dangerous setting, so we'll rem ' default it to off (let iOS synthesize the click events). fast_touch_click$="FALSE" rem if msgbox("FAST_TOUCH_CLICK?",4+32+256)=6 then fast_touch_click$="TRUE" print stbl("!OPTIONS","FAST_TOUCH_CLICK="+fast_touch_click$) title$ = "FAST_TOUCH_CLICK="+fast_touch_click$ sysgui = unt open (sysgui)"X0" bbjapi! = bbjapi() sysgui! = bbjapi!.getSysGui() window! = sysgui!.addWindow(0,10,10,800,420,title$,$00090093$,$$) window!.setToolTipText("Window") menubar! = window!.addMenuBar() menubar!.setToolTipText("MenuBar") menu! = menubar!.addMenu(-100,"File") menu!.setToolTipText("Menu") help! = menubar!.addMenu(-200,"Help") help!.setToolTipText("Help") menuitem1! = menu!.addMenuItem(-101,"Menu Item 1") menuitem1!.setToolTipText("MenuItem") menuitem2! = menu!.addMenuItem(-102,"Menu Item 2") menuitem2!.setToolTipText("MenuItem") submenu! = menu!.addMenu(-103,"Submenu") submenu!.setToolTipText("SubMenu") submenuitem1! = submenu!.addMenuItem(-201,"Submenu Item 1") submenuitem1!.setToolTipText("MenuItem") submenuitem2! = submenu!.addMenuItem(-202,"Submenu Item 2") submenuitem2!.setToolTipText("MenuItem") submenu!.addSeparator() submenuitem3! = submenu!.addMenuItem(-203,"Submenu Item 3") submenuitem3!.setToolTipText("MenuItem") statusbar! = window!.addStatusBar(99,$$) statusbar!.setToolTipText("StatusBar") vector! = bbjapi().makeVector() vector!.add(100) vector!.add(200) vector!.add(550) vector!.add(770) statusbar!.setSegments(vector!) statusbar!.setTextAt(0,info(1,4)) statusbar!.setTextAt(1,fnmode$(info(3,6))) statusbar!.setTextAt(2,"BBj Sample Application for BUI") statusbar!.setTextAt(3,date(0:"%Ml %D, %Yl %hz:%mz:%sz %p")) groupbox! = window!.addGroupBox(100,10,10,780,380,"GroupBox") groupbox!.setToolTipText("GroupBox") button! = window!.addButton(1,40.5,40.5,90,25,"Button",$0800$) print button!,button!.getX(),button!.getY(),button!.getWidth(),button!.getHeight() button!.setToolTipText("Button") tbutton! = window!.addToolButton(101,140,40,90,25,"ToolButton") tbutton!.setToolTipText("ToolButton") checked! = window!.addCheckBox(102,40,80,90,25,"Checked",$0004$) checked!.setToolTipText("CheckBox") unchecked! = window!.addCheckBox(103,140,80,90,25,"Unchecked",$0000$) unchecked!.setToolTipText("CheckBox") radio1! = window!.addRadioButton(104,40,120,90,25,"Checked",$0004$) radio1!.setToolTipText("RadioButton") radio2! = window!.addRadioButton(105,140,120,90,25,"Unchecked",$0000$) radio2!.setToolTipText("RadioButton") radiogroup! = window!.addRadioGroup() radiogroup!.add(radio1!) radiogroup!.add(radio2!) navigator! = window!.addNavigator(106,40,160,180,25,"Navigator") navigator!.setToolTipText("Navigator") editbox! = window!.addEditBox(107,40,200,180,25,"EditBox") editbox!.setToolTipText("EditBox") password! = window!.addEditBox(108,40,240,180,25,"xyzzy",$0400$) password!.setToolTipText("Password EditBox") text$ = "The quick brown fox jumps over the lazy dog." text! = window!.addStaticText(109,40,280,90,90,text$,$$) text!.setToolTipText("StaticText") html$ = "The quick brown fox jumps over the lazy dog." html! = window!.addStaticText(110,140,280,90,90,html$,$$) html!.setToolTipText("StaticText") list! = "The|quick|brown|fox|jumps|over|the|lazy|dog" list$ = list!.replace("|",$0a$) listbox! = window!.addListBox(111,250,40,100,100,list$,$0000$) listbox!.setToolTipText("ListBox") listbutton! = window!.addListButton(112,250,160,100,100,list$,$0400$) listbutton!.setToolTipText("ListButton") listedit! = window!.addListEdit(113,250,200,100,100,list$,$$) listedit!.setToolTipText("ListEdit") busy! = window!.addButton(999,250,240,100,25,"Busy",$$) image$ = "gwt.png" rem image! = window!.addImageCtrl(114,250,280,100,100,"gwt.png") image$ = System.getProperty("basis.BBjHome")+"/utils/launchdock/icons/bbj.png" image! = window!.addImageCtrl(114,225,250,128,128,image$) image!.setToolTipText("Image") tree! = window!.addTree(115,360,40,150,230) tree!.setTreeEditable(1) tree!.setToolTipText("Tree") tree!.setRoot(0,"The") tree!.addExpandableNode(1,0,"quick") tree!.addExpandableNode(2,1,"brown") tree!.addNode(3,2,"fox") tree!.addExpandableNode(4,0,"jumps") tree!.addNode(5,4,"over") tree!.addExpandableNode(6,0,"the") tree!.addExpandableNode(7,6,"lazy") tree!.addNode(8,7,"dog.") cedit! = window!.addCEdit(116,360,280,150,100,text$,$0106$) cedit!.setToolTipText("CEdit") inpute! = window!.addInputE(117,520,40,100,30) inpute!.setLength(8) inpute!.setPadCharacter("0") inpute!.setToolTipText("InputE") inputn! = window!.addInputN(118,630,40,100,30) inputn!.setToolTipText("InputN") inputd! = window!.addInputD(119,520,80,100,30) inputd!.setToolTipText("InputD") menubutton! = window!.addMenuButton(120,630,80,100,30,"MenuButton") menubutton!.setToolTipText("MenuButton") dropdownmenu! = sysgui!.addPopupMenu() dropdownItem1! = dropdownmenu!.addMenuItem(-201,"Dropdown Item 1") dropdownItem2! = dropdownmenu!.addMenuItem(-202,"Dropdown Item 2") menubutton!.setDropdownMenu(dropdownmenu!) htmlview! = window!.addHtmlView(121,520,120,240,150,"",$$) url$ = "//m.wikipedia.org" if info(3,6)<>"5" then url$ = "http:" + url$ htmlview!.setUrl(url$) htmlview!.setToolTipText("HtmlView") tabctrl! = window!.addTabCtrl(122,520,280,240,100) tabctrl!.setToolTipText("TabControl") context = sysgui!.getContext() tabs = 4 for tab=1 to tabs child! = window!.addChildWindow(200+tab,0,25,236,72,"",$00000800$,context+tab,$$) text$ = "Child Window " + str(tab) b! = child!.addButton(300+tab,10*tab+.5,10*tab+.5,100,30,text$,$0800$) print b!,b!.getX(),b!.getY(),b!.getWidth(),b!.getHeight() tab$ = "Tab " + str(tab) tabctrl!.addTab(tab$,child!) next tab rem process_events window!.setVisible(1) x$=ctrl(sysgui,0,0) for id = 102 to 122 window!.getControl(id).setFocusable(1,err=*next) next id dim event$:tmpl(sysgui),generic$:noticetpl(0,0) repeat readrecord(sysgui,siz=10)event$ e$ = sysgui!.getLastEvent().toString(), e$ = e$(1,pos("@"=e$)-1) print e$," code=",event.code$," context=",str(event.context)," id=",str(event.id)," flags=",str(event.flags)," x=",str(event.x)," y=",str(event.y)," focused=",str(window!.getFocusedControlID()) if event.code$="N" then gosub notify if event.code$="f" or event.code$="F" then print "BBjWindow::getFocusedControlID:",sysgui!.getWindow(event.context).getFocusedControlID() if event.code$="B" and event.id=999 then gosub busy until event.code$="X" eoj: release notify: generic$ = notice(sysgui,event.x) dim notice$:noticetpl(generic.objtype,event.flags) notice$ = generic$ fields = pos($0a$=fattr(notice$,""),1,0) dim field$:"name["+str(fields)+"]:c(1*)" let field$=fattr(notice$,"") for field=1 to fields name$ = field.name$[field] info$ = fattr(notice$,name$,$$) print " ",name$,"=", if asc(info$)=1 then print field(notice$,name$), else print str(nfield(notice$,name$)), next field print "" if event.code$="N" and event.flags=8 then escape return def fnmode$(mode$) if mode$="0" then return "Fat Client" if mode$="1" then return "Thin Client" if mode$="2" then return "Java Applet" if mode$="3" then return "Java Web Start" if mode$="4" then return "JavaBBjBridge" if mode$="5" then return "Browser (BUI)" if mode$="6" then return "Browser (DWC)" return mode$ fnend event: event! = sysgui!.getLastEvent() control! = event!.getControl() print control!," ",event! return popup: event! = sysgui!.getLastEvent() control! = event!.getControl() print control!," ",event!,event!.getX(),event!.getY() return busy: bui! = bbjapi().getBuiManager() b! = bui!.getBusyIndicator(err=oops) b!.setText("Busy...") b!.setVisible(1) wait 1 b!.setText("Still busy...") wait 1 b!.setText("Just one more second...") wait 1 b!.setVisible(0) return oops: i = msgbox(errmes(-1),0,"Busy Indicator is not available") return