23.3. Ejemplo de fichero rc
# pixmap_path "<dir 1>:<dir 2>:<dir 3>:..."
#
pixmap_path "/usr/include/X11R6/pixmaps:/home/imain/pixmaps"
#
# style <name> [= <name>]
# {
# <option>
# }
#
# widget <widget_set> style <style_name>
# widget_class <widget_class_set> style <style_name>
# Aquí sigue una lista de todos los estados posibles. Obsérvese que algunos
# de ellos no pueden aplicarse aciertos controles.
#
# NORMAL - El estado normal de un control, sin que el ratón esté encima
# de él, sin que haya sido pulsado, etc.
#
# PRELIGHT (Preiluminado) - Los colores definidos en este estado tendrán efecto
# cuando el ratón esté encima del control.
#
# ACTIVE (Activo) - Cuando el control está presionado o se ha hecho clic en
# él estará activo y los atributos asignados con este valor tendrán efecto.
#
# INSENSITIVE (Insensitivo) - Un control tendrá estos atributos cuando está
# insensible y no puede ser activado.
#
# SELECTED (Seleccionado) - Cuando un objeto está seleccionado se
# usan estos atributos.
#
# Dados estos estados podemos establecer los atributos de los controles en cada uno
# de ellos utilizando las directivas siguientes:
#
# fg - Cambia el color de frente o primer plano de un control.
# bg - Cambia el color de fondo de un control.
# bg_pixmap - Cambia el fondo de un control a un mosaico con
# el pixmap dado.
# font - Cambia la fuente que usará el control.
#
# El siguiente fragmento crea un estilo llamado "button" (botón). El nombre no es
# realmente importante, pues se asigna a los controles presentes al final
# del archivo.
style "window"
{
# Fija el margen (padding) en torno a la ventana al pixmap especificado.
# bg_pixmap[<STATE>] = "<pixmap filename>"
bg_pixmap[NORMAL] = "warning.xpm"
}
style "scale"
{
# Pone el color de frente (color de la fuente) a rojo cuando el estado
# es "NORMAL"
fg[NORMAL] = { 1.0, 0, 0 }
# Pone el dibujo de fondo de este control igual al que tenga su padre.
bg_pixmap[NORMAL] = "<parent>"
}
style "button"
{
# Esto muestra todos los posibles estados para un botón. El único que no
# se aplica es el estado SELECTED (seleccionado).
fg[PRELIGHT] = { 0, 1.0, 1.0 }
bg[PRELIGHT] = { 0, 0, 1.0 }
bg[ACTIVE] = { 1.0, 0, 0 }
fg[ACTIVE] = { 0, 1.0, 0 }
bg[NORMAL] = { 1.0, 1.0, 0 }
fg[NORMAL] = { .99, 0, .99 }
bg[INSENSITIVE] = { 1.0, 1.0, 1.0 }
fg[INSENSITIVE] = { 1.0, 0, 1.0 }
}
# En este ejemplo, para crear el nuevo estilo "main_button" (botón principal),
# heredamos los atributos del estilo "button" y luego reemplazamos la
# fuente y el color de fondo del estado "preiluminado".
style "main_button" = "button"
{
font = "-adobe-helvetica-medium-r-normal--*-100-*-*-*-*-*-*"
bg[PRELIGHT] = { 0.75, 0, 0 }
}
style "toggle_button" = "button"
{
fg[NORMAL] = { 1.0, 0, 0 }
fg[ACTIVE] = { 1.0, 0, 0 }
# Esto pone la imagen de fondo del toggle_button a la misma que tenga
# su padre (según se defina en la aplicación).
bg_pixmap[NORMAL] = "<parent>"
}
style "text"
{
bg_pixmap[NORMAL] = "marble.xpm"
fg[NORMAL] = { 1.0, 1.0, 1.0 }
}
style "ruler"
{
font = "-adobe-helvetica-medium-r-normal--*-80-*-*-*-*-*-*"
}
# pixmap_path "~/.pixmaps"
# Lo siguiente hace que los diferentes tipos de controles citados usen
# los estilos definidos arriba.
# Estas clases se enumeran en el resumen general de controles en la
# jerarquía de clases, y probablemente también en este documento, como
# referencia del usuario.
widget_class "GtkWindow" style "window"
widget_class "GtkDialog" style "window"
widget_class "GtkFileSelection" style "window"
widget_class "*Gtk*Scale" style "scale"
widget_class "*GtkCheckButton*" style "toggle_button"
widget_class "*GtkRadioButton*" style "toggle_button"
widget_class "*GtkButton*" style "button"
widget_class "*Ruler" style "ruler"
widget_class "*GtkText" style "text"
# Esto hace que todos los hijos de "main window" tengan el estilo main_button.
# Debiera ser documentado para poder sacarle partido.
widget "main window.*GtkButton*" style "main_button"