#include <gtkmm/main.h>
#include <gtkmm/window.h>
#include <gtkmm/button.h>

class Foo
{
};

class Bar
{
public:
   virtual ~Bar()
   {
   }
};

class Dlg
   : virtual public Foo,
     public Bar,
     public Gtk::Window
{
public:
   Dlg(void)
   {
      Gtk::Button *button = new Gtk::Button("Discard");
      button->show();
      add(*Gtk::manage(button));
      button->signal_clicked().connect(sigc::mem_fun(this, &Dlg::OnClicked));
   }

private:
   void OnClicked(void)
   {
      delete this;
   }
};

int main(int argc, char *argv[])
{
   Gtk::Main kit(argc, argv);

   Dlg *toplevel = new Dlg();
   toplevel->show();

   kit.run();

   return 0;
}
