XSetWindowColormap(3) ウィンドウの属性を変更する

Other Alias

XChangeWindowAttributes, XSetWindowBackground, XSetWindowBackgroundPixmap, XSetWindowBorder, XSetWindowBorderPixmap

書式

XChangeWindowAttributes(display, w, valuemask, attributes)

      Display *display;

      Window w;

      unsigned long valuemask;

      XSetWindowAttributes *attributes;

XSetWindowBackground(display, w, background_pixel)

      Display *display;

      Window w;

      unsigned long background_pixel;

XSetWindowBackgroundPixmap(display, w, background_pixmap)

      Display *display;

      Window w;

      Pixmap background_pixmap;

XSetWindowBorder(display, w, border_pixel)

      Display *display;

      Window w;

      unsigned long border_pixel;

XSetWindowBorderPixmap(display, w, border_pixmap)

      Display *display;

      Window w;

      Pixmap border_pixmap;

XSetWindowColormap(display, w, colormap)

      Display *display;

      Window w;

      Colormap colormap;

引き数

attributes
XSetWindowAttributes 構造体を指定する。 マスク値 valuemask の指定に従って、この構造体から値が取り出される。 マスク値は、構造体に設定されているどの値を取り出すかを示す適切な ビットを持っていなければならない。
background_pixel
背景色のピクセルを指定する。
background_pixmap
背景ピックスマップ、 ParentRelative, None のいずれかを指定する。
border_pixel
カラーマップ内のエントリーを指定する。
border_pixmap
境界ピックスマップか CopyFromParent を指定する。
display
X サーバへの接続を指定する。
valuemask
引き数 attribute に定義されているウィンドウ属性を指示する。 このマスク値は、正しいマスクビット値のビットごとの論理和を取ったものである。 valuemask が 0 ならば属性は無視され、参照されない。
w
ウィンドウを指定する。
colormap
カラーマップを指定する。

説明

関数 XChangeWindowAttributes は、引き数 valuemask に従って XSetWindowAttributes 構造体のウィンドウ属性を使い、指定したウィンドウ属性を変更する。 背景色を変更しても、ウィンドウの表示内容は変更されない。 ウィンドウとその背景を再描画するには XClearWindow を使うこと。 境界のタイリングの原点が変わるような境界の設定や背景色の設定をすると、 境界は再描画される。 ルートウィンドウの背景を NoneParentRelative に設定すると、背景はデフォルトの背景ピックスマップに戻る。 ルートウィンドウの境界を CopyFromParent に変更すると、境界はデフォルトの境界ピックスマップに戻る。 win-gravity 値を変更しても、ウィンドウの現在位置には影響を与えない。 他のウィンドウに隠されているウィンドウの backing-store 値を WhenMappedAlways に変更したり、マップされているウィンドウの backing-planes 値、 backing-pixel 値, save-under 値を変更しても、その影響はすぐには 現れないことがある。 ウィンドウのカラーマップを変更すると(つまり新しいカラーマップの定義 をした場合。既に存在するカラーマップの内容の変更ではない)、 ColormapNotify イベントが生成される。 可視ウィンドウのカラーマップを変更しても、その影響はすぐには現れないこ とがある。 これは、カラーマップがインストールされていないかもしれないからである( XInstallColormap を参照すること)。 ルートウィンドウのカーソルを None に設定すると、カーソルはデフォルトのものに戻る。 クライアントは可能な限りカラーマップを共有することが望ましい。

複数のクライアントが、同じウィンドウで入力を選択することができる。 この場合のイベントマスクは別々に管理される。 あるイベントが生成されたとき、そのイベントは イベントに注目している全てのクライアントに送られる。 しかし、 SubstructureRedirectMask, ResizeRedirectMask, ButtonPressMask を選択できるクライアントは同時にひとつだけである。 あるクライアントがこれらのイベントマスクを選択しようとしたときに、他の クライアントがすでにこれを選択していた場合は、エラー BadAccess となる。 伝播させないイベントを指定するマスクは、ひとつのウィンドウについて ひとつだけ存在する。 クライアントごとにひとつではない。

XChangeWindowAttributes はエラー BadAccess, BadColor, BadCursor, BadMatch, BadPixmap, BadValue, BadWindow を起こすことがある。

関数 XSetWindowBackground は、指定したピクセル値をウィンドウ背景に設定する。 背景を変更してもウィンドウの内容が変化することはない。 XSetWindowBackground は、ユーザが渡したピクセル値で塗りつぶされた、未定義サイズの ピックスマップを使う。 InputOnly ウィンドウの背景を変更しようとすると、エラー BadMatch となる。

XSetWindowBackground はエラー BadMatch, BadWindow を起こすことがある。

関数 XSetWindowBackgroundPixmap は、指定したピックスマップをウィンドウの背景ピックスマップとして設定する。 背景ピックスマップは、もう明示的に参照されることがなければ、すぐに解放 してよい。 ParentRelative が指定されると、親ウィンドウの背景ピックスマップが使われる。 ルートウィンドウに対して ParentRelative が指定されると、背景ピックスマップはデフォルトのものに戻る。 InputOnly ウィンドウの背景を変更しようとすると、エラー BadMatch となる。 背景に None が設定されると、そのウィンドウの背景は未定義となる。

XSetWindowBackgroundPixmap はエラー BadMatch, BadPixmap, BadWindow を起こすことがある。

関数 XSetWindowBorder は、指定したピクセル値をウィンドウ境界に設定する。 InputOnly ウィンドウに対してこの操作を行うと、エラー BadMatch となる。

XSetWindowBorder はエラー BadMatch, BadWindow を起こすことがある。

関数 XSetWindowBorderPixmap は、指定したピックスマップをウィンドウの境界ピックスマップ に設定する。 境界ピックスマップは、もう明示的に参照されることがなければ、すぐに解放 してよい。 CopyFromParent を指定した場合は、親ウィンドウの境界ピックスマップのコピーが使われる。 InputOnly ウィンドウに対してこの操作を行うと、エラー BadMatch となる。

XSetWindowBorderPixmap はエラー BadMatch, BadPixmap, BadWindow を起こすことがある。

関数 XSetWindowColormap は、指定したカラーマップを指定したウィンドウに設定する。 カラーマップはウィンドウと同じビジュアル型でなければならない。 そうでない場合には、エラー BadMatch となる。

XSetWindowColormap はエラー BadColor, BadMatch, BadWindow を起こすことがある。

返り値

BadAccess
割り当てられていないカラーマップをクライアントが解放しようとした。
BadAccess
クライアントが読み取り専用のカラーマップのエントリーに値を格納しようと した。
BadColor
引き数 Colormap の値が、定義されている Colormap を指していない。
BadCursor
引き数 Cursor の値が、定義されている Cursor を指していない。
BadMatch
引き数や引き数の組の型や範囲は正しいが、リクエストが要求する 他の条件を満たしていなかった。
BadMatch
InputOnly ウィンドウがこの属性をロックしている。
BadPixmap
引き数 Pixmap の値が、定義されている Pixmap を指していない。
BadValue
指定された数値に、リクエストの許容範囲を越えているものがある。引き数に対 して特定の範囲が指定されていなければ、引き数の型で定義されている全ての範 囲が許される。選択肢として定義されている引き数はこのエラーを起こすことが ある。
BadWindow
引き数 Window の値が、定義されている Window を指していない。