table of contents
other versions
- wheezy 4.1.0.20011224-6
XAW(3) | Library Functions Manual | XAW(3) |
名前¶
XAW - X Athena ウィジェット
説明¶
Xaw は Xt イントリンシクスをベースとしたウィジェットセットである。 このオンラインマニュアルは XFree86 による Xaw ライブラリに対する追加・ 修正を説明する。共通インタフェースについてもいくらか説明する。アクション¶
全ての Xaw ウィジェットは追加のトランスレーション call-proc, declare, get-values, set-values を持つようになった。 これらのアクションの書式は以下の通りである:- call-proc
- このアクションを使うと(最初の引き数にした)ブール式の評価を、
アクション手続きを呼び出す前に行える。
そして、この式が真となった場合だけ手続きが手続きが呼ばれる。
実行例:
- declare
- このアクションは、get-values
のように、新しい変数を生成したり
変数の値を変えるために使われる。
実行例:
- get-values
- このアクションを使うとリソース値を変数に読み込むことができる。
実行例:
- set-values
- このアクションを使うとウィジェットのリソースを設定できる。
実行例:
<Map>: get-values(1, $fg, foreground, $bg, background)\n\ <Btn1Down>: set-values(1, foreground, yellow, background, gray30)\n\ <Btn1Up>: set-values(1, foreground, $fg, background, $bg)
ディスプレイリスト¶
全ての Xaw ウィジェットは追加のリソース displayList を持つ ようになった。 このリソースを使うと、リソース文字列に埋め込んだコマンドを使って ウィジェットの装飾を描画できる。 displayList リソースの書式は以下の通りである:+0,+0 top, left -0,-0 bottom, right -+10,-+10 bottom+10, right+10 +0,1/2 left, vertical-center
- arc-mode mode
- 円弧のモードを設定する。指定可能なパラメータは
"pieslice" (円弧を ArcPieSlice
に設定) および "chord"
(ArcChord に設定)である。
指定例:
- bg color-spec
-
- background color-spec
- 背景色を設定する。引き数は有効な色指定でなければならない。
指定例:
- cap-style style
- キャップ(線分の端の形状を決めるグラフィックス属性)のスタイルを指定する。
指定可能なパラメータは
"notlast" (スタイルを CapNotLast
に設定), "butt" (CapBut
に設定), "round" (CapRound 設定),
"projecting" (CapProjecting
に設定)である。
指定例:
- clip-mask pixmap-spec
- クリップマスクに使うピックスマップを設定する。
ピックスマップをパラメータとして必要とする。
ピックスマップの指定方法はこのオンラインマニュアルの
「
ピックスマップ」セクションで説明されている。
指定例:
- clip-origin x,y
- クリップの原点の
x, y 座標を設定する。2
つの引き数(x, y
座標)を必要と する。
指定例:
- clip-rects x1,y1,x2,y2 [...,xn,yn]
-
- clip-rectangles x1,y1,x2,y2 [...,xn,yn]
- マスクでクリップを行う矩形のリストを設定する。
引き数の数は 4
の倍数でなければならない。引き数は座標である。
矩形の幅と高さはパーザが計算する。
指定例:
- coord-mode mode
- fill-polygon, draw-lines, draw-points
で使う
座標系のモードを変更する。
指定可能なパラメータは
"modeorigin"
(座標系のモードを
CoordModeOrigin に設定), "previous"
(CoordModePrevious に設定)
である。 指定例:
- copy-area {pixmap-spec|.},dstx,dsty[,x2,y2,srcx,srcy]
- XCopyArea を呼び出す。
文字「
.」はウィンドウの内容をコピーすることを示す。pixmap-spec
についてはこのオンラインマニュアルの「
ピックスマップ」の
セクションで定義されている。
X2 と y2
はコピー領域の端の座標であり、幅・高さではない。
もし定義されていないければパーザが計算する。
src_x と src_y
のデフォルト値は 0
である。 指定例:
- copy-plane {pixmap-spec|.},dstx,dsty[,x2,y2,srcx,srcy,plane]
- XCopyPlane を呼び出す。
文字「
.」はウィンドウの内容をコピーすることを示す。pixmap-spec
はこのオンラインマニュアルの「
ピックスマップ」の
セクションで定義されている。
X2 と y2
はコピー領域の端の座標であり、幅・高さではない。
もし定義されていなければパーザが計算する。
Src_x と src_y
のデフォルト値は 0
である。 指定例:
- dashes i1[...,in]
- 線の描画の際に使う点線の属性を設定する。
127
個までの引き数を指定できる。
指定例:
- draw-arc x1,y1,x2,y2[,start-angle,end-angle]
- 円弧を描画する。
最初の 4
つの引き数は円弧を包む矩形である。
残りの 2
つの引き数は(指定されていれば)描画の開始と終了の角度である。
角度の単位は度数である。
指定例:
- draw-rect x1,y1,x2,y2
-
- draw-rectangle x1,y1,x2,y2
- 矩形を描画する。
4
つの引き数が必要であり、これらは開始と終了の座標である。
指定例:
- draw-string x,y,"string"
- テキスト文字列を描画する。
3 つの引き数(x, y
座標と文字列)を必要とする。
空白文字を含む文字列は「
"」文字でクォートできる。「\」
文字も使えるが、この文字は
2
回エスケープしなければならない。
指定例:
- exposures boolean
- GC
にグラフィックスの露出に関する属性(露出時にイベントを生成するかどう
か)を設定する。
指定可能なパラメータは整数または
"true", "false", "on", "off"
のいずれ かである。
指定例:
- fill-arc x1,y1,x2,y2[,start-angle,end-angle]
- draw-arc
と似ているが、円弧の内容を現在の前景色で塗りつぶす点が
異なる。 指定例:
- fill-poly x1,y1 [...,xn,yn]
-
- fill-polygon x1,y1 [...,xn,yn]
- draw-lines
と似ているが、閉じた多角形を塗りつぶす点が異なる。
開始点と終了点の座標が異なる場合はこれらは接続される。
指定例:
- fill-rect x1,y1,x2,y2
-
- fill-rectangle x1,y1,x2,y2
- draw-rect
と似ているが、矩形領域を現在の前景色で塗りつぶす点が異
なる。 指定例:
- fill-rule rule
- 塗りつぶしの規則を設定する。
指定できるパラメータは
"evenodd"
(塗りつぶし規則を
EvenOddRule に設定),
"winding" (WindingRule に設定) である。 指定例:
- fill-style style
- 塗りつぶしのスタイルを設定する。
指定可能なパラメータは
"solid"
(塗りつぶしのスタイルを
FillSolid に設定), "tiled" (FillTiled
に設定), "stippled" (FillStippled
に設定), "opaquestippled" (FillOpaqueStippled
に設定) である。
指定例:
- font font-spec
- テキスト関数で使うフォントを設定する。
指定例:
- fg color-spec
-
- foreground color-spec
- background
と同様だが、現在の前景色を設定する点が異なる。
指定例:
- mask
- このコマンドは、本当に再描画する必要がある領域だけを描画したい場合に 便利である。引き数は取らない。
- function function-spec
- 特定の GC
関数を設定する。
指定できるパラメータは以下の通りである(括弧内は設定される
GC 関数): "set"(GXset), "clear"(GXclear),
"and"(GXand), "andreverse"(GXandReverse),
"copy"(GXcopy), "andinverted"(GXandInverted),
"noop"(GXnoop), "xor"(GXxor), "or"(GXor),
"nor"(GXnor), "equiv"(GXequiv),
"invert"(GXinvert), "orreverse"(GXorReverse),
"copyinverted"(GXcopyInverted), "nand"(GXnand)。
指定例:
- join-style style
- 折れ線のスタイルを設定する。
指定できるパラメータは
"miter"(折れ線のスタイルを
JoinMiter に設定), "round"(JoinRound
に設定), "bevel"(JoinBevel
に設定)である。
指定例:
- image {pixmap-spec},xs,ys,[xe,ye]
- この関数は複雑な装飾をウィジェット内で素早く構成する方法として実装され
ている。 pixmap-spec
はこのオンラインマニュアルの
「
ピックスマップ」セクションで定義されている。
xs, ys
はピックスマップのコピーを開始する座標である。
xe, ye
は省略してもかまわない(デフォルト値は
前者が xs + pixmap.width, 後者が ys +
pixmap.height である)。
ピックスマップがマスクを持つ場合は、コピーは適宜マスク処理される。
指定例:
- line x1,y1,x2,y2
-
- draw-line x1,y1,x2,y2
- 現在の前景色で線を描画する。
引き数を 4
つ必要とする。
指定例:
- line-width integer
- 線の描画幅を変更できる。
指定例:
- line-style style
- 線のスタイルを設定する。
指定可能なパラメータは
"solid"(スタイルを LineSolid
に設定), "onoffdash"(LineOnOffDash
に設定), "doubledash"(LineDoubleDash
に設定) である。
指定例:
- lines x1,y1,x2,y2 [...,xn,yn]
-
- draw-lines x1,y1,x2,y2 [...,xn,yn]
- 複数個の線を描画する。
任意の数の引き数を指定できる。
指定例:
- paint-string x,y,"string"
- draw-string
と同じであるが、背景色も使用する。
指定例:
- point x,y
-
- draw-point x,y
- 点を描画する。
引き数が 2
つ必要である。
指定例:
- plane-mask integer
- プレーンマスクを設定できる。
整数値のパラメータを取る。
指定例:
- points x1,y1 [...,xn,yn]
-
- draw-points x1,y1 [...,xn,yn]
- 複数個の点を指定された座標に描画する。
指定例:
- segments x1,y1,x2,y2 [...,xn,yn]
-
- draw-segments x1,y1,x2,y2 [...,xn,yn]
- 複数個の線分を描画する。
引き数の数は 4
の倍数でなければならない。
指定例:
- shape-mode mode
- fill-polygon で使う shape
モードを設定できる。
指定可能なパラメータは
"complex"(モードを Complex
に設定), "convex"(Convex
に設定), "nonconvex"(Nonconvex
に設定)である。
指定例:
- stipple pixmap-spec
- スティプル処理に使うピックスマップを設定する。
ピックスマップを引き数として要求する。指定方法はこのオンラインマニュアルの
「
ピックスマップ」セクションで説明されている。
指定例:
- subwindow-mode mode
- GC
のサブウィンドウモードを設定する。
指定可能なパラメータは
"includeinferiors"(モードを
IncludeInferiors に設定),
"clipbychildren"(ClipByChildren
に設定)である。
指定例:
- tile pixmap-spec
- タイル処理用のピックスマップを指定する。
ピックスマップを引き数として要求する。指定方法はこのオンラインマニュアルの
「
ピックスマップ」セクションで説明されている。
指定例:
- ts-origin x,y
- タイルとスティプルの原点の
x, y 座標を設定する。 2
つの引き数(x, y
座標)を必要とする。
指定例:
- umask
- GC
のマスク処理を無効にする(
mask
コマンドで設定されている場合)。
引き数は不要である。
foreground gray30;\ draw-lines +1,-1,-1,-1,-1,+1;\ foreground gray85;\ draw-lines -1,+0,+0,+0,+0,-1
ピックスマップ¶
String 型から Pixmap 型へのコンバータが Xaw に追加されている。 このコンバータは拡張されることが想定されており、複数の画像フォーマット のロードに対応できるように抽象化されている。 このコンバータは URL に似たフォーマットが使われている。 書式は以下の通りである:Text ウィジェット¶
このバージョンの Xaw ライブラリへの変更の大部分は TextWidget, TextSrcObject, TextSinkObject とその関連ファイルに対して行 われた。Text ウィジェットの動作は Emacs (テキストエディタ)に基本として いる。今回のリリースで Emacs との互換性が向上した。 以下のアクションが新しく追加されている:- indent
- このアクションを使うとテキストブロックのインデントが行える。 この機能はデフォルトでは有効になっていない。 このアクションを呼び出すトランスレーションが xedit エディタに追 加されている(キー割り当ては Control<Key>X, <Key>Tab)。
- keyboard-reset
- キーボートの状態をリセットする。 繰り返し回数を 1 に戻し、undo 機能が有効であれば undo と redo をトグル させる。キー割り当てのデフォルト値は Control<Key>G である。
- kill-ring-yank
- このバージョンの Xaw では、どのテキスト領域で kill されたテキストも メモリに保持され、同じアプリケーション内ではテキスト領域同士での カット・アンド・ペーストが行える。 このアクションのデフォルトのキー割り当ては Meta<Key>Y である。
- numeric
- このアクションをここで説明しているのは文書化のためだけである。 このアクションは 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, または - の いずれかが入力された時にデフォルトで呼び出され、テキスト操作の 繰り返し回数を指定できる。
- set-keyboard-focus
- このアクションは通常 <Btn1Down> イベントに割り当てられている。 トップレベルウィジェットへのフォーカスをテキスト領域に設定する。 デフォルトでは無効にされている。
- toggle-overwrite
- このアクションは上書きモードをトグルさせる。 上書きモードでは、テキスト領域に挿入された文字は既にあるテキストに上書 きされる。通常は <Key>Insert キーに割り当てられている。
- undo
- デフォルトでは
Control<Key>_
キーに割り当てられており、undo
機能 を呼び出す。undo
はデフォルトでは無効にされている。
この機能は textSrcObject の
enableUndo
を設定すると有効になる。
- justify (Class Justify)
- テキストの左右・中央揃えを設定する。 left, right, center, full のいずれかが指定できる。 autoFill リソースが設定されており、かつ leftColumn リソースと rightColumn リソースが正しく設定され ている時だけ有効となる。
- leftColumn (Class Column)
- テキストを区切る際の左カラムを指定する。 英数文字で始まるテキスト行は自動的にこのカラムから始まる。
- positionCallback (Class Callback)
- カーソルが移動した時またはファイルサイズが変わった時に毎回呼び出される
コールバックをインストールできるようにする。このコールバックは
以下のデータへのポインタを引き数として呼び出される。
typedef struct { int line_number; int column_number; XawTextPosition insert_position; XawTextPosition last_position; Boolean overwrite_mode; } XawTextPositionInfo;
このコールバックは、プログラマが Xaw ウィジェットセットを使って テキストエディタを書くのを助けるためのものである。
- rightColumn (Class Column)
- テキストを区切る際の右カラムを指定する。
英数文字で始まる行はこのカラムで自動的に終わりとなる。
Text Source オブジェクト¶
textSrcObject は、内容の複数ウィンドウへの表示と、undo 情報の格納がで きるように修正されている。 textSrcObject の新しいリソースは以下の通りである:- callback (Class Callback)
- 前のバージョンの Xaw はこのクラスをサブクラスに持っていた。 この変更が行われたのは、undo 機能が有効になっているときに テキストの状態をコールバック関数に伝えられるようにするためである。
- enableUndo (Class Undo)
- Boolean 型のリソース値であり、undo 機能を有効/無効にする。 デフォルトとは False である。
- sourceChanged (Class Changed)
- callback
リソースと同じく、このリソースは前のバージョンではサブクラス
内にあった。現在のバージョンでは、undo
機能が有効になっているときに
テキストの変更/未変更の状態を制御するのは
textSrcObject である。
Text Sink オブジェクト¶
textSinkObject のサブクラスである asciiSinkObject と multiSinkObject は新しいカーソル形状に対応するため少し変更された。このカーソル形状は Text ウィジェットの入力フォーカスを示し、色を設定することもできる。 新しいリソースは以下のものである:- cursorColor (Class Color)
- テキストに対してカーソルの色を設定できる。この色は、選択されたテキスト
を描画するためにも使われる。
Simple Menu ウィジェット¶
メニュー項目を配置するための simpleMenuWidget のアルゴリズムは、 単独カラムでは画面に収まらない時に複数カラムが有効となるように変更された。 また、このウィジェットはサブメニューが有効となるように修正された。sme BSB オブジェクト¶
新しいリソースが smeBSBObject に追加された。これはサブメニューを割り当 てられるようにするものである。新しいリソースは以下の通りである:- menuName (Class MenuName)
- メニュー項目の上にポインタがある際にポップアップするポップアップ
ウィジェットの名前、または
NULL を指定する。
指定されたメニューは、smeBSBObject
のポップアップ時の親の子でなければな
らない点に注意すること。
制限¶
Xaw の開発は実のところ活発である。 Xaw の将来のリリースと完全に互換性を保っておきたいプログラムでは、 公開されているインタフェースだけを使うべきである。 ウィジェットのサブクラス化は悪くない考えであり、プログラムの作業を助け ることも多いが、現在の Xaw の開発状況では、プライベートデータ構造体にアクセスするようなプログラム は将来のリリースで問題を起こすかもしれない。 こういった問題を避け、少なくともソースおよびバイナリ互換性を将来のリリー スでも保証するための努力は行われている。著者¶
XFree86 による Xaw への追加と変更は Cae'sar Pereira de Andrade が行った。Version 4.1.0 | XFree86 |