GTK+ es el Gimp Toolkit. Fue escrito originalmente como parte del proyecto Gimp, pero se ha convertido en un excelente ***widget set de propósito general. Más información en ****GTK+ is the Gimp Toolkit. It was originally written as part of the Gimp project, but it has grown into an excellent general purpose widget set. Find out more at http://www.gtk.org
GTK+ es la interfaz que las aplicaciones de GNOME usan para interactuar con el usuario. Es similar al papel de Motif en CDE, Qt en KDE o el-widget-set-que-no-tiene-nombre en Win32. ***GTK+ is the interface which GNOME applications use to interact with the user. It is similar to the role of Motif in CDE, Qt in KDE or the-widget-set-which-has-no-name in Win32.
¡Puedes escribir programas GTK+ en toneladas de lenguajes! El humilde autor de estas FAQ conoce los siguientes ***bindings: ****You can write GTK+ programs in tons of languages! Your humble FAQ author knows of the following bindings:
C (original) |
C++ |
***Objective C |
Python |
Perl 5 |
Scheme (Guile) |
TOM |
Gwydion Dylan |
Ada95 |
Si hay otros, entonces por favor haznos saber cuáles son. (Ver If there are others, then please let us know about them. (See Contactar con el ***Maintainer de las FAQ ****Contact the FAQ Maintainer )
Te animamos a añadir ***to add bindings to other languages should the fancy strike you. ***N.b., que los bindings de Scheme ya tienen una representación formal en el API, y por lo tanto si quieres empezar a trabajar con nuevos bindings, quizá te gustaría empezar por aquí. ****You are encouraged to add bindings to other languages should the fancy strike you. N.b., that the Scheme bindings already have a formalized representation of the API, so if you want to start working on new bindings, then you might want to start from here.
Habiendo escrito lo anterior, me tengo que preguntar si no podríamos de alguna manera usar CORBA para cortar este nudo gordiano. Si *-* eso de nudo gordiano lo busque en el dicnario de la RAEL *-* los desarrolladores de ORBit can get the cost of a local CORBA call down to that of a normal shared-library call, entonces ¿por qué no CORBificar GTK y trabajar para añadir ***bindings de nuevos lenguajes a ORBit? Sé, que la sabiduría popular dice que CORBA es demasiado pesado para cosas de mucho volumen como las llamadas a X. Oye, no me culpes por lanzar ideas locas: ¡la razón por la que mantengo las FAQ es que no puedo programar! ****Having written that, I have to wonder if we can't somehow use CORBA to cut this Gordian knot. If the ORBit developers can get the cost of a local CORBA call down to that of a normal shared-library call, then why not CORBify GTK and work on adding bindings for new languages to ORBit? I know, the conventional wisdom is that CORBA is too heavyweight for high-volume stuff like X calls. Hey, don't blame me for throwing out crazy ideas: the reason I maintain the FAQ is that I can't program!
Junto con GTK, GNOME usa imlib, una ***image library para X que soporta múltiples formatos de imagen de forma transparente para el programador. Imlib puede incluso usar programas convertidores externos como ImageMagick o pmbplus para convertir formatos de imagen desconocidos a conocidos, por lo que si existe un convertidor para un tipo de imagen, ¡puedes usar casi con toda seguridad ese tipo de imagen en tu aplicación! Imlib también soporta múltiples profundidades de bit, desde de 24 bits hasta 1 bit en monocromo, otra vez de forma transparente al programador, y realiza localización inteligente de mapa de colores y ***dithering automático para conseguir el mejor rendimiento de tu pantalla. Cualquiera que halla intentado alguna vez hacer esto con sus apps X, o quien halla tenido que soportar el destello de la pantalla cundo sus apps tienen que ***allocate a private color map, seguro que os gustará esta característica. *****Along with GTK, GNOME uses imlib, an image library for X which supports multiple image formats transparently to the programmer. Imlib can even use external converter programs like ImageMagick or pmbplus to convert unknown image formats to known formats, so if a converter exists for an image type, you can almost certainly use that image type in your application! Imlib also supports multiple bit-depths, from 24-bit down to 1-bit monochrome, again transparently to the programmer, and does intelligent color map allocation and automatic dithering to get the best possible performance out of your display. Anyone who has ever tried to do this in their X apps, or who has had to endure their screen flashing when apps have to allocate a private color map, you will especially like this feature.
Puedes encontrar más información sobre imlib en http://www.labs.redhat.com/imlib .
Los themes te permiten cambiar el aspecto y sensación de las aplicaciones GTK+ sin recompilarlas. Con los themes, eres capaz de cambiar el theme de todos los apps GTK+ en un ***display dado a la vez. Themes let you change the look and feel of GTK+ applications without recompiling them. With themes, you are able to change the theme of all GTK+ apps on a given display at the same time.
En realidad existen dos partes en un theme en GTK+, el motor y la configuración. El motor es una librería compartida especialmente construida con instrucciones sobre la manera en que los themes deben dibujar los widgets (los controles de una ventana, como los botones, barras de desplazamiento y menús). La configuración incluye información sobre fuentes, colores, que motor usar, y algunas veces imágenes gráficas que incorporar en el theme. Juntos, los dos constituyen el Theme, y le dan a GTK+ su flexible aparaciencia. ****There are actually two parts of a theme in GTK+, the engine and the configuration. The engine is a specially constructed shared library with instructions on the themes way to draw the widgets (the controls of a window, like the buttons, scrollbars and menus). The configuration includes information like fonts, colors, which engine to use, and sometimes graphic images to incorporate into the theme. Together, the two make the Theme, and give GTK+ its flexible appearance.
Para ver algunos ejemplos de cómo es un app GTK+ tematizado, échale un vistazo a: ***To see some examples of what themed GTK+ apps look like, take a look at: http://gtk.themes.org .
Primero, necesitas una versión reciente de GTK+, yo recomiendo actualmente la versión 1.2.1, pero la 1.2.0 funciona bien también. Después consigue los themes que quieras. Una buena selección de themes está disponible en el módulo de motores gtk. Incluso hay más disponibles en ***First, you need a recent version of GTK+, I recommend version 1.2.1 at the moment, but 1.2.0 works fine as well. You then get the themes you want. A good selection of themes is available in the gtk-engines module. Even more are available at http://gtk.themes.org .
Muchos de los módulos incluyen un motor. Necesitas compilar el motor, e instalarlo. Con los motores gtk, esto se realiza de igual manera que con cualquier otro módulo GNOME. Los themes de la website pueden tener distintas instrucciones, consulta su documentación. Algunos de los themes de la website son meras configuraciones alternativas de otro motor, muchos de ellos son para el motor pixmap en los motores gtk. ****Many of the themes include an engine. You need to compile the engine, and install it. In gtk-engines, this is done the same way as any GNOME module. The themes from the website might have different instructions, check their documentation. Some of the themes on the website are merely alternate configurations for another engine, many of them are for the pixmap engine in gtk-engines.
Una vez que el thema está instalado, puedes elegirlo a través del Centro de Control GNOME, bajo Escritorio-> Selector de Temas. El selector te permitirá elegir entre todos los temas instalados ***on the fly, previsualizar la apariencia del tema, y en la versión 1.04 o posterior incluso permitirte la elección de fuente. *****Once the theme is installed, you can select them through the GNOME Control Center, under Desktop->Theme Selector. The selector will allow you to choose between all the themes installed on the fly, preview what the the theme will look like, and in version 1.04 or later even let you select the font.
OpenGL es un API de renderización de 2D y 3D desarrollado por Sillicon Graphics que se ha convertido en un estandar de facto de la industria. ***is a 2D and 3D rendering API developed by Silicon Graphics that has become a de facto industry standard. Basically, it is a tool to take a viewpoint of 3D space, and produce a 2D image of it suitable for drawing on a screen. To quote SGI's FAQ:
OpenGL is a rendering only, vendor neutral API providing 2D and 3D graphics functions, including modeling, transformations, color, lighting, smooth shading, as well as advanced features like texture mapping, NURBS, fog, alpha blending and motion blur. OpenGL works in both immediate and retained (display list) graphics modes.
GNOME usa una implementación del API OpenGL llamado Mesa. Mesa no es OpenGL per se, ya que es un proyecto Free Software que no ha realizado el proceso de licencia de marca registrada OpenGL, pero es una fiel representación del API OpenGL. Mesa no es OpenGL(tm) de identica forma que GNU/Linux y FreeBSD no son Unix(tm)- uses an implementation of the OpenGL API called Mesa. Mesa is not OpenGL per se, since it is a Free Software project that has not gone through the OpenGL trademark licensing process, but it is a faithful representation of the OpenGL API. Mesa is not OpenGL(tm) in precisely the same way that GNU/Linux and FreeBSD are not Unix(tm).
GNOME usa actualmente el protocolo Xde de Drag and Drop. XDE está siendo remplazado con una implementación del Protocolo Drag-And-Drop de las X Windows para interoperar con otros toolkits. Más información en http://www.cco.caltech.edu/~jafl/xdnd/ .