「GNOMEフレームワーク」の版間の差分

削除された内容 追加された内容
パネルアプレットの解説を追加しました。
M リンクを修正しました。
431 行
時計アプレットはその名の通り[[w:時計]]を表示するアプレットです。このアプレットはgnome-panelの./applets/clock以下に含まれています。時計アプレットの仕事はおおよそGTK+を使って時計を作成することです。簡単な時計の作り方については例えば[[Xプログラミング]]を参照してください。
:[[画像:gnome_panel_clock_applet.png|200px]]
(赤線は筆者が導入した)基本的に時計アプレットの本体は時刻の数値をテキストとして書き込まれたGtkLabelです。GtkLabelは既にGtkFixedの中で用いたのでここでは説明しません。対応するGtkLabelは./applets/clock/clock.c内のcreate_clock_widget関数中で作られています。時刻の書き換えはclock_timeout_callback中で呼ばれるupdate_clockで行われます。この間数はgtk_label_set_textを用いてGtkLabel内の数値を変えた後、gtk_widget_queue_resize関数を呼びます。この関数はGtkWidget及びそれを継承したウィジェットに対してその変更を画面に反映するために呼ばれます。同種の関数にgtk_widget_queue_draw(_area)がありますが、gtk_widget_queue_resizeは変更によってウィジェットのサイズが変わる場合に呼ばれます[http://developer.gnome.org/doc/API/2.0/gtk/GtkWidget.html]。一方、gtk_widget_queue_drawはウィジェットのサイズを変えません。
 
追加の機能として、時計アプレットは24時間表示と12時間表示を切り替えたり、カレンダーを表示したりといくつかの機能があります。前者はGtkLabelのフォーマットを変更するだけで書き換えられますが、後者は多くの操作が必要となります。実際にはカレンダーはGtkCalendarとしてGTK+のウィジェットが与えられているため、時計アプレット内ではそれが用いられています。GtkCalendarについてはGTK+のソースを参照してください。
438 行
$LANG=en_US gnome-panel
:[[画像:gnome_panel_clock_applet_en_US.png]]
(赤線は筆者が導入した)
 
ロケールの変更による時刻のフォーマットの変更は、gettextライブラリによって行われます。gettextの詳細は[[OSS開発ツール 開発ライブラリ]]を参照してください。実際のpoディレクトリは./po/以下で与えられます。この中では各国語でのフォーマットが文字列の形で定義されています。
 
======wnckアプレット======