ログイン
編集不可のページディスカッション情報添付ファイル

2011-08-16 16:20:12時点のリビジョン3

メッセージを消す
clear/wm_devel/2011-08-16

MMA

Xクライアントの作成

しばらくXクライアントを作って感覚をつかんでみる。

こんなのがあったのでざっと読んでみると、割とWindowsでAPI叩いてプログラム書くのに似ている(むしろ逆なのだろう)。GC(Graphics Context)とかハンドルとかは大体同じような理解で良さそう。

「何もしない」やつを作ってみる

お約束のウィンドウが出るだけというアレをステップを追いつつ作ってみる。

Xサーバへの接続

何はともあれまずXサーバに接続する。必要なのはXサーバの動いているホストのアドレスとディスプレイ番号。ちなみに最初のディスプレイは0番。この辺は普通に使ってるだけでもわかるか。

XOpenDisplay
Xサーバと接続する

Display *XOpenDisplay(char *display_name);

終了時に接続を切るときはXCloseDisplay()を使うらしい。

XCloseDisplay
Xサーバとの接続を切る

int XCloseDisplay(Display *display);

とりあえず接続して終了するだけならこんな感じか。

Display *d;
d = XOpenDisplay(NULL);
if (!d) {
    fprintf(stderr, "failed to connect X server\n");
    exit(1);
}

/* ... */

XCloseDisplay(d);

ディスプレイの情報を取得してみる

ちょっと逸れて、接続したXサーバから情報を取得してみる。

   1 /* ... */