# event handler functions

Protótipo de funções que podem se utilizadas como gerenciadoras de eventos

## Seqüência de Chamamento

    envent_handler_function(win,x,y,ibut)

## Parâmetros

win

  número da janela onde o evento ocorreu

x

  coordenada X em píxeis do ponteiro do mouse no momento onde o evento ocorreu

y

  coordenada Y em píxeis do ponteiro do mouse no momento onde o evento ocorreu

ibut

  número correspondente ao tipo de evento

## Descrição

Quando o modo de gerenciador de eventos está habilitado, o Scilab chamaráo gerenciador de eventos especificado a cada vez que um evento ocorre na janela gráfica. A função de gerenciamento de evento deve concordar com o protótipo acima. A cada vez que um evento ocorre, a função é chamada e os quatro eventos são ajustados de acordo com o número da janela, a posição do mouse e o tipo do evento.

O parâmetro `ibut` toma um dos seguintes valores dependendo do tipo do evento ocorrido:

ibut==0

  o botão esquerdo foi pressionado

ibut==1

  o botão do meio foi pressionado

ibut==2

  o botão direito foi pressionado

ibut==3

  o botão esquerdo do mouse foi clicado

ibut==4

  o botão do meio do mouse foi clicado

ibut==5

  o botão direito do mouse foi clicado

ibut==10

  o botão esquerdo do mouse foi clicado duas vezes

ibut==11

  o botão do meio do mouse foi clicado duas vezes

ibut==12

  o botão direito do mouse foi clicado duas vezes

ibut==-5

  o botão esquerdo do mouse foi liberado

ibut==-4

  o botão do meio do mouse foi liberado

ibut==-3

  o botão direito do mouse foi liberado

ibut==-1

  o ponteiro do mouse foi movido

ibut > =32

  uma tecla com código ascii(ibut) foi pressionada

ibut < =-32

  uma tecla com código ascii(-ibut) foi liberadav

ibut > =1000+32

  uma tecla com código ascii(ibut-1000) foi pressionada enquanto a tecla CTRL estava sendo pressionada.

ibut==-1000

  a janela de gráficos foi fechada

Por exemplo, digamos que o nome da função de gerenciamento de eventos seja fooHandler para a janela de número 0. Um clique com o botão esquerdo na janela na posição [100,150] (em píxeis) será equivalente a chamar fooHandler( 0, 100, 150, 3 ).

Ver figure_properties ou seteventhandler para mais informações sobre como especificar o nome do gerenciador de eventos.

## Exemplos

    function my_eventhandler(win,x,y,ibut)
      if ibut==-1000 then return,end
      [x,y]=xchange(x,y,'i2f')
      xinfo(msprintf('Evento de código %d na posição do mouse é (%f,%f)',ibut,x,y))
    endfunction

    plot2d()
    fig = gcf() ;
    fig.event_handler = 'my_eventhandler' ;
    fig.event_handler_enable = "on" ;
    //agora:
    //   -  mova o mouse sobre a janela gráfica
    //   -  pressione e libere as teclas com shift pressionado ou não e com Ctrl pressionado ou não
    //   -  pressione um botão, espere um pouco e libere
    //   -  pressione e libere um botão
    //   -  clique duas vezes em um botão

    fig.event_handler_enable = "off" ; //suprimindo o gerenciador de eventos

## Ver Também

- figure_properties
- seteventhandler
- xgetmouse
- xclick