# Especificação dos Emoticons

Versão 0.1

07/01/2005

## Emoticons

## Introdução

Este documento RASCUNHO define como criar um tema de emoticons, usados normalmente nos aplicativos de mensagens instantâneas

O esquema básico é muito simples. O tema consiste em uma subpasta que contém todas as imagens e um arquivo &XML; que dá a cada imagem símbolos em ASCII. Pode ser usado um arquivo '.directory'.

### Localização dos arquivos

Os arquivos envolvidos nesta especificação localizam-se de acordo com a "especificação das pastas base dos ambientes de trabalho", que pode ser encontrada no www.freedesktop.org.

Todos os arquivos do tema deverão estar em uma subpasta de `$XDG_DATA_DIRS`/emoticons/. O nome da pasta deverá ser igual ao nome do tema. Essa pasta deverá conter um arquivo chamado `emoticons.xml`, cujo formato será descrito abaixo.

A pasta do tema também poderá conter um arquivo '.directory', que contém as traduções para o nome do tema e um ícone para o mesmo.

### Formato do arquivo emoticons.xml

Os arquivos de mapas de emoticon deverão ser arquivos XML bem-formados. As implementações deverão ignorar as marcas ou atributos desconhecidos.

#### Elementos

<messaging-emoticon-map> [version="0.1"]

- O elemento base é o <messaging-emoticon-map> e todos os outros elementos estão contidos abaixo dele.

<emoticon file="...">

- Este elemento representa um emoticon. O atributo 'arquivo' é o nome do arquivo de imagem, que deverá estar na mesma pasta. A extensão poderá ser omitida. Nesse caso, a implementação procura nessa pasta por um arquivo com o mesmo nome, usando um dos formatos suportados.

  Não existe uma ordem definida para o emoticon no mapa, mas o primeiro ícone é geralmente usado para identificar o tema graficamente. Por convenção, isso DEVE ser assim :-)

<string>

- Este elemento só poderá aparecer debaixo do <emoticon>. Ele representa a string em ASCII que terá correspondência no texto, sendo substituída pela imagem definida pelo atributo 'file' do emoticon.

  Poderão existir várias strings para cada emoticon.

  Não existe uma ordem para as strings de um emoticon, mas o primeiro DEVERÁ ser o padrão e será o escolhido inicialmente em um seletor gráfico.

### Formato da imagem.

Todas as imagens DEVERÃO estar em um formato suportado: PNG, GIF ou MNG.

### Notas das implementações

#### Processador de emoticons

Não existem recomendações reais para a forma como são processados os emoticons. Contudo, um emoticon com uma string maior deverá ter prioridade sobre um com uma string menor. Exemplo: se tanto o :-() como o :-( estiverem em um tema, a imagem do primeiro deverá ser usada quando encontrar um :-() .

### Exemplo

    <messaging-emoticon-map>
            <emoticon file="sorriso.png">
                            <string>:-)</string>
                            <string>:)</string>
                            <string>:o)</string>
            </emoticon>

            <emoticon file="piscar.png">
                            <string>;-)</string>
                            <string>;)</string>
            </emoticon>

            <emoticon file="triste.png">
                            <string>:-(</string>
                            <string>:(</string>
            </emoticon>
    </messaging-emoticon-map>