]> Pileus Git - ~andy/gtk/blob - docs/es/gtkfaq-es-5.html
5ecc825b9ddfa62d1c1b8e12fda67e2e2e40136e
[~andy/gtk] / docs / es / gtkfaq-es-5.html
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
2 <HTML>
3 <HEAD>
4  <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.6">
5  <TITLE>GTK+ FAQ: Acerca de gdk</TITLE>
6  <LINK HREF="gtkfaq-es-6.html" REL=next>
7  <LINK HREF="gtkfaq-es-4.html" REL=previous>
8  <LINK HREF="gtkfaq-es.html#toc5" REL=contents>
9 </HEAD>
10 <BODY BGCOLOR="#FFFFFF">
11 <A HREF="gtkfaq-es-6.html">Next</A>
12 <A HREF="gtkfaq-es-4.html">Previous</A>
13 <A HREF="gtkfaq-es.html#toc5">Contents</A>
14 <HR NOSHADE>
15 <H2><A NAME="s5">5. Acerca de gdk</A></H2>
16
17 <H2><A NAME="ss5.1">5.1 ¿Qué es gdk?</A>
18 </H2>
19
20 <P>gdk es básicamente una envoltura alrededor de las llamadas a funciones
21 Xlib. Si estás familiarizado con Xlib, muchas de las funciones en gdk 
22 requerirán poco o ningún tiempo para acostumbrarse. 
23 Todas las funciones están escritas para proporcionar una manera fácil de 
24 acceder a las funciones Xlib en una manera un poco más intuitiva. 
25 Adicionalmente, ya que gdk utiliza glib (vea abajo), será más portable
26 y seguro de utilizar en
27 múltiples plataformas.
28 <P>
29 <P>
30 <H2><A NAME="ss5.2">5.2 ¿Cómo utilizo la asignación de colores?</A>
31 </H2>
32
33 <P>Una de las cosas agradables de GDK es que está basado sobre Xlib; esto
34 también es un problema, especialmente en el área de administración
35 de colores. Si usted quiere utilizar color en su programa (dibujando un 
36 rectángulo o algo por el estilo, su código debe lucir algo así:
37 <P>
38 <BLOCKQUOTE><CODE>
39 <PRE>
40 {
41   GdkColor *color;
42   int width, height;
43   GtkWidget *widget;
44   GdkGC *gc;
45
46   ...
47   
48   /* primero, cree un GC (contexto grafico) en el cual dibujar */
49   gc = gdk_gc_new(widget->window);
50
51   /* encuentre las dimensiones correctas para el rectangulo */
52   gdk_window_get_size(widget->window, &amp;width, &amp;height);
53
54   /* el color que queremos utilizar */
55   color = (GdkColor *)malloc(sizeof(GdkColor));
56   
57   /* rojo, verde y azul son valores pasados, indicando el trio RGB
58    * del color que queremos dibujar. Note que los valores de los componentes 
59    * RGB dentro de GdkColor son tomados de 0 a 65535, no de 0 a 255.
60    */
61   color->red = red * (65535/255);
62   color->green = green * (65535/255);
63   color->blue = blue * (65535/255);
64   
65   /* el valor de pixel indica el indice en el mapa de colores del color.
66    * simplemente es una combinacion de los valores RGB colocados anteriormente
67    */
68   color->pixel = (gulong)(red*65536 + green*256 + blue);
69
70   /* Sin embargo, el valor de pixel es solo valido en dispositivos de 24-bit
71    * (color verdadero). Por lo tanto, esta llamada es requerida para que GDK
72    * y X puedan darnos el color mas cercano disponible en el mapa de colores
73    */
74   gdk_color_alloc(gtk_widget_get_colormap(widget), color);
75
76   /* colocar la parte delantera a nuestro color */
77   gdk_gc_set_foreground(gc, color);
78   
79   /* dibujar el rectangulo*/
80   gdk_draw_rectangle(widget->window, gc, 1, 0, 0, width, height);
81
82   ...
83 }
84 </PRE>
85 </CODE></BLOCKQUOTE>
86 <P>
87 <HR NOSHADE>
88 <A HREF="gtkfaq-es-6.html">Next</A>
89 <A HREF="gtkfaq-es-4.html">Previous</A>
90 <A HREF="gtkfaq-es.html#toc5">Contents</A>
91 </BODY>
92 </HTML>