Page 1 of 1

FontView 2

Posted: Sat Sep 23, 2017 4:52 pm
by rbytes
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.

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)

<-

Re: FontView 2

Posted: Sat Sep 23, 2017 6:00 pm
by Mr. Kibernetik
rbytes wrote:
Sat Sep 23, 2017 4:52 pm
I'm sure that a list object will appear in an SPL update sometime soon.
Yes, list object is planned.
rbytes wrote:
Sat Sep 23, 2017 4:52 pm
This may be that it does not have enough resolution to get to every font number.
Yes, desired slider resolution will be available in next version: max, min and step properties will allow to achieve any precision.
Currently slider can return only 100 numbers.

Re: FontView 2

Posted: Sat Sep 23, 2017 6:04 pm
by Mr. Kibernetik
My display cannot show all controls. I get only this:
image.PNG
image.PNG (37.66 KiB) Viewed 3661 times

Re: FontView 2

Posted: Sat Sep 23, 2017 6:42 pm
by Mr. Kibernetik
I am not sure it is important, but PREV/NEXT buttons do not affect FONT NAME slider.

Re: FontView 2

Posted: Sat Sep 23, 2017 6:52 pm
by rbytes
You are right, the slider is not updated by the PREVIOUS and NEXT buttons. I will fix this in the next version. Also I am going to set up all the variables so that they can be scaled by DPI. I hope that will fix the display issue on your device. I haven't yet tried Font View on my laptop. Maybe today. I will probably have a worse problem! :o

Re: FontView 2

Posted: Sat Sep 23, 2017 7:13 pm
by rbytes
The slider update issue has been fixed in the original post above.