Re: GtkDrawingArea in POO HOWTO?
| From: | Decapode Azur | Date: | Mon, 09 Feb 2004 19:04:22 +0000 |
| Subject: | Re: GtkDrawingArea in POO HOWTO? | ||
| References: | 1 2 | Groups: | php.gtk.general |
| Request: | Send a blank email to php-gtk-general+get-4390@lists.php.net to get a copy of this message | ||
> 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);
> return false;
> }
No, this one does not work for me :
Warning: draw_pixmap() expects the drawable to be GdkWindow, GdkPixmap, or
GdkBitmap
--
> > 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