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.38 by root, Sun Apr 9 21:34:49 2006 UTC vs.
Revision 1.39 by root, Sun Apr 9 21:39:08 2006 UTC

134 my ($self) = @_; 134 my ($self) = @_;
135 135
136 #$self->deactivate; 136 #$self->deactivate;
137} 137}
138 138
139#############################################################################
140
139package Crossfire::Client::Widget::Container; 141package Crossfire::Client::Widget::Container;
140 142
141our @ISA = Crossfire::Client::Widget::; 143our @ISA = Crossfire::Client::Widget::;
142 144
143sub new { 145sub new {
200 my ($self) = @_; 202 my ($self) = @_;
201 203
202 $_->draw for @{$self->{children}}; 204 $_->draw for @{$self->{children}};
203} 205}
204 206
207#############################################################################
208
205package Crossfire::Client::Widget::Bin; 209package Crossfire::Client::Widget::Bin;
206 210
207our @ISA = Crossfire::Client::Widget::Container::; 211our @ISA = Crossfire::Client::Widget::Container::;
208 212
209sub get { $_[0]->{children}[0] } 213sub child { $_[0]->{children}[0] }
210 214
211sub size_request { 215sub size_request {
212 $_[0]{children}[0]->size_request if $_[0]{children}[0]; 216 $_[0]{children}[0]->size_request if $_[0]{children}[0];
213} 217}
214 218
217 $self->SUPER::size_allocate ($w, $h); 221 $self->SUPER::size_allocate ($w, $h);
218 $self->{children}[0]->size_allocate ($w, $h) 222 $self->{children}[0]->size_allocate ($w, $h)
219 if $self->{children}[0] 223 if $self->{children}[0]
220} 224}
221 225
226#############################################################################
227
222package Crossfire::Client::Widget::Toplevel; 228package Crossfire::Client::Widget::Toplevel;
223 229
224our @ISA = Crossfire::Client::Widget::Container::; 230our @ISA = Crossfire::Client::Widget::Container::;
225 231
226sub update { 232sub update {
227 my ($self) = @_; 233 my ($self) = @_;
228 234
229 ::refresh (); 235 ::refresh ();
230} 236}
237
238#############################################################################
231 239
232package Crossfire::Client::Widget::Window; 240package Crossfire::Client::Widget::Window;
233 241
234our @ISA = Crossfire::Client::Widget::Bin::; 242our @ISA = Crossfire::Client::Widget::Bin::;
235 243
305 313
306 glDisable GL_BLEND; 314 glDisable GL_BLEND;
307 glDisable GL_TEXTURE_2D; 315 glDisable GL_TEXTURE_2D;
308} 316}
309 317
318#############################################################################
319
310package Crossfire::Client::Widget::Frame; 320package Crossfire::Client::Widget::Frame;
311 321
312our @ISA = Crossfire::Client::Widget::Bin::; 322our @ISA = Crossfire::Client::Widget::Bin::;
313 323
314use SDL::OpenGL; 324use SDL::OpenGL;
315 325
316sub size_request { 326sub size_request {
317 my ($self) = @_; 327 my ($self) = @_;
318 my $chld = $self->get 328 my $chld = $self->child
319 or return (0, 0); 329 or return (0, 0);
320 330
321 $chld->move (2, 2); 331 $chld->move (2, 2);
322 332
323 map { $_ + 4 } $chld->size_request; 333 map { $_ + 4 } $chld->size_request;
327 my ($self, $w, $h) = @_; 337 my ($self, $w, $h) = @_;
328 338
329 $self->w ($w); 339 $self->w ($w);
330 $self->h ($h); 340 $self->h ($h);
331 341
332 $self->get->size_allocate ($w - 4, $h - 4); 342 $self->child->size_allocate ($w - 4, $h - 4);
333 $self->get->move (2, 2); 343 $self->child->move (2, 2);
334} 344}
335 345
336sub _draw { 346sub _draw {
337 my ($self) = @_; 347 my ($self) = @_;
338 348
339 my $chld = $self->get; 349 my $chld = $self->child;
340 350
341 my ($w, $h) = $chld->size_request; 351 my ($w, $h) = $chld->size_request;
342 352
343 glBegin GL_QUADS; 353 glBegin GL_QUADS;
344 glColor 0, 0, 0; 354 glColor 0, 0, 0;
349 glEnd; 359 glEnd;
350 360
351 $chld->draw; 361 $chld->draw;
352} 362}
353 363
364#############################################################################
365
354package Crossfire::Client::Widget::FancyFrame; 366package Crossfire::Client::Widget::FancyFrame;
355 367
356our @ISA = Crossfire::Client::Widget::Frame::; 368our @ISA = Crossfire::Client::Widget::Frame::;
357 369
358use SDL::OpenGL; 370use SDL::OpenGL;
368 $self 380 $self
369} 381}
370 382
371sub size_request { 383sub size_request {
372 my ($self) = @_; 384 my ($self) = @_;
385
373 my ($w, $h) = $self->get->size_request; 386 my ($w, $h) = $self->SUPER::size_request;
374 387
375 $h += $self->{txts}->[1]->{height}; 388 $h += $self->{txts}->[1]->{height};
376 $h += $self->{txts}->[4]->{height}; 389 $h += $self->{txts}->[4]->{height};
377 $w += $self->{txts}->[2]->{width}; 390 $w += $self->{txts}->[2]->{width};
378 $w += $self->{txts}->[3]->{width}; 391 $w += $self->{txts}->[3]->{width};
391 $w -= $self->{txts}->[3]->{width}; 404 $w -= $self->{txts}->[3]->{width};
392 405
393 $h = $h < 0 ? 0 : $h; 406 $h = $h < 0 ? 0 : $h;
394 $w = $w < 0 ? 0 : $w; 407 $w = $w < 0 ? 0 : $w;
395 warn "CHILD:$w $h\n"; 408 warn "CHILD:$w $h\n";
396 $self->get->size_allocate ($w, $h); 409 $self->child->size_allocate ($w, $h);
397 $self->get->move ($self->{txts}->[3]->{width}, $self->{txts}->[1]->{height}); 410 $self->child->move ($self->{txts}->[3]->{width}, $self->{txts}->[1]->{height});
398} 411}
399 412
400sub _draw { 413sub _draw {
401 my ($self) = @_; 414 my ($self) = @_;
402 415
403 my ($w, $h) = ($self->w, $self->h); 416 my ($w, $h) = ($self->w, $self->h);
404 my ($cw, $ch) = ($self->get->w, $self->get->h); 417 my ($cw, $ch) = ($self->child->w, $self->child->h);
405 418
406 glEnable GL_BLEND; 419 glEnable GL_BLEND;
407 glEnable GL_TEXTURE_2D; 420 glEnable GL_TEXTURE_2D;
408 glBlendFunc GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA; 421 glBlendFunc GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA;
409 glTexEnv GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE; 422 glTexEnv GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE;
465 glEnd; 478 glEnd;
466 479
467 glDisable GL_BLEND; 480 glDisable GL_BLEND;
468 glDisable GL_TEXTURE_2D; 481 glDisable GL_TEXTURE_2D;
469 482
470 $self->get->draw; 483 $self->child->draw;
471 484
472} 485}
486
487#############################################################################
473 488
474package Crossfire::Client::Widget::Table; 489package Crossfire::Client::Widget::Table;
475 490
476our @ISA = Crossfire::Client::Widget::Bin::; 491our @ISA = Crossfire::Client::Widget::Bin::;
477 492
553 } 568 }
554 569
555 $y += $self->max_row_height ($yi); 570 $y += $self->max_row_height ($yi);
556 } 571 }
557} 572}
573
574#############################################################################
558 575
559package Crossfire::Client::Widget::VBox; 576package Crossfire::Client::Widget::VBox;
560 577
561our @ISA = Crossfire::Client::Widget::Container::; 578our @ISA = Crossfire::Client::Widget::Container::;
562 579
611 $_->draw; 628 $_->draw;
612 $y += $_->h; 629 $y += $_->h;
613 } 630 }
614} 631}
615 632
633#############################################################################
634
616package Crossfire::Client::Widget::Label; 635package Crossfire::Client::Widget::Label;
617 636
618our @ISA = Crossfire::Client::Widget::; 637our @ISA = Crossfire::Client::Widget::;
619 638
620use SDL::OpenGL; 639use SDL::OpenGL;
676 695
677 glDisable GL_BLEND; 696 glDisable GL_BLEND;
678 glDisable GL_TEXTURE_2D; 697 glDisable GL_TEXTURE_2D;
679} 698}
680 699
700#############################################################################
701
681package Crossfire::Client::Widget::TextEntry; 702package Crossfire::Client::Widget::TextEntry;
682 703
683our @ISA = Crossfire::Client::Widget::Label::; 704our @ISA = Crossfire::Client::Widget::Label::;
684 705
685use SDL; 706use SDL;
702 } elsif ($uni) { 723 } elsif ($uni) {
703 $text .= chr $uni; 724 $text .= chr $uni;
704 } 725 }
705 $self->set_text ($text); 726 $self->set_text ($text);
706} 727}
728
729#############################################################################
707 730
708package Crossfire::Client::Widget::MapWidget; 731package Crossfire::Client::Widget::MapWidget;
709 732
710use strict; 733use strict;
711 734
878 if (!($mod & KMOD_CTRL ) && delete $self->{ctrl}) { 901 if (!($mod & KMOD_CTRL ) && delete $self->{ctrl}) {
879 $::CONN->send ("command run_stop"); 902 $::CONN->send ("command run_stop");
880 } 903 }
881} 904}
882 905
906#############################################################################
907
883package Crossfire::Client::Widget::Animator; 908package Crossfire::Client::Widget::Animator;
884 909
885use SDL::OpenGL; 910use SDL::OpenGL;
886 911
887our @ISA = Crossfire::Client::Widget::Bin::; 912our @ISA = Crossfire::Client::Widget::Bin::;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines