Re: [glade--] get_widget_derived() on indirect base class

Rob Benton <[email protected]> Mon, 25 Apr 2005 12:09:05 -0500
Newsgroups gmane.comp.gnome.glademm
Message-ID <[email protected]>
Murray Cumming wrote:
> On Sun, 2005-04-24 at 12:39 -0500, Rob Benton wrote:
> 
>>I've got a class I've created which is derived from Gtk::EventBox and 
>>then another class derived from that:
>>
>>class Chip: public Gtk::EventBox;
>>class EditChip: public Chip;
>>
>>get_widget_derived() complains that Gtk::EventBox is not a direct or 
>>virtual base of EditChip.  Is there a way to get around this or do I 
>>have to inherit from eventbox a second time in my second class?
> 
> 
> What's the actual error message?
> 

EditWindow.C: In constructor `EditWindow::EditWindow(GtkEventBox*, const
    Glib::RefPtr<Gnome::Glade::Xml>&)':
EditWindow.C:4: error: type `class Gtk::EventBox' is not a direct or 
virtual
    base of `EditWindow'




here's there actual constructors:

BaseChip.C:
----------
BaseChip::BaseChip(const Glib::RefPtr<Gnome::Glade::Xml> & g) :
     _type(EMPTY_EMPTY),
     _xml(g),
     drawHeight(100),
     drawWidth(100)
{
     // connect the drawingarea signals
     _drawarea.signal_realize().connect(
         sigc::mem_fun(*this, &BaseChip::drawarea_realize));
     _drawarea.signal_expose_event().connect(
         sigc::mem_fun(*this, &BaseChip::drawarea_expose_event));

     // setup eventbox
     set_size_request(drawWidth, drawHeight);
     add(_drawarea);
     set_events(Gdk::BUTTON_PRESS_MASK);
     signal_button_press_event().connect(
         sigc::mem_fun(*this, &BaseChip::button_press));

     // initialize the chip as empty
     init_empty();

     // show widgets
     _drawarea.show();
}



EditWindow.C:
------------EditWindow::EditWindow(GtkEventBox * e, const 
Glib::RefPtr<Gnome::Glade::Xml> & g) :
     Gtk::EventBox(e),
     BaseChip(g)
{
     init_empty();
}