Development/Architecture/KDE3/Icon Loader/gl: Difference between revisions
(Importing a new version from external source) |
(Importing a new version from external source) |
||
(50 intermediate revisions by the same user not shown) | |||
Line 5: | Line 5: | ||
As iconas son un elemento importante da interface de usuario de calquera ambiente de escritorio. Ben por escolla do usuario, ben polas propias limitacións do hardware, unha mesma icona pode fornecerse en diferentes resolucións e profundidades de cor. Para xestionar a situación dunha maneira fácil, desenvolveuse un xeito estándar de almacenar e acceder ás iconas. | As iconas son un elemento importante da interface de usuario de calquera ambiente de escritorio. Ben por escolla do usuario, ben polas propias limitacións do hardware, unha mesma icona pode fornecerse en diferentes resolucións e profundidades de cor. Para xestionar a situación dunha maneira fácil, desenvolveuse un xeito estándar de almacenar e acceder ás iconas. | ||
== | == Cargar iconas == | ||
=== | === Acceder ao cargador de iconas === | ||
As iconas cárganse mediante a clase [http://api.kde.org/3.5-api/kdelibs-apidocs/kdecore/html/classKIconLoader.html KIconLoader]. Todo aplicativo de KDe conta cun obxecto de carga de iconas global. Pode acceder ao obxecto co seguinte código: | |||
<syntaxhighlight lang="cpp-qt"> | <syntaxhighlight lang="cpp-qt"> | ||
#include <kglobal.h> | #include <kglobal.h> | ||
#include <kiconloader.h> | #include <kiconloader.h> | ||
KIconLoader * | KIconLoader *cargador = KGlobal::iconLoader(); | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== | === Cargar iconas con loadIcon() === | ||
O cargador de iconas non se limita só a iso; tamén garda as iconas na '''caché''' e aplícalles efectos. Para cargar unha icona, empregue o método [http://api.kde.org/3.5-api/kdelibs-apidocs/kdecore/html/classKIconLoader.html#a3 loadIcon()]; a súa declaración é a seguinte: | |||
<syntaxhighlight lang="cpp-qt"> | <syntaxhighlight lang="cpp-qt"> | ||
QPixmap loadIcon( QString | QPixmap loadIcon( QString nome, int grupo, int tamano=0, | ||
int | int estado=KIcon::DefaultState, | ||
QString * | QString *ruta_almacenamento=0L, bool podeDevolverNulo=false); | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Como pode observar, son moitos os parámtros que pode recibir o método. Os máis importantes son os dous primeiros: | |||
# ''' | # '''nome'''. O nome da icona a cargar. Debe indicar o nome a secas, sen extensión. | ||
# ''' | # '''grupo'''. O grupo ao que pertence a icona. O concepto de grupo explícase máis adiante. | ||
=== | === Grupos de iconas === | ||
O concepto de «grupo de icona» ten grande importancia dentro do esquema de iconas de KDE. O grupo denota en que parte da pantalla vai empregarse a icona. Esta información é relevante porque os usuarios de KDe poden asociar resolucións de iconas e efectos visuais a cada grupo. Ao pasarlle o grupo ao cargador de iconas, está a indicar que versión da icona cargar. E que o parámetro sexa obrigatorio axuda a conseguir unha aparencia consistente e personalizábel no conxunto do ambiente de escritorio KDE. | |||
Por exemplo, un usuario pode escoller iconos de 32×32 píxeles cunha desaturación de 0,2 para as barras de ferramentas principais. | |||
A continuación lístanse os grupos dispoñíbeis. Todos eles están definidos na clase [http://api.kde.org/3.5-api/kdelibs-apidocs/kdecore/html/classKIcon.html KIcon], polo que deben ir prefixados con ''KIcon::'' (por exemplo, <code>KIcon::Desktop</code>). | |||
[http://api.kde.org/3.5-api/kdelibs-apidocs/kdecore/html/classKIcon.html KIcon] | |||
* '''Desktop''' | * '''Desktop'''. Iconas para empregar no escritorio, no xestor de ficheiros e en espazos similares. | ||
* '''Toolbar''' | * '''Toolbar'''. Iconas para barras de ferramentas estándar. | ||
* '''MainToolbar''' | * '''MainToolbar'''. Iconas para a barra de ferramentas principal. Un mesmo aplicativo pode ter varias barras de ferramentas; sempre haberá uha delas que sexa a principal. Adoita ser a que contén entradas como «Gardar» e «Abrir», e ten iconas máis grandes que o resto de barras. | ||
* '''Small''' | * '''Small'''. Varias iconas pequenas, como as que aparecen nos menús contextuais, listas e árbores. | ||
* '''User''' | * '''User'''. Grupo especial para cargar iconas específicas de cada aplicativo. Véxase [[#Instalar iconas|Instalar iconas]]. | ||
Por tanto, para cargar a icona «kfind» para o seu uso no grupo «Desktop», deberá empregar o seguinte código: | |||
<syntaxhighlight lang="cpp-qt"> | <syntaxhighlight lang="cpp-qt"> | ||
QPixmap | QPixmap icona; | ||
icona = cargador->loadIcon("kfind", KIcon::Desktop); | |||
</syntaxhighlight> | </syntaxhighlight> | ||
=== | === Información adicional sobre loadIcon() === | ||
Vexamos agora o resto dos parámetros que se lle poden pasar a <code>loadIcon()</code>. | |||
# ''' | # '''tamano'''. Resolución a empregar para a icona, ignorando o valor co que está configurado o grupo. Os efectos asociados ao grupo aplicaranse de todos xeitos. | ||
# ''' | # '''estado'''. O estado da icona. Os valor pode ser calquera dos seguintes: <code>KIcon::DefaultState</code> (''normal''), <code>KIcon::ActiveState</code> (''activo'') e <code>KIcon::DisabledState</code> (''desactivado''). Os botóns das barras de ferramentas, por exemplo, vólvense ''activos'' cando o cursor está situado sobre eles, están ''desactivados'' cando as súas accións non están dispoñíbeis, e o seu estado é ''normal'' no resto das situacións. Cada estado pode levar asociados distintos efectos para fornecer información ao usuario de maneira visual. | ||
# ''' | # '''ruta_almacenamento'''. Se quere saber a ruta na que está almacenada a icona que cargou, forneza neste parámetro un punteiro a QString; a ruta gardarase na cadea apuntada. | ||
# ''' | # '''podeDevolverNulo'''. En caso de non atopar a icona indicada, o valor a devolver dependerá deste parámetro. Se o parámetro leva o valor <code>true</code>, devolverase un mapa de píxeles nulo; en caso contrario, devolverase a icona «unknown» (''descoñecido''). | ||
== | == Instalar iconas == | ||
As iconas poden estar dispoñíbeis en distintas resolucións e profundidades de cor. Neste caso, falamos de «iconas de tema visual», mentres que en caso contrario falaremos de «iconas independentes». | |||
=== | === Resolucións predeterminadas de iconas === | ||
As iconas de tema visual están dispoñíbeis en distintas resolucións e profundidades de cor. Os tamaños estándar son: | |||
;40 | ;40 cores | ||
: | :16×16 píxeles. | ||
: | :22×22 píxeles. | ||
: | :32×32 píxeles. | ||
; | ;Cor real | ||
: | :22×22 píxeles. | ||
: | :32×32 píxeles. | ||
: | :48×48 píxeles. | ||
Visite a [http://www.kde-artists.org/introduction.html fábrica de iconas de KDE] para informarse, entre outras cousas, de que resolucións son obrigatorias. Lembre que todas estas resolucións poden asociarse a un grupo de iconas. | |||
=== | === Contexto das iconas === | ||
As iconas de tema visual almacénanse nunha xerarquía de directorios segundo (1) a súa '''profundidade de cor''', (2) '''resolución''', e (3) '''contexto'''. O concepto de «contexto» é unha novidade introducida polo esquema de iconas de KDE. O contexto dunha icona é o que ''representa'' a icona. Estes son os contextos estándar: | |||
''' | |||
* '''action''' | * '''action'''. A icona representa unha acción nunha barra de ferramentas. Por exemplo, «Abrir» ou «Gardar». | ||
* '''application''' | * '''application'''. A icona representa un aplicativo. For exemplo, «kfind» representa KFind. | ||
* '''device''' | * '''device'''. A icona representa algo relacionado cun dispositivo. Por exemplo, «floppy» (''disquete'') our «mount» (''montar''). | ||
* '''filesystem''' | * '''filesystem'''. A icona representa un elemento do sistema de ficheiros. Por exemplo, «directory» (''directorio''), «socket» (''sócket'') ou «trashcan» (''lixo''). | ||
* '''mimetype''' | * '''mimetype'''. A icona representa un tipo de ficheiro MIME. Por exemplo, «text/html». | ||
'' | Os ''contextos'' son importantes á hora de escoller a icona. Cando o usuario vai escoller unha icona, en vez de amosarlle a lista completa de iconas do sistema, o usuario pode filtrar a lista de iconas escollendo un contexto. | ||
=== | === Xerarquía de directorios === | ||
A seguinte é a xerarquía de directorios nos que se almacenan as iconas de tema visual. | |||
hicolor/ | hicolor/ | ||
Line 145: | Line 119: | ||
... | ... | ||
=== | === Directorio raíz === | ||
As iconas de tema visual poden instalarse de maneira global, con respecto á instalación de KDE, ou nun lugar específico para cada aplicativo. No caso da instalación global, a xerarquía do tema de iconas parte do directorio {{path|$KDEDIR/share/icons}}; no caso da instalación por aplicativo, a xerarquía partirá de {{path|$KDEDIR/share/apps/$APPNAME/icons}}. | |||
=== | === Instalar iconas de tema visual === | ||
O sistema de configuración das fontes de KDE —e en concreto <code>am_edit</code>— permite a instalación de iconas de tema visual. O primeiro que debe facer é nomear as iconas de xeito que quede claro onde quedarán instaladas, tal e como se indica na seguinte táboa: | |||
{| | {| | ||
!| | !|profundidade de cor | ||
! | ! resolución | ||
! - | ! - | ||
! | ! contexto | ||
! - | ! - | ||
! | ! nome | ||
! .png | ! .png | ||
|- | |- | ||
|| hi || 16 || || action | || hi || 16 || || action | ||
|- | |- | ||
|| lo || 22 || || app | || lo || 22 || || app | ||
|- | |- | ||
|| || 32 || || device | || || 32 || || device | ||
|- | |- | ||
|| || 48 || || filesys | || || 48 || || filesys | ||
Line 179: | Line 147: | ||
|} | |} | ||
Exemplos: | |||
lo22-action-open.png | lo22-action-open.png | ||
hi48-app-kfind.png | hi48-app-kfind.png | ||
Para instalar estas iconas de maneira global, engada a seguinte liña ao ficheiro {{path|Makefile.am}}. | |||
KDE_ICON = open kfind | KDE_ICON = open kfind | ||
Para instalala nun directorio específico do aplicativo, empregue estas: | |||
icondir = $(kde_datadir)/myapp/icons | icondir = $(kde_datadir)/myapp/icons | ||
icon_ICON = open kfind | icon_ICON = open kfind | ||
=== | === Cargar iconas de tema visual === | ||
As iconas de tema visual cárganse co cargador de iconas, empregando os grupos de iconas estándar. Por exemplo: | |||
<syntaxhighlight lang="cpp-qt"> | <syntaxhighlight lang="cpp-qt"> | ||
QPixmap | QPixmap icona; | ||
icona = cargador->loadIcon("kfind", KIcon::Desktop); | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Isto cargará a icona «kfind», coa profundidade de cor e resolución coas que está configurado o grupo ''Desktop''. | |||
''Desktop'' | |||
=== | === Iconas independentes === | ||
As iconas independentes instálanse en {{path|$KDEDIR/share/apps/$APPNAME/pics}}. Para instalalas, engada o seguinte ao seu ficheiro {{path|Makefile.am}}. | |||
icondir = $(kde_datadir)/myapp/pics | icondir = $(kde_datadir)/myapp/pics | ||
icon_DATA = open kfind | icon_DATA = open kfind | ||
Non ten que nomear as iconas de ningún xeito especial, e ademais as iconas non se procesarán, é dicir, nin se lles aplicarán efectos nin se terán en conta a súa profundidade de cor e resolución. | |||
As iconas independentes poden cargarse co cargador de iconas, indicando o grupo ''User'': | |||
<syntaxhighlight lang="cpp-qt"> | <syntaxhighlight lang="cpp-qt"> | ||
QPixmap | QPixmap icona; | ||
icona = cargador->loadIcon("unhaicona", KIcon::User); | |||
</syntaxhighlight> | </syntaxhighlight> | ||
== | == Conclusión == | ||
Existen tres xeitos de instalar iconas: de maneira global como parte dun tema visual, como parte do tema visual dun aplicativo en concreto, ou de maneira independente. Escolla a instalación que mellor se adapte ás súas necesidades. | |||
''Autor inicial:'' Geert Jansen [mailto:[email protected] <[email protected]>] | |||
[[Category:KDE3]] | [[Category:KDE3/gl]] | ||
[[Category: | [[Category:Arquitectura/gl]] |
Latest revision as of 09:43, 22 December 2012
Cargar e instalar iconas en KDE
As iconas son un elemento importante da interface de usuario de calquera ambiente de escritorio. Ben por escolla do usuario, ben polas propias limitacións do hardware, unha mesma icona pode fornecerse en diferentes resolucións e profundidades de cor. Para xestionar a situación dunha maneira fácil, desenvolveuse un xeito estándar de almacenar e acceder ás iconas.
Cargar iconas
Acceder ao cargador de iconas
As iconas cárganse mediante a clase KIconLoader. Todo aplicativo de KDe conta cun obxecto de carga de iconas global. Pode acceder ao obxecto co seguinte código:
#include <kglobal.h>
#include <kiconloader.h>
KIconLoader *cargador = KGlobal::iconLoader();
Cargar iconas con loadIcon()
O cargador de iconas non se limita só a iso; tamén garda as iconas na caché e aplícalles efectos. Para cargar unha icona, empregue o método loadIcon(); a súa declaración é a seguinte:
QPixmap loadIcon( QString nome, int grupo, int tamano=0,
int estado=KIcon::DefaultState,
QString *ruta_almacenamento=0L, bool podeDevolverNulo=false);
Como pode observar, son moitos os parámtros que pode recibir o método. Os máis importantes son os dous primeiros:
- nome. O nome da icona a cargar. Debe indicar o nome a secas, sen extensión.
- grupo. O grupo ao que pertence a icona. O concepto de grupo explícase máis adiante.
Grupos de iconas
O concepto de «grupo de icona» ten grande importancia dentro do esquema de iconas de KDE. O grupo denota en que parte da pantalla vai empregarse a icona. Esta información é relevante porque os usuarios de KDe poden asociar resolucións de iconas e efectos visuais a cada grupo. Ao pasarlle o grupo ao cargador de iconas, está a indicar que versión da icona cargar. E que o parámetro sexa obrigatorio axuda a conseguir unha aparencia consistente e personalizábel no conxunto do ambiente de escritorio KDE.
Por exemplo, un usuario pode escoller iconos de 32×32 píxeles cunha desaturación de 0,2 para as barras de ferramentas principais.
A continuación lístanse os grupos dispoñíbeis. Todos eles están definidos na clase KIcon, polo que deben ir prefixados con KIcon:: (por exemplo, KIcon::Desktop
).
- Desktop. Iconas para empregar no escritorio, no xestor de ficheiros e en espazos similares.
- Toolbar. Iconas para barras de ferramentas estándar.
- MainToolbar. Iconas para a barra de ferramentas principal. Un mesmo aplicativo pode ter varias barras de ferramentas; sempre haberá uha delas que sexa a principal. Adoita ser a que contén entradas como «Gardar» e «Abrir», e ten iconas máis grandes que o resto de barras.
- Small. Varias iconas pequenas, como as que aparecen nos menús contextuais, listas e árbores.
- User. Grupo especial para cargar iconas específicas de cada aplicativo. Véxase Instalar iconas.
Por tanto, para cargar a icona «kfind» para o seu uso no grupo «Desktop», deberá empregar o seguinte código:
QPixmap icona;
icona = cargador->loadIcon("kfind", KIcon::Desktop);
Información adicional sobre loadIcon()
Vexamos agora o resto dos parámetros que se lle poden pasar a loadIcon()
.
- tamano. Resolución a empregar para a icona, ignorando o valor co que está configurado o grupo. Os efectos asociados ao grupo aplicaranse de todos xeitos.
- estado. O estado da icona. Os valor pode ser calquera dos seguintes:
KIcon::DefaultState
(normal),KIcon::ActiveState
(activo) eKIcon::DisabledState
(desactivado). Os botóns das barras de ferramentas, por exemplo, vólvense activos cando o cursor está situado sobre eles, están desactivados cando as súas accións non están dispoñíbeis, e o seu estado é normal no resto das situacións. Cada estado pode levar asociados distintos efectos para fornecer información ao usuario de maneira visual. - ruta_almacenamento. Se quere saber a ruta na que está almacenada a icona que cargou, forneza neste parámetro un punteiro a QString; a ruta gardarase na cadea apuntada.
- podeDevolverNulo. En caso de non atopar a icona indicada, o valor a devolver dependerá deste parámetro. Se o parámetro leva o valor
true
, devolverase un mapa de píxeles nulo; en caso contrario, devolverase a icona «unknown» (descoñecido).
Instalar iconas
As iconas poden estar dispoñíbeis en distintas resolucións e profundidades de cor. Neste caso, falamos de «iconas de tema visual», mentres que en caso contrario falaremos de «iconas independentes».
Resolucións predeterminadas de iconas
As iconas de tema visual están dispoñíbeis en distintas resolucións e profundidades de cor. Os tamaños estándar son:
- 40 cores
- 16×16 píxeles.
- 22×22 píxeles.
- 32×32 píxeles.
- Cor real
- 22×22 píxeles.
- 32×32 píxeles.
- 48×48 píxeles.
Visite a fábrica de iconas de KDE para informarse, entre outras cousas, de que resolucións son obrigatorias. Lembre que todas estas resolucións poden asociarse a un grupo de iconas.
Contexto das iconas
As iconas de tema visual almacénanse nunha xerarquía de directorios segundo (1) a súa profundidade de cor, (2) resolución, e (3) contexto. O concepto de «contexto» é unha novidade introducida polo esquema de iconas de KDE. O contexto dunha icona é o que representa a icona. Estes son os contextos estándar:
- action. A icona representa unha acción nunha barra de ferramentas. Por exemplo, «Abrir» ou «Gardar».
- application. A icona representa un aplicativo. For exemplo, «kfind» representa KFind.
- device. A icona representa algo relacionado cun dispositivo. Por exemplo, «floppy» (disquete) our «mount» (montar).
- filesystem. A icona representa un elemento do sistema de ficheiros. Por exemplo, «directory» (directorio), «socket» (sócket) ou «trashcan» (lixo).
- mimetype. A icona representa un tipo de ficheiro MIME. Por exemplo, «text/html».
Os contextos son importantes á hora de escoller a icona. Cando o usuario vai escoller unha icona, en vez de amosarlle a lista completa de iconas do sistema, o usuario pode filtrar a lista de iconas escollendo un contexto.
Xerarquía de directorios
A seguinte é a xerarquía de directorios nos que se almacenan as iconas de tema visual.
hicolor/ 22x22/ actions/ apps/ devices/ filesystems/ mimetypes/ 32x32/ ... 48x48/ ... locolor/ 16x16/ ... 22x22/ ... 32x32/ ...
Directorio raíz
As iconas de tema visual poden instalarse de maneira global, con respecto á instalación de KDE, ou nun lugar específico para cada aplicativo. No caso da instalación global, a xerarquía do tema de iconas parte do directorio $KDEDIR/share/icons; no caso da instalación por aplicativo, a xerarquía partirá de $KDEDIR/share/apps/$APPNAME/icons.
Instalar iconas de tema visual
O sistema de configuración das fontes de KDE —e en concreto am_edit
— permite a instalación de iconas de tema visual. O primeiro que debe facer é nomear as iconas de xeito que quede claro onde quedarán instaladas, tal e como se indica na seguinte táboa:
profundidade de cor | resolución | - | contexto | - | nome | .png |
---|---|---|---|---|---|---|
hi | 16 | action | ||||
lo | 22 | app | ||||
32 | device | |||||
48 | filesys | |||||
mime |
Exemplos:
lo22-action-open.png hi48-app-kfind.png
Para instalar estas iconas de maneira global, engada a seguinte liña ao ficheiro Makefile.am.
KDE_ICON = open kfind
Para instalala nun directorio específico do aplicativo, empregue estas:
icondir = $(kde_datadir)/myapp/icons icon_ICON = open kfind
Cargar iconas de tema visual
As iconas de tema visual cárganse co cargador de iconas, empregando os grupos de iconas estándar. Por exemplo:
QPixmap icona;
icona = cargador->loadIcon("kfind", KIcon::Desktop);
Isto cargará a icona «kfind», coa profundidade de cor e resolución coas que está configurado o grupo Desktop.
Iconas independentes
As iconas independentes instálanse en $KDEDIR/share/apps/$APPNAME/pics. Para instalalas, engada o seguinte ao seu ficheiro Makefile.am.
icondir = $(kde_datadir)/myapp/pics icon_DATA = open kfind
Non ten que nomear as iconas de ningún xeito especial, e ademais as iconas non se procesarán, é dicir, nin se lles aplicarán efectos nin se terán en conta a súa profundidade de cor e resolución.
As iconas independentes poden cargarse co cargador de iconas, indicando o grupo User:
QPixmap icona;
icona = cargador->loadIcon("unhaicona", KIcon::User);
Conclusión
Existen tres xeitos de instalar iconas: de maneira global como parte dun tema visual, como parte do tema visual dun aplicativo en concreto, ou de maneira independente. Escolla a instalación que mellor se adapte ás súas necesidades.
Autor inicial: Geert Jansen <[email protected]>