2009年2月27日金曜日

GTK+ OS X Framework で日本語を表示する方法

林檎生活100: GTK+ on Mac OS X 入門で GTK+ OS X Framework を紹介したんだよね.そのエントリのコメントに,デフォだと日本語表示できないのでこうやったらできますよっていうのを教えてもらった.その解決策は,GTK+ on OS Xで日本語を表示するにはにある.

それを参考にして,別の解決策を考えたのでそれも紹介しとこうと思う.

まず,なぜ日本語が表示できないかというと,デフォルトのフォントが Lucida Grande 12 になってるからみたい.

なので,デフォルトのフォントを変更するようにソースを書き換える.デフォルトのセッティングを取得して,デフォルトのフォントを「ヒラギノ 角ゴ Pro」にする.Mac OS X の UI で使われているフォントのサイズが13ptみたいなので,サイズはそれにあわせてみた.
#include <gtk/gtk.h>

int
main (int argc, char **argv)
{
GtkWidget *window;
GtkWidget *label;
GtkSettings *settings;

gtk_init (&argc, &argv);

settings = gtk_settings_get_default ();
gtk_settings_set_string_property (settings, "gtk-font-name", "Hiragino Kaku Gothic Pro 13", NULL);

window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
gtk_widget_show_all (window);

/* Add your widgets to the window here. */
label = gtk_label_new ("こんにちは,世界!");
gtk_container_add (GTK_CONTAINER (window), label);
gtk_widget_show (label);

/* Run the main loop. */
gtk_main ();

return 0;
}

これで,日本語が表示できるようになる.


ほかの環境のことを考えると,フォントがあるかチェックしたり,OS 判別したり,ロケールにあわせたりすべきなんだろうけど,その方法がよくわかんなかったので,とりあえずベタ書き.

0 件のコメント: