Development/Architecture/KDE3/Icon Loader/pt-br

    From KDE TechBase
    Revision as of 18:48, 30 June 2014 by Aracele (talk | contribs) (Created page with "Ícones não temáticos podem ser carregados com o iconloader usando o grupo ''User''. Isso carregará um ícone de usuário.")
    The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.


    Carregando e instalando ícones no KDE

    Os ícones são um importante elemento de interface do usuário em qualquer ambiente de trabalho. Devido a diferentes preferências do usuário e de hardware de vídeo, um ícone pode vir em diferentes tamanhos e profundidades de exibição. Para que isso seja gerenciável, uma forma padrão de armazenamento e acesso a ícones foi desenvolvido.

    Loading icons

    Acessando o iconloader

    Ícones são carregados usando a classe KIconLoader. Todo appliation do KDE tem um objeto iconloader global. Você pode acessar esse objeto com:

    #include <kglobal.h>
    #include <kiconloader.h>
     
    KIconLoader *loader = KGlobal::iconLoader();
    

    Carregando ícones com loadIcon

    O iconloader carrega ícones, faz o cache deles e aplica efeitos. Para carregar um ícone, use o método loadIcon(), que é definido assim:

    QPixmap loadIcon( QString name, int group, int size=0,
                      int state=KIcon::DefaultState, 
                      QString *path_store=0L, bool canReturnNull=false);
    

    Como você vê, existem muitos parâmetros. Os dois primeiros são os mais importantes:

    1. name - O nome do ícone a ser carregado. Você deve passar o nome do ícone aqui, sem extensão.
    2. group - O grupo do ícone. Isto é explicado abaixo.

    Grupos de ícone

    A ideia de um grupo de ícone é um conceito importante no esquema de ícone do KDE. O grupo de ícone indica onde na tela o ícone vai ser usado. Isso é relevante, pois o usuário pode vincular os tamanhos dos ícones e efeitos visuais do KDE para cada grupo. Ao passar o grupo de ícone para o carregador de ícone, você está na verdade dizendo-lhe que encarnação do ícone deve carregar. E, exigindo o argumento do grupo, o iconloader fornece os meios para ter um consistente e configurável exame de ícone sobre toda a área de trabalho do KDE.

    Por exemplo: o usuário pode configurar que ele deseja ícones de 32 pixels com 0.2 de dessaturação para as barras de ferramentas principais.

    Os grupos de ícones disponíveis são apresentados abaixo. Todos estão definidos na classe KIcon, assim prefixe-os com KIcon::.

    • Desktop - Ícones para uso na área de trabalho, no gerenciador de arquivos e locais similares.
    • Toolbar - Ícone para as barras de ferramentas normais.
    • MainToolbar - Ícones para a barra de ferramentas principal. Um aplicativo pode ter várias barras de ferramentas, das quais uma é sempre a principal. Isso normalmente tem ítens como "Salvar" e "Abrir" e contém ícones maiores que outras barras de ferramentas.
    • Small - Vários ícones pequenos, como os de menus pop-up, exibição em lista e listas em árvore.
    • User - Grupo especial para carregar ícones específicos de aplicativos. Isso é explicado na seção 3: Instalando ícones.

    Assim, para carregar o ícone "kfind" para usar no grupo Desktop, você usaria:

    QPixmap icon;
    icon = loader->loadIcon("kfind", KIcon::Desktop);
    

    loadIcon continua

    Agora vamos discutir os outros parâmetros de loadIcon.

    1. size - Substituir o tamanho configurado globalmente para o grupo de ícone especificado. Efeitos ligados ao grupo ainda são aplicados.
    2. state - O estado do ícone. O estado do ícone é KIcon::DefaultState, KIcon::ActiveState ou KIcon::DisabledState. O estado ícone denota em que estado o ícone está. Botões da barra de ferramentas, por exemplo, estão no estado "ativo se o ponteiro do mouse está sobre eles, no estado desativado quando eles não estão disponíveis, e padrão caso contrário. Cada estado do ícone pode ter diferentes efeitos atribuídos a ele para dar o feedback ao visual do usuário.
    3. path_store - Se você quer saber onde o ícone que você acabou de carregar está no sistema de arquivos, você pode passar um ponteiro para uma QString aqui e o caminho do ícone é armazenado lá.
    4. canReturnNull - Se o ícone requisitado não for encontrado, o resultado de loadIcon depende desse parâmetro. Se canReturnNull é true, um pixmap nulo retornará, se não, o ícone "unknown" é retornado.

    Instalando ícones

    Ícones podem vir em diferentes tamanhos e profundidades de exibição. Vou me referir a esses ícones como ícones temáticos. Ícones que vêm em apenas uma forma são chamados de ícones não temáticos.

    Padrão dos tamanhos de ícone

    Ícones temáticos vêm em diferentes tamanhos e profundidades de exibição. Os tamanhos normais são os seguintes:

    40 Colors
    16x16 pixels
    22x22 pixels
    32x32 pixels
    Truecolor
    22x22 pixels
    32x32 pixels
    48x48 pixels

    Por favor, consulte KDE icon factory para informações quais tamanhos de ícones são obrigatórios e mais. Lembre-se que cada uma destas dimensões pode ser ligada a um grupo de ícones.

    Contexto do ícone

    Ícones temáticos são armazenados em uma hierarquia de diretório de acordo aos seus 1. profundidade, 2. tamanho e 3. contexto. O termo contexto é um novo conceito introduzido pelo esquema de ícone do KDE. O contexto de um ícone é o que o ícone significa. Os contextos padrões são apresentados abaixo:

    • action - O ícone representa uma ação na barra de ferramentas, por exemplo "Abrir" ou "Salvar".
    • application - O ícone representa um aplicativo, por exemplo "kfind".
    • device - O ícone representa algo relacionado ao dispositivo, por exemplo "floppy" ou "mount".
    • filesystem - O ícone representa algo no sistema de arquivo, por exemplo "directory", "socket" ou "trashcan".
    • mimetype - O ícone representa um mimetype, por exemplo "text/html".

    Os "contextos" são importantes em um caso: selecionar um ícone. Quando um aplicativo deseja que o usuário selecione um ícone para, digamos, uma barra de ferramentas, seria muito hostil mostrar todos os ícones instalados no KDE. Em vez disso, é muito melhor deixar o usuário selecionar um ícone dos ícones de "ação" apenas. Todos estes representam alguma ação e portanto, são adequados para barras de ferramentas.

    Hierarquia de diretórios

    A hierarquia dos diretórios na qual ícones temáticos são armazenados segue. Os nomes dos diretórios são auto-explicativos.

    hicolor/
        22x22/
            actions/
            apps/
            devices/
            filesystems/
            mimetypes/
        32x32/
            ...
        48x48/
            ...
    
    locolor/
        16x16/
            ...
        22x22/
            ...
        32x32/
            ...
    

    Diretório raiz

    Ícones temáticos podem ser instalados de forma global com relação ao KDE, ou em um lugar especifico do aplicativo. No caso global, a hierarquia do tema do ícone reside em $KDEDIR/share/icons enquanto no caso do aplicativo específico, está em $KDEDIR/share/apps/$APPNAME/icons.

    Instalação de ícones temáticos

    O sistema de configuração fonte do KDE (especificamente, am_edit) tem suporte para instalação de ícones temáticos. Primeiro, você tem que nomear seus ícones de uma forma que seja claro onde eles devem ser instalados. A convenção de nomenclatura é explicada na tabela que se segue:

    depth size - context - name .png
    hi 16 action
    lo 22 app
    32 device
    48 filesys
    mime

    Exemplos:

    lo22-action-open.png
    hi48-app-kfind.png
    

    Para instalar estes ícones globalmente, adicione essa linha ao seu Makefile.am.

    KDE_ICON = open kfind
    

    e para instalá-los num diretório específico de aplicativo, use isso:

    icondir = $(kde_datadir)/myapp/icons
    icon_ICON = open kfind
    

    Carregando ícones temáticos

    Ícones temáticos são carregados com o iconloader, usando os grupos de ícone padrões. Por exemplo:

    QPixmap pm;
    pm = loader->loadIcon("kfind", KIcon::Desktop);
    

    Isso carregará o ícone "kfind", de profundidade e tamanho especificados pelo grupo Desktop.

    Ícones não temáticos

    Ícones não temáticos são instalados em $KDEDIR/share/apps/$APPNAME/pics. Para instalá-los, use isso em seu Makefile.am.

    icondir = $(kde_datadir)/myapp/pics
    icon_DATA = open kfind
    

    Você não deve dar aos ícones nomes especiais. Além disso, nenhum outro processamento é feito com eles: sem efeitos e tamanho, seleção de profundidade.

    Ícones não temáticos podem ser carregados com o iconloader usando o grupo User. Isso carregará um ícone de usuário.

    QPixmap pm;
    pm = loader->loadIcon("myicon", KIcon::User);
    

    Conclusion

    There are 3 ways to install icons: global themed, application specific themed and unthemed. All types of icons can be loaded with the iconloader. You should choose a specific installation depending on your needs.


    Initial Author: Geert Jansen <[email protected]>