Previous: ウィンドウの階層構造の設計
Up: ウィンドウの階層構造の設計
Next: イベントループの中でのウィンドウの判定
Previous Page: ウィンドウの階層構造の設計
Next Page: イベントループの中でのウィンドウの判定

孫のウィンドウまである場合

プログラムが大きくなるにつれ、使用されるウィンドウの数が増え、 その構造も複雑になってきます。 今日のプログラムで使用されるウィンドウを例に取り、 「ウィンドウの設計」について考えてみましょう。 次のようなウィンドウの階層構造を絵にすると どうなるでしょうか?

Window   frame, canvas, tool, quit;

frame = XCreateSimpleWindow( dsp, DefaultRootWindow(dsp), 0, 0, 640, 300, 1, BlackPixel(dsp,0), BlackPixel(dsp,0) ); canvas = XCreateSimpleWindow( dsp, frame, 5, 5, 590, 290, 0, BlackPixel(dsp,0), WhitePixel(dsp,0) ); tool = XCreateSimpleWindow( dsp, frame, 600, 5, 40, 290, 0, BlackPixel(dsp,0), WhitePixel(dsp,0) ); quit = XCreateSimpleWindow( dsp, tool, 5, 5, 30, 30, 1, BlackPixel(dsp,0), WhitePixel(dsp,0) );


子供のウィンドウを一斉に表示するには、XMapSubwindows()を使います。 この関数の引数は、表示されるウィンドウではなく親のウィンドウです。 上のように孫に当たるウィンドウ(quit など)を 一斉に表示させたい時には、その親を指定します。

XMapWindow( frame );     /* ウィンドウ frame の表示 */
XMapSubwindows( frame ); /* ウィンドウ frame の子ウィンドウの表示 */
XMapSubwindows( tool );  /* ウィンドウ tool  の子ウィンドウの表示 */

maruyama@wakhok.ac.jp
1995年02月01日 (水) 00時21分18秒 JST