rem 'getFontChooser
rem 'Obtain the instance of the BBjAPI object
let myAPI! = BBjAPI()
rem 'Open the SysGui device
SYSGUI = UNT
OPEN (SYSGUI)"X0"
rem 'Obtain the instance of the BBjSysGui object
let mySysGui! = myAPI!.getSysGui()
rem 'Set addWindow param values
X = 100
Y = 100
WIDTH = 400
HEIGHT = 250
TITLE$="BBjFontChooser"
rem 'Create a window
myWindow! = mySysGui!.addWindow(X,Y,WIDTH,HEIGHT,TITLE$,$00010003$)
rem 'Add a font chooser on the window
myFontChooser! = myWindow!.addFontChooser(101,0,0,WIDTH,HEIGHT)
rem 'Register the CALLBACK routines
CALLBACK(ON_FONTCHOOSER_APPROVE,OK,mySysGui!.getContext(),myFontChooser!.getID())
CALLBACK(ON_FONTCHOOSER_CANCEL,CANCEL,mySysGui!.getContext(),myFontChooser!.getID())
CALLBACK(ON_RESIZE,RESIZE,mySysGui!.getContext())
CALLBACK(ON_CLOSE,EOJ,mySysGui!.getContext())
rem 'Process Events
process_events
RESIZE:
myFontChooser!.setSize(myWindow!.getWidth(),myWindow!.getHeight())
return
rem ' OK was pressed
OK:
TITLE$ = "Selected Font (OK)"
GOTO MESSAGE
rem ' OK was pressed
Cancel:
TITLE$ = "Selected Font (Cancel)"
GOTO MESSAGE
rem ' Print message and exit
MESSAGE:
gosub FontInfo
message$="<html><head> <!-- <DEFANGED_STYLE type = 'text/css'>p{font:"+html$+"} --> </DEFANGED_STYLE></head><body><p>"+info$+"</p></body></html>"
let X = MSGBOX(MESSAGE$,0,TITLE$)
release
FontInfo:
FontChooser! = mySysGui!.getLastEvent().getFontChooser()
Font! = FontChooser!.getSelectedFont()
name$ = Font!.getName()
style = Font!.getStyle()
size = Font!.getSize()
if (style = 0) then
style$="Plain"
html$ = str(size)+"px "+name$
else
style$=""
if (fnIsBitSet(style,Font!.FONT_BOLD)) then
style$ = style$+"Bold "
endif
if (fnIsBitSet(style,Font!.FONT_ITALIC)) then
style$ = style$+"Italic "
endif
style$ = cvs(style$,3)
html$ = cvs(style$,8)+" "+str(size)+"px "+name$
endif
info$ = name$+" "+style$+" "+str(size)
return
def fnIsBitSet(value,bit)
return sgn(dec(and(bin(value,4),bin(bit,4))))
fnend
rem ' Exit without selection
EOJ:
release
|