X11に関して質問です。ウィンドウの属性の情報。
ウィンドウの属性の情報を知るプログラムを教えてください。
参考ページ:http://xjman.dsl.gr.jp/man/man3/XGetWindowAttributes.3x.html
XGetWindowAttributes関数の使い方がよくわかりません。
XWindowAttributes構造体の一つ目のメンバの値を端末に表示するにはどうすればいいでしょうか?
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <stdio.h>
#include <stdlib.h>
int main()
{
Display *display;
Window w;
GC gc;
XEvent event;
XWindowAttributes *window_attributes_return;
/* ディスプレイ・サーバに接続 */
display = XOpenDisplay(NULL);
if(display == NULL){
fprintf(stderr, "Cannot open display.\n");
exit(1);
}
/* ウィンドウを生成 */
w = XCreateSimpleWindow(display, DefaultRootWindow(display),
50, 50, 400, 300, 1,
BlackPixel(display, 0), WhitePixel(display, 0));
XSelectInput(display, w, ExposureMask);
XMapWindow(display, w);
/* GCの生成 */
gc = XCreateGC(display, w, 0, 0);
/* リクエスト送信 */
XFlush(display);
/* イベントループ */
while(1){
XNextEvent(display, &event);
switch(event.type){
case Expose:
XDrawLine(display, w, gc, 0, 0, 300, 300);
/* ウィンドウの属性の情報を知る?? */
XGetWindowAttributes(display, w, window_attributes_return);
printf("%d", window_attributes_return.x);
break;
}
}
/* Xサーバとの接続を解除 */
XCloseDisplay(display);
return 0;
}
補足
回答ありがとうございます。 ソースは修正していません。再コンパイルしていません。 使っているOSはLinuxの"Ubuntu 14.04.5 LTS"です。