1read 100read
2011年10月1期UNIXX Toolkit 教えてね。 TOP カテ一覧 スレ一覧 削除依頼
・ 次のスレ
新品のULTRA2(200MhzX2)を3万で買ったんだ!
女子高生のカーネル領域における言語的等価性
IRC Clients 総合スレッド
UNIXでJAVA


X Toolkit 教えてね。


1 :02/01/18 〜 最終レス :11/09/21
いや、ほんと。

2 :
一生懸勉強したけど、わかんないんだ。
widgetは、オブジェクト思考なんだろ? そんで、継承とかするんだ。
widgetの使い方は、わかるんだけど、widgetの本質がいまいち分かんないんだ。
既存のwidgetを使わずに、新しいwidgetをつくるには、どうすればいいんだよ。

3 :
xli

4 :
ミスった
xlib

5 :
XFree86 から xclock あたりのソースをひっぱってきて真似しろ。
新しい widget (たとえば Giko) を作るには、基本的には
 ・ export 用に Giko.h をつくって定数を定義。
 ・ 内部用に GikoP.h をつくって構造体を定義。
 ・ Giko.c にresource定義とコールバックを書いてできあがり。

そんなにむずかしくない。とにかく最初は人のソースを見よう見まねでやれば
いい。Xt 自身のソースもわりとわかりやすいぞ。

でもなんでいまさら Xt?

6 :
Widget の諸機能は基本的な Widget の構造に依存するので、
既存の Widget を全く使わずに作るのは無理。
枠組みごと作るなら別だが。
Xt の場合、一般的には子を持たない Widget は Core を、
子を持つ Widget は Composite か Constraint を継承して
作る。基本的は >>5 が言ってくれてるとおりだ。
Xaw ってサンプルもあるんだから実際のコード読んでみるべし。

しかしたしかになんでいまさら Xt?


7 :
>>5 >>6
ふーん、あんたらプロ? 詳しいね。 だって、X ToolKitでプログラミングできる
ってかっこいいじゃん。 ねえ? その他に楽に開発にできるツールはあるんだろうけど
そんなの使ってるなんて、ださいよね。 オレは、勉教も何事も、低レベルに拘るの。
 例えば、微分積分を勉強したときは、表面的な知識に囚われず、実数の公理からみっちり
やるタイプの人間なんだ。 だから、高級言語を使ってプログラム作るときも、低レベルを
意識する。 だから、X−Windowのアプリを作るときも、Xlibや、Xtoolkitを使いたいんだよ。

8 :
 >>5
そんで、質問の続きなんだけどよお、 widgetのクラスを作るには、
3つのファイルが必要なのは分かった。 けど、widgetってインスタンス
として画面上に実現されたら、当然グラフィカルなLooK&Feelを持つわけじゃん?
その複雑な性質はどうやって記述するの? 構造体を作って、メンバにデータを入力
するだけじゃ出来ないでしょ? widget自身の画像や、その動作はどうやって記述す
るんだ? もし、C言語で書くんなら、Xlib使って書くのか? 例えば、widgetのルックス
を記録したビットマップを何枚か容易しといて、特定のイベントは発生したら、あらかじめ
用意しておいた何枚かのビットマップを交互に表示することで、widgetの動作を実現したり
してるわけ? そんで、それを記述してるのが、3つのヘッダファイルのうちの、拡張子が
c のファイルなのか?

9 :
>>5 >>6
Xt いいのに…

10 :
>>1
http://pc.2ch.net/test/read.cgi/unix/1011033534/
このスレの1と見たがどうよ?

11 :
>>8
Xt は基本的に描画周りはいじらんのよ。
X Toolkit Intrinsics っていう名前が示すとおり、
どっちかといえば Toolkit を作るためのメタクラスの
集まりなんだね。
Look & Feel な部分は、Xaw とか Motif みたいな Widget Set
のほうで Xt の Widget Class から派生させて実装するんだが、
それは Xlib とかのプリミティブな描画関数でガリガリ書いてるわけさ。

12 :
>>10
やっぱ、喋り方でばれちゃうね、えへ。

13 :
>>7
> オレは、勉教も何事も、低レベルに拘るの。
> 例えば、微分積分を勉強したときは、表面的な知識に囚われず、実数の公理からみっちり
Xtなんて全然高レベルだと思うんですが...
というつっこみは無しですか?

ひょっとして、物理/数学 -> 電気/機械 -> (略) -> Xtって
今まさにたどりついたところ?
カコイイ..

14 :
>>11
ほう、なるほど。 やっぱ、ボタンとかスクロールバーの、イベント発生時の
挙動(例えばボタンがへこんだり)ってのは、Xlib使って書くわけだ。
ってことは、1つ1つのwidgetは、ウィンドウか、ウィンドウの集合体に、統一的な
デザインのビットマップを貼りつけたものに過ぎない訳だろ? んじゃあ、オレにも
作れそうだな。 

15 :
>>13
>Xtなんて全然高レベル、、、、
まあ、高レベルなのは分かるよ。 けど、Xlib使っても美しくないもんね。
ほんとなら、アセンブリ使ってX-Windowのプログラム作りたいんだけど、
どう考えても、不可能に近いので、Xlibつかってんだよ。 けど、それじゃあ
美しいインターフェースが作れないから、しかたなくXtoolkitに手を出したわけだ。
けど、オレは、XlibとかXtoolkitを使ってプログラム作ってる時でも、常に低レベル
を頭の中で意識する。 たとえば、頭の中でアセンブリ言語に直してみたり、CPUやメモリ
内部での、MOS−FETの動作までも想像する。 

16 :
>>15
なかなか良い心がけだね。

17 :
XtVaCreateManagedWidghtさげ

18 :
なんか何がやりたいんだかわからない、ネタくさい 1 だなあ…まあいい。
>>11 もいっているとおり、Xt はたんなる枠組みを提供するにすぎないよ。
実際のプログラミングはわりと低レベルだな。ピクセル座標を
もろにいじらなきゃなんない。まあ、そういうのが好きなら楽しいかもしれない。
直 Xlib に比べて楽なのは、イベントハンドリングだな。
これについてはあまり考えなくてもいいようになってる。
だから Xaw だけで間に合うようなプログラムを作っているかぎりは、
ある程度エレガントにできる。ただしリアルタイムで状態を
変化させようとか、ルートウインドウに文字を書こうとかすると
途端にエレガントじゃなくなるな。

19 :
>>16
だろ。 
>>18
Xtは、単なる枠組みを提供するってどういう意味よ。 その辺が、ちょい
分からんなぁ。 Xtは、Xt-Intrinsic とwidgetのセットの事だろ? そんで、
このwidgetsetを色々と入れ変えることで、様々な違ったLook&Feelを実現するわけだろ?
そんで、Xt-Intrinsic と widgetの関係は、オブジェクト思考的に言うと、
メソッドと、オブジェクトの関係なんだろう? 

20 :
おろ、伸びてるや。
>>19
それはかなり違うとおもう(苦笑)>メソッドとオブジェクト

Xt-Intrinsic は、Cでオブジェクト指向するための仕組みと、
それからいくつかのWindowプログラミングに必要な基底クラスを
提供してくれてるのだ。

Cでオブジェクト指向的なプログラミングをするには、ポインタを
駆使しまくって、いろいろがんばる必要があるんだけど、Xt は、
X からのイベントの基本的な流れを処理してくれる仕組みを一通り
準備してあって、きめられた構造体にきめられた手順で関数を
くみこんでいくだけで、それを必要に応じて自動的に呼び出して
くれるようになっている。継承までサポートだ。それから、
ショートカット処理とかイベント変換とかタイマ処理とかコールバック
処理とか、そういった基本的なウインドウプログラミングの技術も
一通り組みあがったものが入ってる。

でもそこまで。Xtは、スクロールバーも画像表示してくれるものも、
テキスト表示してくれるラベルも無い。本当に裸の最低限の Widgetのみなわけ。
とういうことで、Widget Set をつくって足さないと実用にはならんってことね。

WidgetSet はけっきょくそれぞれの独自仕様組み込んでつくられるのが
通例なので、「いろいろ入れかえる」なんて器用なことは現実には無理だよん。
Xaw3D が一応 Xaw 互換をうたってるけど、作った人が互換性の保ち方を
知らなかったのか、作り方おもいきり間違えてるので、実は
互換性が無い。

組み込みとか配置とかそういった基本的な部分は Xt の
範疇だから、そのレベルだと互換性はあるので「混ぜて使う」ってのは
できるけどねん。

21 :
正直、低レベルということを言うためにアセンブラと
言ってしまう時点で「Xの基本からやり直せ」と
煽ってしまいたくなるのは私だけ?

22 :
「メソッドと、オブジェクトの関係」でかなり萎えたね。
>>1 よ、元気なのはいいんだが、あまり思いつきの
質問はするなよ。自分がちゃんと考えてから質問して、
相手の答えから学ぶ能力があるということを示さなきゃ。
でないと答えるほうも疲れるし、いずれ相手にされなくなるぞ。

23 :
PerlTkとかTcl/Tkで手っ取り早く動かすのが楽。

24 :
X Window Systemってのもまた、Unix系文化の象徴的な存在だよなぁ。
いつまでたってもプリミティブ部分しか無いから、似たような物(ここ
ではToolkit)がいくつも作られては消えると。
まぁ「選択の自由がある」と言えば聞こえはいいけど、「単に統一性が
無い」とも言えるし。元々QTにライセンス問題があったとは言え、今の
「GNOME/KDEの2大勢力とその他」みたいな状態もなんだかなー。
どっちでもいいから1つに絞れよって感じ。

って事で俺は(Toolkitが何であっても)X上でGUIのプログラムは書く気に
ならんし、X自体がどうにかならん限り、GUIとしてWindows並かそれ以上
の存在にはなれんだろ、とか思ってたりするんだけどどうか。

25 :
>>24
正直同意だね。標準化したってのは偉いと思うけど。
> って事で俺は(Toolkitが何であっても)X上でGUIのプログラムは書く気に
> ならんし、X自体がどうにかならん限り、GUIとしてWindows並かそれ以上
> の存在にはなれんだろ、とか思ってたりするんだけどどうか。

Xもそうだし、いーかげん C で全てをやるのにも無理がでてきた
(とくに Xt なんか見てると「よくがんばったね、でも…」と言いたくなる)。

どっかの団体がドカンと標準を普及させてくれればいいとは思ってるものの、
フリーでやってる連中にそんなおカネはないし、
いまのUNIXベンダはどこも元気なさそうだし。もうしばらくは
このままずるずるとマイナーOSの道を行くんじゃないかな。

MacOSX for 86 とかが出れくれれば、案外 Cocoa + ObjC とか
普及するかもしれないよ? でもApple があの調子じゃなあ。。。

26 :
>>25
GNUstepは?

27 :
>>20
「ポリシーは提供せず、メカニズムのみ提供する」

28 :
> Xaw3D が一応 Xaw 互換をうたってるけど、作った人が互換性の保ち方を
> 知らなかったのか、作り方おもいきり間違えてるので、実は
> 互換性が無い。
あれはしょうがないんじゃないかな?
instance record の互換性を崩さずに拡張データを持たせようと思うと
めんどくさいことになるんだよね。class record の方は extension で
なんとかならなくもないのだが。

現在のオブジェクト指向の語法を知ってると、
Xt のデザインはすごくもどかしい。
結局、構造体を並べるという静的なクラス継承を用いて、
インターフェースだけではなく実装の方も拡張しようとしてしまう方法の
限界なんだよね。
今のオブジェクト指向の考え方だと「あまりうまくない」ってことになる。
まあそれは結果論だが。

結局、Interviews に期待しろってこった<大嘘

29 :
> 結局、Interviews に期待しろってこった<大嘘
それでですな、Interviews はその辺をどう解決してるかというと、
MVC モデルになるわけですな。
View と Control を分離したクラスにして、
この 2 つを動的にバインドできれば、
あるいはもうちょっとまともだったかもねん。

でも、結局さぁ、Xaw3D の非互換性が問題になるのって、
アプリケーションが独自にウィジェット拡張してる時だけだし、
MVC にしたとしても View の方で結局同じ問題が起こると思うんだが…。

感覚的な話をすれば、Xaw の平板なルックを期待した拡張ウィジェットが
そのままじゃ Xaw3D の立体なルックにあわないことを考えれば、
やっぱり完全な互換性なんて持てないっていう結論になると思うんだが、
拡張ってのがいつもがいつもルックの問題ってわけでもないので、
そういうところでは MVC を使えると、なんぼか救いようがある気はしますね。

30 :
スレと全然関係ないけどさぁ、MVC って観点だと XUL おもしろいよ :D

31 :
>>All excluding me
レスいっぱいありがとさん。 あんたら、なかなか親切だよね。 オレ様、ジーンときちゃったよ。
どうもありがとう。 けど、やっぱ、いまいちわかんねーんだよなあ。 掲示板で聞いたり、理解
するのは限界があるとおもうんで、やっぱ何冊か本買って勉強しる。 

32 :
>>All excluding me
レスいっぱいありがとさん。 あんたら、なかなか親切だよね。 オレ様、ジーンときちゃったよ。
どうもありがとう。 けど、やっぱ、いまいちわかんねーんだよなあ。 掲示板で聞いたり、理解
するのは限界があるとおもうんで、やっぱ何冊か本買って勉強しる。 

33 :
実は勉強になるスレだな。
1よ、これからも良質なネタを提供してくれな。

34 :
>>33
まかしときな。 クソスレいっぱい立ててやっからよ。 後で、泣いたら、腹蹴るから。
ところで、やっと分かったわ。 本読んで分かった。 ウィジェットのカラクリが。
何で、ウィジェットを実現するファイルが3分割されてるかもわかった。
Xtの関数は、実は、ウィジェットを定義してるプライベートの方の構造体に登録されてる
メソッド関数を呼び出してる訳だね。 ってことは、このメソッド関数を自分で、予め定めら
れたフォーマットで定義しなおせば、好き勝手にウィジェットのlook&feelを実現できちゃう
訳だ。 引いては、自分でウィジェットのクラスも作れちゃうってことなのね。

35 :
>>1
良ければどの本を読んだのか教えてくれ。

36 :
>>35
そんなに、知りたいかぁ? 焦らしちゃうぞ、オレ。
まあ、教えてやろうぞ。 感謝しな。
その名も、「X Toolkitプログラミング 第2版 D.Aヤング著書 トッパン」
だ。 

37 :
>>1
もしかして「俺様」氏?

38 :
>>37
だれ、それ.そんやつ知らんよ。 

39 :
X 捨てて Berlin マンセーしてる勇者はここにいないのか?

40 :
本家ラウンジついに閉鎖
【いままで】さようなら…ラウンジ…【ありがとう】
http://corn.2ch.net/test/read.cgi/entrance/1011645720/

41 :
>>38
質問のレベルの低さに反比例した態度のでかさが彼を彷彿したもんで・・・
違ってたならスマン。

42 :
>>41
てめっ! 誰の質問レベルが低いだろ? ごりゅあ。 十分高いじゃん。 まじばなし。
Xtoolkitの核心に触れる事が出来るプログラマがこの板にはいるのかよ。 いないだろ
ホントのところ。 俺なんか、結構レベル高い方だと思うよ。 内部のメカニズムに無関心で
ただ漠然とツールキット使ってるやつもいるだろう。 3流のプログラマーだよ。
俺みたいに、量子力学を勉強して、MOS−FETの動作原理も理解して、CPUやメモリの構造や、
動作原理を理解できて、その上でアセンブリ言語も使えて、デバイスドライバも根性出せば、
書ける。そんなやつは、めったにいないぜ。 貴重な存在だよ。 俺って。 特A級プログラマの
候補だね。 

43 :
>>20
今だからこそ、あんたの言ってた事がわかるよ。 アミーゴ!! サンキュ。
俺も成長したわ。

44 :
お兄ちゃんが言っていたスレはここのことだったのか。
何がなんだかさっぱり分からないが面白いスレだ。
ところで MVC モデルって何?

45 :
これからは Berlin が流行ります。
X は終焉を迎えます。

46 :
それってX上で動いてるソフト書き直さないと駄目なんでしょ?
最低Emacsがないと嫌だ。

47 :
そんなん、emacs -nw でペイしてくれ。

48 :
あげるから。 文句いうやつは、しねよ。

49 :
す、すごいよ、UNIX板・・・
かっこいいよ、プログラマーさん!
瀕死の巨大掲示板群を救うべく漢たちは立ち上がった
かっこよすぎ!
http://www2.odn.ne.jp/~aaq77600/kiroku.swf

50 :
ごめんなさい、間違えました!

51 :
>>49
かっこわりーなーおめ。 ばーか、はーげ。

52 :
>>45
禿同
いいかげん、X 捨てよう。普及の足引っ張られてるよ

53 :
>>45
商業誌で Berlin の解説記事書いた俺がこういうこと言うのもなんだが、
あれは(少なくとも近未来のうちには)流行んねーだろうな…
デザインとか、開発寄りな視点からは面白いんだが、
とにかく遅くてとにかく実用的な機能がないのはいかんともしがたい。
X とか Windows くらいに ad hoc なほうが、実用上は便利なのも確かだよ。

54 :
>>53
おぉ、その記事の内容が読みたいです。
あと十年かかってもいいから、ポシャらないで欲しい...

55 :
>>54
あの記事、Berlin とかいいつつ半分以上 Berlin じゃないんだけどね。
某 LJ の 2001 年 4 月号だから、まだ探せばどっかにあるかもねん。
技術的にはそんな突っ込んだことは書いてないから立ち読みでいいと思うよ。

56 :
Berlinって端末側のセキュリティーがヤバそうな気がする。

57 :
>>56
むう、どんなふうに?
というか、やさしく Berlin を解説してくれてるとこってないかな。

58 :
ひさびさに上げてごめんね。
オマエら皆のおかげで、大分 X toolkitのメカニズムを理解できました。
Widgetがインスタンスレコード、クラスレコード構造体で構成されていること。
そして、その構造体のデータをウィジェットとして実現するのが、実はイントリン
シックス関数であること。 このイントリンシックス関数が、クラスソースファイルで初期化
されているクラスレコード構造体に記録されているメソッド関数をコールし、このメソ
ッド関数が、オブジェクトとしてのウィジェットの内部データの役割をもつローカルホス
トのメモリ上に割り当てられているインスタンス構造体のメンバ変数(リソース)を操作
することで、ウィジェットの個々の属性を決定すること。 あと、アクションとコールバ
ックの違いも良く理解できた。 イントリンシックスで定義されるメタクラスの構造体のデータ
構造によって、イントリンシックト関数と、ウィジェットのインターフェースが定義される事
も分かったよ。  これ以外にも、Xtoolkitについての理解は非常に増えた。何が誤解してる
部分ってあるだろうか?  もう、自分でウィジェットセット作る気でいるんだけど。 調子
にのりすぎ?

59 :
>>1
理解の成果をどっかのWeb Pageにまとめてください
役立たずの五流UNIX使い達が諸手を挙げて喜びますよ

60 :
>>58
どうせ作るならいかしたウィジェットセット作ってくれい。
UNICODE に逃げないマルチリンガルなのとかが欲しい。

61 :
>>59
いやいや、まだ人様にご教授できるほど、知識を深めた訳じゃねーからな。
Xtに関してはある程度は理解したが、UNIXや、X-window systemの内部構造に関して
は、素人のペーペーだよ。 
>>60
おう、期待してまっててくれ。 今世紀中には完成させるからよ。 とびっきりクールな
ヤツを。

62 :
>>61
Xtだけでもいいです〜
気長に待ってます〜

63 :
これからの時代を切開くのは >>1 オマエのような
野心的かつ傲慢な暇のある厨房どもだ! がんばれよ!

64 :
>>63
実際問題、理由知り顔で何もしないようなのよりは
知らねーぜ。もんくあっか、でもやったるでーみたいなののほうが
はたから見ててたのもしいかもだ。
Xt に飽きたら X に代るウィンドウシステムを開発してくれ…。

65 :
>>62
今だから言うが、HPの作り方って知らないんだよね。 恥ずかしいわ。
俺に聞くより本読んだほうが、多分、確実で効率的だよね。
ってことで、傲慢にも参考文献書いとくから、それ見て勉強しる。ちなみに、
一冊のみを見て勉強するより、2,3冊同時進行で読んだ方が良いんじゃねえか
なあ。 やっぱ、本によってはクセがあるし、大事な事は共通して書いてあるか
ら、比較して読めば重要な部分がよく分かるぜ。
「X toolkit プログラミング 第2版 D.Aヤング トッパン」
「実践 X-Window Ver.11 プログラミング XlibとXツールキット 加藤木一夫その他著 日刊工業新聞社」
「OSF/Motif プログラミング入門 コムラッド著 アスキー出版」
1番目と2番目のヤツは、ツールキットの使い方だけじゃなく、widgetの内部構造とか、widgetとXt関数とのインターフェース
けっこう詳しくて、かなり勉強になった。

66 :
>>63
おまえもな。
>>64
Xのソースファイル読んでみたが、最初の2,3行で挫折したね。 あれ以上の
もんが作れるなんて、神だね。 俺には無理。 せいぜい、神が残した軌跡を、息
を切らしながら辿るのが精一杯さぁ。

67 :
>>65
ありがとー。
見掛けたら買おっと。
# 買ったけどまだ読んでない本がいっぱい...

68 :
>>66
> Xのソースファイル読んでみたが、最初の2,3行で挫折したね。 あれ以上の
> もんが作れるなんて、神だね。 俺には無理。 せいぜい、神が残した軌跡を、息
> を切らしながら辿るのが精一杯さぁ。
最初から完成したものは作らなくていいんじゃないの?
ある程度かたち作って「後は任せた」でも何とかなりそうな気がするけど。

69 :
>>68
新しいコンセプトを提示するだけでもいいかも。
手を動かして実装したがる人は山程いるもん。

70 :
このスレの>>1はどこいった?

71 :
>>28
binnary互換性の問題、例えばfield(slot) access、をInterviewsでは、
実装クラス(private:なslotを集めるクラス)を別に置いて、
インターフェースクラス(public:にaccessしてよいslotを含むクラス)から、
何とかImpl* impl; として、slotの位置がずれないようにして解決している。
上で言う実装クラス、インターフェースクラスというのは、
Interviewsにおける概念で、一般的な用語とは違う。
(両方実装を持つ; C++のabstract classじゃない)
クラスライブラリのbinary互換性を追求すると、
smalltalkとかLispとか、CORBAとかCOMの世界と近くなるね。

72 :
何で今頃上がってるんだろ…
ウィジェットのサブクラスくらい作れるようになったかな?>>1

73 :
doc/specs/ の下のドキュメントってどーやって読めばいいの?
tld なんとか|nroff -ms|less とか適当にやって読んでるけど
正しい読みかた教えてプリーズ。

74 :
Windowsだと、
XlibがWindowsAPIで
XtはMFCみたいなものですか?

75 :
XlibとXtのリファレンスどっかにないですか?
英語でも日本語でも可

76 :
検索しても本の紹介しかないんですよね。
関数名、引数、返値、機能が一覧表になってるのがあるとうれしいんですが

77 :
>>75
xc/doc/の下にあるYO!
読みかたよーわからんけど...(w

78 :
xcはどこにあるんですか?

79 :
あ、すいません、見つかりました

80 :
おまいらWidgetを持ったツールキット、GTK+はどうですか
漏れ的には便利でいいと思いますが、あのlook&feelは世間的にどう思われてるのか
あの設計についてはどう思われてるのか
忌憚なきご意見をお聞かせください

81 :
>>80
look&feelをかなーりカスタマイズできるのが
GTK+のウリのような気もする今日このごろ。

82 :
>>80
CでOO。そんなにがんばらなくてもいいだろ的無茶さ。
手で書きたくないタイプ量です。

83 :
>>82
なんとかクラスにしたいよね

84 :
おまいらgtk--を知らないのですか?

85 :
>>84
gtk--ってヘボいってうわさなんだけどどう?
時間があったら漏れも見てみたいけど
そこまで必要に迫られてない手前、忘れてまう

86 :
うわさだけで判断すな

87 :
http://www.wakhok.ac.jp/biblion/index.html
稚内北星学園大学の講義録。
XやJavaのプログラミング初学者には大変有益な情報がおいてある。
下手な本買うよりずっといい。

88 :
>>87
X のプログラミングの話は1994年度の講義まで遡るのね。
Xlib の話は今でも役に立つだろうけど、
toolkit として XView というのはさすがに古過ぎ。

89 :
gtk--ってメソッド呼び出しくらいじゃなくて、
ウィジェットの継承とかもC++でちゃんと書けるんですか?

90 :
>>89
FAQも読めん奴にはどうせ使えんな。
http://gtkmm.sourceforge.net/docs/gtkmm-faq.html#AEN97
> Q: 継承や多態など C++ のおいしい部分は gtkmm でも使えるの?
>
> A: うん。gtkmm のオブジェクトはふつうの C++ オブジェクトで、
> GTK+ の継承モデルがそのまま C++ で実装されてる。ふつうの C++ クラスに
> できることはぜんぶ gtkmm ウィジェットにもできるよ。ただし、
> gtkmm のコード中で例外を投げるときは注意してね、これらの例外は
> C のコード中ではうまく伝わらないから。

91 :
XWindowの、プログラミングの質問です。
XtoolkitでXIMを使いたいんですが、
イベントのプロシャージャでXmbLookupString()を使っても日本語が入ってきません。
それどころかkeysymまで入ってきません。
どうやったらIMが使えますか?

92 :
>>91
自分が何をどうしようとしているかもっと具体的に書いた方がいいんじゃない?

93 :
具体的に書きます。XtにはAthenaでもMotifでも、元々日本語が入力できるウィジェットが
ついていると思いますが、私は自分でIMを使った入力を受け取りたいのです。
おそらくXt内部でIMの操作をしているため、イベントのプロシャージャが呼ばれた時点では
キーシンボルや入力された日本語の文字列などがXtに取られてしまっているのだと思います。
キーが入力された時、Xtを介さず直接呼ばれるようなコールバック関数を実装できれば
解決すると思うのですが、何かいい方法はないでしょうか?

94 :
素の Xt では IM 使ってないし、Athena では XmbLookupString は使ってないよ。
X11R6.6 のソースの中では xterm が使っているみたい。みたところ処理の手順は
XOpenIM で IM を開く
XCreateIC で入力コンテクスト作成
XSetICFocus でフォーカスの設定
XmbLookupString で処理された文字列の所得
かなあ? やったことないけど。うまくいったらレポートしてくれ。俺も知りたい。藁

95 :
>>90
ありがとう。
他言語のバインディングでもgtk+のOOって使えるのね。

96 :
ちょっとやってみたらできたのでサンプルを張り付けておく。
X のプログラムはあんまりしたことないんで初歩的なとこで
突っ込みどころが多いかもしれんがそれはかんべんしてくれ。藁
H4sICNUD7jwAA3NhbXBsZWltLmMApVZtU9tGEP6Mf8UOGahMlMZ0+qEDgZnghNRTTGgdEk0pw5yl
lX3j853m7mSjBv579+5kW9QY6PSLLe3t7T779qxecZmKMkN4Z2zG1Y/j49arpSjZ33+bCD5cl/ak
1Vwanq4fDdzJ6APm5hFjzKrpI1fGKIQTt9Ix07CXMyGGLJ3caDSq1Cmaq2s4gu+wPUBjuJLhwgjV
FK2uDmD/p87tL53tGM4vz87g/rCV9Lpwy1O65CSHrdZM8Qx+ZTITOECBqf3GZabm0TeejdDCPIbE
XiguLWpIBUdpbzJmGYk/zugF9jCGE6UEMgl7Wbv1vQVg5tymY4jwzbGtCmyDE6bMIHx0ds6V5Xl1
QDKA5JNmw9+wGiqmsyixH7gpBKuieds5rrG4ly+6xLi1teX0+yrD96aSaQz/eu2WWhOqL3yK7cPg
YIC21z1VaWkiCryWDjWyyeEC1RmyGT5AdSlHm3E94uRSmifd3LfuH6SaLF9QDc3/SrPviWGZX51c
ng56f147R2R4UE1hgpWppk4wsMyWBoz/o3oD8HxZGTg6ggWUUCWKZTo8U2pSFqFfXTQxRMlCDbMa
UJsQkXOC5b3HsBuc0kNwVudg0Qy1sPbi856clHmO+vMMdS7UPOQeIC/Isc3pRoZax7A99GqgSA+c
4l9yuzbeSPHCZgB/riRutCcVcFmUFiq0L7DVpTybjcYaOk1ba3o77tin7Dl/oYbPOKyVYCfzZkPu
n7N8ouz4GbteZYPVp2KnO08GmGHOSmE3ei/lRKq5XKXwfjE2pAdTxmXkHpgeUTsGNqTn2dV1mIXE
vi+KrqL5uSWlorhJw7OzVc+YVYXAGQonSnp9osHpkga9ZGArgQZgj05ujH9xJ84t95OTWCKTMyZH
JRvhhVZp5G4Hcg2/HvvCEVlP7Ff2uUBJ4ARPmSWKjnYb8Jp3Y+g4gtvagt0QpYsvhnXOr7VMg/JD
iF3BjFkCIST1tEch1MQh6fUbbLZA2n6IwxtoO3LwT/XIrpXslHGBGYULigzXI0WLZ6yyVRk12lJL
2A8sGPAkn4gs+1+ZKNGxJVFGcv57ibrqORO+DMQiqyrUiOrWubuD1dGzIJuoIFNo5A8WTFkUSlOj
yAq8nRXepCuUQcoS+dgQwpoPMqfIHOUieAvQDiDYzJWGiFP+O4cQlfRtMJKkacZ0o83hXSOYN8ep
Kon5694D/vr1xrh2Oj/fAo1b83YdFma15IpftzeCDiH7rv4DmeB/Y2iiVVMst0UUvhiSLo2zxV7X
14yaMNSDitesGw0SLQrMuKWNOqYNAndhuBz916IHl7t+3YVV31j6q95sKvsN+yLdFzVxo4dTH1xd
wXo8/0NbBA7KwnYMS14vccXhwyeg7TMzoZz4j46VJIZTJgwuAlj/ImsQzFOOFnt6o82FQpMnPHv2
iWOJ0IuowU90fN/6B215Q6sLCwAA

97 :
どうもありがとうございました。xtermのソースを読んでみたところ、
イベントの処理はコールバックでもプロシージャでもなく、
XtAppAddActions()で登録するアクションで行っていたんですね。
これは盲点でしたが、このソースを参考にしたところ私の方でもできました。

98 :
age

99 :
Xの設定に関しては腐るほど本がでてるのに、プログラミング
に関してはほとんど見当たらないんですね。

100read 1read
1read 100read
TOP カテ一覧 スレ一覧 削除依頼
・ 次のスレ
新品のULTRA2(200MhzX2)を3万で買ったんだ!
女子高生のカーネル領域における言語的等価性
IRC Clients 総合スレッド
UNIXでJAVA