以下に、GTK+スタイルの宣言を2つ挙げた例を示します。
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これは、何らかの操作が可能な状態にあるウィジェットの状態です。また、スクロールバーの溝についても同様で、bg[ACTIVE] = "red"
はスクロールバーの溝を赤色に設定します。アーム状態(押されているが、まだ離されていない)のボタンもこの状態になります。
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_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)のフォント名です。フォントを参照してください。名称の大文字・小文字は区別されません。
色の指定方法には、色名、RGBトリプレット、またはGTK形式のRGBトリプレットの3通りがあります。色名とRGBトリプレットの説明については、面の色を参照してください。色名はダブルクォートで囲みます(例:‘"red"’)。RGBトリプレットはダブルクォートなしで記述します(例:‘#ff0000’)。GTK形式のRGBトリプレットは{ r, g, b }という形式をとり、ここでr、g、bは、0–65535の範囲の整数、または0.0–1.0の範囲の浮動小数点数のいずれかとなります。