# partially busted example of widget creation

package Foo;

use Data::Dumper;

init Gtk;

use Gtk;

@ISA = qw(Gtk::Button);

register_type Foo 0; # 0 means zero signals

#signal_new Foo "bloop", 'first';

add_arg_type Foo "blorp", "string";

add_arg_type Foo "Foo::bletch", "int";

#signals_add Foo;

sub new {
	return Gtk::Object::new(@_);
}

sub init {
	print "init: ";
	print Dumper([@_]);
}

sub set_arg {
	print "set_arg: ";
	print Dumper([@_]);
}

sub get_arg {
	print "get_arg: ";
	print Dumper([@_]);
	return "$_[1]-result";
}

sub class_init {
	print "class_init: ";
	print Dumper([@_]);
}

package main;

use Gtk;

$w = new Gtk::Window 'toplevel';

$b = new Foo GtkButton::label => "Foo button";

$b->{bibble} = 12;

$b->signal_connect("clicked", sub { destroy $w });
#$b->signal_connect("clicked", sub { $b->signal_emit("bloop")});
#$b->signal_connect("bloop", sub {print "Bloop!\n"});

$b->set("Foo::blorp", 'fibble');
$b->set("Foo::bletch", 'fabble');
print "|",$b->get("Foo::blorp"),"|\n";

$w->add($b);

show $w;
show $b;

main Gtk;