1 | package Gtk2::GoBoard; |
1 | package Gtk2::GoBoard; |
2 | |
2 | |
3 | # my try at a real widget, needs the realobjects branch from Glib-CVS |
3 | use Gtk2; |
4 | |
4 | use Glib::Object::Subclass |
5 | use Glib; |
5 | Gtk2::DrawingArea, |
|
|
6 | properties => [ |
|
|
7 | Glib::ParamSpec->IV ( |
|
|
8 | "size", |
|
|
9 | "Board Size", |
|
|
10 | "The Go Board size, 2..38", |
|
|
11 | 2, 38, 19, |
|
|
12 | [qw(construct-only writable readable)], |
|
|
13 | ), |
|
|
14 | ]; |
6 | |
15 | |
7 | use KGS::Constants; |
16 | use KGS::Constants; |
8 | use KGS::Game::Board; |
17 | use KGS::Game::Board; |
9 | |
18 | |
10 | use POSIX qw(ceil); |
19 | use POSIX qw(ceil); |
11 | |
|
|
12 | register Glib::Type Gtk2::DrawingArea, __PACKAGE__, |
|
|
13 | signals => {}, |
|
|
14 | properties => {}; |
|
|
15 | |
|
|
16 | sub new { |
|
|
17 | my ($self, %arg) = @_; |
|
|
18 | $self = Glib::Object::new $self; |
|
|
19 | while (my ($k, $v) = each %arg) { |
|
|
20 | $self->{$k} = $v |
|
|
21 | } |
|
|
22 | $self; |
|
|
23 | } |
|
|
24 | |
20 | |
25 | sub INIT_INSTANCE { |
21 | sub INIT_INSTANCE { |
26 | my $self = shift; |
22 | my $self = shift; |
27 | |
23 | |
28 | $self->double_buffered (0); |
24 | $self->double_buffered (0); |