1 :
名無しさん@お腹いっぱい。:
いや、ほんと。
一生懸勉強したけど、わかんないんだ。
widgetは、オブジェクト思考なんだろ? そんで、継承とかするんだ。
widgetの使い方は、わかるんだけど、widgetの本質がいまいち分かんないんだ。
既存のwidgetを使わずに、新しいwidgetをつくるには、どうすればいいんだよ。
xli
ミスった
xlib
5 :
名無しさん@Emacs:02/01/18 08:07
XFree86 から xclock あたりのソースをひっぱってきて真似しろ。
新しい widget (たとえば Giko) を作るには、基本的には
・ export 用に Giko.h をつくって定数を定義。
・ 内部用に GikoP.h をつくって構造体を定義。
・ Giko.c にresource定義とコールバックを書いてできあがり。
そんなにむずかしくない。とにかく最初は人のソースを見よう見まねでやれば
いい。Xt 自身のソースもわりとわかりやすいぞ。
でもなんでいまさら Xt?
6 :
名無しさん@お腹いっぱい。:02/01/18 10:10
Widget の諸機能は基本的な Widget の構造に依存するので、
既存の Widget を全く使わずに作るのは無理。
枠組みごと作るなら別だが。
Xt の場合、一般的には子を持たない Widget は Core を、
子を持つ Widget は Composite か Constraint を継承して
作る。基本的は
>>5 が言ってくれてるとおりだ。
Xaw ってサンプルもあるんだから実際のコード読んでみるべし。
しかしたしかになんでいまさら Xt?
>>5 >>6ふーん、あんたらプロ? 詳しいね。 だって、X ToolKitでプログラミングできる
ってかっこいいじゃん。 ねえ? その他に楽に開発にできるツールはあるんだろうけど
そんなの使ってるなんて、ださいよね。 オレは、勉教も何事も、低レベルに拘るの。
例えば、微分積分を勉強したときは、表面的な知識に囚われず、実数の公理からみっちり
やるタイプの人間なんだ。 だから、高級言語を使ってプログラム作るときも、低レベルを
意識する。 だから、X−Windowのアプリを作るときも、Xlibや、Xtoolkitを使いたいんだよ。
>>5そんで、質問の続きなんだけどよお、 widgetのクラスを作るには、
3つのファイルが必要なのは分かった。 けど、widgetってインスタンス
として画面上に実現されたら、当然グラフィカルなLooK&Feelを持つわけじゃん?
その複雑な性質はどうやって記述するの? 構造体を作って、メンバにデータを入力
するだけじゃ出来ないでしょ? widget自身の画像や、その動作はどうやって記述す
るんだ? もし、C言語で書くんなら、Xlib使って書くのか? 例えば、widgetのルックス
を記録したビットマップを何枚か容易しといて、特定のイベントは発生したら、あらかじめ
用意しておいた何枚かのビットマップを交互に表示することで、widgetの動作を実現したり
してるわけ? そんで、それを記述してるのが、3つのヘッダファイルのうちの、拡張子が
c のファイルなのか?
>>8Xt は基本的に描画周りはいじらんのよ。
X Toolkit Intrinsics っていう名前が示すとおり、
どっちかといえば Toolkit を作るためのメタクラスの
集まりなんだね。
Look & Feel な部分は、Xaw とか Motif みたいな Widget Set
のほうで Xt の Widget Class から派生させて実装するんだが、
それは Xlib とかのプリミティブな描画関数でガリガリ書いてるわけさ。
>>7> オレは、勉教も何事も、低レベルに拘るの。
> 例えば、微分積分を勉強したときは、表面的な知識に囚われず、実数の公理からみっちり
Xtなんて全然高レベルだと思うんですが...
というつっこみは無しですか?
ひょっとして、物理/数学 -> 電気/機械 -> (略) -> Xtって
今まさにたどりついたところ?
カコイイ..
>>11ほう、なるほど。 やっぱ、ボタンとかスクロールバーの、イベント発生時の
挙動(例えばボタンがへこんだり)ってのは、Xlib使って書くわけだ。
ってことは、1つ1つのwidgetは、ウィンドウか、ウィンドウの集合体に、統一的な
デザインのビットマップを貼りつけたものに過ぎない訳だろ? んじゃあ、オレにも
作れそうだな。
>>13>Xtなんて全然高レベル、、、、
まあ、高レベルなのは分かるよ。 けど、Xlib使っても美しくないもんね。
ほんとなら、アセンブリ使ってX-Windowのプログラム作りたいんだけど、
どう考えても、不可能に近いので、Xlibつかってんだよ。 けど、それじゃあ
美しいインターフェースが作れないから、しかたなくXtoolkitに手を出したわけだ。
けど、オレは、XlibとかXtoolkitを使ってプログラム作ってる時でも、常に低レベル
を頭の中で意識する。 たとえば、頭の中でアセンブリ言語に直してみたり、CPUやメモリ
内部での、MOS−FETの動作までも想像する。
XtVaCreateManagedWidghtさげ
なんか何がやりたいんだかわからない、ネタくさい 1 だなあ…まあいい。
>>11 もいっているとおり、Xt はたんなる枠組みを提供するにすぎないよ。
実際のプログラミングはわりと低レベルだな。ピクセル座標を
もろにいじらなきゃなんない。まあ、そういうのが好きなら楽しいかもしれない。
直 Xlib に比べて楽なのは、イベントハンドリングだな。
これについてはあまり考えなくてもいいようになってる。
だから Xaw だけで間に合うようなプログラムを作っているかぎりは、
ある程度エレガントにできる。ただしリアルタイムで状態を
変化させようとか、ルートウインドウに文字を書こうとかすると
途端にエレガントじゃなくなるな。
>>16だろ。
>>18Xtは、単なる枠組みを提供するってどういう意味よ。 その辺が、ちょい
分からんなぁ。 Xtは、Xt-Intrinsic とwidgetのセットの事だろ? そんで、
このwidgetsetを色々と入れ変えることで、様々な違ったLook&Feelを実現するわけだろ?
そんで、Xt-Intrinsic と widgetの関係は、オブジェクト思考的に言うと、
メソッドと、オブジェクトの関係なんだろう?
おろ、伸びてるや。
>>19それはかなり違うとおもう(苦笑)>メソッドとオブジェクト
Xt-Intrinsic は、Cでオブジェクト指向するための仕組みと、
それからいくつかのWindowプログラミングに必要な基底クラスを
提供してくれてるのだ。
Cでオブジェクト指向的なプログラミングをするには、ポインタを
駆使しまくって、いろいろがんばる必要があるんだけど、Xt は、
X からのイベントの基本的な流れを処理してくれる仕組みを一通り
準備してあって、きめられた構造体にきめられた手順で関数を
くみこんでいくだけで、それを必要に応じて自動的に呼び出して
くれるようになっている。継承までサポートだ。それから、
ショートカット処理とかイベント変換とかタイマ処理とかコールバック
処理とか、そういった基本的なウインドウプログラミングの技術も
一通り組みあがったものが入ってる。
でもそこまで。Xtは、スクロールバーも画像表示してくれるものも、
テキスト表示してくれるラベルも無い。本当に裸の最低限の Widgetのみなわけ。
とういうことで、Widget Set をつくって足さないと実用にはならんってことね。
WidgetSet はけっきょくそれぞれの独自仕様組み込んでつくられるのが
通例なので、「いろいろ入れかえる」なんて器用なことは現実には無理だよん。
Xaw3D が一応 Xaw 互換をうたってるけど、作った人が互換性の保ち方を
知らなかったのか、作り方おもいきり間違えてるので、実は
互換性が無い。
組み込みとか配置とかそういった基本的な部分は Xt の
範疇だから、そのレベルだと互換性はあるので「混ぜて使う」ってのは
できるけどねん。
正直、低レベルということを言うためにアセンブラと
言ってしまう時点で「Xの基本からやり直せ」と
煽ってしまいたくなるのは私だけ?
「メソッドと、オブジェクトの関係」でかなり萎えたね。
>>1 よ、元気なのはいいんだが、あまり思いつきの
質問はするなよ。自分がちゃんと考えてから質問して、
相手の答えから学ぶ能力があるということを示さなきゃ。
でないと答えるほうも疲れるし、いずれ相手にされなくなるぞ。
23 :
名無しさん@お腹いっぱい。:02/01/19 03:53
PerlTkとかTcl/Tkで手っ取り早く動かすのが楽。
X Window Systemってのもまた、Unix系文化の象徴的な存在だよなぁ。
いつまでたってもプリミティブ部分しか無いから、似たような物(ここ
ではToolkit)がいくつも作られては消えると。
まぁ「選択の自由がある」と言えば聞こえはいいけど、「単に統一性が
無い」とも言えるし。元々QTにライセンス問題があったとは言え、今の
「GNOME/KDEの2大勢力とその他」みたいな状態もなんだかなー。
どっちでもいいから1つに絞れよって感じ。
って事で俺は(Toolkitが何であっても)X上でGUIのプログラムは書く気に
ならんし、X自体がどうにかならん限り、GUIとしてWindows並かそれ以上
の存在にはなれんだろ、とか思ってたりするんだけどどうか。
25 :
名無しさん@Emacs:02/01/19 09:09
>>24正直同意だね。標準化したってのは偉いと思うけど。
> って事で俺は(Toolkitが何であっても)X上でGUIのプログラムは書く気に
> ならんし、X自体がどうにかならん限り、GUIとしてWindows並かそれ以上
> の存在にはなれんだろ、とか思ってたりするんだけどどうか。
Xもそうだし、いーかげん C で全てをやるのにも無理がでてきた
(とくに Xt なんか見てると「よくがんばったね、でも…」と言いたくなる)。
どっかの団体がドカンと標準を普及させてくれればいいとは思ってるものの、
フリーでやってる連中にそんなおカネはないし、
いまのUNIXベンダはどこも元気なさそうだし。もうしばらくは
このままずるずるとマイナーOSの道を行くんじゃないかな。
MacOSX for 86 とかが出れくれれば、案外 Cocoa + ObjC とか
普及するかもしれないよ? でもApple があの調子じゃなあ。。。
>>20「ポリシーは提供せず、メカニズムのみ提供する」
> Xaw3D が一応 Xaw 互換をうたってるけど、作った人が互換性の保ち方を
> 知らなかったのか、作り方おもいきり間違えてるので、実は
> 互換性が無い。
あれはしょうがないんじゃないかな?
instance record の互換性を崩さずに拡張データを持たせようと思うと
めんどくさいことになるんだよね。class record の方は extension で
なんとかならなくもないのだが。
現在のオブジェクト指向の語法を知ってると、
Xt のデザインはすごくもどかしい。
結局、構造体を並べるという静的なクラス継承を用いて、
インターフェースだけではなく実装の方も拡張しようとしてしまう方法の
限界なんだよね。
今のオブジェクト指向の考え方だと「あまりうまくない」ってことになる。
まあそれは結果論だが。
結局、Interviews に期待しろってこった<大嘘
> 結局、Interviews に期待しろってこった<大嘘
それでですな、Interviews はその辺をどう解決してるかというと、
MVC モデルになるわけですな。
View と Control を分離したクラスにして、
この 2 つを動的にバインドできれば、
あるいはもうちょっとまともだったかもねん。
でも、結局さぁ、Xaw3D の非互換性が問題になるのって、
アプリケーションが独自にウィジェット拡張してる時だけだし、
MVC にしたとしても View の方で結局同じ問題が起こると思うんだが…。
感覚的な話をすれば、Xaw の平板なルックを期待した拡張ウィジェットが
そのままじゃ Xaw3D の立体なルックにあわないことを考えれば、
やっぱり完全な互換性なんて持てないっていう結論になると思うんだが、
拡張ってのがいつもがいつもルックの問題ってわけでもないので、
そういうところでは MVC を使えると、なんぼか救いようがある気はしますね。
スレと全然関係ないけどさぁ、MVC って観点だと XUL おもしろいよ :D
>>All excluding me
レスいっぱいありがとさん。 あんたら、なかなか親切だよね。 オレ様、ジーンときちゃったよ。
どうもありがとう。 けど、やっぱ、いまいちわかんねーんだよなあ。 掲示板で聞いたり、理解
するのは限界があるとおもうんで、やっぱ何冊か本買って勉強しる。
>>All excluding me
レスいっぱいありがとさん。 あんたら、なかなか親切だよね。 オレ様、ジーンときちゃったよ。
どうもありがとう。 けど、やっぱ、いまいちわかんねーんだよなあ。 掲示板で聞いたり、理解
するのは限界があるとおもうんで、やっぱ何冊か本買って勉強しる。
33 :
名無しさん@お腹いっぱい。:02/01/21 02:43
実は勉強になるスレだな。
1よ、これからも良質なネタを提供してくれな。
>>33 まかしときな。 クソスレいっぱい立ててやっからよ。 後で、泣いたら、腹蹴るから。
ところで、やっと分かったわ。 本読んで分かった。 ウィジェットのカラクリが。
何で、ウィジェットを実現するファイルが3分割されてるかもわかった。
Xtの関数は、実は、ウィジェットを定義してるプライベートの方の構造体に登録されてる
メソッド関数を呼び出してる訳だね。 ってことは、このメソッド関数を自分で、予め定めら
れたフォーマットで定義しなおせば、好き勝手にウィジェットのlook&feelを実現できちゃう
訳だ。 引いては、自分でウィジェットのクラスも作れちゃうってことなのね。
35 :
名無しさん@お腹いっぱい。:02/01/23 19:04
>>35 そんなに、知りたいかぁ? 焦らしちゃうぞ、オレ。
まあ、教えてやろうぞ。 感謝しな。
その名も、「X Toolkitプログラミング 第2版 D.Aヤング著書 トッパン」
だ。
39 :
名無しさん@お腹いっぱい。:02/01/23 21:38
X 捨てて Berlin マンセーしてる勇者はここにいないのか?
41 :
名無しさん@お腹いっぱい。:02/01/23 22:25
>>38 質問のレベルの低さに反比例した態度のでかさが彼を彷彿したもんで・・・
違ってたならスマン。
>>41 てめっ! 誰の質問レベルが低いだろ? ごりゅあ。 十分高いじゃん。 まじばなし。
Xtoolkitの核心に触れる事が出来るプログラマがこの板にはいるのかよ。 いないだろ
ホントのところ。 俺なんか、結構レベル高い方だと思うよ。 内部のメカニズムに無関心で
ただ漠然とツールキット使ってるやつもいるだろう。 3流のプログラマーだよ。
俺みたいに、量子力学を勉強して、MOS−FETの動作原理も理解して、CPUやメモリの構造や、
動作原理を理解できて、その上でアセンブリ言語も使えて、デバイスドライバも根性出せば、
書ける。そんなやつは、めったにいないぜ。 貴重な存在だよ。 俺って。 特A級プログラマの
候補だね。
>>20 今だからこそ、あんたの言ってた事がわかるよ。 アミーゴ!! サンキュ。
俺も成長したわ。
44 :
名無しさん@お腹いっぱい。:02/01/25 15:01
お兄ちゃんが言っていたスレはここのことだったのか。
何がなんだかさっぱり分からないが面白いスレだ。
ところで MVC モデルって何?
これからは Berlin が流行ります。
X は終焉を迎えます。
それってX上で動いてるソフト書き直さないと駄目なんでしょ?
最低Emacsがないと嫌だ。
そんなん、emacs -nw でペイしてくれ。
あげるから。 文句いうやつは、しねよ。
49 :
名無しさん@お腹いっぱい。:02/02/03 06:23
ごめんなさい、間違えました!
>>49 かっこわりーなーおめ。 ばーか、はーげ。
>>45 禿同
いいかげん、X 捨てよう。普及の足引っ張られてるよ
>>45 商業誌で Berlin の解説記事書いた俺がこういうこと言うのもなんだが、
あれは(少なくとも近未来のうちには)流行んねーだろうな…
デザインとか、開発寄りな視点からは面白いんだが、
とにかく遅くてとにかく実用的な機能がないのはいかんともしがたい。
X とか Windows くらいに ad hoc なほうが、実用上は便利なのも確かだよ。
54 :
名無しさん@お腹いっぱい。:02/02/04 03:00
>>53 おぉ、その記事の内容が読みたいです。
あと十年かかってもいいから、ポシャらないで欲しい...
>>54 あの記事、Berlin とかいいつつ半分以上 Berlin じゃないんだけどね。
某 LJ の 2001 年 4 月号だから、まだ探せばどっかにあるかもねん。
技術的にはそんな突っ込んだことは書いてないから立ち読みでいいと思うよ。
Berlinって端末側のセキュリティーがヤバそうな気がする。
57 :
名無しさん@お腹いっぱい。:02/02/04 11:00
>>56 むう、どんなふうに?
というか、やさしく Berlin を解説してくれてるとこってないかな。
ひさびさに上げてごめんね。
オマエら皆のおかげで、大分 X toolkitのメカニズムを理解できました。
Widgetがインスタンスレコード、クラスレコード構造体で構成されていること。
そして、その構造体のデータをウィジェットとして実現するのが、実はイントリン
シックス関数であること。 このイントリンシックス関数が、クラスソースファイルで初期化
されているクラスレコード構造体に記録されているメソッド関数をコールし、このメソ
ッド関数が、オブジェクトとしてのウィジェットの内部データの役割をもつローカルホス
トのメモリ上に割り当てられているインスタンス構造体のメンバ変数(リソース)を操作
することで、ウィジェットの個々の属性を決定すること。 あと、アクションとコールバ
ックの違いも良く理解できた。 イントリンシックスで定義されるメタクラスの構造体のデータ
構造によって、イントリンシックト関数と、ウィジェットのインターフェースが定義される事
も分かったよ。 これ以外にも、Xtoolkitについての理解は非常に増えた。何が誤解してる
部分ってあるだろうか? もう、自分でウィジェットセット作る気でいるんだけど。 調子
にのりすぎ?
59 :
名無しさん@お腹いっぱい。:02/02/15 00:55
>>1 理解の成果をどっかのWeb Pageにまとめてください
役立たずの五流UNIX使い達が諸手を挙げて喜びますよ
60 :
名無しさん@お腹いっぱい。:02/02/15 01:06
>>58 どうせ作るならいかしたウィジェットセット作ってくれい。
UNICODE に逃げないマルチリンガルなのとかが欲しい。
>>59 いやいや、まだ人様にご教授できるほど、知識を深めた訳じゃねーからな。
Xtに関してはある程度は理解したが、UNIXや、X-window systemの内部構造に関して
は、素人のペーペーだよ。
>>60 おう、期待してまっててくれ。 今世紀中には完成させるからよ。 とびっきりクールな
ヤツを。
>>61 Xtだけでもいいです〜
気長に待ってます〜
これからの時代を切開くのは
>>1 オマエのような
野心的かつ傲慢な暇のある厨房どもだ! がんばれよ!
>>63 実際問題、理由知り顔で何もしないようなのよりは
知らねーぜ。もんくあっか、でもやったるでーみたいなののほうが
はたから見ててたのもしいかもだ。
Xt に飽きたら X に代るウィンドウシステムを開発してくれ…。
>>62 今だから言うが、HPの作り方って知らないんだよね。 恥ずかしいわ。
俺に聞くより本読んだほうが、多分、確実で効率的だよね。
ってことで、傲慢にも参考文献書いとくから、それ見て勉強しる。ちなみに、
一冊のみを見て勉強するより、2,3冊同時進行で読んだ方が良いんじゃねえか
なあ。 やっぱ、本によってはクセがあるし、大事な事は共通して書いてあるか
ら、比較して読めば重要な部分がよく分かるぜ。
「X toolkit プログラミング 第2版 D.Aヤング トッパン」
「実践 X-Window Ver.11 プログラミング XlibとXツールキット 加藤木一夫その他著 日刊工業新聞社」
「OSF/Motif プログラミング入門 コムラッド著 アスキー出版」
1番目と2番目のヤツは、ツールキットの使い方だけじゃなく、widgetの内部構造とか、widgetとXt関数とのインターフェース
けっこう詳しくて、かなり勉強になった。
>>63 おまえもな。
>>64 Xのソースファイル読んでみたが、最初の2,3行で挫折したね。 あれ以上の
もんが作れるなんて、神だね。 俺には無理。 せいぜい、神が残した軌跡を、息
を切らしながら辿るのが精一杯さぁ。
>>65 ありがとー。
見掛けたら買おっと。
# 買ったけどまだ読んでない本がいっぱい...
>>66 > Xのソースファイル読んでみたが、最初の2,3行で挫折したね。 あれ以上の
> もんが作れるなんて、神だね。 俺には無理。 せいぜい、神が残した軌跡を、息
> を切らしながら辿るのが精一杯さぁ。
最初から完成したものは作らなくていいんじゃないの?
ある程度かたち作って「後は任せた」でも何とかなりそうな気がするけど。
69 :
名無しさん@お腹いっぱい。:02/02/17 23:09
>>68 新しいコンセプトを提示するだけでもいいかも。
手を動かして実装したがる人は山程いるもん。
70 :
名無しさん@Emacs:02/03/30 11:55
>>28 binnary互換性の問題、例えばfield(slot) access、をInterviewsでは、
実装クラス(private:なslotを集めるクラス)を別に置いて、
インターフェースクラス(public:にaccessしてよいslotを含むクラス)から、
何とかImpl* impl; として、slotの位置がずれないようにして解決している。
上で言う実装クラス、インターフェースクラスというのは、
Interviewsにおける概念で、一般的な用語とは違う。
(両方実装を持つ; C++のabstract classじゃない)
クラスライブラリのbinary互換性を追求すると、
smalltalkとかLispとか、CORBAとかCOMの世界と近くなるね。
何で今頃上がってるんだろ…
ウィジェットのサブクラスくらい作れるようになったかな?
>>1
73 :
名無しさん@お腹いっぱい。:02/05/08 14:02
doc/specs/ の下のドキュメントってどーやって読めばいいの?
tld なんとか|nroff -ms|less とか適当にやって読んでるけど
正しい読みかた教えてプリーズ。
74 :
名無しさん@お腹いっぱい。:02/05/08 14:28
Windowsだと、
XlibがWindowsAPIで
XtはMFCみたいなものですか?
75 :
名無しさん@お腹いっぱい。:02/05/08 14:30
XlibとXtのリファレンスどっかにないですか?
英語でも日本語でも可
検索しても本の紹介しかないんですよね。
関数名、引数、返値、機能が一覧表になってるのがあるとうれしいんですが
>>75 xc/doc/の下にあるYO!
読みかたよーわからんけど...(w
78 :
名無しさん@お腹いっぱい。:02/05/08 14:40
xcはどこにあるんですか?
79 :
名無しさん@お腹いっぱい。:02/05/08 14:42
あ、すいません、見つかりました
80 :
名無しさん@お腹いっぱい。:02/05/08 17:57
おまいらWidgetを持ったツールキット、GTK+はどうですか
漏れ的には便利でいいと思いますが、あのlook&feelは世間的にどう思われてるのか
あの設計についてはどう思われてるのか
忌憚なきご意見をお聞かせください
81 :
名無しさん@お腹いっぱい。:02/05/08 20:38
>>80 look&feelをかなーりカスタマイズできるのが
GTK+のウリのような気もする今日このごろ。
>>80 CでOO。そんなにがんばらなくてもいいだろ的無茶さ。
手で書きたくないタイプ量です。
83 :
名無しさん@お腹いっぱい。:02/05/08 21:29
おまいらgtk--を知らないのですか?
85 :
名無しさん@お腹いっぱい。:02/05/10 03:27
>>84 gtk--ってヘボいってうわさなんだけどどう?
時間があったら漏れも見てみたいけど
そこまで必要に迫られてない手前、忘れてまう
うわさだけで判断すな
87 :
名無しさん@お腹いっぱい。:02/05/10 08:09
>>87 X のプログラミングの話は1994年度の講義まで遡るのね。
Xlib の話は今でも役に立つだろうけど、
toolkit として XView というのはさすがに古過ぎ。
gtk--ってメソッド呼び出しくらいじゃなくて、
ウィジェットの継承とかもC++でちゃんと書けるんですか?
>>89 FAQも読めん奴にはどうせ使えんな。
http://gtkmm.sourceforge.net/docs/gtkmm-faq.html#AEN97 > Q: 継承や多態など C++ のおいしい部分は gtkmm でも使えるの?
>
> A: うん。gtkmm のオブジェクトはふつうの C++ オブジェクトで、
> GTK+ の継承モデルがそのまま C++ で実装されてる。ふつうの C++ クラスに
> できることはぜんぶ gtkmm ウィジェットにもできるよ。ただし、
> gtkmm のコード中で例外を投げるときは注意してね、これらの例外は
> C のコード中ではうまく伝わらないから。
91 :
名無しさん@お腹いっぱい。:02/05/24 15:28
XWindowの、プログラミングの質問です。
XtoolkitでXIMを使いたいんですが、
イベントのプロシャージャでXmbLookupString()を使っても日本語が入ってきません。
それどころかkeysymまで入ってきません。
どうやったらIMが使えますか?
>>91 自分が何をどうしようとしているかもっと具体的に書いた方がいいんじゃない?
93 :
名無しさん@お腹いっぱい。:02/05/24 15:56
具体的に書きます。XtにはAthenaでもMotifでも、元々日本語が入力できるウィジェットが
ついていると思いますが、私は自分でIMを使った入力を受け取りたいのです。
おそらくXt内部でIMの操作をしているため、イベントのプロシャージャが呼ばれた時点では
キーシンボルや入力された日本語の文字列などがXtに取られてしまっているのだと思います。
キーが入力された時、Xtを介さず直接呼ばれるようなコールバック関数を実装できれば
解決すると思うのですが、何かいい方法はないでしょうか?
素の Xt では IM 使ってないし、Athena では XmbLookupString は使ってないよ。
X11R6.6 のソースの中では xterm が使っているみたい。みたところ処理の手順は
XOpenIM で IM を開く
XCreateIC で入力コンテクスト作成
XSetICFocus でフォーカスの設定
XmbLookupString で処理された文字列の所得
かなあ? やったことないけど。うまくいったらレポートしてくれ。俺も知りたい。藁
>>90 ありがとう。
他言語のバインディングでもgtk+のOOって使えるのね。
ちょっとやってみたらできたのでサンプルを張り付けておく。
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
どうもありがとうございました。xtermのソースを読んでみたところ、
イベントの処理はコールバックでもプロシージャでもなく、
XtAppAddActions()で登録するアクションで行っていたんですね。
これは盲点でしたが、このソースを参考にしたところ私の方でもできました。
age
Xの設定に関しては腐るほど本がでてるのに、プログラミング
に関してはほとんど見当たらないんですね。
>>99 昔はイーパイ売ってたんだが、いまや素のXtやってるのはヲタだけ。
うちにも見なくなってホコリかぶってるのが数冊ある。
まぁねぇ。
そこそこポータビリティがある上に
てきとーに枯れてて、
しかも今や無料ソース付き。
本と格闘しながらグラフィック周りやGUIの作り方の基礎を勉強するには
結構いい題材だよねぇ
売ってる本は大きな本屋に行かないとなかなかないんだけど、
会社とか図書館とかなら結構あるとこにはまだあると思う。
結構古い本でも使えるのがいいところ。
いま働いてる会社の物置きロッカーの中も、手垢のついたその手の本が山積みになってるよ。
(^^)
104 :
名無しさん@お腹いっぱい。:03/01/20 01:11
cc -I/usr/X11R6/include -o hoge hoge.c -L/usr/X11R6/lib -lXt -lm
(^^)
あぼーん
あぼーん
あぼーん
あぼーん
あぼーん
まれにみる良スレであるにもかかわらず、
山崎6連発の屈辱は見るに耐えない。
したがってageる。
renice +19 sage
113 :
名無しさん@お腹いっぱい。:03/09/28 15:37
わけあってXtでプログラムを組むことになったのですが、
タイトルバーや枠などが無いウィンドウを作るにはどうすればいいのでしょうか?
何かリソースに書くんでしょうか?
114 :
名無しさん@お腹いっぱい。:03/10/02 16:12
>>113 もちろん。タイトルバーや枠の描画はウィンドウシステムの仕事だから、その
干渉を受けないためにはウィンドウのリソースにそう書かないとね。
自分もtoolkit勉強してきたけど、その総括としては、
Widgetの本体は、クラスソースファイルでこれはあらかじめコンパイルされ必要に
応じてクライアントプログラムに静的にリンクされる。 そしてインスタンスとして
実現されるWidgetの属性・個性を定義するのは、プロセスが動作するローカルホストの
メモリ上に確保されるインスタンスレコード構造体型の変数で、これのメモリ上の配置
と初期化は、イントリンシックス関数によって行われる。 そしてイントリンシックス関数
は必要に応じて、クライアントプラグラムに静的にリンクされたクラスソースファイル中の
あらかじめ初期化されてるクラスレコード構造体変数に登録されているメソッド関数を呼び出す。
そしてこのメソッド関数は、先に述べたローカルホストのメモリ上の対応するインスタンスレコード
構造体型変数の情報に基づきその挙動を決定する。 これであっているのかな。
Widgetのクラスソースライブラリ静的にリンクされるのか、動的にリンク可能なのかは分らないけど。
だいたい合ってるでしょ?
>>113 WMの干渉を受けないようにするにはウィンドゥに
OverrideRedirect属性をつければいい
実際にはXChangeWindowAttributesを使うか、Xtなら
overrideShellWidgetClassで新たにWidgetをつくるか。
どうもありがとうございます。
デスクトップマスコットのようなものを作っているんですよ。
ある程度できたら公開してみますね。
Xtのクラスは初めて見た時は驚きました。
構造体なのに関数を持っているんですからね。C++のクラスみたいです。
ところでXt用のクラスを集めているようなサイトってありませんでしょうか。
マルチカラム(テーブル)のウィジェットが欲しいんです。
こうですか!?わかりません!
122 :
名無しさん@お腹いっぱい。:04/10/08 21:15:20
出来たか?
123 :
名無しさん@お腹いっぱい。:04/10/09 16:22:33
こんなもん今更発掘してどうすんだ?
UNIXはXしかすがるものないから不幸だよね(w
124 :
名無しさん@お腹いっぱい。:05/02/21 21:19:50
.NETスタイルのawt互換ライブラリ一緒に作りませんか?
awtじゃなくてxawでした。
126 :
名無しさん@お腹いっぱい。:2005/08/25(木) 00:17:55
いまさらXaw の互換と言われてもなぁ
、、、 ○/'ー´ヽ
、、.≡≡ (, `●´ )
、、≡≡〜( O┯O
、、≡ (☆)ヽ_/(★)
dayomon Toolkit
129 :
名無しさん@お腹いっぱい。:2006/08/21(月) 23:52:08
┳┻|
┻┳|
┳┻|ヘ_∧
┻┳| _Φ)
┳┻|⊂ノ
┻┳|J
¨¨¨¨¨¨¨
なつかしい
なにもかも
132 :
名無しさん@お腹いっぱい。:2010/03/22(月) 12:06:53
_
r-、' ´ `ヽr-、
ィ7 /l: ハヽハ トヾ 駄スレを沈めることはこの俺が許さん!
'|l |'´_` ´_ `| || 信念に基づいて行動する。
| |´ヒ} ヒ}`! l| それを人は正義と言う。
__ノ゙). 从 l, _'_. |从 今俺が行ってることは保守ではない、
,_'(_ ノ_ヽ ヾl.> - ,イ;リ 正義という名の粛清だぁ!
{ f:テ} {'f:テ}',/\ヽ--//ヽ
ヽ,r─‐ 、ィ .、、 i l>Y<! i '、 バーニング!
/ iゝ_ノ iヽ /l |l l ',
lンヽ/ムノじ
133 :
名無しさん@お腹いっぱい。:2011/09/21(水) 17:58:03.71
Xのツールキットオプションの -geometry で、
-geometry 200x100-0-0 (画面右下)
みたいに画面の端からの相対座標で指定することは出来ますが、
そうじゃなくて、画面の中央からの相対座標で指定するオプションはありませんか?
今は、画面のXY解像度を取得してそれを2で割って中央座標を計算してとか
しなければなりませんが、もっと簡単に、画面の中央座標を1発で指定したいのです。
今月はじめ、職場に新しいPC(Core i7の結構ハイエンド構成)が入りました。
多分私が運用保守をまかされそうな雰囲気です。業務的にとある構造分析や
シミュレーションなど行う必要があり、X Window System上のアプリケーションを
使用するのは聞いていたのですが、OSを起動して黒いバックに白い文字だけの
英語の画面に表示されていたのはlogin:というプロンプトでした。
「うへぇ〜、よりによってxinit方式かよ」
CUIログインなんて古い、コマンド入力なんて古い、今の奴は日本語入力設定大丈夫
なのか(XMODIFIERS)、今時のマルチシート環境に対応できるのか不安はつきませんし、
xinitユーザーが少ないのでネット上の情報も少なく調べるのも大変です。
おそらく導入に際して、大学など教育機関で最初にxinitに触れて刷りこまれた人間が
強気の知ったかぶりをして発言権を得て「俺流」をつらぬき紛れ込ませたのでしょう。
昔、当時、X11で唯一$HOME/.xinitrcを手書きするというCUI的方法で環境設定できた
xinit方式は大学など教育機関に浸透していて、日本のX11界に多くのバカが輩出しました。
これから私は、おそらくそういうバカが、GNOME/KDEはどうやって起動するのか、
ウィンドウマネージャを終了したらXごと落ちたとか、ck-xinit-sessionはないのか
などと、X11通気取りの偏ったどうでもいい我侭を言い出し(だからxinit方式にするん
じゃねーよ)それと戦わなければならないのでしょう。そして時代によって
決着している、過去25年のX11界隈のくだらないそれらの議論が再現され、
それに巻き込まれるのでしょう。もう今からうんざりです。
だからお願いです。教育現場ではgdmでもkdmでもwdmでも
xdmでもなんでもいいですがグラフィカルなディスプレイマネージャにしてください。
教育機関で懐古趣味のバカを量産されると現場が非常に苦労するのです。
もうそのコピペいいよ。
UNIX+Xでは持て余すGPU資源を、
(1) 装飾以外で活用する→有意義
(2) Xやデスクトップの装飾/イルミネーションで活用する→無意味つーかバカ氏んでほしい
(3) 携帯端末のUIで活用する→有意義
X Toolkit 教えてね。
138 :
名無しさん@お腹いっぱい。:2013/09/30(月) 21:10:06.80
firefoxってgtkだよね。
なのにlibXtともリンクしてるんだが、
libXtを何に使ってるの? (XawやMotifじゃあるまいし)
少なくともXのリソース(.Xdefaultsとか)を読んだりはしていないみたいだが。
139 :
名無しさん@お腹いっぱい。:
Xの設定でキーボードを日本語にすると繋がらなくなるのがわかんねぇ。
ユーザーでキーボード変更した時点で落ちる→root以外の全一般ユーザーが繋がらなくなる→rootでキーボード変更→rootでも繋がらなくなる。
ここでわからんのが、ユーザー別の設定で不具合が起こってるなら、キーボードを変更したユーザーだけが繋がらなくなると思うんだが、他のユーザーも繋がらなくなるんだよなぁ。
だからと言ってrootは繋がるから、システム全体に不具合が起こってるわけでもなさそうだし。
キーマップのファイルはちゃんと置いてあると思う。