Development/Architecture/KDE3/Icon Loader/pt-br: Difference between revisions

From KDE TechBase
(Created page with "=== Carregando ícones com loadIcon ===")
(Created page with "== Carregamento de ícones ==")
 
(47 intermediate revisions by the same user not shown)
Line 5: Line 5:
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.
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 ==
== Carregamento de ícones ==


===  Acessando o iconloader  ===
===  Acessando o iconloader  ===
Line 21: Line 21:
===  Carregando ícones com loadIcon  ===
===  Carregando ícones com loadIcon  ===


The iconloader loads icons, transparently '''caches''' them and applies effects.
O iconloader carrega ícones, faz o '''cache''' deles e aplica efeitos.
To load an icon, use the method [http://api.kde.org/3.5-api/kdelibs-apidocs/kdecore/html/classKIconLoader.html#a3 loadIcon()], which is defined like this:
Para carregar um ícone, use o método [http://api.kde.org/3.5-api/kdelibs-apidocs/kdecore/html/classKIconLoader.html#a3 loadIcon()], que é definido assim:


<syntaxhighlight lang="cpp-qt">
<syntaxhighlight lang="cpp-qt">
Line 30: Line 30:
</syntaxhighlight>
</syntaxhighlight>


As you see, there are a lot of parameters. The first two are most important:
Como você vê, existem muitos parâmetros. Os dois primeiros são os mais importantes:


# '''name''' - The name of the icon to load. You must pass the bare icon name here, without extension.
# '''name''' - O nome do ícone a ser carregado. Você deve passar o nome do ícone aqui, sem extensão.
# '''group''' - The icon group. This is explained below.
# '''group''' - O grupo do ícone. Isto é explicado abaixo.


===  Icon groups ===
===  Grupos de ícone ===


The idea of an ''icon group'' is an important concept in the KDE icon
A ideia de um ''grupo de ícone'' é um conceito importante no esquema de ícone do KDE.   
schemeThe icon group denotes where on the screen the icon is going to be used.  
O grupo de ícone indica onde na tela o ícone vai ser usado.
This is relevant because the KDE user can bind icon sizes and visual effects to
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.
each group. When passing the icon group to the icon loader, you are in fact telling
it which incarnation of the icon to load. And by requiring the group argument, the
iconloader provides the means to have a consistent and configurable icon look over
the whole KDE desktop.


For example: The user can configure that he wants 32 pixel icons with 0.2
Por exemplo: o usuário pode configurar que ele deseja ícones de 32 pixels com 0.2
desaturation for the main toolbars.
de dessaturação para as barras de ferramentas principais.


The available icon groups are given below. All are defined in the
Os grupos de ícones disponíveis são apresentados abaixo. Todos estão definidos na classe [http://api.kde.org/3.5-api/kdelibs-apidocs/kdecore/html/classKIcon.html KIcon], assim prefixe-os com ''KIcon::''.
[http://api.kde.org/3.5-api/kdelibs-apidocs/kdecore/html/classKIcon.html KIcon]
class, so prefix them with ''KIcon::''.


* '''Desktop''' - Icons for use on the desktop, in the filemanager and similar places.
* '''Desktop''' - Ícones para uso na área de trabalho, no gerenciador de arquivos e locais similares.
* '''Toolbar''' - Icon for in normal toolbars.
* '''Toolbar''' - Ícone para as barras de ferramentas normais.
* '''MainToolbar''' - Icons for in the main toolbar. An application can have multiple toolbars, of which one is allways the main toolbar. This typically has entries like "Save" and "Open" and contains larger icons than the other toolbars.
* '''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''' - Various small icons, like the ones in popup menus, listviews and treelists.
* '''Small''' - Vários ícones pequenos, como os de menus pop-up, exibição em lista e listas em árvore.
* '''User''' - Special group for loading application specific icons. This is explained in section 3: Installing icons.
* '''User''' - Grupo especial para carregar ícones específicos de aplicativos. Isso é explicado na seção 3: Instalando ícones.


So, to load the icon "kfind" for use in the ''Desktop'' group, you'd use:
Assim, para carregar o ícone "kfind" para usar no grupo ''Desktop'', você usaria:


<syntaxhighlight lang="cpp-qt">
<syntaxhighlight lang="cpp-qt">
Line 65: Line 59:
</syntaxhighlight>
</syntaxhighlight>


===  loadIcon continued ===
===  loadIcon continua ===


Now lets discuss the other parameters of ''loadIcon''.
Agora vamos discutir os outros parâmetros de ''loadIcon''.


# '''size''' - Override the globally configured size for the specified icon group. Effects bound to the group are still applied.
# '''size''' - Substituir o tamanho configurado globalmente para o grupo de ícone especificado. Efeitos ligados ao grupo ainda são aplicados.
# '''state''' - The icon state. The icon state is one of ''KIcon::DefaultState'', ''KIcon::ActiveState'' or ''KIcon::DisabledState''. The icon state denotes in which state the icon is. Toolbar buttons, for example, are in state ''active'' if the mouse pointer is above them, in state ''disabled'' when they are not available, and ''default'' otherwise. Each icon state can have different effects assigned to it to give the user visual feedback.
# '''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.
# '''path_store''' - If you want to know where the icon you just loaded is in the filesystem, you can pass a pointer to a QString here and the icon path is stored there.
# '''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á.
# '''canReturnNull''' - If the requested icon is not found, the result of ''loadIcon'' depends on this parameter. If ''canReturnNull'' is ''true'', a null pixmap will be returned, if not, the "unknown" icon is returned.
# '''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.


== Installing icons ==
== Instalando ícones ==


Icons may come in different sizes and display depths.
Ícones podem vir em diferentes tamanhos e profundidades de exibição.
I shall refer to these icons as ''themed icons''. Icons that come in
Vou me referir a esses ícones como ''ícones temáticos''. Ícones que vêm em
just one form are referred to as ''unthemed icons''.
apenas uma forma são chamados de ''ícones não temáticos''.


=== Default icon sizes ===
=== Padrão dos tamanhos de ícone ===


Themed icons come in different sizes and display depths. The standard sizes
Ícones temáticos vêm em diferentes tamanhos e profundidades de exibição. Os tamanhos normais são os seguintes:
are:


;40 Colors
;40 Colors
Line 95: Line 88:
:48x48 pixels
:48x48 pixels


Please refer to the [http://www.kde-artists.org/introduction.html KDE icon factory]
Por favor, consulte [http://www.kde-artists.org/introduction.html KDE icon factory]
for information on which icon sizes are mandatory and more.
para informações quais tamanhos de ícones são obrigatórios e mais.
Remember that each of these sizes can be bound to an icon group.
Lembre-se que cada uma destas dimensões pode ser ligada a um grupo de ícones.


=== Icon context ===
=== Contexto do ícone ===


Themed icons are stored in a directory hierarchy according to their
Ícones temáticos são armazenados em uma hierarquia de diretório de acordo aos seus
'''1. depth''', '''2. size''' and '''3. context'''.  
'''1. profundidade''', '''2. tamanho''' e '''3. contexto'''.  
The term ''context'' is new concept introduced by the KDE icon scheme.  
O termo ''contexto'' é um novo conceito introduzido pelo esquema de ícone do KDE.  
The context of an icon is what the icon ''means''. The standard
O contexto de um ícone é o que o ícone ''significa''. Os contextos padrões são apresentados abaixo:
contexts are given below:


* '''action''' - The icon represents an action in a toolbar, for example "Open" or "Save".
* '''action''' - O ícone representa uma ação na barra de ferramentas, por exemplo "Abrir" ou "Salvar".
* '''application''' - The icon represents an application, for example "kfind".
* '''application''' - O ícone representa um aplicativo, por exemplo "kfind".
* '''device''' - The icon represents something related to a device, for example "floppy" or "mount".
* '''device''' - O ícone representa algo relacionado ao dispositivo, por exemplo "floppy" ou "mount".
* '''filesystem''' - The icon represents something in the filesystem, for example "directory", "socket" or "trashcan".
* '''filesystem''' - O ícone representa algo no sistema de arquivo, por exemplo "directory", "socket" ou "trashcan".
* '''mimetype''' - The icon represents an mimetype, for example "text/html".
* '''mimetype''' - O ícone representa um mimetype, por exemplo "text/html".


''Contexts'' are important in one case: selecting an
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.
icon. When an application wants the user to select an icon for, say, a
toolbar, it would be very user unfriendly to show every single icon
installed in KDE. Instead, it is much better to let the user select
an icon from the "action" icons only. These all represent some action and
therefore are suitable for in toolbars.


===  Directory hierarchy ===
===  Hierarquia de diretórios ===


The directory hierarchy in which themed icons are stored follows.
A hierarquia dos diretórios na qual ícones temáticos são armazenados segue.
The directory names are self explanatory.
Os nomes dos diretórios são auto-explicativos.


  hicolor/
  hicolor/
Line 145: Line 132:
         ...
         ...


=== Directory roots ===
=== Diretório raiz ===


Themed icons can be installed either globally with respect to KDE, or in
Í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
application specific place. In the global case, the icon theme hierarchy
reside em {{path|$KDEDIR/share/icons}} enquanto no caso do aplicativo específico, está em {{path|$KDEDIR/share/apps/$APPNAME/icons}}.
resides under {{path|$KDEDIR/share/icons}} while in the application specific
case, it is under {{path|$KDEDIR/share/apps/$APPNAME/icons}}.


=== Installing themed icons ===
=== Instalação de ícones temáticos ===


The KDE source configuration system (specifically, am_edit) has support for
O sistema de configuração fonte do KDE (especificamente, am_edit) tem suporte para
installing themed icons. First, you have to name your icons in a way that it
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:
is clear where it must be installed. The naming convention is explained in
the table below:


{|
{|
Line 179: Line 162:
|}
|}


Examples:
Exemplos:


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


To install these icons globally, add this line to your <tt>Makefile.am</tt>.
Para instalar estes ícones globalmente, adicione essa linha ao seu <tt>Makefile.am</tt>.


  KDE_ICON = open kfind
  KDE_ICON = open kfind


and to install them in an application specific directory, use this:
e para instalá-los num diretório específico de aplicativo, use isso:


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


=== Loading themed icons ===
=== Carregando ícones temáticos ===
Themed icons are loaded with the iconloader, using the standard icon groups.
Ícones temáticos são carregados com o iconloader, usando os grupos de ícone padrões.
For example:
Por exemplo:


<syntaxhighlight lang="cpp-qt">
<syntaxhighlight lang="cpp-qt">
Line 202: Line 185:
</syntaxhighlight>
</syntaxhighlight>


This will load the "kfind" icon, of depth and size specified for the
Isso carregará o ícone "kfind", de profundidade e tamanho especificados pelo grupo ''Desktop''.
''Desktop'' group.


=== Unthemed icons ===
=== Ícones não temáticos ===


Unthemed icons are installed in {{path|$KDEDIR/share/apps/$APPNAME/pics}}.
Ícones não temáticos são instalados em {{path|$KDEDIR/share/apps/$APPNAME/pics}}. Para instalá-los, use isso em seu <tt>Makefile.am</tt>.
To install them, use this in you <tt>Makefile.am</tt>.


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


You must not give the icons special names.
Você não deve dar aos ícones nomes especiais.
Also, no further processing is done on them: no effects and size,depth selection
Além disso, nenhum outro processamento é feito com eles: sem efeitos e tamanho, seleção de profundidade.
is done.


Unthemed icons can be loaded with the iconloader using the ''User''
Ícones não temáticos podem ser carregados com o iconloader usando o grupo ''User''. Isso carregará um ícone de usuário.
group. This will load a user icon:


<syntaxhighlight lang="cpp-qt">
<syntaxhighlight lang="cpp-qt">
Line 225: Line 204:
</syntaxhighlight>
</syntaxhighlight>


== Conclusion ==
== Conclusão ==
There are 3 ways to install icons: global themed, application
3 formas de instalar ícones: temático global, temático de aplicativo especifico
specific themed and unthemed. All types of icons can be loaded with the
e não temático. Todos os tipos de ícones podem ser carregados com o
iconloader. You should choose a specific installation depending on your
iconloader. Você deve escolher uma instalação específica dependendo de suas necessidades.
needs.




''Initial Author:'' Geert Jansen [mailto:[email protected] &lt;[email protected]&gt;]
''Autor inicial:'' Geert Jansen [mailto:[email protected] &lt;[email protected]&gt;]


[[Category:KDE3]]
[[Category:KDE3]]
[[Category:Architecture]]
[[Category:Architecture]]

Latest revision as of 14:13, 28 August 2014


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.

Carregamento de ícones

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);

Conclusão

Há 3 formas de instalar ícones: temático global, temático de aplicativo especifico e não temático. Todos os tipos de ícones podem ser carregados com o iconloader. Você deve escolher uma instalação específica dependendo de suas necessidades.


Autor inicial: Geert Jansen <[email protected]>