From: Takehama Hirohisa Date: 1998-12-21T13:27:10+09:00 Subject: [ruby-list:11395] Re: gtk かんださん、ありがとうございます。 > > ・signal_connect の最後で、真偽値か整数値を返さないといけないようなのですが、 > > これは何の値でしょうか? > > その signal の処理を続けるかやめるかを指定します。trueだとそこで止めます。 > ある signal に複数の handler が登録されている場合はその登録順に渡されます > が、さらに子signal方向、親widget 方向へと辿るようです。 3つめの質問と関連していますが、true を返して signal の処理をやめると、 widget のもともとのキー入力処理を横取りできないのでしょうか。試したと ころ、 text.signal_connect('key_press_event') {|w, e| true } としただけでは、あいかわらずデフォルトの動作(文字が挿入されたり、カー ソル移動したり)が行なわれます。 > event周りはまだほとんどできていません。ここはホントは GdkEventKey インス > タンスを返すべきところで、GdkEventKey は keyval とかいうメソッドが定義され > るようです。 > # これくらいならすぐにできますが、今ちょっと忙しいので今夜にでも お手数ですが是非お願いします。 > gtktext には control_key['z'-'a'+1] とかいった配列が用意されていて、これ > に関数ポインタを埋め込んでいます。で、実際に ctrl-a とかが押されると、 > control_key[0] の関数が呼び出される。だから、この配列に別の関数ポインタを代 > 入すればそれでキーバインドが変更できることになりますね。ただ、gtkの関数とし > て用意はされていないようですので、仕様から考えることになります。 Tk ではイベントを のように指定できますね。さらに とか とかできます。GTK でもここまでで きるとうれしいなと思います。 > 僕は RC の方を知らなかったりします(^^; > ではどうやっているかというと、Style を直接指定しています。 [...] 結構複雑ですね。push_style と pop_style ってこういう風に使うんですね。 いろいろありがとうございました。