以下は2つのGTK+スタイル宣言の例です:
pixmap_path "/usr/share/pixmaps:/usr/include/X11/pixmaps" style "default" { font_name = "helvetica 12" bg[NORMAL] = { 0.83, 0.80, 0.73 } bg[SELECTED] = { 0.0, 0.55, 0.55 } bg[INSENSITIVE] = { 0.77, 0.77, 0.66 } bg[ACTIVE] = { 0.0, 0.55, 0.55 } bg[PRELIGHT] = { 0.0, 0.55, 0.55 } fg[NORMAL] = "black" fg[SELECTED] = { 0.9, 0.9, 0.9 } fg[ACTIVE] = "black" fg[PRELIGHT] = { 0.9, 0.9, 0.9 } base[INSENSITIVE] = "#777766" text[INSENSITIVE] = { 0.60, 0.65, 0.57 } bg_pixmap[NORMAL] = "background.xpm" bg_pixmap[INSENSITIVE] = "background.xpm" bg_pixmap[ACTIVE] = "background.xpm" bg_pixmap[PRELIGHT] = "<none>" } style "ruler" = "default" { font_name = "helvetica 8" }
スタイル‘ruler’は‘default’を継承します。この方法により、既存のスタイルを元にすることができます。フォントとカラーの構文は以下に記述されています。
この例が示すように、ウィジェットの状態にもとづいてフォアグラウンドとバックグラウンドのカラーに複数の値を指定することが可能です。以下の状態が利用できます:
NORMAL
ウィジェットのフォルトの状態です。
ACTIVE
ウィジェットが何かを行なう準備ができた状態です。これはスクロールバーの溝(trough)にも適用できます。たとえばbg[ACTIVE] =
"red"
はスクロールバーの溝を赤にセットします。ボタンのarmed(ボタンが押されてまだ離されていない状態)も、この状態です。
PRELIGHT
マウスポインターがその上にきたとき、ウィジェットが操作可能な状態です — たとえばマウスがスクロールバーのハンドルの上やメニューアイテムの上にきたときの状態です。押されていないボタンの上にマウスがくると、そのボタンはこの状態になります。
SELECTED
ユーザーにより選択されたデータにたいする状態です。それは選択されたテキストやリストの選択されたアイテムの場合もあります。この状態はEmacsでは使用されません。
INSENSITIVE
ウィジェットが可視だが通常の方法では操作できない状態 —
たとえば押せないボタンや、無効なメニューアイテムなどです。無効なメニューアイテムを黄色で表示するには、fg[INSENSITIVE] =
"yellow"
を使用します。
以下をスタイル宣言に記述できます:
bg[state] = color
ウィジェットのバックグラウンドカラーを指定します。編集可能なテキストはbg
ではなくbase
を使用することに注意してください。
base[state] = color
編集可能なテキストのバックグラウンドカラーを指定します。Emacsでは、ファイルダイアログのテキストフィールドのバックグラウンドに、このカラーが使用されます。
bg_pixmap[state] = "pixmap"
(バックグラウンドカラーのかわりに)バックグラウンドイメージを指定します。pixmapはイメージファイル名です。GTK+はXPM、XBM、GIF、JPEG、PNGヲ含む、いくつかのイメージファイルを使用することができます。親ウィジェットと同じイメージをウィジェットに使用したい場合は、‘<parent>’を使用します。イメージを使わない場合は、‘<none>’を使用します。‘<none>’で、親スタイルから継承されたバックグラウンドイメージをキャンセルできます。
ファイル名は絶対ファイル名で指定できません。GTK+はpixmap_path
で指定されたディレクトリーのpixmapファイルを探します。pixmap_path
は、ダブルクォートされたファイルをコロンで区切ったリストで、gtkrcファイルのトップレベルで指定します(スタイル定義の中ではありません。上記の例を参照してください)。
pixmap_path "/usr/share/pixmaps:/usr/include/X11/pixmaps"
fg[state] = color
使用するウィジェットのフォアグラウンドカラーを指定します。これはメニューやボタンのテキストのカラー、スクロールバーの矢印のカラーです。編集可能なテキストにたいしては、text
を使用します。
text[state] = color
編集可能なテキストのカラーです。Emacsでは、ファイルダイアログのテキストフィールドに使用されるカラーです。
font_name = "font"
ウィジェット内のテキストのフォントを指定します。fontは、‘Sans Italic 10’のような、GTK(Pango)スタイルのフォント名です。フォントを参照してください。名前は大文字小文字を区別しません。
カラーを指定する3つの方法があります。それはカラーネーム、RGBトリプレット、GTKスタイルRGBトリプレットです。カラーネームとRGBトリプレットについては、フェイスのカラーを参照してください。カラーネームは‘"red"’のように、ダブルクォートで囲む必要があります。RGBトリプレットは‘#ff0000’のように、ダブルクォートで囲う必要がありません。GTKスタイルRGBトリプレットは{ r, g, b }
という形式をもち、r、g、bは、0から65535の整数か、0.0から1.0の浮動小数点数です。