Sumário

# Formulários e filtros HTML

Você pode usar todos os elementos de controle e eventos de formulário em documentos HTML. Há vários eventos até o momento (por exemplo, eventos de foco) que não foram alterados. Eles continuarão sendo importados e exportados como ONFOCUS, ONBLUR, e assim por diante para o JavaScript, e como SDONFOCUS, SDONBLUR, entre outros, para o LibreOffice Basic.

Nomes genéricos que consistam na interface Listener e no nome do método do evento são usados para todos os demais eventos: um evento registrado como XListener::method é exportado como

SDEvent-XListener-method = "/* event-code */"

Note que os componentes do método e da interface XListener dessa opção fazem distinção entre maiúsculas e minúsculas.

O tratamento de evento de controles é executado com o uso da API do LibreOffice. Se você atribuir um evento a um controle, um objeto se registrará internamente como um "Ouvinte" de um evento de controle específico. Para isso, o objeto deve utilizar uma interface específica, por exemplo, a XFocusListener Interface, para poder reagir a eventos de foco. Quando o evento ocorrer, o controle iniciará um método especial da interface ouvinte quando o controle receber o foco. O objeto registrado internamente iniciará então o código do JavaScript ou do LibreOffice Basic atribuído ao evento.

O filtro HTML faz uso, precisamente, dessas interfaces ouvintes e dos nomes de método para poder importar e exportar eventos da maneira desejada. Você pode registrar um evento de foco através de

<INPUT TYPE=text ONFOCUS="/* code */"

em vez de através do registro

<INPUT TYPE=text SDEvent-XFocusListener-focusGained="/* code */".

Os eventos podem, portanto, ser registrados conforme desejado, incluindo os que não foram oferecidos nas caixas de listagem. Para definir a linguagem de script dos eventos, você pode escrever a seguinte linha no cabeçalho do documento:

<META HTTP-EQUIV="content-script-type" CONTENT="...">

Para CONTENT, você pode, por exemplo, usar as linhas "text/x-StarBasic" para o LibreOffice Basic ou "text/JavaScript" para o JavaScript. Se nenhuma entrada for efetuada, pressupõe-se o JavaScript.

Durante a exportação, a linguagem de script padrão será definida com base no primeiro módulo encontrado no gerenciamento de macros. Para eventos, só é possível utilizar uma linguagem por documento.