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