|
○ はじめに
本文書では、Unix の代表的 な GUI 環境である X Window System 上において、最も低レベルな API である Xlib を使用した GUI プログラミングについて解説していきます。
2002 年 1 月 18 日現在、世間の X Window デスクトップ環境は GNOME や KDE が中心的存在となってきており、GUI アプリケーションを作成する際には GTK+ や Qt のような高機能なツールキットを使うのが一般的になっています。
そのように世間一般の技術が高機能化していくにつれて、何故か自分はその実現方法の方が気になって仕方ありません。
GNOME や KDE といった華々しいデスクトップを構築するのに一役買っている GTK+ や Qt のような GUI ツールキットの根本技術は、X Window 環境における最も低レベルな API ライブラリである Xlib を使ったプログラミングに他なりません。Xlib プログラミングについて解説した Web サイトは古くから既にいくつも存在しますが、今回きちんと Xlib を学ぶに際し自分の勉強結果 / メモを残すと言う意味も含めて本サイトにまとめました。
なるべく Xlib プログラミング全般を網羅したいと思っているので、今後もちらほらと Topics を追加していったりすることもあると思います。皆さんがちょっと Xlib について調べたいなと思った際の参考になれば嬉しいです。
本文書へのリンクは御自由にどうぞ。本サイト内の文章に関して何かご意見などがありましたら、ページ最下部にあるアドレスまで、あるいはここからお願いします。なお、本文書において使用しているサンプルコードを tar 形式で圧縮したものをsrc.tar.gzとして置いてます。展開して得られる各ソースコードは EUC で書かれています。各ファイル名にはそのコードを使用した Lecture の番号が付加されています。このソースコードの使用に関しては、免責事項の記述を了承していただければ自由に使っていただいて構いません。
また、ソースコードを含めた文書全体のアーカイブ( tar 形式 )を xlib_doc.tar.gzとして置いてます。こちらも EUC で書かれています。
○ 前堤環境
自分が基本的に Linux® ユーザですので、Linux 上で gcc を使ったプログラミングを前堤とします。
とはいっても、Xlib は別に Linux Only なわけではないし掲載しているサンプルコードも別に機種依存なことはやっていないので、どの環境でもコンパイルおよび実行は可能だと思います。
Linux では基本的に
gcc -L/usr/X11R6/lib -o <target> <target source name> -lX11
でコンパイルは通ると思います。ライブラリパスやリンクモジュールの指定は環境に応じて修正してください。
○ 免責事項
本サイトで公開している内容については可能な限り正確を期する様に心掛けていますが、著者の知識不足から技術的な誤りもしくは不適切な表現や誤植を含む可能性があります。これらの内容を使用することによって生じる可能性のあるいかなる被害/損害に対して、著者は一切の責任を負えません。よって、ご利用になられる際はみなさん各自の責任で内容確認/動作確認を行って下さい。
○ 商標
- Linux は Linus Torvalds 氏の日本及びその他の国における登録商標または商標です。
- UNIX は The Open Group の米国及びその他の国における登録商標です。
- その他、本サイトの文書中に記載されている会社名や製品名は、一般に各社の商標または登録商標です。
- なお、本サイトの文書中では基本的に TM および R マークを明記していませんが、権利を侵害する意思や目的等は一切ありません。
○ 参考情報(文献、リンク)
- X.Org Foundation
X Window System の規格およびリファレンス実装を提供する、現在の元締めと言うべき組織。
- The XFree86 Project, Inc.
長い間、PC UNIX 界のデファクトスタンダードと言うべき X Window System のフリーな実装を提供してきた組織。
- Xlib プログラミングマニュアル R4/R5, ソフトバンク(株), 1993, ISBN-4-89052-398-7
非常に分厚いですが、詳細に解説されています。R4/R5 なので古いですが、著者は R6 に対応したものを探したことが無いので、もし新しいものがあればそちらの方が良いでしょう。
- Xlib - C Language X Interface 目次 (X Japanese Documentation Project)
X Japanese Documentation Project が和訳してくださっている Xlib API のマニュアルです。
2002/7/3 の時点で↑のリンクは消滅してました。http://xjman.dsl.gr.jp/ によると ハードディスク障害でデータが無くなってしまったとか。。。 何とか復旧されることを祈っております。
2002/9/5 に見たら、見事復活してました!良かった良かった。
- Shape Extension Protocol
SHAPE Extension の X プロトコルを定義した文書です。
- Shape Extension Library
SHAPE Extension を使うための Xlib 関数を定義した文書です。
- Xlib プログラミングマニュアル R4/R5, ソフトバンク(株), 1993, ISBN-4-89052-398-7