Index | Prev. Step | Next Step |
簡単にいうと X Window システムは画面への表示やキーボード、マウスなどからの入力を行なう X サーバと、それに対して依頼をする X クライアント(これから作ろうとしているプログラム)という、クライアント/サーバモデルに基づいています。
よってクライアントは最初にサーバとの接続を確立する必要があります。接続の確立と解除を行なうのが以下の関数です。
Display *XOpenDisplay (char *display_name)
void XCloseDisplay (Display *display)display_name
を""
またはNULL
にすると環境変数DISPLAY
の値が使われます。ではサンプルプログラム
0201.c
です。実行結果は、
/* 0201.c ; connect and disconnect display */ #include <X11/Xlib.h> #include <X11/Xutil.h> #include <stdio.h> void main() { Display *d; d = XOpenDisplay(NULL); XCloseDisplay(d); }何もしてないように見えるけど、エラーが出ないので正しく動いているようです。shin@harp% 0201 shin@harp%
ここでは主なものをあげます(ヘッダファイルを調べれば全部わかると思う)。
char *ServerVendor (display)
int DisplayWidth (display, screen_number)
int DisplayHeight (display, screen_number)
int DisplayWidthMM (display, screen_number)
int DisplayHeightMM (display, screen_number)
int DefaultScreen (display)
int ProtocolVersion (display)
int ProtocolRevision (display)
Display *display
int screen_numberDisplayWidth
とDisplayHeight
はスクリーンの幅、高さをピクセル単位で返します。
DisplayWidthMM
とDisplayHeightMM
はスクリーンの幅、高さをミリメートル単位で返します。
ProtocolVersion
はメジャーバージョン番号を返します。
ProtocolRevision
はマイナーバージョン番号を返します。
ではサンプルの
0204.c
です。実行結果は以下のようになります。この結果はシリコングラフィックス社のマシンから SunOS のマシンに rlogin していることにより得られたものです。
/* 0204.c ; get display infomation */ #include <X11/Xlib.h> #include <X11/Xutil.h> #include <stdio.h> void main() { Display *d; d=XOpenDisplay(NULL); printf("Vendor: %s\n", ServerVendor(d)); printf("Width: %d\n", DisplayWidth(d,0)); printf("Height: %d\n", DisplayHeight(d,0)); printf("Widthq(mm): %d\n", DisplayWidthMM(d,0)); printf("Width: %d\n", DisplayHeightMM(d,0)); printf("DefaultScreen: %d\n",DefaultScreen(d)); printf("Protocol: %d-%d\n", ProtocolVersion(d), ProtocolRevision(d)); XCloseDisplay(d); }shin@harp% 0204 Vendor: Silicon Graphics Width: 1280 Height: 1024 Widthq(mm): 293 Width: 234 DefaultScreen: 0 Protocol: 11-0 shin@harp%
Index | Prev. Step | Next Step |
Technical Resource | Title Page |