FontView 2
Posted: Sat Sep 23, 2017 4:52 pm
My first version of FontView worked Ok, but the interface was not friendly. When I adjusted the sliders, my hand blocked the view of the changes happening beneath. Now the sliders are at the bottom, and it is easy to see the size and name changes. You still might wonder why I show a scrolling window of font names at the upper left. It looks like a list where you could scroll and select a name, but it isn't - yet. I'm sure that a list object will appear in an SPL update sometime soon. In the meantime, this window is just a search tool where you can scroll alphabetically to find the font you want, get its reference number, and then use the name slider to go to it. I notice that the slider sometimes skips over a name. This may be that it does not have enough resolution to get to every font number. I will look into this. The workaround is to get as close as you can to the font you want, then use PREV or NEXT to get to it.
***** NOTE ***** Font Name slider now updates its position correctly when PREV and NEXT buttons are used.
***** 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)
<-