NAME=FontDialog
AUTHOR=
ITEM=function FontDialog$(font$)
DESCRIPTION=Function creates a font selection dialog and returns a string that can be used with the "FONT" command.
OUTSIDE CODE=dim FontNames$(10)  '<- provide fonts for FontDialog$()
OUTSIDE CODE=dim FontSizes$(10) '<- provide font sizes for FontDialog$()

function FontDialog$(font$)
    'initial font may be empty
    WindowWidth = 352
    WindowHeight = 270
    fontname$ = word$(font$, 1)
    fontsize$ = word$(font$, 2)

    i = 1
    while word$(fontname$, i, "_") <> ""
        s$ = word$(fontname$, i, "_")
        s$ = upper$(left$(s$, 1)); lower$(mid$(s$, 2))
        temp$ = temp$; s$; " "
        i = i+1
    wend

    combobox #fontdlg.cbFont, FontNames$(, [FontDlgDummy], 30, 41, 184, 100
    statictext #fontdlg, "Size:", 230, 16, 144, 20
    combobox #fontdlg.cbSize, FontSizes$(, [FontDlgDummy], 230, 41, 80, 100
    groupbox #fontdlg.groupbox6, "Effects:", 22, 86, 296, 90
    button #fontdlg.default, "&Ok", [FontDlgOK], UL, 38, 196, 122, 25
    button #fontdlg, "&Cancel", [FontDlgCancel], UL, 174, 196, 122, 25
    checkbox #fontdlg.italic, "Italic", [FontDlgDummy], [FontDlgDummy], 38, 111, 64, 20
    checkbox #fontdlg.bold, "Bold", [FontDlgDummy], [FontDlgDummy], 38, 136, 48, 20
    checkbox #fontdlg.underscore, "Underscore", [FontDlgDummy], [FontDlgDummy], 126, 111, 96, 20
    checkbox #fontdlg.strikeout, "Strikeout", [FontDlgDummy], [FontDlgDummy], 126, 136, 88, 20
    statictext #fontdlg.statictext13, "Font", 30, 16, 144, 20
    open "Font Dialog" for dialog_modal as #fontdlg
    print #fontdlg, "trapclose [FontDlgCancel]"
    print #fontdlg, "font MS_Sans_Serif 10"
    #fontdlg.cbFont, "!"; temp$
    #fontdlg.cbSize, "!"; fontsize$
    font$ = lower$(font$)
    if instr(font$, "italic") > 0 then #fontdlg.italic, "set"
    if instr(font$, "bold") > 0 then #fontdlg.bold, "set"
    if instr(font$, "underscore") > 0 then #fontdlg.underscore, "set"
    if instr(font$, "strikeout") > 0 then #fontdlg.strikeout, "set"
    wait

[FontDlgDummy]
    'do nothing, info is gathered when user pushes a button
    wait
[FontDlgOK]
    #fontdlg.cbFont, "contents? font$"
    #fontdlg.cbSize, "contents? size$"
    if font$ <> "" and size$ <> "" then
        temp$ = ""
        i = 1
        while word$(font$, i) <> ""
            temp$ = temp$; word$(font$, i); "_"
            i = i+1
        wend
        temp$ = left$(temp$, len(temp$)-1); " "; size$
        #fontdlg.italic, "value? result$"
        if result$ = "set" then temp$ = temp; " italic"
        #fontdlg.bold, "value? result$"
        if result$ = "set" then temp$ = temp$; " bold"
        #fontdlg.underscore, "value? result$"
        if result$ = "set" then temp$ = temp$; " underscore"
        #fontdlg.strikeout, "value? result$"
        if result$ = "set" then temp$ = temp$; " strikeout"
        FontDialog$ = temp$
    end if
[FontDlgCancel]
    close #fontdlg
end function
