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