Conteúdo
Índice 🔎︎

# Filtros e formulários HTML

Em documentos HTML, pode utilizar todos os elementos de controlo e eventos de formulário. Até à data, ocorreram diversos eventos (eventos de foco, por exemplo) que não foram alterados. Os mesmos continuarão a ser importados e exportados como ONFOCUS, ONBLUR, etc, para JavaScript e como SDONFOCUS, SDONBLUR, etc, para o LibreOffice Basic.

Os nomes genéricos que consistem na interface de escuta e nome de método do evento são usados para todos os outros eventos. Um evento registado como XListener::method é exportado como

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

Tenha em atenção que os componentes XListener e method desta opção diferenciam maiúsculas e minúsculas.

O processamento de eventos de controlos é executado através da API do LibreOffice. Se atribuir um evento a um controlo, o objeto regista-se internamente como um "Recetor" de um evento específico. Para tal, o objeto tem que utilizar uma interface específica como, por exemplo, a Interface XFocusListener, para que possa reagir a eventos de foco. Quando o evento ocorre, o controlo invoca um método especial da interface recetora quando o controlo recebe o foco. Em seguida, o objeto registado invoca o código JavaScript ou LibreOffice Basic, o qual foi atribuído ao evento.

O filtro HTML utiliza, precisamente, estas interfaces de receção e nomes de métodos para que possa importar e exportar eventos tal como desejado. Pode até registar um evento de foco.

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

em vez do registo

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

Deste modo, os eventos podem ser registados conforme pretendido, incluindo os eventos não disponibilizados nas caixas de lista. Para definir a linguagem de script de eventos, pode escrever a seguinte linha no cabeçalho do documento:

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

Como CONTENT, pode utilizar, por exemplo "text/x-StarBasic" para o LibreOffice Basic ou "text/JavaScript" para JavaScript. Se não indicar qualquer entrada, é assumido JavaScript.

Durante a exportação, a linguagem script será definida com base no primeiro módulo localizado em gestão de macros. No caso de eventos, apenas pode utilizar um idioma por documento.