ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/Deliantra-Client/DC/MapWidget.pm
(Generate patch)

Comparing deliantra/Deliantra-Client/DC/MapWidget.pm (file contents):
Revision 1.42 by root, Mon May 29 18:33:23 2006 UTC vs.
Revision 1.47 by root, Fri Jun 2 22:13:47 2006 UTC

71 $::CFG->{map_shift_y} = $bh + $y - $oy; 71 $::CFG->{map_shift_y} = $bh + $y - $oy;
72 72
73 $self->update; 73 $self->update;
74 }; 74 };
75 } 75 }
76
77 1
76} 78}
77 79
78sub button_up { 80sub button_up {
79 my ($self, $ev, $x, $y) = @_; 81 my ($self, $ev, $x, $y) = @_;
80 82
81 delete $self->{motion}; 83 delete $self->{motion};
84
85 1
82} 86}
83 87
84sub mouse_motion { 88sub mouse_motion {
85 my ($self, $ev, $x, $y) = @_; 89 my ($self, $ev, $x, $y) = @_;
86 90
91 if ($self->{motion}) {
87 $self->{motion}->($ev, $x, $y) if $self->{motion}; 92 $self->{motion}->($ev, $x, $y);
93 } else {
94 return 0;
95 }
96
97 1
88} 98}
89 99
90sub size_request { 100sub size_request {
91 ( 101 (
92 1 + 32 * int $::WIDTH / 32, 102 1 + 32 * int $::WIDTH / 32,
118); 128);
119 129
120sub key_down { 130sub key_down {
121 my ($self, $ev) = @_; 131 my ($self, $ev) = @_;
122 132
123 return unless $::CONN; 133 return 0 unless $::CONN;
124 134
125 my $mod = $ev->{mod}; 135 my $mod = $ev->{mod};
126 my $sym = $ev->{sym}; 136 my $sym = $ev->{sym};
127 my $uni = $ev->{unicode}; 137 my $uni = $ev->{unicode};
128 138
155 $self->{ctrl}++; 165 $self->{ctrl}++;
156 $::CONN->user_send ("run $DIR{$sym}[0]"); 166 $::CONN->user_send ("run $DIR{$sym}[0]");
157 } else { 167 } else {
158 $::CONN->user_send ("$DIR{$sym}[1]"); 168 $::CONN->user_send ("$DIR{$sym}[1]");
159 } 169 }
170 } elsif ($sym == CFClient::SDLK_INSERT && $mod & CFClient::KMOD_CTRL) {
171 $::BIND_EDITOR->set_binding (undef, undef, [],
172 sub {
173 my ($mod, $sym, $cmds) = @_;
174 $::CFG->{bindings}->{$mod}->{$sym} = $cmds;
175 });
176 $::BIND_EDITOR->start;
177 $::BIND_EDITOR->show;
178 } elsif ($sym == CFClient::SDLK_INSERT && not ($mod & CFClient::KMOD_CTRL)) {
179 $::BIND_EDITOR->stop;
180 $::BIND_EDITOR->ask_for_bind_and_commit;
181 $::BIND_EDITOR->hide;
182 } elsif (my $bind_cmd = $::CFG->{bindings}->{$mod}->{$sym}) {
183 $::CONN->user_send ($_) for @$bind_cmd;
160 } elsif ((ord 'a') <= $uni && $uni <= (ord 'z')) { 184 } elsif ((ord 'a') <= $uni && $uni <= (ord 'z')) {
161 $self->{completer}->key_down ($ev); 185 $self->{completer}->key_down ($ev);
162 $self->{completer}->show; 186 $self->{completer}->show;
187 } else {
188 return 0;
189 }
190
163 } 191 1
164} 192}
165 193
166sub key_up { 194sub key_up {
167 my ($self, $ev) = @_; 195 my ($self, $ev) = @_;
168 196
197 my $res = 0;
169 my $mod = $ev->{mod}; 198 my $mod = $ev->{mod};
170 my $sym = $ev->{sym}; 199 my $sym = $ev->{sym};
171 200
172 if (!($mod & CFClient::KMOD_SHIFT) && delete $self->{shft}) { 201 if (!($mod & CFClient::KMOD_SHIFT) && delete $self->{shft}) {
173 $::CONN->user_send ("fire_stop"); 202 $::CONN->user_send ("fire_stop");
203 $res = 1;
174 } 204 }
205
175 if (!($mod & CFClient::KMOD_CTRL ) && delete $self->{ctrl}) { 206 if (!($mod & CFClient::KMOD_CTRL ) && delete $self->{ctrl}) {
176 $::CONN->user_send ("run_stop"); 207 $::CONN->user_send ("run_stop");
208 $res = 1;
177 } 209 }
210
211 $res
178} 212}
179 213
180sub draw { 214sub draw {
181 my ($self) = @_; 215 my ($self) = @_;
182 216
277# 311#
278# $label->show; 312# $label->show;
279# $label->update; 313# $label->update;
280# 314#
281# $CFClient::UI::ROOT->on_post_alloc ("$self$label" => sub { 315# $CFClient::UI::ROOT->on_post_alloc ("$self$label" => sub {
282# $label->move ( 316# $label->move_abs (
283# ($::WIDTH - $label->{w}) * 0.5, 317# ($::WIDTH - $label->{w}) * 0.5,
284# ($::HEIGHT - $label->{h}) * 0.5, 318# ($::HEIGHT - $label->{h}) * 0.5,
285# ); 319# );
286# }); 320# });
287# 321#
456 490
457sub size_allocate { 491sub size_allocate {
458 my ($self, $w, $h) = @_; 492 my ($self, $w, $h) = @_;
459 493
460 $self->SUPER::size_allocate ($w, $h); 494 $self->SUPER::size_allocate ($w, $h);
461 $self->move (($::WIDTH - $w) * 0.5, ($::HEIGHT - $h) * 0.6, 10); 495 $self->move_abs (($::WIDTH - $w) * 0.5, ($::HEIGHT - $h) * 0.6, 10);
462} 496}
463 497
464sub show { 498sub show {
465 my ($self) = @_; 499 my ($self) = @_;
466 500
476} 510}
477 511
478sub key_down { 512sub key_down {
479 my ($self, $ev) = @_; 513 my ($self, $ev) = @_;
480 514
481 $self->{entry}->key_down ($ev); 515 $self->{entry}->key_down ($ev)
482} 516}
483 517
484sub update_labels { 518sub update_labels {
485 my ($self) = @_; 519 my ($self) = @_;
486 520

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines