… | |
… | |
4 | |
4 | |
5 | use base KGS::Listener::User; |
5 | use base KGS::Listener::User; |
6 | |
6 | |
7 | use Glib::Object::Subclass |
7 | use Glib::Object::Subclass |
8 | Gtk2::Window; |
8 | Gtk2::Window; |
|
|
9 | |
|
|
10 | use Gtk2::SimpleList; |
9 | |
11 | |
10 | sub new { |
12 | sub new { |
11 | my ($self, %arg) = @_; |
13 | my ($self, %arg) = @_; |
12 | $self = $self->Glib::Object::new; |
14 | $self = $self->Glib::Object::new; |
13 | $self->{$_} = delete $arg{$_} for keys %arg; |
15 | $self->{$_} = delete $arg{$_} for keys %arg; |
… | |
… | |
45 | $notebook->append_page ($self->{chat}, (new_with_mnemonic Gtk2::Label "_Chat")); |
47 | $notebook->append_page ($self->{chat}, (new_with_mnemonic Gtk2::Label "_Chat")); |
46 | |
48 | |
47 | $self->{page_userinfo} = new Gtk2::Table 3, 5, 0; |
49 | $self->{page_userinfo} = new Gtk2::Table 3, 5, 0; |
48 | $notebook->append_page ($self->{page_userinfo}, (new_with_mnemonic Gtk2::Label "_Info")); |
50 | $notebook->append_page ($self->{page_userinfo}, (new_with_mnemonic Gtk2::Label "_Info")); |
49 | |
51 | |
50 | $self->{page_record} = new Gtk2::VBox; |
52 | $self->{page_record} = new Gtk2::ScrolledWindow; |
|
|
53 | $self->{page_record}->set_policy ("automatic", "always"); |
|
|
54 | $self->{page_record}->add ($self->{record_list} = Gtk2::SimpleList->new( |
|
|
55 | "Time" => "text", |
|
|
56 | "Black" => "text", |
|
|
57 | "White" => "text", |
|
|
58 | "Size" => "text", |
|
|
59 | "Handicap" => "int", |
|
|
60 | "Komi" => "text", |
|
|
61 | "Score" => "text" |
|
|
62 | )); |
51 | $notebook->append_page ($self->{page_record}, (new_with_mnemonic Gtk2::Label "_Record")); |
63 | $notebook->append_page ($self->{page_record}, (new_with_mnemonic Gtk2::Label "_Record")); |
52 | |
64 | |
53 | $self->{page_graph} = new Gtk2::Curve; |
65 | $self->{page_graph} = new Gtk2::Curve; |
54 | $notebook->append_page ($self->{page_graph}, (new_with_mnemonic Gtk2::Label "_Graph")); |
66 | $notebook->append_page ($self->{page_graph}, (new_with_mnemonic Gtk2::Label "_Graph")); |
|
|
67 | |
55 | |
68 | |
56 | $self; |
69 | $self; |
57 | } |
70 | } |
58 | |
71 | |
59 | sub join { |
72 | sub join { |
… | |
… | |
97 | $ui->show_all; |
110 | $ui->show_all; |
98 | } |
111 | } |
99 | |
112 | |
100 | sub event_game_record { |
113 | sub event_game_record { |
101 | my ($self) = @_; |
114 | my ($self) = @_; |
|
|
115 | |
|
|
116 | for (reverse sort { $a->{timestamp} <=> $b->{timestamp} } @{$self->{game_record}}) { |
|
|
117 | ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($_->{timestamp}); |
|
|
118 | push @{$self->{record_list}->{data}}, |
|
|
119 | [ |
|
|
120 | sprintf ("%02d.%02d.%04d %02d:%02d", $mday, $mon + 1, $year + 1900, $hour, $min), |
|
|
121 | $_->{black}->{name}, |
|
|
122 | $_->{white}->{name}, |
|
|
123 | sprintf ("%dx%d", $_->size, $_->size), |
|
|
124 | sprintf ("%.1d", $_->handicap), |
|
|
125 | $_->komi, |
|
|
126 | $_->score_string |
|
|
127 | ]; |
|
|
128 | } |
102 | } |
129 | } |
103 | |
130 | |
104 | sub event_usergraph { |
131 | sub event_usergraph { |
105 | my ($self) = @_; |
132 | my ($self) = @_; |
106 | |
133 | |