GtkDrawingArea in POO HOWTO?

From: Date: Sun, 08 Feb 2004 18:18:51 +0000
Subject: GtkDrawingArea in POO HOWTO?
Groups: php.gtk.general 
Request: Send a blank email to php-gtk-general+get-4385@lists.php.net to get a copy of this message
hi all, I'm trying to convert this simple script in POO. You can find my try (that does not work) below at the end of the mail. Could someone tell me what is wrong? =============================== #! /usr/bin/php -q <?php dl('php_gtk.'. PHP_SHLIB_SUFFIX); function delete_event() { return false; } function destroy() { Gtk::main_quit(); } $width = 600; $height = 450; $window = &new GtkWindow(); $window->set_position(GTK_WIN_POS_CENTER); $window->connect('delete_event', 'delete_event'); $window->connect('destroy', 'destroy'); $area = &new GtkDrawingArea(); $area->size($width, $height); $area->connect('configure_event', 'configure_event'); $area->connect('expose_event', 'expose_event'); $area->show(); $window->add($area); $window->show(); gtk::main(); function expose_event($area) { global $bg_pixmap, $width, $height; global $x, $y; gdk::draw_pixmap($area->window, $area->style->fg_gc[$area->state], $bg_pixmap, 0, 0, 0, 0, $width, $height); return false; } function configure_event() { global $bg_pixmap, $area; $filename = './images/background_B03.xpm'; $transparent = &new GdkColor(1, 0, 0); list($bg_pixmap, $mask) = Gdk::pixmap_create_from_xpm($area->window, $transparent, $filename); get_class_methods($bg_pixmap); return true; } ?> =============================== #! /usr/bin/php -q <?php dl('php_gtk.'. PHP_SHLIB_SUFFIX); $cl = new cl(); class cl { var $width; var $height; var $area; var $bg_pixmap; function cl() { $this->width = 600; $this->height = 450; $window = &new GtkWindow(); $window->set_position(GTK_WIN_POS_CENTER); $window->connect('delete_event', array($this, 'delete_event')); $window->connect('destroy', array($this, 'destroy')); $this->area = &new GtkDrawingArea(); $this->area->size($this->width, $this->height); $this->area->connect('configure_event', array($this, 'configure_event')); $this->area->connect('expose_event', array($this, 'expose_event')); $this->area->show(); $window->add($this->area); $window->show(); gtk::main(); } function delete_event() { return false; } function destroy() { Gtk::main_quit(); } //function expose_event($area) { function expose_event() { //var_dump($area); var_dump($this->area); //$area = $this->area; //$this->area = $area; gdk::draw_pixmap($area->window, $area->style->fg_gc[$area->state], $this->bg_pixmap, 0, 0, 0, 0, $this->width, $this->height); /* gdk::draw_pixmap($this->area->window, $this->area->style->fg_gc[$area->state], $this->bg_pixmap, 0, 0, 0, 0, $this->width, $this->height); */ return false; } function configure_event() { $filename = './images/background_B03.xpm'; $transparent = &new GdkColor(1, 0, 0); list($this->bg_pixmap, $mask) = Gdk::pixmap_create_from_xpm($this->area->window, $transparent, $filename); get_class_methods($this->bg_pixmap); return true; } } // vim:cindent sw=4 ?> =============================== -- Thanks in advance, Cheers

« previous php.gtk.general (#4385) next »