2009年10月25日

WebKitWebSettingsによる日本語フォントの変更

webkit/gtk+ベースのブラウザmidoriで思うようにフォントが変更できないという事もあったので
日本語フォントの変更についてはあまり期待していなかったのだが
若干の改善があった。結果midoriもconfigを手動で直すことで好みのフォントを表示できる様になった。
webkit_web_viewひとつのセッティングは

static WebKitWebSettings *settings;

という構造体が保持しており


webkit_web_view_set_settings (web_view,settings);


でWebKitWebViewに反映できる。
つまり複数のWebKitWebViewを持っているならば
アプリ全体ではなくてウィンドウごとに設定が可能ということだ。

設定は「g_object_set」命令を使い

g_object_set (G_OBJECT(settings), "enable-scripts", FALSE, NULL);


のように操作する。

動的に構造体を作るには

webkit_web_settings_new ();


と新規生成するか


webkit_web_settings_copy (WebKitWebSettings);


とコピーを作るかなのだが開放命令がないので
設定時にコピーされるか別途開放が必要なのかはチェックが必要になりそうだ。
settingでできることはスクリプトの可否など極めて少ないのだが
ブラウザを作るとフォントサイズが12ポイントで小さすぎるので
フォント関連はよく扱うことになりそうだ。

フォントというか日本語関連については
エンコードを決める

  • default-font-size

  • default-encoding

  • default-monospace-font-size



フォント選択関連の

  • default-font-family

  • serif-font-family

  • sans-serif-font-family

  • monospace-font-family

  • fantasy-font-family

  • cursive-font-family


がある。デフォルト値が基本的には入っているが12ポイントだと小さい。

webkitは日本語のエンコードは弱いので指定されていないサイトでは
デフォルト以外では確実に文字化けする傾向にある。

最新版ではわからないがフォント設定については穴があって
まず日本語フォントをうまく選択できない。
これはwebkit-gtk-1.0.1が英語しかうけつないためで
gtkのダイアログなどでの設定だとutf-8が代入するためうまく反映しない。
FreeBSDというかX.orgのフォントシステムは日本語フォントにも大抵英語名がついているので
そちらを代入すればちゃんと日本語フォントで表示する。
これについてはAPIはわからないが
少なくともコマンドラインで

fc-list

とすることで使えるフォント一覧が取得できるので
ファイル選択ダイアログを自前で作らないのであれば
取得した文字列をフィルターにgrepコマンドかpcreでも使えば取得でき

名称,名称:スタイル

なので「:」で分離後「,」で分解すればいいだろう。
現時点ではメモリ管理や文字処理などの方針が決まっていないので実装は保留にした。

またgtkアプリではフルセットでないフォントは補完されるが
webkit-gtkでは補完されないのでフルセットのフォントが必要になる。
もっともSerifやSansなどを指定すればOS側が合成した文字セットで表示してくれた。

最近のサイトはほとんどCSSでフォントを指定しているのでfirefoxみたいに
半強制的にフォントを選んで表示できない他「TAHOMA」を指定されると
OSデフォルトのSansになるようだが無指定なサイトや
sans-serif-fontが反映するサイトもそこそこ多いので
fontが簡単に変えられると結構楽しいかもしれない。
posted by Xo_ox at 19:00| Comment(0) | FreeBSDアプリ | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。