永井@知能.九工大です.

TkFont クラスですが,どうやらある程度動き始めたようなので,
unofficial な patch を最後に添えます.
ruby-1.1b9_30 からの差分です.
完全にテストできてはいないため,バグが残っている可能性が高いと思います.
テストしてみてバグ出しいただけると助かります.

一応,Tk8.1 対応の試みはしてみていますが,
まだ手元に Tk8.1 環境を用意していないので,
「こんな感じになるのかな?」というレベルになっています.
正しくはどうすべきなのか,教えていただけませんか?(^_^;

また,widget demo の移植ですが,
置いてあったものを現状の新しいものに置き換えました.
こちらもテストしていただけると嬉しく思います.
ただし,これを動かすためには,このメールに添えたパッチを
あてておく必要がありますので,ご注意ください.

-- 
                                         永井 秀利 (九工大 知能情報)
                                             nagai / ai.kyutech.ac.jp
begin 666 tkdiff_from_1.1b9_30.gz
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
:^%>:T)J]LD[WDOI?>?N#?_\'BV+^PKB,   F
 
end