I have a class (Gtk2::Ex::Geo::Overlay), which is a subclass of 
Gtk2::ScrolledWindow. I have connected the 'value-changed' signals of 
the scrollbars to a method of the Overlay class. In that method I want 
to emit a signal 'extent-changed' for the users of the Overlay widget to 
connect to. The code works ok, but Glib prints out a warning:

GLib-GObject-CRITICAL **: g_object_notify: assertion `G_IS_OBJECT 
(object)' failed

The system is a bit too large to create a test code quickly. The 
essentials are:

package Gtk2::Ex::Geo::Overlay;

use Glib::Object::Subclass
    Gtk2::ScrolledWindow::,
    signals => {
    extent_changed => {},
    },

sub my_inits { # another question is why can't I do these in INIT_INSTANCE
    my($self) = @_;  
    my $hs = $self->get_hscrollbar();
    $hs->signal_connect("value-changed" => \&value_changed, $self);
}

sub value_changed {
    my($scrollbar, $self) = @_;
    $self->{offset} = [$self->get_hadjustment()->value(), 
$self->get_vadjustment()->value()];
    $self->render();
    #$self->signal_emit('extent-changed');
    #causes a GLib-GObject-CRITICAL **: g_object_notify: assertion 
`G_IS_OBJECT (object)' failed
    return 1;
}

Best regards,

Ari

-- 
Prof. Ari Jolma
Geoinformaatio- ja paikannustekniikka / Geoinformation and positioning
Teknillinen Korkeakoulu / Helsinki University of Technology
tel: +358 9 451 3886 address: POBox 1200, 02015 TKK, Finland
Email: ari.jolma at tkk.fi URL: http://www.tkk.fi/~jolma


_______________________________________________
gtk-perl-list mailing list
gtk-perl-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-perl-list

Reply via email to