Escolar Documentos
Profissional Documentos
Cultura Documentos
Introducción --
El primer paso que tendrá que hacer es crear un directorio en cualquiera de los
siguientes lugares de interés --
$ PREFIX / share / themes / [nombre de tu tema] / metacity-1 /
$ HOME / .themes / [nombre de tu tema] / metacity-1 /
de acuerdo con el nombre de tu tema. Aunque Metacity detectará temas en cualquier
ubicación, tal vez sea prudente si mantiene el tema dentro de su directorio, mientras
usted escribe y depurarlo.
El siguiente paso para crear un tema Metacity es editando un archivo dentro de ese
directorio llamado "metacity-theme-1.xml. Este es el archivo que contiene la
descripción de XML para el tema que tiene la descripción de la DTD siguientes. Al crear
un nuevo tema Metacity, es útil para tener un tema existente, copiar toda la descripción
XML y luego modificarla, en lugar de crear un tema completamente nuevo desde cero.
Las primeras líneas del formato son --
<?xml version="1.0"?>
<metacity_theme>
<info>
<name>Atlanta</name>
<author>Nombre del autor</author>
<copyright>Tipo de Licencia</copyright>
<date>Fecha</date>
<description>Una descripcion del tema en cuestion</description>
</info>
</metacity_theme>
Tema Básico --
Antes de entrar en una explicación detallada de cada parte, vamos a dar una visión
general de las medidas adoptadas.
Estilos
Para cada tipo de ventana, es necesario asignar un "conjunto de estilo '[o decoración de
ventanas] en él. Cada "conjunto de estilo 'es una composición de varios estilos para
diferentes estados de marco». Usted tendrá que especificar cómo cada uno de estos
estados marco debería mirar en su estilo. Estados de fotogramas se determina por la
siguiente --
Si la ventana está centrada o no se centra
Si la ventana está maximizada o de sombra [o ambos]
Si la ventana puede ser vertical, horizontal, vertical y horizontalmente, cambiar el tamaño
Cada estado "marco" se asigna a un "estilo de marco. Un estilo de marco se divide en dos
partes diferentes - marco de "piezas" y la ventana de 'botones'. Esta separación hace que
sea más fácil para construir un tema Metacity.
Marco piezas
Si se omite alguna de las piezas, entonces nada se establecerá para esa pieza. Metacity
reconoce las piezas del marco siguiendo --
entire_background todo el marco de la ventana que se dibuja primero
titlebar área por encima de la ventana de la aplicación. Barra
de titulos..
titlebar_middle ámbito de la barra de título no se considera una "
ventaja" pieza de
left_titlebar_edge área a la izquierda de la barra de título
right_titlebar_edge área a la derecha de la barra de título
top_titlebar_edge área a la parte superior de la barra de título
bottom_titlebar_edge área a la parte inferior de la barra de título
title área que contiene el título
left_edge el borde izquierdo del marco
right_edge el borde derecho del marco
bottom_edge el borde inferior del marco
overlay mismo que entire_background, sólo que se dibuja por
última vez
Botones de la ventana
Metacity reconoce los botones de la siguiente ventana --
close Botón Cerrar ventana
maximize Maximizar el botón de la ventana
minimize Botón Minimizar la ventana
menu Botón de Menú
Botones metacity.
Para cada botón en la ventana, se debe especificar la forma en que deberían aparecer
en un determinado número de estados del botón. Metacity reconoce los siguientes
estados del botón –
normal ¿Cómo el botón debe aparecer normalmente por un
estado dado el marco?
pressed ¿Cómo el botón debería aparecer al 'click' [con un
ratón]?
prelight ¿Cómo el botón debe aparecer cuando se obtiene el
foco?
<!-- Aquí es donde tenemos que empezar a especificar la geometría de su marco -->
</frame_geometry>
El siguiente diagrama muestra las diferentes anchuras y alturas que puede modificar la
geometría en un marco determinado –
La geometría del cuadro tiene una serie de atributos opcionales que puede proporcionar
--
has_title Determina si la altura del texto del título debe ser
incluido en la calculadora de altura. Este defecto a true
si no se especifica.
title_scale Utilización de marcado Pango - xx-small, x-small, small,
medium, large, x-large y XX-grande. El valor
predeterminado para recoger a su fuente de sobremesa
si no se especifica.
rounded_top_left Determina si la esquina superior izquierda de la ventana
debe ser redondeado. Este defecto a false si no se
especifica.
rounded_top_right Determina si la esquina superior derecha de la ventana
debe ser redondeado. Este defecto a false si no se
especifica.
rounded_bottom_left Determina si la esquina inferior izquierda de la ventana
debe ser redondeado. Este defecto a false si no se
especifica.
rounded_bottom_right Determina si la esquina inferior derecha de la ventana
debe ser redondeado. Este defecto a false si no se
especifica.
<frame_geometry name="normal_geometry">
<distance name="left_width" value="6"/>
<distance name="right_width" value="6"/>
<distance name="bottom_height" value="7"/>
<distance name="left_titlebar_edge" value="6"/>
<distance name="right_titlebar_edge" value="6"/>
<distance name="button_width" value="17"/>
<distance name="button_height" value="17"/>
<distance name="title_vertical_pad" value="4"/>
<border name="title_border" left="3" right="12" top="4" bottom="3"/>
<border name="button_border" left="0" right="0" top="1" bottom="1"/>
</frame_geometry>
Operaciones de dibujo
'operaciones de dibujo son el corazón de diseño de un tema Metacity. Con el fin de
establecer con éxito una parte de la trama, tendrá que especificar una operación de
dibujo para que «pieza de marco».
<draw_ops name="my_drawing_operation">
<! - Aquí es donde tenemos que empezar a especificar su operación de dibujo ->
</ draw_ops>
Operadores
Las operaciones de dibujo se presentaron declararon en general, pero también se puede
colocar en línea [véase el ejemplo de abajo]. La siguiente lista de los operadores están
permitidas dentro de una operación de dibujo --
Constantes
Dentro de las operaciones de dibujo, es posible utilizar las variables predefinidas o
constantes. Constantes han de tener visión declarada y debe comenzar con una letra
mayúscula.
<constant name="MyConstant" value="3"/>
Operaciones
Metacity admite las siguientes operaciones en cualquier dibujo dado «operación» --
line Dibuja una línea con origen (x1, y1) y destino (x2, y2) y
el color dado. Los colores pueden ser un nombre de color como
"azul", un número hexadecimal como "# FF0099", o un color de un
tema GTK dado como "gtk: base [NORMAL]" [Véase algunos ejemplos
más abajo]. Toma anchura atributos
adicionales, dash_on_lengthy dash_off_length, que son "0" por
defecto.
<line color="#00FF00" x1="3" y1="4" x2="0" y2="height" dash_off_length="2"
dash_on_length="3"/>
rectangle Dibuja un rectángulo con origen (x, y) y teniendo en cuenta la
anchura y la altura.Se necesitan atributos opcionales
para cubrir, que es "falso" por defecto.
<rectangle color="blend/gtk:fg[NORMAL]/gtk:bg[NORMAL] x="0" y="0" width="width"
height="height" filled="true"/>
gtk_arrow Dibuja una flecha con origen (x, y) y teniendo en cuenta la anchura,
altura, estado de GTK, sombra [no, dentro, fuera, etched_in y
etched_out] y la dirección [arriba, abajo, izquierda o derecha]. Toma
argumento opcional llena, que es "falso" por defecto.
<gtk_arrow state="normal" x="2" y="2" width="width-4" height="height" shadow="in"
arrow="up" filled="true"/>
gtk_vline Dibuja una línea vertical con origen (x, y1) y destino (x, y2) y
el estado de GTK.
<gtk_vline state="normal" x="0" y1="0" y2="height"/>
<! - Aquí es donde tenemos que empezar a precisar su estilo de marco ->
</ frame_style>
</ frame_style>
Marco piezas
Para dibujar las partes del marco, usted tendrá que proporcionar una operación de
dibujo para cada pieza del marco. Si se omite una parte, entonces nada se extraerán de
la parte de la estructura.
<piece position="entire_background" draw_ops="my_drawing_operation"/>
Los siguientes diagramas muestran las diferentes piezas que se pueden estilo en un
marco determinado –
Botones de la ventana
Poner toda esta información en un estilo de marco único "podría parecerse a la siguiente
--
<! - Tenemos que especificar las posiciones de los botones ahora ->
<button function="left_middle_background" state="pressed"
draw_ops="background_button"/>
<button function="right_middle_background" state="pressed"
draw_ops="background_button"/>
Iconos de menú
En los menús de la ventana se debe especificar los iconos para ver las entradas del menú
Cerrar, Maximizar, Minimizar y UnMaximize. Es suficiente para especificar las
operaciones de dibujo para el estado normal solamente. Si lo desea, puede especificar
operaciones de dibujo para los otros estados, como se mencionó anteriormente.
Windows
El mapa final que debe proporcionar es mapear la ventana "tipos" de dado "establece el
estilo de marco. Cada tipo de ventana necesita un conjunto de estilo - normal, de
diálogo, modal_dialog, menú, la utilidad y la frontera
<window type="normal" style_set="my_normal_style_set"/>
<window type="dialog" style_set="my_dialog_style_set"/>
<window type="modal_dialog" style_set="my_modal_dialog_style_set"/>
<window type="menu" style_set="my_menu_style_set"/>
<window type="utility" style_set="my_utility_style_set"/>
<window type="border" style_set="my_border_style_set"/>
Descripción general
Como puede ver, crear un tema Metacity tomar una cantidad un poco grande de
tiempo. Es aconsejable tomar los temas existentes y modificar y observar los cambios
que realice en forma gradual, en vez de empezar de nuevo. Muchos temas [Crux y Aqua
buenos ejemplos que] se basan casi exclusivamente en imágenes, que será más difícil
para que usted pueda modificar. Mientras que un tema compuesto por imágenes puede
parecer a veces muy tentador, debe permitir que consideran que se necesita una
cantidad considerable de tiempo a hacer el tema.
Un buen recurso para los temas de Metacity es art.gnome.org. Informes de fallos deben
hacerse en bugzilla.gnome.org en el componente de la "Metacity.
Metacity fue escrito por Havoc Pennington y está disponible bajo la GNU General Public
License [GPL]. Este documento fue escrito por Fernando San Martín Woerner, que tiene
cero talento artístico, Traducido al español por Lionel Bino está licenciado bajo la GPL y
los derechos de autor de 2002, Sun Microsystems Inc.