16.2 マウス用の変数 (Mouse variables)

マウス機能が有効な場合、現在のウィンドウ上でのマウスクリックによって gnuplot のコマンドライン上で使うことができる色々なユーザ変数が設定され ます。クリック時のマウスの座標は変数 MOUSE_X, MOUSE_Y, MOUSE_X2, MOUSE_Y2 に代入されます。クリックされたボタンや、そのときのメタキーの 状態は MOUSE_BUTTON, MOUSE_SHIFT, MOUSE_ALT, MOUSE_CTRL に代入されます。 これらの変数は任意の描画の開始時には未定義で、有効な描画ウィンドウ中で のマウスクリックイベントによって初めて定義されます。有効な描画ウィンド ウ中でマウスが既にクリックされたかどうかをスクリプトから調べるには、こ れらの変数のうちのどれか一つが定義されているかどうかをチェックすれば十 分です。


     plot 'something'
     pause mouse
     if (defined(MOUSE_BUTTON)) call 'something_else'; \
     else print "No mouse click."

描画ウィンドウ上での一連のキー入力を追跡することも、マウスコードを使う ことで可能となります。


     plot 'something'
     pause mouse keypress
     print "Keystroke ", MOUSE_KEY, " at ", MOUSE_X, " ", MOUSE_Y

pause mouse keypress が、キー入力で終了した場合は MOUSE_KEY には押さ れたキーの ascii コードが保存されます。MOUSE_CHAR にはその文字自身が文 字列値として保存されます。pause コマンドが (例えば ctrl-C や描画ウィン ドウが外部から閉じられるなどして) 異常終了した場合は MOUSE_KEY は -1 になります。

マウスによる拡大の後の新しい描画範囲は、GPVAL_X_MIN, GPVAL_X_MAX, GPVAL_Y_MIN, GPVAL_Y_MAX で参照できることに注意してください。 以下も参照: gnuplot-defined variables (p. [*])

竹野茂治@新潟工科大学
2009年9月7日