日本語フォントの変更についてはあまり期待していなかったのだが
若干の改善があった。結果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が簡単に変えられると結構楽しいかもしれない。