rem ' BBjMDIBorder
if len(cvs(argv(1,err=*next),8)) then goto client
sysgui = unt
open (sysgui)"X0"
sysgui! = bbjapi().getSysGui()
mdi! = bbjapi().getMDI()
title$ = "BBjMDIBorder: "+info(0,0)+" "+info(0,1)+" "+info(1,0)+" "+info(1,1)
print 'title'(title$)
mdi!.createMDIWindow(100,100,800,600,title$,$0000089f$)
mdi!.enableMDIWindowMenu()
mdi!.setArrangeModal(1)
mdi!.setVisible(1)
status! = mdi!.addStatusBar(); status!.setText("MDI Status Bar")
mdi!.setCallback(mdi!.ON_CLOSE,"closeAll")
mdi!.setCallback(mdi!.ON_RESIZE,"resize")
mdi!.setCallback(mdi!.ON_WINDOW_MOVE,"move")
mdi!.setCallback(mdi!.ON_SCREEN_RESIZE,"screen")
mdi!.setBackColor(sysgui!.makeColor(255,255,0))
imagemanager! = sysgui!.getImageManager()
image$ = "com/basis/utilities/launchdock/icons/bbj.png"
image! = imagemanager!.loadImageFromServerJar(image$)
mdi!.setBackgroundImage(0,image!)
mdi!.setDefaultMDIMode("MDI")
rem 'invoke = scall("bbj "+pgm(-1)+" - f &")
invoke = scall("bbj "+pgm(-1)+" - n &")
rem 'invoke = scall("bbj "+pgm(-1)+" - f &")
gosub toolbar
rem 'invoke = scall("bbj "+pgm(-1)+" - f &")
invoke = scall("bbj "+pgm(-1)+" - w &")
rem 'invoke = scall("bbj "+pgm(-1)+" - f &")
invoke = scall("bbj "+pgm(-1)+" - e &")
rem 'invoke = scall("bbj "+pgm(-1)+" - f &")
rem 'invoke = scall("bbj "+pgm(-1)+" - f &")
invoke = scall("bbj "+pgm(-1)+" - s &")
invoke = scall("bbj "+pgm(-1)+" - f &")
invoke = scall("bbj "+pgm(-1)+" - f &")
invoke = scall("bbj "+pgm(-1)+" - f &")
invoke = scall("bbj "+pgm(-1)+" - f &")
invoke = scall("bbj "+pgm(-1)+" - f &")
mode = 0; rem msgbox("Select MDI mode",7+32+256,"MDI Mode","MDI","SDI","DETACHED")
mode$ = "MDI"
switch mode
case 0; mode$ = "MDI"; break
case 1; mode$ = "MDI"; break
case 2; mode$ = "SDI"; break
case 3; mode$ = "DETACHED"; break
swend
mdi!.setDefaultMDIMode(mode$)
rem 'invoke = scall("bbj "+pgm(-1)+" - x "+mode$+" &")
gosub getSize
gosub getDesktopSize
gosub getClientSize
gosub getClientLocation
mdi!.setVisible(1)
gosub getSize
gosub getDesktopSize
gosub getClientSize
gosub getClientLocation
process_events
toolbar:
tb! = mdi!.addToolButton(mdi!.getAvailableControlID(),0,0,50,50,"1",$4000$)
print tb!.getID()
tb!.setCallback(tb!.ON_TOOL_BUTTON_PUSH,"tb")
mb! = mdi!.addMenuButton(mdi!.getAvailableControlID(),0,0,50,50,"2",$4000$)
print mb!.getID()
mb!.setCallback(mb!.ON_BUTTON_PUSH,"mb")
lb$ = "cascade"+$0a$+"tile"+$0a$+"vertical"+$0a$+"horizontal"+$0a$
lb! = mdi!.addListButton(mdi!.getAvailableControlID(),0,0,100,200,lb$,$4000$)
print lb!.getID()
lb!.setCallback(tb!.ON_LIST_SELECT,"lb")
return
tb:
rem 'event! = sysgui!.getLastEvent()
rem 'tb! = event!.getControl()
rem 'tb = msgbox(tb!.getText(),0,event!.getEventName())
info! = bbjapi().getCurrentSessionInfo()
sessionid = info!.getSessionID()
groupid = info!.getGroupID()
infos! = bbjapi().getSessionInfos()
all! = new java.util.LinkedHashSet()
group! = new java.util.LinkedHashSet()
for i = 0 to infos!.size() - 1
info! = infos!.get(i)
id = info!.getSessionID()
group = info!.getGroupID()
all!.add(id)
if group = groupid then group!.add(id)
next i
info$ = "All Processes: "+str(all!)+$0a$+"Group Processes: "+str(group!)
title$ = "MDI Process: "+str(sessionid)+" Group ID: "+str(groupid)
i = msgbox(info$,0,title$)
return
mb:
event! = sysgui!.getLastEvent()
mb! = event!.getControl()
mb = msgbox(mb!.getText(),0,event!.getEventName())
return
lb:
event! = sysgui!.getLastEvent()
event$ = event!.getEventName()
item$ = event!.getSelectedItem()
index = event!.getSelectedIndex()
switch index
case 0; mdi!.cascade(); break
case 1; mdi!.tile(); break
case 2; mdi!.arrangeVertical(); break
case 3; mdi!.arrangeHorizontal(); break
swend
lb = msgbox(item$,0,event$)
return
getSize:
width = mdi!.getWidth()
height = mdi!.getHeight()
print "getSize",width,height
return
getDesktopSize:
width = mdi!.getDesktopWidth()
height = mdi!.getDesktopHeight()
print "getDesktopSize",width,height
return
getClientSize:
width = mdi!.getClientWidth()
height = mdi!.getClientHeight()
print "getClientSize",width,height
return
getClientLocation:
x = mdi!.getClientX()
y = mdi!.getClientY()
print "getClientLocation",x,y
return
rem ' client windows
client:
if bbjapi().isInMDI() then bbjapi().getMDI().registerMDIClosingCallback("veto")
print 'hide',
sysgui = unt
open (sysgui)"X0"
sysgui! = bbjapi().getSysGui()
title$ = cvs(argv(1),8)
print 'title'(title$)
if title$="f" then w = 100,h = 100 else w = 50,h = 50
window! = sysgui!.addWindow(rnd(250),rnd(250),w,h,title$,$00090083$,$00090083$)
rem 'window!.setMinimumSize(75,75)
window!.setTrack(1)
window!.setBackColor(sysgui!.makeColor(rnd(255),rnd(255),rnd(255)))
print title$," getBackColor ",window!.getBackColor()
window!.setCallback(window!.ON_CLOSE,"eoj")
window!.setCallback(window!.ON_RESIZE,"resize")
window!.setCallback(window!.ON_SCREEN_RESIZE,"screen")
window!.setCallback(window!.ON_WINDOW_MOVE,"move")
button! = window!.addMenuButton(1,0,0,25,25,title$,$$)
button!.setCallback(button!.ON_BUTTON_PUSH,"size")
checkbox! = window!.addCheckBox(2,25,0,25,25,title$,$0004$)
checkbox!.setCallback(checkbox!.ON_CHECK_ON,"resizable")
checkbox!.setCallback(checkbox!.ON_CHECK_OFF,"resizable")
status! = window!.addStatusBar(99,$$)
status!.setForeColor(sysgui!.makeColor(255,255,255))
status!.setBackColor(sysgui!.makeColor(0,0,255))
status!.setText("Status Bar")
if (title$="n") then
rem ' bbjapi().getMDI().getNorthBorder().setWindow(window!)
bbjapi().getMDI().getBorder(BBjMDIBorder.NORTH).setWindow(window!)
print "BBjMDIBorder.NORTH",BBjMDIBorder.NORTH,": ",window!.getTitle()
endif
if (title$="s") then
rem ' bbjapi().getMDI().getSouthBorder().setWindow(window!)
bbjapi().getMDI().getBorder(BBjMDIBorder.SOUTH).setWindow(window!)
print "BBjMDIBorder.SOUTH",BBjMDIBorder.SOUTH,": ",window!.getTitle()
endif
if (title$="w") then
rem ' bbjapi().getMDI().getWestBorder().setWindow(window!)
bbjapi().getMDI().getBorder(BBjMDIBorder.WEST).setWindow(window!)
print "BBjMDIBorder.WEST",BBjMDIBorder.WEST,": ",window!.getTitle()
endif
if (title$="e") then
rem ' bbjapi().getMDI().getEastBorder().setWindow(window!)
bbjapi().getMDI().getBorder(BBjMDIBorder.EAST).setWindow(window!)
print "BBjMDIBorder.EAST",BBjMDIBorder.EAST,": ",window!.getTitle()
endif
message$ = "Initial window size: width="+str(window!.getWidth())+",height="+str(window!.getHeight())
window!.setToolTipText(message$)
print message$
if title$="x" then escape
process_events
veto:
bbjapi().getMDI().approveMDIClose()
release
closeAll:
bbjapi().getMDI().closeAll(10)
eoj:
release
size:
message$ = "Window size: width="+str(window!.getWidth())+",height="+str(window!.getHeight())
window!.setToolTipText(message$)
print message$
return
resizable:
window!.setResizable(checkbox!.isSelected())
return
screen:
event! = sysgui!.getLastEvent()
win! = event!.getControl()
message$ = "ON_SCREEN_RESIZE: width="+str(event!.getWidth())+",height="+str(event!.getHeight())
win!.setToolTipText(message$)
print message$
return
resize:
event! = sysgui!.getLastEvent()
win! = event!.getControl()
message$ = "ON_RESIZE: width="+str(event!.getWidth())+",height="+str(event!.getHeight())+",adjusting="+Boolean.toString(event!.isAdjusting())
message$ = message$ + ". Window reports width="+str(win!.getWidth())+",height="+str(win!.getHeight())
win!.setToolTipText(message$)
print message$
return
move:
event! = sysgui!.getLastEvent()
win! = event!.getControl()
message$ = "ON_WINDOW_MOVE: x="+str(event!.getX())+",y="+str(event!.getY())
message$ = message$ + ". Window reports x="+str(win!.getX())+",y="+str(win!.getY())
win!.setToolTipText(message$)
print message$
return
|