$typecheck on
$include "qbase64.inc"

declare sub SelectSourceFile
declare sub encode
declare sub decode

dim b64 as qbase64


CREATE form as qform
width = 300
height = 200
center
caption = "QBase64 demo application"

    create FileLAB as qlabel
    top = 10
    left = 10
    caption = "Source file"
    end create

    Create FileBOX as qedit
    top = 30
    left = 10
    width = 210
    end create

    Create FileBUT as qcoolbtn
    top = 30
    left = 240
    height = 22
    width = 40
    caption = "..."
    onclick = SelectSourceFile
    end create
    
    create EncodeBUT as qbutton
    top = 70
    left = 10
    height = 40
    width = 130
    caption = "Encode"
    onclick = encode
    end create

    create DecodeBUT as qbutton
    top = 70
    left = 150
    height = 40
    width = 130
    caption = "Decode"
    onclick = decode
    end create


    create status as qgauge
    align = 2
    height = 20
    forecolor = 4227072
    end create




end create
form.showmodal


Sub SelectSourceFile
dim op as qopendialog
if op.execute then
FileBOX.text = op.filename
end if
end sub



sub QBase64_Callback
status.position = b64.src.position
end sub

sub encode
b64.GetSrcFile(FileBOX.text)
status.max = b64.src.size
b64.encode
status.position = 0
dim new as qfilestream
new.open (FileBOX.text + ".enc", 65535)
dim s as string
s = b64.outstr
new.writestr(s, len(s))
new.close
b64.src.close
b64.dest.close
showmessage "Done"
end sub

sub decode
b64.GetSrcFile(FileBOX.text)
status.max = b64.src.size
b64.decode
status.position = 0
dim new as qfilestream
new.open (FileBOX.text + ".dec", 65535)

dim s as string
s = b64.outstr
new.writestr(s, len(s))
new.close

b64.src.close
b64.dest.close
showmessage "Done"
end sub


