1#!/usr/bin/tclsh
2
3# script to generate fonwidth tables in shapes.c
4
5package require Gdtclft
6
7set gd [gd create 100 100]
8set white [gd color new $gd 255 255 255]
9set black [gd color new $gd 0 0 0]
10set fonts {times cour arial}
11set size 96
12set angle 0
13set x 20
14set y 20
15
16foreach font $fonts {
17#  set bb [gd text $gd $black $font $size $angle $x $y MM]
18#  set basewidth [expr [lindex $bb 2] - [lindex $bb 0]]
19set basewidth 0
20  puts "static double [set font]FontWidth\[\] = \{"
21  for {set i 0} {$i<32} {incr i} {
22    set sizes {}
23    set chars {}
24    for {set j 0} {$j < 8} {incr j} {
25      if {$i<4 || ($i>=16 && $i<20) || ($i==15 && $j==7)} {
26        lappend sizes 0.0000
27      } {
28        set char [format %c [expr $j+$i*8]]
29#        set bb [gd text $gd $black $font $size $angle $x $y M[set char]M]
30        set bb [gd text $gd $black $font $size $angle $x $y $char]
31        lappend sizes [format %.4f [expr ([lindex $bb 2] - [lindex $bb 0] - $basewidth)/double($size)]]
32        lappend chars $char
33      }
34    }
35    puts "  [join $sizes {, }], /* [join $chars {}] */"
36  }
37  puts "\};"
38}
39