ruby-****@lists*****
ruby-****@lists*****
2003年 5月 18日 (日) 23:42:28 JST
------------------------- REMOTE_ADDR = 61.26.70.211 REMOTE_HOST = URL = http://ruby-gnome2.sourceforge.jp/?%A5%A2%A5%B8%A5%E3%A5%B9%A5%C8%A5%E1%A5%F3%A5%C8 ------------------------- ------------------------- = アジャストメント GTKには((<レンジウィジェット>))のような, ユーザーがマウスやキーボードを使って視覚的に調整 ((-「アジャストメント」を「調整」と訳す.-)) できる様々なウィジェットがある. また,テキストウィジェットや((<ビューポートウィジェット>))のような, 表示領域に入り切らない大きなデータのどの部分を表示するかを調節できるウィジェットもいくつか存在する. アプリケーションはレンジウィジェットでユーザーが行う変更に反応しなければならない. 調整が行われた際に各々のウィジェットに個別のシグナルを発行させ, シグナルハンドラに新しい値を渡すか, あるいは値を確認するためにシグナルハンドラにウィジェットのデータ構造体の中を調べるようにさせる, というのは一つの方法である. しかし,一つのウィジェットを調整することで他のウィジェットも調整されるよう複数のウィジェットを連動させたい場合もある. よくあるのは,表示部分を移動させることが可能なビューポートやスクロール可能なテキストエリアとスクロールバーを連動させることである. もし,それぞれのウィジェットが調整値を設定したり取得する方法を個別に持っている場合, プログラマはあるウィジェットのシグナルの出力ともう一つのウィジェットの調整値を設定するメソッドへの 「入力」の間を橋渡しする独自のシグナルハンドラを書かなければならないだろう. GTKはこの問題をアジャストメントオブジェクトを用いて解決する. アジャストメントオブジェクトはウィジェットではないが, 調整に関する情報を抽象的かつ柔軟な形で格納したり渡すための手段をウィジェットに提供する. アジャストメントの最も明確な利用方法は, スクロールバーやスケールコントロールのようなレンジウィジェットの設定パラメータや値を保存することである. しかし,アジャストメント(Gtk::Adjustment)はオブジェクト(Gtk::Object)から派生しているため, 通常のデータ構造体には無い特殊な能力を持っている. 最も重要なのは,ウィジェット同様シグナルを発行できることである. これらのシグナルを用いて,調整可能なウィジェットへのユーザーからの入力に反応することができる. また,調整可能なウィジェット間で調整値を透過的に伝達させるためにも利用することができる. アジャストメントを組み込んだ他のウィジェットをみればそれがどのように組み込まれているか解るだろう: ((<プログレスバー>)),((<ビューポート>)),((<スクロールドウィンドウ>))…