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

Comparing deliantra/Deliantra-Client/DC/UI.pm (file contents):
Revision 1.15 by elmex, Fri Apr 7 23:05:21 2006 UTC vs.
Revision 1.17 by elmex, Sat Apr 8 13:34:19 2006 UTC

144 my ($self, $row) = @_; 144 my ($self, $row) = @_;
145 145
146 my $hs = 0; 146 my $hs = 0;
147 for (my $xi = 0; $xi <= $#{$self->{childs}->[$row] || []}; $xi++) { 147 for (my $xi = 0; $xi <= $#{$self->{childs}->[$row] || []}; $xi++) {
148 my $c = $self->{childs}->[$row]->[$xi]; 148 my $c = $self->{childs}->[$row]->[$xi];
149 if ($c) {
149 my ($w, $h) = $c->size_request if $c; 150 my ($w, $h) = $c->size_request;
150 if ($hs < $h) { $hs = $h } 151 if ($hs < $h) { $hs = $h }
152 }
151 } 153 }
152 return $hs; 154 return $hs;
153} 155}
154 156
155sub max_col_width { 157sub max_col_width {
156 my ($self, $col) = @_; 158 my ($self, $col) = @_;
157 159
158 my $ws = 0; 160 my $ws = 0;
159 for (my $yi = 0; $yi <= $#{$self->{childs} || []}; $yi++) { 161 for (my $yi = 0; $yi <= $#{$self->{childs} || []}; $yi++) {
160 my $c = ($self->{childs}->[$yi] || [])->[$col]; 162 my $c = ($self->{childs}->[$yi] || [])->[$col];
163 if ($c) {
161 my ($w, $h) = $c->size_request if $c; 164 my ($w, $h) = $c->size_request;
162 if ($ws < $w) { $ws = $w } 165 if ($ws < $w) { $ws = $w }
166 }
163 } 167 }
164 return $ws; 168 return $ws;
165} 169}
166 170
167sub size_request { 171sub size_request {
327 331
328use strict; 332use strict;
329 333
330our @ISA = qw/Crossfire::Client::Widget/; 334our @ISA = qw/Crossfire::Client::Widget/;
331 335
336use SDL;
332use SDL::OpenGL; 337use SDL::OpenGL;
333use SDL::OpenGL::Constants; 338use SDL::OpenGL::Constants;
334 339
335sub key_down { 340sub key_down {
336 print "MAPKEYDOWN\n"; 341 print "MAPKEYDOWN\n";
372 377
373 glDisable GL_TEXTURE_2D; 378 glDisable GL_TEXTURE_2D;
374 glDisable GL_BLEND; 379 glDisable GL_BLEND;
375} 380}
376 381
382my %DIR = (
383 SDLK_KP8, [1, "north"],
384 SDLK_KP9, [2, "northest"],
385 SDLK_KP6, [3, "east"],
386 SDLK_KP3, [4, "southeast"],
387 SDLK_KP2, [5, "south"],
388 SDLK_KP1, [6, "southwest"],
389 SDLK_KP4, [7, "west"],
390 SDLK_KP7, [8, "northwest"],
391);
392
393sub key_down {
394 my ($self, $ev) = @_;
395
396 my $mod = $ev->key_mod;
397 my $sym = $ev->key_sym;
398
399 if ($sym == SDLK_KP5) {
400 $::CONN->send ("command stay fire");
401 } elsif (exists $DIR{$sym}) {
402 if ($mod & KMOD_SHIFT) {
403 $::CONN->send ("command fire $DIR{$sym}[0]");
404 } elsif ($mod & KMOD_CTRL) {
405 $::CONN->send ("command run $DIR{$sym}[0]");
406 } else {
407 }
408 }
409}
410
411sub key_up {
412 my ($self, $ev) = @_;
413
414 my $mod = $ev->key_mod;
415 my $sym = $ev->key_sym;
416
417 if (exists $DIR{$sym}) {
418 if ($mod & KMOD_SHIFT) {
419 $::CONN->send ("command fire_stop");
420 } else {
421 $::CONN->send ("command run_stop");
422 }
423 }
424}
425
3771; 4261;
378 427

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines