X Toolkit 教えてね。
1名無しさん@お腹いっぱい。
NGNG いや、ほんと。
21
NGNG 一生懸勉強したけど、わかんないんだ。
widgetは、オブジェクト思考なんだろ? そんで、継承とかするんだ。
widgetの使い方は、わかるんだけど、widgetの本質がいまいち分かんないんだ。
既存のwidgetを使わずに、新しいwidgetをつくるには、どうすればいいんだよ。
widgetは、オブジェクト思考なんだろ? そんで、継承とかするんだ。
widgetの使い方は、わかるんだけど、widgetの本質がいまいち分かんないんだ。
既存のwidgetを使わずに、新しいwidgetをつくるには、どうすればいいんだよ。
33
NGNG xli
43
NGNG ミスった
xlib
xlib
5名無しさん@Emacs
NGNG XFree86 から xclock あたりのソースをひっぱってきて真似しろ。
新しい widget (たとえば Giko) を作るには、基本的には
・ export 用に Giko.h をつくって定数を定義。
・ 内部用に GikoP.h をつくって構造体を定義。
・ Giko.c にresource定義とコールバックを書いてできあがり。
そんなにむずかしくない。とにかく最初は人のソースを見よう見まねでやれば
いい。Xt 自身のソースもわりとわかりやすいぞ。
でもなんでいまさら Xt?
新しい widget (たとえば Giko) を作るには、基本的には
・ export 用に Giko.h をつくって定数を定義。
・ 内部用に GikoP.h をつくって構造体を定義。
・ Giko.c にresource定義とコールバックを書いてできあがり。
そんなにむずかしくない。とにかく最初は人のソースを見よう見まねでやれば
いい。Xt 自身のソースもわりとわかりやすいぞ。
でもなんでいまさら Xt?
6名無しさん@お腹いっぱい。
NGNG Widget の諸機能は基本的な Widget の構造に依存するので、
既存の Widget を全く使わずに作るのは無理。
枠組みごと作るなら別だが。
Xt の場合、一般的には子を持たない Widget は Core を、
子を持つ Widget は Composite か Constraint を継承して
作る。基本的は >>5 が言ってくれてるとおりだ。
Xaw ってサンプルもあるんだから実際のコード読んでみるべし。
しかしたしかになんでいまさら Xt?
既存の Widget を全く使わずに作るのは無理。
枠組みごと作るなら別だが。
Xt の場合、一般的には子を持たない Widget は Core を、
子を持つ Widget は Composite か Constraint を継承して
作る。基本的は >>5 が言ってくれてるとおりだ。
Xaw ってサンプルもあるんだから実際のコード読んでみるべし。
しかしたしかになんでいまさら Xt?
71
NGNG81
NGNG >>5
そんで、質問の続きなんだけどよお、 widgetのクラスを作るには、
3つのファイルが必要なのは分かった。 けど、widgetってインスタンス
として画面上に実現されたら、当然グラフィカルなLooK&Feelを持つわけじゃん?
その複雑な性質はどうやって記述するの? 構造体を作って、メンバにデータを入力
するだけじゃ出来ないでしょ? widget自身の画像や、その動作はどうやって記述す
るんだ? もし、C言語で書くんなら、Xlib使って書くのか? 例えば、widgetのルックス
を記録したビットマップを何枚か容易しといて、特定のイベントは発生したら、あらかじめ
用意しておいた何枚かのビットマップを交互に表示することで、widgetの動作を実現したり
してるわけ? そんで、それを記述してるのが、3つのヘッダファイルのうちの、拡張子が
c のファイルなのか?
そんで、質問の続きなんだけどよお、 widgetのクラスを作るには、
3つのファイルが必要なのは分かった。 けど、widgetってインスタンス
として画面上に実現されたら、当然グラフィカルなLooK&Feelを持つわけじゃん?
その複雑な性質はどうやって記述するの? 構造体を作って、メンバにデータを入力
するだけじゃ出来ないでしょ? widget自身の画像や、その動作はどうやって記述す
るんだ? もし、C言語で書くんなら、Xlib使って書くのか? 例えば、widgetのルックス
を記録したビットマップを何枚か容易しといて、特定のイベントは発生したら、あらかじめ
用意しておいた何枚かのビットマップを交互に表示することで、widgetの動作を実現したり
してるわけ? そんで、それを記述してるのが、3つのヘッダファイルのうちの、拡張子が
c のファイルなのか?
NGNG
NGNG
NGNG
>>8
Xt は基本的に描画周りはいじらんのよ。
X Toolkit Intrinsics っていう名前が示すとおり、
どっちかといえば Toolkit を作るためのメタクラスの
集まりなんだね。
Look & Feel な部分は、Xaw とか Motif みたいな Widget Set
のほうで Xt の Widget Class から派生させて実装するんだが、
それは Xlib とかのプリミティブな描画関数でガリガリ書いてるわけさ。
Xt は基本的に描画周りはいじらんのよ。
X Toolkit Intrinsics っていう名前が示すとおり、
どっちかといえば Toolkit を作るためのメタクラスの
集まりなんだね。
Look & Feel な部分は、Xaw とか Motif みたいな Widget Set
のほうで Xt の Widget Class から派生させて実装するんだが、
それは Xlib とかのプリミティブな描画関数でガリガリ書いてるわけさ。
121
NGNG >>10
やっぱ、喋り方でばれちゃうね、えへ。
やっぱ、喋り方でばれちゃうね、えへ。
NGNG
>>7
> オレは、勉教も何事も、低レベルに拘るの。
> 例えば、微分積分を勉強したときは、表面的な知識に囚われず、実数の公理からみっちり
Xtなんて全然高レベルだと思うんですが...
というつっこみは無しですか?
ひょっとして、物理/数学 -> 電気/機械 -> (略) -> Xtって
今まさにたどりついたところ?
カコイイ..
> オレは、勉教も何事も、低レベルに拘るの。
> 例えば、微分積分を勉強したときは、表面的な知識に囚われず、実数の公理からみっちり
Xtなんて全然高レベルだと思うんですが...
というつっこみは無しですか?
ひょっとして、物理/数学 -> 電気/機械 -> (略) -> Xtって
今まさにたどりついたところ?
カコイイ..
141
NGNG >>11
ほう、なるほど。 やっぱ、ボタンとかスクロールバーの、イベント発生時の
挙動(例えばボタンがへこんだり)ってのは、Xlib使って書くわけだ。
ってことは、1つ1つのwidgetは、ウィンドウか、ウィンドウの集合体に、統一的な
デザインのビットマップを貼りつけたものに過ぎない訳だろ? んじゃあ、オレにも
作れそうだな。
ほう、なるほど。 やっぱ、ボタンとかスクロールバーの、イベント発生時の
挙動(例えばボタンがへこんだり)ってのは、Xlib使って書くわけだ。
ってことは、1つ1つのwidgetは、ウィンドウか、ウィンドウの集合体に、統一的な
デザインのビットマップを貼りつけたものに過ぎない訳だろ? んじゃあ、オレにも
作れそうだな。
151
NGNG >>13
>Xtなんて全然高レベル、、、、
まあ、高レベルなのは分かるよ。 けど、Xlib使っても美しくないもんね。
ほんとなら、アセンブリ使ってX-Windowのプログラム作りたいんだけど、
どう考えても、不可能に近いので、Xlibつかってんだよ。 けど、それじゃあ
美しいインターフェースが作れないから、しかたなくXtoolkitに手を出したわけだ。
けど、オレは、XlibとかXtoolkitを使ってプログラム作ってる時でも、常に低レベル
を頭の中で意識する。 たとえば、頭の中でアセンブリ言語に直してみたり、CPUやメモリ
内部での、MOS−FETの動作までも想像する。
>Xtなんて全然高レベル、、、、
まあ、高レベルなのは分かるよ。 けど、Xlib使っても美しくないもんね。
ほんとなら、アセンブリ使ってX-Windowのプログラム作りたいんだけど、
どう考えても、不可能に近いので、Xlibつかってんだよ。 けど、それじゃあ
美しいインターフェースが作れないから、しかたなくXtoolkitに手を出したわけだ。
けど、オレは、XlibとかXtoolkitを使ってプログラム作ってる時でも、常に低レベル
を頭の中で意識する。 たとえば、頭の中でアセンブリ言語に直してみたり、CPUやメモリ
内部での、MOS−FETの動作までも想像する。
NGNG
XtVaCreateManagedWidghtさげ
185
NGNG なんか何がやりたいんだかわからない、ネタくさい 1 だなあ…まあいい。
>>11 もいっているとおり、Xt はたんなる枠組みを提供するにすぎないよ。
実際のプログラミングはわりと低レベルだな。ピクセル座標を
もろにいじらなきゃなんない。まあ、そういうのが好きなら楽しいかもしれない。
直 Xlib に比べて楽なのは、イベントハンドリングだな。
これについてはあまり考えなくてもいいようになってる。
だから Xaw だけで間に合うようなプログラムを作っているかぎりは、
ある程度エレガントにできる。ただしリアルタイムで状態を
変化させようとか、ルートウインドウに文字を書こうとかすると
途端にエレガントじゃなくなるな。
>>11 もいっているとおり、Xt はたんなる枠組みを提供するにすぎないよ。
実際のプログラミングはわりと低レベルだな。ピクセル座標を
もろにいじらなきゃなんない。まあ、そういうのが好きなら楽しいかもしれない。
直 Xlib に比べて楽なのは、イベントハンドリングだな。
これについてはあまり考えなくてもいいようになってる。
だから Xaw だけで間に合うようなプログラムを作っているかぎりは、
ある程度エレガントにできる。ただしリアルタイムで状態を
変化させようとか、ルートウインドウに文字を書こうとかすると
途端にエレガントじゃなくなるな。
191
NGNGレスを投稿する
