HALの不定期雑記 電子小物の話題など

自作ソフト/過去記事のまとめ Fossil Wrist PDA 関連リンク集
Softwares for the Fossil Wrist PDA (English page)

スポンサーサイト   [English]

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Fossil Wrist PDA 環境設定3 英字フォント   [English]

FontHack123 を使うことで,ある程度メニューなどのフォントをカスタマイズすることができました。

画面1:Fossil 標準のランチャー
20050201011337.png
画面2:FontHack123でフォントサイズをいじったもの
20050201011429.png

アプリによってはうまくフォントを設定できたものもありますし,そうでないのもあります。うまくいったというものも表示はあまり美しくないです。ただ私の目的は小さい字を大きく表示することだったので,その目的はある程度かなえられました。


以下の手順を行う前に設定なども含めたフルバックアップをとっておくことをお勧めします。FontHack123 で例えば記号用のフォントを通常フォントに割り当てたりすると,画面に何も表示されないといったことが起こりえます。この場合でもソフトリセットをかければ X-Master はリセット直後に無効化するか聞いてくるのでそこで Hack ソフトを無効化してやれば回復できますが,十分注意して行ってください。またこの手順・解説に従って何らかのトラブルに遭遇しても私は責任を持てません。自己責任でお願いします。また以下の文章はちょっとややこしい上に不正確な情報を含んでいる可能性があるので,その点ご承知ください。ややこしいのが嫌いな方は具体的手順のところだけご覧ください。


フォント表示の仕組み (推測)

標準の PalmOS の動作: アプリケーションは [FontID] を指定して OS に"文字列"を表示させる。たとえば "abc" の文字列を [Standard] のフォントで表示しろ,といった感じで。OS は [Standard] の指定を受けて実際のフォントのうち <10dotの標準フォント> で "abc" を画面に表示する。

FontHack123 の本来の働き: OS 内の [Standard] <-> <10dotの標準フォント> というマッピング関係を置き換える。たとえば <10dotのイタリック体フォント> に置き換えることによって,アプリケーションが [Standard] で表示しろ,といってきたものが <10dotの標準フォント> ではなく <10dotのイタリック体フォント> で画面に表示される。
FontHack123 については以下のページを参考にさせていただきました。
逆ローカライズFontHack123フリーソフトで日本語PalmOS(4.x)の英語化?

Fossil による拡張: 本来の PalmOS では FontID として [Standard] [Bold] [Large] [LargeBold] [HrStandard] … [HrLargeBold] などが定義されている(Hrはハイレゾ用)。Fossil はこれらに加えて [FossilStandard] … [FossilLargeBold] とでも言うべき FontID を追加定義している。またこれらに対応する実フォント <FossilStandardFont> … <FossilLargeBoldFont> 等を提供している。(詳しくは Fossil SDK 付属のドキュメント参照、WristPDA.h にて定義?)

カスタマイズ方法: たとえばランチャアプリのメニュー部分では [FossilStandard] が指定されているのでそのままでは <FossilStandardFont> が表示される。このマッピングを FontHack123 を用いて変更し,たとえば [FossilStandard] <-> <FossilLargeFont> という関係に変えてやれば,メニューは <FossilStandardFont> ではなく <FossilLargeFont> で表示される。

この方法の弱点: そもそも上記の仕組みによらずにアプリが独自にフォントを用いている場合は効果がない(たとえば電卓の文字など)。 はじめから最大文字で表示されているものはそれ以上大きくできない(自分でフォントセットを構築しなければならない)。 例えばメニューと本文で同じ FontID を用いているアプリの場合,メニューだけを大きなフォントに変更するといったことができず両方一緒に変わってしまう。


具体的手順

まずは DB MaN などを用いてフルバックアップをとっておくこと。

1) HackMaster 互換ソフト(私は X-Master を使いました)と FontHack123 をインストールする。FontHack123 用のフォントは必要ありません。

2) X-Master を立ち上げて FontHack123 を有効にし,設定画面に入る。
20050202012514.png
これらは FontHack123 の設定画面です。ここでは,[1]をアプリケーション選択メニュー,[2]をフォントID選択メニュー,[3]を実フォント選択メニューと呼ぶことにします。[2]で例えば“Standard - none”となっているのはフォントID[Standard] と実フォント<デフォルトフォント>がマッピングされていることを表しています。右側のスクリーンショットではフォントIDに名前がついておらず,16から23の数字になっていますが,この部分が Fossil による拡張で,FontHack123 はそれを知らないためこのように表示されているのだと思います。これらの数字は以下のように読み替えてやればいいと思います(SDK のドキュメント参照)
16 = FossilStdFont
17 = FossilBoldFont
18 = FossilLargeFont
19 = FossilSymbolFont
20 = FossilSymbol11Font
21 = FossilSymbol7Font
22 = FossilLedFont
23 = FossilLargeBoldFont

3) 目的のアプリを[1]から選び(ここではランチャー),
20050202012518.png

4) 変更すべきフォントID(ここでは17)を[2]から選択し,デフォルトでは "none" と表示されている実フォントを[3]で目的のもの(ここでは18)に変更する。
20050202012523.png

5) 必要に応じて 4 を繰り返す。(ここでは [16]<-><18> と [17]<-><18> のマッピング変更を行った)

6) 画面下の"savexit"をクリックし,警告画面を閉じて,X-Master から抜ける。
20050202012535.png

これで次に目的のアプリを立ち上げたときにはフォントが変更されているはずです。
20050202013643.png
左は設定直後のランチャー画面,右は設定後に X-Master にて FontHack123 を無効化した画面。チェックを外すだけですぐにデフォルトの状態に戻せます。

サンプル

Fossil 製のアプリ,HotSyncの例
20050202015227.png
左がデフォルト,真ん中が FontHack123 でカスタマイズしたもの,右はそのときの設定画面。Fossil 製のアプリはフォントIDの内[16]から[23]を使っているのでそれらを変更する。

非 Fossil 製のアプリ,DB MaN の例
20050202015231.png
非 Fossil アプリは [Standard] 等のフォントIDの設定を変更してやればうまくいく(例がある)。

画面によっては悪影響があることの例
20050202015235.png
フォントが大きくなったせいで,下のボタンがほとんど見えなくなってしまっている。


雑感

なんというかトリッキーなやり方ではありますが,一応英語部分のフォントを大きくしてやることができました。まあ元の箱の大きさが決まっているところに無理に大きなフォントを表示させているのであまり見栄えは良くないですが。しかし,老眼が始まっている身としては少しでも大きなフォントを使いたかったのでとりあえずはよしとします。一番いいのはこのデバイスをはじめから想定したアプリがたくさん出てくることだとは思いますが。

Wrist PDA におけるフォントの取り扱いについて私なりの推測を述べたわけですが,あまり信じないでください。とりあえず FontHack123 を用いてカスタマイズするときにはそう思っておいても,今の所矛盾は無さそうだ,というだけですから。

Kzou’s Diary さんのところで J-OS と CJKOS ではフォントの大きさが異なっている,という話をされていました。これはおそらく CJKOS と J-OS ではフォントサイズの取得方法が異なっていて,J-OS では FontID に基づいて日本語フォントの大きさを決めているが,CJKOS では FontID によらずに実際に表示されるフォントの大きさを取得して日本語を表示しているんじゃないかと想像しています。


以上は推測であり間違いがある可能性があります。誰か詳しい方,特に Plmware の開発をされている方、ツッコミがあればよろしくお願いします。

コメント

コメントの投稿 (Post Comment)

管理者にだけ表示を許可する (Only administrator can read this comment)

トラックバック

トラックバックURLはこちら
http://hal9.blog3.fc2.com/tb.php/6-8bb20fad
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。