Protótipo de funções que podem se utilizadas como gerenciadoras de eventos
envent_handler_function(win,x,y,ibut)
número da janela onde o evento ocorreu
coordenada X em píxeis do ponteiro do mouse no momento onde o evento ocorreu
coordenada Y em píxeis do ponteiro do mouse no momento onde o evento ocorreu
número correspondente ao tipo de evento
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:
o botão esquerdo foi pressionado
o botão do meio foi pressionado
o botão direito foi pressionado
o botão esquerdo do mouse foi clicado
o botão do meio do mouse foi clicado
o botão direito do mouse foi clicado
o botão esquerdo do mouse foi clicado duas vezes
o botão do meio do mouse foi clicado duas vezes
o botão direito do mouse foi clicado duas vezes
o botão esquerdo do mouse foi liberado
o botão do meio do mouse foi liberado
o botão direito do mouse foi liberado
o ponteiro do mouse foi movido
uma tecla com código ascii(ibut) foi pressionada
uma tecla com código ascii(-ibut) foi liberadav
uma tecla com código ascii(ibut-1000) foi pressionada enquanto a tecla CTRL estava sendo pressionada.
a janela de gráficos foi fechada
Unmanaged event. It might be a drag and drop or a fast click and move
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.
function my_eventhandler(win, x, y, ibut) if ibut==-1000 then return,end [x,y]=xchange(x,y,'i2f') gcf().info_message = 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 | ![]() | ![]() |