martes, 30 de noviembre de 2010

Icono Especificación del tema

Icono Especificación del tema: "Icono Especificación del tema
Alexander Larsson




Frans Englich





Versión 0.11

Tabla de contenidos

Información general
Definiciones
Directorio de Diseño
Formatos de archivo

Contexto

Icono de búsqueda
Ejemplo
Instalación de los iconos de aplicaciones
Aplicación Notas
Antecedentes
A. Cambiar la historia

Información general

Un tema de iconos es un conjunto de iconos que comparten un aspecto común. El usuario puede seleccionar el tema de iconos que desea utilizar, y todos los iconos de utilizar aplicaciones del tema. El usuario inicial de temas de iconos es el campo de icono de la especificación de archivo de escritorio, pero en el futuro puede tener otros usos (como los iconos tipo MIME).

Desde el punto de vista del programador un tema de iconos es una asignación. Dado un conjunto de directorios en busca de iconos y un nombre del tema que los mapas del nombre del icono y el tamaño de los iconos nominal a un icono de nombre de archivo.
Definiciones

Icono del tema

Un tema de iconos es un conjunto con nombre de iconos. Se utiliza en el mapa de un iconname y el tamaño de un archivo. Los temas pueden heredar de otros temas como una forma de ampliarlas.
Icono de archivo

Un archivo de icono es una imagen que se puede cargar y se utiliza como un icono. El archivo de imagen formatos soportados son PNG, XPM y SVG. PNG es el formato de mapa de bits se recomienda, y SVG es para los iconos vectorizados. XPM se admite por razones de Compatibilidad hacia atrás, y no se recomienda que los nuevos temas utilizan archivos XPM. Apoyo a IVS es opcional.
Directorio de base

Los iconos y los temas se buscan en un conjunto de guías telefónicas, directorios llama base. Los temas se guardan en subdirectorios de los directorios base.

Directorio de Diseño

Los iconos y los temas se buscan en un conjunto de directorios. De forma predeterminada, las aplicaciones deben buscar en $ HOME / .icons (por compatibilidad hacia atrás), en XDG_DATA_DIRS $ / iconos y en / usr / share / pixmaps (en ese orden). Asimismo, las solicitudes pueden agregar sus directorios propio icono a esta lista, y los usuarios pueden ampliar o modificar la lista (en application / formas específicas de escritorio). En cada uno de estos temas directorios se almacenan en subdirectorios. Un tema se puede propagar a través de directorios de base por tener varios subdirectorios del mismo nombre. Esta manera los usuarios pueden ampliar y reemplazar los temas del sistema.

Con el fin de tener un lugar para aplicaciones de terceros para instalar sus iconos que siempre debe existir un tema llamado 'hicolor' [1]. Los datos para el tema hicolor está disponible para su descarga en: http://www.freedesktop.org/ software /-tema de iconos /. implementaciones están obligados a buscar en el 'hicolor' El tema de si un icono no se encontró en el tema actual.

Cada tema se almacena como subdirectorios de los directorios base. El nombre interno del tema es el nombre del subdirectorio, aunque el visible nombre de usuario tal como se especifica en el tema pueden ser diferentes. Por lo tanto, los nombres de tema son mayúsculas y minúsculas, y se limitan a caracteres ASCII. Tema también nombres no pueden contener comas o espacio.

En al menos uno de los directorios tema no debe ser un llamado index.theme archivo que describe el tema. La primera index.theme encontrado durante la búsqueda de los directorios base para se utiliza. Este archivo describe los atributos generales del tema.

En el directorio de temas son también un conjunto de subdirectorios que contienen archivos de imagen. Cada directorio contiene iconos diseñados para un tamaño de icono nominales determinados, según lo descrito por el archivo index.theme. Los subdirectorios se permite varios niveles de profundidad, por ejemplo, el subdirectorio '48x48/apps' en el tema 'hicolor' terminaría en $ basedir/hicolor/48x48/apps.

Los archivos de imagen debe ser uno de los tipos: PNG, XPM, o SVG, y la extensión debe ser xpm, 'o' 'svg'.. Png (minúsculas) ','.. El soporte para archivos SVG es opcional. Las implementaciones que no son compatibles con IVS sólo debe pasar por alto ninguna '. Svg' archivos. Además de esto puede haber un archivo adicional con los datos adicionales icono para cada archivo. Debe tener el mismo nombre que el archivo de imagen, con la extensión '. Icono'. por ejemplo, si el archivo de icono que se llama 'mime_source_c.png' el expediente correspondiente se denominaría 'mime_source_c.icon'.
Formatos de archivo

Tanto el tema de iconos y el archivo de descripción de archivos de datos son archivos de texto icono de estilo-ini, como se describe en la especificación de archivo de escritorio. Ellos no tienen ningún campo de la codificación. En su lugar, siempre se deben almacenar en codificación UTF-8.

El archivo index.theme debe comenzar con una sección llamada Icon Theme, con contenidos de acuerdo con el cuadro 1. Todas las listas son separados por comas.

Tabla 1. Teclas estándar
Clave Descripción Tipo de valor Requerido
Nombre nombre corto del tema del icono, utilizado por ejemplo en las listas de la selección de temas. localestring SÍ
Comentar ya cadena que describe el tema localestring SÍ
Hereda

El nombre del tema que hereda de este tema. Si el nombre de un icono no se encuentra en el tema actual, es buscado en el tema heredado (y de forma recursiva en todos los temas heredados).

Si no se especifica el tema implementaciones están obligados a añadir el 'hicolor' tema para el árbol de herencia. Una aplicación puede añadir, opcionalmente, por defecto otros temas de entre los especificados último tema y el tema hicolor.
cadenas NO
Directorios lista de los subdirectorios de este tema. Para cada subdirectorio que debe haber una sección en el archivo index.theme describe ese directorio. cadenas SÍ
Ocultos Ya sea para ocultar el tema en una selección de la interfaz de usuario tema. Esto se usa para cosas tales como reserva-temas que no se supone que son visibles para el usuario. booleano NO
Ejemplo El nombre de un icono que se debe utilizar como un ejemplo de cómo este tema se ve. cadena NO

Cada directorio especificado en la clave del repertorio tiene una sección que corresponde con el mismo nombre que el directorio. El contenido de esta sección se muestra en el cuadro 2.

Tabla 2. Teclas por directorio
Clave Descripción Tipo de valor Requerido Tipo
Tamaño Tamaño nominal de los iconos en este directorio. entero SÍ
Contexto El contexto en el icono se utiliza normalmente pulg Esto es discutido en detalle en la sección denominada 'Contexto'. cadena NO
Tipo El tipo de tamaño de los iconos para los iconos en este directorio. Los tipos válidos son, escalable y de umbral fijo. El tipo decide qué otras claves en la sección se utilizan. Si no se especifica, el valor predeterminado es Umbral. cadena NO
MaxSize Especifica el tamaño máximo que los iconos de este directorio se puede escalar a. El valor predeterminado es el valor del tamaño si no está presente. entero NO Escalable
MinSize Especifica el tamaño mínimo que los iconos de este directorio se puede escalar a. El valor predeterminado es el valor del tamaño si no está presente. entero NO Escalable
Umbral Los iconos de este directorio se puede utilizar si el tamaño difieren más en este mucho de el tamaño deseado. El valor predeterminado es 2 si no está presente. entero NO Umbral

Además de estos grupos puede agregar grupos adicionales para el archivo index.theme con el fin de extenderlo. Estas extensiones deben comenzar con 'X', y puede ser utilizado para agregar información específica de escritorio para el archivo de tema. grupo de nombres Un ejemplo sería 'X-KDE Icon Theme' o 'X-GNOME Icon Theme'.

El archivo filename.icon opcional contiene un grupo llamado 'Icono de datos', con las materias que figuran en el cuadro 3.

Cuadro 3. Icono de datos claves
Clave Descripción Tipo de valor Requerido
DisplayName Un UTF8 traducida cadena que se puede utilizar en lugar del nombre del icono cuando el icono es escuchar por ejemplo, en una interfaz de usuario. localestring NO
EmbeddedTextRectangle Si esto existe, especifica las cuatro esquinas de un rectángulo en el programa que muestra el icono se puede integrar texto. Esto normalmente se utiliza, por ejemplo administradores de archivos que desea mostrar una vista previa del contenido del archivo de texto en el icono. Las esquinas se especifican mediante una lista de cuatro valores: x0, y0, x1, y1. Los valores son las coordenadas de píxel de la esquina superior izquierda del icono, a excepción de los archivos SVG, en el que se especifican en un 1000x1000 espacio de coordenadas que se escala con el tamaño final de los prestados en el icono. enteros NO
AttachPoints Una lista de puntos, separados por '|' que se pueden utilizar como puntos de anclaje de los emblemas, superposiciones. Los puntos son coordenadas de píxeles de la esquina superior izquierda del icono, a excepción de los archivos SVG, en el que se especifican en un 1000x1000 espacio de coordenadas que se escala con el tamaño final de los prestados en el icono. puntos NO

Extensiones en el fichero de filename.icon están permitidos, pero deben ser las claves comienzan con 'X' para evitar colisiones con las futuras extensiones estándar para este formato.
Contexto

El contexto permite que el diseñador iconos de grupo en un nivel conceptual. No actúa como un espacio de nombres en el sistema de archivos, de modo que los iconos pueden tener nombres idénticos, pero permite que las implementaciones de clasificar y ordenar por ella, por ejemplo.

Estos son los contextos disponibles:

*

Acciones. Los iconos que representan acciones que el usuario inicia, como en Guardar como.
*

Dispositivos. Los iconos que representan el mundo real de los dispositivos, como impresoras y ratones. No es para los nodos del sistema de archivos, tales como dispositivos de bloque o carácter.
*

Sistemas de Ficheros. Iconos para objetos que se representan como parte del sistema de archivos. Este es, por ejemplo, la red local, 'Casa'y'Escritorio'carpetas.
*

Tipos MIME. Los iconos que representan los tipos MIME.

Icono de búsqueda

El icono del mecanismo de búsqueda tiene dos configuraciones globales, la lista de directorios base y el nombre interno del tema actual. Teniendo en cuenta estos tenemos que especificar cómo buscar un archivo de icono del nombre del icono y el tamaño nominal.

La búsqueda se realiza por primera vez en el tema actual y, a continuación de forma recursiva en cada uno de actual tema de los padres, y finalmente en el tema por defecto denominado 'hicolor' (implementaciones pueden agregar más temas por defecto antes de 'hicolor', pero 'hicolor' debe ser el último ). Tan pronto como hay un icono de cualquier tamaño que se ajuste en un tema, la búsqueda se detiene. Aun cuando puede haber un icono con un tamaño más cercano a la correcta en un tema heredado, no queremos usarlo. Si lo hace, puede generar un cambio incompatible en un icono al cambiar los tamaños de icono (por ejemplo, captura).

La búsqueda dentro de un tema se hace en tres fases. En primer lugar todos los directorios que son analizados en busca de una coincidencia exacta, por ejemplo, una donde el tamaño permitido de los archivos de icono coincide con lo que se levantó la mirada. Entonces todos los directorios son analizados en busca de cualquier icono que coincide con el nombre. Si eso falla finalmente recurrir a los iconos unthemed. Si no somos capaces de encontrar ningún icono en todo lo que corresponde a la aplicación de elegir un buen reserva, como la elección correcta depende del contexto.

El algoritmo exacto (en pseudocódigo) para buscar un icono en un tema (si la aplicación soporta SVG) es:

FindIcon (icono, tamaño) {nombre = FindIconHelper (icono, el tamaño, el usuario selecciona el tema), si nombre de archivo)! = Ninguno retorno nombre retorno LookupFallbackIcon (icono} FindIconHelper (icono, tamaño, tema) {nombre = LookupIcon (icono, el tamaño, tema) en caso de nombre de archivo! no return = nombre de archivo si el tema tiene padres padres = theme.parents más si el tema! padres hicolor = = [hicolor] para los padres de los padres {archivo = FindIconHelper (icono, el tamaño, los padres) en caso de nombre de archivo! no return = Nombre de archivo}} no retorno


Con las funciones auxiliares siguientes:

LookupIcon (iconname, tamaño, tema) {para cada subdirectorio en $ (lista tema subdir) {para cada directorio) $ basename ({lista para la ampliación en un ('png', 'svg', 'xpm') {if DirectoryMatchesSize ( subdir, tamaño) {nombre = directorio / $ (themename) / subdir / iconname.extension si existen Nombre de archivo del retorno nombre}}}} minimal_size MAXINT = para cada subdirectorio en $ (lista tema subdir) {para cada directorio (lista basename $ ) {de la extensión en un ('png', 'svg', 'xpm') {nombre = directorio / $ (themename) / subdir / iconname.extension si existen nombre de archivo y (subdir, tamaño) <{minimal_size closest_filename DirectorySizeDistance = Nombre de archivo del minimal_size = DirectorySizeDistance (subdir, tamaño)}}}} si closest_filename unidad vuelve closest_filename no retorno} LookupFallbackIcon (iconname) {para cada directorio) $ basename ({lista para la ampliación en un ('png', 'svg', 'xpm') {si existe el directorio / directorio de retorno iconname.extension / iconname.extension}}} no volver DirectoryMatchesSize (subdir, iconsize) {leer Tipo y tamaño de los datos de subdir si el tipo es fijo Tamaño retorno == iconsize si el tipo de cambio se escala MinSize <= iconsize <= MaxSize si el tipo es el regreso Tamaño de umbral - Umbral volver MaxSize iconsize - vuelta MaxSize 0 si es de tipo umbral si iconsize Tamaño y vuelta Umbral iconsize - MaxSize return 0}

En algunos casos, no siempre quiere caer de nuevo a un icono en un tema heredado. Por ejemplo, a veces usted busca una serie de iconos, prefiriendo alguno de ellos antes de usar un icono de un tema heredado. Para apoyar las implementaciones de este tipo de operaciones puede contener una función que se encuentra el primero de una lista de nombres de icono en la jerarquía de herencia. Es decir, sería algo como esto:

FindBestIcon (iconList, tamaño) {nombre = FindBestIconHelper (iconList, el tamaño, el tema seleccionado de usuario), nombre de archivo! Si no return = nombre de archivo de icono en iconList {archivo = LookupFallbackIcon (icono) en caso de nombre de archivo; = ninguno! Retorno nombre retorno}} ninguno FindBestIconHelper (iconList, tamaño, tema) {para el icono en iconList {archivo = LookupIcon (icono, tamaño, tema) en caso de nombre de archivo! = ninguna devolución archivo} si el tema tiene padres padres = theme.parents más si el tema! padres hicolor = = [ ] hicolor para los padres de los padres {archivo = FindBestIconHelper (iconList, el tamaño, los padres) en caso de nombre de archivo! = ninguno se nombre}} no retorno

Esto puede ser muy útil por ejemplo al manipular iconos tipo MIME, donde hay más y menos 'específicos' versiones de los iconos.
Ejemplo

Aquí es un archivo index.theme ejemplo:

[Icon Theme] Nombre = sv] abedul Nombre [= Comentar Björk = Icono tema con un comentario de madera buscar [sv] = Träinspirerat ikontema Hereda = madera, Directorios default = 48x48/apps, 48x48/mimetypes, 32x32/apps, escalable / apps , escalable / mimetypes [escalable / apps] Tamaño = 48 = Tipo escalable MinSize MaxSize = 1 = 256 = Contexto aplicaciones [escalable / mimetypes] Tamaño = 48 = Tipo escalable MinSize MaxSize = 1 = 256 = Contexto Tipos MIME [32x32/apps] Tamaño = 32 = Tipo contexto fijo = [48x48/apps] Tamaño Aplicaciones = 48 = Tipo contexto fijo = Tamaño [48x48/mimetypes] Aplicaciones = 48 = Tipo contexto fijo = Tipos MIME

El árbol de directorios correspondientes en el directorio / usr / share / iconos podría tener el siguiente aspecto:

abedul / abedul index.theme / escalable / apps / abedul mozilla.svg / escalable / mime / abedul mime_text_plain.svg / escalable / mime / mime_text_plain.icon birch/48x48/apps/mozilla.png birch/32x32/apps/mozilla.png birch/48x48/mimetypes/mime_text_plain.png birch/48x48/mimetypes/mime_text_plain.icon

En caso de abedul / escalable / mime / mime_text_plain.icon contiene:

[Icono de los datos] DisplayName = texto Mime / plain EmbeddedTextRectangle = 100100900900 AttachPoints = 200200 | 800200 | 500500 | 200800 | 800800

Y birch/48x48/mimetypes/mime_text_plain.icon contiene:

[Icono de los datos] DisplayName = texto Mime / plain EmbeddedTextRectangle = 8,8,40,40 AttachPoints = 20,20 | 40,40 | 50,10 | 10,50

En este ejemplo, una búsqueda de 'Mozilla' obtendría el 48x48 y 32x32 iconos prerendered antes de la SVG iconos por el orden de los directorios.
Instalación de los iconos de aplicaciones

Por lo tanto, usted es un autor de la aplicación, y desea instalar los iconos de aplicaciones para que funcionen en el menú de KDE y Gnome. Como mínimo usted debe instalar un icono de 48x48 en el tema hicolor. Esto significa la instalación de un archivo PNG en $ prefix/share/icons/hicolor/48x48/apps. Opcionalmente se puede instalar los iconos en diversos tamaños. Por ejemplo, la instalación de un icono svg en $ PREFIX / share / icons / hicolor / escalable y medios la mayoría de aplicaciones de escritorio tendrá un icono que funcione para todos los tamaños. Incluso puede ser que desee para instalar los iconos con un aspecto que coincide con otros conocidos temas, así que su aplicación se ajuste con algún entorno de escritorio específico.

Se recomienda que los iconos instalados en el tema hicolor mirada neutral, ya que es un tema de reserva que se utilizará en combinación con algunos temas muy diferentes que buscan. Pero si usted no tiene ningún icono neutro, por favor, instale cualquier icono que tiene en el tema hicolor para que todas las aplicaciones de conseguir por lo menos en algún icono en todos los temas.
Aplicación Notas

El algoritmo como se describe en este documento las obras de siempre buscar nombres de archivos de directorios (una estadística en la terminología de Unix). Una buena implementación se espera para leer los directorios de una vez, y todas las búsquedas en la memoria utilizando esa información.

Este caché puede hacer que sea imposible para los usuarios agregar iconos sin tener que reiniciar las aplicaciones. Para manejar esto, cualquier aplicación que hace el almacenamiento en caché está obligado a mirar el mtime de los directorios icono de nivel superior cuando se hace una caché de las operaciones de búsqueda, a menos que ya lo hicieron hace más de 5 segundos menos. Esto significa que cualquier editor de iconos o el programa de instalación del tema sólo tiene que cambiar el mtime del directorio del nivel superior donde se cambió el tema para asegurarse de que los nuevos iconos con el tiempo se acostumbrará.
Antecedentes

La especificación del tema del icono se basa en el icono del sistema original tema de KDE, diseñado por Antonio Larossa, Geert Jansen y Torsten Rahn. La especificación común sobre todo añade soporte para los archivos. Icono, cambia el nombre de la descripción del tema de los archivos de icono y elimina algunas referencias a kde en ellos.
A cambio la historia

Versión 0.11, 7 de febrero de 2006, Alexander Larsson.

*

Se corrigió el icono de búsqueda de aclaración a trabajar con la herencia múltiple.

Versión 0.10, 7 de febrero de 2006, Alexander Larsson.

*

Aclarar que el icono de búsqueda busca en todos los temas de los padres antes de retroceder a los iconos nonthemed.
*

Añadida función de búsqueda que tiene una lista de nombres de iconos (FindBestIcon)

La versión 0.9, 4 de abril de 2005, Alexander Larsson.

*

Limpiezas y arreglos con el lenguaje de Dawes Rodney y Englich Frans.
*

Añadida la sección que describe los contextos en más detalles (por Frans Englich).

La versión 0.8, 5 de febrero de 2004, Alexander Larsson.

*

Solucionar problemas del lenguaje como señala Rodney Dawes y Terry Michael.
*

Se agregó una sección de fondo.

La versión 0.7, el 13 de septiembre de 2003, Heinrich Wendel.

*

Se convierten en basedir especificaciones.
*

Tipo de Cambio de MaxSize, MinSize y el umbral a un entero.
*

Eliminado error tipográfico en el ejemplo de código.
*

Corregido ruta por defecto-icon-theme.

Versión 0.6, 2 de diciembre de 2002, Alexander Larsson.

*

Añadido clave oculta.
*

Eliminada la herencia múltiple.
*

Hicolor cambió el nombre del tema por defecto.
*

Añadido el icono de instalación de la aplicación sección.
*

Se han solucionado algunos problemas xml.

La versión 0.5, el 18 de septiembre de 2002, Alexander Larsson.

*

Añadido a los datos de DisplayName icono.
*

ejemplo, hasta fija svg datos icono.
*

Se han solucionado algunos errores de ortografía y gramática.

La versión 0.4, el 16 de mayo de 2002, Alexander Larsson.

*

Se han solucionado algunos errores de ortografía y gramática.

Versión 0.3, 14 de mayo de 2002, Alexander Larsson.

*

Fabricado apoyo a IVS opcional.
*

Añadido un tema usar por defecto.
*

Se ha cambiado el diseño de la guía ejemplo un poco para que coincida con el tema por defecto.

Versión 0.2, el 29 de abril de 2002, Alexander Larsson.

*

Cambio de orden de búsqueda para PNG, SVG, xpm.
*

Añadido comentario al decir que xpm es compatible hacia atrás compatibilidad y no se recomienda en nuevos temas.
*

Tipo predeterminado para un directorio es ahora Umbral
*

Añadido aplicación sección de notas.
*

Añadido clave Ejemplo.

La versión 0.1, el 22 de abril de 2002, Alexander Larsson.

*

Creado el proyecto inicial.


[1] Este nombre se elige para la compatibilidad hacia atrás con el tema por defecto de KDE de edad


- Enviado mediante la barra Google"

No hay comentarios:

Publicar un comentario

Seguidores

Archivo del blog