BBjFontChooser::setFontFamilies

Description

In BBj 22.10 and higher, this method sets the list of available font family names in the BBjFontChooser.

Syntax

Return Value

Method

void

setFontFamiles(BBjVector families)

Parameters

Variable

Description

families

A BBjVector containing a list of font family names (strings).

Return Value

None.

Example

rem ' BBjFontChooser::setFontFamilies

sysgui = unt
open (sysgui)"X0"
sysgui! = bbjapi().getSysGui()
width = 500, height = 400
title$ = "BBjFontChooser"
window! = sysgui!.addWindow(25,25,width+50,height+100,title$,$00090083$)
window!.setCallback(window!.ON_CLOSE,"eoj")
window!.setCallback(window!.ON_RESIZE,"resize")
fontchooser! = window!.addFontChooser(101,25,25,width,height)
fontchooser!.setCallback(fontchooser!.ON_FONTCHOOSER_CHANGE,"change")
fontchooser!.setCallback(fontchooser!.ON_FONTCHOOSER_APPROVE,"approve")
fontchooser!.setCallback(fontchooser!.ON_FONTCHOOSER_CANCEL,"cancel")

rem 'fontchooser!.setCallback(fontchooser!.ON_GAINED_FOCUS,"event")
rem 'fontchooser!.setCallback(fontchooser!.ON_LOST_FOCUS,"event")
rem 'fontchooser!.setCallback(fontchooser!.ON_MOUSE_ENTER,"event")
rem 'fontchooser!.setCallback(fontchooser!.ON_MOUSE_EXIT,"event")
button! = window!.addButton(1,width+25-120,height+50,120,25,"Random",$$)
button!.setCallback(button!.ON_BUTTON_PUSH,"random")
status! = window!.addStatusBar(99)
families! = fontchooser!.getFontFamilies()
i = msgbox(str(families!),0,"getFontFamilies")
sizes! = fontchooser!.getFontSizes()
i = msgbox(str(sizes!),0,"getFontSizes")
families! = new BBjVector()
restore families
while 1
    dread family$,err=*break
    if family$ = "" then break
    families!.add(family$)
wend
i = msgbox(str(families!),0,"setFontFamilies")
fontchooser!.setFontFamilies(families!)
sizes! = new BBjVector()
restore sizes
while 1
    dread size,err=*break
    if size = 0 then break
    sizes!.add(size)
wend
i = msgbox(str(sizes!),0,"setFontSizes")
fontchooser!.setFontSizes(sizes!)
gosub random

rem 'families! = fontchooser!.getFontFamilies()
rem 'i = msgbox(str(families!),0,"getFontFamilies")
rem 'sizes! = fontchooser!.getFontSizes()
rem 'i = msgbox(str(sizes!),0,"getFontSizes")
process_events

families:
    data "Arial", "Brush Script MT", "Courier New", "Garamond", "Georgia"
    data "Tahoma", "Times New Roman", "Trebuchet MS", "Verdana", ""

sizes:
    data 8, 9, 10, 11, 12, 14, 16, 18, 20, 22, 24, 0

eoj:
release

status:
    status!.setText(status$)
    print status$
return

resize:
    event! = sysgui!.getLastEvent()
    fontchooser!.setSize(event!.getWidth()-50,event!.getHeight()-80)
    button!.setLocation(event!.getWidth()-120-25,event!.getHeight()-30)
    status$ = event!.getEventName()+" width="+str(event!.getWidth())+",height="+str(event!.getHeight())
    gosub status
return

random:
    family$ = families!.get(rnd(families!.size()))
    size = sizes!.get(rnd(sizes!.size()))
    style = rnd(4)
    font! = sysgui!.makeFont(family$,size,style)
    status$ = "setSelectedFont "+str(font!)
    gosub status
    fontchooser!.setSelectedFont(font!)
return

change:
    event! = sysgui!.getLastEvent()
    event$ = event!.getEventName()
    status$ = event$+": "+str(event!.getFont())
    gosub status
return

approve:
    event! = sysgui!.getLastEvent()
    event$ = event!.getEventName()
    status$ = event$+": "+str(event!.getFont())
    gosub status
return

cancel:
    event! = sysgui!.getLastEvent()
    event$ = event!.getEventName()
    status$ = event$
    gosub status
return

event:
    event! = sysgui!.getLastEvent()
    event$ = event!.getEventName()
    status$ = event$
    gosub status
return

See Also

BBjAPI

BBjSysGui

BBjWindow

BBjFont

BBjFontChooser

See the BBj Object Diagram for an illustration of the relationship between BBj Objects.