Febrero 05, 2005

Soporte de primitivas

Ya tenemos disponible T-Gtk soportando primitivas gráficas.
No he podido resistir acabar una cosa que tenia hace tiempo pendiente, y no encontraba tiempo para ello.
Este sábado me he puesto esta tarde , y he terminado la primera hornada
de funciones de GTK para primitivas.

Desde arcos, rectangulos, hasta imagenes , texto, etc.... todo dibujando sobre
el widget gtk_drawing_area.

Dicho widget nos brinda una superficie para poder 'imprimir' , sobretodo, primitivas gráficas.

Pero , para poder enseñar en la superficie lo que tengamos pensado mostrar,
necesitamos hacerlo en el evento expose_event.

En dicho evento , recogeremos el widget de gtk_drawing_area que nos viene como
parámetro a la función que haremos que 'pinte' lo que nos interese.

Sale del proposito de este blog explicar cada funcion gdk_() disponible para realizar
primitivas gráficas, asi que no comentaré nada sobre como mostrar arcos, etc..,
teneis la documentación de gtk disponible en Intenet, ahi podeis consultar cualquier
tipo de duda o en su defecto , en cuanto publique la próxima revision de T-Gtk,
tendréis disponible el código fuente.


Por cierto, todo es controlado a nivel de Harbour, y me gustaria mostraros un par de lineas de ejemplo:

Funcion Dibuja( widget )

// contexto gráfico
gc = gdk_gc_new( widget )

// Propiedades de linea
gdk_gc_set_line_attributes(gc,;
5,; /* grosor */
GDK_LINE_DOUBLE_DASH,; /* tipo de línea (sólida en este caso) */
GDK_CAP_PROJECTING,; /* terminación (redondeada en este caso) */
GDK_JOIN_ROUND) /* unión de trazos (redondeado en este caso) */

aMiColor := { 0, 0XFFFF, 0, 0 }
colormap := gtk_widget_get_colormap( widget )
gdk_colormap_alloc_color( colormap, color,;
FALSE,; /* sólo lectura, para poder compartirlo */
TRUE ) /* si no lo puede reservar, pide uno parecido */
gdk_gc_set_foreground( gc, color )
gdk_draw_line( widget,; /* área en donde dibujar */
gc,; /* contexto gráfico a utilizar */
1, 1,; /* (x, y) inicial */
200, 200) /* (x, y) final */

...ETC....
...ETC....

g_object_unref( gc )

Return Nil

Si observais esas lineas de código, la unica diferencia con respecto a C es que
en vez de pasar estructuras de color, lo sustuimos por un simple array,
aMiColor, donde cada posicion es un miembro de la estructura GdkColor, de
esta manera conseguimos un parecido lo mas aproximado a C.

Pero, basta ya de tanto teoria y vamos haber el resultado:
drawing.jpg

Por cierto, fijaos en las transparencia que realiza el solito, tanto la imagen, de logo de glade.png asi como el resto de primitivas.


Saludos.
Rafa Carmona

Escrito por Rafa Carmona a las Febrero 5, 2005 11:41 PM
Comentarios

网络营销软件
网络营销软件
网络营销软件
群发软件
群发软件
---
群发软件
博客群建软件
网络营销软件
论坛群发软件
网站排名软件
群发软件
推广小助手破解版
论坛群发
网站排名软件
群发软件
推荐给你很好的群发软件信息群发软件和供求群发软件
推荐给你很好的群发软件信息群发软件和供求群发软件博客群发软件网络营销软件网络营销软件
网站排名软件网站排名软件网站优化软件信息群发软件信息群发软件信息群发软件论坛群发软件网站推广软件网站推广软件博客群发软件博客群发软件
群发软件
网络营销软件
论坛群发
网站推广软件
群发软件群发软件博客群发软件论坛群发软件网络营销软件论坛群发软件
信息群发软件推广软件网站推广软件网络营销软件网站推广软件群发软件网站排名软件网站推广软件博客群发软件论坛群发软件群发软件网站排名软件网站推广软件博客群发软件论坛群发软件
网站排名软件
群发软件
博客群发软件
网站排名软件
网站推广软件
群发软件信息群发软件
免费论坛群发软件
论坛群发软件
网站排名软件
免费博客群发软件
网站推广软件

群发软件
博客群发软件
网站排名软件
网站推广软件
群发软件信息群发软件
免费论坛群发软件
论坛群发软件
网站排名软件
免费博客群发软件
博客群发软件
信息群发软件
论坛群发软件
信息群发软件
博客群发软件
qq群发软件
邮件群发软件
博客群建软件
企业名录搜索软件
信息群发软件
邮件群发软件
论坛群发软件
博客群发软件
网站推广软件
网络营销软件
全能营销破解版
网络营销软件
论坛群发软件
论坛群发软件
论坛群发软件
网络营销软件
信息群发软件
信息群发软件
信息群发软件
群发软件
论坛群发软件

Escrito por 群发软件 a las Febrero 10, 2008 01:52 PM
Escribir un comentario









¿Recordar informacion personal?