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

em vez de através do registro

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:

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.

♥ Doe para nosso projeto! ♥