--- title: Criando uma janela slug: Tutorial_XUL/Criando_uma_janela tags: - PrecisaDeAtualização - Todas_as_Categorias - Tutorial_XUL - XUL ---
Uma aplicação XUL pode ter qualquer nome mas ela precisa necessariamente ter a extensão .xul. A aplicação XUL mais simples tem a seguinte estrutura:
<?xml version="1.0"?> <?xml-stylesheet href="chrome://global/skin/" type="text/css"?> <window id="findfile-window" title="Find Files" orient="horizontal" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <!-- Other elements go here --> </window>
Esta janela não irá fazer nada já que ela não contém nenhum elemento de interação com o usuário (UI). Estes serão adicionados na próxima sessão. Abaixo segue uma explicação de cada linha do código acima:
id
é usado como um identificador que é usado por scripts para ser rerefenciado. Normalmente é colocado um atributo id
em todos os elementos. Você pode dar qualquer nome aos atributos, mas de preferência dê nomes que identifiquem para o que o atributo serve.title
descreve o texto que irá aparecer na barra de título da janela quando ela é exibida. Nesse caso, o texto 'Find Files' irá aparecer.orient
especifica o posicionamento dos itens na janela. O valor horizontal
indica que os itens devem aparecer dispostos horizontalmente na janela. Você pode também usar o valor vertical
para designar que os elementos aparecerão em forma de colunas. Como este é o valor default, você pode optar por não escrever esse atributo caso deseje que os elementos aparecam na vertical.Para abrir uma janela XUL, existem vários métodos que podem ser usados. Se você estiver apenas na fase de desenvolvimento, você pode simplesmente escrever a URL (como um chrome:, file: or outros tipos de URL) na barra de endereços do Mozilla. Você pode também dar um duplo-clique no nome do arquivo em seu diretório, assuminfo que os arquivos XUL estão associados com o Mozilla. A janela XUL irá aparecer na janela do browser como se fosse uma nova janela, mas isso é o suficiente durante o estágio de desevolvimento.
A forma correta, é claro, é abrir a janela usando javascript. Nenhuma sintaxe nova é necessária, podendo ser usada a função window.open() como se fosse uma documento HTML. Entretanto, um parâmetro adicional com o valor 'chrome' é necessário para indicar ao browser será aberto um documento chrome. Isso ira abrir a janela sem as barras de ferramenta e os menus. A sintaxe é descrita abaixo:
window.open(url,windowname,flags); onde o parâmetro 'flags' recebe o valor "chrome", como no exemplo: window.open("chrome://navigator/content/navigator.xul", "bmarks", "chrome,width=600,height=300");
Vamos começar criando um arquivo básico para a janela 'Find File'. Crie um arquivo chamado findfile.xul e o coloque no diretório especificado no arquivo findfile.manifest (nós o criamos na sessão anterior). Adicione o exemplo mostrado anteriormente ao arquivo e salve-o.
Você pode usar o parâmetro da linha de comando '-chrome' para especificar o arquivo XUL a ser aberto quando o Mozilla iniciar. Se não for especificado nenhum arquivo, a janela padrão será aberta. (Normalmente a janela do browser.) Por exemplo, podemos abrir a janela 'Find Files' das seguintes formas:
mozilla -chrome chrome://findfile/content/findfile.xul mozilla -chrome resource:/chrome/findfile/content/findfile.xul
Se você executar este comando a partir de uma linha de comando (assumindo que você tem uma na sua plataforma), a janela 'Find Files' irá abrir como janela padrão, ao invés da janela do browser. Por nós ainda não termos inserido nenhum elemento de interação na janela, você não verá a janela aparecendo. Iremos adicionar alguns elementos na próxima sessão.
Para ver o efeito, o link a seguir irá abrir a janela de favoritos:
mozilla -chrome chrome://communicator/content/bookma...rksManager.xul
Se você estiver usando o Firefox, utilize o link abaixo
firefox -chrome chrome://browser/content/bookmarks/b...rksManager.xul
O argumento '-chrome' não dá ao arquivo nenhum privilégio adicional. Ao contrário, ele abre o arquivo especificado como uma aba, sem barra de endereço ou menus. Apenas URL chromes tem privilégios adicionais.