***** NOTE ***** Font Name slider now updates its position correctly when PREV and NEXT buttons are used.
Code: Select all
''
FontView 2 by rbytes
September 2017
View all of the fonts on your device
at any size you wish.
''
' hide the control menu
'#.scrview(#.normal)
x,y = #.scrsize()
z = 46
q = 0
base = 0
#.scrclear(.8,.8,.8)
#.drawcolor(0,0,1)
#.fillcolor(.8,.8,.8)
p = #.array(300)
e = "The Quick Brown Fox Jumps Over The Lazy Dog"
l = #.fontlist()
n = #.size(l,1)
'#.output(n)
#.drawsize(2)
#.drawrect(20,20,360,366)
t = #.textbox
> g, 1..n
  d += g+": "+ l[g] + #.lf
<
t.width = 360
t.height = 346
t.text = d
t.x = 20
t.y = 20
t.multi = 1
#.show(t)
' create button template
h = #.button
h.height = 50
h.width = 100
h.y = 70
' create buttons from template
f,j,k = h
f.x = 600
j.x = 750
k.x = 900
f.text = "S T O P"
j.text = "P R E V"
k.text = "N E X T"
#.show(f,j,k)
' create sliders
sh,sv = #.slider  ' font name slider and size slider
sh.x = 350
sh.y = 710
sh.size = 600
sv.x = 350
sv.y = 760
sv.value = 18
sv.size = 600
#.show(sh,sv)
#.drawtext(200,695,"FONT NAME")
#.drawtext(200,745,"FONT SIZE")
' show first font in list
#.drawrect(450,265,1200,365)
#.fontname(l[1])
#.fontsize(46)
#.drawtext(460,275,l[1])
#.drawtext(20,400+base,e)
'#.drawtext(20,420,e)
' show font reference number and point size
#.drawrect(450,205,1200,265)
#.fontsize(35)
#.fontname(#.default)
#.drawline(825,205,825,265)
#.drawtext(460,205,"Font Ref. #:")
#.drawtext(835,205,"Font Size:")
#.drawtext(685,205,q+1)
#.drawtext(1050,205,z)
' main program loop
>
  ? #.act(sh)     ' font name slider
    q = (sh.value*(n-1))/100 
    print <->
  .
  ? #.act(sv)     ' size slider
    z = sv.value*2 + 10
    print <->
    ''
    #.fillrect(0,400,x,y-140)
    #.fontsize(z)
    e = "The Quick Brown Fox Jumps Over The Lazy Dog"
    #.drawtext(20,400,e)
    #.fontsize(35)
    #.fillrect(1010,210,1198,260)
    #.drawtext(1050,205,z)
    ''
  .
  ? #.act(f)      ' stop button
    #.end()
  .
  ? #.act(j)      ' prev button
    ? q > 0
      q -= 1
      sh.value=(q*100)/(n-1)
      print <->
    .
  .
 
  ? #.act(k)      ' next button
    ? q < n -1
      q += 1
      sh.value=(q*100)/(n-1)
      print <->
    .
  .
<
:print ' draw font subroutine
    #.fillrect(452,267,1198,363)
    #.fontsize(46)
    #.fontname(l[q+1])
    ? l[q+1] = "Gabriola" & z > 120
        base=-90
    ! 
        base=0
    .
    #.drawtext(460,275,l[q+1])
    #.fillrect(0,390,x,y-120)
    #.fontsize(z)
    #.drawtext(20,400+base,e)
    #.fillrect(670,210,820,260)
    #.fillrect(1010,210,1198,260)
    #.fontsize(35)
    #.fontname(#.default)
    #.drawtext(685,205,#.int(q+1))
    #.drawtext(1050,205,z)
<-




