Ver Mensaje Individual
  #2 (permalink)  
Antiguo 23/11/2003, 05:41
Avatar de epplestun
epplestun
 
Fecha de Ingreso: octubre-2001
Mensajes: 1.621
Antigüedad: 23 años, 5 meses
Puntos: 5
Nose si te habras molestado en buscar por el manual de http://gtk.php.net por que todo lo pone ahi, de todas maneras te voy a aclarar un poquito las cosas

Primero, para monstrar una imagen en una ventana escrita en PHP-GTK debes saber que PHP-GTK solo "renderiza" o "interpreta" archivos .xpm estos archivo los puedes hacer tu con el Gimp por ejemplo o bien escribirlos a mano, ya que su estructura es la de una matriz indicada por diferentes valores, para añadir una imagen .xpm tan solo tienes que:

Código PHP:
list($pixmap$mask) = gdk::pixmap_create_from_xpm($window->windowNULLgetenv("HOME")."/Proyectos/PHP-EDDI-DEV/imagenes/".$imagen);
$var = new GtkPixmap($pixmap$mask);
$var ->show();

$window->add($var); 
Con el metodo estaticopixmap_create_from_xpm de la clase gdk puedes cargar un archivo .xpm y de el extraes el dibujo y su mascara, necesarios para crear una imagen mediante el widget GtkPixmap.

Otra cosa que puedes hacer es uso de GdkPIxbuf (de momento integra para Linux), con el soporte de GdkPixbuf puedes renderizar diferentes tipos de imagenes, como por ejemplo .jpg , .png , .tiff, .xpm ... y cargar la imagne en un GtkDrawingArea, esto ya es algo mas "complicado", bueno mas que complicado algo mas elavorado :P jeje

Aqui te dejo un ejemplo de su uso:
Código PHP:
<?php
dl
('php_gtk.so');

if (
$argc 2)
    die(
"\nUso: php gdk_pixbuf.php <nombreImagen>\n\n");

$image_file $argv[1];
$window = &new GtkWindow();
$window->set_border_width(5);
$window->set_title('GdkPixbuf example');
$window->set_policy(falsefalsetrue);
$window->connect_object('destroy', array('gtk''main_quit'));

$pixbuf GdkPixbuf::new_from_file($image_file);
if (!
$pixbuf) {
    die(
"\nNo se puede cargar $image_file\n\n");
}
$area = &new GtkDrawingArea();
$area->size($pixbuf->get_width(), $pixbuf->get_height());
$area->connect('expose_event''expose_event'$pixbuf);
$frame = &new GtkFrame();
$frame->add($area);
$frame->set_shadow_type(GTK_SHADOW_IN);
$window->add($frame);

$window->show_all();

gtk::main();

function 
expose_event($area$event$pixbuf) {
    
$pixbuf->render_to_drawable($area->window$area->style->fg_gc[GTK_STATE_NORMAL], $event->area->x$event->area->y$event->area->x$event->area->y$event->area->width$event->area->heightGDK_RGB_DITHER_NORMAL00);
}
?>
Otro uso que podrias hacer es usar la libreria GD o ImageMagick y transformar las imagenes a .xpm y cargarlas todas de la primera manera.


En cuanto a lo de los estilos, existe un widget que es GtkStyle, y todos los widgets tienen la posibilidad de modificar su estilo, bien usando el metodo set_style() u otros indicados a cada widget, como set_cell_style. Lo mejor que puedes hacer es revisar el manual y veras el uso de estilos, otra manera es parseando archivos mediante el metodo estatico rc_parse() de la clase GTK. te recominedo que revises el archivo gtk.php de la carpeta tests/ de la instalacion de PHP-GTK.

Espero que haberte aclarado algo mas el tema este De todas maneras pasate por http://talks.php.net y revisa las de PHP-GTK son muy valiosas
__________________
Usuario registrado de Linux #288725