Scilab Home page | Wiki | Bug tracker | Forge | Mailing list archives | ATOMS | File exchange
Please login or create an account
Change language to: English - Français - Português -

Please note that the recommended version of Scilab is 6.0.1. This page might be outdated.
See the recommended documentation of this function

Scilab help >> Graphics Library > interaction > event handler functions

event handler functions

イベントハンドラとして使用できる関数のプロトタイプ.

呼び出し手順

envent_handler_function(win,x,y,ibut)

パラメータ

win

イベントが発生したwindowの番号.

x

イベントが発生した時のマウスポインタのX座標(単位:ピクセル).

y

イベントが発生した時のマウスポインタのY座標(単位:ピクセル).

ibut

イベント型に対応する番号.

説明

イベントハンドラモードが有効な場合, Scilab は指定したイベントハンドラ関数を グラフィックウインドウにイベントが発生する度にコールします. イベントハンドラ関数は前記のプロトタイプに適合している必要があります. イベントが発生する度に, 関数がコールされ, その4つのパラメータが ウインドウ番号,マウスの位置およびイベントの型に設定されます.

ibutパラメータはイベント型に依存した以下の値のどれかと なります:

ibut==0

マウスの左ボタンが押されました

ibut==1

マウスの真ん中のボタンが押されました

ibut==2

マウスの右ボタンが押されました

ibut==3

マウスの左ボタンがクリックされました

ibut==4

マウスの真ん中のボタンがクリックされました

ibut==5

マウスの右ボタンがクリックされました

ibut==10

マウスの左ボタンがダブルクリックされました

ibut==11

マウスの真ん中のボタンがダブルクリックされました

ibut==12

マウスの右ボタンがダブルクリックされました

ibut==-5

マウスの左ボタンが離されました

ibut==-4

マウスの真ん中のボタンが離されました

ibut==-3

マウスの右ボタンが離されました

ibut==-1

マウスポインタが移動されました

ibut > =32

アスキーコード ascii(ibut) を有するキーが押されました

ibut < =-32

アスキーコード ascii(-ibut) を有するキーが離されました

ibut > =1000+32

アスキーコード ascii(ibut-1000) を有するキーがCTRLキーと共に押されました

ibut==-1000

グラフィックウインドウが閉じられました

例えば, ウインドウ番号0のイベントハンドラ関数の名前をfooHandlerとしましょう. このウインドウの位置 [100,150] (単位:ピクセル)で左クリックをすると, fooHandler( 0, 100, 150, 3 ) をコールするのと等価となります.

イベントハンドラの名前の指定方法に関する情報については figure_properties または seteventhandler を参照ください.

function my_eventhandler(win, x, y, ibut)
  if ibut==-1000 then return,end
  [x,y]=xchange(x,y,'i2f')
  xinfo(msprintf('Event code %d at mouse position is (%f,%f)',ibut,x,y))
endfunction

plot2d()
fig = gcf() ;
fig.event_handler = 'my_eventhandler' ;
fig.event_handler_enable = "on" ;
//now:
//   -  move the mouse over the graphic window
//   -  press and release keys shifted or not with Ctrl pressed or not
//   -  press button, wait a little release
//   -  press and release button
//   -  double-click button

fig.event_handler_enable = "off" ; //イベントハンドラを停止

参照

  • figure_properties — グラフィックエンティティプロパティの説明
  • seteventhandler — カレントのグラフィックウインドウのイベントハンドルを設定
  • xgetmouse — マウスのイベントおよびカレントの位置を取得する
  • xclick — マウスクリップを待つ.

作者

Jean-Baptiste Silvy

Scilab Enterprises
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Thu Mar 03 11:00:59 CET 2011