[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

10.3 Frame Part Definitions

各フレームパーツは、各セルの左の項目が属性を定義し、右の要素がその属性に 与える値を定義するコンスセルのリストであるような、関連リスト(か、または 連想リスト)として定義されます。そう例えば連想リスト((foo . 1) (bar . 2))foo に値を 1bar に値 2 をとい うように二つの属性を定義します。See section `Association Lists' in The Librep Manual.

属性は次のように定義できます:

(class . class)
パーツのフレームパーツクラスを指定します。

(background . data)
(background . (normal focused highlighted clicked))
パーツの背景を指定します。色か画像か、もしくは色の名前の文字列です。もし 括弧内の右の項目が一つならばパーツの状態すべてのために使われ、リストなら ば四つの要素は特定の状態のための背景を定義します。

もし画像が使われていると、tiled プロパティが設定されていなければ 画像はフレームパーツの大きさまでサイズ調整され、設定されていればフレーム パーツに渡ってタイル状にしきつめられます。

(foreground . data)
(foreground . (normal focused highlighted clicked))
すべての状態かあるいは個々の状態についてフレームパーツに対する画像か前景 色を指定します。

フレームパーツの前景色を定義するのに使われるときには background 属性とは違って画像はサイズ調整されません。

(font . font)
(font . (normal focused highlighted clicked))
パーツのフォントを指定します。

(text . value)
フレームパーツの前景に描く文字列を指定します( foreground プロパティ が画像でないとき)。文字列か、パーツが更新される度に呼ばれ描画する文字列 を返す関数です。

(x-justify . value)
パーツの前景の内容(すなわち、テキストか前景画像)の水平位置を定義します。 シンボル leftrightcenter あるいは数字の内のいず れかが可能です。もし数字で、正なら左端からのピクセル数値を、負なら右端か らのピクセル数値を示します。

(y-justify . value)
x-justify に似ていますが代りに可能なシンボルは topbottom あるいは center です。

(renderer . function)
この属性は background 属性の代りに使うことができます。パーツの描 画が必要なときに function が背景を描画する画像とパーツの現在の状態、 シンボル focusedhighlightedclicked あるいは nil (通常状態について)、とともに呼ばれます。

(render-scale . value)
この属性は renderer プロパティとともに使われる画像の大きさを整数 value の率で小さくします。

(left-edge . value)
クライアントウィンドウの左端に対するパーツの左端の位置を定義します。

(right-edge . value)
クライアントウィンドウの右端に対するパーツの右端の位置を定義します。

(top-edge . value)
クライアントウィンドウの上端に対するパーツの上端の位置を定義します。

(bottom-edge . value)
クライアントウィンドウの下端に対するパーツの下端の位置を定義します。

(width . value)
フレームパーツの幅を定義します。

(height . value)
フレームパーツの高さを定義します。

(keymap . value)
このフレームパーツで起るイベントを評価する際に使うキーマップを定義します。

(cursor . cursor)
このパーツ内にマウスがある際に表示するカーソルを定義します。カーソルオブ ジェクトか、必要なカーソルオブジェクトを生成するためのget-cursor への引数が可能です。

(removable . value)
指定され value が nil でないとき、このフレームパーツはすべてのフレー ムの外見に外を与えることなしに取り除くことができます。これはときどきクラ イアントウィンドウの要請で取り除かれるボタンクラスに対してついてだけ重要 となります。

(below-client . value)
指定され value が nil でないとき、このフレームパーツはクライアント ウィンドウの下に表示されます。フレームパーツについてデフォルトの動作では クライアントウィンドウの上に表示されます。

backgroundforegroundrender-scalefontleft-edgeright-edgetop-edgebottom-edgewidth そして height 属性の値には関数を指定することもできま す。フレームが生成される際には各場合に応じた関数が呼ばれ(ウィンドウオブ ジェクトの引数とともに)、返された値は属性の実際の値として使われます。

パーツの位置を指定するのに使われる座標系はウィンドウの端に相対して定義さ れます。正の値はウィンドウの端から中央まで数えたもので、負の値はウィンド ウの中央から端の外側へ数えたものです。

クライアントウィンドウのすぐ上の 20 ピクセルの位置に単色の黒のタイトルバー があるような、次の例を考えてみましょう:

 
`((background . "black")
  (foreground . "white")
  (text . ,window-name)
  (x-justify . 30)
  (y-justify . center)
  (left-edge . 0)
  (right-edge . 0)
  (top-edge . -20)
  (height . 20)
  (class . title))

バッククゥオートオペレータはたいていは単に定数である定義について使われ、 カンマオペレータは window-name(ウィンドウの名前を与える関数)変数 の値を定義に与えます; see section `Backquoting' in The Librep Manual).

この関数は前景に描画される文字列を動的に指定するのに使われます。ウィンド ウマネージャはウィンドウのいかなる X プロパティの変化についてもウィンド ウのすべてのフレームパーツの前景を自動的に再描画します。

そして特定のフレームパーツクラスは、フレーム付のウィンドウを与えると定義 (継承されか、オーバライドされた定義を含みます)の完全なリストから個々の属 性の値を取り出すことが可能です。

Function: frame-part-get window class attr
window の現在のフレーム内のクラス class のフレームパーツに対 する属性 attr の値を返します。

もしそのような属性が存在しなければ nil を返します。もしクラス class のフレームパーツが二つ以上あれば、最初にみつかったパーツから 値が取り出されます。



This document was generated by SATO Satoru on October, 28 2000 using texi2html